78 lines
2.1 KiB
C++
78 lines
2.1 KiB
C++
#ifndef _IMAGE_DIRECTORYENTRYKEY_HPP_
|
|
#define _IMAGE_DIRECTORYENTRYKEY_HPP_
|
|
#ifndef _COMMON_WINDOWS_HPP_
|
|
#include <common/windows.hpp>
|
|
#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
|