1 #ifndef __WIN32K_OBJECT_H
2 #define __WIN32K_OBJECT_H
5 #include <win32k/gdiobj.h>
6 #include <win32k/bitmaps.h>
7 #include <win32k/pen.h>
15 typedef struct _USER_OBJECT_HEADER
17 * Header for user object
20 USER_OBJECT_TYPE Type
;
24 } USER_OBJECT_HEADER
, *PUSER_OBJECT_HEADER
;
26 typedef struct _USER_HANDLE
29 } USER_HANDLE
, *PUSER_HANDLE
;
31 #define HANDLE_BLOCK_ENTRIES ((PAGE_SIZE-sizeof(LIST_ENTRY))/sizeof(USER_HANDLE))
33 typedef struct _USER_HANDLE_BLOCK
36 USER_HANDLE Handles
[HANDLE_BLOCK_ENTRIES
];
37 } USER_HANDLE_BLOCK
, *PUSER_HANDLE_BLOCK
;
39 typedef struct _USER_HANDLE_TABLE
43 } USER_HANDLE_TABLE
, *PUSER_HANDLE_TABLE
;
63 ObmReferenceObjectByPointer(
65 USER_OBJECT_TYPE ObjectType
);
69 PUSER_HANDLE_TABLE HandleTable
,
71 USER_OBJECT_TYPE ObjectType
,
76 PUSER_HANDLE_TABLE HandleTable
,
78 PHANDLE HandleReturn
);
81 ObmReferenceObjectByHandle(
82 PUSER_HANDLE_TABLE HandleTable
,
84 USER_OBJECT_TYPE ObjectType
,
89 PUSER_HANDLE_TABLE HandleTable
,
93 ObmInitializeHandleTable(
94 PUSER_HANDLE_TABLE HandleTable
);
98 PUSER_HANDLE_TABLE HandleTable
);
100 PUSER_HANDLE_TABLE FASTCALL
101 ObmCreateHandleTable(VOID
);
103 VOID FASTCALL
ObmDestroyHandleTable (PUSER_HANDLE_TABLE HandleTable
);
105 ULONG FASTCALL
CreateGDIHandle (ULONG InternalSize
, ULONG UserSize
);
106 VOID FASTCALL
FreeGDIHandle (ULONG Handle
);
108 PVOID FASTCALL
AccessUserObject (ULONG Handle
);
109 PVOID FASTCALL
AccessInternalObject (ULONG Handle
);
111 PVOID FASTCALL
AccessInternalObjectFromUserObject (PVOID UserObject
);
112 ULONG FASTCALL
AccessHandleFromUserObject (PVOID UserObject
);
114 VOID FASTCALL
InitEngHandleTable (VOID
);
115 VOID FASTCALL
InitGdiObjectHandleTable (VOID
);
117 VOID FASTCALL
CreateStockObjects (VOID
);
119 VOID FASTCALL
GDIOBJ_MarkObjectGlobal (HGDIOBJ ObjectHandle
);
120 BOOL FASTCALL
GDIOBJ_LockMultipleObj (PGDIMULTILOCK pList
, INT nObj
);
122 PPOINT FASTCALL
GDI_Bezier (const POINT
*Points
, INT count
, PINT nPtsOut
);
124 /* objects/objconv.c */
126 PBRUSHOBJ FASTCALL
PenToBrushObj (PDC dc
, PENOBJ
*pen
);
127 HBITMAP FASTCALL
BitmapToSurf (PBITMAPOBJ BitmapObj
);
129 #endif /* __WIN32K_OBJECT_H */