Files

33 lines
933 B
C++

#pragma once
#include "PENodeWrapper.h"
class DataDirWrapper : public PEElementWrapper
{
public:
enum DataDirSID {
NONE = FIELD_NONE,
ADDRESS = 0,
SIZE = 1,
COUNTER
};
DataDirWrapper(PEFile *pe) : PEElementWrapper(pe) {}
virtual size_t getSubFieldsCount() { return COUNTER; }
/* full structure boundaries */
virtual void* getPtr();
virtual bufsize_t getSize();
virtual QString getName() { return "Data Directory"; }
virtual size_t getFieldsCount() { return getDirsCount(); }
/* specific field boundaries */
virtual void* getFieldPtr(size_t fieldId, size_t subField);
virtual bufsize_t getFieldSize(size_t fieldId, size_t subField);
virtual QString getFieldName(size_t fieldId);
virtual Executable::addr_type containsAddrType(size_t fieldId, size_t subField = FIELD_NONE);
/*specific to this wrapper*/
size_t getDirsCount();
};