Beispiel #1
0
SeekableReadStream *PEResources::getResource(const PEResourceID &type, const PEResourceID &name) {
	std::vector<PEResourceID> langList = getLangList(type, name);

	if (langList.empty())
		return 0;

	const Resource &resource = _resources.find(type)->second.find(name)->second.find(langList[0])->second; // fun stuff
	_exe->seek(resource.offset);
	return _exe->readStream(resource.size);
}
Beispiel #2
0
File *PEResources::getResource(const WinResourceID &type, const WinResourceID &name) {
	Array<WinResourceID> langList = getLangList(type, name);

	if (langList.empty())
		return 0;

	const Resource &resource = _resources[type][name][langList[0]];
	byte *data = (byte *)malloc(resource.size);
	_exe->seek(resource.offset);
	_exe->read(data, resource.size);

	File *file = new File();
	file->open(data, resource.size);
	return file;
}