#ifndef _IMAGE_IMAGERELOCATION_HPP_ #define _IMAGE_IMAGERELOCATION_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_BLOCK_HPP_ #include #endif class ImageRelocation : private IMAGE_RELOCATION { public: ImageRelocation(void); ImageRelocation(const ImageRelocation &someImageRelocation); virtual ~ImageRelocation(); ImageRelocation &operator=(const ImageRelocation &someImageRelocation); bool operator==(const ImageRelocation &someImageRelocation)const; DWORD virtualAddress(void)const; void virtualAddress(DWORD virtualAddress); DWORD relocationCount(void)const; void relocationCount(DWORD relocationCount); DWORD symbolTableIndex(void)const; void symbolTableIndex(DWORD symbolTableIndex); WORD relocationType(void)const; void relocationType(WORD relocationType); private: void setZero(void); }; inline ImageRelocation::ImageRelocation(void) { setZero(); } inline ImageRelocation::ImageRelocation(const ImageRelocation &someImageRelocation) { *this=someImageRelocation; } inline ImageRelocation::~ImageRelocation() { } inline ImageRelocation &ImageRelocation::operator=(const ImageRelocation &someImageRelocation) { virtualAddress(someImageRelocation.virtualAddress()); symbolTableIndex(someImageRelocation.symbolTableIndex()); relocationType(someImageRelocation.relocationType()); return *this; } inline bool ImageRelocation::operator==(const ImageRelocation &someImageRelocation)const { return (virtualAddress()==someImageRelocation.virtualAddress()&& symbolTableIndex()==someImageRelocation.symbolTableIndex()&& relocationType()==someImageRelocation.relocationType()); } inline DWORD ImageRelocation::virtualAddress(void)const { return IMAGE_RELOCATION::VirtualAddress; } inline void ImageRelocation::virtualAddress(DWORD virtualAddress) { IMAGE_RELOCATION::VirtualAddress=virtualAddress; } inline DWORD ImageRelocation::relocationCount(void)const { return IMAGE_RELOCATION::RelocCount; } inline void ImageRelocation::relocationCount(DWORD relocationCount) { IMAGE_RELOCATION::RelocCount=relocationCount; } inline DWORD ImageRelocation::symbolTableIndex(void)const { return IMAGE_RELOCATION::SymbolTableIndex; } inline void ImageRelocation::symbolTableIndex(DWORD symbolTableIndex) { IMAGE_RELOCATION::SymbolTableIndex=symbolTableIndex; } inline WORD ImageRelocation::relocationType(void)const { return IMAGE_RELOCATION::Type; } inline void ImageRelocation::relocationType(WORD relocationType) { IMAGE_RELOCATION::Type=relocationType; } inline void ImageRelocation::setZero(void) { IMAGE_RELOCATION::VirtualAddress=0; IMAGE_RELOCATION::SymbolTableIndex=0; IMAGE_RELOCATION::Type=0; } typedef Block ImageRelocations; #endif