ReactOS  0.4.14-dev-606-g14ebc0b
gdi_driver.h
Go to the documentation of this file.
1 /*
2  * Definitions for Wine GDI drivers
3  *
4  * Copyright 2011 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_WINE_GDI_DRIVER_H
22 #define __WINE_WINE_GDI_DRIVER_H
23 
24 //#include "wine/list.h"
25 
26 struct gdi_dc_funcs;
27 struct opengl_funcs;
28 
29 typedef struct gdi_physdev
30 {
31  const struct gdi_dc_funcs *funcs;
32  struct gdi_physdev *next;
34 } *PHYSDEV;
35 
37 {
38  int log_x; /* original position and size, in logical coords */
39  int log_y;
40  int log_width;
42  int x; /* mapped position and size, in device coords */
43  int y;
44  int width;
45  int height;
46  RECT visrect; /* rectangle clipped to the visible part, in device coords */
47  DWORD layout; /* DC layout */
48 };
49 
51 {
52  void *ptr; /* pointer to the bits */
53  BOOL is_copy; /* whether this is a copy of the bits that can be modified */
54  void (*free)(struct gdi_image_bits *); /* callback for freeing the bits */
55  void *param; /* extra parameter for callback private use */
56 };
57 
59 {
60  BITMAPINFO *info; /* DIB info */
61  struct gdi_image_bits bits; /* DIB bits */
62  UINT usage; /* color usage for DIB info */
63 };
64 
66 {
95  BOOL (*pFillRgn)(PHYSDEV,HRGN,HBRUSH);
98  BOOL (*pFrameRgn)(PHYSDEV,HRGN,HBRUSH,INT,INT);
138  BOOL (*pPolyDraw)(PHYSDEV,const POINT*,const BYTE *,DWORD);
139  BOOL (*pPolyPolygon)(PHYSDEV,const POINT*,const INT*,UINT);
155  HBRUSH (*pSelectBrush)(PHYSDEV,HBRUSH,const struct brush_pattern*);
158  HPALETTE (*pSelectPalette)(PHYSDEV,HPALETTE,BOOL);
159  HPEN (*pSelectPen)(PHYSDEV,HPEN,const struct brush_pattern*);
192  BOOL (*pUnrealizePalette)(HPALETTE);
194  struct opengl_funcs * (*wine_get_wgl_driver)(PHYSDEV,UINT);
195 
196  /* priority order for the driver on the stack */
198 };
199 
200 /* increment this when you change the DC function table */
201 #define WINE_GDI_DRIVER_VERSION 49
202 
203 #define GDI_PRIORITY_NULL_DRV 0 /* null driver */
204 #define GDI_PRIORITY_FONT_DRV 100 /* any font driver */
205 #define GDI_PRIORITY_GRAPHICS_DRV 200 /* any graphics driver */
206 #define GDI_PRIORITY_DIB_DRV 300 /* the DIB driver */
207 #define GDI_PRIORITY_PATH_DRV 400 /* the path driver */
208 
210 {
211  while (!((void **)dev->funcs)[offset / sizeof(void *)]) dev = dev->next;
212  return dev;
213 }
214 
215 #define GET_NEXT_PHYSDEV(dev,func) \
216  get_physdev_entry_point( (dev)->next, FIELD_OFFSET(struct gdi_dc_funcs,func))
217 /*
218 static inline void push_dc_driver( PHYSDEV *dev, PHYSDEV physdev, const struct gdi_dc_funcs *funcs )
219 {
220  while ((*dev)->funcs->priority > funcs->priority) dev = &(*dev)->next;
221  physdev->funcs = funcs;
222  physdev->next = *dev;
223  physdev->hdc = (*dev)->hdc;
224  *dev = physdev;
225 }
226 */
227 /* support for window surfaces */
228 
229 struct window_surface;
230 
232 {
233  void (*lock)( struct window_surface *surface );
234  void (*unlock)( struct window_surface *surface );
235  void* (*get_info)( struct window_surface *surface, BITMAPINFO *info );
236  RECT* (*get_bounds)( struct window_surface *surface );
237  void (*set_region)( struct window_surface *surface, HRGN region );
238  void (*flush)( struct window_surface *surface );
239  void (*destroy)( struct window_surface *surface );
240 };
241 
243 {
244  const struct window_surface_funcs *funcs; /* driver-specific implementations */
245 // struct list entry; /* entry in global list managed by user32 */
246  LONG ref; /* reference count */
247  RECT rect; /* constant, no locking needed */
248  /* driver-specific fields here */
249 };
250 
251 static inline ULONG window_surface_add_ref( struct window_surface *surface )
252 {
253  return InterlockedIncrement( &surface->ref );
254 }
255 
256 static inline ULONG window_surface_release( struct window_surface *surface )
257 {
258  ULONG ret = InterlockedDecrement( &surface->ref );
259  if (!ret) surface->funcs->destroy( surface );
260  return ret;
261 }
262 
263 /* the DC hook support is only exported on Win16, the 32-bit version is a Wine extension */
264 
265 #define DCHC_INVALIDVISRGN 0x0001
266 #define DCHC_DELETEDC 0x0002
267 #define DCHF_INVALIDATEVISRGN 0x0001
268 #define DCHF_VALIDATEVISRGN 0x0002
269 #define DCHF_RESETDC 0x0004 /* Wine extension */
270 
272 
276 
278 extern void CDECL __wine_set_visible_region( HDC hdc, HRGN hrgn, const RECT *vis_rect,
279  const RECT *device_rect, struct window_surface *surface );
282 
283 #endif /* __WINE_WINE_GDI_DRIVER_H */
void(* free)(struct gdi_image_bits *)
Definition: gdi_driver.h:54
BOOL(* pArcTo)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT)
Definition: gdi_driver.h:72
UINT(* pRealizeDefaultPalette)(PHYSDEV)
Definition: gdi_driver.h:145
BOOL(* pPatBlt)(PHYSDEV, struct bitblt_coords *, DWORD)
Definition: gdi_driver.h:134
struct tagKERNINGPAIR * LPKERNINGPAIR
INT(* pGetTextFace)(PHYSDEV, INT, LPWSTR)
Definition: gdi_driver.h:122
static ULONG window_surface_release(struct window_surface *surface)
Definition: gdi_driver.h:256
INT(* pStartDoc)(PHYSDEV, const DOCINFOW *)
Definition: gdi_driver.h:186
BOOL(* pScaleViewportExtEx)(PHYSDEV, INT, INT, INT, INT, SIZE *)
Definition: gdi_driver.h:152
BOOL(* pRestoreDC)(PHYSDEV, INT)
Definition: gdi_driver.h:149
BOOL(* pPolyPolygon)(PHYSDEV, const POINT *, const INT *, UINT)
Definition: gdi_driver.h:139
struct png_info_def **typedef void(__cdecl typeof(png_destroy_read_struct))(struct png_struct_def **
Definition: typeof.h:49
struct tagLOGFONTW * LPLOGFONTW
BOOL(* pGetICMProfile)(PHYSDEV, LPDWORD, LPWSTR)
Definition: gdi_driver.h:112
#define DWORD_PTR
Definition: treelist.c:76
const WCHAR * LPCWSTR
Definition: xmlstorage.h:185
COLORREF(* pSetDCPenColor)(PHYSDEV, COLORREF)
Definition: gdi_driver.h:165
#define FLOAT
Definition: i386-dis.c:516
BOOL(* pBeginPath)(PHYSDEV)
Definition: gdi_driver.h:73
INT(* pOffsetClipRgn)(PHYSDEV, INT, INT)
Definition: gdi_driver.h:130
void(* set_region)(struct window_surface *surface, HRGN region)
Definition: gdi_driver.h:237
struct gdi_physdev * next
Definition: gdi_driver.h:32
BOOL(* pSetWorldTransform)(PHYSDEV, const XFORM *)
Definition: gdi_driver.h:185
static PHYSDEV get_physdev_entry_point(PHYSDEV dev, size_t offset)
Definition: gdi_driver.h:209
DWORD(* pDeviceCapabilities)(LPSTR, LPCSTR, LPCSTR, WORD, LPSTR, LPDEVMODEA)
Definition: gdi_driver.h:81
#define WINGDIAPI
Definition: gluos.h:86
BOOL(* pArc)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT)
Definition: gdi_driver.h:71
BOOL(* pSetDeviceGammaRamp)(PHYSDEV, LPVOID)
Definition: gdi_driver.h:168
BOOL(* pPie)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT)
Definition: gdi_driver.h:135
#define INT
Definition: polytest.cpp:20
BOOL(* pLineTo)(PHYSDEV, INT, INT)
Definition: gdi_driver.h:127
static HDC
Definition: imagelist.c:92
GLintptr offset
Definition: glext.h:5920
#define CALLBACK
Definition: compat.h:27
INT(* pExcludeClipRect)(PHYSDEV, INT, INT, INT, INT)
Definition: gdi_driver.h:88
BOOL(* pGetCharABCWidthsI)(PHYSDEV, UINT, UINT, WORD *, LPABC)
Definition: gdi_driver.h:102
HANDLE HWND
Definition: compat.h:13
DWORD(* pPutImage)(PHYSDEV, HRGN, BITMAPINFO *, const struct gdi_image_bits *, struct bitblt_coords *, struct bitblt_coords *, DWORD)
Definition: gdi_driver.h:144
BOOL(* pPolylineTo)(PHYSDEV, const POINT *, INT)
Definition: gdi_driver.h:143
BOOL(* pPolyBezier)(PHYSDEV, const POINT *, DWORD)
Definition: gdi_driver.h:136
DWORD(* pSetLayout)(PHYSDEV, DWORD)
Definition: gdi_driver.h:169
INT(* pEndDoc)(PHYSDEV)
Definition: gdi_driver.h:83
BOOL(* pRectangle)(PHYSDEV, INT, INT, INT, INT)
Definition: gdi_driver.h:147
INT(* pSetDIBitsToDevice)(PHYSDEV, INT, INT, DWORD, DWORD, INT, INT, UINT, UINT, LPCVOID, BITMAPINFO *, UINT)
Definition: gdi_driver.h:166
Definition: wingdi.h:2471
INT(* pSetMapMode)(PHYSDEV, INT)
Definition: gdi_driver.h:170
BOOL(* pEnumFonts)(PHYSDEV, LPLOGFONTW, FONTENUMPROCW, LPARAM)
Definition: gdi_driver.h:86
BOOL(* pSetViewportOrgEx)(PHYSDEV, INT, INT, POINT *)
Definition: gdi_driver.h:182
BOOL(* pAngleArc)(PHYSDEV, INT, INT, DWORD, FLOAT, FLOAT)
Definition: gdi_driver.h:70
BOOL(* pOffsetWindowOrgEx)(PHYSDEV, INT, INT, POINT *)
Definition: gdi_driver.h:132
char * LPSTR
Definition: xmlstorage.h:182
VOID(* pSetDeviceClipping)(PHYSDEV, HRGN)
Definition: gdi_driver.h:167
DWORD(* pGetFontUnicodeRanges)(PHYSDEV, LPGLYPHSET)
Definition: gdi_driver.h:109
BOOL(* pGetCharWidthInfo)(PHYSDEV, PVOID)
Definition: gdi_driver.h:104
BOOL(* pPolyBezierTo)(PHYSDEV, const POINT *, DWORD)
Definition: gdi_driver.h:137
BOOL(* pPolyDraw)(PHYSDEV, const POINT *, const BYTE *, DWORD)
Definition: gdi_driver.h:138
#define BOOL
Definition: nt_native.h:43
DWORD(* pGetImage)(PHYSDEV, BITMAPINFO *, struct gdi_image_bits *, struct bitblt_coords *)
Definition: gdi_driver.h:113
#define DWORD
Definition: nt_native.h:44
void CDECL __wine_set_visible_region(HDC hdc, HRGN hrgn, const RECT *vis_rect, const RECT *device_rect, struct window_surface *surface)
GLenum GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * bits
Definition: glext.h:10929
int32_t INT
Definition: typedefs.h:56
COLORREF(* pSetTextColor)(PHYSDEV, COLORREF)
Definition: gdi_driver.h:179
BOOL(* pPolyPolyline)(PHYSDEV, const POINT *, const DWORD *, DWORD)
Definition: gdi_driver.h:140
BOOL(* pFillRgn)(PHYSDEV, HRGN, HBRUSH)
Definition: gdi_driver.h:95
BOOL(* pExtTextOut)(PHYSDEV, INT, INT, UINT, const RECT *, LPCWSTR, UINT, const INT *)
Definition: gdi_driver.h:93
static int dev
Definition: mkdosfs.c:536
BOOL(* pOffsetViewportOrgEx)(PHYSDEV, INT, INT, POINT *)
Definition: gdi_driver.h:131
INT(* pGetDeviceCaps)(PHYSDEV, INT)
Definition: gdi_driver.h:105
INT(* pSetPolyFillMode)(PHYSDEV, INT)
Definition: gdi_driver.h:173
BOOL(* pPolygon)(PHYSDEV, const POINT *, INT)
Definition: gdi_driver.h:141
struct _test_info info[]
Definition: SetCursorPos.c:19
DWORD(* pSetMapperFlags)(PHYSDEV, DWORD)
Definition: gdi_driver.h:171
HPEN(* pSelectPen)(PHYSDEV, HPEN, const struct brush_pattern *)
Definition: gdi_driver.h:159
void(* unlock)(struct window_surface *surface)
Definition: gdi_driver.h:234
BOOL(* pDeleteDC)(PHYSDEV)
Definition: gdi_driver.h:79
UINT(* pGetTextCharsetInfo)(PHYSDEV, LPFONTSIGNATURE, DWORD)
Definition: gdi_driver.h:119
struct _OUTLINETEXTMETRICW * LPOUTLINETEXTMETRICW
BOOL(* pPolyline)(PHYSDEV, const POINT *, INT)
Definition: gdi_driver.h:142
BOOL(* pModifyWorldTransform)(PHYSDEV, const XFORM *, DWORD)
Definition: gdi_driver.h:128
BOOL(* pGradientFill)(PHYSDEV, TRIVERTEX *, ULONG, void *, ULONG, ULONG)
Definition: gdi_driver.h:124
BOOL(* pSetViewportExtEx)(PHYSDEV, INT, INT, SIZE *)
Definition: gdi_driver.h:181
BOOL(* pGetTextExtentExPoint)(PHYSDEV, LPCWSTR, INT, LPINT)
Definition: gdi_driver.h:120
void(* lock)(struct window_surface *surface)
Definition: gdi_driver.h:233
COLORREF(* pSetDCBrushColor)(PHYSDEV, COLORREF)
Definition: gdi_driver.h:164
unsigned int BOOL
Definition: ntddk_ex.h:94
long LONG
Definition: pedump.c:60
DWORD(* pGetGlyphIndices)(PHYSDEV, LPCWSTR, INT, LPWORD, DWORD)
Definition: gdi_driver.h:110
void * param
Definition: gdi_driver.h:55
COLORREF(* pGetNearestColor)(PHYSDEV, COLORREF)
Definition: gdi_driver.h:115
INT(* pExtSelectClipRgn)(PHYSDEV, HRGN, INT)
Definition: gdi_driver.h:92
struct tagFONTSIGNATURE * LPFONTSIGNATURE
BOOL(* pGdiFontRealizationInfo)(PHYSDEV, void *)
Definition: gdi_driver.h:108
BOOL(* pEllipse)(PHYSDEV, INT, INT, INT, INT)
Definition: gdi_driver.h:82
BOOL(CALLBACK * DCHOOKPROC)(HDC, WORD, DWORD_PTR, LPARAM)
Definition: gdi_driver.h:271
BOOL(* pFrameRgn)(PHYSDEV, HRGN, HBRUSH, INT, INT)
Definition: gdi_driver.h:98
BOOL(* pRoundRect)(PHYSDEV, INT, INT, INT, INT, INT, INT)
Definition: gdi_driver.h:150
DWORD(* pBlendImage)(PHYSDEV, BITMAPINFO *, const struct gdi_image_bits *, struct bitblt_coords *, struct bitblt_coords *, BLENDFUNCTION)
Definition: gdi_driver.h:74
static const WCHAR version[]
Definition: asmname.c:66
BOOL(* pAbortPath)(PHYSDEV)
Definition: gdi_driver.h:68
UINT(* pGetOutlineTextMetrics)(PHYSDEV, UINT, LPOUTLINETEXTMETRICW)
Definition: gdi_driver.h:116
LONG_PTR LPARAM
Definition: windef.h:208
INT(* pSetRelAbs)(PHYSDEV, INT)
Definition: gdi_driver.h:175
UINT(* pSetBoundsRect)(PHYSDEV, RECT *, UINT)
Definition: gdi_driver.h:163
BOOL(* pEndPath)(PHYSDEV)
Definition: gdi_driver.h:85
BOOL(* pGetTextExtentExPointI)(PHYSDEV, const WORD *, INT, LPINT)
Definition: gdi_driver.h:121
const char * LPCSTR
Definition: xmlstorage.h:183
void * PVOID
Definition: retypes.h:9
HBITMAP(* pSelectBitmap)(PHYSDEV, HBITMAP)
Definition: gdi_driver.h:154
COLORREF(* pSetBkColor)(PHYSDEV, COLORREF)
Definition: gdi_driver.h:161
struct gdi_physdev * PHYSDEV
BOOL(* pStrokeAndFillPath)(PHYSDEV)
Definition: gdi_driver.h:190
BOOL(* pSetWindowOrgEx)(PHYSDEV, INT, INT, POINT *)
Definition: gdi_driver.h:184
INT(* pSetStretchBltMode)(PHYSDEV, INT)
Definition: gdi_driver.h:176
BOOL(* pGetDeviceGammaRamp)(PHYSDEV, LPVOID)
Definition: gdi_driver.h:106
const struct window_surface_funcs * funcs
Definition: gdi_driver.h:244
BOOL(* pCreateCompatibleDC)(PHYSDEV, PHYSDEV *)
Definition: gdi_driver.h:77
BOOL(* pFillPath)(PHYSDEV)
Definition: gdi_driver.h:94
void CDECL __wine_set_display_driver(HMODULE module)
DWORD(* pGetFontData)(PHYSDEV, DWORD, DWORD, LPVOID, DWORD)
Definition: gdi_driver.h:107
DWORD COLORREF
Definition: windef.h:300
UINT(* pGetBoundsRect)(PHYSDEV, RECT *, UINT)
Definition: gdi_driver.h:100
INT(* pEnumICMProfiles)(PHYSDEV, ICMENUMPROCW, LPARAM)
Definition: gdi_driver.h:87
#define WINAPI
Definition: msvc.h:6
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned long DWORD
Definition: ntddk_ex.h:95
BOOL(* pGetCharWidth)(PHYSDEV, UINT, UINT, LPINT)
Definition: gdi_driver.h:103
INT(* pSaveDC)(PHYSDEV)
Definition: gdi_driver.h:151
HPALETTE(* pSelectPalette)(PHYSDEV, HPALETTE, BOOL)
Definition: gdi_driver.h:158
#define LPVOID
Definition: nt_native.h:45
INT(* pExtEscape)(PHYSDEV, INT, INT, LPCVOID, INT, LPVOID)
Definition: gdi_driver.h:90
struct opengl_funcs *CDECL __wine_get_wgl_driver(HDC hdc, UINT version)
BOOL(* pFontIsLinked)(PHYSDEV)
Definition: gdi_driver.h:97
int ret
BOOL(* pScaleWindowExtEx)(PHYSDEV, INT, INT, INT, INT, SIZE *)
Definition: gdi_driver.h:153
#define LPDWORD
Definition: nt_native.h:46
static ULONG window_surface_add_ref(struct window_surface *surface)
Definition: gdi_driver.h:251
#define InterlockedDecrement
Definition: armddk.h:52
UINT(* pRealizePalette)(PHYSDEV, HPALETTE, BOOL)
Definition: gdi_driver.h:146
HDC hdc
Definition: main.c:9
BOOL(* pGetCharABCWidths)(PHYSDEV, UINT, UINT, LPABC)
Definition: gdi_driver.h:101
BOOL(* pDeleteObject)(PHYSDEV, HGDIOBJ)
Definition: gdi_driver.h:80
static HRGN hrgn
Definition: win.c:55
#define VOID
Definition: acefi.h:82
struct _devicemodeA * LPDEVMODEA
BITMAPINFO * info
Definition: gdi_driver.h:60
unsigned char BYTE
Definition: mem.h:68
INT(* pAbortDoc)(PHYSDEV)
Definition: gdi_driver.h:67
BOOL(* pMoveTo)(PHYSDEV, INT, INT)
Definition: gdi_driver.h:129
BOOL(* pGdiComment)(PHYSDEV, UINT, const BYTE *)
Definition: gdi_driver.h:99
void CDECL __wine_make_gdi_object_system(HGDIOBJ handle, BOOL set)
BOOL(* pExtFloodFill)(PHYSDEV, INT, INT, COLORREF, UINT)
Definition: gdi_driver.h:91
uint32_t DWORD_PTR
Definition: typedefs.h:63
HBRUSH(* pSelectBrush)(PHYSDEV, HBRUSH, const struct brush_pattern *)
Definition: gdi_driver.h:155
BOOL(* pInvertRgn)(PHYSDEV, HRGN)
Definition: gdi_driver.h:126
uint16_t * LPWORD
Definition: typedefs.h:54
WINGDIAPI BOOL WINAPI SetDCHook(HDC, DCHOOKPROC, DWORD_PTR)
UINT(* pSetTextAlign)(PHYSDEV, UINT)
Definition: gdi_driver.h:177
void * HGDIOBJ
Definition: windef.h:252
DWORD(* pGetGlyphOutline)(PHYSDEV, UINT, UINT, LPGLYPHMETRICS, DWORD, LPVOID, const MAT2 *)
Definition: gdi_driver.h:111
DWORD layout
Definition: gdi_driver.h:47
BOOL(* pSelectClipPath)(PHYSDEV, INT)
Definition: gdi_driver.h:156
#define InterlockedIncrement
Definition: armddk.h:53
#define CDECL
Definition: compat.h:21
WINGDIAPI WORD WINAPI SetHookFlags(HDC, WORD)
INT(* pEndPage)(PHYSDEV)
Definition: gdi_driver.h:84
FARPROC FONTENUMPROCW
Definition: wingdi.h:2896
void(* destroy)(struct window_surface *surface)
Definition: gdi_driver.h:239
INT(* pStartPage)(PHYSDEV)
Definition: gdi_driver.h:187
DWORD(* pGetKerningPairs)(PHYSDEV, DWORD, LPKERNINGPAIR)
Definition: gdi_driver.h:114
INT(* pExtDeviceMode)(LPSTR, HWND, LPDEVMODEA, LPSTR, LPSTR, LPDEVMODEA, LPSTR, DWORD)
Definition: gdi_driver.h:89
BOOL(* pFlattenPath)(PHYSDEV)
Definition: gdi_driver.h:96
BOOL(* pSetTextJustification)(PHYSDEV, INT, INT)
Definition: gdi_driver.h:180
BOOL(* pCloseFigure)(PHYSDEV)
Definition: gdi_driver.h:76
INT(* pSetBkMode)(PHYSDEV, INT)
Definition: gdi_driver.h:162
unsigned int UINT
Definition: ndis.h:50
BOOL(* pPaintRgn)(PHYSDEV, HRGN)
Definition: gdi_driver.h:133
BOOL(* pAlphaBlend)(PHYSDEV, struct bitblt_coords *, PHYSDEV, struct bitblt_coords *, BLENDFUNCTION)
Definition: gdi_driver.h:69
BOOL(* pStrokePath)(PHYSDEV)
Definition: gdi_driver.h:191
HDC(* pResetDC)(PHYSDEV, const DEVMODEW *)
Definition: gdi_driver.h:148
static DWORD *static HFONT(WINAPI *pCreateFontIndirectExA)(const ENUMLOGFONTEXDVA *)
INT(* pSetArcDirection)(PHYSDEV, INT)
Definition: gdi_driver.h:160
INT(* pSetTextCharacterExtra)(PHYSDEV, INT)
Definition: gdi_driver.h:178
CONST void * LPCVOID
Definition: windef.h:191
COLORREF(* pGetPixel)(PHYSDEV, INT, INT)
Definition: gdi_driver.h:117
int(CALLBACK * ICMENUMPROCW)(LPWSTR, LPARAM)
Definition: wingdi.h:2929
struct tagPALETTEENTRY * LPPALETTEENTRY
struct _ABC * LPABC
INT(* pIntersectClipRect)(PHYSDEV, INT, INT, INT, INT)
Definition: gdi_driver.h:125
INT(* pStretchDIBits)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT, const void *, BITMAPINFO *, UINT, DWORD)
Definition: gdi_driver.h:189
unsigned int ULONG
Definition: retypes.h:1
BOOL(* pStretchBlt)(PHYSDEV, struct bitblt_coords *, PHYSDEV, struct bitblt_coords *, DWORD)
Definition: gdi_driver.h:188
static HBITMAP
Definition: button.c:44
void(* flush)(struct window_surface *surface)
Definition: gdi_driver.h:238
const struct gdi_dc_funcs * funcs
Definition: gdi_driver.h:31
BOOL(* pUnrealizePalette)(HPALETTE)
Definition: gdi_driver.h:192
WCHAR * LPWSTR
Definition: xmlstorage.h:184
HFONT(* pSelectFont)(PHYSDEV, HFONT, UINT *)
Definition: gdi_driver.h:157
INT(* pSetROP2)(PHYSDEV, INT)
Definition: gdi_driver.h:174
BOOL(* pWidenPath)(PHYSDEV)
Definition: gdi_driver.h:193
Definition: _set.h:46
BOOL(* pChord)(PHYSDEV, INT, INT, INT, INT, INT, INT, INT, INT)
Definition: gdi_driver.h:75
struct _BLENDFUNCTION BLENDFUNCTION
BOOL(* pCreateDC)(PHYSDEV *, LPCWSTR, LPCWSTR, LPCWSTR, const DEVMODEW *)
Definition: gdi_driver.h:78
WINGDIAPI DWORD_PTR WINAPI GetDCHook(HDC, DCHOOKPROC *)
struct _GLYPHMETRICS * LPGLYPHMETRICS
COLORREF(* pSetPixel)(PHYSDEV, INT, INT, COLORREF)
Definition: gdi_driver.h:172
BOOL(* pGetTextMetrics)(PHYSDEV, TEXTMETRICW *)
Definition: gdi_driver.h:123
UINT(* pGetSystemPaletteEntries)(PHYSDEV, UINT, UINT, LPPALETTEENTRY)
Definition: gdi_driver.h:118
BOOL(* pSetWindowExtEx)(PHYSDEV, INT, INT, SIZE *)
Definition: gdi_driver.h:183
int * LPINT
Definition: windef.h:178