ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/MSYS2/mingw32/i686-w64-mingw32/include/winddi.h
Revision: 1166
Committed: Tue Oct 26 14:22:36 2021 UTC (4 years ago) by rossy
Content type: text/x-chdr
File size: 83627 byte(s)
Log Message:
Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File Contents

# Content
1 /*
2 * winddi.h
3 *
4 * GDI device driver interface
5 *
6 * This file is part of the w32api package.
7 *
8 * Contributors:
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
10 *
11 * THIS SOFTWARE IS NOT COPYRIGHTED
12 *
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
15 *
16 * This code is distributed in the hope that it will be useful but
17 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
18 * DISCLAIMED. This includes but is not limited to warranties of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
20 *
21 */
22
23 #ifndef _WINDDI_
24 #define _WINDDI_
25
26 #ifdef __VIDEO_H__
27 #error video.h cannot be included with winddi.h
28 #else
29
30 #include <ddrawint.h>
31 #include <d3dnthal.h>
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif
36
37 #ifndef DECLSPEC_IMPORT
38 #ifndef __WIDL__
39 #define DECLSPEC_IMPORT __declspec(dllimport)
40 #else
41 #define DECLSPEC_IMPORT
42 #endif
43 #endif
44
45 #ifndef WIN32KAPI
46 #define WIN32KAPI DECLSPEC_ADDRSAFE
47 #endif
48
49 #define DDI_DRIVER_VERSION_NT4 0x00020000
50 #define DDI_DRIVER_VERSION_SP3 0x00020003
51 #define DDI_DRIVER_VERSION_NT5 0x00030000
52 #define DDI_DRIVER_VERSION_NT5_01 0x00030100
53
54 #define GDI_DRIVER_VERSION 0x4000
55
56 #ifdef _X86_
57
58 typedef DWORD FLOATL;
59
60 #else /* !_X86_ */
61
62 typedef FLOAT FLOATL;
63
64 #endif
65
66 typedef SHORT FWORD;
67 typedef LONG LDECI4;
68 typedef ULONG IDENT;
69
70 typedef ULONG_PTR HFF;
71 typedef ULONG_PTR HFC;
72
73 typedef LONG PTRDIFF;
74 typedef PTRDIFF *PPTRDIFF;
75 typedef LONG FIX;
76 typedef FIX *PFIX;
77 typedef ULONG ROP4;
78 typedef ULONG MIX;
79 typedef ULONG HGLYPH;
80 typedef HGLYPH *PHGLYPH;
81
82 typedef LONG_PTR (APIENTRY *PFN)();
83
84 DECLARE_HANDLE(HBM);
85 DECLARE_HANDLE(HDEV);
86 DECLARE_HANDLE(HSURF);
87 DECLARE_HANDLE(DHSURF);
88 DECLARE_HANDLE(DHPDEV);
89 DECLARE_HANDLE(HDRVOBJ);
90
91 #ifndef _NTDDVDEO_
92 typedef struct _ENG_EVENT *PEVENT;
93 #endif
94
95 #define OPENGL_CMD 4352
96 #define OPENGL_GETINFO 4353
97 #define WNDOBJ_SETUP 4354
98
99 #define FD_ERROR 0xFFFFFFFF
100 #define DDI_ERROR 0xFFFFFFFF
101
102 #define HFF_INVALID ((HFF) 0)
103 #define HFC_INVALID ((HFC) 0)
104 #define HGLYPH_INVALID ((HGLYPH) -1)
105
106 #define FP_ALTERNATEMODE 1
107 #define FP_WINDINGMODE 2
108
109 #define DN_ACCELERATION_LEVEL 1
110 #define DN_DEVICE_ORIGIN 2
111 #define DN_SLEEP_MODE 3
112 #define DN_DRAWING_BEGIN 4
113
114 #define DCR_SOLID 0
115 #define DCR_DRIVER 1
116 #define DCR_HALFTONE 2
117
118 #define GX_IDENTITY 0
119 #define GX_OFFSET 1
120 #define GX_SCALE 2
121 #define GX_GENERAL 3
122
123 #define LTOFX(x) ((x) << 4)
124 #define FXTOL(x) ((x) >> 4)
125 #define FXTOLFLOOR(x) ((x) >> 4)
126 #define FXTOLCEILING(x) ((x + 0x0F) >> 4)
127 #define FXTOLROUND(x) ((((x) >> 3) + 1) >> 1)
128
129 typedef struct _POINTE {
130 FLOATL x;
131 FLOATL y;
132 } POINTE, *PPOINTE;
133
134 typedef union _FLOAT_LONG {
135 FLOATL e;
136 LONG l;
137 } FLOAT_LONG, *PFLOAT_LONG;
138
139 typedef struct _POINTFIX {
140 FIX x;
141 FIX y;
142 } POINTFIX, *PPOINTFIX;
143
144 typedef struct _RECTFX {
145 FIX xLeft;
146 FIX yTop;
147 FIX xRight;
148 FIX yBottom;
149 } RECTFX, *PRECTFX;
150
151 typedef struct _POINTQF {
152 LARGE_INTEGER x;
153 LARGE_INTEGER y;
154 } POINTQF, *PPOINTQF;
155
156
157 typedef struct _BLENDOBJ {
158 BLENDFUNCTION BlendFunction;
159 } BLENDOBJ,*PBLENDOBJ;
160
161 /* BRUSHOBJ.flColorType */
162 #define BR_DEVICE_ICM 0x01
163 #define BR_HOST_ICM 0x02
164 #define BR_CMYKCOLOR 0x04
165 #define BR_ORIGCOLOR 0x08
166
167 typedef struct _BRUSHOBJ {
168 ULONG iSolidColor;
169 PVOID pvRbrush;
170 FLONG flColorType;
171 } BRUSHOBJ;
172
173 typedef struct _CIECHROMA {
174 LDECI4 x;
175 LDECI4 y;
176 LDECI4 Y;
177 } CIECHROMA;
178
179 typedef struct _RUN {
180 LONG iStart;
181 LONG iStop;
182 } RUN, *PRUN;
183
184 typedef struct _CLIPLINE {
185 POINTFIX ptfxA;
186 POINTFIX ptfxB;
187 LONG lStyleState;
188 ULONG c;
189 RUN arun[1];
190 } CLIPLINE, *PCLIPLINE;
191
192 /* CLIPOBJ.iDComplexity constants */
193 #define DC_TRIVIAL 0
194 #define DC_RECT 1
195 #define DC_COMPLEX 3
196
197 /* CLIPOBJ.iFComplexity constants */
198 #define FC_RECT 1
199 #define FC_RECT4 2
200 #define FC_COMPLEX 3
201
202 /* CLIPOBJ.iMode constants */
203 #define TC_RECTANGLES 0
204 #define TC_PATHOBJ 2
205
206 /* CLIPOBJ.fjOptions constants */
207 #define OC_BANK_CLIP 1
208
209 typedef struct _CLIPOBJ {
210 ULONG iUniq;
211 RECTL rclBounds;
212 BYTE iDComplexity;
213 BYTE iFComplexity;
214 BYTE iMode;
215 BYTE fjOptions;
216 } CLIPOBJ;
217
218 typedef struct _COLORINFO {
219 CIECHROMA Red;
220 CIECHROMA Green;
221 CIECHROMA Blue;
222 CIECHROMA Cyan;
223 CIECHROMA Magenta;
224 CIECHROMA Yellow;
225 CIECHROMA AlignmentWhite;
226 LDECI4 RedGamma;
227 LDECI4 GreenGamma;
228 LDECI4 BlueGamma;
229 LDECI4 MagentaInCyanDye;
230 LDECI4 YellowInCyanDye;
231 LDECI4 CyanInMagentaDye;
232 LDECI4 YellowInMagentaDye;
233 LDECI4 CyanInYellowDye;
234 LDECI4 MagentaInYellowDye;
235 } COLORINFO, *PCOLORINFO;
236
237 /* DEVHTADJDATA.DeviceFlags constants */
238 #define DEVHTADJF_COLOR_DEVICE 0x00000001
239 #define DEVHTADJF_ADDITIVE_DEVICE 0x00000002
240
241 typedef struct _DEVHTINFO {
242 DWORD HTFlags;
243 DWORD HTPatternSize;
244 DWORD DevPelsDPI;
245 COLORINFO ColorInfo;
246 } DEVHTINFO, *PDEVHTINFO;
247
248 typedef struct _DEVHTADJDATA {
249 DWORD DeviceFlags;
250 DWORD DeviceXDPI;
251 DWORD DeviceYDPI;
252 PDEVHTINFO pDefHTInfo;
253 PDEVHTINFO pAdjHTInfo;
254 } DEVHTADJDATA, *PDEVHTADJDATA;
255
256 /* DEVINFO.flGraphicsCaps flags */
257 #define GCAPS_BEZIERS 0x00000001
258 #define GCAPS_GEOMETRICWIDE 0x00000002
259 #define GCAPS_ALTERNATEFILL 0x00000004
260 #define GCAPS_WINDINGFILL 0x00000008
261 #define GCAPS_HALFTONE 0x00000010
262 #define GCAPS_COLOR_DITHER 0x00000020
263 #define GCAPS_HORIZSTRIKE 0x00000040
264 #define GCAPS_VERTSTRIKE 0x00000080
265 #define GCAPS_OPAQUERECT 0x00000100
266 #define GCAPS_VECTORFONT 0x00000200
267 #define GCAPS_MONO_DITHER 0x00000400
268 #define GCAPS_ASYNCCHANGE 0x00000800
269 #define GCAPS_ASYNCMOVE 0x00001000
270 #define GCAPS_DONTJOURNAL 0x00002000
271 #define GCAPS_DIRECTDRAW 0x00004000
272 #define GCAPS_ARBRUSHOPAQUE 0x00008000
273 #define GCAPS_PANNING 0x00010000
274 #define GCAPS_HIGHRESTEXT 0x00040000
275 #define GCAPS_PALMANAGED 0x00080000
276 #define GCAPS_DITHERONREALIZE 0x00200000
277 #define GCAPS_NO64BITMEMACCESS 0x00400000
278 #define GCAPS_FORCEDITHER 0x00800000
279 #define GCAPS_GRAY16 0x01000000
280 #define GCAPS_ICM 0x02000000
281 #define GCAPS_CMYKCOLOR 0x04000000
282 #define GCAPS_LAYERED 0x08000000
283 #define GCAPS_ARBRUSHTEXT 0x10000000
284 #define GCAPS_SCREENPRECISION 0x20000000
285 #define GCAPS_FONT_RASTERIZER 0x40000000
286 #define GCAPS_NUP 0x80000000
287
288 /* DEVINFO.iDitherFormat constants */
289 #define BMF_1BPP __MSABI_LONG(1)
290 #define BMF_4BPP __MSABI_LONG(2)
291 #define BMF_8BPP __MSABI_LONG(3)
292 #define BMF_16BPP __MSABI_LONG(4)
293 #define BMF_24BPP __MSABI_LONG(5)
294 #define BMF_32BPP __MSABI_LONG(6)
295 #define BMF_4RLE __MSABI_LONG(7)
296 #define BMF_8RLE __MSABI_LONG(8)
297 #define BMF_JPEG __MSABI_LONG(9)
298 #define BMF_PNG __MSABI_LONG(10)
299
300 /* DEVINFO.flGraphicsCaps2 flags */
301 #define GCAPS2_JPEGSRC 0x00000001
302 #define GCAPS2_xxxx 0x00000002
303 #define GCAPS2_PNGSRC 0x00000008
304 #define GCAPS2_CHANGEGAMMARAMP 0x00000010
305 #define GCAPS2_ALPHACURSOR 0x00000020
306 #define GCAPS2_SYNCFLUSH 0x00000040
307 #define GCAPS2_SYNCTIMER 0x00000080
308 #define GCAPS2_ICD_MULTIMON 0x00000100
309 #define GCAPS2_MOUSETRAILS 0x00000200
310 #define GCAPS2_RESERVED1 0x00000400
311
312 typedef struct _DEVINFO {
313 FLONG flGraphicsCaps;
314 LOGFONTW lfDefaultFont;
315 LOGFONTW lfAnsiVarFont;
316 LOGFONTW lfAnsiFixFont;
317 ULONG cFonts;
318 ULONG iDitherFormat;
319 USHORT cxDither;
320 USHORT cyDither;
321 HPALETTE hpalDefault;
322 FLONG flGraphicsCaps2;
323 } DEVINFO, *PDEVINFO;
324
325 struct _DRIVEROBJ;
326
327 typedef WINBOOL
328 (APIENTRY CALLBACK *FREEOBJPROC)(
329 struct _DRIVEROBJ *pDriverObj);
330
331 typedef struct _DRIVEROBJ {
332 PVOID pvObj;
333 FREEOBJPROC pFreeProc;
334 HDEV hdev;
335 DHPDEV dhpdev;
336 } DRIVEROBJ;
337
338 /* DRVFN.iFunc constants */
339 #define INDEX_DrvEnablePDEV __MSABI_LONG(0)
340 #define INDEX_DrvCompletePDEV __MSABI_LONG(1)
341 #define INDEX_DrvDisablePDEV __MSABI_LONG(2)
342 #define INDEX_DrvEnableSurface __MSABI_LONG(3)
343 #define INDEX_DrvDisableSurface __MSABI_LONG(4)
344 #define INDEX_DrvAssertMode __MSABI_LONG(5)
345 #define INDEX_DrvOffset __MSABI_LONG(6)
346 #define INDEX_DrvResetPDEV __MSABI_LONG(7)
347 #define INDEX_DrvDisableDriver __MSABI_LONG(8)
348 #define INDEX_DrvUnknown1 __MSABI_LONG(9)
349 #define INDEX_DrvCreateDeviceBitmap __MSABI_LONG(10)
350 #define INDEX_DrvDeleteDeviceBitmap __MSABI_LONG(11)
351 #define INDEX_DrvRealizeBrush __MSABI_LONG(12)
352 #define INDEX_DrvDitherColor __MSABI_LONG(13)
353 #define INDEX_DrvStrokePath __MSABI_LONG(14)
354 #define INDEX_DrvFillPath __MSABI_LONG(15)
355 #define INDEX_DrvStrokeAndFillPath __MSABI_LONG(16)
356 #define INDEX_DrvPaint __MSABI_LONG(17)
357 #define INDEX_DrvBitBlt __MSABI_LONG(18)
358 #define INDEX_DrvCopyBits __MSABI_LONG(19)
359 #define INDEX_DrvStretchBlt __MSABI_LONG(20)
360 #define INDEX_DrvUnknown2 __MSABI_LONG(21)
361 #define INDEX_DrvSetPalette __MSABI_LONG(22)
362 #define INDEX_DrvTextOut __MSABI_LONG(23)
363 #define INDEX_DrvEscape __MSABI_LONG(24)
364 #define INDEX_DrvDrawEscape __MSABI_LONG(25)
365 #define INDEX_DrvQueryFont __MSABI_LONG(26)
366 #define INDEX_DrvQueryFontTree __MSABI_LONG(27)
367 #define INDEX_DrvQueryFontData __MSABI_LONG(28)
368 #define INDEX_DrvSetPointerShape __MSABI_LONG(29)
369 #define INDEX_DrvMovePointer __MSABI_LONG(30)
370 #define INDEX_DrvLineTo __MSABI_LONG(31)
371 #define INDEX_DrvSendPage __MSABI_LONG(32)
372 #define INDEX_DrvStartPage __MSABI_LONG(33)
373 #define INDEX_DrvEndDoc __MSABI_LONG(34)
374 #define INDEX_DrvStartDoc __MSABI_LONG(35)
375 #define INDEX_DrvUnknown3 __MSABI_LONG(36)
376 #define INDEX_DrvGetGlyphMode __MSABI_LONG(37)
377 #define INDEX_DrvSynchronize __MSABI_LONG(38)
378 #define INDEX_DrvUnknown4 __MSABI_LONG(39)
379 #define INDEX_DrvSaveScreenBits __MSABI_LONG(40)
380 #define INDEX_DrvGetModes __MSABI_LONG(41)
381 #define INDEX_DrvFree __MSABI_LONG(42)
382 #define INDEX_DrvDestroyFont __MSABI_LONG(43)
383 #define INDEX_DrvQueryFontCaps __MSABI_LONG(44)
384 #define INDEX_DrvLoadFontFile __MSABI_LONG(45)
385 #define INDEX_DrvUnloadFontFile __MSABI_LONG(46)
386 #define INDEX_DrvFontManagement __MSABI_LONG(47)
387 #define INDEX_DrvQueryTrueTypeTable __MSABI_LONG(48)
388 #define INDEX_DrvQueryTrueTypeOutline __MSABI_LONG(49)
389 #define INDEX_DrvGetTrueTypeFile __MSABI_LONG(50)
390 #define INDEX_DrvQueryFontFile __MSABI_LONG(51)
391 #define INDEX_DrvMovePanning __MSABI_LONG(52)
392 #define INDEX_DrvQueryAdvanceWidths __MSABI_LONG(53)
393 #define INDEX_DrvSetPixelFormat __MSABI_LONG(54)
394 #define INDEX_DrvDescribePixelFormat __MSABI_LONG(55)
395 #define INDEX_DrvSwapBuffers __MSABI_LONG(56)
396 #define INDEX_DrvStartBanding __MSABI_LONG(57)
397 #define INDEX_DrvNextBand __MSABI_LONG(58)
398 #define INDEX_DrvGetDirectDrawInfo __MSABI_LONG(59)
399 #define INDEX_DrvEnableDirectDraw __MSABI_LONG(60)
400 #define INDEX_DrvDisableDirectDraw __MSABI_LONG(61)
401 #define INDEX_DrvQuerySpoolType __MSABI_LONG(62)
402 #define INDEX_DrvUnknown5 __MSABI_LONG(63)
403 #define INDEX_DrvIcmCreateColorTransform __MSABI_LONG(64)
404 #define INDEX_DrvIcmDeleteColorTransform __MSABI_LONG(65)
405 #define INDEX_DrvIcmCheckBitmapBits __MSABI_LONG(66)
406 #define INDEX_DrvIcmSetDeviceGammaRamp __MSABI_LONG(67)
407 #define INDEX_DrvGradientFill __MSABI_LONG(68)
408 #define INDEX_DrvStretchBltROP __MSABI_LONG(69)
409 #define INDEX_DrvPlgBlt __MSABI_LONG(70)
410 #define INDEX_DrvAlphaBlend __MSABI_LONG(71)
411 #define INDEX_DrvSynthesizeFont __MSABI_LONG(72)
412 #define INDEX_DrvGetSynthesizedFontFiles __MSABI_LONG(73)
413 #define INDEX_DrvTransparentBlt __MSABI_LONG(74)
414 #define INDEX_DrvQueryPerBandInfo __MSABI_LONG(75)
415 #define INDEX_DrvQueryDeviceSupport __MSABI_LONG(76)
416 #define INDEX_DrvReserved1 __MSABI_LONG(77)
417 #define INDEX_DrvReserved2 __MSABI_LONG(78)
418 #define INDEX_DrvReserved3 __MSABI_LONG(79)
419 #define INDEX_DrvReserved4 __MSABI_LONG(80)
420 #define INDEX_DrvReserved5 __MSABI_LONG(81)
421 #define INDEX_DrvReserved6 __MSABI_LONG(82)
422 #define INDEX_DrvReserved7 __MSABI_LONG(83)
423 #define INDEX_DrvReserved8 __MSABI_LONG(84)
424 #define INDEX_DrvDeriveSurface __MSABI_LONG(85)
425 #define INDEX_DrvQueryGlyphAttrs __MSABI_LONG(86)
426 #define INDEX_DrvNotify __MSABI_LONG(87)
427 #define INDEX_DrvSynchronizeSurface __MSABI_LONG(88)
428 #define INDEX_DrvResetDevice __MSABI_LONG(89)
429 #define INDEX_DrvReserved9 __MSABI_LONG(90)
430 #define INDEX_DrvReserved10 __MSABI_LONG(91)
431 #define INDEX_DrvReserved11 __MSABI_LONG(92)
432 #define INDEX_LAST __MSABI_LONG(93)
433
434 typedef struct _DRVFN {
435 ULONG iFunc;
436 PFN pfn;
437 } DRVFN, *PDRVFN;
438
439 /* DRVENABLEDATA.iDriverVersion constants */
440 #define DDI_DRIVER_VERSION_NT4 0x00020000
441 #define DDI_DRIVER_VERSION_SP3 0x00020003
442 #define DDI_DRIVER_VERSION_NT5 0x00030000
443 #define DDI_DRIVER_VERSION_NT5_01 0x00030100
444 #define DDI_DRIVER_VERSION_NT5_01_SP1 0x00030101
445
446 typedef struct _DRVENABLEDATA {
447 ULONG iDriverVersion;
448 ULONG c;
449 DRVFN *pdrvfn;
450 } DRVENABLEDATA, *PDRVENABLEDATA;
451
452 DECLARE_HANDLE(HSEMAPHORE);
453
454 typedef struct {
455 DWORD nSize;
456 HDC hdc;
457 PBYTE pvEMF;
458 PBYTE pvCurrentRecord;
459 } EMFINFO, *PEMFINFO;
460
461 typedef struct _ENGSAFESEMAPHORE {
462 HSEMAPHORE hsem;
463 LONG lCount;
464 } ENGSAFESEMAPHORE;
465
466 typedef struct _ENG_TIME_FIELDS {
467 USHORT usYear;
468 USHORT usMonth;
469 USHORT usDay;
470 USHORT usHour;
471 USHORT usMinute;
472 USHORT usSecond;
473 USHORT usMilliseconds;
474 USHORT usWeekday;
475 } ENG_TIME_FIELDS, *PENG_TIME_FIELDS;
476
477 typedef struct _ENUMRECTS {
478 ULONG c;
479 RECTL arcl[1];
480 } ENUMRECTS;
481
482 typedef struct _FD_XFORM {
483 FLOATL eXX;
484 FLOATL eXY;
485 FLOATL eYX;
486 FLOATL eYY;
487 } FD_XFORM, *PFD_XFORM;
488
489 /* FD_DEVICEMETRICS.flRealizedType constants */
490 #define FDM_TYPE_BM_SIDE_CONST 0x00000001
491 #define FDM_TYPE_MAXEXT_EQUAL_BM_SIDE 0x00000002
492 #define FDM_TYPE_CHAR_INC_EQUAL_BM_BASE 0x00000004
493 #define FDM_TYPE_ZERO_BEARINGS 0x00000008
494 #define FDM_TYPE_CONST_BEARINGS 0x00000010
495
496 typedef struct _FD_DEVICEMETRICS {
497 FLONG flRealizedType;
498 POINTE pteBase;
499 POINTE pteSide;
500 LONG lD;
501 FIX fxMaxAscender;
502 FIX fxMaxDescender;
503 POINTL ptlUnderline1;
504 POINTL ptlStrikeout;
505 POINTL ptlULThickness;
506 POINTL ptlSOThickness;
507 ULONG cxMax;
508 ULONG cyMax;
509 ULONG cjGlyphMax;
510 FD_XFORM fdxQuantized;
511 LONG lNonLinearExtLeading;
512 LONG lNonLinearIntLeading;
513 LONG lNonLinearMaxCharWidth;
514 LONG lNonLinearAvgCharWidth;
515 LONG lMinA;
516 LONG lMinC;
517 LONG lMinD;
518 LONG alReserved[1];
519 } FD_DEVICEMETRICS, *PFD_DEVICEMETRICS;
520
521 /* FD_GLYPHATTR.iMode constants */
522 #define FO_ATTR_MODE_ROTATE 1
523
524 typedef struct _FD_GLYPHATTR {
525 ULONG cjThis;
526 ULONG cGlyphs;
527 ULONG iMode;
528 BYTE aGlyphAttr[1];
529 } FD_GLYPHATTR, *PFD_GLYPHATTR;
530
531 /* FD_GLYPHSET.flAccel */
532 #define GS_UNICODE_HANDLES 0x00000001
533 #define GS_8BIT_HANDLES 0x00000002
534 #define GS_16BIT_HANDLES 0x00000004
535
536 typedef struct _WCRUN {
537 WCHAR wcLow;
538 USHORT cGlyphs;
539 HGLYPH *phg;
540 } WCRUN, *PWCRUN;
541
542 typedef struct _FD_GLYPHSET {
543 ULONG cjThis;
544 FLONG flAccel;
545 ULONG cGlyphsSupported;
546 ULONG cRuns;
547 WCRUN awcrun[1];
548 } FD_GLYPHSET, *PFD_GLYPHSET;
549
550 typedef struct _FD_KERNINGPAIR {
551 WCHAR wcFirst;
552 WCHAR wcSecond;
553 FWORD fwdKern;
554 } FD_KERNINGPAIR;
555
556 #if defined(_X86_) && !defined(USERMODE_DRIVER)
557 typedef struct _FLOATOBJ
558 {
559 ULONG ul1;
560 ULONG ul2;
561 } FLOATOBJ, *PFLOATOBJ;
562 #else
563 typedef FLOAT FLOATOBJ, *PFLOATOBJ;
564 #endif
565
566 typedef struct _FLOATOBJ_XFORM {
567 FLOATOBJ eM11;
568 FLOATOBJ eM12;
569 FLOATOBJ eM21;
570 FLOATOBJ eM22;
571 FLOATOBJ eDx;
572 FLOATOBJ eDy;
573 } FLOATOBJ_XFORM, *PFLOATOBJ_XFORM, FAR *LPFLOATOBJ_XFORM;
574
575 /* FONTDIFF.fsSelection */
576 #define FM_SEL_ITALIC 0x0001
577 #define FM_SEL_UNDERSCORE 0x0002
578 #define FM_SEL_NEGATIVE 0x0004
579 #define FM_SEL_OUTLINED 0x0008
580 #define FM_SEL_STRIKEOUT 0x0010
581 #define FM_SEL_BOLD 0x0020
582 #define FM_SEL_REGULAR 0x0040
583
584 typedef struct _FONTDIFF {
585 BYTE jReserved1;
586 BYTE jReserved2;
587 BYTE jReserved3;
588 BYTE bWeight;
589 USHORT usWinWeight;
590 FSHORT fsSelection;
591 FWORD fwdAveCharWidth;
592 FWORD fwdMaxCharInc;
593 POINTL ptlCaret;
594 } FONTDIFF;
595
596 typedef struct _FONTSIM {
597 PTRDIFF dpBold;
598 PTRDIFF dpItalic;
599 PTRDIFF dpBoldItalic;
600 } FONTSIM;
601
602 /* FONTINFO.flCaps constants */
603 #define FO_DEVICE_FONT __MSABI_LONG(1)
604 #define FO_OUTLINE_CAPABLE __MSABI_LONG(2)
605
606 typedef struct _FONTINFO {
607 ULONG cjThis;
608 FLONG flCaps;
609 ULONG cGlyphsSupported;
610 ULONG cjMaxGlyph1;
611 ULONG cjMaxGlyph4;
612 ULONG cjMaxGlyph8;
613 ULONG cjMaxGlyph32;
614 } FONTINFO, *PFONTINFO;
615
616 /* FONTOBJ.flFontType constants */
617 #define FO_TYPE_RASTER RASTER_FONTTYPE
618 #define FO_TYPE_DEVICE DEVICE_FONTTYPE
619 #define FO_TYPE_TRUETYPE TRUETYPE_FONTTYPE
620 #define FO_TYPE_OPENTYPE OPENTYPE_FONTTYPE
621
622 #define FO_SIM_BOLD 0x00002000
623 #define FO_SIM_ITALIC 0x00004000
624 #define FO_EM_HEIGHT 0x00008000
625 #define FO_GRAY16 0x00010000
626 #define FO_NOGRAY16 0x00020000
627 #define FO_NOHINTS 0x00040000
628 #define FO_NO_CHOICE 0x00080000
629 #define FO_CFF 0x00100000
630 #define FO_POSTSCRIPT 0x00200000
631 #define FO_MULTIPLEMASTER 0x00400000
632 #define FO_VERT_FACE 0x00800000
633 #define FO_DBCS_FONT 0X01000000
634 #define FO_NOCLEARTYPE 0x02000000
635 #define FO_CLEARTYPE_X 0x10000000
636 #define FO_CLEARTYPE_Y 0x20000000
637
638 typedef struct _FONTOBJ {
639 ULONG iUniq;
640 ULONG iFace;
641 ULONG cxMax;
642 FLONG flFontType;
643 ULONG_PTR iTTUniq;
644 ULONG_PTR iFile;
645 SIZE sizLogResPpi;
646 ULONG ulStyleSize;
647 PVOID pvConsumer;
648 PVOID pvProducer;
649 } FONTOBJ;
650
651 typedef struct _GAMMARAMP {
652 WORD Red[256];
653 WORD Green[256];
654 WORD Blue[256];
655 } GAMMARAMP, *PGAMMARAMP;
656
657 /* GDIINFO.ulPrimaryOrder constants */
658 #define PRIMARY_ORDER_ABC 0
659 #define PRIMARY_ORDER_ACB 1
660 #define PRIMARY_ORDER_BAC 2
661 #define PRIMARY_ORDER_BCA 3
662 #define PRIMARY_ORDER_CBA 4
663 #define PRIMARY_ORDER_CAB 5
664
665 /* GDIINFO.ulHTPatternSize constants */
666 #define HT_PATSIZE_2x2 0
667 #define HT_PATSIZE_2x2_M 1
668 #define HT_PATSIZE_4x4 2
669 #define HT_PATSIZE_4x4_M 3
670 #define HT_PATSIZE_6x6 4
671 #define HT_PATSIZE_6x6_M 5
672 #define HT_PATSIZE_8x8 6
673 #define HT_PATSIZE_8x8_M 7
674 #define HT_PATSIZE_10x10 8
675 #define HT_PATSIZE_10x10_M 9
676 #define HT_PATSIZE_12x12 10
677 #define HT_PATSIZE_12x12_M 11
678 #define HT_PATSIZE_14x14 12
679 #define HT_PATSIZE_14x14_M 13
680 #define HT_PATSIZE_16x16 14
681 #define HT_PATSIZE_16x16_M 15
682 #define HT_PATSIZE_SUPERCELL 16
683 #define HT_PATSIZE_SUPERCELL_M 17
684 #define HT_PATSIZE_USER 18
685 #define HT_PATSIZE_MAX_INDEX HT_PATSIZE_USER
686 #define HT_PATSIZE_DEFAULT HT_PATSIZE_SUPERCELL_M
687 #define HT_USERPAT_CX_MIN 4
688 #define HT_USERPAT_CX_MAX 256
689 #define HT_USERPAT_CY_MIN 4
690 #define HT_USERPAT_CY_MAX 256
691
692 /* GDIINFO.ulHTOutputFormat constants */
693 #define HT_FORMAT_1BPP 0
694 #define HT_FORMAT_4BPP 2
695 #define HT_FORMAT_4BPP_IRGB 3
696 #define HT_FORMAT_8BPP 4
697 #define HT_FORMAT_16BPP 5
698 #define HT_FORMAT_24BPP 6
699 #define HT_FORMAT_32BPP 7
700
701 /* GDIINFO.flHTFlags */
702 #define HT_FLAG_SQUARE_DEVICE_PEL 0x00000001
703 #define HT_FLAG_HAS_BLACK_DYE 0x00000002
704 #define HT_FLAG_ADDITIVE_PRIMS 0x00000004
705 #define HT_FLAG_USE_8BPP_BITMASK 0x00000008
706 #define HT_FLAG_INK_HIGH_ABSORPTION 0x00000010
707 #define HT_FLAG_INK_ABSORPTION_INDICES 0x00000060
708 #define HT_FLAG_DO_DEVCLR_XFORM 0x00000080
709 #define HT_FLAG_OUTPUT_CMY 0x00000100
710 #define HT_FLAG_PRINT_DRAFT_MODE 0x00000200
711 #define HT_FLAG_INVERT_8BPP_BITMASK_IDX 0x00000400
712 #define HT_FLAG_8BPP_CMY332_MASK 0xFF000000
713
714 #define MAKE_CMYMASK_BYTE(c,m,y) ((BYTE)(((BYTE)(c) & 0x07) << 5) \
715 |(BYTE)(((BYTE)(m) & 0x07) << 2) \
716 |(BYTE)((BYTE)(y) & 0x03))
717
718 #define MAKE_CMY332_MASK(c,m,y) ((DWORD)(((DWORD)(c) & 0x07) << 29)\
719 |(DWORD)(((DWORD)(m) & 0x07) << 26)\
720 |(DWORD)(((DWORD)(y) & 0x03) << 24))
721
722 /* GDIINFO.flHTFlags constants */
723 #define HT_FLAG_INK_ABSORPTION_IDX0 0x00000000
724 #define HT_FLAG_INK_ABSORPTION_IDX1 0x00000020
725 #define HT_FLAG_INK_ABSORPTION_IDX2 0x00000040
726 #define HT_FLAG_INK_ABSORPTION_IDX3 0x00000060
727
728 #define HT_FLAG_HIGHEST_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \
729 |HT_FLAG_INK_ABSORPTION_IDX3)
730 #define HT_FLAG_HIGHER_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \
731 |HT_FLAG_INK_ABSORPTION_IDX2)
732 #define HT_FLAG_HIGH_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \
733 |HT_FLAG_INK_ABSORPTION_IDX1)
734 #define HT_FLAG_NORMAL_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX0
735 #define HT_FLAG_LOW_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX1
736 #define HT_FLAG_LOWER_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX2
737 #define HT_FLAG_LOWEST_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX3
738
739 #define HT_BITMASKPALRGB (DWORD)'0BGR'
740 #define HT_SET_BITMASKPAL2RGB(pPal) (*((LPDWORD)(pPal)) = HT_BITMASKPALRGB)
741 #define HT_IS_BITMASKPALRGB(pPal) (*((LPDWORD)(pPal)) == (DWORD)0)
742
743 /* GDIINFO.ulPhysicalPixelCharacteristics constants */
744 #define PPC_DEFAULT 0x0
745 #define PPC_UNDEFINED 0x1
746 #define PPC_RGB_ORDER_VERTICAL_STRIPES 0x2
747 #define PPC_BGR_ORDER_VERTICAL_STRIPES 0x3
748 #define PPC_RGB_ORDER_HORIZONTAL_STRIPES 0x4
749 #define PPC_BGR_ORDER_HORIZONTAL_STRIPES 0x5
750
751 #define PPG_DEFAULT 0
752 #define PPG_SRGB 1
753
754 typedef struct _GDIINFO {
755 ULONG ulVersion;
756 ULONG ulTechnology;
757 ULONG ulHorzSize;
758 ULONG ulVertSize;
759 ULONG ulHorzRes;
760 ULONG ulVertRes;
761 ULONG cBitsPixel;
762 ULONG cPlanes;
763 ULONG ulNumColors;
764 ULONG flRaster;
765 ULONG ulLogPixelsX;
766 ULONG ulLogPixelsY;
767 ULONG flTextCaps;
768 ULONG ulDACRed;
769 ULONG ulDACGreen;
770 ULONG ulDACBlue;
771 ULONG ulAspectX;
772 ULONG ulAspectY;
773 ULONG ulAspectXY;
774 LONG xStyleStep;
775 LONG yStyleStep;
776 LONG denStyleStep;
777 POINTL ptlPhysOffset;
778 SIZEL szlPhysSize;
779 ULONG ulNumPalReg;
780 COLORINFO ciDevice;
781 ULONG ulDevicePelsDPI;
782 ULONG ulPrimaryOrder;
783 ULONG ulHTPatternSize;
784 ULONG ulHTOutputFormat;
785 ULONG flHTFlags;
786 ULONG ulVRefresh;
787 ULONG ulBltAlignment;
788 ULONG ulPanningHorzRes;
789 ULONG ulPanningVertRes;
790 ULONG xPanningAlignment;
791 ULONG yPanningAlignment;
792 ULONG cxHTPat;
793 ULONG cyHTPat;
794 LPBYTE pHTPatA;
795 LPBYTE pHTPatB;
796 LPBYTE pHTPatC;
797 ULONG flShadeBlend;
798 ULONG ulPhysicalPixelCharacteristics;
799 ULONG ulPhysicalPixelGamma;
800 } GDIINFO, *PGDIINFO;
801
802 /* PATHDATA.flags constants */
803 #define PD_BEGINSUBPATH 0x00000001
804 #define PD_ENDSUBPATH 0x00000002
805 #define PD_RESETSTYLE 0x00000004
806 #define PD_CLOSEFIGURE 0x00000008
807 #define PD_BEZIERS 0x00000010
808 #define PD_ALL (PD_BEGINSUBPATH \
809 |PD_ENDSUBPATH \
810 |PD_RESETSTYLE \
811 |PD_CLOSEFIGURE \
812 PD_BEZIERS)
813
814 typedef struct _PATHDATA {
815 FLONG flags;
816 ULONG count;
817 POINTFIX *pptfx;
818 } PATHDATA, *PPATHDATA;
819
820 /* PATHOBJ.fl constants */
821 #define PO_BEZIERS 0x00000001
822 #define PO_ELLIPSE 0x00000002
823 #define PO_ALL_INTEGERS 0x00000004
824 #define PO_ENUM_AS_INTEGERS 0x00000008
825
826 typedef struct _PATHOBJ {
827 FLONG fl;
828 ULONG cCurves;
829 } PATHOBJ;
830
831 typedef struct _GLYPHBITS {
832 POINTL ptlOrigin;
833 SIZEL sizlBitmap;
834 BYTE aj[1];
835 } GLYPHBITS;
836
837 typedef union _GLYPHDEF {
838 GLYPHBITS *pgb;
839 PATHOBJ *ppo;
840 } GLYPHDEF;
841
842 typedef struct _GLYPHPOS {
843 HGLYPH hg;
844 GLYPHDEF *pgdf;
845 POINTL ptl;
846 } GLYPHPOS, *PGLYPHPOS;
847
848 typedef struct _GLYPHDATA {
849 GLYPHDEF gdf;
850 HGLYPH hg;
851 FIX fxD;
852 FIX fxA;
853 FIX fxAB;
854 FIX fxInkTop;
855 FIX fxInkBottom;
856 RECTL rclInk;
857 POINTQF ptqD;
858 } GLYPHDATA;
859
860 typedef struct _IFIEXTRA {
861 ULONG ulIdentifier;
862 PTRDIFF dpFontSig;
863 ULONG cig;
864 PTRDIFF dpDesignVector;
865 PTRDIFF dpAxesInfoW;
866 ULONG aulReserved[1];
867 } IFIEXTRA, *PIFIEXTRA;
868
869 /* IFIMETRICS constants */
870
871 #define FM_VERSION_NUMBER 0x0
872
873 /* IFIMETRICS.fsType constants */
874 #define FM_TYPE_LICENSED 0x2
875 #define FM_READONLY_EMBED 0x4
876 #define FM_EDITABLE_EMBED 0x8
877 #define FM_NO_EMBEDDING FM_TYPE_LICENSED
878
879 /* IFIMETRICS.flInfo constants */
880 #define FM_INFO_TECH_TRUETYPE 0x00000001
881 #define FM_INFO_TECH_BITMAP 0x00000002
882 #define FM_INFO_TECH_STROKE 0x00000004
883 #define FM_INFO_TECH_OUTLINE_NOT_TRUETYPE 0x00000008
884 #define FM_INFO_ARB_XFORMS 0x00000010
885 #define FM_INFO_1BPP 0x00000020
886 #define FM_INFO_4BPP 0x00000040
887 #define FM_INFO_8BPP 0x00000080
888 #define FM_INFO_16BPP 0x00000100
889 #define FM_INFO_24BPP 0x00000200
890 #define FM_INFO_32BPP 0x00000400
891 #define FM_INFO_INTEGER_WIDTH 0x00000800
892 #define FM_INFO_CONSTANT_WIDTH 0x00001000
893 #define FM_INFO_NOT_CONTIGUOUS 0x00002000
894 #define FM_INFO_TECH_MM 0x00004000
895 #define FM_INFO_RETURNS_OUTLINES 0x00008000
896 #define FM_INFO_RETURNS_STROKES 0x00010000
897 #define FM_INFO_RETURNS_BITMAPS 0x00020000
898 #define FM_INFO_DSIG 0x00040000
899 #define FM_INFO_RIGHT_HANDED 0x00080000
900 #define FM_INFO_INTEGRAL_SCALING 0x00100000
901 #define FM_INFO_90DEGREE_ROTATIONS 0x00200000
902 #define FM_INFO_OPTICALLY_FIXED_PITCH 0x00400000
903 #define FM_INFO_DO_NOT_ENUMERATE 0x00800000
904 #define FM_INFO_ISOTROPIC_SCALING_ONLY 0x01000000
905 #define FM_INFO_ANISOTROPIC_SCALING_ONLY 0x02000000
906 #define FM_INFO_TECH_CFF 0x04000000
907 #define FM_INFO_FAMILY_EQUIV 0x08000000
908 #define FM_INFO_DBCS_FIXED_PITCH 0x10000000
909 #define FM_INFO_NONNEGATIVE_AC 0x20000000
910 #define FM_INFO_IGNORE_TC_RA_ABLE 0x40000000
911 #define FM_INFO_TECH_TYPE1 0x80000000
912
913 #define MAXCHARSETS 16
914
915 /* IFIMETRICS.ulPanoseCulture constants */
916 #define FM_PANOSE_CULTURE_LATIN 0x0
917
918 typedef struct _IFIMETRICS {
919 ULONG cjThis;
920 ULONG cjIfiExtra;
921 PTRDIFF dpwszFamilyName;
922 PTRDIFF dpwszStyleName;
923 PTRDIFF dpwszFaceName;
924 PTRDIFF dpwszUniqueName;
925 PTRDIFF dpFontSim;
926 LONG lEmbedId;
927 LONG lItalicAngle;
928 LONG lCharBias;
929 PTRDIFF dpCharSets;
930 BYTE jWinCharSet;
931 BYTE jWinPitchAndFamily;
932 USHORT usWinWeight;
933 ULONG flInfo;
934 USHORT fsSelection;
935 USHORT fsType;
936 FWORD fwdUnitsPerEm;
937 FWORD fwdLowestPPEm;
938 FWORD fwdWinAscender;
939 FWORD fwdWinDescender;
940 FWORD fwdMacAscender;
941 FWORD fwdMacDescender;
942 FWORD fwdMacLineGap;
943 FWORD fwdTypoAscender;
944 FWORD fwdTypoDescender;
945 FWORD fwdTypoLineGap;
946 FWORD fwdAveCharWidth;
947 FWORD fwdMaxCharInc;
948 FWORD fwdCapHeight;
949 FWORD fwdXHeight;
950 FWORD fwdSubscriptXSize;
951 FWORD fwdSubscriptYSize;
952 FWORD fwdSubscriptXOffset;
953 FWORD fwdSubscriptYOffset;
954 FWORD fwdSuperscriptXSize;
955 FWORD fwdSuperscriptYSize;
956 FWORD fwdSuperscriptXOffset;
957 FWORD fwdSuperscriptYOffset;
958 FWORD fwdUnderscoreSize;
959 FWORD fwdUnderscorePosition;
960 FWORD fwdStrikeoutSize;
961 FWORD fwdStrikeoutPosition;
962 BYTE chFirstChar;
963 BYTE chLastChar;
964 BYTE chDefaultChar;
965 BYTE chBreakChar;
966 WCHAR wcFirstChar;
967 WCHAR wcLastChar;
968 WCHAR wcDefaultChar;
969 WCHAR wcBreakChar;
970 POINTL ptlBaseline;
971 POINTL ptlAspect;
972 POINTL ptlCaret;
973 RECTL rclFontBox;
974 BYTE achVendId[4];
975 ULONG cKerningPairs;
976 ULONG ulPanoseCulture;
977 PANOSE panose;
978 #if defined(_WIN64)
979 PVOID Align;
980 #endif
981 } IFIMETRICS, *PIFIMETRICS;
982
983 /* LINEATTRS.fl */
984 #define LA_GEOMETRIC 0x00000001
985 #define LA_ALTERNATE 0x00000002
986 #define LA_STARTGAP 0x00000004
987 #define LA_STYLED 0x00000008
988
989 /* LINEATTRS.iJoin */
990 #define JOIN_ROUND __MSABI_LONG(0)
991 #define JOIN_BEVEL __MSABI_LONG(1)
992 #define JOIN_MITER __MSABI_LONG(2)
993
994 /* LINEATTRS.iEndCap */
995 #define ENDCAP_ROUND __MSABI_LONG(0)
996 #define ENDCAP_SQUARE __MSABI_LONG(1)
997 #define ENDCAP_BUTT __MSABI_LONG(2)
998
999 typedef struct _LINEATTRS {
1000 FLONG fl;
1001 ULONG iJoin;
1002 ULONG iEndCap;
1003 FLOAT_LONG elWidth;
1004 FLOATL eMiterLimit;
1005 ULONG cstyle;
1006 PFLOAT_LONG pstyle;
1007 FLOAT_LONG elStyleState;
1008 } LINEATTRS, *PLINEATTRS;
1009
1010 typedef struct _PALOBJ {
1011 ULONG ulReserved;
1012 } PALOBJ;
1013
1014 typedef struct _PERBANDINFO {
1015 WINBOOL bRepeatThisBand;
1016 SIZEL szlBand;
1017 ULONG ulHorzRes;
1018 ULONG ulVertRes;
1019 } PERBANDINFO, *PPERBANDINFO;
1020
1021 /* STROBJ.flAccel constants */
1022 #define SO_FLAG_DEFAULT_PLACEMENT 0x00000001
1023 #define SO_HORIZONTAL 0x00000002
1024 #define SO_VERTICAL 0x00000004
1025 #define SO_REVERSED 0x00000008
1026 #define SO_ZERO_BEARINGS 0x00000010
1027 #define SO_CHAR_INC_EQUAL_BM_BASE 0x00000020
1028 #define SO_MAXEXT_EQUAL_BM_SIDE 0x00000040
1029 #define SO_DO_NOT_SUBSTITUTE_DEVICE_FONT 0x00000080
1030 #define SO_GLYPHINDEX_TEXTOUT 0x00000100
1031 #define SO_ESC_NOT_ORIENT 0x00000200
1032 #define SO_DXDY 0x00000400
1033 #define SO_CHARACTER_EXTRA 0x00000800
1034 #define SO_BREAK_EXTRA 0x00001000
1035
1036 typedef struct _STROBJ {
1037 ULONG cGlyphs;
1038 FLONG flAccel;
1039 ULONG ulCharInc;
1040 RECTL rclBkGround;
1041 GLYPHPOS *pgp;
1042 LPWSTR pwszOrg;
1043 } STROBJ;
1044
1045
1046
1047 /* SURFOBJ.iType constants */
1048 #define STYPE_BITMAP __MSABI_LONG(0)
1049 #define STYPE_DEVICE __MSABI_LONG(1)
1050 #define STYPE_DEVBITMAP __MSABI_LONG(3)
1051
1052 /* SURFOBJ.fjBitmap constants */
1053 #define BMF_TOPDOWN 0x0001
1054 #define BMF_NOZEROINIT 0x0002
1055 #define BMF_DONTCACHE 0x0004
1056 #define BMF_USERMEM 0x0008
1057 #define BMF_KMSECTION 0x0010
1058 #define BMF_NOTSYSMEM 0x0020
1059 #define BMF_WINDOW_BLT 0x0040
1060 #define BMF_UMPDMEM 0x0080
1061 #define BMF_RESERVED 0xFF00
1062
1063 typedef struct _SURFOBJ {
1064 DHSURF dhsurf;
1065 HSURF hsurf;
1066 DHPDEV dhpdev;
1067 HDEV hdev;
1068 SIZEL sizlBitmap;
1069 ULONG cjBits;
1070 PVOID pvBits;
1071 PVOID pvScan0;
1072 LONG lDelta;
1073 ULONG iUniq;
1074 ULONG iBitmapFormat;
1075 USHORT iType;
1076 USHORT fjBitmap;
1077 } SURFOBJ;
1078
1079 typedef struct _TYPE1_FONT {
1080 HANDLE hPFM;
1081 HANDLE hPFB;
1082 ULONG ulIdentifier;
1083 } TYPE1_FONT;
1084
1085 typedef struct _WNDOBJ {
1086 CLIPOBJ coClient;
1087 PVOID pvConsumer;
1088 RECTL rclClient;
1089 SURFOBJ *psoOwner;
1090 } WNDOBJ, *PWNDOBJ;
1091
1092 typedef struct _XFORML {
1093 FLOATL eM11;
1094 FLOATL eM12;
1095 FLOATL eM21;
1096 FLOATL eM22;
1097 FLOATL eDx;
1098 FLOATL eDy;
1099 } XFORML, *PXFORML;
1100
1101 typedef struct _XFORMOBJ {
1102 ULONG ulReserved;
1103 } XFORMOBJ;
1104
1105 /* XLATEOBJ.flXlate constants */
1106 #define XO_TRIVIAL 0x00000001
1107 #define XO_TABLE 0x00000002
1108 #define XO_TO_MONO 0x00000004
1109 #define XO_FROM_CMYK 0x00000008
1110 #define XO_DEVICE_ICM 0x00000010
1111 #define XO_HOST_ICM 0x00000020
1112
1113 typedef struct _XLATEOBJ {
1114 ULONG iUniq;
1115 FLONG flXlate;
1116 USHORT iSrcType;
1117 USHORT iDstType;
1118 ULONG cEntries;
1119 ULONG *pulXlate;
1120 } XLATEOBJ;
1121
1122 /* WNDOBJCHANGEPROC.fl constants */
1123 #define WOC_RGN_CLIENT_DELTA 0x00000001
1124 #define WOC_RGN_CLIENT 0x00000002
1125 #define WOC_RGN_SURFACE_DELTA 0x00000004
1126 #define WOC_RGN_SURFACE 0x00000008
1127 #define WOC_CHANGED 0x00000010
1128 #define WOC_DELETE 0x00000020
1129 #define WOC_DRAWN 0x00000040
1130 #define WOC_SPRITE_OVERLAP 0x00000080
1131 #define WOC_SPRITE_NO_OVERLAP 0x00000100
1132
1133 typedef VOID (APIENTRY CALLBACK *WNDOBJCHANGEPROC)(
1134 WNDOBJ *pwo,
1135 FLONG fl);
1136
1137
1138 WIN32KAPI
1139 HANDLE
1140 APIENTRY
1141 BRUSHOBJ_hGetColorTransform(
1142 BRUSHOBJ *pbo);
1143
1144 WIN32KAPI
1145 PVOID
1146 APIENTRY
1147 BRUSHOBJ_pvAllocRbrush(
1148 BRUSHOBJ *pbo,
1149 ULONG cj);
1150
1151 WIN32KAPI
1152 PVOID
1153 APIENTRY
1154 BRUSHOBJ_pvGetRbrush(
1155 BRUSHOBJ *pbo);
1156
1157 WIN32KAPI
1158 ULONG
1159 APIENTRY
1160 BRUSHOBJ_ulGetBrushColor(
1161 BRUSHOBJ *pbo);
1162
1163 WIN32KAPI
1164 WINBOOL
1165 APIENTRY
1166 CLIPOBJ_bEnum(
1167 CLIPOBJ *pco,
1168 ULONG cj,
1169 ULONG *pv);
1170
1171 /* CLIPOBJ_cEnumStart.iType constants */
1172 #define CT_RECTANGLES __MSABI_LONG(0)
1173
1174 /* CLIPOBJ_cEnumStart.iDirection constants */
1175 #define CD_RIGHTDOWN 0x00000000
1176 #define CD_LEFTDOWN 0x00000001
1177 #define CD_LEFTWARDS 0x00000001
1178 #define CD_RIGHTUP 0x00000002
1179 #define CD_UPWARDS 0x00000002
1180 #define CD_LEFTUP 0x00000003
1181 #define CD_ANY 0x00000004
1182
1183 WIN32KAPI
1184 ULONG
1185 APIENTRY
1186 CLIPOBJ_cEnumStart(
1187 CLIPOBJ *pco,
1188 WINBOOL bAll,
1189 ULONG iType,
1190 ULONG iDirection,
1191 ULONG cLimit);
1192
1193 WIN32KAPI
1194 PATHOBJ*
1195 APIENTRY
1196 CLIPOBJ_ppoGetPath(
1197 CLIPOBJ *pco);
1198
1199 WIN32KAPI
1200 VOID
1201 APIENTRY
1202 EngAcquireSemaphore(
1203 HSEMAPHORE hsem);
1204
1205 #define FL_ZERO_MEMORY 0x00000001
1206 #define FL_NONPAGED_MEMORY 0x00000002
1207
1208 WIN32KAPI
1209 PVOID
1210 APIENTRY
1211 EngAllocMem(
1212 ULONG Flags,
1213 ULONG MemSize,
1214 ULONG Tag);
1215
1216 WIN32KAPI
1217 PVOID
1218 APIENTRY
1219 EngAllocPrivateUserMem(
1220 PDD_SURFACE_LOCAL psl,
1221 SIZE_T cj,
1222 ULONG tag);
1223
1224 WIN32KAPI
1225 PVOID
1226 APIENTRY
1227 EngAllocUserMem(
1228 SIZE_T cj,
1229 ULONG tag);
1230
1231 WIN32KAPI
1232 WINBOOL
1233 APIENTRY
1234 EngAlphaBlend(
1235 SURFOBJ *psoDest,
1236 SURFOBJ *psoSrc,
1237 CLIPOBJ *pco,
1238 XLATEOBJ *pxlo,
1239 RECTL *prclDest,
1240 RECTL *prclSrc,
1241 BLENDOBJ *pBlendObj);
1242
1243 /* EngAssociateSurface.flHooks constants */
1244 #define HOOK_BITBLT 0x00000001
1245 #define HOOK_STRETCHBLT 0x00000002
1246 #define HOOK_PLGBLT 0x00000004
1247 #define HOOK_TEXTOUT 0x00000008
1248 #define HOOK_PAINT 0x00000010
1249 #define HOOK_STROKEPATH 0x00000020
1250 #define HOOK_FILLPATH 0x00000040
1251 #define HOOK_STROKEANDFILLPATH 0x00000080
1252 #define HOOK_LINETO 0x00000100
1253 #define HOOK_COPYBITS 0x00000400
1254 #define HOOK_MOVEPANNING 0x00000800
1255 #define HOOK_SYNCHRONIZE 0x00001000
1256 #define HOOK_STRETCHBLTROP 0x00002000
1257 #define HOOK_SYNCHRONIZEACCESS 0x00004000
1258 #define HOOK_TRANSPARENTBLT 0x00008000
1259 #define HOOK_ALPHABLEND 0x00010000
1260 #define HOOK_GRADIENTFILL 0x00020000
1261 #define HOOK_FLAGS 0x0003b5ff
1262
1263 WIN32KAPI
1264 WINBOOL
1265 APIENTRY
1266 EngAssociateSurface(
1267 HSURF hsurf,
1268 HDEV hdev,
1269 FLONG flHooks);
1270
1271 WIN32KAPI
1272 WINBOOL
1273 APIENTRY
1274 EngBitBlt(
1275 SURFOBJ *psoTrg,
1276 SURFOBJ *psoSrc,
1277 SURFOBJ *psoMask,
1278 CLIPOBJ *pco,
1279 XLATEOBJ *pxlo,
1280 RECTL *prclTrg,
1281 POINTL *pptlSrc,
1282 POINTL *pptlMask,
1283 BRUSHOBJ *pbo,
1284 POINTL *pptlBrush,
1285 ROP4 rop4);
1286
1287 WIN32KAPI
1288 WINBOOL
1289 APIENTRY
1290 EngCheckAbort(
1291 SURFOBJ *pso);
1292
1293 WIN32KAPI
1294 VOID
1295 APIENTRY
1296 EngClearEvent(
1297 PEVENT pEvent);
1298
1299 WIN32KAPI
1300 FD_GLYPHSET*
1301 APIENTRY
1302 EngComputeGlyphSet(
1303 INT nCodePage,
1304 INT nFirstChar,
1305 INT cChars);
1306
1307 /* EngControlSprites.fl constants */
1308 #define ECS_TEARDOWN 0x00000001
1309 #define ECS_REDRAW 0x00000002
1310
1311 WIN32KAPI
1312 WINBOOL
1313 APIENTRY
1314 EngControlSprites(
1315 WNDOBJ *pwo,
1316 FLONG fl);
1317
1318 WIN32KAPI
1319 WINBOOL
1320 APIENTRY
1321 EngCopyBits(
1322 SURFOBJ *psoDest,
1323 SURFOBJ *psoSrc,
1324 CLIPOBJ *pco,
1325 XLATEOBJ *pxlo,
1326 RECTL *prclDest,
1327 POINTL *pptlSrc);
1328
1329 WIN32KAPI
1330 HBITMAP
1331 APIENTRY
1332 EngCreateBitmap(
1333 SIZEL sizl,
1334 LONG lWidth,
1335 ULONG iFormat,
1336 FLONG fl,
1337 PVOID pvBits);
1338
1339 WIN32KAPI
1340 CLIPOBJ*
1341 APIENTRY
1342 EngCreateClip(
1343 VOID);
1344
1345 WIN32KAPI
1346 HBITMAP
1347 APIENTRY
1348 EngCreateDeviceBitmap(
1349 DHSURF dhsurf,
1350 SIZEL sizl,
1351 ULONG iFormatCompat);
1352
1353 WIN32KAPI
1354 HSURF
1355 APIENTRY
1356 EngCreateDeviceSurface(
1357 DHSURF dhsurf,
1358 SIZEL sizl,
1359 ULONG iFormatCompat);
1360
1361 #if 0
1362 WIN32KAPI
1363 HDRVOBJ
1364 APIENTRY
1365 EngCreateDriverObj(
1366 PVOID pvObj,
1367 FREEOBJPROC pFreeObjProc,
1368 HDEV hdev);
1369 #endif
1370
1371 WIN32KAPI
1372 WINBOOL
1373 APIENTRY
1374 EngCreateEvent(
1375 PEVENT *ppEvent);
1376
1377 /* EngCreatePalette.iMode constants */
1378 #define PAL_INDEXED 0x00000001
1379 #define PAL_BITFIELDS 0x00000002
1380 #define PAL_RGB 0x00000004
1381 #define PAL_BGR 0x00000008
1382 #define PAL_CMYK 0x00000010
1383
1384 WIN32KAPI
1385 HPALETTE
1386 APIENTRY
1387 EngCreatePalette(
1388 ULONG iMode,
1389 ULONG cColors,
1390 ULONG *pulColors,
1391 FLONG flRed,
1392 FLONG flGreen,
1393 FLONG flBlue);
1394
1395 WIN32KAPI
1396 PATHOBJ*
1397 APIENTRY
1398 EngCreatePath(
1399 VOID);
1400
1401 WIN32KAPI
1402 HSEMAPHORE
1403 APIENTRY
1404 EngCreateSemaphore(
1405 VOID);
1406
1407 /* EngCreateWnd.fl constants */
1408 #define WO_RGN_CLIENT_DELTA 0x00000001
1409 #define WO_RGN_CLIENT 0x00000002
1410 #define WO_RGN_SURFACE_DELTA 0x00000004
1411 #define WO_RGN_SURFACE 0x00000008
1412 #define WO_RGN_UPDATE_ALL 0x00000010
1413 #define WO_RGN_WINDOW 0x00000020
1414 #define WO_DRAW_NOTIFY 0x00000040
1415 #define WO_SPRITE_NOTIFY 0x00000080
1416 #define WO_RGN_DESKTOP_COORD 0x00000100
1417
1418 WIN32KAPI
1419 WNDOBJ*
1420 APIENTRY
1421 EngCreateWnd(
1422 SURFOBJ *pso,
1423 HWND hwnd,
1424 WNDOBJCHANGEPROC pfn,
1425 FLONG fl,
1426 int iPixelFormat);
1427
1428 WIN32KAPI
1429 VOID
1430 APIENTRY
1431 EngDebugBreak(
1432 VOID);
1433
1434 WIN32KAPI
1435 VOID
1436 APIENTRY
1437 EngDebugPrint(
1438 PCHAR StandardPrefix,
1439 PCHAR DebugMessage,
1440 va_list ap);
1441
1442 WIN32KAPI
1443 VOID
1444 APIENTRY
1445 EngDeleteClip(
1446 CLIPOBJ *pco);
1447
1448 WIN32KAPI
1449 WINBOOL
1450 APIENTRY
1451 EngDeleteDriverObj(
1452 HDRVOBJ hdo,
1453 WINBOOL bCallBack,
1454 WINBOOL bLocked);
1455
1456 WIN32KAPI
1457 WINBOOL
1458 APIENTRY
1459 EngDeleteEvent(
1460 PEVENT pEvent);
1461
1462 WIN32KAPI
1463 WINBOOL
1464 APIENTRY
1465 EngDeleteFile(
1466 LPWSTR pwszFileName);
1467
1468 WIN32KAPI
1469 WINBOOL
1470 APIENTRY
1471 EngDeletePalette(
1472 HPALETTE hpal);
1473
1474 WIN32KAPI
1475 VOID
1476 APIENTRY
1477 EngDeletePath(
1478 PATHOBJ *ppo);
1479
1480 WIN32KAPI
1481 VOID
1482 APIENTRY
1483 EngDeleteSafeSemaphore(
1484 ENGSAFESEMAPHORE *pssem);
1485
1486 WIN32KAPI
1487 VOID
1488 APIENTRY
1489 EngDeleteSemaphore(
1490 HSEMAPHORE hsem);
1491
1492 WIN32KAPI
1493 WINBOOL
1494 APIENTRY
1495 EngDeleteSurface(
1496 HSURF hsurf);
1497
1498 WIN32KAPI
1499 VOID
1500 APIENTRY
1501 EngDeleteWnd(
1502 WNDOBJ *pwo);
1503
1504 WIN32KAPI
1505 DWORD
1506 APIENTRY
1507 EngDeviceIoControl(
1508 HANDLE hDevice,
1509 DWORD dwIoControlCode,
1510 LPVOID lpInBuffer,
1511 DWORD nInBufferSize,
1512 LPVOID lpOutBuffer,
1513 DWORD nOutBufferSize,
1514 LPDWORD lpBytesReturned);
1515
1516 WIN32KAPI
1517 ULONG
1518 APIENTRY
1519 EngDitherColor(
1520 HDEV hdev,
1521 ULONG iMode,
1522 ULONG rgb,
1523 ULONG *pul);
1524
1525 WIN32KAPI
1526 WINBOOL
1527 APIENTRY
1528 EngEnumForms(
1529 HANDLE hPrinter,
1530 DWORD Level,
1531 LPBYTE pForm,
1532 DWORD cbBuf,
1533 LPDWORD pcbNeeded,
1534 LPDWORD pcReturned);
1535
1536 WIN32KAPI
1537 WINBOOL
1538 APIENTRY
1539 EngEraseSurface(
1540 SURFOBJ *pso,
1541 RECTL *prcl,
1542 ULONG iColor);
1543
1544 WIN32KAPI
1545 WINBOOL
1546 APIENTRY
1547 EngFillPath(
1548 SURFOBJ *pso,
1549 PATHOBJ *ppo,
1550 CLIPOBJ *pco,
1551 BRUSHOBJ *pbo,
1552 POINTL *pptlBrushOrg,
1553 MIX mix,
1554 FLONG flOptions);
1555
1556 WIN32KAPI
1557 PVOID
1558 APIENTRY
1559 EngFindImageProcAddress(
1560 HANDLE hModule,
1561 LPSTR lpProcName);
1562
1563 WIN32KAPI
1564 PVOID
1565 APIENTRY
1566 EngFindResource(
1567 HANDLE h,
1568 int iName,
1569 int iType,
1570 PULONG pulSize);
1571
1572 WIN32KAPI
1573 PVOID
1574 APIENTRY
1575 EngFntCacheAlloc(
1576 ULONG FastCheckSum,
1577 ULONG ulSize);
1578
1579 /* EngFntCacheFault.iFaultMode constants */
1580 #define ENG_FNT_CACHE_READ_FAULT 0x00000001
1581 #define ENG_FNT_CACHE_WRITE_FAULT 0x00000002
1582
1583 WIN32KAPI
1584 VOID
1585 APIENTRY
1586 EngFntCacheFault(
1587 ULONG ulFastCheckSum,
1588 ULONG iFaultMode);
1589
1590 WIN32KAPI
1591 PVOID
1592 APIENTRY
1593 EngFntCacheLookUp(
1594 ULONG FastCheckSum,
1595 ULONG *pulSize);
1596
1597 WIN32KAPI
1598 VOID
1599 APIENTRY
1600 EngFreeMem(
1601 PVOID Mem);
1602
1603 WIN32KAPI
1604 VOID
1605 APIENTRY
1606 EngFreeModule(
1607 HANDLE h);
1608
1609 WIN32KAPI
1610 VOID
1611 APIENTRY
1612 EngFreePrivateUserMem(
1613 PDD_SURFACE_LOCAL psl,
1614 PVOID pv);
1615
1616 WIN32KAPI
1617 VOID
1618 APIENTRY
1619 EngFreeUserMem(
1620 PVOID pv);
1621
1622 WIN32KAPI
1623 VOID
1624 APIENTRY
1625 EngGetCurrentCodePage(
1626 PUSHORT OemCodePage,
1627 PUSHORT AnsiCodePage);
1628
1629 WIN32KAPI
1630 HANDLE
1631 APIENTRY
1632 EngGetCurrentProcessId(
1633 VOID);
1634
1635 WIN32KAPI
1636 HANDLE
1637 APIENTRY
1638 EngGetCurrentThreadId(
1639 VOID);
1640
1641 WIN32KAPI
1642 LPWSTR
1643 APIENTRY
1644 EngGetDriverName(
1645 HDEV hdev);
1646
1647 WIN32KAPI
1648 WINBOOL
1649 APIENTRY
1650 EngGetFileChangeTime(
1651 HANDLE h,
1652 LARGE_INTEGER *pChangeTime);
1653
1654 WIN32KAPI
1655 WINBOOL
1656 APIENTRY
1657 EngGetFilePath(
1658 HANDLE h,
1659 WCHAR (*pDest)[MAX_PATH+1]);
1660
1661 WIN32KAPI
1662 WINBOOL
1663 APIENTRY
1664 EngGetForm(
1665 HANDLE hPrinter,
1666 LPWSTR pFormName,
1667 DWORD Level,
1668 LPBYTE pForm,
1669 DWORD cbBuf,
1670 LPDWORD pcbNeeded);
1671
1672 WIN32KAPI
1673 ULONG
1674 APIENTRY
1675 EngGetLastError(
1676 VOID);
1677
1678 WIN32KAPI
1679 WINBOOL
1680 APIENTRY
1681 EngGetPrinter(
1682 HANDLE hPrinter,
1683 DWORD dwLevel,
1684 LPBYTE pPrinter,
1685 DWORD cbBuf,
1686 LPDWORD pcbNeeded);
1687
1688 WIN32KAPI
1689 DWORD
1690 APIENTRY
1691 EngGetPrinterData(
1692 HANDLE hPrinter,
1693 LPWSTR pValueName,
1694 LPDWORD pType,
1695 LPBYTE pData,
1696 DWORD nSize,
1697 LPDWORD pcbNeeded);
1698
1699 WIN32KAPI
1700 LPWSTR
1701 APIENTRY
1702 EngGetPrinterDataFileName(
1703 HDEV hdev);
1704
1705 WIN32KAPI
1706 WINBOOL
1707 APIENTRY
1708 EngGetPrinterDriver(
1709 HANDLE hPrinter,
1710 LPWSTR pEnvironment,
1711 DWORD dwLevel,
1712 BYTE *lpbDrvInfo,
1713 DWORD cbBuf,
1714 DWORD *pcbNeeded);
1715
1716 WIN32KAPI
1717 HANDLE
1718 APIENTRY
1719 EngGetProcessHandle(
1720 VOID);
1721
1722 WIN32KAPI
1723 WINBOOL
1724 APIENTRY
1725 EngGetType1FontList(
1726 HDEV hdev,
1727 TYPE1_FONT *pType1Buffer,
1728 ULONG cjType1Buffer,
1729 PULONG pulLocalFonts,
1730 PULONG pulRemoteFonts,
1731 LARGE_INTEGER *pLastModified);
1732
1733 WIN32KAPI
1734 WINBOOL
1735 APIENTRY
1736 EngGradientFill(
1737 SURFOBJ *psoDest,
1738 CLIPOBJ *pco,
1739 XLATEOBJ *pxlo,
1740 TRIVERTEX *pVertex,
1741 ULONG nVertex,
1742 PVOID pMesh,
1743 ULONG nMesh,
1744 RECTL *prclExtents,
1745 POINTL *pptlDitherOrg,
1746 ULONG ulMode);
1747
1748 /* EngHangNotification return values */
1749 #define EHN_RESTORED 0x00000000
1750 #define EHN_ERROR 0x00000001
1751
1752 WIN32KAPI
1753 ULONG
1754 APIENTRY
1755 EngHangNotification(
1756 HDEV hDev,
1757 PVOID Reserved);
1758
1759 WIN32KAPI
1760 WINBOOL
1761 APIENTRY
1762 EngInitializeSafeSemaphore(
1763 ENGSAFESEMAPHORE *pssem);
1764
1765 WIN32KAPI
1766 WINBOOL
1767 APIENTRY
1768 EngIsSemaphoreOwned(
1769 HSEMAPHORE hsem);
1770
1771 WIN32KAPI
1772 WINBOOL
1773 APIENTRY
1774 EngIsSemaphoreOwnedByCurrentThread(
1775 HSEMAPHORE hsem);
1776
1777 WIN32KAPI
1778 WINBOOL
1779 APIENTRY
1780 EngLineTo(
1781 SURFOBJ *pso,
1782 CLIPOBJ *pco,
1783 BRUSHOBJ *pbo,
1784 LONG x1,
1785 LONG y1,
1786 LONG x2,
1787 LONG y2,
1788 RECTL *prclBounds,
1789 MIX mix);
1790
1791 WIN32KAPI
1792 HANDLE
1793 APIENTRY
1794 EngLoadImage(
1795 LPWSTR pwszDriver);
1796
1797 WIN32KAPI
1798 HANDLE
1799 APIENTRY
1800 EngLoadModule(
1801 LPWSTR pwsz);
1802
1803 WIN32KAPI
1804 HANDLE
1805 APIENTRY
1806 EngLoadModuleForWrite(
1807 LPWSTR pwsz,
1808 ULONG cjSizeOfModule);
1809
1810 WIN32KAPI
1811 PDD_SURFACE_LOCAL
1812 APIENTRY
1813 EngLockDirectDrawSurface(
1814 HANDLE hSurface);
1815
1816 WIN32KAPI
1817 DRIVEROBJ*
1818 APIENTRY
1819 EngLockDriverObj(
1820 HDRVOBJ hdo);
1821
1822 WIN32KAPI
1823 SURFOBJ*
1824 APIENTRY
1825 EngLockSurface(
1826 HSURF hsurf);
1827
1828 WIN32KAPI
1829 WINBOOL
1830 APIENTRY
1831 EngLpkInstalled(
1832 VOID);
1833
1834 WIN32KAPI
1835 PEVENT
1836 APIENTRY
1837 EngMapEvent(
1838 HDEV hDev,
1839 HANDLE hUserObject,
1840 PVOID Reserved1,
1841 PVOID Reserved2,
1842 PVOID Reserved3);
1843
1844 WIN32KAPI
1845 PVOID
1846 APIENTRY
1847 EngMapFile(
1848 LPWSTR pwsz,
1849 ULONG cjSize,
1850 ULONG_PTR *piFile);
1851
1852 WIN32KAPI
1853 WINBOOL
1854 APIENTRY
1855 EngMapFontFile(
1856 ULONG_PTR iFile,
1857 PULONG *ppjBuf,
1858 ULONG *pcjBuf);
1859
1860 WIN32KAPI
1861 WINBOOL
1862 APIENTRY
1863 EngMapFontFileFD(
1864 ULONG_PTR iFile,
1865 PULONG *ppjBuf,
1866 ULONG *pcjBuf);
1867
1868 WIN32KAPI
1869 PVOID
1870 APIENTRY
1871 EngMapModule(
1872 HANDLE h,
1873 PULONG pSize);
1874
1875 WIN32KAPI
1876 WINBOOL
1877 APIENTRY
1878 EngMarkBandingSurface(
1879 HSURF hsurf);
1880
1881 /* EngModifySurface.flSurface constants */
1882 #define MS_NOTSYSTEMMEMORY 0x00000001
1883 #define MS_SHAREDACCESS 0x00000002
1884
1885 WIN32KAPI
1886 WINBOOL
1887 APIENTRY
1888 EngModifySurface(
1889 HSURF hsurf,
1890 HDEV hdev,
1891 FLONG flHooks,
1892 FLONG flSurface,
1893 DHSURF dhsurf,
1894 VOID *pvScan0,
1895 LONG lDelta,
1896 VOID *pvReserved);
1897
1898 WIN32KAPI
1899 VOID
1900 APIENTRY
1901 EngMovePointer(
1902 SURFOBJ *pso,
1903 LONG x,
1904 LONG y,
1905 RECTL *prcl);
1906
1907 WIN32KAPI
1908 int
1909 APIENTRY
1910 EngMulDiv(
1911 int a,
1912 int b,
1913 int c);
1914
1915 WIN32KAPI
1916 VOID
1917 APIENTRY
1918 EngMultiByteToUnicodeN(
1919 LPWSTR UnicodeString,
1920 ULONG MaxBytesInUnicodeString,
1921 PULONG BytesInUnicodeString,
1922 PCHAR MultiByteString,
1923 ULONG BytesInMultiByteString);
1924
1925 WIN32KAPI
1926 INT
1927 APIENTRY
1928 EngMultiByteToWideChar(
1929 UINT CodePage,
1930 LPWSTR WideCharString,
1931 INT BytesInWideCharString,
1932 LPSTR MultiByteString,
1933 INT BytesInMultiByteString);
1934
1935 WIN32KAPI
1936 WINBOOL
1937 APIENTRY
1938 EngPaint(
1939 SURFOBJ *pso,
1940 CLIPOBJ *pco,
1941 BRUSHOBJ *pbo,
1942 POINTL *pptlBrushOrg,
1943 MIX mix);
1944
1945 WIN32KAPI
1946 WINBOOL
1947 APIENTRY
1948 EngPlgBlt(
1949 SURFOBJ *psoTrg,
1950 SURFOBJ *psoSrc,
1951 SURFOBJ *psoMsk,
1952 CLIPOBJ *pco,
1953 XLATEOBJ *pxlo,
1954 COLORADJUSTMENT *pca,
1955 POINTL *pptlBrushOrg,
1956 POINTFIX *pptfx,
1957 RECTL *prcl,
1958 POINTL *pptl,
1959 ULONG iMode);
1960
1961 WIN32KAPI
1962 VOID
1963 APIENTRY
1964 EngProbeForRead(
1965 PVOID Address,
1966 ULONG Length,
1967 ULONG Alignment);
1968
1969 WIN32KAPI
1970 VOID
1971 APIENTRY
1972 EngProbeForReadAndWrite(
1973 PVOID Address,
1974 ULONG Length,
1975 ULONG Alignment);
1976
1977 typedef enum _ENG_DEVICE_ATTRIBUTE {
1978 QDA_RESERVED = 0,
1979 QDA_ACCELERATION_LEVEL
1980 } ENG_DEVICE_ATTRIBUTE;
1981
1982 WIN32KAPI
1983 WINBOOL
1984 APIENTRY
1985 EngQueryDeviceAttribute(
1986 HDEV hdev,
1987 ENG_DEVICE_ATTRIBUTE devAttr,
1988 VOID *pvIn,
1989 ULONG ulInSize,
1990 VOID *pvOut,
1991 ULONG ulOutSize);
1992
1993 WIN32KAPI
1994 LARGE_INTEGER
1995 APIENTRY
1996 EngQueryFileTimeStamp(
1997 LPWSTR pwsz);
1998
1999 WIN32KAPI
2000 VOID
2001 APIENTRY
2002 EngQueryLocalTime(
2003 PENG_TIME_FIELDS ptf);
2004
2005 WIN32KAPI
2006 ULONG
2007 APIENTRY
2008 EngQueryPalette(
2009 HPALETTE hPal,
2010 ULONG *piMode,
2011 ULONG cColors,
2012 ULONG *pulColors);
2013
2014 WIN32KAPI
2015 VOID
2016 APIENTRY
2017 EngQueryPerformanceCounter(
2018 LONGLONG *pPerformanceCount);
2019
2020 WIN32KAPI
2021 VOID
2022 APIENTRY
2023 EngQueryPerformanceFrequency(
2024 LONGLONG *pFrequency);
2025
2026 typedef enum _ENG_SYSTEM_ATTRIBUTE {
2027 EngProcessorFeature = 1,
2028 EngNumberOfProcessors,
2029 EngOptimumAvailableUserMemory,
2030 EngOptimumAvailableSystemMemory,
2031 } ENG_SYSTEM_ATTRIBUTE;
2032
2033 #define QSA_MMX 0x00000100
2034 #define QSA_SSE 0x00002000
2035 #define QSA_3DNOW 0x00004000
2036
2037 WIN32KAPI
2038 WINBOOL
2039 APIENTRY
2040 EngQuerySystemAttribute(
2041 ENG_SYSTEM_ATTRIBUTE CapNum,
2042 PDWORD pCapability);
2043
2044 WIN32KAPI
2045 LONG
2046 APIENTRY
2047 EngReadStateEvent(
2048 PEVENT pEvent);
2049
2050 WIN32KAPI
2051 VOID
2052 APIENTRY
2053 EngReleaseSemaphore(
2054 HSEMAPHORE hsem);
2055
2056 WIN32KAPI
2057 WINBOOL
2058 APIENTRY
2059 EngRestoreFloatingPointState(
2060 VOID *pBuffer);
2061
2062 WIN32KAPI
2063 ULONG
2064 APIENTRY
2065 EngSaveFloatingPointState(
2066 VOID *pBuffer,
2067 ULONG cjBufferSize);
2068
2069 WIN32KAPI
2070 HANDLE
2071 APIENTRY
2072 EngSecureMem(
2073 PVOID Address,
2074 ULONG Length);
2075
2076 WIN32KAPI
2077 LONG
2078 APIENTRY
2079 EngSetEvent(
2080 PEVENT pEvent);
2081
2082 WIN32KAPI
2083 VOID
2084 APIENTRY
2085 EngSetLastError(
2086 ULONG iError);
2087
2088 WIN32KAPI
2089 ULONG
2090 APIENTRY
2091 EngSetPointerShape(
2092 SURFOBJ *pso,
2093 SURFOBJ *psoMask,
2094 SURFOBJ *psoColor,
2095 XLATEOBJ *pxlo,
2096 LONG xHot,
2097 LONG yHot,
2098 LONG x,
2099 LONG y,
2100 RECTL *prcl,
2101 FLONG fl);
2102
2103 WIN32KAPI
2104 WINBOOL
2105 APIENTRY
2106 EngSetPointerTag(
2107 HDEV hdev,
2108 SURFOBJ *psoMask,
2109 SURFOBJ *psoColor,
2110 XLATEOBJ *pxlo,
2111 FLONG fl);
2112
2113 WIN32KAPI
2114 DWORD
2115 APIENTRY
2116 EngSetPrinterData(
2117 HANDLE hPrinter,
2118 LPWSTR pType,
2119 DWORD dwType,
2120 LPBYTE lpbPrinterData,
2121 DWORD cjPrinterData);
2122
2123 typedef int (CDECL *SORTCOMP)(const void *pv1, const void *pv2);
2124
2125 WIN32KAPI
2126 VOID
2127 APIENTRY
2128 EngSort(
2129 PBYTE pjBuf,
2130 ULONG c,
2131 ULONG cjElem,
2132 SORTCOMP pfnComp);
2133
2134 WIN32KAPI
2135 WINBOOL
2136 APIENTRY
2137 EngStretchBlt(
2138 SURFOBJ *psoDest,
2139 SURFOBJ *psoSrc,
2140 SURFOBJ *psoMask,
2141 CLIPOBJ *pco,
2142 XLATEOBJ *pxlo,
2143 COLORADJUSTMENT *pca,
2144 POINTL *pptlHTOrg,
2145 RECTL *prclDest,
2146 RECTL *prclSrc,
2147 POINTL *pptlMask,
2148 ULONG iMode);
2149
2150 WIN32KAPI
2151 WINBOOL
2152 APIENTRY
2153 EngStretchBltROP(
2154 SURFOBJ *psoDest,
2155 SURFOBJ *psoSrc,
2156 SURFOBJ *psoMask,
2157 CLIPOBJ *pco,
2158 XLATEOBJ *pxlo,
2159 COLORADJUSTMENT *pca,
2160 POINTL *pptlHTOrg,
2161 RECTL *prclDest,
2162 RECTL *prclSrc,
2163 POINTL *pptlMask,
2164 ULONG iMode,
2165 BRUSHOBJ *pbo,
2166 DWORD rop4);
2167
2168 WIN32KAPI
2169 WINBOOL
2170 APIENTRY
2171 EngStrokeAndFillPath(
2172 SURFOBJ *pso,
2173 PATHOBJ *ppo,
2174 CLIPOBJ *pco,
2175 XFORMOBJ *pxo,
2176 BRUSHOBJ *pboStroke,
2177 LINEATTRS *plineattrs,
2178 BRUSHOBJ *pboFill,
2179 POINTL *pptlBrushOrg,
2180 MIX mixFill,
2181 FLONG flOptions);
2182
2183 WIN32KAPI
2184 WINBOOL
2185 APIENTRY
2186 EngStrokePath(
2187 SURFOBJ *pso,
2188 PATHOBJ *ppo,
2189 CLIPOBJ *pco,
2190 XFORMOBJ *pxo,
2191 BRUSHOBJ *pbo,
2192 POINTL *pptlBrushOrg,
2193 LINEATTRS *plineattrs,
2194 MIX mix);
2195
2196 WIN32KAPI
2197 WINBOOL
2198 APIENTRY
2199 EngTextOut(
2200 SURFOBJ *pso,
2201 STROBJ *pstro,
2202 FONTOBJ *pfo,
2203 CLIPOBJ *pco,
2204 RECTL *prclExtra,
2205 RECTL *prclOpaque,
2206 BRUSHOBJ *pboFore,
2207 BRUSHOBJ *pboOpaque,
2208 POINTL *pptlOrg,
2209 MIX mix);
2210
2211 WIN32KAPI
2212 WINBOOL
2213 APIENTRY
2214 EngTransparentBlt(
2215 SURFOBJ *psoDst,
2216 SURFOBJ *psoSrc,
2217 CLIPOBJ *pco,
2218 XLATEOBJ *pxlo,
2219 RECTL *prclDst,
2220 RECTL *prclSrc,
2221 ULONG iTransColor,
2222 ULONG ulReserved);
2223
2224 WIN32KAPI
2225 VOID
2226 APIENTRY
2227 EngUnicodeToMultiByteN(
2228 PCHAR MultiByteString,
2229 ULONG MaxBytesInMultiByteString,
2230 PULONG BytesInMultiByteString,
2231 PWSTR UnicodeString,
2232 ULONG BytesInUnicodeString);
2233
2234 WIN32KAPI
2235 VOID
2236 APIENTRY
2237 EngUnloadImage(
2238 HANDLE hModule);
2239
2240 WIN32KAPI
2241 WINBOOL
2242 APIENTRY
2243 EngUnlockDirectDrawSurface(
2244 PDD_SURFACE_LOCAL pSurface);
2245
2246 WIN32KAPI
2247 WINBOOL
2248 APIENTRY
2249 EngUnlockDriverObj(
2250 HDRVOBJ hdo);
2251
2252 WIN32KAPI
2253 VOID
2254 APIENTRY
2255 EngUnlockSurface(
2256 SURFOBJ *pso);
2257
2258 WIN32KAPI
2259 WINBOOL
2260 APIENTRY
2261 EngUnmapEvent(
2262 PEVENT pEvent);
2263
2264 WIN32KAPI
2265 WINBOOL
2266 APIENTRY
2267 EngUnmapFile(
2268 ULONG_PTR iFile);
2269
2270 WIN32KAPI
2271 VOID
2272 APIENTRY
2273 EngUnmapFontFile(
2274 ULONG_PTR iFile);
2275
2276 WIN32KAPI
2277 VOID
2278 APIENTRY
2279 EngUnmapFontFileFD(
2280 ULONG_PTR iFile);
2281
2282 WIN32KAPI
2283 VOID
2284 APIENTRY
2285 EngUnsecureMem(
2286 HANDLE hSecure);
2287
2288 WIN32KAPI
2289 WINBOOL
2290 APIENTRY
2291 EngWaitForSingleObject(
2292 PEVENT pEvent,
2293 PLARGE_INTEGER pTimeOut);
2294
2295 WIN32KAPI
2296 INT
2297 APIENTRY
2298 EngWideCharToMultiByte(
2299 UINT CodePage,
2300 LPWSTR WideCharString,
2301 INT BytesInWideCharString,
2302 LPSTR MultiByteString,
2303 INT BytesInMultiByteString);
2304
2305 WIN32KAPI
2306 WINBOOL
2307 APIENTRY
2308 EngWritePrinter(
2309 HANDLE hPrinter,
2310 LPVOID pBuf,
2311 DWORD cbBuf,
2312 LPDWORD pcWritten);
2313
2314 #if defined(_X86_) && !defined(USERMODE_DRIVER)
2315 WIN32KAPI
2316 VOID
2317 APIENTRY
2318 FLOATOBJ_Add(
2319 PFLOATOBJ pf,
2320 PFLOATOBJ pf1);
2321
2322 WIN32KAPI
2323 VOID
2324 APIENTRY
2325 FLOATOBJ_AddFloat(
2326 PFLOATOBJ pf,
2327 FLOATL f);
2328
2329 WIN32KAPI
2330 VOID
2331 APIENTRY
2332 FLOATOBJ_AddLong(
2333 PFLOATOBJ pf,
2334 LONG l);
2335
2336 WIN32KAPI
2337 VOID
2338 APIENTRY
2339 FLOATOBJ_Div(
2340 PFLOATOBJ pf,
2341 PFLOATOBJ pf1);
2342
2343 WIN32KAPI
2344 VOID
2345 APIENTRY
2346 FLOATOBJ_DivFloat(
2347 PFLOATOBJ pf,
2348 FLOATL f);
2349
2350 WIN32KAPI
2351 VOID
2352 APIENTRY
2353 FLOATOBJ_DivLong(
2354 PFLOATOBJ pf,
2355 LONG l);
2356
2357 WIN32KAPI
2358 WINBOOL
2359 APIENTRY
2360 FLOATOBJ_Equal(
2361 PFLOATOBJ pf,
2362 PFLOATOBJ pf1);
2363
2364 WIN32KAPI
2365 WINBOOL
2366 APIENTRY
2367 FLOATOBJ_EqualLong(
2368 PFLOATOBJ pf,
2369 LONG l);
2370
2371 WIN32KAPI
2372 LONG
2373 APIENTRY
2374 FLOATOBJ_GetFloat(
2375 PFLOATOBJ pf);
2376
2377 WIN32KAPI
2378 LONG
2379 APIENTRY
2380 FLOATOBJ_GetLong(
2381 PFLOATOBJ pf);
2382
2383 WIN32KAPI
2384 WINBOOL
2385 APIENTRY
2386 FLOATOBJ_GreaterThan(
2387 PFLOATOBJ pf,
2388 PFLOATOBJ pf1);
2389
2390 WIN32KAPI
2391 WINBOOL
2392 APIENTRY
2393 FLOATOBJ_GreaterThanLong(
2394 PFLOATOBJ pf,
2395 LONG l);
2396
2397 WIN32KAPI
2398 WINBOOL
2399 APIENTRY
2400 FLOATOBJ_LessThan(
2401 PFLOATOBJ pf,
2402 PFLOATOBJ pf1);
2403
2404 WIN32KAPI
2405 WINBOOL
2406 APIENTRY
2407 FLOATOBJ_LessThanLong(
2408 PFLOATOBJ pf,
2409 LONG l);
2410
2411 WIN32KAPI
2412 VOID
2413 APIENTRY
2414 FLOATOBJ_Mul(
2415 PFLOATOBJ pf,
2416 PFLOATOBJ pf1);
2417
2418 WIN32KAPI
2419 VOID
2420 APIENTRY
2421 FLOATOBJ_MulFloat(
2422 PFLOATOBJ pf,
2423 FLOATL f);
2424
2425 WIN32KAPI
2426 VOID
2427 APIENTRY
2428 FLOATOBJ_MulLong(
2429 PFLOATOBJ pf,
2430 LONG l);
2431
2432 WIN32KAPI
2433 VOID
2434 APIENTRY
2435 FLOATOBJ_Neg(
2436 PFLOATOBJ pf);
2437
2438 WIN32KAPI
2439 VOID
2440 APIENTRY
2441 FLOATOBJ_SetFloat(
2442 PFLOATOBJ pf,
2443 FLOATL f);
2444
2445 WIN32KAPI
2446 VOID
2447 APIENTRY
2448 FLOATOBJ_SetLong(
2449 PFLOATOBJ pf,
2450 LONG l);
2451
2452 WIN32KAPI
2453 VOID
2454 APIENTRY
2455 FLOATOBJ_Sub(
2456 PFLOATOBJ pf,
2457 PFLOATOBJ pf1);
2458
2459 WIN32KAPI
2460 VOID
2461 APIENTRY
2462 FLOATOBJ_SubFloat(
2463 PFLOATOBJ pf,
2464 FLOATL f);
2465
2466 WIN32KAPI
2467 VOID
2468 APIENTRY
2469 FLOATOBJ_SubLong(
2470 PFLOATOBJ pf,
2471 LONG l);
2472
2473 #else
2474
2475 #define FLOATOBJ_SetFloat(pf, f) {*(pf) = (f);}
2476 #define FLOATOBJ_SetLong(pf, l) {*(pf) = (FLOAT)(l);}
2477 #define FLOATOBJ_GetFloat(pf) (*(PULONG)(pf))
2478 #define FLOATOBJ_GetLong(pf) ((LONG)*(pf))
2479 #define FLOATOBJ_Add(pf, pf1) {*(pf) += *(pf1);}
2480 #define FLOATOBJ_AddFloat(pf, f) {*(pf) += (f);}
2481 #define FLOATOBJ_AddLong(pf, l) {*(pf) += (l);}
2482 #define FLOATOBJ_Sub(pf, pf1) {*(pf) -= *(pf1);}
2483 #define FLOATOBJ_SubFloat(pf, f) {*(pf) -= (f);}
2484 #define FLOATOBJ_SubLong(pf, l) {*(pf) -= (l);}
2485 #define FLOATOBJ_Mul(pf, pf1) {*(pf) *= *(pf1);}
2486 #define FLOATOBJ_MulFloat(pf, f) {*(pf) *= (f);}
2487 #define FLOATOBJ_MulLong(pf, l) {*(pf) *= (l);}
2488 #define FLOATOBJ_Div(pf, pf1) {*(pf) /= *(pf1);}
2489 #define FLOATOBJ_DivFloat(pf, f) {*(pf) /= (f);}
2490 #define FLOATOBJ_DivLong(pf, l) {*(pf) /= (l);}
2491 #define FLOATOBJ_Neg(pf) {*(pf) = -(*(pf));}
2492 #define FLOATOBJ_Equal(pf, pf1) (*(pf) == *(pf1))
2493 #define FLOATOBJ_GreaterThan(pf, pf1) (*(pf) > *(pf1))
2494 #define FLOATOBJ_LessThan(pf, pf1) (*(pf) < *(pf1))
2495 #define FLOATOBJ_EqualLong(pf, l) (*(pf) == (FLOAT)(l))
2496 #define FLOATOBJ_GreaterThanLong(pf, l) (*(pf) > (FLOAT)(l))
2497 #define FLOATOBJ_LessThanLong(pf, l) (*(pf) < (FLOAT)(l))
2498
2499 #endif
2500
2501 WIN32KAPI
2502 ULONG
2503 APIENTRY
2504 FONTOBJ_cGetAllGlyphHandles(
2505 FONTOBJ *pfo,
2506 HGLYPH *phg);
2507
2508 WIN32KAPI
2509 ULONG
2510 APIENTRY
2511 FONTOBJ_cGetGlyphs(
2512 FONTOBJ *pfo,
2513 ULONG iMode,
2514 ULONG cGlyph,
2515 HGLYPH *phg,
2516 PVOID *ppvGlyph);
2517
2518 WIN32KAPI
2519 FD_GLYPHSET*
2520 APIENTRY
2521 FONTOBJ_pfdg(
2522 FONTOBJ *pfo);
2523
2524 WIN32KAPI
2525 IFIMETRICS*
2526 APIENTRY
2527 FONTOBJ_pifi(
2528 FONTOBJ *pfo);
2529
2530 WIN32KAPI
2531 PBYTE
2532 APIENTRY
2533 FONTOBJ_pjOpenTypeTablePointer(
2534 FONTOBJ *pfo,
2535 ULONG ulTag,
2536 ULONG *pcjTable);
2537
2538 WIN32KAPI
2539 PFD_GLYPHATTR
2540 APIENTRY
2541 FONTOBJ_pQueryGlyphAttrs(
2542 FONTOBJ *pfo,
2543 ULONG iMode);
2544
2545 WIN32KAPI
2546 PVOID
2547 APIENTRY
2548 FONTOBJ_pvTrueTypeFontFile(
2549 FONTOBJ *pfo,
2550 ULONG *pcjFile);
2551
2552 WIN32KAPI
2553 LPWSTR
2554 APIENTRY
2555 FONTOBJ_pwszFontFilePaths(
2556 FONTOBJ *pfo,
2557 ULONG *pcwc);
2558
2559 WIN32KAPI
2560 XFORMOBJ*
2561 APIENTRY
2562 FONTOBJ_pxoGetXform(
2563 FONTOBJ *pfo);
2564
2565 WIN32KAPI
2566 VOID
2567 APIENTRY
2568 FONTOBJ_vGetInfo(
2569 FONTOBJ *pfo,
2570 ULONG cjSize,
2571 FONTINFO *pfi);
2572
2573
2574
2575 WIN32KAPI
2576 LONG
2577 APIENTRY
2578 HT_ComputeRGBGammaTable(
2579 USHORT GammaTableEntries,
2580 USHORT GammaTableType,
2581 USHORT RedGamma,
2582 USHORT GreenGamma,
2583 USHORT BlueGamma,
2584 LPBYTE pGammaTable);
2585
2586 WIN32KAPI
2587 LONG
2588 APIENTRY
2589 HT_Get8BPPFormatPalette(
2590 LPPALETTEENTRY pPaletteEntry,
2591 USHORT RedGamma,
2592 USHORT GreenGamma,
2593 USHORT BlueGamma);
2594
2595 WIN32KAPI
2596 LONG
2597 APIENTRY
2598 HT_Get8BPPMaskPalette(
2599 LPPALETTEENTRY pPaletteEntry,
2600 WINBOOL Use8BPPMaskPal,
2601 BYTE CMYMask,
2602 USHORT RedGamma,
2603 USHORT GreenGamma,
2604 USHORT BlueGamma);
2605
2606 WIN32KAPI
2607 LONG
2608 APIENTRY
2609 HTUI_DeviceColorAdjustment(
2610 LPSTR pDeviceName,
2611 PDEVHTADJDATA pDevHTAdjData);
2612
2613 WIN32KAPI
2614 ULONG
2615 APIENTRY
2616 PALOBJ_cGetColors(
2617 PALOBJ *ppalo,
2618 ULONG iStart,
2619 ULONG cColors,
2620 ULONG *pulColors);
2621
2622 WIN32KAPI
2623 WINBOOL
2624 APIENTRY
2625 PATHOBJ_bCloseFigure(
2626 PATHOBJ *ppo);
2627
2628 WIN32KAPI
2629 WINBOOL
2630 APIENTRY
2631 PATHOBJ_bEnum(
2632 PATHOBJ *ppo,
2633 PATHDATA *ppd);
2634
2635 WIN32KAPI
2636 WINBOOL
2637 APIENTRY
2638 PATHOBJ_bEnumClipLines(
2639 PATHOBJ *ppo,
2640 ULONG cb,
2641 CLIPLINE *pcl);
2642
2643 WIN32KAPI
2644 WINBOOL
2645 APIENTRY
2646 PATHOBJ_bMoveTo(
2647 PATHOBJ *ppo,
2648 POINTFIX ptfx);
2649
2650 WIN32KAPI
2651 WINBOOL
2652 APIENTRY
2653 PATHOBJ_bPolyBezierTo(
2654 PATHOBJ *ppo,
2655 POINTFIX *pptfx,
2656 ULONG cptfx);
2657
2658 WIN32KAPI
2659 WINBOOL
2660 APIENTRY
2661 PATHOBJ_bPolyLineTo(
2662 PATHOBJ *ppo,
2663 POINTFIX *pptfx,
2664 ULONG cptfx);
2665
2666 WIN32KAPI
2667 VOID
2668 APIENTRY
2669 PATHOBJ_vEnumStart(
2670 PATHOBJ *ppo);
2671
2672 WIN32KAPI
2673 VOID
2674 APIENTRY
2675 PATHOBJ_vEnumStartClipLines(
2676 PATHOBJ *ppo,
2677 CLIPOBJ *pco,
2678 SURFOBJ *pso,
2679 LINEATTRS *pla);
2680
2681 WIN32KAPI
2682 VOID
2683 APIENTRY
2684 PATHOBJ_vGetBounds(
2685 PATHOBJ *ppo,
2686 PRECTFX prectfx);
2687
2688 WIN32KAPI
2689 WINBOOL
2690 APIENTRY
2691 STROBJ_bEnum(
2692 STROBJ *pstro,
2693 ULONG *pc,
2694 PGLYPHPOS *ppgpos);
2695
2696 WIN32KAPI
2697 WINBOOL
2698 APIENTRY
2699 STROBJ_bEnumPositionsOnly(
2700 STROBJ *pstro,
2701 ULONG *pc,
2702 PGLYPHPOS *ppgpos);
2703
2704 WIN32KAPI
2705 WINBOOL
2706 APIENTRY
2707 STROBJ_bGetAdvanceWidths(
2708 STROBJ *pso,
2709 ULONG iFirst,
2710 ULONG c,
2711 POINTQF *pptqD);
2712
2713 WIN32KAPI
2714 DWORD
2715 APIENTRY
2716 STROBJ_dwGetCodePage(
2717 STROBJ *pstro);
2718
2719 WIN32KAPI
2720 FIX
2721 APIENTRY
2722 STROBJ_fxBreakExtra(
2723 STROBJ *pstro);
2724
2725 WIN32KAPI
2726 FIX
2727 APIENTRY
2728 STROBJ_fxCharacterExtra(
2729 STROBJ *pstro);
2730
2731 WIN32KAPI
2732 VOID
2733 APIENTRY
2734 STROBJ_vEnumStart(
2735 STROBJ *pstro);
2736
2737 WIN32KAPI
2738 WINBOOL
2739 APIENTRY
2740 WNDOBJ_bEnum(
2741 WNDOBJ *pwo,
2742 ULONG cj,
2743 ULONG *pul);
2744
2745 WIN32KAPI
2746 ULONG
2747 APIENTRY
2748 WNDOBJ_cEnumStart(
2749 WNDOBJ *pwo,
2750 ULONG iType,
2751 ULONG iDirection,
2752 ULONG cLimit);
2753
2754 WIN32KAPI
2755 VOID
2756 APIENTRY
2757 WNDOBJ_vSetConsumer(
2758 WNDOBJ *pwo,
2759 PVOID pvConsumer);
2760
2761 /* XFORMOBJ_bApplyXform.iMode constants */
2762 #define XF_LTOL __MSABI_LONG(0)
2763 #define XF_INV_LTOL __MSABI_LONG(1)
2764 #define XF_LTOFX __MSABI_LONG(2)
2765 #define XF_INV_FXTOL __MSABI_LONG(3)
2766
2767 WIN32KAPI
2768 WINBOOL
2769 APIENTRY
2770 XFORMOBJ_bApplyXform(
2771 XFORMOBJ *pxo,
2772 ULONG iMode,
2773 ULONG cPoints,
2774 PVOID pvIn,
2775 PVOID pvOut);
2776
2777 WIN32KAPI
2778 ULONG
2779 APIENTRY
2780 XFORMOBJ_iGetFloatObjXform(
2781 XFORMOBJ *pxo,
2782 FLOATOBJ_XFORM *pxfo);
2783
2784 WIN32KAPI
2785 ULONG
2786 APIENTRY
2787 XFORMOBJ_iGetXform(
2788 XFORMOBJ *pxo,
2789 XFORML *pxform);
2790
2791 /* XLATEOBJ_cGetPalette.iPal constants */
2792 #define XO_SRCPALETTE 1
2793 #define XO_DESTPALETTE 2
2794 #define XO_DESTDCPALETTE 3
2795 #define XO_SRCBITFIELDS 4
2796 #define XO_DESTBITFIELDS 5
2797
2798 WIN32KAPI
2799 ULONG
2800 APIENTRY
2801 XLATEOBJ_cGetPalette(
2802 XLATEOBJ *pxlo,
2803 ULONG iPal,
2804 ULONG cPal,
2805 ULONG *pPal);
2806
2807 WIN32KAPI
2808 HANDLE
2809 APIENTRY
2810 XLATEOBJ_hGetColorTransform(
2811 XLATEOBJ *pxlo);
2812
2813 WIN32KAPI
2814 ULONG
2815 APIENTRY
2816 XLATEOBJ_iXlate(
2817 XLATEOBJ *pxlo,
2818 ULONG iColor);
2819
2820 WIN32KAPI
2821 ULONG*
2822 APIENTRY
2823 XLATEOBJ_piVector(
2824 XLATEOBJ *pxlo);
2825
2826
2827
2828 /* Graphics Driver Functions */
2829
2830 WINBOOL
2831 APIENTRY
2832 DrvAlphaBlend(
2833 SURFOBJ *psoDest,
2834 SURFOBJ *psoSrc,
2835 CLIPOBJ *pco,
2836 XLATEOBJ *pxlo,
2837 RECTL *prclDest,
2838 RECTL *prclSrc,
2839 BLENDOBJ *pBlendObj);
2840
2841 WINBOOL
2842 APIENTRY
2843 DrvAssertMode(
2844 DHPDEV dhpdev,
2845 WINBOOL bEnable);
2846
2847 WINBOOL
2848 APIENTRY
2849 DrvBitBlt(
2850 SURFOBJ *psoTrg,
2851 SURFOBJ *psoSrc,
2852 SURFOBJ *psoMask,
2853 CLIPOBJ *pco,
2854 XLATEOBJ *pxlo,
2855 RECTL *prclTrg,
2856 POINTL *pptlSrc,
2857 POINTL *pptlMask,
2858 BRUSHOBJ *pbo,
2859 POINTL *pptlBrush,
2860 ROP4 rop4);
2861
2862 VOID
2863 APIENTRY
2864 DrvCompletePDEV(
2865 DHPDEV dhpdev,
2866 HDEV hdev);
2867
2868 WINBOOL
2869 APIENTRY
2870 DrvCopyBits(
2871 SURFOBJ *psoDest,
2872 SURFOBJ *psoSrc,
2873 CLIPOBJ *pco,
2874 XLATEOBJ *pxlo,
2875 RECTL *prclDest,
2876 POINTL *pptlSrc);
2877
2878 HBITMAP
2879 APIENTRY
2880 DrvCreateDeviceBitmap(
2881 DHPDEV dhpdev,
2882 SIZEL sizl,
2883 ULONG iFormat);
2884
2885 VOID
2886 APIENTRY
2887 DrvDeleteDeviceBitmap(
2888 DHSURF dhsurf);
2889
2890 HBITMAP
2891 APIENTRY
2892 DrvDeriveSurface(
2893 DD_DIRECTDRAW_GLOBAL *pDirectDraw,
2894 DD_SURFACE_LOCAL *pSurface);
2895
2896 LONG
2897 APIENTRY
2898 DrvDescribePixelFormat(
2899 DHPDEV dhpdev,
2900 LONG iPixelFormat,
2901 ULONG cjpfd,
2902 PIXELFORMATDESCRIPTOR *ppfd);
2903
2904 VOID
2905 APIENTRY
2906 DrvDestroyFont(
2907 FONTOBJ *pfo);
2908
2909 VOID
2910 APIENTRY
2911 DrvDisableDriver(
2912 VOID);
2913
2914 VOID
2915 APIENTRY
2916 DrvDisablePDEV(
2917 DHPDEV dhpdev);
2918
2919 VOID
2920 APIENTRY
2921 DrvDisableSurface(
2922 DHPDEV dhpdev);
2923
2924 #define DM_DEFAULT 0x00000001
2925 #define DM_MONOCHROME 0x00000002
2926
2927 ULONG
2928 APIENTRY
2929 DrvDitherColor(
2930 DHPDEV dhpdev,
2931 ULONG iMode,
2932 ULONG rgb,
2933 ULONG *pul);
2934
2935 ULONG
2936 APIENTRY
2937 DrvDrawEscape(
2938 SURFOBJ *pso,
2939 ULONG iEsc,
2940 CLIPOBJ *pco,
2941 RECTL *prcl,
2942 ULONG cjIn,
2943 PVOID pvIn);
2944
2945 WINBOOL
2946 APIENTRY
2947 DrvEnableDriver(
2948 ULONG iEngineVersion,
2949 ULONG cj,
2950 DRVENABLEDATA *pded);
2951
2952 DHPDEV
2953 APIENTRY
2954 DrvEnablePDEV(
2955 DEVMODEW *pdm,
2956 LPWSTR pwszLogAddress,
2957 ULONG cPat,
2958 HSURF *phsurfPatterns,
2959 ULONG cjCaps,
2960 ULONG *pdevcaps,
2961 ULONG cjDevInfo,
2962 DEVINFO *pdi,
2963 HDEV hdev,
2964 LPWSTR pwszDeviceName,
2965 HANDLE hDriver);
2966
2967 HSURF
2968 APIENTRY
2969 DrvEnableSurface(
2970 DHPDEV dhpdev);
2971
2972 /* DrvEndDoc.fl constants */
2973 #define ED_ABORTDOC 0x00000001
2974
2975 WINBOOL
2976 APIENTRY
2977 DrvEndDoc(
2978 SURFOBJ *pso,
2979 FLONG fl);
2980
2981 ULONG
2982 APIENTRY
2983 DrvEscape(
2984 SURFOBJ *pso,
2985 ULONG iEsc,
2986 ULONG cjIn,
2987 PVOID pvIn,
2988 ULONG cjOut,
2989 PVOID pvOut);
2990
2991 WINBOOL
2992 APIENTRY
2993 DrvFillPath(
2994 SURFOBJ *pso,
2995 PATHOBJ *ppo,
2996 CLIPOBJ *pco,
2997 BRUSHOBJ *pbo,
2998 POINTL *pptlBrushOrg,
2999 MIX mix,
3000 FLONG flOptions);
3001
3002 ULONG
3003 APIENTRY
3004 DrvFontManagement(
3005 SURFOBJ *pso,
3006 FONTOBJ *pfo,
3007 ULONG iMode,
3008 ULONG cjIn,
3009 PVOID pvIn,
3010 ULONG cjOut,
3011 PVOID pvOut);
3012
3013 VOID
3014 APIENTRY
3015 DrvFree(
3016 PVOID pv,
3017 ULONG_PTR id);
3018
3019 /* DrvGetGlyphMode return values */
3020 #define FO_HGLYPHS __MSABI_LONG(0)
3021 #define FO_GLYPHBITS __MSABI_LONG(1)
3022 #define FO_PATHOBJ __MSABI_LONG(2)
3023
3024 ULONG
3025 APIENTRY
3026 DrvGetGlyphMode(
3027 DHPDEV dhpdev,
3028 FONTOBJ *pfo);
3029
3030 ULONG
3031 APIENTRY
3032 DrvGetModes(
3033 HANDLE hDriver,
3034 ULONG cjSize,
3035 DEVMODEW *pdm);
3036
3037 PVOID
3038 APIENTRY
3039 DrvGetTrueTypeFile(
3040 ULONG_PTR iFile,
3041 ULONG *pcj);
3042
3043 WINBOOL
3044 APIENTRY
3045 DrvGradientFill(
3046 SURFOBJ *psoDest,
3047 CLIPOBJ *pco,
3048 XLATEOBJ *pxlo,
3049 TRIVERTEX *pVertex,
3050 ULONG nVertex,
3051 PVOID pMesh,
3052 ULONG nMesh,
3053 RECTL *prclExtents,
3054 POINTL *pptlDitherOrg,
3055 ULONG ulMode);
3056
3057 WINBOOL
3058 APIENTRY
3059 DrvIcmCheckBitmapBits(
3060 DHPDEV dhpdev,
3061 HANDLE hColorTransform,
3062 SURFOBJ *pso,
3063 PBYTE paResults);
3064
3065 HANDLE
3066 APIENTRY
3067 DrvIcmCreateColorTransform(
3068 DHPDEV dhpdev,
3069 LPLOGCOLORSPACEW pLogColorSpace,
3070 PVOID pvSourceProfile,
3071 ULONG cjSourceProfile,
3072 PVOID pvDestProfile,
3073 ULONG cjDestProfile,
3074 PVOID pvTargetProfile,
3075 ULONG cjTargetProfile,
3076 DWORD dwReserved);
3077
3078 WINBOOL
3079 APIENTRY
3080 DrvIcmDeleteColorTransform(
3081 DHPDEV dhpdev,
3082 HANDLE hcmXform);
3083
3084 /* DrvIcmSetDeviceGammaRamp.iFormat constants */
3085 #define IGRF_RGB_256BYTES 0x00000000
3086 #define IGRF_RGB_256WORDS 0x00000001
3087
3088 WINBOOL
3089 APIENTRY
3090 DrvIcmSetDeviceGammaRamp(
3091 DHPDEV dhpdev,
3092 ULONG iFormat,
3093 LPVOID lpRamp);
3094
3095 WINBOOL
3096 APIENTRY
3097 DrvLineTo(
3098 SURFOBJ *pso,
3099 CLIPOBJ *pco,
3100 BRUSHOBJ *pbo,
3101 LONG x1,
3102 LONG y1,
3103 LONG x2,
3104 LONG y2,
3105 RECTL *prclBounds,
3106 MIX mix);
3107
3108 ULONG_PTR
3109 APIENTRY
3110 DrvLoadFontFile(
3111 ULONG cFiles,
3112 ULONG_PTR *piFile,
3113 PVOID *ppvView,
3114 ULONG *pcjView,
3115 DESIGNVECTOR *pdv,
3116 ULONG ulLangID,
3117 ULONG ulFastCheckSum);
3118
3119 VOID
3120 APIENTRY
3121 DrvMovePointer(
3122 SURFOBJ *pso,
3123 LONG x,
3124 LONG y,
3125 RECTL *prcl);
3126
3127 WINBOOL
3128 APIENTRY
3129 DrvNextBand(
3130 SURFOBJ *pso,
3131 POINTL *pptl);
3132
3133 VOID
3134 APIENTRY
3135 DrvNotify(
3136 SURFOBJ *pso,
3137 ULONG iType,
3138 PVOID pvData);
3139
3140 WINBOOL
3141 APIENTRY
3142 DrvOffset(
3143 SURFOBJ *pso,
3144 LONG x,
3145 LONG y,
3146 FLONG flReserved);
3147
3148 WINBOOL
3149 APIENTRY
3150 DrvPaint(
3151 SURFOBJ *pso,
3152 CLIPOBJ *pco,
3153 BRUSHOBJ *pbo,
3154 POINTL *pptlBrushOrg,
3155 MIX mix);
3156
3157 WINBOOL
3158 APIENTRY
3159 DrvPlgBlt(
3160 SURFOBJ *psoTrg,
3161 SURFOBJ *psoSrc,
3162 SURFOBJ *psoMsk,
3163 CLIPOBJ *pco,
3164 XLATEOBJ *pxlo,
3165 COLORADJUSTMENT *pca,
3166 POINTL *pptlBrushOrg,
3167 POINTFIX *pptfx,
3168 RECTL *prcl,
3169 POINTL *pptl,
3170 ULONG iMode);
3171
3172 /* DrvQueryAdvanceWidths.iMode constants */
3173 #define QAW_GETWIDTHS 0
3174 #define QAW_GETEASYWIDTHS 1
3175
3176 WINBOOL
3177 APIENTRY
3178 DrvQueryAdvanceWidths(
3179 DHPDEV dhpdev,
3180 FONTOBJ *pfo,
3181 ULONG iMode,
3182 HGLYPH *phg,
3183 PVOID pvWidths,
3184 ULONG cGlyphs);
3185
3186 /* DrvQueryDeviceSupport.iType constants */
3187 #define QDS_CHECKJPEGFORMAT 0x00000000
3188 #define QDS_CHECKPNGFORMAT 0x00000001
3189
3190 WINBOOL
3191 APIENTRY
3192 DrvQueryDeviceSupport(
3193 SURFOBJ *pso,
3194 XLATEOBJ *pxlo,
3195 XFORMOBJ *pxo,
3196 ULONG iType,
3197 ULONG cjIn,
3198 PVOID pvIn,
3199 ULONG cjOut,
3200 PVOID pvOut);
3201
3202 /* DrvQueryDriverInfo.dwMode constants */
3203 #define DRVQUERY_USERMODE 0x00000001
3204
3205 WINBOOL
3206 APIENTRY
3207 DrvQueryDriverInfo(
3208 DWORD dwMode,
3209 PVOID pBuffer,
3210 DWORD cbBuf,
3211 PDWORD pcbNeeded);
3212
3213 PIFIMETRICS
3214 APIENTRY
3215 DrvQueryFont(
3216 DHPDEV dhpdev,
3217 ULONG_PTR iFile,
3218 ULONG iFace,
3219 ULONG_PTR *pid);
3220
3221 /* DrvQueryFontCaps.pulCaps constants */
3222 #define QC_OUTLINES 0x00000001
3223 #define QC_1BIT 0x00000002
3224 #define QC_4BIT 0x00000004
3225
3226 #define QC_FONTDRIVERCAPS (QC_OUTLINES | QC_1BIT | QC_4BIT)
3227
3228 LONG
3229 APIENTRY
3230 DrvQueryFontCaps(
3231 ULONG culCaps,
3232 ULONG *pulCaps);
3233
3234 /* DrvQueryFontData.iMode constants */
3235 #define QFD_GLYPHANDBITMAP __MSABI_LONG(1)
3236 #define QFD_GLYPHANDOUTLINE __MSABI_LONG(2)
3237 #define QFD_MAXEXTENTS __MSABI_LONG(3)
3238 #define QFD_TT_GLYPHANDBITMAP __MSABI_LONG(4)
3239 #define QFD_TT_GRAY1_BITMAP __MSABI_LONG(5)
3240 #define QFD_TT_GRAY2_BITMAP __MSABI_LONG(6)
3241 #define QFD_TT_GRAY4_BITMAP __MSABI_LONG(8)
3242 #define QFD_TT_GRAY8_BITMAP __MSABI_LONG(9)
3243
3244 #define QFD_TT_MONO_BITMAP QFD_TT_GRAY1_BITMAP
3245
3246 LONG
3247 APIENTRY
3248 DrvQueryFontData(
3249 DHPDEV dhpdev,
3250 FONTOBJ *pfo,
3251 ULONG iMode,
3252 HGLYPH hg,
3253 GLYPHDATA *pgd,
3254 PVOID pv,
3255 ULONG cjSize);
3256
3257 /* DrvQueryFontFile.ulMode constants */
3258 #define QFF_DESCRIPTION 0x00000001
3259 #define QFF_NUMFACES 0x00000002
3260
3261 LONG
3262 APIENTRY
3263 DrvQueryFontFile(
3264 ULONG_PTR iFile,
3265 ULONG ulMode,
3266 ULONG cjBuf,
3267 ULONG *pulBuf);
3268
3269 /* DrvQueryFontTree.iMode constants */
3270 #define QFT_UNICODE __MSABI_LONG(0)
3271 #define QFT_LIGATURES __MSABI_LONG(1)
3272 #define QFT_KERNPAIRS __MSABI_LONG(2)
3273 #define QFT_GLYPHSET __MSABI_LONG(3)
3274
3275 PVOID
3276 APIENTRY
3277 DrvQueryFontTree(
3278 DHPDEV dhpdev,
3279 ULONG_PTR iFile,
3280 ULONG iFace,
3281 ULONG iMode,
3282 ULONG_PTR *pid);
3283
3284 PFD_GLYPHATTR
3285 APIENTRY
3286 DrvQueryGlyphAttrs(
3287 FONTOBJ *pfo,
3288 ULONG iMode);
3289
3290 ULONG
3291 APIENTRY
3292 DrvQueryPerBandInfo(
3293 SURFOBJ *pso,
3294 PERBANDINFO *pbi);
3295
3296 /* DrvQueryTrueTypeOutline.bMetricsOnly constants */
3297 #define TTO_METRICS_ONLY 0x00000001
3298 #define TTO_QUBICS 0x00000002
3299 #define TTO_UNHINTED 0x00000004
3300
3301 LONG
3302 APIENTRY
3303 DrvQueryTrueTypeOutline(
3304 DHPDEV dhpdev,
3305 FONTOBJ *pfo,
3306 HGLYPH hglyph,
3307 WINBOOL bMetricsOnly,
3308 GLYPHDATA *pgldt,
3309 ULONG cjBuf,
3310 TTPOLYGONHEADER *ppoly);
3311
3312 LONG
3313 APIENTRY
3314 DrvQueryTrueTypeTable(
3315 ULONG_PTR iFile,
3316 ULONG ulFont,
3317 ULONG ulTag,
3318 PTRDIFF dpStart,
3319 ULONG cjBuf,
3320 BYTE *pjBuf,
3321 PBYTE *ppjTable,
3322 ULONG *pcjTable);
3323
3324 /* DrvRealizeBrush.iHatch constants */
3325 #define RB_DITHERCOLOR __MSABI_LONG(0x80000000)
3326
3327 #define HS_DDI_MAX 6
3328
3329 WINBOOL
3330 APIENTRY
3331 DrvRealizeBrush(
3332 BRUSHOBJ *pbo,
3333 SURFOBJ *psoTarget,
3334 SURFOBJ *psoPattern,
3335 SURFOBJ *psoMask,
3336 XLATEOBJ *pxlo,
3337 ULONG iHatch);
3338
3339 /* DrvResetDevice return values */
3340 #define DRD_SUCCESS 0
3341 #define DRD_ERROR 1
3342
3343 ULONG
3344 APIENTRY
3345 DrvResetDevice(
3346 DHPDEV dhpdev,
3347 PVOID Reserved);
3348
3349 WINBOOL
3350 APIENTRY
3351 DrvResetPDEV(
3352 DHPDEV dhpdevOld,
3353 DHPDEV dhpdevNew);
3354
3355 /* DrvSaveScreenBits.iMode constants */
3356 #define SS_SAVE 0x00000000
3357 #define SS_RESTORE 0x00000001
3358 #define SS_FREE 0x00000002
3359
3360 ULONG_PTR
3361 APIENTRY
3362 DrvSaveScreenBits(
3363 SURFOBJ *pso,
3364 ULONG iMode,
3365 ULONG_PTR ident,
3366 RECTL *prcl);
3367
3368 WINBOOL
3369 APIENTRY
3370 DrvSendPage(
3371 SURFOBJ *pso);
3372
3373 WINBOOL
3374 APIENTRY
3375 DrvSetPalette(
3376 DHPDEV dhpdev,
3377 PALOBJ *ppalo,
3378 FLONG fl,
3379 ULONG iStart,
3380 ULONG cColors);
3381
3382 WINBOOL
3383 APIENTRY
3384 DrvSetPixelFormat(
3385 SURFOBJ *pso,
3386 LONG iPixelFormat,
3387 HWND hwnd);
3388
3389 /* DrvSetPointerShape return values */
3390 #define SPS_ERROR 0x00000000
3391 #define SPS_DECLINE 0x00000001
3392 #define SPS_ACCEPT_NOEXCLUDE 0x00000002
3393 #define SPS_ACCEPT_EXCLUDE 0x00000003
3394 #define SPS_ACCEPT_SYNCHRONOUS 0x00000004
3395
3396 /* DrvSetPointerShape.fl constants */
3397 #define SPS_CHANGE __MSABI_LONG(0x00000001)
3398 #define SPS_ASYNCCHANGE __MSABI_LONG(0x00000002)
3399 #define SPS_ANIMATESTART __MSABI_LONG(0x00000004)
3400 #define SPS_ANIMATEUPDATE __MSABI_LONG(0x00000008)
3401 #define SPS_ALPHA __MSABI_LONG(0x00000010)
3402 #define SPS_LENGTHMASK __MSABI_LONG(0x00000F00)
3403 #define SPS_FREQMASK __MSABI_LONG(0x000FF000)
3404
3405 ULONG
3406 APIENTRY
3407 DrvSetPointerShape(
3408 SURFOBJ *pso,
3409 SURFOBJ *psoMask,
3410 SURFOBJ *psoColor,
3411 XLATEOBJ *pxlo,
3412 LONG xHot,
3413 LONG yHot,
3414 LONG x,
3415 LONG y,
3416 RECTL *prcl,
3417 FLONG fl);
3418
3419 WINBOOL
3420 APIENTRY
3421 DrvStartBanding(
3422 SURFOBJ *pso,
3423 POINTL *pptl);
3424
3425 WINBOOL
3426 APIENTRY
3427 DrvStartDoc(
3428 SURFOBJ *pso,
3429 LPWSTR pwszDocName,
3430 DWORD dwJobId);
3431
3432 WINBOOL
3433 APIENTRY
3434 DrvStartPage(
3435 SURFOBJ *pso);
3436
3437 WINBOOL
3438 APIENTRY
3439 DrvStretchBlt(
3440 SURFOBJ *psoDest,
3441 SURFOBJ *psoSrc,
3442 SURFOBJ *psoMask,
3443 CLIPOBJ *pco,
3444 XLATEOBJ *pxlo,
3445 COLORADJUSTMENT *pca,
3446 POINTL *pptlHTOrg,
3447 RECTL *prclDest,
3448 RECTL *prclSrc,
3449 POINTL *pptlMask,
3450 ULONG iMode);
3451
3452 WINBOOL
3453 APIENTRY
3454 DrvStretchBltROP(
3455 SURFOBJ *psoDest,
3456 SURFOBJ *psoSrc,
3457 SURFOBJ *psoMask,
3458 CLIPOBJ *pco,
3459 XLATEOBJ *pxlo,
3460 COLORADJUSTMENT *pca,
3461 POINTL *pptlHTOrg,
3462 RECTL *prclDest,
3463 RECTL *prclSrc,
3464 POINTL *pptlMask,
3465 ULONG iMode,
3466 BRUSHOBJ *pbo,
3467 DWORD rop4);
3468
3469 WINBOOL
3470 APIENTRY
3471 DrvStrokeAndFillPath(
3472 SURFOBJ *pso,
3473 PATHOBJ *ppo,
3474 CLIPOBJ *pco,
3475 XFORMOBJ *pxo,
3476 BRUSHOBJ *pboStroke,
3477 LINEATTRS *plineattrs,
3478 BRUSHOBJ *pboFill,
3479 POINTL *pptlBrushOrg,
3480 MIX mixFill,
3481 FLONG flOptions);
3482
3483 WINBOOL
3484 APIENTRY
3485 DrvStrokePath(
3486 SURFOBJ *pso,
3487 PATHOBJ *ppo,
3488 CLIPOBJ *pco,
3489 XFORMOBJ *pxo,
3490 BRUSHOBJ *pbo,
3491 POINTL *pptlBrushOrg,
3492 LINEATTRS *plineattrs,
3493 MIX mix);
3494
3495 WINBOOL
3496 APIENTRY
3497 DrvSwapBuffers(
3498 SURFOBJ *pso,
3499 WNDOBJ *pwo);
3500
3501 VOID
3502 APIENTRY
3503 DrvSynchronize(
3504 DHPDEV dhpdev,
3505 RECTL *prcl);
3506
3507 /* DrvSynchronizeSurface.fl constants */
3508 #define DSS_TIMER_EVENT 0x00000001
3509 #define DSS_FLUSH_EVENT 0x00000002
3510
3511 VOID
3512 APIENTRY
3513 DrvSynchronizeSurface(
3514 SURFOBJ *pso,
3515 RECTL *prcl,
3516 FLONG fl);
3517
3518 WINBOOL
3519 APIENTRY
3520 DrvTextOut(
3521 SURFOBJ *pso,
3522 STROBJ *pstro,
3523 FONTOBJ *pfo,
3524 CLIPOBJ *pco,
3525 RECTL *prclExtra,
3526 RECTL *prclOpaque,
3527 BRUSHOBJ *pboFore,
3528 BRUSHOBJ *pboOpaque,
3529 POINTL *pptlOrg,
3530 MIX mix);
3531
3532 WINBOOL
3533 APIENTRY
3534 DrvTransparentBlt(
3535 SURFOBJ *psoDst,
3536 SURFOBJ *psoSrc,
3537 CLIPOBJ *pco,
3538 XLATEOBJ *pxlo,
3539 RECTL *prclDst,
3540 RECTL *prclSrc,
3541 ULONG iTransColor,
3542 ULONG ulReserved);
3543
3544 WINBOOL
3545 APIENTRY
3546 DrvUnloadFontFile(
3547 ULONG_PTR iFile);
3548
3549 typedef WINBOOL
3550 (APIENTRY *PFN_DrvAlphaBlend)(
3551 SURFOBJ *psoDest,
3552 SURFOBJ *psoSrc,
3553 CLIPOBJ *pco,
3554 XLATEOBJ *pxlo,
3555 RECTL *prclDest,
3556 RECTL *prclSrc,
3557 BLENDOBJ *pBlendObj);
3558
3559 typedef WINBOOL
3560 (APIENTRY *PFN_DrvAssertMode)(
3561 DHPDEV dhpdev,
3562 WINBOOL bEnable);
3563
3564 typedef WINBOOL
3565 (APIENTRY *PFN_DrvBitBlt)(
3566 SURFOBJ *psoTrg,
3567 SURFOBJ *psoSrc,
3568 SURFOBJ *psoMask,
3569 CLIPOBJ *pco,
3570 XLATEOBJ *pxlo,
3571 RECTL *prclTrg,
3572 POINTL *pptlSrc,
3573 POINTL *pptlMask,
3574 BRUSHOBJ *pbo,
3575 POINTL *pptlBrush,
3576 ROP4 rop4);
3577
3578 typedef VOID
3579 (APIENTRY *PFN_DrvCompletePDEV)(
3580 DHPDEV dhpdev,
3581 HDEV hdev);
3582
3583 typedef WINBOOL
3584 (APIENTRY *PFN_DrvCopyBits)(
3585 SURFOBJ *psoDest,
3586 SURFOBJ *psoSrc,
3587 CLIPOBJ *pco,
3588 XLATEOBJ *pxlo,
3589 RECTL *prclDest,
3590 POINTL *pptlSrc);
3591
3592 typedef HBITMAP
3593 (APIENTRY *PFN_DrvCreateDeviceBitmap)(
3594 DHPDEV dhpdev,
3595 SIZEL sizl,
3596 ULONG iFormat);
3597
3598 typedef VOID
3599 (APIENTRY *PFN_DrvDeleteDeviceBitmap)(
3600 DHSURF dhsurf);
3601
3602 typedef HBITMAP
3603 (APIENTRY *PFN_DrvDeriveSurface)(
3604 DD_DIRECTDRAW_GLOBAL *pDirectDraw,
3605 DD_SURFACE_LOCAL *pSurface);
3606
3607 typedef LONG
3608 (APIENTRY *PFN_DrvDescribePixelFormat)(
3609 DHPDEV dhpdev,
3610 LONG iPixelFormat,
3611 ULONG cjpfd,
3612 PIXELFORMATDESCRIPTOR *ppfd);
3613
3614 typedef VOID
3615 (APIENTRY *PFN_DrvDestroyFont)(
3616 FONTOBJ *pfo);
3617
3618 typedef VOID
3619 (APIENTRY *PFN_DrvDisableDriver)(
3620 VOID);
3621
3622 typedef VOID
3623 (APIENTRY *PFN_DrvDisablePDEV)(
3624 DHPDEV dhpdev);
3625
3626 typedef VOID
3627 (APIENTRY *PFN_DrvDisableSurface)(
3628 DHPDEV dhpdev);
3629
3630 typedef ULONG
3631 (APIENTRY *PFN_DrvDitherColor)(
3632 DHPDEV dhpdev,
3633 ULONG iMode,
3634 ULONG rgb,
3635 ULONG *pul);
3636
3637 typedef ULONG
3638 (APIENTRY *PFN_DrvDrawEscape)(
3639 SURFOBJ *pso,
3640 ULONG iEsc,
3641 CLIPOBJ *pco,
3642 RECTL *prcl,
3643 ULONG cjIn,
3644 PVOID pvIn);
3645
3646 typedef WINBOOL
3647 (APIENTRY *PFN_DrvEnableDriver)(
3648 ULONG iEngineVersion,
3649 ULONG cj,
3650 DRVENABLEDATA *pded);
3651
3652 typedef DHPDEV
3653 (APIENTRY *PFN_DrvEnablePDEV)(
3654 DEVMODEW *pdm,
3655 LPWSTR pwszLogAddress,
3656 ULONG cPat,
3657 HSURF *phsurfPatterns,
3658 ULONG cjCaps,
3659 GDIINFO *pdevcaps,
3660 ULONG cjDevInfo,
3661 DEVINFO *pdi,
3662 HDEV hdev,
3663 LPWSTR pwszDeviceName,
3664 HANDLE hDriver);
3665
3666 typedef HSURF
3667 (APIENTRY *PFN_DrvEnableSurface)(
3668 DHPDEV dhpdev);
3669
3670 typedef WINBOOL
3671 (APIENTRY *PFN_DrvEndDoc)(
3672 SURFOBJ *pso,
3673 FLONG fl);
3674
3675 typedef ULONG
3676 (APIENTRY *PFN_DrvEscape)(
3677 SURFOBJ *pso,
3678 ULONG iEsc,
3679 ULONG cjIn,
3680 PVOID pvIn,
3681 ULONG cjOut,
3682 PVOID pvOut);
3683
3684 typedef WINBOOL
3685 (APIENTRY *PFN_DrvFillPath)(
3686 SURFOBJ *pso,
3687 PATHOBJ *ppo,
3688 CLIPOBJ *pco,
3689 BRUSHOBJ *pbo,
3690 POINTL *pptlBrushOrg,
3691 MIX mix,
3692 FLONG flOptions);
3693
3694 typedef ULONG
3695 (APIENTRY *PFN_DrvFontManagement)(
3696 SURFOBJ *pso,
3697 FONTOBJ *pfo,
3698 ULONG iMode,
3699 ULONG cjIn,
3700 PVOID pvIn,
3701 ULONG cjOut,
3702 PVOID pvOut);
3703
3704 typedef VOID
3705 (APIENTRY *PFN_DrvFree)(
3706 PVOID pv,
3707 ULONG_PTR id);
3708
3709 typedef ULONG
3710 (APIENTRY *PFN_DrvGetGlyphMode)(
3711 DHPDEV dhpdev,
3712 FONTOBJ *pfo);
3713
3714 typedef ULONG
3715 (APIENTRY *PFN_DrvGetModes)(
3716 HANDLE hDriver,
3717 ULONG cjSize,
3718 DEVMODEW *pdm);
3719
3720 typedef PVOID
3721 (APIENTRY *PFN_DrvGetTrueTypeFile)(
3722 ULONG_PTR iFile,
3723 ULONG *pcj);
3724
3725 typedef WINBOOL
3726 (APIENTRY *PFN_DrvGradientFill)(
3727 SURFOBJ *psoDest,
3728 CLIPOBJ *pco,
3729 XLATEOBJ *pxlo,
3730 TRIVERTEX *pVertex,
3731 ULONG nVertex,
3732 PVOID pMesh,
3733 ULONG nMesh,
3734 RECTL *prclExtents,
3735 POINTL *pptlDitherOrg,
3736 ULONG ulMode);
3737
3738 typedef WINBOOL
3739 (APIENTRY *PFN_DrvIcmCheckBitmapBits)(
3740 DHPDEV dhpdev,
3741 HANDLE hColorTransform,
3742 SURFOBJ *pso,
3743 PBYTE paResults);
3744
3745 typedef HANDLE
3746 (APIENTRY *PFN_DrvIcmCreateColorTransform)(
3747 DHPDEV dhpdev,
3748 LPLOGCOLORSPACEW pLogColorSpace,
3749 PVOID pvSourceProfile,
3750 ULONG cjSourceProfile,
3751 PVOID pvDestProfile,
3752 ULONG cjDestProfile,
3753 PVOID pvTargetProfile,
3754 ULONG cjTargetProfile,
3755 DWORD dwReserved);
3756
3757 typedef WINBOOL
3758 (APIENTRY *PFN_DrvIcmDeleteColorTransform)(
3759 DHPDEV dhpdev,
3760 HANDLE hcmXform);
3761
3762 typedef WINBOOL
3763 (APIENTRY *PFN_DrvIcmSetDeviceGammaRamp)(
3764 DHPDEV dhpdev,
3765 ULONG iFormat,
3766 LPVOID lpRamp);
3767
3768 typedef WINBOOL
3769 (APIENTRY *PFN_DrvLineTo)(
3770 SURFOBJ *pso,
3771 CLIPOBJ *pco,
3772 BRUSHOBJ *pbo,
3773 LONG x1,
3774 LONG y1,
3775 LONG x2,
3776 LONG y2,
3777 RECTL *prclBounds,
3778 MIX mix);
3779
3780 typedef ULONG_PTR
3781 (APIENTRY *PFN_DrvLoadFontFile)(
3782 ULONG cFiles,
3783 ULONG_PTR *piFile,
3784 PVOID *ppvView,
3785 ULONG *pcjView,
3786 DESIGNVECTOR *pdv,
3787 ULONG ulLangID,
3788 ULONG ulFastCheckSum);
3789
3790 typedef VOID
3791 (APIENTRY *PFN_DrvMovePointer)(
3792 SURFOBJ *pso,
3793 LONG x,
3794 LONG y,
3795 RECTL *prcl);
3796
3797 typedef WINBOOL
3798 (APIENTRY *PFN_DrvNextBand)(
3799 SURFOBJ *pso,
3800 POINTL *pptl);
3801
3802 typedef VOID
3803 (APIENTRY *PFN_DrvNotify)(
3804 SURFOBJ *pso,
3805 ULONG iType,
3806 PVOID pvData);
3807
3808 typedef WINBOOL
3809 (APIENTRY *PFN_DrvOffset)(
3810 SURFOBJ *pso,
3811 LONG x,
3812 LONG y,
3813 FLONG flReserved);
3814
3815 typedef WINBOOL
3816 (APIENTRY *PFN_DrvPaint)(
3817 SURFOBJ *pso,
3818 CLIPOBJ *pco,
3819 BRUSHOBJ *pbo,
3820 POINTL *pptlBrushOrg,
3821 MIX mix);
3822
3823 typedef WINBOOL
3824 (APIENTRY *PFN_DrvPlgBlt)(
3825 SURFOBJ *psoTrg,
3826 SURFOBJ *psoSrc,
3827 SURFOBJ *psoMsk,
3828 CLIPOBJ *pco,
3829 XLATEOBJ *pxlo,
3830 COLORADJUSTMENT *pca,
3831 POINTL *pptlBrushOrg,
3832 POINTFIX *pptfx,
3833 RECTL *prcl,
3834 POINTL *pptl,
3835 ULONG iMode);
3836
3837 typedef WINBOOL
3838 (APIENTRY *PFN_DrvQueryAdvanceWidths)(
3839 DHPDEV dhpdev,
3840 FONTOBJ *pfo,
3841 ULONG iMode,
3842 HGLYPH *phg,
3843 PVOID pvWidths,
3844 ULONG cGlyphs);
3845
3846 typedef WINBOOL
3847 (APIENTRY *PFN_DrvQueryDeviceSupport)(
3848 SURFOBJ *pso,
3849 XLATEOBJ *pxlo,
3850 XFORMOBJ *pxo,
3851 ULONG iType,
3852 ULONG cjIn,
3853 PVOID pvIn,
3854 ULONG cjOut,
3855 PVOID pvOut);
3856
3857 typedef WINBOOL
3858 (APIENTRY *PFN_DrvQueryDriverInfo)(
3859 DWORD dwMode,
3860 PVOID pBuffer,
3861 DWORD cbBuf,
3862 PDWORD pcbNeeded);
3863
3864 typedef PIFIMETRICS
3865 (APIENTRY *PFN_DrvQueryFont)(
3866 DHPDEV dhpdev,
3867 ULONG_PTR iFile,
3868 ULONG iFace,
3869 ULONG_PTR *pid);
3870
3871 typedef LONG
3872 (APIENTRY *PFN_DrvQueryFontCaps)(
3873 ULONG culCaps,
3874 ULONG *pulCaps);
3875
3876 typedef LONG
3877 (APIENTRY *PFN_DrvQueryFontData)(
3878 DHPDEV dhpdev,
3879 FONTOBJ *pfo,
3880 ULONG iMode,
3881 HGLYPH hg,
3882 GLYPHDATA *pgd,
3883 PVOID pv,
3884 ULONG cjSize);
3885
3886 typedef LONG
3887 (APIENTRY *PFN_DrvQueryFontFile)(
3888 ULONG_PTR iFile,
3889 ULONG ulMode,
3890 ULONG cjBuf,
3891 ULONG *pulBuf);
3892
3893 typedef PVOID
3894 (APIENTRY *PFN_DrvQueryFontTree)(
3895 DHPDEV dhpdev,
3896 ULONG_PTR iFile,
3897 ULONG iFace,
3898 ULONG iMode,
3899 ULONG_PTR *pid);
3900
3901 typedef PFD_GLYPHATTR
3902 (APIENTRY *PFN_DrvQueryGlyphAttrs)(
3903 FONTOBJ *pfo,
3904 ULONG iMode);
3905
3906 typedef ULONG
3907 (APIENTRY *PFN_DrvQueryPerBandInfo)(
3908 SURFOBJ *pso,
3909 PERBANDINFO *pbi);
3910
3911 typedef LONG
3912 (APIENTRY *PFN_DrvQueryTrueTypeOutline)(
3913 DHPDEV dhpdev,
3914 FONTOBJ *pfo,
3915 HGLYPH hglyph,
3916 WINBOOL bMetricsOnly,
3917 GLYPHDATA *pgldt,
3918 ULONG cjBuf,
3919 TTPOLYGONHEADER *ppoly);
3920
3921 typedef LONG
3922 (APIENTRY *PFN_DrvQueryTrueTypeTable)(
3923 ULONG_PTR iFile,
3924 ULONG ulFont,
3925 ULONG ulTag,
3926 PTRDIFF dpStart,
3927 ULONG cjBuf,
3928 BYTE *pjBuf,
3929 PBYTE *ppjTable,
3930 ULONG *pcjTable);
3931
3932 typedef WINBOOL
3933 (APIENTRY *PFN_DrvRealizeBrush)(
3934 BRUSHOBJ *pbo,
3935 SURFOBJ *psoTarget,
3936 SURFOBJ *psoPattern,
3937 SURFOBJ *psoMask,
3938 XLATEOBJ *pxlo,
3939 ULONG iHatch);
3940
3941 typedef ULONG
3942 (APIENTRY *PFN_DrvResetDevice)(
3943 DHPDEV dhpdev,
3944 PVOID Reserved);
3945
3946 typedef WINBOOL
3947 (APIENTRY *PFN_DrvResetPDEV)(
3948 DHPDEV dhpdevOld,
3949 DHPDEV dhpdevNew);
3950
3951 typedef ULONG_PTR
3952 (APIENTRY *PFN_DrvSaveScreenBits)(
3953 SURFOBJ *pso,
3954 ULONG iMode,
3955 ULONG_PTR ident,
3956 RECTL *prcl);
3957
3958 typedef WINBOOL
3959 (APIENTRY *PFN_DrvSendPage)(
3960 SURFOBJ *pso);
3961
3962 typedef WINBOOL
3963 (APIENTRY *PFN_DrvSetPalette)(
3964 DHPDEV dhpdev,
3965 PALOBJ *ppalo,
3966 FLONG fl,
3967 ULONG iStart,
3968 ULONG cColors);
3969
3970 typedef WINBOOL
3971 (APIENTRY *PFN_DrvSetPixelFormat)(
3972 SURFOBJ *pso,
3973 LONG iPixelFormat,
3974 HWND hwnd);
3975
3976 typedef ULONG
3977 (APIENTRY *PFN_DrvSetPointerShape)(
3978 SURFOBJ *pso,
3979 SURFOBJ *psoMask,
3980 SURFOBJ *psoColor,
3981 XLATEOBJ *pxlo,
3982 LONG xHot,
3983 LONG yHot,
3984 LONG x,
3985 LONG y,
3986 RECTL *prcl,
3987 FLONG fl);
3988
3989 typedef WINBOOL
3990 (APIENTRY *PFN_DrvStartBanding)(
3991 SURFOBJ *pso,
3992 POINTL *pptl);
3993
3994 typedef WINBOOL
3995 (APIENTRY *PFN_DrvStartDoc)(
3996 SURFOBJ *pso,
3997 LPWSTR pwszDocName,
3998 DWORD dwJobId);
3999
4000 typedef WINBOOL
4001 (APIENTRY *PFN_DrvStartPage)(
4002 SURFOBJ *pso);
4003
4004 typedef WINBOOL
4005 (APIENTRY *PFN_DrvStretchBlt)(
4006 SURFOBJ *psoDest,
4007 SURFOBJ *psoSrc,
4008 SURFOBJ *psoMask,
4009 CLIPOBJ *pco,
4010 XLATEOBJ *pxlo,
4011 COLORADJUSTMENT *pca,
4012 POINTL *pptlHTOrg,
4013 RECTL *prclDest,
4014 RECTL *prclSrc,
4015 POINTL *pptlMask,
4016 ULONG iMode);
4017
4018 typedef WINBOOL
4019 (APIENTRY *PFN_DrvStretchBltROP)(
4020 SURFOBJ *psoDest,
4021 SURFOBJ *psoSrc,
4022 SURFOBJ *psoMask,
4023 CLIPOBJ *pco,
4024 XLATEOBJ *pxlo,
4025 COLORADJUSTMENT *pca,
4026 POINTL *pptlHTOrg,
4027 RECTL *prclDest,
4028 RECTL *prclSrc,
4029 POINTL *pptlMask,
4030 ULONG iMode,
4031 BRUSHOBJ *pbo,
4032 DWORD rop4);
4033
4034 typedef WINBOOL
4035 (APIENTRY *PFN_DrvStrokeAndFillPath)(
4036 SURFOBJ *pso,
4037 PATHOBJ *ppo,
4038 CLIPOBJ *pco,
4039 XFORMOBJ *pxo,
4040 BRUSHOBJ *pboStroke,
4041 LINEATTRS *plineattrs,
4042 BRUSHOBJ *pboFill,
4043 POINTL *pptlBrushOrg,
4044 MIX mixFill,
4045 FLONG flOptions);
4046
4047 typedef WINBOOL
4048 (APIENTRY *PFN_DrvStrokePath)(
4049 SURFOBJ *pso,
4050 PATHOBJ *ppo,
4051 CLIPOBJ *pco,
4052 XFORMOBJ *pxo,
4053 BRUSHOBJ *pbo,
4054 POINTL *pptlBrushOrg,
4055 LINEATTRS *plineattrs,
4056 MIX mix);
4057
4058 typedef WINBOOL
4059 (APIENTRY *PFN_DrvSwapBuffers)(
4060 SURFOBJ *pso,
4061 WNDOBJ *pwo);
4062
4063 typedef VOID
4064 (APIENTRY *PFN_DrvSynchronize)(
4065 DHPDEV dhpdev,
4066 RECTL *prcl);
4067
4068 typedef VOID
4069 (APIENTRY *PFN_DrvSynchronizeSurface)(
4070 SURFOBJ *pso,
4071 RECTL *prcl,
4072 FLONG fl);
4073
4074 typedef WINBOOL
4075 (APIENTRY *PFN_DrvTextOut)(
4076 SURFOBJ *pso,
4077 STROBJ *pstro,
4078 FONTOBJ *pfo,
4079 CLIPOBJ *pco,
4080 RECTL *prclExtra,
4081 RECTL *prclOpaque,
4082 BRUSHOBJ *pboFore,
4083 BRUSHOBJ *pboOpaque,
4084 POINTL *pptlOrg,
4085 MIX mix);
4086
4087 typedef WINBOOL
4088 (APIENTRY *PFN_DrvTransparentBlt)(
4089 SURFOBJ *psoDst,
4090 SURFOBJ *psoSrc,
4091 CLIPOBJ *pco,
4092 XLATEOBJ *pxlo,
4093 RECTL *prclDst,
4094 RECTL *prclSrc,
4095 ULONG iTransColor,
4096 ULONG ulReserved);
4097
4098 typedef WINBOOL
4099 (APIENTRY *PFN_DrvUnloadFontFile)(
4100 ULONG_PTR iFile);
4101
4102
4103 WIN32KAPI
4104 VOID
4105 APIENTRY
4106 DrvDisableDirectDraw(
4107 DHPDEV dhpdev);
4108
4109 typedef VOID
4110 (APIENTRY *PFN_DrvDisableDirectDraw)(
4111 DHPDEV dhpdev);
4112
4113 WIN32KAPI
4114 WINBOOL
4115 APIENTRY
4116 DrvEnableDirectDraw(
4117 DHPDEV dhpdev,
4118 DD_CALLBACKS *pCallBacks,
4119 DD_SURFACECALLBACKS *pSurfaceCallBacks,
4120 DD_PALETTECALLBACKS *pPaletteCallBacks);
4121
4122 typedef WINBOOL
4123 (APIENTRY *PFN_DrvEnableDirectDraw)(
4124 DHPDEV dhpdev,
4125 DD_CALLBACKS *pCallBacks,
4126 DD_SURFACECALLBACKS *pSurfaceCallBacks,
4127 DD_PALETTECALLBACKS *pPaletteCallBacks);
4128
4129 WIN32KAPI
4130 WINBOOL
4131 APIENTRY
4132 DrvGetDirectDrawInfo(
4133 DHPDEV dhpdev,
4134 DD_HALINFO *pHalInfo,
4135 DWORD *pdwNumHeaps,
4136 VIDEOMEMORY *pvmList,
4137 DWORD *pdwNumFourCCCodes,
4138 DWORD *pdwFourCC);
4139
4140 typedef WINBOOL
4141 (APIENTRY *PFN_DrvGetDirectDrawInfo)(
4142 DHPDEV dhpdev,
4143 DD_HALINFO *pHalInfo,
4144 DWORD *pdwNumHeaps,
4145 VIDEOMEMORY *pvmList,
4146 DWORD *pdwNumFourCCCodes,
4147 DWORD *pdwFourCC);
4148
4149 //DECLSPEC_DEPRECATED_DDK
4150 WINBOOL
4151 APIENTRY
4152 DrvQuerySpoolType(
4153 DHPDEV dhpdev,
4154 LPWSTR pwchType);
4155
4156 typedef WINBOOL
4157 (APIENTRY *PFN_DrvQuerySpoolType)(
4158 DHPDEV dhpdev,
4159 LPWSTR pwchType);
4160
4161
4162 #ifdef __cplusplus
4163 }
4164 #endif
4165
4166 #endif /* defined __VIDEO_H__ */
4167
4168 #endif /* _WINDDI_ */