4 * Copyright 1993 Alexandre Julliard
5 * Copyright 2021 Jacek Caban for CodeWeavers
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #ifndef __WINE_GDI_PRIVATE_H
23 #define __WINE_GDI_PRIVATE_H
31 void set_gdi_client_ptr( HGDIOBJ handle
, void *ptr
) DECLSPEC_HIDDEN
;
32 void *get_gdi_client_ptr( HGDIOBJ handle
, WORD type
) DECLSPEC_HIDDEN
;
34 static inline WORD
gdi_handle_type( HGDIOBJ obj
)
36 unsigned int handle
= HandleToULong( obj
);
37 return (handle
& NTGDI_HANDLE_TYPE_MASK
) >> NTGDI_HANDLE_TYPE_SHIFT
;
40 static inline BOOL
is_meta_dc( HDC hdc
)
42 return gdi_handle_type( hdc
) == NTGDI_OBJ_METADC
;
45 extern BOOL
METADC_Arc( HDC hdc
, INT left
, INT top
, INT right
, INT bottom
,
46 INT xstart
, INT ystart
, INT xend
, INT yend
) DECLSPEC_HIDDEN
;
47 extern BOOL
METADC_Chord( HDC hdc
, INT left
, INT top
, INT right
, INT bottom
, INT xstart
,
48 INT ystart
, INT xend
, INT yend
) DECLSPEC_HIDDEN
;
49 extern BOOL
METADC_Ellipse( HDC hdc
, INT left
, INT top
, INT right
, INT bottom
) DECLSPEC_HIDDEN
;
50 extern BOOL
METADC_LineTo( HDC hdc
, INT x
, INT y
) DECLSPEC_HIDDEN
;
51 extern BOOL
METADC_MoveTo( HDC hdc
, INT x
, INT y
) DECLSPEC_HIDDEN
;
52 extern BOOL
METADC_Pie( HDC hdc
, INT left
, INT top
, INT right
, INT bottom
,
53 INT xstart
, INT ystart
, INT xend
, INT yend
) DECLSPEC_HIDDEN
;
54 extern BOOL
METADC_PolyPolygon( HDC hdc
, const POINT
*points
, const INT
*counts
,
55 UINT polygons
) DECLSPEC_HIDDEN
;
56 extern BOOL
METADC_Polygon( HDC hdc
, const POINT
*points
, INT count
) DECLSPEC_HIDDEN
;
57 extern BOOL
METADC_Polyline( HDC hdc
, const POINT
*points
,INT count
) DECLSPEC_HIDDEN
;
58 extern BOOL
METADC_Rectangle( HDC hdc
, INT left
, INT top
, INT right
, INT bottom
) DECLSPEC_HIDDEN
;
59 extern BOOL
METADC_RoundRect( HDC hdc
, INT left
, INT top
, INT right
, INT bottom
,
60 INT ell_width
, INT ell_height
) DECLSPEC_HIDDEN
;
62 /* enhanced metafiles */
63 extern BOOL
EMFDC_AngleArc( DC_ATTR
*dc_attr
, INT x
, INT y
, DWORD radius
, FLOAT start
,
64 FLOAT sweep
) DECLSPEC_HIDDEN
;
65 extern BOOL
EMFDC_ArcChordPie( DC_ATTR
*dc_attr
, INT left
, INT top
, INT right
,
66 INT bottom
, INT xstart
, INT ystart
, INT xend
,
67 INT yend
, DWORD type
) DECLSPEC_HIDDEN
;
68 extern BOOL
EMFDC_Ellipse( DC_ATTR
*dc_attr
, INT left
, INT top
, INT right
,
69 INT bottom
) DECLSPEC_HIDDEN
;
70 extern BOOL
EMFDC_LineTo( DC_ATTR
*dc_attr
, INT x
, INT y
) DECLSPEC_HIDDEN
;
71 extern BOOL
EMFDC_MoveTo( DC_ATTR
*dc_attr
, INT x
, INT y
) DECLSPEC_HIDDEN
;
72 extern BOOL
EMFDC_PolyBezier( DC_ATTR
*dc_attr
, const POINT
*points
, DWORD count
) DECLSPEC_HIDDEN
;
73 extern BOOL
EMFDC_PolyPolyline( DC_ATTR
*dc_attr
, const POINT
*points
, const DWORD
*counts
,
74 DWORD polys
) DECLSPEC_HIDDEN
;
75 extern BOOL
EMFDC_PolyPolygon( DC_ATTR
*dc_attr
, const POINT
*points
, const INT
*counts
,
76 UINT polys
) DECLSPEC_HIDDEN
;
77 extern BOOL
EMFDC_Polygon( DC_ATTR
*dc_attr
, const POINT
*points
, INT count
) DECLSPEC_HIDDEN
;
78 extern BOOL
EMFDC_Polyline( DC_ATTR
*dc_attr
, const POINT
*points
, INT count
) DECLSPEC_HIDDEN
;
79 extern BOOL
EMFDC_PolylineTo( DC_ATTR
*dc_attr
, const POINT
*points
, INT count
) DECLSPEC_HIDDEN
;
80 extern BOOL
EMFDC_Rectangle( DC_ATTR
*dc_attr
, INT left
, INT top
, INT right
,
81 INT bottom
) DECLSPEC_HIDDEN
;
82 extern BOOL
EMFDC_RoundRect( DC_ATTR
*dc_attr
, INT left
, INT top
, INT right
, INT bottom
,
83 INT ell_width
, INT ell_height
) DECLSPEC_HIDDEN
;
85 #endif /* __WINE_GDI_PRIVATE_H */