| 1 | /* $Id: pefile.h,v 1.3 1999-09-22 09:46:18 sandervl Exp $ */ | 
|---|
| 2 |  | 
|---|
| 3 | /* | 
|---|
| 4 | * | 
|---|
| 5 | * Project Odin Software License can be found in LICENSE.TXT | 
|---|
| 6 | * | 
|---|
| 7 | */ | 
|---|
| 8 | #ifndef __PEFILE_H__ | 
|---|
| 9 | #define __PEFILE_H__ | 
|---|
| 10 |  | 
|---|
| 11 | #ifndef _OS2WIN_H | 
|---|
| 12 | #include <os2.h> | 
|---|
| 13 | #include <win32type.h> | 
|---|
| 14 | #include <peexe.h> | 
|---|
| 15 | #include <stdlib.h> //min & max | 
|---|
| 16 |  | 
|---|
| 17 | #define LOWORD(a)   (a & 0xFFFF) | 
|---|
| 18 |  | 
|---|
| 19 | #define IDS_ERRBADFILENAME  1000 | 
|---|
| 20 | #define IDR_CURSOR      1 | 
|---|
| 21 | #define IDR_BITMAP      2 | 
|---|
| 22 | #define IDR_ICON        3 | 
|---|
| 23 | #define IDR_MENU        4 | 
|---|
| 24 | #define IDR_DIALOG      5 | 
|---|
| 25 | #define IDR_STRING      6 | 
|---|
| 26 | #define IDR_FONTDIR     7 | 
|---|
| 27 | #define IDR_FONT        8 | 
|---|
| 28 | #define IDR_ACCELERATOR     9 | 
|---|
| 29 | #define IDR_RCDATA      10 | 
|---|
| 30 | #define IDR_MESSAGETABLE    11 | 
|---|
| 31 |  | 
|---|
| 32 | #endif | 
|---|
| 33 |  | 
|---|
| 34 | #define    NTRT_NEWRESOURCE      0x2000 | 
|---|
| 35 | #define    NTRT_ERROR            0x7fff | 
|---|
| 36 | #define    NTRT_CURSOR           1 | 
|---|
| 37 | #define    NTRT_BITMAP           2 | 
|---|
| 38 | #define    NTRT_ICON             3 | 
|---|
| 39 | #define    NTRT_MENU             4 | 
|---|
| 40 | #define    NTRT_DIALOG           5 | 
|---|
| 41 | #define    NTRT_STRING           6 | 
|---|
| 42 | #define    NTRT_FONTDIR          7 | 
|---|
| 43 | #define    NTRT_FONT             8 | 
|---|
| 44 | #define    NTRT_ACCELERATORS     9 | 
|---|
| 45 | #define    NTRT_RCDATA           10 | 
|---|
| 46 | #define    NTRT_MESSAGETABLE     11 | 
|---|
| 47 | #define    NTRT_GROUP_CURSOR     12 | 
|---|
| 48 | #define    NTRT_GROUP_ICON       14 | 
|---|
| 49 | #define    NTRT_VERSION          16 | 
|---|
| 50 | #define    NTRT_NEWBITMAP        (NTRT_BITMAP|NTRT_NEWRESOURCE) | 
|---|
| 51 | #define    NTRT_NEWMENU          (NTRT_MENU|NTRT_NEWRESOURCE) | 
|---|
| 52 | #define    NTRT_NEWDIALOG        (NTRT_DIALOG|NTRT_NEWRESOURCE) | 
|---|
| 53 |  | 
|---|
| 54 | #define SIZE_OF_NT_SIGNATURE    sizeof (DWORD) | 
|---|
| 55 | #define MAXRESOURCENAME     13 | 
|---|
| 56 |  | 
|---|
| 57 | #define PEHEADEROFF(a) ((LPVOID)((BYTE *)a          +  \ | 
|---|
| 58 | ((IMAGE_DOS_HEADER*)a)->e_lfanew    +  \ | 
|---|
| 59 | SIZE_OF_NT_SIGNATURE)) | 
|---|
| 60 |  | 
|---|
| 61 | #define OPTHEADEROFF(a) ((LPVOID)((BYTE *)a          +  \ | 
|---|
| 62 | ((IMAGE_DOS_HEADER*)a)->e_lfanew    +  \ | 
|---|
| 63 | SIZE_OF_NT_SIGNATURE            +  \ | 
|---|
| 64 | sizeof (IMAGE_FILE_HEADER))) | 
|---|
| 65 |  | 
|---|
| 66 | #define SECTIONHDROFF(a) ((LPVOID)((BYTE *)a          +  \ | 
|---|
| 67 | ((IMAGE_DOS_HEADER*)a)->e_lfanew    +  \ | 
|---|
| 68 | SIZE_OF_NT_SIGNATURE            +  \ | 
|---|
| 69 | sizeof (IMAGE_FILE_HEADER)      +  \ | 
|---|
| 70 | sizeof (IMAGE_OPTIONAL_HEADER))) | 
|---|
| 71 |  | 
|---|
| 72 | #define NR_SECTIONS(a)  ((int)((PIMAGE_FILE_HEADER)PEHEADEROFF (a))->NumberOfSections) | 
|---|
| 73 |  | 
|---|
| 74 | BOOL    GetPEFileHeader (LPVOID, PIMAGE_FILE_HEADER); | 
|---|
| 75 | BOOL    GetPEOptionalHeader (LPVOID, PIMAGE_OPTIONAL_HEADER); | 
|---|
| 76 | LPVOID  ImageDirectoryOffset (LPVOID, DWORD); | 
|---|
| 77 | BOOL    IsImportSection(LPVOID lpFile, PIMAGE_SECTION_HEADER psh); | 
|---|
| 78 | BOOL    GetSectionHdrByName (LPVOID, PIMAGE_SECTION_HEADER, char *); | 
|---|
| 79 | BOOL    GetSectionHdrByType (LPVOID, PIMAGE_SECTION_HEADER, int); | 
|---|
| 80 | BOOL    GetSectionHdrByImageDir (LPVOID, DWORD, PIMAGE_SECTION_HEADER); | 
|---|
| 81 | BOOL    GetSectionHdrByRVA (LPVOID lpFile, IMAGE_SECTION_HEADER *sh, ULONG rva); | 
|---|
| 82 |  | 
|---|
| 83 | int     GetNumberOfResources (LPVOID); | 
|---|
| 84 | int     GetListOfResourceTypes (LPVOID, char **); | 
|---|
| 85 |  | 
|---|
| 86 | PIMAGE_IMPORT_MODULE_DIRECTORY GetImportFunctions (LPVOID lpFile, char *pszModule, char **szBase); | 
|---|
| 87 |  | 
|---|
| 88 | #endif | 
|---|