#define __WIN32K_OBJECT_H
#include <windows.h>
+#include <win32k/gdiobj.h>
+#include <win32k/bitmaps.h>
+#include <win32k/pen.h>
typedef enum {
otUnknown = 0,
otClass,
- otWindow
+ otWindow,
+ otMenu
} USER_OBJECT_TYPE;
typedef struct _USER_OBJECT_HEADER
} USER_HANDLE_TABLE, *PUSER_HANDLE_TABLE;
-ULONG
+ULONG FASTCALL
ObmGetReferenceCount(
PVOID ObjectBody);
-ULONG
+ULONG FASTCALL
ObmGetHandleCount(
PVOID ObjectBody);
-VOID
+VOID FASTCALL
ObmReferenceObject(
PVOID ObjectBody);
-VOID
+VOID FASTCALL
ObmDereferenceObject(
PVOID ObjectBody);
-NTSTATUS
+NTSTATUS FASTCALL
ObmReferenceObjectByPointer(
PVOID ObjectBody,
USER_OBJECT_TYPE ObjectType);
-PVOID
+PVOID FASTCALL
ObmCreateObject(
PUSER_HANDLE_TABLE HandleTable,
PHANDLE Handle,
USER_OBJECT_TYPE ObjectType,
ULONG ObjectSize);
-NTSTATUS
+NTSTATUS FASTCALL
ObmCreateHandle(
PUSER_HANDLE_TABLE HandleTable,
PVOID ObjectBody,
PHANDLE HandleReturn);
-NTSTATUS
+NTSTATUS FASTCALL
ObmReferenceObjectByHandle(
PUSER_HANDLE_TABLE HandleTable,
HANDLE Handle,
USER_OBJECT_TYPE ObjectType,
PVOID* Object);
-NTSTATUS
+NTSTATUS FASTCALL
ObmCloseHandle(
PUSER_HANDLE_TABLE HandleTable,
HANDLE Handle);
-VOID
+VOID FASTCALL
ObmInitializeHandleTable(
PUSER_HANDLE_TABLE HandleTable);
-VOID
+VOID FASTCALL
ObmFreeHandleTable(
PUSER_HANDLE_TABLE HandleTable);
-PUSER_HANDLE_TABLE
+PUSER_HANDLE_TABLE FASTCALL
ObmCreateHandleTable(VOID);
-VOID
-ObmDestroyHandleTable(
- PUSER_HANDLE_TABLE HandleTable);
+VOID FASTCALL ObmDestroyHandleTable (PUSER_HANDLE_TABLE HandleTable);
+
+ULONG FASTCALL CreateGDIHandle (ULONG InternalSize, ULONG UserSize);
+VOID FASTCALL FreeGDIHandle (ULONG Handle);
+
+PVOID FASTCALL AccessUserObject (ULONG Handle);
+PVOID FASTCALL AccessInternalObject (ULONG Handle);
+
+PVOID FASTCALL AccessInternalObjectFromUserObject (PVOID UserObject);
+ULONG FASTCALL AccessHandleFromUserObject (PVOID UserObject);
+
+VOID FASTCALL InitEngHandleTable (VOID);
+VOID FASTCALL InitGdiObjectHandleTable (VOID);
+
+VOID FASTCALL CreateStockObjects (VOID);
+
+BOOL FASTCALL CleanupForProcess (struct _EPROCESS *Process, INT Pid);
+
+VOID FASTCALL GDIOBJ_MarkObjectGlobal (HGDIOBJ ObjectHandle);
+VOID FASTCALL GDIOBJ_UnmarkObjectGlobal (HGDIOBJ ObjectHandle);
+BOOL FASTCALL GDIOBJ_LockMultipleObj (PGDIMULTILOCK pList, INT nObj);
+
+PPOINT FASTCALL GDI_Bezier (const POINT *Points, INT count, PINT nPtsOut);
-ULONG CreateGDIHandle(ULONG InternalSize, ULONG UserSize);
-VOID FreeGDIHandle(ULONG Handle);
+/* objects/objconv.c */
-PVOID AccessUserObject(ULONG Handle);
-PVOID AccessInternalObject(ULONG Handle);
+BRUSHOBJ*
+FASTCALL
+PenToBrushObj(BRUSHOBJ *brush, PENOBJ *pen);
-PVOID AccessInternalObjectFromUserObject(PVOID UserObject);
-ULONG AccessHandleFromUserObject(PVOID UserObject);
+BRUSHOBJ*
+FASTCALL
+HPenToBrushObj ( BRUSHOBJ *brush, HPEN hpen );
-VOID InitEngHandleTable( void );
+HBITMAP
+FASTCALL
+BitmapToSurf ( PBITMAPOBJ BitmapObj );
#endif /* __WIN32K_OBJECT_H */