source: trunk/include/objhandle.h@ 8831

Last change on this file since 8831 was 8831, checked in by sandervl, 23 years ago

update

File size: 3.1 KB
RevLine 
[3707]1/*
2 * Win32 Handle Management Code for OS/2 (GDI32)
3 *
4 */
5#ifndef __OBJHANDLE_H__
6#define __OBJHANDLE_H__
7
[8831]8#ifdef NEW_GDIHANDLES
9
10#define MAX_OBJECT_HANDLES 1024
11#define HANDLE_OBJ_ERROR -1
12#define HANDLE_INVALID_DATA 0
13
14#define OBJHANDLE_MAGIC_MASK 0x00FFFFFF
15#define MAKE_HANDLE(a) (a | 0x80000000)
16#define OBJHANDLE_MAGIC(a) (a & ~0x80000000)
17
18#define OBJHANDLE_FLAG_NODELETE 0x01 //system handle; do not delete
19#define OBJHANDLE_FLAG_BMP_SCREEN_COMPATIBLE 0x02 //Bitmap with screen properties (bpp)
20#define OBJHANDLE_FLAG_BMP_RGB565 0x04 //RGB565 bitmap
21#define OBJHANDLE_FLAG_BMP_DIBSECTION 0x08 //DIB section handle
22
23
24#define HNDL_NONE 0x00
25#define HNDL_PEN 0x01
26#define HNDL_BRUSH 0x02
27#define HNDL_DC 0x03
28#define HNDL_METADC 0x04
29#define HNDL_PALETTE 0x05
30#define HNDL_FONT 0x06
31#define HNDL_BITMAP 0x07
32#define HNDL_DIBSECTION 0x08
33#define HNDL_REGION 0x09
34#define HNDL_METAFILE 0x0A
35#define HNDL_ENHMETAFILE 0x0B
36#define HNDL_MEMDC 0x0C
37#define HNDL_EXTPEN 0x0D
38#define HNDL_ENHMETADC 0x0E
39#define HNDL_MENU 0x0F
40#define HNDL_ACCEL 0x10
41#define HNDL_CURSORICON 0x11
42#define HNDL_DDELP 0x12
43
44#define HNDL_MAX 0x12
45#define HNDL_INVALID 0xFE
46#define HNDL_ANY 0xFF
47
48//...
49
50typedef ULONG OBJHANDLE;
51
52BOOL WIN32API ObjAllocateHandle(OBJHANDLE *hObject, ULONG dwUserData, ULONG dwType);
53BOOL WIN32API ObjDeleteHandle(OBJHANDLE hObject, ULONG dwType);
54ULONG WIN32API ObjQueryHandleData(OBJHANDLE hObject, ULONG dwType);
55BOOL WIN32API ObjSetHandleData(OBJHANDLE hObject, ULONG dwType, ULONG dwUserData);
56ULONG WIN32API ObjQueryHandleGDI32Data(OBJHANDLE hObject, ULONG dwType);
57BOOL WIN32API ObjSetHandleGDI32Data(OBJHANDLE hObject, ULONG dwType, ULONG dwGDI32Data);
58ULONG WIN32API ObjQueryHandleType(OBJHANDLE hObject);
59ULONG WIN32API ObjQueryHandleFlags(OBJHANDLE hObject);
60BOOL WIN32API ObjSetHandleFlag(OBJHANDLE hObject, ULONG dwFlag, BOOL fSet);
61
62#define ObjWinToOS2Region(a) ObjQueryHandleData(a, HNDL_REGION)
63
64#else
[4768]65#define MAX_OBJECT_HANDLES 1024
[4754]66#define OBJHANDLE_MAGIC_MASK 0x00FFFFFF
[4768]67#define HANDLE_OBJ_ERROR -1
[3707]68
69typedef enum {
[4754]70 GDIOBJ_NONE = 0x00,
[3707]71 GDIOBJ_REGION = 0xD1,
72 GDIOBJ_BITMAP = 0xD2,
[4754]73 GDIOBJ_BRUSH = 0xD3,
74 GDIOBJ_PALETTE = 0xD4,
[3707]75 GDIOBJ_FONT = 0xD5,
[4754]76 USEROBJ_MENU = 0xD6,
[4768]77 USEROBJ_ACCEL = 0xD7,
[6181]78 USEROBJ_CURSORICON = 0xD8,
[6261]79 GDIOBJ_OPEN32 = 0xE0,
80 GDIOBJ_INVALID = 0xFF
[4754]81//...
[3707]82} ObjectType;
83
[4754]84#define MAKE_HANDLE(a) (a << 24)
[4766]85#define OBJHANDLE_MAGIC(a) (a >> 24)
86
[3707]87//...
88
[6758]89BOOL WIN32API ObjAllocateHandle(HANDLE *hObject, DWORD dwUserData, ObjectType type);
90void WIN32API ObjFreeHandle(HANDLE hObject);
91DWORD WIN32API ObjGetHandleData(HANDLE hObject, ObjectType type);
[3707]92
[4754]93#define ObjWinToOS2Region(a) ObjGetHandleData(a, GDIOBJ_REGION)
[3707]94
[6758]95ObjectType WIN32API ObjGetHandleType(HANDLE hObject);
[3707]96
[8831]97#endif
[3707]98#endif //__OBJHANDLE_H__
Note: See TracBrowser for help on using the repository browser.