ReactOS  0.4.15-dev-3295-gaa8fc87
gdi_private.h
Go to the documentation of this file.
1 /*
2  * GDI definitions
3  *
4  * Copyright 1993 Alexandre Julliard
5  *
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., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19  */
20 
21 #ifndef __WINE_GDI_PRIVATE_H
22 #define __WINE_GDI_PRIVATE_H
23 
24 #include <limits.h>
25 #include <math.h>
26 #include "windef.h"
27 #include "winbase.h"
28 #include "wingdi.h"
29 
30 #ifndef _NTGDITYP_
31 typedef enum GDILoObjType
32 {
51 #endif
52 
53 #define GDI_HANDLE_TYPE_MASK 0x007f0000
54 #define GDI_HANDLE_GET_TYPE(h) \
55  (((ULONG_PTR)(h)) & GDI_HANDLE_TYPE_MASK)
56 
59 #define GdiWorldSpaceToDeviceSpace 0x204
61 /* Get/SetBounds/Rect support. */
62 #define DCB_WINDOWMGR 0x8000 /* Queries the Windows bounding rectangle instead of the application's */
65 
69 
70 /* Metafile defines */
71 #define META_EOF 0x0000
72 /* values of mtType in METAHEADER. Note however that the disk image of a disk
73  based metafile has mtType == 1 */
74 #define METAFILE_MEMORY 1
75 #define METAFILE_DISK 2
76 #define MFHEADERSIZE (sizeof(METAHEADER))
77 #define MFVERSION 0x300
78 
79 typedef struct {
84 
85 typedef struct tagEMRESCAPE {
89  BYTE Data[1];
91 
93 
95 {
101 };
102 
103 /* DC_ATTR LCD Types */
104 #define LDC_LDC 0x00000001
105 #define LDC_EMFLDC 0x00000002
106 
107 typedef struct emf *PEMF;
108 
109 typedef struct tagWINEDC
110 {
114  PEMF emf; /* Pointer to ENHMETAFILE structure */
123  ULONG ufi[2];
128  HBRUSH hBrush;
129  HPEN hPen;
133 } WINEDC, DC;
134 
135 static inline BOOL is_meta_dc( HDC hdc )
136 {
138 }
139 
140 
141 /* brush.c */
143 
144 /* dc.c */
146 extern void free_dc_ptr( DC *dc ) DECLSPEC_HIDDEN;
147 extern DC *get_dc_ptr( HDC hdc ) DECLSPEC_HIDDEN;
148 extern void release_dc_ptr( DC *dc ) DECLSPEC_HIDDEN;
149 
150 /* dib.c */
151 extern int bitmap_info_size( const BITMAPINFO * info, WORD coloruse ) DECLSPEC_HIDDEN;
152 
153 /* enhmetafile.c */
154 extern HENHMETAFILE EMF_Create_HENHMETAFILE(ENHMETAHEADER *emh, DWORD filesize, BOOL on_disk ) DECLSPEC_HIDDEN;
155 
156 /* gdiobj.c */
157 extern HGDIOBJ alloc_gdi_handle( void *obj, WORD type, const struct gdi_obj_funcs *funcs ) DECLSPEC_HIDDEN;
160 extern void *GDI_GetObjPtr( HGDIOBJ, WORD ) DECLSPEC_HIDDEN;
161 extern void GDI_ReleaseObj( HGDIOBJ ) DECLSPEC_HIDDEN;
164 
165 /* metafile.c */
166 extern HMETAFILE MF_Create_HMETAFILE(METAHEADER *mh) DECLSPEC_HIDDEN;
168 
169 /* Format of comment record added by GetWinMetaFileBits */
170 #include <pshpack2.h>
171 typedef struct
172 {
173  DWORD magic; /* WMFC */
174  DWORD comment_type; /* Always 0x00000001 */
175  DWORD version; /* Always 0x00010000 */
177  DWORD flags; /* Always 0 */
182  BYTE emf_data[1];
184 #include <poppack.h>
185 
186 #define WMFC_MAGIC 0x43464d57
187 /* palette.c */
188 extern HPALETTE WINAPI GDISelectPalette( HDC hdc, HPALETTE hpal, WORD wBkg) DECLSPEC_HIDDEN;
190 
192 
193 #define EMR_SETLINKEDUFI 119
194 
195 /* Undocumented value for DIB's iUsage: Indicates a mono DIB w/o pal entries */
196 #define DIB_PAL_MONO 2
197 
198 BOOL WINAPI SetVirtualResolution(HDC hdc, DWORD horz_res, DWORD vert_res, DWORD horz_size, DWORD vert_size);
199 
200 static inline int get_dib_stride( int width, int bpp )
201 {
202  return ((width * bpp + 31) >> 3) & ~3;
203 }
204 
205 static inline int get_dib_image_size( const BITMAPINFO *info )
206 {
207  return get_dib_stride( info->bmiHeader.biWidth, info->bmiHeader.biBitCount )
208  * abs( info->bmiHeader.biHeight );
209 }
210 
211 /* only for use on sanitized BITMAPINFO structures */
212 static inline int get_dib_info_size( const BITMAPINFO *info, UINT coloruse )
213 {
214  if (info->bmiHeader.biCompression == BI_BITFIELDS)
215  return sizeof(BITMAPINFOHEADER) + 3 * sizeof(DWORD);
216  if (coloruse == DIB_PAL_COLORS)
217  return sizeof(BITMAPINFOHEADER) + info->bmiHeader.biClrUsed * sizeof(WORD);
218  return FIELD_OFFSET( BITMAPINFO, bmiColors[info->bmiHeader.biClrUsed] );
219 }
220 
221 #define GdiWorldSpaceToDeviceSpace 0x204
223 
224 /* Special sauce for reactos */
225 #define GDIRealizePalette RealizePalette
226 #define GDISelectPalette SelectPalette
227 
229 #define get_full_gdi_handle GdiFixUpHandle
230 
231 #if 0
232 BOOL WINAPI SetWorldTransformForMetafile(HDC hdc, const XFORM *pxform);
233 #define SetWorldTransform SetWorldTransformForMetafile
234 #endif
235 #ifdef _M_ARM
236 #define DbgRaiseAssertionFailure() __emit(0xdefc)
237 #else
238 #define DbgRaiseAssertionFailure() __int2c()
239 #endif // _M_ARM
240 
241 #undef ASSERT
242 #define ASSERT(x) if (!(x)) DbgRaiseAssertionFailure()
243 
245 BOOL EMFDRV_RoundRect( WINEDC *dc, INT left, INT top, INT right, INT bottom, INT ell_width, INT ell_height );
246 BOOL EMFDRV_ArcChordPie( WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend, DWORD type );
247 BOOL EMFDRV_Arc( WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend );
248 BOOL EMFDRV_ArcTo( WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend );
249 BOOL EMFDRV_Pie( WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend );
250 BOOL EMFDRV_Chord( WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend );
255 BOOL EMFDRV_PolyBezier( WINEDC *dc, const POINT *pts, DWORD count );
257 BOOL EMFDRV_PolyPolyline( WINEDC *dc, const POINT *pt, const DWORD *counts, UINT polys );
258 BOOL EMFDRV_PolyPolygon( WINEDC *dc, const POINT *pt, const INT *counts, UINT polys );
259 BOOL EMFDRV_PolyDraw( WINEDC *dc, const POINT *pts, const BYTE *types, DWORD count );
260 BOOL EMFDRV_FillRgn( WINEDC *dc, HRGN hrgn, HBRUSH hbrush );
261 BOOL EMFDRV_FrameRgn( WINEDC *dc, HRGN hrgn, HBRUSH hbrush, INT width, INT height );
263 BOOL EMFDRV_ExtTextOut( WINEDC *dc, INT x, INT y, UINT flags, const RECT *lprect,LPCWSTR str, UINT count, const INT *lpDx );
264 BOOL EMFDRV_GradientFill( WINEDC *dc, TRIVERTEX *vert_array, ULONG nvert, void *grad_array, ULONG ngrad, ULONG mode );
268 BOOL EMFDRV_AlphaBlend( WINEDC *dc_dst, INT x_dst, INT y_dst, INT width_dst, INT height_dst,HDC dc_src, INT x_src, INT y_src, INT width_src, INT height_src, BLENDFUNCTION func );
270 INT EMFDRV_StretchDIBits( WINEDC *dc, INT x_dst, INT y_dst, INT width_dst,INT height_dst, INT x_src, INT y_src, INT width_src, INT height_src, const void *bits, BITMAPINFO *info, UINT wUsage, DWORD dwRop );
271 INT EMFDRV_SetDIBitsToDevice( WINEDC *dc, INT x_dst, INT y_dst, DWORD width, DWORD height, INT x_src, INT y_src, UINT startscan, UINT lines, const void *bits, BITMAPINFO *info, UINT usage );
273 
274 
275 #endif /* __WINE_GDI_PRIVATE_H */
276 
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble * u
Definition: glfuncs.h:240
BOOL EMFDRV_GradientFill(WINEDC *dc, TRIVERTEX *vert_array, ULONG nvert, void *grad_array, ULONG ngrad, ULONG mode)
Definition: emfdrv.c:369
BOOL EMFDRV_RoundRect(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT ell_width, INT ell_height)
Definition: emfdrv.c:99
GLenum func
Definition: glext.h:6028
#define abs(i)
Definition: fconv.c:206
struct EMRSETTEXTJUSTIFICATION * PEMRSETTEXTJUSTIFICATION
GLint GLint GLsizei width
Definition: gl.h:1546
struct tagEMRESCAPE EMRESCAPE
LIST_ENTRY leRecords
Definition: gdi_private.h:126
ABORTPROC pAbortProc
Definition: gdi_private.h:116
static HBRUSH hbrush
enum GDILoObjType GDILOOBJTYPE
BOOL EMFDRV_FillPath(WINEDC *dc)
Definition: emfdrv.c:376
BOOL EMFDRV_PolyBezier(WINEDC *dc, const POINT *pts, DWORD count)
Definition: emfdrv.c:311
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
HGDIOBJ alloc_gdi_handle(void *obj, WORD type, const struct gdi_obj_funcs *funcs) DECLSPEC_HIDDEN
#define DIB_PAL_COLORS
Definition: wingdi.h:366
#define _Out_
Definition: ms_sal.h:345
INT save_level
Definition: gdi_private.h:131
#define pt(x, y)
Definition: drawing.c:79
struct tagBITMAPINFOHEADER BITMAPINFOHEADER
GLuint GLuint GLsizei count
Definition: gl.h:1545
BOOL EMFDRV_Pie(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
Definition: emfdrv.c:241
#define INT
Definition: polytest.cpp:20
BOOL EMFDRV_Chord(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
Definition: emfdrv.c:248
static HDC
Definition: imagelist.c:92
#define DECLSPEC_HIDDEN
Definition: precomp.h:8
struct tagWINEDC WINEDC
u32_t magic(void)
enum GDILoObjType * PGDILOOBJTYPE
GLuint buffer
Definition: glext.h:5915
GLint GLint GLint GLint GLint x
Definition: gl.h:1548
HBITMAP EMFDRV_SelectBitmap(WINEDC *dc, HBITMAP hbitmap)
Definition: emfdrv.c:426
INT EMFDRV_StretchDIBits(WINEDC *dc, INT x_dst, INT y_dst, INT width_dst, INT height_dst, INT x_src, INT y_src, INT width_src, INT height_src, const void *bits, BITMAPINFO *info, UINT wUsage, DWORD dwRop)
Definition: emfdrv.c:408
uint16_t * PWCHAR
Definition: typedefs.h:56
char * LPSTR
Definition: xmlstorage.h:182
const char * filename
Definition: ioapi.h:135
#define BOOL
Definition: nt_native.h:43
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
Definition: glext.h:10929
int32_t INT
Definition: typedefs.h:58
void release_dc_ptr(DC *dc) DECLSPEC_HIDDEN
#define BI_BITFIELDS
Definition: mmreg.h:507
BOOL WINAPI GetBoundsRectAlt(HDC hdc, LPRECT prc, UINT flags)
Definition: misc.c:1068
BOOL EMFDRV_Rectangle(WINEDC *dc, INT left, INT top, INT right, INT bottom)
Definition: emfdrv.c:275
DWORD WINAPI GetDCDWord(_In_ HDC hdc, _In_ UINT u, _In_ DWORD dwError)
Definition: dc.c:787
void GDI_ReleaseObj(HGDIOBJ) DECLSPEC_HIDDEN
Definition: rosglue.c:100
BOOL EMFDRV_ArcChordPie(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend, DWORD type)
Definition: emfdrv.c:120
HANDLE hPrinter
Definition: gdi_private.h:118
HDC APIENTRY NtGdiCreateMetafileDC(_In_ HDC hdc)
_In_ DWORD _Out_ LPXFORM pxf
Definition: ntgdi.h:2251
BOOL EMFDRV_PatBlt(WINEDC *dc, INT left, INT top, INT width, INT height, DWORD rop)
Definition: emfdrv.c:402
namespace GUID const ADDRINFOEXW ADDRINFOEXW struct timeval OVERLAPPED LPLOOKUPSERVICE_COMPLETION_ROUTINE HANDLE * handle
Definition: sock.c:82
RECTL emf_bounds
Definition: gdi_private.h:132
int bitmap_info_size(const BITMAPINFO *info, WORD coloruse) DECLSPEC_HIDDEN
Definition: rosglue.c:199
BOOL EMFDRV_PolylineTo(WINEDC *dc, const POINT *pt, INT count)
Definition: emfdrv.c:305
COLORREF EMFDRV_SetPixel(WINEDC *dc, INT x, INT y, COLORREF color)
Definition: emfdrv.c:295
unsigned int BOOL
Definition: ntddk_ex.h:94
GLuint color
Definition: glext.h:6243
INT(* pGetObjectA)(HGDIOBJ handle, INT count, LPVOID buffer)
Definition: gdi_private.h:97
BOOL APIENTRY NtGdiGetTransform(_In_ HDC hdc, _In_ DWORD iXform, _Out_ LPXFORM pxf)
static int rop(int rop, int src, int dst)
Definition: nanoxwin.c:124
BOOL WINAPI SetBoundsRectAlt(HDC hdc, LPRECT prc, UINT flags)
Definition: misc.c:1075
#define GDIRealizePalette
Definition: gdi_private.h:225
struct tagEMRESCAPE * PEMRNAMEDESCAPE
const WCHAR * str
struct tagWINEDC DC
#define _In_
Definition: ms_sal.h:308
GLint GLint bottom
Definition: glext.h:7726
BOOL EMFDRV_AlphaBlend(WINEDC *dc_dst, INT x_dst, INT y_dst, INT width_dst, INT height_dst, HDC dc_src, INT x_src, INT y_src, INT width_src, INT height_src, BLENDFUNCTION func)
Definition: emfdrv.c:394
HBRUSH hBrush
Definition: gdi_private.h:128
DC * alloc_dc_ptr(WORD magic) DECLSPEC_HIDDEN
Definition: rosglue.c:106
PDEVMODEW pdm
Definition: gdi_private.h:119
INT WINAPI NamedEscape(HDC, PWCHAR, INT, INT, LPSTR, INT, LPSTR)
Definition: misc.c:229
eMaj lines
Definition: tritemp.h:206
BOOL EMFDRV_PolyPolygon(WINEDC *dc, const POINT *pt, const INT *counts, UINT polys)
Definition: emfdrv.c:330
Definition: polytest.cpp:40
HENHMETAFILE EMF_Create_HENHMETAFILE(ENHMETAHEADER *emh, DWORD filesize, BOOL on_disk) DECLSPEC_HIDDEN
Definition: enhmetafile.c:259
Definition: cmds.c:130
_In_ DWORD iXform
Definition: ntgdi.h:2251
BOOL(* pDeleteObject)(HGDIOBJ handle)
Definition: gdi_private.h:100
BOOL EMFDRV_Ellipse(WINEDC *dc, INT left, INT top, INT right, INT bottom)
Definition: emfdrv.c:255
BOOL(CALLBACK * ABORTPROC)(HDC, int)
Definition: wingdi.h:2911
ULONG Flags
Definition: gdi_private.h:112
DWORD COLORREF
Definition: windef.h:300
HMETAFILE MF_Create_HMETAFILE(METAHEADER *mh) DECLSPEC_HIDDEN
Definition: metafile.c:107
BOOL EMFDRV_ExtTextOut(WINEDC *dc, INT x, INT y, UINT flags, const RECT *lprect, LPCWSTR str, UINT count, const INT *lpDx)
Definition: emfdrv.c:362
#define WINAPI
Definition: msvc.h:6
static struct __wine_debug_functions funcs
Definition: debug.c:59
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned long DWORD
Definition: ntddk_ex.h:95
GLint left
Definition: glext.h:7726
PVOID WINAPI GdiGetClientObjLink(_In_ HGDIOBJ hobj)
Definition: clientobj.c:61
GLdouble GLdouble right
Definition: glext.h:10859
static int get_dib_stride(int width, int bpp)
Definition: gdi_private.h:200
BOOL EMFDRV_Arc(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
Definition: emfdrv.c:227
GLbitfield flags
Definition: glext.h:7161
BOOL get_brush_bitmap_info(HBRUSH handle, BITMAPINFO *info, void *bits, UINT *usage) DECLSPEC_HIDDEN
ULONG DevCaps[36]
Definition: gdi_private.h:127
void free_dc_ptr(DC *dc) DECLSPEC_HIDDEN
HGDIOBJ(* pSelectObject)(HGDIOBJ handle, HDC hdc)
Definition: gdi_private.h:96
HDC hdc
Definition: main.c:9
LPWSTR pwszPort
Definition: gdi_private.h:115
static HRGN hrgn
Definition: win.c:55
HGDIOBJ WINAPI GdiCreateClientObj(_In_ PVOID pvObject, _In_ GDILOOBJTYPE eObjType)
Definition: clientobj.c:148
GLsizeiptr const GLvoid GLenum usage
Definition: glext.h:5919
PVOID pUMdhpdev
Definition: gdi_private.h:121
ULONG ufi[2]
Definition: gdi_private.h:123
#define GDISelectPalette
Definition: gdi_private.h:226
BOOL WINAPI SetVirtualResolution(HDC hdc, DWORD horz_res, DWORD vert_res, DWORD horz_size, DWORD vert_size)
Definition: rosglue.c:278
Definition: typedefs.h:119
BOOL(* pUnrealizeObject)(HGDIOBJ handle)
Definition: gdi_private.h:99
GLenum mode
Definition: glext.h:6217
Definition: emfdc.c:44
unsigned char BYTE
Definition: xxhash.c:193
BOOL EMFDRV_FrameRgn(WINEDC *dc, HRGN hrgn, HBRUSH hbrush, INT width, INT height)
Definition: emfdrv.c:350
GLint GLint GLsizei GLsizei height
Definition: gl.h:1546
static int get_dib_image_size(const BITMAPINFO *info)
Definition: gdi_private.h:205
BOOL EMFDRV_ArcTo(WINEDC *dc, INT left, INT top, INT right, INT bottom, INT xstart, INT ystart, INT xend, INT yend)
Definition: emfdrv.c:234
void * HGDIOBJ
Definition: windef.h:252
BOOL EMFDRV_StrokePath(WINEDC *dc)
Definition: emfdrv.c:388
BOOL EMFDRV_PolyPolyline(WINEDC *dc, const POINT *pt, const DWORD *counts, UINT polys)
Definition: emfdrv.c:323
BOOL EMFDRV_PolyDraw(WINEDC *dc, const POINT *pts, const BYTE *types, DWORD count)
Definition: emfdrv.c:337
DWORD CallBackTick
Definition: gdi_private.h:117
static BOOL is_meta_dc(HDC hdc)
Definition: gdi_private.h:135
#define FIELD_OFFSET(t, f)
Definition: typedefs.h:255
BOOL EMFDRV_StrokeAndFillPath(WINEDC *dc)
Definition: emfdrv.c:382
unsigned int UINT
Definition: ndis.h:50
GDILoObjType
Definition: gdi_private.h:31
ULONG cjSize
Definition: gdi_private.h:125
DC * get_dc_ptr(HDC hdc) DECLSPEC_HIDDEN
Definition: rosglue.c:147
PVOID pvEMFSpoolData
Definition: gdi_private.h:124
GLint GLint GLint GLint GLint GLint y
Definition: gl.h:1548
PVOID WINAPI GdiDeleteClientObj(_In_ HGDIOBJ hobj)
Definition: clientobj.c:173
HGDIOBJ WINAPI GdiFixUpHandle(HGDIOBJ hGdiObj)
Definition: misc.c:734
void GDI_hdc_using_object(HGDIOBJ obj, HDC hdc) DECLSPEC_HIDDEN
Definition: rosglue.c:166
CONST void * LPCVOID
Definition: windef.h:191
BOOL EMFDRV_FillRgn(WINEDC *dc, HRGN hrgn, HBRUSH hbrush)
Definition: emfdrv.c:344
METAHEADER * MF_CreateMetaHeaderDisk(METAHEADER *mr, LPCVOID filename, BOOL unicode) DECLSPEC_HIDDEN
Definition: metafile.c:271
void GDI_hdc_not_using_object(HGDIOBJ obj, HDC hdc) DECLSPEC_HIDDEN
Definition: rosglue.c:182
static int get_dib_info_size(const BITMAPINFO *info, UINT coloruse)
Definition: gdi_private.h:212
unsigned int ULONG
Definition: retypes.h:1
void * free_gdi_handle(HGDIOBJ handle) DECLSPEC_HIDDEN
Definition: rosglue.c:59
void * GDI_GetObjPtr(HGDIOBJ, WORD) DECLSPEC_HIDDEN
Definition: rosglue.c:66
static const WCHAR dc[]
#define get_full_gdi_handle
Definition: gdi_private.h:229
DWORD bpp
Definition: surface.c:185
static HBITMAP hbitmap
static HBITMAP
Definition: button.c:44
BOOL EMFDRV_InvertRgn(WINEDC *dc, HRGN hrgn)
Definition: emfdrv.c:356
GLdouble GLdouble GLdouble GLdouble top
Definition: glext.h:10859
GLuint GLuint GLsizei GLenum type
Definition: gl.h:1545
INT EMFDRV_SetDIBitsToDevice(WINEDC *dc, INT x_dst, INT y_dst, DWORD width, DWORD height, INT x_src, INT y_src, UINT startscan, UINT lines, const void *bits, BITMAPINFO *info, UINT usage)
Definition: emfdrv.c:417
HRGN APIENTRY NtGdiPathToRegion(_In_ HDC hdc)
WCHAR * LPWSTR
Definition: xmlstorage.h:184
BOOL EMFDRV_LineTo(WINEDC *dc, INT x, INT y)
Definition: emfdrv.c:83
struct tagEMRESCAPE * PEMRESCAPE
_Out_ LPRECT prc
Definition: ntgdi.h:1658
BOOL EMFDRV_PolyBezierTo(WINEDC *dc, const POINT *pts, DWORD count)
Definition: emfdrv.c:317
PVOID pUMPDev
Definition: gdi_private.h:120
struct emf * PEMF
Definition: gdi_private.h:107
PVOID UFIHashTable[3]
Definition: gdi_private.h:122
#define APIENTRY
Definition: api.h:79
INT(* pGetObjectW)(HGDIOBJ handle, INT count, LPVOID buffer)
Definition: gdi_private.h:98
struct tagEMRESCAPE EMRNAMEDESCAPE
#define GDI_HANDLE_GET_TYPE(h)
Definition: gdi_private.h:54