ntdll: Catch MEM_EXTENDED_PARAMETER duplicates for all types.
[wine.git] / include / ntgdi.h
blob918a5c5d7b3b0931f14801cccebc86f9a3f05a2f
1 /*
2 * Copyright 2021 Jacek Caban for CodeWeavers
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #ifndef _NTGDI_
20 #define _NTGDI_
22 #include <wingdi.h>
23 #include <winternl.h>
24 #include <winspool.h>
25 #include <ddk/d3dkmthk.h>
27 typedef struct _GDI_HANDLE_ENTRY
29 UINT64 Object;
30 union
32 struct
34 USHORT ProcessId;
35 USHORT Lock : 1;
36 USHORT Count : 15;
38 ULONG Value;
39 } Owner;
40 union
42 struct
44 UCHAR ExtType : 7;
45 UCHAR StockFlag : 1;
46 UCHAR Generation;
48 USHORT Unique;
50 UCHAR Type;
51 UCHAR Flags;
52 UINT64 UserPointer;
53 } GDI_HANDLE_ENTRY, *PGDI_HANDLE_ENTRY;
55 #define GDI_MAX_HANDLE_COUNT 0x10000
57 #define NTGDI_OBJ_DC 0x010000
58 #define NTGDI_OBJ_ENHMETADC 0x210000
59 #define NTGDI_OBJ_REGION 0x040000
60 #define NTGDI_OBJ_SURF 0x050000
61 #define NTGDI_OBJ_METAFILE 0x260000
62 #define NTGDI_OBJ_ENHMETAFILE 0x460000
63 #define NTGDI_OBJ_METADC 0x660000
64 #define NTGDI_OBJ_PAL 0x080000
65 #define NTGDI_OBJ_BITMAP 0x090000
66 #define NTGDI_OBJ_FONT 0x0a0000
67 #define NTGDI_OBJ_BRUSH 0x100000
68 #define NTGDI_OBJ_PEN 0x300000
69 #define NTGDI_OBJ_EXTPEN 0x500000
71 /* Wine extension, native uses NTGDI_OBJ_DC */
72 #define NTGDI_OBJ_MEMDC 0x410000
74 #define NTGDI_HANDLE_TYPE_SHIFT 16
75 #define NTGDI_HANDLE_TYPE_MASK 0x007f0000
76 #define NTGDI_HANDLE_STOCK_OBJECT 0x00800000
78 typedef struct _GDI_SHARED_MEMORY
80 GDI_HANDLE_ENTRY Handles[GDI_MAX_HANDLE_COUNT];
81 } GDI_SHARED_MEMORY, *PGDI_SHARED_MEMORY;
83 enum
85 NtGdiArc,
86 NtGdiArcTo,
87 NtGdiChord,
88 NtGdiPie,
91 enum
93 NtGdiPolyPolygon = 1,
94 NtGdiPolyPolyline,
95 NtGdiPolyBezier,
96 NtGdiPolyBezierTo,
97 NtGdiPolylineTo,
98 NtGdiPolyPolygonRgn,
101 enum
103 NtGdiLPtoDP,
104 NtGdiDPtoLP,
107 enum
109 NtGdiSetMapMode = 8,
110 /* not compatible with Windows */
111 NtGdiSetBkColor = 100,
112 NtGdiSetBkMode,
113 NtGdiSetTextColor,
114 NtGdiSetDCBrushColor,
115 NtGdiSetDCPenColor,
116 NtGdiSetGraphicsMode,
117 NtGdiSetROP2,
118 NtGdiSetTextAlign,
121 /* NtGdiGetDCDword parameter, not compatible with Windows */
122 enum
124 NtGdiGetArcDirection,
125 NtGdiGetBkColor,
126 NtGdiGetBkMode,
127 NtGdiGetDCBrushColor,
128 NtGdiGetDCPenColor,
129 NtGdiGetGraphicsMode,
130 NtGdiGetLayout,
131 NtGdiGetPolyFillMode,
132 NtGdiGetROP2,
133 NtGdiGetTextColor,
134 NtGdiIsMemDC,
137 /* NtGdiGetDCPoint parameter, not compatible with Windows */
138 enum
140 NtGdiGetBrushOrgEx,
141 NtGdiGetCurrentPosition,
142 NtGdiGetDCOrg,
145 enum
147 NtGdiAnimatePalette,
148 NtGdiSetPaletteEntries,
149 NtGdiGetPaletteEntries,
150 NtGdiGetSystemPaletteEntries,
151 NtGdiGetDIBColorTable,
152 NtGdiSetDIBColorTable,
155 #define NTGDI_GETCHARWIDTH_INT 0x02
156 #define NTGDI_GETCHARWIDTH_INDICES 0x08
158 #define NTGDI_GETCHARABCWIDTHS_INT 0x01
159 #define NTGDI_GETCHARABCWIDTHS_INDICES 0x02
161 #define MWT_SET 4
163 /* structs not compatible with native Windows */
164 #ifdef __WINESRC__
166 typedef struct DC_ATTR
168 UINT hdc; /* handle to self */
169 LONG disabled; /* disabled flag, controlled by DCHF_(DISABLE|ENABLE)DC */
170 int save_level;
171 COLORREF background_color;
172 COLORREF brush_color;
173 COLORREF pen_color;
174 COLORREF text_color;
175 POINT cur_pos;
176 INT graphics_mode;
177 INT arc_direction;
178 DWORD layout;
179 WORD text_align;
180 WORD background_mode;
181 WORD poly_fill_mode;
182 WORD rop_mode;
183 WORD rel_abs_mode;
184 WORD stretch_blt_mode;
185 INT map_mode;
186 INT char_extra;
187 DWORD mapper_flags; /* font mapper flags */
188 RECT vis_rect; /* visible rectangle in screen coords */
189 FLOAT miter_limit;
190 POINT brush_org; /* brush origin */
191 POINT wnd_org; /* window origin */
192 SIZE wnd_ext; /* window extent */
193 POINT vport_org; /* viewport origin */
194 SIZE vport_ext; /* viewport extent */
195 SIZE virtual_res;
196 SIZE virtual_size;
197 UINT font_code_page;
198 RECTL emf_bounds;
199 UINT64 emf; /* client EMF record pointer */
200 UINT64 abort_proc; /* AbortProc for printing */
201 UINT64 print; /* client printer info pointer */
202 } DC_ATTR;
204 struct font_enum_entry
206 DWORD type;
207 ENUMLOGFONTEXW lf;
208 NEWTEXTMETRICEXW tm;
211 /* flag for NtGdiGetRandomRgn to respect LAYOUT_RTL */
212 #define NTGDI_RGN_MIRROR_RTL 0x80000000
214 /* magic driver version that we use for win16 DCs with DIB surfaces */
215 #define NTGDI_WIN16_DIB 0xfafa000
217 #endif /* __WINESRC__ */
219 struct font_realization_info
221 DWORD size; /* could be 16 or 24 */
222 DWORD flags; /* 1 for bitmap fonts, 3 for scalable fonts */
223 DWORD cache_num; /* keeps incrementing */
224 DWORD instance_id; /* identifies a realized font instance */
225 DWORD file_count; /* number of files that make up this font */
226 WORD face_index; /* face index in case of font collections */
227 WORD simulations; /* 0 bit - bold simulation, 1 bit - oblique simulation */
230 struct char_width_info
232 INT lsb; /* minimum left side bearing */
233 INT rsb; /* minimum right side bearing */
234 INT unk; /* unknown */
237 struct font_fileinfo
239 FILETIME writetime;
240 LARGE_INTEGER size;
241 WCHAR path[1];
245 INT WINAPI NtGdiAbortDoc( HDC hdc );
246 BOOL WINAPI NtGdiAbortPath( HDC hdc );
247 HANDLE WINAPI NtGdiAddFontMemResourceEx( void *ptr, DWORD size, void *dv, ULONG dv_size,
248 DWORD *count );
249 INT WINAPI NtGdiAddFontResourceW( const WCHAR *str, ULONG size, ULONG files, DWORD flags,
250 DWORD tid, void *dv );
251 BOOL WINAPI NtGdiAlphaBlend( HDC hdc_dst, int x_dst, int y_dst, int width_dst, int height_dst,
252 HDC hdc_src, int x_src, int y_src, int width_src, int height_src,
253 BLENDFUNCTION blend_function, HANDLE xform );
254 BOOL WINAPI NtGdiAngleArc( HDC hdc, INT x, INT y, DWORD radius, DWORD start_angle,
255 DWORD sweep_angle );
256 BOOL WINAPI NtGdiArcInternal( UINT type, HDC hdc, INT left, INT top, INT right, INT bottom,
257 INT xstart, INT ystart, INT xend, INT yend );
258 BOOL WINAPI NtGdiBeginPath( HDC hdc );
259 BOOL WINAPI NtGdiBitBlt( HDC hdc_dst, INT x_dst, INT y_dst, INT width, INT height, HDC hdc_src,
260 INT x_src, INT y_src, DWORD rop, DWORD bk_color, FLONG fl );
261 BOOL WINAPI NtGdiCancelDC( HDC hdc );
262 BOOL WINAPI NtGdiCloseFigure( HDC hdc );
263 INT WINAPI NtGdiCombineRgn( HRGN dest, HRGN src1, HRGN src2, INT mode );
264 BOOL WINAPI NtGdiComputeXformCoefficients( HDC hdc );
265 HBITMAP WINAPI NtGdiCreateBitmap( INT width, INT height, UINT planes,
266 UINT bpp, const void *bits );
267 HANDLE WINAPI NtGdiCreateClientObj( ULONG type );
268 HBITMAP WINAPI NtGdiCreateCompatibleBitmap( HDC hdc, INT width, INT height );
269 HDC WINAPI NtGdiCreateCompatibleDC( HDC hdc );
270 HBRUSH WINAPI NtGdiCreateDIBBrush( const void *data, UINT coloruse, UINT size,
271 BOOL is_8x8, BOOL pen, const void *client );
272 HBITMAP WINAPI NtGdiCreateDIBSection( HDC hdc, HANDLE section, DWORD offset, const BITMAPINFO *bmi,
273 UINT usage, UINT header_size, ULONG flags,
274 ULONG_PTR color_space, void **bits );
275 HBITMAP WINAPI NtGdiCreateDIBitmapInternal( HDC hdc, INT width, INT height, DWORD init,
276 const void *bits, const BITMAPINFO *data,
277 UINT coloruse, UINT max_info, UINT max_bits,
278 ULONG flags, HANDLE xform );
279 HRGN WINAPI NtGdiCreateEllipticRgn( INT left, INT top, INT right, INT bottom );
280 HPALETTE WINAPI NtGdiCreateHalftonePalette( HDC hdc );
281 HBRUSH WINAPI NtGdiCreateHatchBrushInternal( INT style, COLORREF color, BOOL pen );
282 HDC WINAPI NtGdiCreateMetafileDC( HDC hdc );
283 HPALETTE WINAPI NtGdiCreatePaletteInternal( const LOGPALETTE *palette, UINT count );
284 HBRUSH WINAPI NtGdiCreatePatternBrushInternal( HBITMAP hbitmap, BOOL pen, BOOL is_8x8 );
285 HPEN WINAPI NtGdiCreatePen( INT style, INT width, COLORREF color, HBRUSH brush );
286 HRGN WINAPI NtGdiCreateRectRgn( INT left, INT top, INT right, INT bottom );
287 HRGN WINAPI NtGdiCreateRoundRectRgn( INT left, INT top, INT right, INT bottom,
288 INT ellipse_width, INT ellipse_height );
289 HBRUSH WINAPI NtGdiCreateSolidBrush( COLORREF color, HBRUSH brush );
290 BOOL WINAPI NtGdiDeleteClientObj( HGDIOBJ obj );
291 BOOL WINAPI NtGdiDeleteObjectApp( HGDIOBJ obj );
292 INT WINAPI NtGdiDescribePixelFormat( HDC hdc, INT format, UINT size,
293 PIXELFORMATDESCRIPTOR *descr );
294 LONG WINAPI NtGdiDoPalette( HGDIOBJ handle, WORD start, WORD count, void *entries,
295 DWORD func, BOOL inbound );
296 BOOL WINAPI NtGdiDrawStream( HDC hdc, ULONG in, void *pvin );
297 BOOL WINAPI NtGdiEllipse( HDC hdc, INT left, INT top, INT right, INT bottom );
298 INT WINAPI NtGdiEndDoc( HDC hdc );
299 BOOL WINAPI NtGdiEndPath( HDC hdc );
300 INT WINAPI NtGdiEndPage( HDC hdc );
301 BOOL WINAPI NtGdiEnumFonts( HDC hdc, ULONG type, ULONG win32_compat, ULONG face_name_len,
302 const WCHAR *face_name, ULONG charset, ULONG *count, void *buf );
303 BOOL WINAPI NtGdiEqualRgn( HRGN hrgn1, HRGN hrgn2 );
304 INT WINAPI NtGdiExcludeClipRect( HDC hdc, INT left, INT top, INT right, INT bottom );
305 HPEN WINAPI NtGdiExtCreatePen( DWORD style, DWORD width, ULONG brush_style, ULONG color,
306 ULONG_PTR client_hatch, ULONG_PTR hatch, DWORD style_count,
307 const DWORD *style_bits, ULONG dib_size, BOOL old_style,
308 HBRUSH brush );
309 INT WINAPI NtGdiExtEscape( HDC hdc, WCHAR *driver, INT driver_id, INT escape, INT input_size,
310 const char *input, INT output_size, char *output );
311 BOOL WINAPI NtGdiExtFloodFill( HDC hdc, INT x, INT y, COLORREF color, UINT type );
312 BOOL WINAPI NtGdiExtTextOutW( HDC hdc, INT x, INT y, UINT flags, const RECT *rect,
313 const WCHAR *str, UINT count, const INT *dx, DWORD cp );
314 HRGN WINAPI NtGdiExtCreateRegion( const XFORM *xform, DWORD count, const RGNDATA *data );
315 INT WINAPI NtGdiExtGetObjectW( HGDIOBJ handle, INT count, void *buffer );
316 INT WINAPI NtGdiExtSelectClipRgn( HDC hdc, HRGN region, INT mode );
317 BOOL WINAPI NtGdiFillPath( HDC hdc );
318 BOOL WINAPI NtGdiFillRgn( HDC hdc, HRGN hrgn, HBRUSH hbrush );
319 BOOL WINAPI NtGdiFlattenPath( HDC hdc );
320 BOOL WINAPI NtGdiFontIsLinked( HDC hdc );
321 BOOL WINAPI NtGdiFlush(void);
322 BOOL WINAPI NtGdiFrameRgn( HDC hdc, HRGN hrgn, HBRUSH brush, INT width, INT height );
323 BOOL WINAPI NtGdiGetAndSetDCDword( HDC hdc, UINT method, DWORD value, DWORD *result );
324 INT WINAPI NtGdiGetAppClipBox( HDC hdc, RECT *rect );
325 LONG WINAPI NtGdiGetBitmapBits( HBITMAP bitmap, LONG count, void *bits );
326 BOOL WINAPI NtGdiGetBitmapDimension( HBITMAP bitmap, SIZE *size );
327 UINT WINAPI NtGdiGetBoundsRect( HDC hdc, RECT *rect, UINT flags );
328 BOOL WINAPI NtGdiGetCharABCWidthsW( HDC hdc, UINT first, UINT last, WCHAR *chars,
329 ULONG flags, void *buffer );
330 BOOL WINAPI NtGdiGetCharWidthW( HDC hdc, UINT first_char, UINT last_char, WCHAR *chars,
331 ULONG flags, void *buffer );
332 BOOL WINAPI NtGdiGetCharWidthInfo( HDC hdc, struct char_width_info *info );
333 BOOL WINAPI NtGdiGetColorAdjustment( HDC hdc, COLORADJUSTMENT *ca );
334 BOOL WINAPI NtGdiGetDCDword( HDC hdc, UINT method, DWORD *result );
335 HANDLE WINAPI NtGdiGetDCObject( HDC hdc, UINT type );
336 BOOL WINAPI NtGdiGetDCPoint( HDC hdc, UINT method, POINT *result );
337 INT WINAPI NtGdiGetDIBitsInternal( HDC hdc, HBITMAP hbitmap, UINT startscan, UINT lines,
338 void *bits, BITMAPINFO *info, UINT coloruse,
339 UINT max_bits, UINT max_info );
340 INT WINAPI NtGdiGetDeviceCaps( HDC hdc, INT cap );
341 BOOL WINAPI NtGdiGetDeviceGammaRamp( HDC hdc, void *ptr );
342 DWORD WINAPI NtGdiGetFontData( HDC hdc, DWORD table, DWORD offset, void *buffer, DWORD length );
343 BOOL WINAPI NtGdiGetFontFileData( DWORD instance_id, DWORD file_index, UINT64 *offset,
344 void *buff, DWORD buff_size );
345 BOOL WINAPI NtGdiGetFontFileInfo( DWORD instance_id, DWORD file_index, struct font_fileinfo *info,
346 SIZE_T size, SIZE_T *needed );
347 DWORD WINAPI NtGdiGetFontUnicodeRanges( HDC hdc, GLYPHSET *lpgs );
348 DWORD WINAPI NtGdiGetGlyphIndicesW( HDC hdc, const WCHAR *str, INT count,
349 WORD *indices, DWORD flags );
350 DWORD WINAPI NtGdiGetGlyphOutline( HDC hdc, UINT ch, UINT format, GLYPHMETRICS *metrics,
351 DWORD size, void *buffer, const MAT2 *mat2,
352 BOOL ignore_rotation );
353 DWORD WINAPI NtGdiGetKerningPairs( HDC hdc, DWORD count, KERNINGPAIR *kern_pair );
354 BOOL WINAPI NtGdiGetMiterLimit( HDC hdc, DWORD *limit );
355 COLORREF WINAPI NtGdiGetNearestColor( HDC hdc, COLORREF color );
356 UINT WINAPI NtGdiGetNearestPaletteIndex( HPALETTE hpalette, COLORREF color );
357 UINT WINAPI NtGdiGetOutlineTextMetricsInternalW( HDC hdc, UINT cbData,
358 OUTLINETEXTMETRICW *otm, ULONG opts );
359 INT WINAPI NtGdiGetPath( HDC hdc, POINT *points, BYTE *types, INT size );
360 COLORREF WINAPI NtGdiGetPixel( HDC hdc, INT x, INT y );
361 INT WINAPI NtGdiGetRandomRgn( HDC hdc, HRGN region, INT code );
362 BOOL WINAPI NtGdiGetRasterizerCaps( RASTERIZER_STATUS *status, UINT size );
363 BOOL WINAPI NtGdiGetRealizationInfo( HDC hdc, struct font_realization_info *info );
364 DWORD WINAPI NtGdiGetRegionData( HRGN hrgn, DWORD count, RGNDATA *data );
365 INT WINAPI NtGdiGetRgnBox( HRGN hrgn, RECT *rect );
366 DWORD WINAPI NtGdiGetSpoolMessage( void *ptr1, DWORD data2, void *ptr3, DWORD data4 );
367 UINT WINAPI NtGdiGetSystemPaletteUse( HDC hdc );
368 UINT WINAPI NtGdiGetTextCharsetInfo( HDC hdc, FONTSIGNATURE *fs, DWORD flags );
369 BOOL WINAPI NtGdiGetTextExtentExW( HDC hdc, const WCHAR *str, INT count, INT max_ext,
370 INT *nfit, INT *dxs, SIZE *size, UINT flags );
371 INT WINAPI NtGdiGetTextFaceW( HDC hdc, INT count, WCHAR *name, BOOL alias_name );
372 BOOL WINAPI NtGdiGetTextMetricsW( HDC hdc, TEXTMETRICW *metrics, ULONG flags );
373 BOOL WINAPI NtGdiGetTransform( HDC hdc, DWORD which, XFORM *xform );
374 BOOL WINAPI NtGdiGradientFill( HDC hdc, TRIVERTEX *vert_array, ULONG nvert,
375 void *grad_array, ULONG ngrad, ULONG mode );
376 HFONT WINAPI NtGdiHfontCreate( const void *logfont, ULONG unk2, ULONG unk3,
377 ULONG unk4, void *data );
378 DWORD WINAPI NtGdiInitSpool(void);
379 INT WINAPI NtGdiIntersectClipRect( HDC hdc, INT left, INT top, INT right, INT bottom );
380 BOOL WINAPI NtGdiInvertRgn( HDC hdc, HRGN hrgn );
381 BOOL WINAPI NtGdiLineTo( HDC hdc, INT x, INT y );
382 BOOL WINAPI NtGdiMaskBlt( HDC hdc, INT x_dst, INT y_dst, INT width_dst, INT height_dst,
383 HDC hdc_src, INT x_src, INT y_src, HBITMAP mask,
384 INT x_mask, INT y_mask, DWORD rop, DWORD bk_color );
385 BOOL WINAPI NtGdiModifyWorldTransform( HDC hdc, const XFORM *xform, DWORD mode );
386 BOOL WINAPI NtGdiMoveTo( HDC hdc, INT x, INT y, POINT *pt );
387 INT WINAPI NtGdiOffsetClipRgn( HDC hdc, INT x, INT y );
388 INT WINAPI NtGdiOffsetRgn( HRGN hrgn, INT x, INT y );
389 HDC WINAPI NtGdiOpenDCW( UNICODE_STRING *device, const DEVMODEW *devmode,
390 UNICODE_STRING *output, ULONG type, BOOL is_display,
391 HANDLE hspool, DRIVER_INFO_2W *driver_info, void *pdev );
392 BOOL WINAPI NtGdiPatBlt( HDC hdc, INT left, INT top, INT width, INT height, DWORD rop );
393 HRGN WINAPI NtGdiPathToRegion( HDC hdc );
394 BOOL WINAPI NtGdiPlgBlt( HDC hdc, const POINT *point, HDC hdc_src, INT x_src, INT y_src,
395 INT width, INT height, HBITMAP mask, INT x_mask, INT y_mask,
396 DWORD bk_color );
397 BOOL WINAPI NtGdiPolyDraw(HDC hdc, const POINT *points, const BYTE *types, DWORD count );
398 ULONG WINAPI NtGdiPolyPolyDraw( HDC hdc, const POINT *points, const ULONG *counts,
399 DWORD count, UINT function );
400 BOOL WINAPI NtGdiPtInRegion( HRGN hrgn, INT x, INT y );
401 BOOL WINAPI NtGdiPtVisible( HDC hdc, INT x, INT y );
402 BOOL WINAPI NtGdiRectInRegion( HRGN hrgn, const RECT *rect );
403 BOOL WINAPI NtGdiRectVisible( HDC hdc, const RECT *rect );
404 BOOL WINAPI NtGdiRectangle( HDC hdc, INT left, INT top, INT right, INT bottom );
405 BOOL WINAPI NtGdiRemoveFontMemResourceEx( HANDLE handle );
406 BOOL WINAPI NtGdiRemoveFontResourceW( const WCHAR *str, ULONG size, ULONG files,
407 DWORD flags, DWORD tid, void *dv );
408 BOOL WINAPI NtGdiResetDC( HDC hdc, const DEVMODEW *devmode, BOOL *banding,
409 DRIVER_INFO_2W *driver_info, void *dev );
410 BOOL WINAPI NtGdiResizePalette( HPALETTE palette, UINT count );
411 BOOL WINAPI NtGdiRestoreDC( HDC hdc, INT level );
412 BOOL WINAPI NtGdiRoundRect( HDC hdc, INT left, INT top, INT right,
413 INT bottom, INT ell_width, INT ell_height );
414 INT WINAPI NtGdiSaveDC( HDC hdc );
415 BOOL WINAPI NtGdiScaleViewportExtEx( HDC hdc, INT x_num, INT x_denom,
416 INT y_num, INT y_denom, SIZE *size );
417 BOOL WINAPI NtGdiScaleWindowExtEx( HDC hdc, INT x_num, INT x_denom,
418 INT y_num, INT y_denom, SIZE *size );
419 HGDIOBJ WINAPI NtGdiSelectBitmap( HDC hdc, HGDIOBJ handle );
420 HGDIOBJ WINAPI NtGdiSelectBrush( HDC hdc, HGDIOBJ handle );
421 BOOL WINAPI NtGdiSelectClipPath( HDC hdc, INT mode );
422 HGDIOBJ WINAPI NtGdiSelectFont( HDC hdc, HGDIOBJ handle );
423 HGDIOBJ WINAPI NtGdiSelectPen( HDC hdc, HGDIOBJ handle );
424 LONG WINAPI NtGdiSetBitmapBits( HBITMAP hbitmap, LONG count, const void *bits );
425 BOOL WINAPI NtGdiSetBitmapDimension( HBITMAP hbitmap, INT x, INT y, SIZE *prev_size );
426 BOOL WINAPI NtGdiSetBrushOrg( HDC hdc, INT x, INT y, POINT *prev_org );
427 UINT WINAPI NtGdiSetBoundsRect( HDC hdc, const RECT *rect, UINT flags );
428 BOOL WINAPI NtGdiSetColorAdjustment( HDC hdc, const COLORADJUSTMENT *ca );
429 INT WINAPI NtGdiSetDIBitsToDeviceInternal( HDC hdc, INT x_dst, INT y_dst, DWORD cx,
430 DWORD cy, INT x_src, INT y_src, UINT startscan,
431 UINT lines, const void *bits, const BITMAPINFO *bmi,
432 UINT coloruse, UINT max_bits, UINT max_info,
433 BOOL xform_coords, HANDLE xform );
434 BOOL WINAPI NtGdiSetDeviceGammaRamp( HDC hdc, void *ptr );
435 DWORD WINAPI NtGdiSetLayout( HDC hdc, LONG wox, DWORD layout );
436 BOOL WINAPI NtGdiSetMagicColors( HDC hdc, DWORD magic, ULONG index );
437 INT WINAPI NtGdiSetMetaRgn( HDC hdc );
438 BOOL WINAPI NtGdiSetMiterLimit( HDC hdc, DWORD limit, DWORD *prev_limit );
439 COLORREF WINAPI NtGdiSetPixel( HDC hdc, INT x, INT y, COLORREF color );
440 BOOL WINAPI NtGdiSetPixelFormat( HDC hdc, INT format );
441 BOOL WINAPI NtGdiSetRectRgn( HRGN hrgn, INT left, INT top, INT right, INT bottom );
442 UINT WINAPI NtGdiSetSystemPaletteUse( HDC hdc, UINT use );
443 BOOL WINAPI NtGdiSetTextJustification( HDC hdc, INT extra, INT breaks );
444 BOOL WINAPI NtGdiSetVirtualResolution( HDC hdc, DWORD horz_res, DWORD vert_res,
445 DWORD horz_size, DWORD vert_size );
446 INT WINAPI NtGdiStartDoc( HDC hdc, const DOCINFOW *doc, BOOL *banding, INT job );
447 INT WINAPI NtGdiStartPage( HDC hdc );
448 BOOL WINAPI NtGdiStretchBlt( HDC hdc, INT x_dst, INT y_dst, INT width_dst, INT height_dst,
449 HDC hdc_src, INT x_src, INT y_src, INT width_src, INT height_src,
450 DWORD rop, COLORREF bk_color );
451 INT WINAPI NtGdiStretchDIBitsInternal( HDC hdc, INT x_dst, INT y_dst, INT width_dst,
452 INT height_dst, INT x_src, INT y_src, INT width_src,
453 INT height_src, const void *bits, const BITMAPINFO *bmi,
454 UINT coloruse, DWORD rop, UINT max_info, UINT max_bits,
455 HANDLE xform );
456 BOOL WINAPI NtGdiStrokeAndFillPath( HDC hdc );
457 BOOL WINAPI NtGdiStrokePath( HDC hdc );
458 BOOL WINAPI NtGdiSwapBuffers( HDC hdc );
459 BOOL WINAPI NtGdiTransparentBlt( HDC hdc, int x_dst, int y_dst, int width_dst, int height_dst,
460 HDC hdc_src, int x_src, int y_src, int width_src, int height_src,
461 UINT color );
462 BOOL WINAPI NtGdiTransformPoints( HDC hdc, const POINT *points_in, POINT *points_out,
463 INT count, UINT mode );
464 BOOL WINAPI NtGdiUnrealizeObject( HGDIOBJ obj );
465 BOOL WINAPI NtGdiUpdateColors( HDC hdc );
466 BOOL WINAPI NtGdiWidenPath( HDC hdc );
468 NTSTATUS WINAPI NtGdiDdDDICheckVidPnExclusiveOwnership( const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP *desc );
469 NTSTATUS WINAPI NtGdiDdDDICloseAdapter( const D3DKMT_CLOSEADAPTER *desc );
470 NTSTATUS WINAPI NtGdiDdDDICreateDCFromMemory( D3DKMT_CREATEDCFROMMEMORY *desc );
471 NTSTATUS WINAPI NtGdiDdDDICreateDevice( D3DKMT_CREATEDEVICE *desc );
472 NTSTATUS WINAPI NtGdiDdDDIDestroyDCFromMemory( const D3DKMT_DESTROYDCFROMMEMORY *desc );
473 NTSTATUS WINAPI NtGdiDdDDIDestroyDevice( const D3DKMT_DESTROYDEVICE *desc );
474 NTSTATUS WINAPI NtGdiDdDDIEscape( const D3DKMT_ESCAPE *desc );
475 NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromHdc( D3DKMT_OPENADAPTERFROMHDC *desc );
476 NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromDeviceName( D3DKMT_OPENADAPTERFROMDEVICENAME *desc );
477 NTSTATUS WINAPI NtGdiDdDDIOpenAdapterFromLuid( D3DKMT_OPENADAPTERFROMLUID *desc );
478 NTSTATUS WINAPI NtGdiDdDDIQueryStatistics( D3DKMT_QUERYSTATISTICS *stats );
479 NTSTATUS WINAPI NtGdiDdDDIQueryVideoMemoryInfo( D3DKMT_QUERYVIDEOMEMORYINFO *desc );
480 NTSTATUS WINAPI NtGdiDdDDISetQueuedLimit( D3DKMT_SETQUEUEDLIMIT *desc );
481 NTSTATUS WINAPI NtGdiDdDDISetVidPnSourceOwner( const D3DKMT_SETVIDPNSOURCEOWNER *desc );
483 /* Wine extensions */
484 extern BOOL CDECL __wine_get_brush_bitmap_info( HBRUSH handle, BITMAPINFO *info, void *bits,
485 UINT *usage );
486 extern BOOL CDECL __wine_get_icm_profile( HDC hdc, BOOL allow_default, DWORD *size,
487 WCHAR *filename );
488 extern BOOL CDECL __wine_get_file_outline_text_metric( const WCHAR *path,
489 OUTLINETEXTMETRICW *otm );
491 #endif /* _NTGDI_ */