Release 980614
[wine] / include / dce.h
1 /*
2  * USER DCE definitions
3  *
4  * Copyright 1993 Alexandre Julliard
5  */
6
7 #ifndef __WINE_DCE_H
8 #define __WINE_DCE_H
9
10 #include "windows.h"
11 #include "win.h"
12
13 /* additional DCX flags 
14  */
15
16 #define DCX_NORESETATTR         0x00000004
17 #define DCX_EXCLUDEUPDATE       0x00000100
18 #define DCX_INTERSECTUPDATE     0x00000200
19 #define DCX_LOCKWINDOWUPDATE    0x00000400
20 #define DCX_NORECOMPUTE         0x00100000
21 #define DCX_VALIDATE            0x00200000
22
23 #define DCX_DCEEMPTY            0x00000800
24 #define DCX_DCEBUSY             0x00001000
25 #define DCX_DCEDIRTY            0x00002000
26 #define DCX_WINDOWPAINT         0x00020000
27 #define DCX_KEEPCLIPRGN         0x00040000
28 #define DCX_NOCLIPCHILDREN      0x00080000
29
30 typedef enum
31 {
32     DCE_CACHE_DC,   /* This is a cached DC (allocated by USER) */
33     DCE_CLASS_DC,   /* This is a class DC (style CS_CLASSDC) */
34     DCE_WINDOW_DC   /* This is a window DC (style CS_OWNDC) */
35 } DCE_TYPE;
36
37
38 typedef struct tagDCE
39 {
40     struct tagDCE *next;
41     HDC32          hDC;
42     HWND32         hwndCurrent;
43     HWND32         hwndDC;
44     HRGN32         hClipRgn;
45     DCE_TYPE       type;
46     DWORD          DCXflags;
47 } DCE;
48
49
50 extern void  DCE_Init(void);
51 extern DCE*  DCE_AllocDCE( HWND32 hWnd, DCE_TYPE type );
52 extern DCE*  DCE_FreeDCE( DCE *dce );
53 extern void  DCE_FreeWindowDCE( WND* );
54 extern INT16 DCE_ExcludeRgn( HDC32, WND*, HRGN32 );
55 extern HRGN32 DCE_GetVisRgn( HWND32, WORD );
56 extern BOOL32 DCE_InvalidateDCE( WND*, const RECT32* );
57
58 #endif  /* __WINE_DCE_H */