142 lines
3.4 KiB
C++
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 |