Files
Work/image/KEYDIR.HPP
2024-08-07 09:16:27 -04:00

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