blob: f77d7f47dde31d41759afe2b4cd3867779d7a7d6 [file] [log] [blame]
Alexandre Julliard401710d1993-09-04 10:09:32 +00001/*
2 * USER DCE definitions
3 *
4 * Copyright 1993 Alexandre Julliard
Alexandre Julliard0799c1a2002-03-09 23:29:33 +00005 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Alexandre Julliard401710d1993-09-04 10:09:32 +000019 */
20
Alexandre Julliardc6c09441997-01-12 18:32:19 +000021#ifndef __WINE_DCE_H
22#define __WINE_DCE_H
Alexandre Julliard401710d1993-09-04 10:09:32 +000023
Patrik Stridvall6cc47d42000-03-08 18:26:56 +000024#include "windef.h"
25
Alexandre Julliardc7d39312001-04-18 17:41:57 +000026/* internal DCX flags */
Alexandre Julliard491502b1997-11-01 19:08:16 +000027#define DCX_DCEEMPTY 0x00000800
Alexandre Julliard1e9ac791996-06-06 18:38:27 +000028#define DCX_DCEBUSY 0x00001000
Alexandre Julliard44ed71f1997-12-21 19:17:50 +000029#define DCX_DCEDIRTY 0x00002000
Alexandre Julliard1e9ac791996-06-06 18:38:27 +000030#define DCX_WINDOWPAINT 0x00020000
31#define DCX_KEEPCLIPRGN 0x00040000
32#define DCX_NOCLIPCHILDREN 0x00080000
33
Alexandre Julliard5f721f81994-01-04 20:14:34 +000034typedef enum
35{
36 DCE_CACHE_DC, /* This is a cached DC (allocated by USER) */
37 DCE_CLASS_DC, /* This is a class DC (style CS_CLASSDC) */
38 DCE_WINDOW_DC /* This is a window DC (style CS_OWNDC) */
39} DCE_TYPE;
40
41
Alexandre Julliard401710d1993-09-04 10:09:32 +000042typedef struct tagDCE
43{
Alexandre Julliard2c69f6d1996-09-28 18:11:01 +000044 struct tagDCE *next;
Alexandre Julliarda3960291999-02-26 11:11:13 +000045 HDC hDC;
46 HWND hwndCurrent;
47 HWND hwndDC;
48 HRGN hClipRgn;
Alexandre Julliard2c69f6d1996-09-28 18:11:01 +000049 DCE_TYPE type;
50 DWORD DCXflags;
Alexandre Julliard401710d1993-09-04 10:09:32 +000051} DCE;
52
Alexandre Julliarda3960291999-02-26 11:11:13 +000053extern DCE* DCE_AllocDCE( HWND hWnd, DCE_TYPE type );
Alexandre Julliard491502b1997-11-01 19:08:16 +000054extern DCE* DCE_FreeDCE( DCE *dce );
Alexandre Julliard0801ffc2001-08-24 00:26:59 +000055extern void DCE_FreeWindowDCE( HWND );
56extern INT DCE_ExcludeRgn( HDC, HWND, HRGN );
57extern BOOL DCE_InvalidateDCE( HWND, const RECT* );
Alexandre Julliard5f721f81994-01-04 20:14:34 +000058
Alexandre Julliardc6c09441997-01-12 18:32:19 +000059#endif /* __WINE_DCE_H */