home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1996 August / VPR9608A.BIN / del20try / install / data.z / RXTYPES.PAS < prev    next >
Pascal/Delphi Source File  |  1996-05-08  |  7KB  |  238 lines

  1. unit rxtypes;
  2.  
  3. interface
  4.  
  5. uses Windows;
  6.  
  7. const
  8.   IMAGE_DOS_SIGNATURE    = $5A4D;       { MZ }
  9.   IMAGE_OS2_SIGNATURE    = $454E;       { NE }
  10.   IMAGE_OS2_SIGNATURE_LE = $454C;       { LE }
  11.   IMAGE_VXD_SIGNATURE    = $454C;       { LE }
  12.   IMAGE_NT_SIGNATURE     = $00004550;   { PE00 }
  13.  
  14.   IMAGE_SIZEOF_SHORT_NAME          = 8;
  15.   IMAGE_SIZEOF_SECTION_HEADER      = 40;
  16.   IMAGE_NUMBEROF_DIRECTORY_ENTRIES = 16;
  17.   IMAGE_RESOURCE_NAME_IS_STRING    = $80000000;
  18.   IMAGE_RESOURCE_DATA_IS_DIRECTORY = $80000000;
  19.   IMAGE_OFFSET_STRIP_HIGH          = $7FFFFFFF;
  20.  
  21. type
  22.   PIMAGE_DOS_HEADER = ^IMAGE_DOS_HEADER;
  23.   IMAGE_DOS_HEADER = packed record      { DOS .EXE header }
  24.     e_magic         : WORD;             { Magic number }
  25.     e_cblp          : WORD;             { Bytes on last page of file }
  26.     e_cp            : WORD;             { Pages in file }
  27.     e_crlc          : WORD;             { Relocations }
  28.     e_cparhdr       : WORD;             { Size of header in paragraphs }
  29.     e_minalloc      : WORD;             { Minimum extra paragraphs needed }
  30.     e_maxalloc      : WORD;             { Maximum extra paragraphs needed }
  31.     e_ss            : WORD;             { Initial (relative) SS value }
  32.     e_sp            : WORD;             { Initial SP value }
  33.     e_csum          : WORD;             { Checksum }
  34.     e_ip            : WORD;             { Initial IP value }
  35.     e_cs            : WORD;             { Initial (relative) CS value }
  36.     e_lfarlc        : WORD;             { File address of relocation table }
  37.     e_ovno          : WORD;             { Overlay number }
  38.     e_res           : packed array [0..3] of WORD; { Reserved words }
  39.     e_oemid         : WORD;             { OEM identifier (for e_oeminfo) }
  40.     e_oeminfo       : WORD;             { OEM information; e_oemid specific }
  41.     e_res2          : packed array [0..9] of WORD; { Reserved words }
  42.     e_lfanew        : Longint;          { File address of new exe header }
  43.   end;
  44.  
  45.   PIMAGE_FILE_HEADER = ^IMAGE_FILE_HEADER;
  46.   IMAGE_FILE_HEADER = packed record
  47.     Machine              : WORD;
  48.     NumberOfSections     : WORD;
  49.     TimeDateStamp        : DWORD;
  50.     PointerToSymbolTable : DWORD;
  51.     NumberOfSymbols      : DWORD;
  52.     SizeOfOptionalHeader : WORD;
  53.     Characteristics      : WORD;
  54.   end;
  55.  
  56.   PIMAGE_DATA_DIRECTORY = ^IMAGE_DATA_DIRECTORY;
  57.   IMAGE_DATA_DIRECTORY = packed record
  58.     VirtualAddress  : DWORD;
  59.     Size            : DWORD;
  60.   end;
  61.  
  62.   PIMAGE_OPTIONAL_HEADER = ^IMAGE_OPTIONAL_HEADER;
  63.   IMAGE_OPTIONAL_HEADER = packed record
  64.    { Standard fields. }
  65.     Magic           : WORD;
  66.     MajorLinkerVersion : Byte;
  67.     MinorLinkerVersion : Byte;
  68.     SizeOfCode      : DWORD;
  69.     SizeOfInitializedData : DWORD;
  70.     SizeOfUninitializedData : DWORD;
  71.     AddressOfEntryPoint : DWORD;
  72.     BaseOfCode      : DWORD;
  73.     BaseOfData      : DWORD;
  74.    { NT additional fields. }
  75.     ImageBase       : DWORD;
  76.     SectionAlignment : DWORD;
  77.     FileAlignment   : DWORD;
  78.     MajorOperatingSystemVersion : WORD;
  79.     MinorOperatingSystemVersion : WORD;
  80.     MajorImageVersion : WORD;
  81.     MinorImageVersion : WORD;
  82.     MajorSubsystemVersion : WORD;
  83.     MinorSubsystemVersion : WORD;
  84.     Reserved1       : DWORD;
  85.     SizeOfImage     : DWORD;
  86.     SizeOfHeaders   : DWORD;
  87.     CheckSum        : DWORD;
  88.     Subsystem       : WORD;
  89.     DllCharacteristics : WORD;
  90.     SizeOfStackReserve : DWORD;
  91.     SizeOfStackCommit : DWORD;
  92.     SizeOfHeapReserve : DWORD;
  93.     SizeOfHeapCommit : DWORD;
  94.     LoaderFlags     : DWORD;
  95.     NumberOfRvaAndSizes : DWORD;
  96.     DataDirectory   : packed array [0..IMAGE_NUMBEROF_DIRECTORY_ENTRIES-1] of IMAGE_DATA_DIRECTORY;
  97.   end;
  98.  
  99.   PIMAGE_SECTION_HEADER = ^IMAGE_SECTION_HEADER;
  100.   IMAGE_SECTION_HEADER = packed record
  101.     Name            : packed array [0..IMAGE_SIZEOF_SHORT_NAME-1] of Char;
  102.     PhysicalAddress : DWORD; // or VirtualSize (union);
  103.     VirtualAddress  : DWORD;
  104.     SizeOfRawData   : DWORD;
  105.     PointerToRawData : DWORD;
  106.     PointerToRelocations : DWORD;
  107.     PointerToLinenumbers : DWORD;
  108.     NumberOfRelocations : WORD;
  109.     NumberOfLinenumbers : WORD;
  110.     Characteristics : DWORD;
  111.   end;
  112.  
  113.   PIMAGE_NT_HEADERS = ^IMAGE_NT_HEADERS;
  114.   IMAGE_NT_HEADERS = packed record
  115.     Signature       : DWORD;
  116.     FileHeader      : IMAGE_FILE_HEADER;
  117.     OptionalHeader  : IMAGE_OPTIONAL_HEADER;
  118.   end;
  119.  
  120. { Resources }
  121.  
  122.   PIMAGE_RESOURCE_DIRECTORY = ^IMAGE_RESOURCE_DIRECTORY;
  123.   IMAGE_RESOURCE_DIRECTORY = packed record
  124.     Characteristics : DWORD;
  125.     TimeDateStamp   : DWORD;
  126.     MajorVersion    : WORD;
  127.     MinorVersion    : WORD;
  128.     NumberOfNamedEntries : WORD;
  129.     NumberOfIdEntries : WORD;
  130.   end;
  131.  
  132.   PIMAGE_RESOURCE_DIRECTORY_ENTRY = ^IMAGE_RESOURCE_DIRECTORY_ENTRY;
  133.   IMAGE_RESOURCE_DIRECTORY_ENTRY = packed record
  134.     Name: DWORD;        // Or ID: Word (Union)
  135.     OffsetToData: DWORD;
  136.   end;
  137.  
  138.   PIMAGE_RESOURCE_DATA_ENTRY = ^IMAGE_RESOURCE_DATA_ENTRY;
  139.   IMAGE_RESOURCE_DATA_ENTRY = packed record
  140.     OffsetToData    : DWORD;
  141.     Size            : DWORD;
  142.     CodePage        : DWORD;
  143.     Reserved        : DWORD;
  144.   end;
  145.  
  146.   PIMAGE_RESOURCE_DIR_STRING_U = ^IMAGE_RESOURCE_DIR_STRING_U;
  147.   IMAGE_RESOURCE_DIR_STRING_U = packed record
  148.     Length          : WORD;
  149.     NameString      : array [0..0] of WCHAR;
  150.   end;
  151.  
  152. {
  153.     /* Predefined resource types */
  154.     #define    RT_NEWRESOURCE      0x2000
  155.     #define    RT_ERROR            0x7fff
  156.     #define    RT_CURSOR           1
  157.     #define    RT_BITMAP           2
  158.     #define    RT_ICON             3
  159.     #define    RT_MENU             4
  160.     #define    RT_DIALOG           5
  161.     #define    RT_STRING           6
  162.     #define    RT_FONTDIR          7
  163.     #define    RT_FONT             8
  164.     #define    RT_ACCELERATORS     9
  165.     #define    RT_RCDATA           10
  166.     #define    RT_MESSAGETABLE     11
  167.     #define    RT_GROUP_CURSOR     12
  168.     #define    RT_GROUP_ICON       14
  169.     #define    RT_VERSION          16
  170.     #define    RT_NEWBITMAP        (RT_BITMAP|RT_NEWRESOURCE)
  171.     #define    RT_NEWMENU          (RT_MENU|RT_NEWRESOURCE)
  172.     #define    RT_NEWDIALOG        (RT_DIALOG|RT_NEWRESOURCE)
  173.  
  174. }
  175.  
  176. type
  177.   TResourceType = (
  178.     rtUnknown0,
  179.     rtCursorEntry,
  180.     rtBitmap,
  181.     rtIconEntry,
  182.     rtMenu,
  183.     rtDialog,
  184.     rtString,
  185.     rtFontDir,
  186.     rtFont,
  187.     rtAccelerators,
  188.     rtRCData,
  189.     rtMessageTable,
  190.     rtCursor,
  191.     rtUnknown13,
  192.     rtIcon,
  193.     rtUnknown15,
  194.     rtVersion);
  195.  
  196. { Resource Type Constants }
  197.  
  198. const
  199.   StringsPerBlock = 16;
  200.  
  201. { Resource Related Structures from RESFMT.TXT in WIN32 SDK }
  202.  
  203. type
  204.  
  205.   PIconHeader = ^TIconHeader;
  206.   TIconHeader = packed record
  207.     wReserved: Word;         { Currently zero }
  208.     wType: Word;             { 1 for icons }
  209.     wCount: Word;            { Number of components }
  210.   end;
  211.  
  212.   PIconResInfo = ^TIconResInfo;
  213.   TIconResInfo = packed record
  214.     bWidth: Byte;
  215.     bHeight: Byte;
  216.     bColorCount: Byte;
  217.     bReserved: Byte;
  218.     wPlanes: Word;
  219.     wBitCount: Word;
  220.     lBytesInRes: DWORD;
  221.     wNameOrdinal: Word;      { Points to component }
  222.   end;
  223.  
  224.   PCursorResInfo = ^TCursorResInfo;
  225.   TCursorResInfo = packed record
  226.     wWidth: Word;
  227.     wHeight: Word;
  228.     wPlanes: Word;
  229.     wBitCount: Word;
  230.     lBytesInRes: DWORD;
  231.     wNameOrdinal: Word;      { Points to component }
  232.   end;
  233.  
  234.  
  235. implementation
  236.  
  237. end.
  238.