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

142 lines
3.4 KiB
C++

#ifndef _IMAGE_IMAGERESOURCEDATAENTRY_HPP_
#define _IMAGE_IMAGERESOURCEDATAENTRY_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif
#ifndef _COMMON_GLOBALDATA_HPP_
#include <common/gdata.hpp>
#endif
class PureViewOfFile;
class ImageResourceDataEntry : private IMAGE_RESOURCE_DATA_ENTRY
{
public:
ImageResourceDataEntry(void);
ImageResourceDataEntry(const ImageResourceDataEntry &someImageResourceDataEntry);
virtual ~ImageResourceDataEntry();
ImageResourceDataEntry &operator=(const ImageResourceDataEntry &someImageResourceDataEntry);
WORD operator==(const ImageResourceDataEntry &someImageResourceDataEntry)const;
operator IMAGE_RESOURCE_DATA_ENTRY &(void);
DWORD offsetData(void)const;
void offsetData(DWORD offsetData);
DWORD size(void)const;
void size(DWORD size);
DWORD codePage(void)const;
void codePage(DWORD codePage);
DWORD reserved(void)const;
void reserved(DWORD reserved);
GlobalData<BYTE> &rawData(void);
void read(DWORD deltaOffset,PureViewOfFile &pureView);
private:
void setZero(void);
GlobalData<BYTE> mRawData;
};
inline
ImageResourceDataEntry::ImageResourceDataEntry(void)
{
setZero();
}
inline
ImageResourceDataEntry::ImageResourceDataEntry(const ImageResourceDataEntry &someImageResourceDataEntry)
{
*this=someImageResourceDataEntry;
}
inline
ImageResourceDataEntry::~ImageResourceDataEntry()
{
}
inline
ImageResourceDataEntry &ImageResourceDataEntry::operator=(const ImageResourceDataEntry &someImageResourceDataEntry)
{
offsetData(someImageResourceDataEntry.offsetData());
size(someImageResourceDataEntry.size());
codePage(someImageResourceDataEntry.codePage());
reserved(someImageResourceDataEntry.reserved());
mRawData=someImageResourceDataEntry.mRawData;
return *this;
}
inline
WORD ImageResourceDataEntry::operator==(const ImageResourceDataEntry &someImageResourceDataEntry)const
{
return (offsetData()==someImageResourceDataEntry.offsetData()&&
size()==someImageResourceDataEntry.size()&&
codePage()==someImageResourceDataEntry.codePage()&&
reserved()==someImageResourceDataEntry.reserved()&&
mRawData==someImageResourceDataEntry.mRawData);
}
inline
ImageResourceDataEntry::operator IMAGE_RESOURCE_DATA_ENTRY &(void)
{
return *this;
}
inline
DWORD ImageResourceDataEntry::offsetData(void)const
{
return IMAGE_RESOURCE_DATA_ENTRY::OffsetToData;
}
inline
void ImageResourceDataEntry::offsetData(DWORD offsetData)
{
IMAGE_RESOURCE_DATA_ENTRY::OffsetToData=offsetData;
}
inline
DWORD ImageResourceDataEntry::size(void)const
{
return IMAGE_RESOURCE_DATA_ENTRY::Size;
}
inline
void ImageResourceDataEntry::size(DWORD size)
{
IMAGE_RESOURCE_DATA_ENTRY::Size=size;
}
inline
DWORD ImageResourceDataEntry::codePage(void)const
{
return IMAGE_RESOURCE_DATA_ENTRY::CodePage;
}
inline
void ImageResourceDataEntry::codePage(DWORD codePage)
{
IMAGE_RESOURCE_DATA_ENTRY::CodePage=codePage;
}
inline
DWORD ImageResourceDataEntry::reserved(void)const
{
return IMAGE_RESOURCE_DATA_ENTRY::Reserved;
}
inline
void ImageResourceDataEntry::reserved(DWORD reserved)
{
IMAGE_RESOURCE_DATA_ENTRY::Reserved=reserved;
}
inline
GlobalData<BYTE> &ImageResourceDataEntry::rawData(void)
{
return mRawData;
}
inline
void ImageResourceDataEntry::setZero(void)
{
IMAGE_RESOURCE_DATA_ENTRY::OffsetToData=0;
IMAGE_RESOURCE_DATA_ENTRY::Size=0;
IMAGE_RESOURCE_DATA_ENTRY::CodePage=0;
IMAGE_RESOURCE_DATA_ENTRY::Reserved=0;
}
#endif