2010-02-26 11:43:19 +00:00
|
|
|
#pragma once
|
2002-08-25 15:56:54 +00:00
|
|
|
|
|
|
|
/* Ported from WINE by Jason Filby */
|
|
|
|
|
2003-10-22 13:34:25 +00:00
|
|
|
typedef struct tagDCE *PDCE;
|
|
|
|
|
|
|
|
#include <include/window.h>
|
2002-08-25 15:56:54 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
{
|
2007-12-17 20:23:31 +00:00
|
|
|
LIST_ENTRY List;
|
2002-08-25 15:56:54 +00:00
|
|
|
HDC hDC;
|
|
|
|
HWND hwndCurrent;
|
2010-01-12 05:25:22 +00:00
|
|
|
PWND pwndOrg;
|
|
|
|
PWND pwndClip;
|
|
|
|
PWND pwndRedirect;
|
|
|
|
HRGN hrgnClip;
|
|
|
|
HRGN hrgnClipPublic;
|
|
|
|
HRGN hrgnSavedVis;
|
2002-09-01 20:39:56 +00:00
|
|
|
DWORD DCXFlags;
|
2010-01-12 05:25:22 +00:00
|
|
|
PTHREADINFO ptiOwner;
|
|
|
|
PPROCESSINFO ppiOwner;
|
|
|
|
struct _MONITOR* pMonitor;
|
2003-10-22 13:34:25 +00:00
|
|
|
} DCE; /* PDCE already declared at top of file */
|
2002-08-25 15:56:54 +00:00
|
|
|
|
2007-07-25 03:35:59 +00:00
|
|
|
/* internal DCX flags, see psdk/winuser.h for the rest */
|
2005-06-19 17:27:44 +00:00
|
|
|
#define DCX_DCEEMPTY 0x00000800
|
|
|
|
#define DCX_DCEBUSY 0x00001000
|
|
|
|
#define DCX_DCEDIRTY 0x00002000
|
2008-09-22 15:49:38 +00:00
|
|
|
#define DCX_LAYEREDWIN 0x00004000
|
|
|
|
#define DCX_DCPOWNED 0x00008000
|
2007-07-25 03:35:59 +00:00
|
|
|
#define DCX_NOCLIPCHILDREN 0x00080000
|
|
|
|
#define DCX_NORECOMPUTE 0x00100000
|
2010-02-23 15:42:08 +00:00
|
|
|
#define DCX_INDESTROY 0x00400000
|
2007-10-19 23:21:45 +00:00
|
|
|
|
2007-07-25 03:35:59 +00:00
|
|
|
BOOL FASTCALL DCE_Cleanup(PDCE pDce);
|
2005-09-08 16:18:51 +00:00
|
|
|
PDCE FASTCALL DceAllocDCE(PWINDOW_OBJECT Window, DCE_TYPE Type);
|
2003-05-18 17:16:18 +00:00
|
|
|
PDCE FASTCALL DCE_FreeDCE(PDCE dce);
|
|
|
|
VOID FASTCALL DCE_FreeWindowDCE(HWND);
|
|
|
|
INT FASTCALL DCE_ExcludeRgn(HDC, HWND, HRGN);
|
|
|
|
BOOL FASTCALL DCE_InvalidateDCE(HWND, const PRECTL);
|
2003-08-19 11:48:50 +00:00
|
|
|
HWND FASTCALL IntWindowFromDC(HDC hDc);
|
2004-12-12 01:40:39 +00:00
|
|
|
PDCE FASTCALL DceFreeDCE(PDCE dce, BOOLEAN Force);
|
2003-11-24 21:20:35 +00:00
|
|
|
void FASTCALL DceEmptyCache(void);
|
2004-12-26 20:34:49 +00:00
|
|
|
VOID FASTCALL DceResetActiveDCEs(PWINDOW_OBJECT Window);
|
2008-06-07 02:58:15 +00:00
|
|
|
void FASTCALL DceFreeClassDCE(HDC);
|
2009-06-02 06:50:36 +00:00
|
|
|
HWND FASTCALL UserGethWnd(HDC,PWNDOBJ*);
|
2010-01-28 01:00:09 +00:00
|
|
|
void FASTCALL DceFreeWindowDCE(PWINDOW_OBJECT);
|
|
|
|
void FASTCALL DceFreeThreadDCE(PTHREADINFO);
|