Moved most of the implementation of SetWindowPos and SetDrawable into
[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 "windef.h"
11
12 struct tagWND;
13
14 /* internal DCX flags */
15 #define DCX_DCEEMPTY            0x00000800
16 #define DCX_DCEBUSY             0x00001000
17 #define DCX_DCEDIRTY            0x00002000
18 #define DCX_WINDOWPAINT         0x00020000
19 #define DCX_KEEPCLIPRGN         0x00040000
20 #define DCX_NOCLIPCHILDREN      0x00080000
21
22 typedef enum
23 {
24     DCE_CACHE_DC,   /* This is a cached DC (allocated by USER) */
25     DCE_CLASS_DC,   /* This is a class DC (style CS_CLASSDC) */
26     DCE_WINDOW_DC   /* This is a window DC (style CS_OWNDC) */
27 } DCE_TYPE;
28
29
30 typedef struct tagDCE
31 {
32     struct tagDCE *next;
33     HDC          hDC;
34     HWND         hwndCurrent;
35     HWND         hwndDC;
36     HRGN         hClipRgn;
37     DCE_TYPE       type;
38     DWORD          DCXflags;
39 } DCE;
40
41 extern DCE*  DCE_AllocDCE( HWND hWnd, DCE_TYPE type );
42 extern DCE*  DCE_FreeDCE( DCE *dce );
43 extern void  DCE_FreeWindowDCE( struct tagWND* );
44 extern INT  DCE_ExcludeRgn( HDC, struct tagWND*, HRGN );
45 extern BOOL DCE_InvalidateDCE( struct tagWND*, const RECT* );
46
47 #endif  /* __WINE_DCE_H */