source: trunk/include/objhandle.h

Last change on this file was 22044, checked in by dmik, 13 years ago

Increase the maximum number of GDI handles from 1024 to 4096.

This is needed for some Flash movies on YouTube. See #68.

File size: 2.3 KB
Line 
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 4096
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#ifdef __cplusplus
49extern "C" {
50#endif
51
52typedef ULONG OBJHANDLE;
53
54BOOL WIN32API ObjAllocateHandle(OBJHANDLE *hObject, ULONG dwUserData, ULONG dwType);
55BOOL WIN32API ObjDeleteHandle(OBJHANDLE hObject, ULONG dwType);
56ULONG WIN32API ObjQueryHandleData(OBJHANDLE hObject, ULONG dwType);
57BOOL WIN32API ObjSetHandleData(OBJHANDLE hObject, ULONG dwType, ULONG dwUserData);
58ULONG WIN32API ObjQueryHandleGDI32Data(OBJHANDLE hObject, ULONG dwType);
59BOOL WIN32API ObjSetHandleGDI32Data(OBJHANDLE hObject, ULONG dwType, ULONG dwGDI32Data);
60ULONG WIN32API ObjQueryHandleType(OBJHANDLE hObject);
61ULONG WIN32API ObjQueryHandleFlags(OBJHANDLE hObject);
62BOOL WIN32API ObjSetHandleFlag(OBJHANDLE hObject, ULONG dwFlag, BOOL fSet);
63
64#ifdef DEBUG
65void WIN32API ObjDumpObjects();
66#endif
67
68#define ObjWinToOS2Region(a) ObjQueryHandleData(a, HNDL_REGION)
69
70#ifdef __cplusplus
71} // extern "C"
72#endif
73
74#endif //__OBJHANDLE_H__
Note: See TracBrowser for help on using the repository browser.