97 pe::resource_type typeId =
static_cast<pe::resource_type
>(
entry->getID());
101 this->
entries.push_back(entry);
135 if (
d ==
NULL)
return 0;
139 void *
nextPtr = (&
d->NumberOfIdEntries) + 1;
140 void *
argPtr = &
d->NumberOfIdEntries;
153 return "ReproChecksum";
155 return "TimeDateStamp";
170 this->childDir =
NULL;
173 this->childLeaf =
NULL;
189 if (this->album !=
NULL) {
190 album->
putLeaf(childLeaf, topEntryID);
199 if (this->parentDir ==
NULL)
return NULL;
221 return &
entry->OffsetToData;
232 return "Offset To Data";
241 if (
entry->NameIsString == 1)
return true;
249 if (
entry->DataIsDirectory == 1)
return true;
279 case pe::RESTYPE_CURSOR :
return "Cursor";
280 case pe::RESTYPE_FONT :
return "Font";
281 case pe::RESTYPE_BITMAP :
return "Bitmap";
282 case pe::RESTYPE_ICON :
return "Icon";
283 case pe::RESTYPE_MENU :
return "Menu";
284 case pe::RESTYPE_DIALOG :
return "Dialog";
285 case pe::RESTYPE_STRING :
return "String";
286 case pe::RESTYPE_FONTDIR :
return "Font Dir";
287 case pe::RESTYPE_ACCELERATOR :
return "Accelerator";
288 case pe::RESTYPE_RCDATA :
return "RC Data";
289 case pe::RESTYPE_MESSAGETABLE :
return "Message Table";
291 case pe::RESTYPE_GROUP_CURSOR :
return "Cursors Group";
292 case pe::RESTYPE_GROUP_ICON :
return "Icons Group";
293 case pe::RESTYPE_VERSION :
return "Version";
294 case pe::RESTYPE_DLGINCLUDE :
return "Dlg Include";
295 case pe::RESTYPE_PLUGPLAY :
return "Plug & Play";
296 case pe::RESTYPE_VXD :
return "VXD";
297 case pe::RESTYPE_ANICURSOR :
return "Animated Cursor";
298 case pe::RESTYPE_ANIICON :
return "Animated Icon";
299 case pe::RESTYPE_HTML :
return "HTML";
300 case pe::RESTYPE_MANIFEST :
return "Manifest";
320 if (
entry->DataIsDirectory) {
321 return entry->OffsetToDirectory;
323 return entry->OffsetToData;
352 if (!leaf)
return NULL;
INT_TYPE _getNumValue(void *ptr)
const offset_t INVALID_ADDR
offset_t getDirEntryAddress()
virtual bufsize_t getFieldSize(size_t fieldId, size_t subField=FIELD_NONE)
virtual offset_t getFieldOffset(size_t fieldId, size_t subField=FIELD_NONE)
virtual offset_t getOffset()
std::vector< ExeNodeWrapper * > entries
BYTE * getContentAt(offset_t offset, bufsize_t size, bool allowExceptions=false)
virtual bufsize_t getSize()
virtual QString getFieldName(size_t fieldId)
virtual void * getFieldPtr(size_t fieldId, size_t subField)
IMAGE_RESOURCE_DIRECTORY * mainResourceDir()
virtual bufsize_t getFieldSize(size_t fieldId, size_t subField)
virtual QString getName()
bufsize_t getEntriesAreaSize()
virtual QString getFieldName(size_t fieldId)
offset_t getChildAddress()
IMAGE_RESOURCE_DIRECTORY_ENTRY * getEntryPtr()
static QString translateType(WORD id)
virtual QString getName()
IMAGE_RESOURCE_DIRECTORY_STRING * getNameStr()
offset_t getChildOffsetToDirectory()
virtual void * getFieldPtr(size_t fieldId, size_t subField=FIELD_NONE)
IMAGE_RESOURCE_DATA_ENTRY * leafEntryPtr()
virtual void * getFieldPtr(size_t fieldId, size_t subField)
virtual QString getFieldName(size_t fieldId)
void mapIdToLeafType(long topId, pe::resource_type leafType)
void putLeaf(ResourceLeafWrapper *leaf, long topEntryId)