/********************************************************
* mergebin
* Written by Robert Simpson (robert@blackcastlesoft.com)
*
* Released to the public domain, use at your own risk!
********************************************************/
#pragma once
class CPEFile
{
public:
CPEFile();
virtual ~CPEFile(void);
protected:
HANDLE m_hMap;
HANDLE m_hFile;
PIMAGE_DOS_HEADER m_pBase;
PIMAGE_NT_HEADERS m_pNTHeader;
public:
HRESULT Open (LPCTSTR pszFile, BOOL bReadOnly = TRUE);
void Close (void);
PIMAGE_SECTION_HEADER GetEnclosingSectionHeader (DWORD rva) const;
LPVOID GetPtrFromRVA (DWORD rva) const;
PIMAGE_SECTION_HEADER GetSectionHeader (LPCSTR name) const;
operator PIMAGE_DOS_HEADER () const;
operator PIMAGE_NT_HEADERS () const;
operator PIMAGE_COR20_HEADER () const;
};