#ifndef _IMAGE_DIRECTORYENTRYKEY_HPP_ #define _IMAGE_DIRECTORYENTRYKEY_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif class DirectoryEntryKey { public: enum Key{ExportDirectory=IMAGE_DIRECTORY_ENTRY_EXPORT, ImportDirectory=IMAGE_DIRECTORY_ENTRY_IMPORT, ResourceDirectory=IMAGE_DIRECTORY_ENTRY_RESOURCE, ExceptionDirectory=IMAGE_DIRECTORY_ENTRY_EXCEPTION, SecurityDirectory=IMAGE_DIRECTORY_ENTRY_SECURITY, BaseRelocationTableDirectory=IMAGE_DIRECTORY_ENTRY_BASERELOC, DebugDirectory=IMAGE_DIRECTORY_ENTRY_DEBUG, DescriptionStringDirectory=IMAGE_DIRECTORY_ENTRY_COPYRIGHT, MachineValueDirectory=IMAGE_DIRECTORY_ENTRY_GLOBALPTR, ThreadLocalStorageDirectory=IMAGE_DIRECTORY_ENTRY_TLS, LoadConfigurationDirectory=IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG, BoundImportDirectory=IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT, ImportAddressTableDirectory=IMAGE_DIRECTORY_ENTRY_IAT, // DelayImportDirectory=IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT }; DirectoryEntryKey(Key entryEntry=ImportDirectory); DirectoryEntryKey(const DirectoryEntryKey &someDirectoryEntryKey); virtual ~DirectoryEntryKey(); DirectoryEntryKey &operator=(const DirectoryEntryKey &someDirectoryEntryKey); WORD operator==(const DirectoryEntryKey &someDirectoryEntryKey); Key entryKey(void)const; void entryKey(Key entryKey); private: Key mDirectoryKey; }; inline DirectoryEntryKey::DirectoryEntryKey(Key entryKey) : mDirectoryKey(entryKey) { } inline DirectoryEntryKey::DirectoryEntryKey(const DirectoryEntryKey &someDirectoryEntryKey) { *this=someDirectoryEntryKey; } inline DirectoryEntryKey::~DirectoryEntryKey() { } inline DirectoryEntryKey &DirectoryEntryKey::operator=(const DirectoryEntryKey &someDirectoryEntryKey) { entryKey(someDirectoryEntryKey.entryKey()); return *this; } inline WORD DirectoryEntryKey::operator==(const DirectoryEntryKey &someDirectoryEntryKey) { return entryKey()==someDirectoryEntryKey.entryKey(); } inline DirectoryEntryKey::Key DirectoryEntryKey::entryKey(void)const { return mDirectoryKey; } inline void DirectoryEntryKey::entryKey(Key entryKey) { mDirectoryKey=entryKey; } #endif