| [1454] | 1 | /* $Id: winres.h,v 1.11 1999-10-26 11:16:14 sandervl Exp $ */ | 
|---|
| [337] | 2 |  | 
|---|
|  | 3 | /* | 
|---|
|  | 4 | * Win32 resource class | 
|---|
|  | 5 | * | 
|---|
|  | 6 | * Copyright 1998 Sander van Leeuwen (sandervl@xs4all.nl) | 
|---|
|  | 7 | * | 
|---|
|  | 8 | * | 
|---|
|  | 9 | * Project Odin Software License can be found in LICENSE.TXT | 
|---|
|  | 10 | * | 
|---|
|  | 11 | */ | 
|---|
|  | 12 | #ifndef __WINRES_H__ | 
|---|
|  | 13 | #define __WINRES_H__ | 
|---|
|  | 14 |  | 
|---|
| [953] | 15 | class Win32ImageBase; | 
|---|
| [337] | 16 |  | 
|---|
| [575] | 17 | //Use to distinguish between converted OS/2 resources in an image (pe2lx'ed) or | 
|---|
|  | 18 | //resources that are loaded from the original win32 image (pe loader) | 
|---|
| [754] | 19 | #define RSRC_PELOADER        0 | 
|---|
|  | 20 | #define RSRC_PE2LX           1 | 
|---|
|  | 21 | #define RSRC_CUSTOMNODATA    2  //resources created in runtime without data (i.e. CreateMenu) | 
|---|
|  | 22 | #define RSRC_CUSTOMINDIRECT  3  //resources indirectly created in runtime (i.e. CreateMenuIndirect) | 
|---|
| [575] | 23 |  | 
|---|
| [337] | 24 | class Win32Resource | 
|---|
|  | 25 | { | 
|---|
|  | 26 | public: | 
|---|
|  | 27 | // Constructors and destructors | 
|---|
| [754] | 28 | Win32Resource(); //custum resource (i.e. created by app in runtime) | 
|---|
| [953] | 29 | Win32Resource(Win32ImageBase *module, ULONG id, ULONG type, | 
|---|
| [337] | 30 | ULONG size, char *resdata); | 
|---|
| [341] | 31 | virtual       ~Win32Resource(); | 
|---|
| [337] | 32 |  | 
|---|
|  | 33 | virtual  PVOID lockResource();      //get original win32 resource | 
|---|
|  | 34 | virtual  PVOID lockOS2Resource();   //get converted OS/2 resource | 
|---|
|  | 35 |  | 
|---|
| [816] | 36 | //return size of original win32 resource | 
|---|
| [589] | 37 | ULONG getSize()            { return ressize; }; | 
|---|
| [816] | 38 | //return size of converted win32 resource | 
|---|
|  | 39 | ULONG getOS2Size(); | 
|---|
| [337] | 40 |  | 
|---|
| [344] | 41 | ULONG getOS2Handle()               { return OS2ResHandle; }; | 
|---|
|  | 42 | void setOS2Handle(ULONG handle)   { OS2ResHandle = handle; }; | 
|---|
|  | 43 |  | 
|---|
| [953] | 44 | static    void destroyAll(Win32ImageBase *module); | 
|---|
| [337] | 45 |  | 
|---|
|  | 46 | protected: | 
|---|
|  | 47 |  | 
|---|
| [581] | 48 | PVOID convertResource(void *win32res); | 
|---|
|  | 49 |  | 
|---|
| [953] | 50 | Win32ImageBase *module; | 
|---|
| [337] | 51 |  | 
|---|
|  | 52 | HRSRC hres; | 
|---|
|  | 53 | ULONG type; | 
|---|
|  | 54 | ULONG id; | 
|---|
|  | 55 |  | 
|---|
|  | 56 | PVOID os2resdata; | 
|---|
|  | 57 | PVOID winresdata; | 
|---|
|  | 58 |  | 
|---|
| [344] | 59 | ULONG OS2ResHandle; | 
|---|
| [337] | 60 |  | 
|---|
|  | 61 | ULONG ressize; | 
|---|
| [575] | 62 | int resType; | 
|---|
| [337] | 63 |  | 
|---|
| [761] | 64 | BOOL  isUnicode; | 
|---|
|  | 65 |  | 
|---|
| [337] | 66 | // Linked list management | 
|---|
| [344] | 67 | Win32Resource*   next;               // Next Resource in module | 
|---|
| [337] | 68 |  | 
|---|
| [754] | 69 | private: | 
|---|
| [953] | 70 | friend    class Win32ImageBase; | 
|---|
| [337] | 71 | }; | 
|---|
|  | 72 |  | 
|---|
|  | 73 |  | 
|---|
|  | 74 | #define    NTRT_NEWRESOURCE      0x2000 | 
|---|
|  | 75 | #define    NTRT_ERROR            0x7fff | 
|---|
|  | 76 | #define    NTRT_CURSOR           1 | 
|---|
|  | 77 | #define    NTRT_BITMAP           2 | 
|---|
|  | 78 | #define    NTRT_ICON             3 | 
|---|
|  | 79 | #define    NTRT_MENU             4 | 
|---|
|  | 80 | #define    NTRT_DIALOG           5 | 
|---|
|  | 81 | #define    NTRT_STRING           6 | 
|---|
|  | 82 | #define    NTRT_FONTDIR          7 | 
|---|
|  | 83 | #define    NTRT_FONT             8 | 
|---|
|  | 84 | #define    NTRT_ACCELERATORS     9 | 
|---|
|  | 85 | #define    NTRT_RCDATA           10 | 
|---|
|  | 86 | #define    NTRT_MESSAGETABLE     11 | 
|---|
|  | 87 | #define    NTRT_GROUP_CURSOR     12 | 
|---|
|  | 88 | #define    NTRT_GROUP_ICON       14 | 
|---|
|  | 89 | #define    NTRT_VERSION          16 | 
|---|
|  | 90 | #define    NTRT_NEWBITMAP        (NTRT_BITMAP|NTRT_NEWRESOURCE) | 
|---|
|  | 91 | #define    NTRT_NEWMENU          (NTRT_MENU|NTRT_NEWRESOURCE) | 
|---|
|  | 92 | #define    NTRT_NEWDIALOG        (NTRT_DIALOG|NTRT_NEWRESOURCE) | 
|---|
|  | 93 |  | 
|---|
|  | 94 |  | 
|---|
| [953] | 95 | #define MAX_RES 17 | 
|---|
|  | 96 | extern char *ResTypes[MAX_RES]; | 
|---|
|  | 97 |  | 
|---|
| [337] | 98 | #endif | 
|---|