Initial
This commit is contained in:
82
image/EXPORT.HPP
Normal file
82
image/EXPORT.HPP
Normal file
@@ -0,0 +1,82 @@
|
||||
#ifndef _IMAGE_EXPORTDESCRIPTOR_HPP_
|
||||
#define _IMAGE_EXPORTDESCRIPTOR_HPP_
|
||||
#ifndef _COMMON_PUREDWORD_HPP_
|
||||
#include <common/puredwrd.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_PUREWORD_HPP_
|
||||
#include <common/purewrd.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_PUREVIEWOFFILE_HPP_
|
||||
#include <common/pview.hpp>
|
||||
#endif
|
||||
#ifndef _COMMON_ARRAY_HPP_
|
||||
#include <common/array.hpp>
|
||||
#endif
|
||||
#ifndef _IMAGE_IMAGESECTIONHEADERS_HPP_
|
||||
#include <image/sctnhdrs.hpp>
|
||||
#endif
|
||||
#ifndef _IMAGE_IMAGEEXPORTDIRECTORY_HPP_
|
||||
#include <image/expdir.hpp>
|
||||
#endif
|
||||
#ifndef _IMAGE_IMAGEEXPORTDESCRIPTOR_HPP_
|
||||
#include <image/expdsc.hpp>
|
||||
#endif
|
||||
|
||||
class ImageExportDescriptors : public ImageExportDirectory, public Array<ImageExportDescriptor>
|
||||
{
|
||||
public:
|
||||
ImageExportDescriptors(void);
|
||||
ImageExportDescriptors(const ImageExportDescriptors &someImageExportDescriptors);
|
||||
virtual ~ImageExportDescriptors();
|
||||
ImageExportDescriptors &operator=(const ImageExportDescriptors &someImageExportDecsriptors);
|
||||
WORD operator==(const ImageExportDescriptors &someImageExportDescriptors)const;
|
||||
WORD loadImageExports(PureViewOfFile &pureView,ImageSectionHeaders &imageSectionHeaders,WORD sortFlag);
|
||||
WORD locateImageExportName(String imageExportName,ImageExportDescriptor &imageExportDescriptor,DWORD &exportIndex);
|
||||
WORD locateImageExportOrdinal(DWORD exportOrdinal,ImageExportDescriptor &imageExportDescriptor,DWORD &exportIndex);
|
||||
private:
|
||||
enum {OrdinalPrefix='@'};
|
||||
WORD loadExportNames(Array<String> &exportNames,ImageSectionHeaders &imageSectionHeaders,PureViewOfFile &pureView);
|
||||
WORD loadExportOrdinals(Array<PureWORD> &exportOrdinals,ImageSectionHeaders &imageSectionHeaders,PureViewOfFile &pureView);
|
||||
WORD loadExportFunctions(Array<PureDWORD> &exportFunctions,ImageSectionHeaders &imageSectionHeaders,PureViewOfFile &pureView);
|
||||
WORD combineExportDescriptors(Array<String> &exportNames,Array<PureWORD> &exportOrdinals,Array<PureDWORD> &exportFunctions);
|
||||
WORD makeOrdinalValue(String imageExportName,WORD &exportOrdinal)const;
|
||||
};
|
||||
|
||||
inline
|
||||
ImageExportDescriptors::ImageExportDescriptors(void)
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
ImageExportDescriptors::ImageExportDescriptors(const ImageExportDescriptors &someImageExportDescriptors)
|
||||
{
|
||||
*this=someImageExportDescriptors;
|
||||
}
|
||||
|
||||
inline
|
||||
ImageExportDescriptors::~ImageExportDescriptors()
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
ImageExportDescriptors &ImageExportDescriptors::operator=(const ImageExportDescriptors &someImageExportDescriptors)
|
||||
{
|
||||
(Array<ImageExportDescriptor>&)*this=(Array<ImageExportDescriptor>&)someImageExportDescriptors;
|
||||
return *this;
|
||||
}
|
||||
|
||||
inline
|
||||
WORD ImageExportDescriptors::operator==(const ImageExportDescriptors &someImageExportDescriptors)const
|
||||
{
|
||||
return (Array<ImageExportDescriptor>&)*this==(Array<ImageExportDescriptor>&)someImageExportDescriptors;
|
||||
}
|
||||
|
||||
inline
|
||||
WORD ImageExportDescriptors::makeOrdinalValue(String imageExportName,WORD &exportOrdinal)const
|
||||
{
|
||||
if(imageExportName.isNull())return FALSE;
|
||||
if(OrdinalPrefix!=imageExportName[(DWORD)0])return FALSE;
|
||||
exportOrdinal=(int)imageExportName.betweenString(OrdinalPrefix,0).toInt();
|
||||
return TRUE;
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user