188 lines
5.0 KiB
Plaintext
188 lines
5.0 KiB
Plaintext
#ifndef _IMAGE_IMAGERESOURCEDIRECTORY_HPP_
|
|
#define _IMAGE_IMAGERESOURCEDIRECTORY_HPP_
|
|
#ifndef _COMMON_WINDOWS_HPP_
|
|
#include <common/windows.hpp>
|
|
#endif
|
|
#ifndef _COMMON_BLOCK_HPP_
|
|
#include <common/block.hpp>
|
|
#endif
|
|
|
|
class ImageResourceDirectory;
|
|
class ImageResourceDirectoryEntry;
|
|
class PureViewOfFile;
|
|
|
|
class ImageResourceDirectory : private IMAGE_RESOURCE_DIRECTORY
|
|
{
|
|
public:
|
|
typedef Block<ImageResourceDirectoryEntry> ImageResourceDirectoryEntries;
|
|
ImageResourceDirectory(void);
|
|
ImageResourceDirectory(const ImageResourceDirectory &someImageResourceDirectory);
|
|
virtual ~ImageResourceDirectory();
|
|
ImageResourceDirectory &operator=(const ImageResourceDirectory &someImageResourceDirectory);
|
|
ImageResourceDirectoryEntry &operator[](UINT itemIndex);
|
|
WORD operator==(const ImageResourceDirectory &someImageResourceDirectory)const;
|
|
operator IMAGE_RESOURCE_DIRECTORY &(void);
|
|
DWORD characteristics(void)const;
|
|
void characteristics(DWORD characteristics);
|
|
DWORD timeDate(void)const;
|
|
void timeDate(DWORD timeDate);
|
|
WORD majorVersion(void)const;
|
|
void majorVersion(WORD majorVersion);
|
|
WORD minorVersion(void)const;
|
|
void minorVersion(WORD minorVersion);
|
|
WORD entriesByName(void)const;
|
|
void entriesByName(WORD entriesByName);
|
|
WORD entriesByID(void)const;
|
|
void entriesByID(WORD entriesByID);
|
|
WORD entries(void)const;
|
|
void read(DWORD resBase,DWORD deltaOffset,PureViewOfFile &pureView);
|
|
void clear(void);
|
|
private:
|
|
void zeroInit(void);
|
|
ImageResourceDirectoryEntries mImageResourceDirectoryEntries;
|
|
};
|
|
|
|
inline
|
|
ImageResourceDirectory::ImageResourceDirectory(void)
|
|
{
|
|
zeroInit();
|
|
}
|
|
|
|
inline
|
|
ImageResourceDirectory::ImageResourceDirectory(const ImageResourceDirectory &someImageResourceDirectory)
|
|
{
|
|
*this=someImageResourceDirectory;
|
|
}
|
|
|
|
inline
|
|
ImageResourceDirectory::~ImageResourceDirectory()
|
|
{
|
|
}
|
|
|
|
inline
|
|
ImageResourceDirectory &ImageResourceDirectory::operator=(const ImageResourceDirectory &someImageResourceDirectory)
|
|
{
|
|
characteristics(someImageResourceDirectory.characteristics());
|
|
timeDate(someImageResourceDirectory.timeDate());
|
|
majorVersion(someImageResourceDirectory.majorVersion());
|
|
minorVersion(someImageResourceDirectory.minorVersion());
|
|
entriesByName(someImageResourceDirectory.entriesByName());
|
|
entriesByID(someImageResourceDirectory.entriesByID());
|
|
mImageResourceDirectoryEntries=someImageResourceDirectory.mImageResourceDirectoryEntries;
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
WORD ImageResourceDirectory::operator==(const ImageResourceDirectory &someImageResourceDirectory)const
|
|
{
|
|
return (characteristics()==someImageResourceDirectory.characteristics()&&
|
|
timeDate()==someImageResourceDirectory.timeDate()&&
|
|
majorVersion()==someImageResourceDirectory.majorVersion()&&
|
|
minorVersion()==someImageResourceDirectory.minorVersion()&&
|
|
entriesByName()==someImageResourceDirectory.entriesByName()&&
|
|
entriesByID()==someImageResourceDirectory.entriesByID()&&
|
|
mImageResourceDirectoryEntries==someImageResourceDirectory.mImageResourceDirectoryEntries);
|
|
}
|
|
|
|
inline
|
|
ImageResourceDirectory::operator IMAGE_RESOURCE_DIRECTORY &(void)
|
|
{
|
|
return *this;
|
|
}
|
|
|
|
inline
|
|
DWORD ImageResourceDirectory::characteristics(void)const
|
|
{
|
|
return IMAGE_RESOURCE_DIRECTORY::Characteristics;
|
|
}
|
|
|
|
inline
|
|
void ImageResourceDirectory::characteristics(DWORD characteristics)
|
|
{
|
|
IMAGE_RESOURCE_DIRECTORY::Characteristics=characteristics;
|
|
}
|
|
|
|
inline
|
|
DWORD ImageResourceDirectory::timeDate(void)const
|
|
{
|
|
return IMAGE_RESOURCE_DIRECTORY::TimeDateStamp;
|
|
}
|
|
|
|
inline
|
|
void ImageResourceDirectory::timeDate(DWORD timeDate)
|
|
{
|
|
IMAGE_RESOURCE_DIRECTORY::TimeDateStamp=timeDate;
|
|
}
|
|
|
|
inline
|
|
WORD ImageResourceDirectory::majorVersion(void)const
|
|
{
|
|
return IMAGE_RESOURCE_DIRECTORY::MajorVersion;
|
|
}
|
|
|
|
inline
|
|
void ImageResourceDirectory::majorVersion(WORD majorVersion)
|
|
{
|
|
IMAGE_RESOURCE_DIRECTORY::MajorVersion=majorVersion;
|
|
}
|
|
|
|
inline
|
|
WORD ImageResourceDirectory::minorVersion(void)const
|
|
{
|
|
return IMAGE_RESOURCE_DIRECTORY::MinorVersion;
|
|
}
|
|
|
|
inline
|
|
void ImageResourceDirectory::minorVersion(WORD minorVersion)
|
|
{
|
|
IMAGE_RESOURCE_DIRECTORY::MinorVersion=minorVersion;
|
|
}
|
|
|
|
inline
|
|
WORD ImageResourceDirectory::entries(void)const
|
|
{
|
|
return entriesByName()+entriesByID();
|
|
}
|
|
|
|
inline
|
|
WORD ImageResourceDirectory::entriesByName(void)const
|
|
{
|
|
return IMAGE_RESOURCE_DIRECTORY::NumberOfNamedEntries;
|
|
}
|
|
|
|
inline
|
|
void ImageResourceDirectory::entriesByName(WORD entriesByName)
|
|
{
|
|
IMAGE_RESOURCE_DIRECTORY::NumberOfNamedEntries=entriesByName;
|
|
}
|
|
|
|
inline
|
|
WORD ImageResourceDirectory::entriesByID(void)const
|
|
{
|
|
return IMAGE_RESOURCE_DIRECTORY::NumberOfIdEntries;
|
|
}
|
|
|
|
inline
|
|
void ImageResourceDirectory::entriesByID(WORD entriesByID)
|
|
{
|
|
IMAGE_RESOURCE_DIRECTORY::NumberOfIdEntries=entriesByID;
|
|
}
|
|
|
|
inline
|
|
void ImageResourceDirectory::zeroInit(void)
|
|
{
|
|
IMAGE_RESOURCE_DIRECTORY::Characteristics=0;
|
|
IMAGE_RESOURCE_DIRECTORY::TimeDateStamp=0;
|
|
IMAGE_RESOURCE_DIRECTORY::MajorVersion=0;
|
|
IMAGE_RESOURCE_DIRECTORY::MinorVersion=0;
|
|
IMAGE_RESOURCE_DIRECTORY::NumberOfNamedEntries=0;
|
|
IMAGE_RESOURCE_DIRECTORY::NumberOfIdEntries=0;
|
|
}
|
|
|
|
inline
|
|
void ImageResourceDirectory::clear(void)
|
|
{
|
|
zeroInit();
|
|
mImageResourceDirectoryEntries.remove();
|
|
}
|
|
#endif |