1 | /*
|
---|
2 | * Win32 Handle Management Code for OS/2 (GDI32)
|
---|
3 | *
|
---|
4 | */
|
---|
5 | #ifndef __OBJHANDLE_H__
|
---|
6 | #define __OBJHANDLE_H__
|
---|
7 |
|
---|
8 | #define MAX_OBJECT_HANDLES 1024
|
---|
9 | #define HANDLE_OBJ_ERROR -1
|
---|
10 | #define HANDLE_INVALID_DATA 0
|
---|
11 |
|
---|
12 | #define OBJHANDLE_MAGIC_MASK 0x00FFFFFF
|
---|
13 | #define MAKE_HANDLE(a) (a | 0x80000000)
|
---|
14 | #define OBJHANDLE_MAGIC(a) (a & ~0x80000000)
|
---|
15 |
|
---|
16 | #define OBJHANDLE_FLAG_NODELETE 0x01 //system handle; do not delete
|
---|
17 | #define OBJHANDLE_FLAG_BMP_SCREEN_COMPATIBLE 0x02 //Bitmap with screen properties (bpp)
|
---|
18 | #define OBJHANDLE_FLAG_BMP_RGB565 0x04 //RGB565 bitmap
|
---|
19 | #define OBJHANDLE_FLAG_BMP_DIBSECTION 0x08 //DIB section handle
|
---|
20 |
|
---|
21 |
|
---|
22 | #define HNDL_NONE 0x00
|
---|
23 | #define HNDL_PEN 0x01
|
---|
24 | #define HNDL_BRUSH 0x02
|
---|
25 | #define HNDL_DC 0x03
|
---|
26 | #define HNDL_METADC 0x04
|
---|
27 | #define HNDL_PALETTE 0x05
|
---|
28 | #define HNDL_FONT 0x06
|
---|
29 | #define HNDL_BITMAP 0x07
|
---|
30 | #define HNDL_DIBSECTION 0x08
|
---|
31 | #define HNDL_REGION 0x09
|
---|
32 | #define HNDL_METAFILE 0x0A
|
---|
33 | #define HNDL_ENHMETAFILE 0x0B
|
---|
34 | #define HNDL_MEMDC 0x0C
|
---|
35 | #define HNDL_EXTPEN 0x0D
|
---|
36 | #define HNDL_ENHMETADC 0x0E
|
---|
37 | #define HNDL_MENU 0x0F
|
---|
38 | #define HNDL_ACCEL 0x10
|
---|
39 | #define HNDL_CURSORICON 0x11
|
---|
40 | #define HNDL_DDELP 0x12
|
---|
41 |
|
---|
42 | #define HNDL_MAX 0x12
|
---|
43 | #define HNDL_INVALID 0xFE
|
---|
44 | #define HNDL_ANY 0xFF
|
---|
45 |
|
---|
46 | //...
|
---|
47 |
|
---|
48 | typedef ULONG OBJHANDLE;
|
---|
49 |
|
---|
50 | BOOL WIN32API ObjAllocateHandle(OBJHANDLE *hObject, ULONG dwUserData, ULONG dwType);
|
---|
51 | BOOL WIN32API ObjDeleteHandle(OBJHANDLE hObject, ULONG dwType);
|
---|
52 | ULONG WIN32API ObjQueryHandleData(OBJHANDLE hObject, ULONG dwType);
|
---|
53 | BOOL WIN32API ObjSetHandleData(OBJHANDLE hObject, ULONG dwType, ULONG dwUserData);
|
---|
54 | ULONG WIN32API ObjQueryHandleGDI32Data(OBJHANDLE hObject, ULONG dwType);
|
---|
55 | BOOL WIN32API ObjSetHandleGDI32Data(OBJHANDLE hObject, ULONG dwType, ULONG dwGDI32Data);
|
---|
56 | ULONG WIN32API ObjQueryHandleType(OBJHANDLE hObject);
|
---|
57 | ULONG WIN32API ObjQueryHandleFlags(OBJHANDLE hObject);
|
---|
58 | BOOL WIN32API ObjSetHandleFlag(OBJHANDLE hObject, ULONG dwFlag, BOOL fSet);
|
---|
59 |
|
---|
60 | #define ObjWinToOS2Region(a) ObjQueryHandleData(a, HNDL_REGION)
|
---|
61 |
|
---|
62 | #endif //__OBJHANDLE_H__
|
---|