ws2_32: Move the setsockopt(IP_ADD_SOURCE_MEMBERSHIP) implementation to ntdll.
[wine.git] / include / ntgdi.h
blobb4501c46b4e81054ac86dace87f019be17996cee
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>
24 typedef struct _GDI_HANDLE_ENTRY
26 UINT64 Object;
27 union
29 struct
31 USHORT ProcessId;
32 USHORT Lock : 1;
33 USHORT Count : 15;
35 ULONG Value;
36 } Owner;
37 USHORT Unique;
38 UCHAR Type;
39 UCHAR Flags;
40 UINT64 UserPointer;
41 } GDI_HANDLE_ENTRY, *PGDI_HANDLE_ENTRY;
43 #define GDI_MAX_HANDLE_COUNT 0x10000
45 typedef struct _GDI_SHARED_MEMORY
47 GDI_HANDLE_ENTRY Handles[GDI_MAX_HANDLE_COUNT];
48 } GDI_SHARED_MEMORY, *PGDI_SHARED_MEMORY;
50 INT WINAPI NtGdiAbortDoc( HDC hdc );
51 BOOL WINAPI NtGdiAbortPath( HDC hdc );
52 BOOL WINAPI NtGdiAngleArc( HDC hdc, INT x, INT y, DWORD radius, FLOAT start_angle,
53 FLOAT 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 );
56 BOOL WINAPI NtGdiBeginPath( HDC hdc );
57 BOOL WINAPI NtGdiCancelDC( HDC hdc );
58 BOOL WINAPI NtGdiCloseFigure( HDC hdc );
59 INT WINAPI NtGdiCombineRgn( HRGN dest, HRGN src1, HRGN src2, INT mode );
60 HBITMAP WINAPI NtGdiCreateBitmap( INT width, INT height, UINT planes,
61 UINT bpp, const void *bits );
62 HBRUSH WINAPI NtGdiCreateHatchBrushInternal( INT style, COLORREF color, BOOL pen );
63 BOOL WINAPI NtGdiEllipse( HDC hdc, INT left, INT top, INT right, INT bottom );
64 INT WINAPI NtGdiEndDoc(HDC hdc);
65 BOOL WINAPI NtGdiEndPath( HDC hdc );
66 HANDLE WINAPI NtGdiCreateClientObj( ULONG type );
67 HFONT WINAPI NtGdiHfontCreate( const ENUMLOGFONTEXDVW *enumex, ULONG unk2, ULONG unk3,
68 ULONG unk4, void *data );
69 HBRUSH WINAPI NtGdiCreateDIBBrush( const void* data, UINT coloruse );
70 HBRUSH WINAPI NtGdiCreatePatternBrushInternal( HBITMAP hbitmap, BOOL pen );
71 HPEN WINAPI NtGdiCreatePen( INT style, INT width, COLORREF color );
72 HRGN WINAPI NtGdiCreateRectRgn( INT left, INT top, INT right, INT bottom );
73 HRGN WINAPI NtGdiCreateRoundRectRgn( INT left, INT top, INT right, INT bottom,
74 INT ellipse_width, INT ellipse_height );
75 HBRUSH WINAPI NtGdiCreateSolidBrush( COLORREF color );
76 BOOL WINAPI NtGdiDeleteObjectApp( HGDIOBJ obj );
77 LONG WINAPI NtGdiDoPalette( HGDIOBJ handle, WORD start, WORD count, void *entries,
78 DWORD func, BOOL inbound );
79 INT WINAPI NtGdiEndPage( HDC hdc );
80 HPEN WINAPI NtGdiExtCreatePen( DWORD style, DWORD width, const LOGBRUSH *brush,
81 DWORD style_count, const DWORD *style_bits );
82 HRGN WINAPI NtGdiExtCreateRegion( const XFORM *xform, DWORD count, const RGNDATA *data );
83 INT WINAPI NtGdiExtGetObjectW( HGDIOBJ handle, INT count, void *buffer );
84 INT WINAPI NtGdiExtSelectClipRgn( HDC hdc, HRGN region, INT mode );
85 BOOL WINAPI NtGdiFillRgn( HDC hdc, HRGN hrgn, HBRUSH hbrush );
86 INT WINAPI NtGdiExtEscape( HDC hdc, INT escape, INT input_size, const char *input,
87 INT output_size, char *output );
88 BOOL WINAPI NtGdiExtFloodFill( HDC hdc, INT x, INT y, COLORREF color, UINT type );
89 BOOL WINAPI NtGdiFrameRgn( HDC hdc, HRGN hrgn, HBRUSH brush,
90 INT width, INT height );
91 BOOL WINAPI NtGdiFillPath( HDC hdc );
92 BOOL WINAPI NtGdiGetAndSetDCDword( HDC hdc, UINT method, DWORD value, DWORD *result );
93 INT WINAPI NtGdiGetAppClipBox( HDC hdc, RECT *rect );
94 BOOL WINAPI NtGdiGetBitmapDimension( HBITMAP bitmap, SIZE *size );
95 UINT WINAPI NtGdiGetBoundsRect( HDC hdc, RECT *rect, UINT flags );
96 BOOL WINAPI NtGdiGetCharABCWidthsW( HDC hdc, UINT first_char, UINT last_char, ABC *abc );
97 BOOL WINAPI NtGdiGetCharWidthW( HDC hdc, UINT first_char, UINT last_char, INT *buffer );
98 BOOL WINAPI NtGdiGetDCDword( HDC hdc, UINT method, DWORD *result );
99 BOOL WINAPI NtGdiGetDCPoint( HDC hdc, UINT method, POINT *result );
100 INT WINAPI NtGdiGetDeviceCaps( HDC hdc, INT cap );
101 BOOL WINAPI NtGdiGetDeviceGammaRamp( HDC hdc, void *ptr );
102 BOOL WINAPI NtGdiGetMiterLimit( HDC hdc, FLOAT *limit );
103 COLORREF WINAPI NtGdiGetNearestColor( HDC hdc, COLORREF color );
104 UINT WINAPI NtGdiGetNearestPaletteIndex( HPALETTE hpalette, COLORREF color );
105 UINT WINAPI NtGdiGetOutlineTextMetricsInternalW( HDC hdc, UINT cbData,
106 OUTLINETEXTMETRICW *otm, ULONG opts);
107 INT WINAPI NtGdiGetPath( HDC hdc, POINT *points, BYTE *types, INT size );
108 INT WINAPI NtGdiGetRandomRgn( HDC hdc, HRGN region, INT code );
109 DWORD WINAPI NtGdiGetRegionData( HRGN hrgn, DWORD count, RGNDATA *data );
110 INT WINAPI NtGdiGetRgnBox( HRGN hrgn, RECT *rect );
111 UINT WINAPI NtGdiGetTextCharsetInfo( HDC hdc, FONTSIGNATURE *fs, DWORD flags );
112 INT WINAPI NtGdiGetTextFaceW( HDC hdc, INT count, WCHAR *name );
113 BOOL WINAPI NtGdiGetTextMetricsW( HDC hdc, TEXTMETRICW *metrics );
114 BOOL WINAPI NtGdiGetTransform( HDC hdc, DWORD which, XFORM *xform );
115 BOOL WINAPI NtGdiGradientFill( HDC hdc, TRIVERTEX *vert_array, ULONG nvert,
116 void *grad_array, ULONG ngrad, ULONG mode );
117 BOOL WINAPI NtGdiEqualRgn( HRGN hrgn1, HRGN hrgn2 );
118 INT WINAPI NtGdiExcludeClipRect( HDC hdc, INT left, INT top, INT right, INT bottom );
119 BOOL WINAPI NtGdiFlattenPath( HDC hdc );
120 BOOL WINAPI NtGdiFontIsLinked( HDC hdc );
121 INT WINAPI NtGdiIntersectClipRect( HDC hdc, INT left, INT top, INT right, INT bottom );
122 BOOL WINAPI NtGdiInvertRgn( HDC hdc, HRGN hrgn );
123 BOOL WINAPI NtGdiLineTo( HDC hdc, INT x, INT y );
124 BOOL WINAPI NtGdiMoveTo( HDC hdc, INT x, INT y, POINT *pt );
125 INT WINAPI NtGdiOffsetClipRgn( HDC hdc, INT x, INT y );
126 INT WINAPI NtGdiOffsetRgn( HRGN hrgn, INT x, INT y );
127 HRGN WINAPI NtGdiPathToRegion( HDC hdc );
128 BOOL WINAPI NtGdiPolyDraw(HDC hdc, const POINT *points, const BYTE *types, DWORD count );
129 ULONG WINAPI NtGdiPolyPolyDraw( HDC hdc, const POINT *points, const UINT *counts,
130 DWORD count, UINT function );
131 BOOL WINAPI NtGdiPtInRegion( HRGN hrgn, INT x, INT y );
132 BOOL WINAPI NtGdiPtVisible( HDC hdc, INT x, INT y );
133 BOOL WINAPI NtGdiRectInRegion( HRGN hrgn, const RECT *rect );
134 BOOL WINAPI NtGdiRectVisible( HDC hdc, const RECT *rect );
135 BOOL WINAPI NtGdiRectangle( HDC hdc, INT left, INT top, INT right, INT bottom );
136 HDC WINAPI NtGdiResetDC( HDC hdc, const DEVMODEW *devmode );
137 BOOL WINAPI NtGdiRestoreDC( HDC hdc, INT level );
138 BOOL WINAPI NtGdiRoundRect( HDC hdc, INT left, INT top, INT right,
139 INT bottom, INT ell_width, INT ell_height );
140 INT WINAPI NtGdiSaveDC( HDC hdc );
141 BOOL WINAPI NtGdiScaleViewportExtEx( HDC hdc, INT x_num, INT x_denom,
142 INT y_num, INT y_denom, SIZE *size );
143 BOOL WINAPI NtGdiScaleWindowExtEx( HDC hdc, INT x_num, INT x_denom,
144 INT y_num, INT y_denom, SIZE *size );
145 HGDIOBJ WINAPI NtGdiSelectBitmap( HDC hdc, HGDIOBJ handle );
146 HGDIOBJ WINAPI NtGdiSelectBrush( HDC hdc, HGDIOBJ handle );
147 BOOL WINAPI NtGdiSelectClipPath( HDC hdc, INT mode );
148 HGDIOBJ WINAPI NtGdiSelectFont( HDC hdc, HGDIOBJ handle );
149 HGDIOBJ WINAPI NtGdiSelectPen( HDC hdc, HGDIOBJ handle );
150 LONG WINAPI NtGdiSetBitmapBits( HBITMAP hbitmap, LONG count, const void *bits );
151 BOOL WINAPI NtGdiSetBitmapDimension( HBITMAP hbitmap, INT x, INT y, SIZE *prev_size );
152 BOOL WINAPI NtGdiSetBrushOrg( HDC hdc, INT x, INT y, POINT *prev_org );
153 UINT WINAPI NtGdiSetBoundsRect( HDC hdc, const RECT *rect, UINT flags );
154 BOOL WINAPI NtGdiSetDeviceGammaRamp( HDC hdc, void *ptr );
155 DWORD WINAPI NtGdiSetLayout( HDC hdc, DWORD layout );
156 INT WINAPI NtGdiSetMetaRgn( HDC hdc );
157 BOOL WINAPI NtGdiSetMiterLimit( HDC hdc, FLOAT limit, FLOAT *prev_limit );
158 COLORREF WINAPI NtGdiSetPixel( HDC hdc, INT x, INT y, COLORREF color );
159 BOOL WINAPI NtGdiSetPixelFormat( HDC hdc, INT format, const PIXELFORMATDESCRIPTOR *descr );
160 BOOL WINAPI NtGdiSetRectRgn( HRGN hrgn, INT left, INT top, INT right, INT bottom );
161 BOOL WINAPI NtGdiSetTextJustification( HDC hdc, INT extra, INT breaks );
162 BOOL WINAPI NtGdiSetVirtualResolution( HDC hdc, DWORD horz_res, DWORD vert_res,
163 DWORD horz_size, DWORD vert_size );
164 INT WINAPI NtGdiStartDoc( HDC hdc, const DOCINFOW *doc );
165 INT WINAPI NtGdiStartPage( HDC hdc );
166 BOOL WINAPI NtGdiStrokePath( HDC hdc );
167 BOOL WINAPI NtGdiStrokeAndFillPath( HDC hdc );
168 BOOL WINAPI NtGdiTransformPoints( HDC hdc, POINT *points, INT count, UINT mode );
169 BOOL WINAPI NtGdiUnrealizeObject( HGDIOBJ obj );
170 BOOL WINAPI NtGdiWidenPath( HDC hdc );
172 #endif /* _NTGDI_ */