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

70 lines
1.8 KiB
C++

#ifndef _IMAGE_IMAGEDATADIRECTORY_HPP_
#define _IMAGE_IMAGEDATADIRECTORY_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
class ImageDataDirectory : private _IMAGE_DATA_DIRECTORY
{
public:
ImageDataDirectory(void);
ImageDataDirectory(const ImageDataDirectory &someImageDataDirectory);
ImageDataDirectory(const _IMAGE_DATA_DIRECTORY &someImageDataDirectory);
~ImageDataDirectory();
ImageDataDirectory &operator=(const ImageDataDirectory &someImageDataDirectory);
WORD operator==(const ImageDataDirectory &someImageDataDirectory)const;
DWORD virtualAddress(void)const;
DWORD size(void)const;
private:
};
inline
ImageDataDirectory::ImageDataDirectory(void)
{
::memset((char*)&((_IMAGE_DATA_DIRECTORY&)*this),0,sizeof(_IMAGE_DATA_DIRECTORY));
}
inline
ImageDataDirectory::ImageDataDirectory(const ImageDataDirectory &someImageDataDirectory)
{
*this=someImageDataDirectory;
}
inline
ImageDataDirectory::ImageDataDirectory(const _IMAGE_DATA_DIRECTORY &someImageDataDirectory)
{
::memcpy((char*)&((_IMAGE_DATA_DIRECTORY&)*this),(char*)&someImageDataDirectory,sizeof(_IMAGE_DATA_DIRECTORY));
}
inline
ImageDataDirectory::~ImageDataDirectory()
{
}
inline
ImageDataDirectory &ImageDataDirectory::operator=(const ImageDataDirectory &someImageDataDirectory)
{
::memcpy((char*)&((_IMAGE_DATA_DIRECTORY&)*this),(char*)&((_IMAGE_DATA_DIRECTORY&)someImageDataDirectory),sizeof(_IMAGE_DATA_DIRECTORY));
return *this;
}
inline
WORD ImageDataDirectory::operator==(const ImageDataDirectory &someImageDataDirectory)const
{
return (virtualAddress()==someImageDataDirectory.virtualAddress()&&
size()==someImageDataDirectory.size());
}
inline
DWORD ImageDataDirectory::virtualAddress(void)const
{
return _IMAGE_DATA_DIRECTORY::VirtualAddress;
}
inline
DWORD ImageDataDirectory::size(void)const
{
return _IMAGE_DATA_DIRECTORY::Size;
}
#endif