source: trunk/include/winres.h@ 1630

Last change on this file since 1630 was 1454, checked in by sandervl, 26 years ago

(menu) resource changes

File size: 2.9 KB
Line 
1/* $Id: winres.h,v 1.11 1999-10-26 11:16:14 sandervl Exp $ */
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
15class Win32ImageBase;
16
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)
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)
23
24class Win32Resource
25{
26public:
27 // Constructors and destructors
28 Win32Resource(); //custum resource (i.e. created by app in runtime)
29 Win32Resource(Win32ImageBase *module, ULONG id, ULONG type,
30 ULONG size, char *resdata);
31 virtual ~Win32Resource();
32
33 virtual PVOID lockResource(); //get original win32 resource
34 virtual PVOID lockOS2Resource(); //get converted OS/2 resource
35
36 //return size of original win32 resource
37 ULONG getSize() { return ressize; };
38 //return size of converted win32 resource
39 ULONG getOS2Size();
40
41 ULONG getOS2Handle() { return OS2ResHandle; };
42 void setOS2Handle(ULONG handle) { OS2ResHandle = handle; };
43
44 static void destroyAll(Win32ImageBase *module);
45
46protected:
47
48 PVOID convertResource(void *win32res);
49
50 Win32ImageBase *module;
51
52 HRSRC hres;
53 ULONG type;
54 ULONG id;
55
56 PVOID os2resdata;
57 PVOID winresdata;
58
59 ULONG OS2ResHandle;
60
61 ULONG ressize;
62 int resType;
63
64 BOOL isUnicode;
65
66 // Linked list management
67 Win32Resource* next; // Next Resource in module
68
69private:
70 friend class Win32ImageBase;
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
95#define MAX_RES 17
96extern char *ResTypes[MAX_RES];
97
98#endif
Note: See TracBrowser for help on using the repository browser.