From 84a242512bc597858ebbd8735339a6dd9cfdd021 Mon Sep 17 00:00:00 2001 From: Jason Filby Date: Sun, 25 Aug 2002 15:56:54 +0000 Subject: [PATCH] DCE header file svn path=/trunk/; revision=3393 --- reactos/subsys/win32k/include/dce.h | 48 +++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 reactos/subsys/win32k/include/dce.h diff --git a/reactos/subsys/win32k/include/dce.h b/reactos/subsys/win32k/include/dce.h new file mode 100644 index 00000000000..4ca0a136359 --- /dev/null +++ b/reactos/subsys/win32k/include/dce.h @@ -0,0 +1,48 @@ +#ifndef __WIN32K_DCE_H +#define __WIN32K_DCE_H + +/* Ported from WINE by Jason Filby */ + +#include + +typedef HANDLE HDCE; + +/* DC hook codes */ +#define DCHC_INVALIDVISRGN 0x0001 +#define DCHC_DELETEDC 0x0002 + +#define DCHF_INVALIDATEVISRGN 0x0001 +#define DCHF_VALIDATEVISRGN 0x0002 + +typedef enum +{ + DCE_CACHE_DC, /* This is a cached DC (allocated by USER) */ + DCE_CLASS_DC, /* This is a class DC (style CS_CLASSDC) */ + DCE_WINDOW_DC /* This is a window DC (style CS_OWNDC) */ +} DCE_TYPE, *PDCE_TYPE; + +typedef struct tagDCE +{ + struct tagDCE *next; + HDC hDC; + HWND hwndCurrent; + HWND hwndDC; + HRGN hClipRgn; + DCE_TYPE type; + DWORD DCXflags; +} DCE, *PDCE; + + +#define DCEOBJ_AllocDCE() \ + ((HDCE) GDIOBJ_AllocObj (sizeof (DCE), GO_DCE_MAGIC)) +#define DCEOBJ_FreeDCE(hDCE) GDIOBJ_FreeObj((HGDIOBJ)hDCE, GO_DCE_MAGIC) +#define DCEOBJ_LockDCE(hDCE) ((PDCE)GDIOBJ_LockObj((HGDIOBJ)hDCE, GO_DCE_MAGIC)) +#define DCEOBJ_UnlockDCE(hDCE) GDIOBJ_UnlockObj((HGDIOBJ)hDCE, GO_DCE_MAGIC) + +PDCE DCE_AllocDCE(HWND hWnd, DCE_TYPE type); +PDCE DCE_FreeDCE(PDCE dce); +VOID DCE_FreeWindowDCE(HWND); +INT DCE_ExcludeRgn(HDC, HWND, HRGN); +BOOL DCE_InvalidateDCE(HWND, const PRECTL); + +#endif