4 * Copyright 2021 Jacek Caban for CodeWeavers
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.
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.
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
22 #define WIN32_NO_STATUS
23 #include "win32u_private.h"
25 static const struct unix_funcs
*unix_funcs
;
27 INT WINAPI
NtGdiAbortDoc( HDC hdc
)
29 if (!unix_funcs
) return 0;
30 return unix_funcs
->pNtGdiAbortDoc( hdc
);
33 BOOL WINAPI
NtGdiAbortPath( HDC hdc
)
35 if (!unix_funcs
) return FALSE
;
36 return unix_funcs
->pNtGdiAbortPath( hdc
);
39 BOOL WINAPI
NtGdiAlphaBlend( HDC hdc_dst
, int x_dst
, int y_dst
, int width_dst
, int height_dst
,
40 HDC hdc_src
, int x_src
, int y_src
, int width_src
, int height_src
,
41 BLENDFUNCTION blend_function
, HANDLE xform
)
43 if (!unix_funcs
) return FALSE
;
44 return unix_funcs
->pNtGdiAlphaBlend( hdc_dst
, x_dst
, y_dst
, width_dst
, height_dst
, hdc_src
,
45 x_src
, y_src
, width_src
, height_src
, blend_function
, xform
);
48 BOOL WINAPI
NtGdiAngleArc( HDC hdc
, INT x
, INT y
, DWORD radius
, FLOAT start_angle
, FLOAT sweep_angle
)
50 if (!unix_funcs
) return FALSE
;
51 return unix_funcs
->pNtGdiAngleArc( hdc
, x
, y
, radius
, start_angle
, sweep_angle
);
54 BOOL WINAPI
NtGdiArcInternal( UINT type
, HDC hdc
, INT left
, INT top
, INT right
, INT bottom
,
55 INT xstart
, INT ystart
, INT xend
, INT yend
)
57 if (!unix_funcs
) return FALSE
;
58 return unix_funcs
->pNtGdiArcInternal( type
, hdc
, left
, top
, right
, bottom
, xstart
, ystart
, xend
, yend
);
61 BOOL WINAPI
NtGdiBeginPath( HDC hdc
)
63 if (!unix_funcs
) return FALSE
;
64 return unix_funcs
->pNtGdiBeginPath( hdc
);
67 BOOL WINAPI
NtGdiBitBlt( HDC hdc_dst
, INT x_dst
, INT y_dst
, INT width
, INT height
, HDC hdc_src
,
68 INT x_src
, INT y_src
, DWORD rop
, DWORD bk_color
, FLONG fl
)
70 if (!unix_funcs
) return FALSE
;
71 return unix_funcs
->pNtGdiBitBlt( hdc_dst
, x_dst
, y_dst
, width
, height
, hdc_src
, x_src
, y_src
,
75 BOOL WINAPI
NtGdiCloseFigure( HDC hdc
)
77 if (!unix_funcs
) return FALSE
;
78 return unix_funcs
->pNtGdiCloseFigure( hdc
);
81 BOOL WINAPI
NtGdiComputeXformCoefficients( HDC hdc
)
83 if (!unix_funcs
) return FALSE
;
84 return unix_funcs
->pNtGdiComputeXformCoefficients( hdc
);
87 HBITMAP WINAPI
NtGdiCreateCompatibleBitmap( HDC hdc
, INT width
, INT height
)
89 if (!unix_funcs
) return 0;
90 return unix_funcs
->pNtGdiCreateCompatibleBitmap( hdc
, width
, height
);
93 HDC WINAPI
NtGdiCreateCompatibleDC( HDC hdc
)
95 if (!unix_funcs
) return 0;
96 return unix_funcs
->pNtGdiCreateCompatibleDC( hdc
);
99 HBITMAP WINAPI
NtGdiCreateDIBitmapInternal( HDC hdc
, INT width
, INT height
, DWORD init
,
100 const void *bits
, const BITMAPINFO
*data
,
101 UINT coloruse
, UINT max_info
, UINT max_bits
,
102 ULONG flags
, HANDLE xform
)
104 if (!unix_funcs
) return 0;
105 return unix_funcs
->pNtGdiCreateDIBitmapInternal( hdc
, width
, height
, init
, bits
, data
,
106 coloruse
, max_info
, max_bits
, flags
, xform
);
109 HDC WINAPI
NtGdiCreateMetafileDC( HDC hdc
)
111 if (!unix_funcs
) return 0;
112 return unix_funcs
->pNtGdiCreateMetafileDC( hdc
);
115 BOOL WINAPI
NtGdiDeleteObjectApp( HGDIOBJ obj
)
117 if (!unix_funcs
) return FALSE
;
118 return unix_funcs
->pNtGdiDeleteObjectApp( obj
);
121 LONG WINAPI
NtGdiDoPalette( HGDIOBJ handle
, WORD start
, WORD count
, void *entries
,
122 DWORD func
, BOOL inbound
)
124 if (!unix_funcs
) return 0;
125 return unix_funcs
->pNtGdiDoPalette( handle
, start
, count
, entries
, func
, inbound
);
128 BOOL WINAPI
NtGdiEllipse( HDC hdc
, INT left
, INT top
, INT right
, INT bottom
)
130 if (!unix_funcs
) return FALSE
;
131 return unix_funcs
->pNtGdiEllipse( hdc
, left
, top
, right
, bottom
);
134 INT WINAPI
NtGdiEndDoc( HDC hdc
)
136 if (!unix_funcs
) return SP_ERROR
;
137 return unix_funcs
->pNtGdiEndDoc( hdc
);
140 BOOL WINAPI
NtGdiEndPath( HDC hdc
)
142 if (!unix_funcs
) return FALSE
;
143 return unix_funcs
->pNtGdiEndPath( hdc
);
146 INT WINAPI
NtGdiEndPage( HDC hdc
)
148 if (!unix_funcs
) return SP_ERROR
;
149 return unix_funcs
->pNtGdiEndPage( hdc
);
152 BOOL WINAPI
NtUserEndPaint( HWND hwnd
, const PAINTSTRUCT
*ps
)
154 if (!unix_funcs
) return FALSE
;
155 return unix_funcs
->pNtUserEndPaint( hwnd
, ps
);
158 BOOL WINAPI
NtGdiEnumFonts( HDC hdc
, ULONG type
, ULONG win32_compat
, ULONG face_name_len
,
159 const WCHAR
*face_name
, ULONG charset
, ULONG
*count
, void *buf
)
161 if (!unix_funcs
) return FALSE
;
162 return unix_funcs
->pNtGdiEnumFonts( hdc
, type
, win32_compat
, face_name_len
, face_name
,
163 charset
, count
, buf
);
166 INT WINAPI
NtGdiExcludeClipRect( HDC hdc
, INT left
, INT top
, INT right
, INT bottom
)
168 if (!unix_funcs
) return ERROR
;
169 return unix_funcs
->pNtGdiExcludeClipRect( hdc
, left
, top
, right
, bottom
);
172 INT WINAPI
NtGdiExtEscape( HDC hdc
, WCHAR
*driver
, INT driver_id
, INT escape
, INT input_size
,
173 const char *input
, INT output_size
, char *output
)
175 if (!unix_funcs
) return 0;
176 return unix_funcs
->pNtGdiExtEscape( hdc
, driver
, driver_id
, escape
, input_size
, input
,
177 output_size
, output
);
180 BOOL WINAPI
NtGdiExtFloodFill( HDC hdc
, INT x
, INT y
, COLORREF color
, UINT type
)
182 if (!unix_funcs
) return FALSE
;
183 return unix_funcs
->pNtGdiExtFloodFill( hdc
, x
, y
, color
, type
);
186 BOOL WINAPI
NtGdiExtTextOutW( HDC hdc
, INT x
, INT y
, UINT flags
, const RECT
*rect
,
187 const WCHAR
*str
, UINT count
, const INT
*dx
, DWORD cp
)
189 if (!unix_funcs
) return FALSE
;
190 return unix_funcs
->pNtGdiExtTextOutW( hdc
, x
, y
, flags
, rect
, str
, count
, dx
, cp
);
193 INT WINAPI
NtGdiExtSelectClipRgn( HDC hdc
, HRGN region
, INT mode
)
195 if (!unix_funcs
) return ERROR
;
196 return unix_funcs
->pNtGdiExtSelectClipRgn( hdc
, region
, mode
);
199 BOOL WINAPI
NtGdiFillPath( HDC hdc
)
201 if (!unix_funcs
) return FALSE
;
202 return unix_funcs
->pNtGdiFillPath( hdc
);
205 BOOL WINAPI
NtGdiFillRgn( HDC hdc
, HRGN hrgn
, HBRUSH hbrush
)
207 if (!unix_funcs
) return FALSE
;
208 return unix_funcs
->pNtGdiFillRgn( hdc
, hrgn
, hbrush
);
211 BOOL WINAPI
NtGdiFontIsLinked( HDC hdc
)
213 if (!unix_funcs
) return FALSE
;
214 return unix_funcs
->pNtGdiFontIsLinked( hdc
);
217 BOOL WINAPI
NtGdiFrameRgn( HDC hdc
, HRGN hrgn
, HBRUSH brush
, INT width
, INT height
)
219 if (!unix_funcs
) return FALSE
;
220 return unix_funcs
->pNtGdiFrameRgn( hdc
, hrgn
, brush
, width
, height
);
223 BOOL WINAPI
NtGdiGetAndSetDCDword( HDC hdc
, UINT method
, DWORD value
, DWORD
*result
)
225 if (!unix_funcs
) return FALSE
;
226 return unix_funcs
->pNtGdiGetAndSetDCDword( hdc
, method
, value
, result
);
229 INT WINAPI
NtGdiGetAppClipBox( HDC hdc
, RECT
*rect
)
231 if (!unix_funcs
) return ERROR
;
232 return unix_funcs
->pNtGdiGetAppClipBox( hdc
, rect
);
235 UINT WINAPI
NtGdiGetBoundsRect( HDC hdc
, RECT
*rect
, UINT flags
)
237 if (!unix_funcs
) return 0;
238 return unix_funcs
->pNtGdiGetBoundsRect( hdc
, rect
, flags
);
241 BOOL WINAPI
NtGdiGetCharABCWidthsW( HDC hdc
, UINT first
, UINT last
, WCHAR
*chars
,
242 ULONG flags
, void *buffer
)
244 if (!unix_funcs
) return FALSE
;
245 return unix_funcs
->pNtGdiGetCharABCWidthsW( hdc
, first
, last
, chars
, flags
, buffer
);
248 BOOL WINAPI
NtGdiGetCharWidthW( HDC hdc
, UINT first_char
, UINT last_char
, WCHAR
*chars
,
249 ULONG flags
, void *buffer
)
251 if (!unix_funcs
) return FALSE
;
252 return unix_funcs
->pNtGdiGetCharWidthW( hdc
, first_char
, last_char
, chars
, flags
, buffer
);
255 BOOL WINAPI
NtGdiGetCharWidthInfo( HDC hdc
, struct char_width_info
*info
)
257 if (!unix_funcs
) return FALSE
;
258 return unix_funcs
->pNtGdiGetCharWidthInfo( hdc
, info
);
261 INT WINAPI
NtGdiGetDIBitsInternal( HDC hdc
, HBITMAP hbitmap
, UINT startscan
, UINT lines
,
262 void *bits
, BITMAPINFO
*info
, UINT coloruse
,
263 UINT max_bits
, UINT max_info
)
265 if (!unix_funcs
) return 0;
266 return unix_funcs
->pNtGdiGetDIBitsInternal( hdc
, hbitmap
, startscan
, lines
, bits
, info
, coloruse
,
267 max_bits
, max_info
);
270 INT WINAPI
NtGdiGetDeviceCaps( HDC hdc
, INT cap
)
272 if (!unix_funcs
) return 0;
273 return unix_funcs
->pNtGdiGetDeviceCaps( hdc
, cap
);
276 BOOL WINAPI
NtGdiGetDeviceGammaRamp( HDC hdc
, void *ptr
)
278 if (!unix_funcs
) return FALSE
;
279 return unix_funcs
->pNtGdiGetDeviceGammaRamp( hdc
, ptr
);
282 DWORD WINAPI
NtGdiGetFontData( HDC hdc
, DWORD table
, DWORD offset
, void *buffer
, DWORD length
)
284 if (!unix_funcs
) return GDI_ERROR
;
285 return unix_funcs
->pNtGdiGetFontData( hdc
, table
, offset
, buffer
, length
);
288 DWORD WINAPI
NtGdiGetFontUnicodeRanges( HDC hdc
, GLYPHSET
*lpgs
)
290 if (!unix_funcs
) return 0;
291 return unix_funcs
->pNtGdiGetFontUnicodeRanges( hdc
, lpgs
);
294 DWORD WINAPI
NtGdiGetGlyphIndicesW( HDC hdc
, const WCHAR
*str
, INT count
,
295 WORD
*indices
, DWORD flags
)
297 if (!unix_funcs
) return GDI_ERROR
;
298 return unix_funcs
->pNtGdiGetGlyphIndicesW( hdc
, str
, count
, indices
, flags
);
301 DWORD WINAPI
NtGdiGetGlyphOutline( HDC hdc
, UINT ch
, UINT format
, GLYPHMETRICS
*metrics
,
302 DWORD size
, void *buffer
, const MAT2
*mat2
,
303 BOOL ignore_rotation
)
305 if (!unix_funcs
) return GDI_ERROR
;
306 return unix_funcs
->pNtGdiGetGlyphOutline( hdc
, ch
, format
, metrics
, size
, buffer
, mat2
, ignore_rotation
);
309 DWORD WINAPI
NtGdiGetKerningPairs( HDC hdc
, DWORD count
, KERNINGPAIR
*kern_pair
)
311 if (!unix_funcs
) return 0;
312 return unix_funcs
->pNtGdiGetKerningPairs( hdc
, count
, kern_pair
);
315 COLORREF WINAPI
NtGdiGetNearestColor( HDC hdc
, COLORREF color
)
317 if (!unix_funcs
) return CLR_INVALID
;
318 return unix_funcs
->pNtGdiGetNearestColor( hdc
, color
);
321 UINT WINAPI
NtGdiGetOutlineTextMetricsInternalW( HDC hdc
, UINT cbData
,
322 OUTLINETEXTMETRICW
*otm
, ULONG opts
)
324 if (!unix_funcs
) return 0;
325 return unix_funcs
->pNtGdiGetOutlineTextMetricsInternalW( hdc
, cbData
, otm
, opts
);
328 COLORREF WINAPI
NtGdiGetPixel( HDC hdc
, INT x
, INT y
)
330 if (!unix_funcs
) return CLR_INVALID
;
331 return unix_funcs
->pNtGdiGetPixel( hdc
, x
, y
);
334 INT WINAPI
NtGdiGetRandomRgn( HDC hdc
, HRGN region
, INT code
)
336 if (!unix_funcs
) return -1;
337 return unix_funcs
->pNtGdiGetRandomRgn( hdc
, region
, code
);
340 BOOL WINAPI
NtGdiGetRasterizerCaps( RASTERIZER_STATUS
*status
, UINT size
)
342 if (!unix_funcs
) return FALSE
;
343 return unix_funcs
->pNtGdiGetRasterizerCaps( status
, size
);
346 BOOL WINAPI
NtGdiGetRealizationInfo( HDC hdc
, struct font_realization_info
*info
)
348 if (!unix_funcs
) return FALSE
;
349 return unix_funcs
->pNtGdiGetRealizationInfo( hdc
, info
);
352 UINT WINAPI
NtGdiGetTextCharsetInfo( HDC hdc
, FONTSIGNATURE
*fs
, DWORD flags
)
354 if (!unix_funcs
) return DEFAULT_CHARSET
;
355 return unix_funcs
->pNtGdiGetTextCharsetInfo( hdc
, fs
, flags
);
358 BOOL WINAPI
NtGdiGetTextExtentExW( HDC hdc
, const WCHAR
*str
, INT count
, INT max_ext
,
359 INT
*nfit
, INT
*dxs
, SIZE
*size
, UINT flags
)
361 if (!unix_funcs
) return FALSE
;
362 return unix_funcs
->pNtGdiGetTextExtentExW( hdc
, str
, count
, max_ext
, nfit
, dxs
, size
, flags
);
365 INT WINAPI
NtGdiGetTextFaceW( HDC hdc
, INT count
, WCHAR
*name
, BOOL alias_name
)
367 if (!unix_funcs
) return 0;
368 return unix_funcs
->pNtGdiGetTextFaceW( hdc
, count
, name
, alias_name
);
371 BOOL WINAPI
NtGdiGetTextMetricsW( HDC hdc
, TEXTMETRICW
*metrics
, ULONG flags
)
373 if (!unix_funcs
) return FALSE
;
374 return unix_funcs
->pNtGdiGetTextMetricsW( hdc
, metrics
, flags
);
377 BOOL WINAPI
NtGdiGradientFill( HDC hdc
, TRIVERTEX
*vert_array
, ULONG nvert
,
378 void *grad_array
, ULONG ngrad
, ULONG mode
)
380 if (!unix_funcs
) return FALSE
;
381 return unix_funcs
->pNtGdiGradientFill( hdc
, vert_array
, nvert
, grad_array
, ngrad
, mode
);
384 INT WINAPI
NtGdiIntersectClipRect( HDC hdc
, INT left
, INT top
, INT right
, INT bottom
)
386 if (!unix_funcs
) return ERROR
;
387 return unix_funcs
->pNtGdiIntersectClipRect( hdc
, left
, top
, right
, bottom
);
390 BOOL WINAPI
NtGdiInvertRgn( HDC hdc
, HRGN hrgn
)
392 if (!unix_funcs
) return FALSE
;
393 return unix_funcs
->pNtGdiInvertRgn( hdc
, hrgn
);
396 BOOL WINAPI
NtGdiLineTo( HDC hdc
, INT x
, INT y
)
398 if (!unix_funcs
) return FALSE
;
399 return unix_funcs
->pNtGdiLineTo( hdc
, x
, y
);
402 BOOL WINAPI
NtGdiMaskBlt( HDC hdc
, INT x_dst
, INT y_dst
, INT width_dst
, INT height_dst
,
403 HDC hdc_src
, INT x_src
, INT y_src
, HBITMAP mask
,
404 INT x_mask
, INT y_mask
, DWORD rop
, DWORD bk_color
)
406 if (!unix_funcs
) return FALSE
;
407 return unix_funcs
->pNtGdiMaskBlt( hdc
, x_dst
, y_dst
, width_dst
, height_dst
, hdc_src
,
408 x_src
, y_src
, mask
, x_mask
, y_mask
, rop
, bk_color
);
411 BOOL WINAPI
NtGdiModifyWorldTransform( HDC hdc
, const XFORM
*xform
, DWORD mode
)
413 if (!unix_funcs
) return FALSE
;
414 return unix_funcs
->pNtGdiModifyWorldTransform( hdc
, xform
, mode
);
417 BOOL WINAPI
NtGdiMoveTo( HDC hdc
, INT x
, INT y
, POINT
*pt
)
419 if (!unix_funcs
) return FALSE
;
420 return unix_funcs
->pNtGdiMoveTo( hdc
, x
, y
, pt
);
423 INT WINAPI
NtGdiOffsetClipRgn( HDC hdc
, INT x
, INT y
)
425 if (!unix_funcs
) return ERROR
;
426 return unix_funcs
->pNtGdiOffsetClipRgn( hdc
, x
, y
);
429 HDC WINAPI
NtGdiOpenDCW( UNICODE_STRING
*device
, const DEVMODEW
*devmode
,
430 UNICODE_STRING
*output
, ULONG type
, BOOL is_display
,
431 HANDLE hspool
, DRIVER_INFO_2W
*driver_info
, void *pdev
)
433 if (!unix_funcs
) return 0;
434 return unix_funcs
->pNtGdiOpenDCW( device
, devmode
, output
, type
, is_display
,
435 hspool
, driver_info
, pdev
);
438 BOOL WINAPI
NtGdiPatBlt( HDC hdc
, INT left
, INT top
, INT width
, INT height
, DWORD rop
)
440 if (!unix_funcs
) return FALSE
;
441 return unix_funcs
->pNtGdiPatBlt( hdc
, left
, top
, width
, height
, rop
);
444 BOOL WINAPI
NtGdiPlgBlt( HDC hdc
, const POINT
*point
, HDC hdc_src
, INT x_src
, INT y_src
,
445 INT width
, INT height
, HBITMAP mask
, INT x_mask
, INT y_mask
,
448 if (!unix_funcs
) return FALSE
;
449 return unix_funcs
->pNtGdiPlgBlt( hdc
, point
, hdc_src
, x_src
, y_src
, width
, height
, mask
,
450 x_mask
, y_mask
, bk_color
);
453 BOOL WINAPI
NtGdiPolyDraw( HDC hdc
, const POINT
*points
, const BYTE
*types
, DWORD count
)
455 if (!unix_funcs
) return FALSE
;
456 return unix_funcs
->pNtGdiPolyDraw( hdc
, points
, types
, count
);
459 ULONG WINAPI
NtGdiPolyPolyDraw( HDC hdc
, const POINT
*points
, const ULONG
*counts
,
460 DWORD count
, UINT function
)
462 if (!unix_funcs
) return 0;
463 return unix_funcs
->pNtGdiPolyPolyDraw( hdc
, points
, counts
, count
, function
);
466 BOOL WINAPI
NtGdiPtVisible( HDC hdc
, INT x
, INT y
)
468 if (!unix_funcs
) return FALSE
;
469 return unix_funcs
->pNtGdiPtVisible( hdc
, x
, y
);
472 BOOL WINAPI
NtGdiRectVisible( HDC hdc
, const RECT
*rect
)
474 if (!unix_funcs
) return FALSE
;
475 return unix_funcs
->pNtGdiRectVisible( hdc
, rect
);
478 BOOL WINAPI
NtGdiRectangle( HDC hdc
, INT left
, INT top
, INT right
, INT bottom
)
480 if (!unix_funcs
) return FALSE
;
481 return unix_funcs
->pNtGdiRectangle( hdc
, left
, top
, right
, bottom
);
484 BOOL WINAPI
NtGdiResetDC( HDC hdc
, const DEVMODEW
*devmode
, BOOL
*banding
,
485 DRIVER_INFO_2W
*driver_info
, void *dev
)
487 if (!unix_funcs
) return FALSE
;
488 return unix_funcs
->pNtGdiResetDC( hdc
, devmode
, banding
, driver_info
, dev
);
491 BOOL WINAPI
NtGdiResizePalette( HPALETTE palette
, UINT count
)
493 if (!unix_funcs
) return FALSE
;
494 return unix_funcs
->pNtGdiResizePalette( palette
, count
);
497 BOOL WINAPI
NtGdiRestoreDC( HDC hdc
, INT level
)
499 if (!unix_funcs
) return FALSE
;
500 return unix_funcs
->pNtGdiRestoreDC( hdc
, level
);
503 BOOL WINAPI
NtGdiRoundRect( HDC hdc
, INT left
, INT top
, INT right
,
504 INT bottom
, INT ell_width
, INT ell_height
)
506 if (!unix_funcs
) return FALSE
;
507 return unix_funcs
->pNtGdiRoundRect( hdc
, left
, top
, right
, bottom
, ell_width
, ell_height
);
510 BOOL WINAPI
NtGdiScaleViewportExtEx( HDC hdc
, INT x_num
, INT x_denom
,
511 INT y_num
, INT y_denom
, SIZE
*size
)
513 if (!unix_funcs
) return FALSE
;
514 return unix_funcs
->pNtGdiScaleViewportExtEx( hdc
, x_num
, x_denom
, y_num
, y_denom
, size
);
517 BOOL WINAPI
NtGdiScaleWindowExtEx( HDC hdc
, INT x_num
, INT x_denom
,
518 INT y_num
, INT y_denom
, SIZE
*size
)
520 if (!unix_funcs
) return FALSE
;
521 return unix_funcs
->pNtGdiScaleWindowExtEx( hdc
, x_num
, x_denom
, y_num
, y_denom
, size
);
524 HGDIOBJ WINAPI
NtGdiSelectBitmap( HDC hdc
, HGDIOBJ handle
)
526 if (!unix_funcs
) return 0;
527 return unix_funcs
->pNtGdiSelectBitmap( hdc
, handle
);
530 HGDIOBJ WINAPI
NtGdiSelectBrush( HDC hdc
, HGDIOBJ handle
)
532 if (!unix_funcs
) return 0;
533 return unix_funcs
->pNtGdiSelectBrush( hdc
, handle
);
536 BOOL WINAPI
NtGdiSelectClipPath( HDC hdc
, INT mode
)
538 if (!unix_funcs
) return FALSE
;
539 return unix_funcs
->pNtGdiSelectClipPath( hdc
, mode
);
542 HGDIOBJ WINAPI
NtGdiSelectFont( HDC hdc
, HGDIOBJ handle
)
544 if (!unix_funcs
) return 0;
545 return unix_funcs
->pNtGdiSelectFont( hdc
, handle
);
548 HGDIOBJ WINAPI
NtGdiSelectPen( HDC hdc
, HGDIOBJ handle
)
550 if (!unix_funcs
) return 0;
551 return unix_funcs
->pNtGdiSelectPen( hdc
, handle
);
554 UINT WINAPI
NtGdiSetBoundsRect( HDC hdc
, const RECT
*rect
, UINT flags
)
556 if (!unix_funcs
) return 0;
557 return unix_funcs
->pNtGdiSetBoundsRect( hdc
, rect
, flags
);
560 INT WINAPI
NtGdiSetDIBitsToDeviceInternal( HDC hdc
, INT x_dst
, INT y_dst
, DWORD cx
,
561 DWORD cy
, INT x_src
, INT y_src
, UINT startscan
,
562 UINT lines
, const void *bits
, const BITMAPINFO
*bmi
,
563 UINT coloruse
, UINT max_bits
, UINT max_info
,
564 BOOL xform_coords
, HANDLE xform
)
566 if (!unix_funcs
) return 0;
567 return unix_funcs
->pNtGdiSetDIBitsToDeviceInternal( hdc
, x_dst
, y_dst
, cx
, cy
, x_src
, y_src
,
568 startscan
, lines
, bits
, bmi
, coloruse
,
569 max_bits
, max_info
, xform_coords
, xform
);
572 BOOL WINAPI
NtGdiSetDeviceGammaRamp( HDC hdc
, void *ptr
)
574 if (!unix_funcs
) return FALSE
;
575 return unix_funcs
->pNtGdiSetDeviceGammaRamp( hdc
, ptr
);
578 DWORD WINAPI
NtGdiSetLayout( HDC hdc
, LONG wox
, DWORD layout
)
580 if (!unix_funcs
) return GDI_ERROR
;
581 return unix_funcs
->pNtGdiSetLayout( hdc
, wox
, layout
);
584 COLORREF WINAPI
NtGdiSetPixel( HDC hdc
, INT x
, INT y
, COLORREF color
)
586 if (!unix_funcs
) return CLR_INVALID
;
587 return unix_funcs
->pNtGdiSetPixel( hdc
, x
, y
, color
);
590 UINT WINAPI
NtGdiSetSystemPaletteUse( HDC hdc
, UINT use
)
592 if (!unix_funcs
) return SYSPAL_ERROR
;
593 return unix_funcs
->pNtGdiSetSystemPaletteUse( hdc
, use
);
596 INT WINAPI
NtGdiStartDoc( HDC hdc
, const DOCINFOW
*doc
, BOOL
*banding
, INT job
)
598 if (!unix_funcs
) return SP_ERROR
;
599 return unix_funcs
->pNtGdiStartDoc( hdc
, doc
, banding
, job
);
602 INT WINAPI
NtGdiStartPage( HDC hdc
)
604 if (!unix_funcs
) return SP_ERROR
;
605 return unix_funcs
->pNtGdiStartPage( hdc
);
608 BOOL WINAPI
NtGdiStretchBlt( HDC hdc
, INT x_dst
, INT y_dst
, INT width_dst
, INT height_dst
,
609 HDC hdc_src
, INT x_src
, INT y_src
, INT width_src
, INT height_src
,
610 DWORD rop
, COLORREF bk_color
)
612 if (!unix_funcs
) return FALSE
;
613 return unix_funcs
->pNtGdiStretchBlt( hdc
, x_dst
, y_dst
, width_dst
, height_dst
, hdc_src
,
614 x_src
, y_src
, width_src
, height_src
, rop
, bk_color
);
617 INT WINAPI
NtGdiStretchDIBitsInternal( HDC hdc
, INT x_dst
, INT y_dst
, INT width_dst
,
618 INT height_dst
, INT x_src
, INT y_src
, INT width_src
,
619 INT height_src
, const void *bits
, const BITMAPINFO
*bmi
,
620 UINT coloruse
, DWORD rop
, UINT max_info
, UINT max_bits
,
623 if (!unix_funcs
) return 0;
624 return unix_funcs
->pNtGdiStretchDIBitsInternal( hdc
, x_dst
, y_dst
, width_dst
, height_dst
,
625 x_src
, y_src
, width_src
, height_src
, bits
, bmi
,
626 coloruse
, rop
, max_info
, max_bits
, xform
);
629 BOOL WINAPI
NtGdiStrokeAndFillPath( HDC hdc
)
631 if (!unix_funcs
) return FALSE
;
632 return unix_funcs
->pNtGdiStrokeAndFillPath( hdc
);
635 BOOL WINAPI
NtGdiStrokePath( HDC hdc
)
637 if (!unix_funcs
) return FALSE
;
638 return unix_funcs
->pNtGdiStrokePath( hdc
);
641 BOOL WINAPI
NtGdiTransparentBlt( HDC hdc
, int x_dst
, int y_dst
, int width_dst
, int height_dst
,
642 HDC hdc_src
, int x_src
, int y_src
, int width_src
, int height_src
,
645 if (!unix_funcs
) return FALSE
;
646 return unix_funcs
->pNtGdiTransparentBlt( hdc
, x_dst
, y_dst
, width_dst
, height_dst
, hdc_src
,
647 x_src
, y_src
, width_src
, height_src
, color
);
650 BOOL WINAPI
NtGdiUnrealizeObject( HGDIOBJ obj
)
652 if (!unix_funcs
) return FALSE
;
653 return unix_funcs
->pNtGdiUnrealizeObject( obj
);
656 BOOL WINAPI
NtGdiUpdateColors( HDC hdc
)
658 if (!unix_funcs
) return FALSE
;
659 return unix_funcs
->pNtGdiUpdateColors( hdc
);
662 BOOL WINAPI
NtGdiWidenPath( HDC hdc
)
664 if (!unix_funcs
) return FALSE
;
665 return unix_funcs
->pNtGdiWidenPath( hdc
);
668 NTSTATUS WINAPI
NtGdiDdDDICheckVidPnExclusiveOwnership( const D3DKMT_CHECKVIDPNEXCLUSIVEOWNERSHIP
*desc
)
670 if (!unix_funcs
) return STATUS_NOT_SUPPORTED
;
671 return unix_funcs
->pNtGdiDdDDICheckVidPnExclusiveOwnership( desc
);
674 NTSTATUS WINAPI
NtGdiDdDDICreateDCFromMemory( D3DKMT_CREATEDCFROMMEMORY
*desc
)
676 if (!unix_funcs
) return STATUS_NOT_SUPPORTED
;
677 return unix_funcs
->pNtGdiDdDDICreateDCFromMemory( desc
);
680 NTSTATUS WINAPI
NtGdiDdDDIDestroyDCFromMemory( const D3DKMT_DESTROYDCFROMMEMORY
*desc
)
682 if (!unix_funcs
) return STATUS_NOT_SUPPORTED
;
683 return unix_funcs
->pNtGdiDdDDIDestroyDCFromMemory( desc
);
686 NTSTATUS WINAPI
NtGdiDdDDIDestroyDevice( const D3DKMT_DESTROYDEVICE
*desc
)
688 if (!unix_funcs
) return STATUS_NOT_SUPPORTED
;
689 return unix_funcs
->pNtGdiDdDDIDestroyDevice( desc
);
692 NTSTATUS WINAPI
NtGdiDdDDIEscape( const D3DKMT_ESCAPE
*desc
)
694 if (!unix_funcs
) return STATUS_NOT_SUPPORTED
;
695 return unix_funcs
->pNtGdiDdDDIEscape( desc
);
698 NTSTATUS WINAPI
NtGdiDdDDISetVidPnSourceOwner( const D3DKMT_SETVIDPNSOURCEOWNER
*desc
)
700 if (!unix_funcs
) return STATUS_NOT_SUPPORTED
;
701 return unix_funcs
->pNtGdiDdDDISetVidPnSourceOwner( desc
);
704 HKL WINAPI
NtUserActivateKeyboardLayout( HKL layout
, UINT flags
)
706 if (!unix_funcs
) return 0;
707 return unix_funcs
->pNtUserActivateKeyboardLayout( layout
, flags
);
710 HDC WINAPI
NtUserBeginPaint( HWND hwnd
, PAINTSTRUCT
*ps
)
712 if (!unix_funcs
) return 0;
713 return unix_funcs
->pNtUserBeginPaint( hwnd
, ps
);
716 LRESULT WINAPI
NtUserCallNextHookEx( HHOOK hhook
, INT code
, WPARAM wparam
, LPARAM lparam
)
718 if (!unix_funcs
) return 0;
719 return unix_funcs
->pNtUserCallNextHookEx( hhook
, code
, wparam
, lparam
);
722 ULONG_PTR WINAPI
NtUserCallNoParam( ULONG code
)
724 if (!unix_funcs
) return 0;
725 return unix_funcs
->pNtUserCallNoParam( code
);
728 ULONG_PTR WINAPI
NtUserCallOneParam( ULONG_PTR arg
, ULONG code
)
730 if (!unix_funcs
) return 0;
731 return unix_funcs
->pNtUserCallOneParam( arg
, code
);
734 ULONG_PTR WINAPI
NtUserCallTwoParam( ULONG_PTR arg1
, ULONG_PTR arg2
, ULONG code
)
736 if (!unix_funcs
) return 0;
737 return unix_funcs
->pNtUserCallTwoParam( arg1
, arg2
, code
);
740 ULONG_PTR WINAPI
NtUserCallHwnd( HWND hwnd
, DWORD code
)
742 if (!unix_funcs
) return 0;
743 return unix_funcs
->pNtUserCallHwnd( hwnd
, code
);
746 ULONG_PTR WINAPI
NtUserCallHwndParam( HWND hwnd
, DWORD_PTR param
, DWORD code
)
748 if (!unix_funcs
) return 0;
749 return unix_funcs
->pNtUserCallHwndParam( hwnd
, param
, code
);
752 LONG WINAPI
NtUserChangeDisplaySettings( UNICODE_STRING
*devname
, DEVMODEW
*devmode
, HWND hwnd
,
753 DWORD flags
, void *lparam
)
755 if (!unix_funcs
) return DISP_CHANGE_FAILED
;
756 return unix_funcs
->pNtUserChangeDisplaySettings( devname
, devmode
, hwnd
, flags
, lparam
);
759 BOOL WINAPI
NtUserClipCursor( const RECT
*rect
)
761 if (!unix_funcs
) return FALSE
;
762 return unix_funcs
->pNtUserClipCursor( rect
);
765 INT WINAPI
NtUserCountClipboardFormats(void)
767 if (!unix_funcs
) return 0;
768 return unix_funcs
->pNtUserCountClipboardFormats();
771 HWND WINAPI
NtUserCreateWindowEx( DWORD ex_style
, UNICODE_STRING
*class_name
,
772 UNICODE_STRING
*version
, UNICODE_STRING
*window_name
,
773 DWORD style
, INT x
, INT y
, INT width
, INT height
,
774 HWND parent
, HMENU menu
, HINSTANCE instance
, void *params
,
775 DWORD flags
, CBT_CREATEWNDW
*cbtc
, DWORD unk
, BOOL ansi
)
777 if (!unix_funcs
) return 0;
778 return unix_funcs
->pNtUserCreateWindowEx( ex_style
, class_name
, version
, window_name
,
779 style
, x
, y
, width
, height
, parent
, menu
,
780 instance
, params
, flags
, cbtc
, unk
, ansi
);
783 HDWP WINAPI
NtUserDeferWindowPosAndBand( HDWP hdwp
, HWND hwnd
, HWND after
,
784 INT x
, INT y
, INT cx
, INT cy
,
785 UINT flags
, UINT unk1
, UINT unk2
)
787 if (!unix_funcs
) return 0;
788 return unix_funcs
->pNtUserDeferWindowPosAndBand( hdwp
, hwnd
, after
, x
, y
, cx
, cy
,
792 BOOL WINAPI
NtUserDestroyCursor( HCURSOR cursor
, ULONG arg
)
794 if (!unix_funcs
) return FALSE
;
795 return unix_funcs
->pNtUserDestroyCursor( cursor
, arg
);
798 BOOL WINAPI
NtUserDestroyMenu( HMENU handle
)
800 if (!unix_funcs
) return FALSE
;
801 return unix_funcs
->pNtUserDestroyMenu( handle
);
804 BOOL WINAPI
NtUserDestroyWindow( HWND hwnd
)
806 if (!unix_funcs
) return FALSE
;
807 return unix_funcs
->pNtUserDestroyWindow( hwnd
);
810 LRESULT WINAPI
NtUserDispatchMessage( const MSG
*msg
)
812 if (!unix_funcs
) return 0;
813 return unix_funcs
->pNtUserDispatchMessage( msg
);
816 BOOL WINAPI
NtUserDrawIconEx( HDC hdc
, INT x0
, INT y0
, HICON icon
, INT width
,
817 INT height
, UINT istep
, HBRUSH hbr
, UINT flags
)
819 if (!unix_funcs
) return FALSE
;
820 return unix_funcs
->pNtUserDrawIconEx( hdc
, x0
, y0
, icon
, width
, height
, istep
, hbr
, flags
);
823 BOOL WINAPI
NtUserEndDeferWindowPosEx( HDWP hdwp
, BOOL async
)
825 if (!unix_funcs
) return FALSE
;
826 return unix_funcs
->pNtUserEndDeferWindowPosEx( hdwp
, async
);
829 NTSTATUS WINAPI
NtUserEnumDisplayDevices( UNICODE_STRING
*device
, DWORD index
,
830 DISPLAY_DEVICEW
*info
, DWORD flags
)
832 if (!unix_funcs
) return FALSE
;
833 return unix_funcs
->pNtUserEnumDisplayDevices( device
, index
, info
, flags
);
836 BOOL WINAPI
NtUserEnumDisplayMonitors( HDC hdc
, RECT
*rect
, MONITORENUMPROC proc
, LPARAM lp
)
838 if (!unix_funcs
) return FALSE
;
839 return unix_funcs
->pNtUserEnumDisplayMonitors( hdc
, rect
, proc
, lp
);
842 BOOL WINAPI
NtUserEnumDisplaySettings( UNICODE_STRING
*device
, DWORD mode
,
843 DEVMODEW
*dev_mode
, DWORD flags
)
845 if (!unix_funcs
) return FALSE
;
846 return unix_funcs
->pNtUserEnumDisplaySettings( device
, mode
, dev_mode
, flags
);
849 BOOL WINAPI
NtUserFlashWindowEx( FLASHWINFO
*info
)
851 if (!unix_funcs
) return FALSE
;
852 return unix_funcs
->pNtUserFlashWindowEx( info
);
855 SHORT WINAPI
NtUserGetAsyncKeyState( INT key
)
857 if (!unix_funcs
) return 0;
858 return unix_funcs
->pNtUserGetAsyncKeyState( key
);
861 ATOM WINAPI
NtUserGetClassInfoEx( HINSTANCE instance
, UNICODE_STRING
*name
, WNDCLASSEXW
*wc
,
862 struct client_menu_name
*menu_name
, BOOL ansi
)
864 if (!unix_funcs
) return FALSE
;
865 return unix_funcs
->pNtUserGetClassInfoEx( instance
, name
, wc
, menu_name
, ansi
);
868 BOOL WINAPI
NtUserGetCursorInfo( CURSORINFO
*info
)
870 if (!unix_funcs
) return FALSE
;
871 return unix_funcs
->pNtUserGetCursorInfo( info
);
874 HDC WINAPI
NtUserGetDCEx( HWND hwnd
, HRGN clip_rgn
, DWORD flags
)
876 if (!unix_funcs
) return 0;
877 return unix_funcs
->pNtUserGetDCEx( hwnd
, clip_rgn
, flags
);
880 LONG WINAPI
NtUserGetDisplayConfigBufferSizes( UINT32 flags
, UINT32
*num_path_info
,
881 UINT32
*num_mode_info
)
883 if (!unix_funcs
) return ERROR_NOT_SUPPORTED
;
884 return unix_funcs
->pNtUserGetDisplayConfigBufferSizes( flags
, num_path_info
, num_mode_info
);
887 BOOL WINAPI
NtUserGetIconInfo( HICON icon
, ICONINFO
*info
, UNICODE_STRING
*module
,
888 UNICODE_STRING
*res_name
, DWORD
*bpp
, LONG unk
)
890 if (!unix_funcs
) return FALSE
;
891 return unix_funcs
->pNtUserGetIconInfo( icon
, info
, module
, res_name
, bpp
, unk
);
894 UINT WINAPI
NtUserGetKeyboardLayoutList( INT size
, HKL
*layouts
)
896 if (!unix_funcs
) return 0;
897 return unix_funcs
->pNtUserGetKeyboardLayoutList( size
, layouts
);
900 INT WINAPI
NtUserGetKeyNameText( LONG lparam
, WCHAR
*buffer
, INT size
)
902 if (!unix_funcs
) return 0;
903 return unix_funcs
->pNtUserGetKeyNameText( lparam
, buffer
, size
);
906 BOOL WINAPI
NtUserGetUpdateRect( HWND hwnd
, RECT
*rect
, BOOL erase
)
908 if (!unix_funcs
) return FALSE
;
909 return unix_funcs
->pNtUserGetUpdateRect( hwnd
, rect
, erase
);
912 INT WINAPI
NtUserGetUpdateRgn( HWND hwnd
, HRGN hrgn
, BOOL erase
)
914 if (!unix_funcs
) return 0;
915 return unix_funcs
->pNtUserGetUpdateRgn( hwnd
, hrgn
, erase
);
918 BOOL WINAPI
NtUserMoveWindow( HWND hwnd
, INT x
, INT y
, INT cx
, INT cy
, BOOL repaint
)
920 if (!unix_funcs
) return 0;
921 return unix_funcs
->pNtUserMoveWindow( hwnd
, x
, y
, cx
, cy
, repaint
);
924 INT WINAPI
NtUserGetPriorityClipboardFormat( UINT
*list
, INT count
)
926 if (!unix_funcs
) return 0;
927 return unix_funcs
->pNtUserGetPriorityClipboardFormat( list
, count
);
930 DWORD WINAPI
NtUserGetQueueStatus( UINT flags
)
932 if (!unix_funcs
) return 0;
933 return unix_funcs
->pNtUserGetQueueStatus( flags
);
936 BOOL WINAPI
NtUserGetUpdatedClipboardFormats( UINT
*formats
, UINT size
, UINT
*out_size
)
938 if (!unix_funcs
) return FALSE
;
939 return unix_funcs
->pNtUserGetUpdatedClipboardFormats( formats
, size
, out_size
);
942 BOOL WINAPI
NtUserIsClipboardFormatAvailable( UINT format
)
944 if (!unix_funcs
) return FALSE
;
945 return unix_funcs
->pNtUserIsClipboardFormatAvailable( format
);
948 UINT WINAPI
NtUserMapVirtualKeyEx( UINT code
, UINT type
, HKL layout
)
950 if (!unix_funcs
) return -1;
951 return unix_funcs
->pNtUserMapVirtualKeyEx( code
, type
, layout
);
954 BOOL WINAPI
NtUserMessageCall( HWND hwnd
, UINT msg
, WPARAM wparam
, LPARAM lparam
,
955 ULONG_PTR result_info
, DWORD type
, BOOL ansi
)
957 if (!unix_funcs
) return 0;
958 return unix_funcs
->pNtUserMessageCall( hwnd
, msg
, wparam
, lparam
, result_info
, type
, ansi
);
961 BOOL WINAPI
NtUserRedrawWindow( HWND hwnd
, const RECT
*rect
, HRGN hrgn
, UINT flags
)
963 if (!unix_funcs
) return FALSE
;
964 return unix_funcs
->pNtUserRedrawWindow( hwnd
, rect
, hrgn
, flags
);
967 ATOM WINAPI
NtUserRegisterClassExWOW( const WNDCLASSEXW
*wc
, UNICODE_STRING
*name
, UNICODE_STRING
*version
,
968 struct client_menu_name
*client_menu_name
, DWORD fnid
, DWORD flags
,
971 if (!unix_funcs
) return 0;
972 return unix_funcs
->pNtUserRegisterClassExWOW( wc
, name
, version
, client_menu_name
, fnid
, flags
, wow
);
975 BOOL WINAPI
NtUserRegisterHotKey( HWND hwnd
, INT id
, UINT modifiers
, UINT vk
)
977 if (!unix_funcs
) return FALSE
;
978 return unix_funcs
->pNtUserRegisterHotKey( hwnd
, id
, modifiers
, vk
);
981 INT WINAPI
NtUserReleaseDC( HWND hwnd
, HDC hdc
)
983 if (!unix_funcs
) return 0;
984 return unix_funcs
->pNtUserReleaseDC( hwnd
, hdc
);
987 BOOL WINAPI
NtUserScrollDC( HDC hdc
, INT dx
, INT dy
, const RECT
*scroll
, const RECT
*clip
,
988 HRGN ret_update_rgn
, RECT
*update_rect
)
990 if (!unix_funcs
) return FALSE
;
991 return unix_funcs
->pNtUserScrollDC( hdc
, dx
, dy
, scroll
, clip
, ret_update_rgn
, update_rect
);
994 HPALETTE WINAPI
NtUserSelectPalette( HDC hdc
, HPALETTE hpal
, WORD bkg
)
996 if (!unix_funcs
) return 0;
997 return unix_funcs
->pNtUserSelectPalette( hdc
, hpal
, bkg
);
1000 HWND WINAPI
NtUserSetActiveWindow( HWND hwnd
)
1002 if (!unix_funcs
) return 0;
1003 return unix_funcs
->pNtUserSetActiveWindow( hwnd
);
1006 HWND WINAPI
NtUserSetCapture( HWND hwnd
)
1008 if (!unix_funcs
) return 0;
1009 return unix_funcs
->pNtUserSetCapture( hwnd
);
1012 HCURSOR WINAPI
NtUserSetCursor( HCURSOR cursor
)
1014 if (!unix_funcs
) return 0;
1015 return unix_funcs
->pNtUserSetCursor( cursor
);
1018 DWORD WINAPI
NtUserSetClassLong( HWND hwnd
, INT offset
, LONG newval
, BOOL ansi
)
1020 if (!unix_funcs
) return 0;
1021 return unix_funcs
->pNtUserSetClassLong( hwnd
, offset
, newval
, ansi
);
1024 ULONG_PTR WINAPI
NtUserSetClassLongPtr( HWND hwnd
, INT offset
, LONG_PTR newval
, BOOL ansi
)
1026 if (!unix_funcs
) return 0;
1027 return unix_funcs
->pNtUserSetClassLongPtr( hwnd
, offset
, newval
, ansi
);
1030 WORD WINAPI
NtUserSetClassWord( HWND hwnd
, INT offset
, WORD newval
)
1032 if (!unix_funcs
) return 0;
1033 return unix_funcs
->pNtUserSetClassWord( hwnd
, offset
, newval
);
1036 BOOL WINAPI
NtUserSetCursorIconData( HCURSOR cursor
, UNICODE_STRING
*module
, UNICODE_STRING
*res_name
,
1037 struct cursoricon_desc
*desc
)
1039 if (!unix_funcs
) return FALSE
;
1040 return unix_funcs
->pNtUserSetCursorIconData( cursor
, module
, res_name
, desc
);
1043 BOOL WINAPI
NtUserSetCursorPos( INT x
, INT y
)
1045 if (!unix_funcs
) return FALSE
;
1046 return unix_funcs
->pNtUserSetCursorPos( x
, y
);
1049 HWND WINAPI
NtUserSetFocus( HWND hwnd
)
1051 if (!unix_funcs
) return FALSE
;
1052 return unix_funcs
->pNtUserSetFocus( hwnd
);
1055 BOOL WINAPI
NtUserSetLayeredWindowAttributes( HWND hwnd
, COLORREF key
, BYTE alpha
, DWORD flags
)
1057 if (!unix_funcs
) return FALSE
;
1058 return unix_funcs
->pNtUserSetLayeredWindowAttributes( hwnd
, key
, alpha
, flags
);
1061 HWND WINAPI
NtUserSetParent( HWND hwnd
, HWND parent
)
1063 if (!unix_funcs
) return 0;
1064 return unix_funcs
->pNtUserSetParent( hwnd
, parent
);
1067 BOOL WINAPI
NtUserSetSysColors( INT count
, const INT
*colors
, const COLORREF
*values
)
1069 if (!unix_funcs
) return FALSE
;
1070 return unix_funcs
->pNtUserSetSysColors( count
, colors
, values
);
1073 LONG WINAPI
NtUserSetWindowLong( HWND hwnd
, INT offset
, LONG newval
, BOOL ansi
)
1075 if (!unix_funcs
) return 0;
1076 return unix_funcs
->pNtUserSetWindowLong( hwnd
, offset
, newval
, ansi
);
1079 LONG_PTR WINAPI
NtUserSetWindowLongPtr( HWND hwnd
, INT offset
, LONG_PTR newval
, BOOL ansi
)
1081 if (!unix_funcs
) return 0;
1082 return unix_funcs
->pNtUserSetWindowLongPtr( hwnd
, offset
, newval
, ansi
);
1085 BOOL WINAPI
NtUserSetWindowPos( HWND hwnd
, HWND after
, INT x
, INT y
, INT cx
, INT cy
, UINT flags
)
1087 if (!unix_funcs
) return 0;
1088 return unix_funcs
->pNtUserSetWindowPos( hwnd
, after
, x
, y
, cx
, cy
, flags
);
1091 int WINAPI
NtUserSetWindowRgn( HWND hwnd
, HRGN hrgn
, BOOL redraw
)
1093 if (!unix_funcs
) return 0;
1094 return unix_funcs
->pNtUserSetWindowRgn( hwnd
, hrgn
, redraw
);
1097 WORD WINAPI
NtUserSetWindowWord( HWND hwnd
, INT offset
, WORD newval
)
1099 if (!unix_funcs
) return 0;
1100 return unix_funcs
->pNtUserSetWindowWord( hwnd
, offset
, newval
);
1103 INT WINAPI
NtUserShowCursor( BOOL show
)
1105 if (!unix_funcs
) return 0;
1106 return unix_funcs
->pNtUserShowCursor( show
);
1109 BOOL WINAPI
NtUserShowWindowAsync( HWND hwnd
, INT cmd
)
1111 if (!unix_funcs
) return FALSE
;
1112 return unix_funcs
->pNtUserShowWindowAsync( hwnd
, cmd
);
1115 BOOL WINAPI
NtUserShowWindow( HWND hwnd
, INT cmd
)
1117 if (!unix_funcs
) return FALSE
;
1118 return unix_funcs
->pNtUserShowWindow( hwnd
, cmd
);
1121 BOOL WINAPI
NtUserSystemParametersInfo( UINT action
, UINT val
, PVOID ptr
, UINT winini
)
1123 if (!unix_funcs
) return FALSE
;
1124 return unix_funcs
->pNtUserSystemParametersInfo( action
, val
, ptr
, winini
);
1127 BOOL WINAPI
NtUserSystemParametersInfoForDpi( UINT action
, UINT val
, PVOID ptr
, UINT winini
, UINT dpi
)
1129 if (!unix_funcs
) return FALSE
;
1130 return unix_funcs
->pNtUserSystemParametersInfoForDpi( action
, val
, ptr
, winini
, dpi
);
1133 INT WINAPI
NtUserToUnicodeEx( UINT virt
, UINT scan
, const BYTE
*state
,
1134 WCHAR
*str
, int size
, UINT flags
, HKL layout
)
1136 if (!unix_funcs
) return 0;
1137 return unix_funcs
->pNtUserToUnicodeEx( virt
, scan
, state
, str
, size
, flags
, layout
);
1140 BOOL WINAPI
NtUserUnregisterClass( UNICODE_STRING
*name
, HINSTANCE instance
,
1141 struct client_menu_name
*client_menu_name
)
1143 if (!unix_funcs
) return FALSE
;
1144 return unix_funcs
->pNtUserUnregisterClass( name
, instance
, client_menu_name
);
1147 BOOL WINAPI
NtUserUnregisterHotKey( HWND hwnd
, INT id
)
1149 if (!unix_funcs
) return FALSE
;
1150 return unix_funcs
->pNtUserUnregisterHotKey( hwnd
, id
);
1153 BOOL WINAPI
NtUserUpdateLayeredWindow( HWND hwnd
, HDC hdc_dst
, const POINT
*pts_dst
, const SIZE
*size
,
1154 HDC hdc_src
, const POINT
*pts_src
, COLORREF key
,
1155 const BLENDFUNCTION
*blend
, DWORD flags
, const RECT
*dirty
)
1157 if (!unix_funcs
) return FALSE
;
1158 return unix_funcs
->pNtUserUpdateLayeredWindow( hwnd
, hdc_dst
, pts_dst
, size
, hdc_src
, pts_src
,
1159 key
, blend
, flags
, dirty
);
1162 WORD WINAPI
NtUserVkKeyScanEx( WCHAR chr
, HKL layout
)
1164 if (!unix_funcs
) return 0;
1165 return unix_funcs
->pNtUserVkKeyScanEx( chr
, layout
);
1168 HWND WINAPI
NtUserWindowFromPoint( LONG x
, LONG y
)
1170 if (!unix_funcs
) return 0;
1171 return unix_funcs
->pNtUserWindowFromPoint( x
, y
);
1174 INT WINAPI
SetDIBits( HDC hdc
, HBITMAP hbitmap
, UINT startscan
,
1175 UINT lines
, const void *bits
, const BITMAPINFO
*info
,
1178 if (!unix_funcs
) return 0;
1179 return unix_funcs
->pSetDIBits( hdc
, hbitmap
, startscan
, lines
, bits
, info
, coloruse
);
1182 BOOL CDECL
__wine_get_icm_profile( HDC hdc
, BOOL allow_default
, DWORD
*size
, WCHAR
*filename
)
1184 if (!unix_funcs
) return FALSE
;
1185 return unix_funcs
->get_icm_profile( hdc
, allow_default
, size
, filename
);
1188 BOOL CDECL
__wine_get_brush_bitmap_info( HBRUSH handle
, BITMAPINFO
*info
, void *bits
, UINT
*usage
)
1190 if (!unix_funcs
) return FALSE
;
1191 return unix_funcs
->get_brush_bitmap_info( handle
, info
, bits
, usage
);
1194 BOOL CDECL
__wine_get_file_outline_text_metric( const WCHAR
*path
, OUTLINETEXTMETRICW
*otm
)
1196 if (!unix_funcs
) return FALSE
;
1197 return unix_funcs
->get_file_outline_text_metric( path
, otm
);
1200 const struct vulkan_funcs
* CDECL
__wine_get_vulkan_driver(UINT version
)
1202 if (!unix_funcs
) return NULL
;
1203 return unix_funcs
->get_vulkan_driver( version
);
1206 struct opengl_funcs
* CDECL
__wine_get_wgl_driver( HDC hdc
, UINT version
)
1208 if (!unix_funcs
) return NULL
;
1209 return unix_funcs
->get_wgl_driver( hdc
, version
);
1212 /***********************************************************************
1213 * __wine_set_display_driver (win32u.@)
1215 void CDECL
__wine_set_display_driver( struct user_driver_funcs
*funcs
, UINT version
)
1217 if (!unix_funcs
) return;
1218 return unix_funcs
->set_display_driver( funcs
, version
);
1221 extern void wrappers_init( unixlib_handle_t handle
)
1224 if (!__wine_unix_call( handle
, 1, &args
)) unix_funcs
= args
;