3 * @copy 2012 MinGW.org project
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
24 /* Created by Casper S. Hornstrup <chorns@users.sourceforge.net> */
27 #pragma GCC system_header
31 * GDI device driver interface
35 #error video.h cannot be included with winddi.h
45 #ifndef __DD_INCLUDED__
46 /* FIXME: Some DirectDraw structures not added yet */
47 typedef ULONG_PTR FLATPTR;
48 typedef struct _DD_SURFACECALLBACKS {
49 } DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS;
50 typedef struct _DD_PALETTECALLBACKS {
51 } DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS;
52 typedef struct _DD_CALLBACKS {
53 } DD_CALLBACKS, *PDD_CALLBACKS;
54 typedef struct _DD_HALINFO {
55 } DD_HALINFO, *PDD_HALINFO;
56 typedef struct _VIDEOMEMORY {
57 } VIDEOMEMORY, *LPVIDEOMEMORY;
58 typedef struct _DD_DIRECTDRAW_GLOBAL {
59 } DD_DIRECTDRAW_GLOBAL, *LPDD_DIRECTDRAW_GLOBAL;
60 typedef struct _DD_SURFACE_LOCAL {
61 } DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL, *LPDD_SURFACE_LOCAL;
64 #ifndef __DDRAWI_INCLUDED__
65 typedef PVOID LPVIDMEM;
68 #if !defined(__DD_INCLUDED__) && !defined(__DDRAWI_INCLUDED__)
69 typedef struct _DDSCAPS {
71 typedef struct _DDSCAPSEX {
72 } DDSCAPSEX, *PDDSCAPSEX;
73 typedef PVOID LPVMEMHEAP;
77 #define WIN32KAPI DECL_EXPORT
79 #define WIN32KAPI DECL_IMPORT
82 #define DDI_DRIVER_VERSION_NT4 0x00020000
83 #define DDI_DRIVER_VERSION_SP3 0x00020003
84 #define DDI_DRIVER_VERSION_NT5 0x00030000
85 #define DDI_DRIVER_VERSION_NT5_01 0x00030100
87 #define GDI_DRIVER_VERSION 0x4000
103 typedef ULONG_PTR HFF;
104 typedef ULONG_PTR HFC;
106 typedef LONG PTRDIFF;
107 typedef PTRDIFF *PPTRDIFF;
112 typedef ULONG HGLYPH;
113 typedef HGLYPH *PHGLYPH;
115 typedef LONG_PTR (DDKAPI *PFN)();
118 DECLARE_HANDLE(HDEV);
119 DECLARE_HANDLE(HSURF);
120 DECLARE_HANDLE(DHSURF);
121 DECLARE_HANDLE(DHPDEV);
122 DECLARE_HANDLE(HDRVOBJ);
125 #define GDI_DRIVER_VERSION 0x4000
127 typedef struct _ENG_EVENT *PEVENT;
129 #define OPENGL_CMD 4352
130 #define OPENGL_GETINFO 4353
131 #define WNDOBJ_SETUP 4354
133 #define FD_ERROR 0xFFFFFFFF
134 #define DDI_ERROR 0xFFFFFFFF
136 #define HFF_INVALID ((HFF) 0)
137 #define HFC_INVALID ((HFC) 0)
138 #define HGLYPH_INVALID ((HGLYPH) -1)
140 #define FP_ALTERNATEMODE 1
141 #define FP_WINDINGMODE 2
143 #define DN_ACCELERATION_LEVEL 1
144 #define DN_DEVICE_ORIGIN 2
145 #define DN_SLEEP_MODE 3
146 #define DN_DRAWING_BEGIN 4
150 #define DCR_HALFTONE 2
152 #define GX_IDENTITY 0
157 typedef struct _POINTE {
162 typedef union _FLOAT_LONG {
165 } FLOAT_LONG, *PFLOAT_LONG;
167 typedef struct _POINTFIX {
170 } POINTFIX, *PPOINTFIX;
172 typedef struct _RECTFX {
179 typedef struct _POINTQF {
182 } POINTQF, *PPOINTQF;
185 typedef struct _BLENDOBJ {
186 BLENDFUNCTION BlendFunction;
187 } BLENDOBJ,*PBLENDOBJ;
189 /* BRUSHOBJ.flColorType */
190 #define BR_DEVICE_ICM 0x01
191 #define BR_HOST_ICM 0x02
192 #define BR_CMYKCOLOR 0x04
193 #define BR_ORIGCOLOR 0x08
195 typedef struct _BRUSHOBJ {
201 typedef struct _CIECHROMA {
207 typedef struct _RUN {
212 typedef struct _CLIPLINE {
218 } CLIPLINE, *PCLIPLINE;
220 /* CLIPOBJ.iDComplexity constants */
225 /* CLIPOBJ.iFComplexity constants */
230 /* CLIPOBJ.iMode constants */
231 #define TC_RECTANGLES 0
234 /* CLIPOBJ.fjOptions constants */
235 #define OC_BANK_CLIP 1
237 typedef struct _CLIPOBJ {
246 typedef struct _COLORINFO {
253 CIECHROMA AlignmentWhite;
257 LDECI4 MagentaInCyanDye;
258 LDECI4 YellowInCyanDye;
259 LDECI4 CyanInMagentaDye;
260 LDECI4 YellowInMagentaDye;
261 LDECI4 CyanInYellowDye;
262 LDECI4 MagentaInYellowDye;
263 } COLORINFO, *PCOLORINFO;
265 /* DEVHTADJDATA.DeviceFlags constants */
266 #define DEVHTADJF_COLOR_DEVICE 0x00000001
267 #define DEVHTADJF_ADDITIVE_DEVICE 0x00000002
269 typedef struct _DEVHTINFO {
274 } DEVHTINFO, *PDEVHTINFO;
276 typedef struct _DEVHTADJDATA {
280 PDEVHTINFO pDefHTInfo;
281 PDEVHTINFO pAdjHTInfo;
282 } DEVHTADJDATA, *PDEVHTADJDATA;
284 /* DEVINFO.flGraphicsCaps flags */
285 #define GCAPS_BEZIERS 0x00000001
286 #define GCAPS_GEOMETRICWIDE 0x00000002
287 #define GCAPS_ALTERNATEFILL 0x00000004
288 #define GCAPS_WINDINGFILL 0x00000008
289 #define GCAPS_HALFTONE 0x00000010
290 #define GCAPS_COLOR_DITHER 0x00000020
291 #define GCAPS_HORIZSTRIKE 0x00000040
292 #define GCAPS_VERTSTRIKE 0x00000080
293 #define GCAPS_OPAQUERECT 0x00000100
294 #define GCAPS_VECTORFONT 0x00000200
295 #define GCAPS_MONO_DITHER 0x00000400
296 #define GCAPS_ASYNCCHANGE 0x00000800
297 #define GCAPS_ASYNCMOVE 0x00001000
298 #define GCAPS_DONTJOURNAL 0x00002000
299 #define GCAPS_DIRECTDRAW 0x00004000
300 #define GCAPS_ARBRUSHOPAQUE 0x00008000
301 #define GCAPS_PANNING 0x00010000
302 #define GCAPS_HIGHRESTEXT 0x00040000
303 #define GCAPS_PALMANAGED 0x00080000
304 #define GCAPS_DITHERONREALIZE 0x00200000
305 #define GCAPS_NO64BITMEMACCESS 0x00400000
306 #define GCAPS_FORCEDITHER 0x00800000
307 #define GCAPS_GRAY16 0x01000000
308 #define GCAPS_ICM 0x02000000
309 #define GCAPS_CMYKCOLOR 0x04000000
310 #define GCAPS_LAYERED 0x08000000
311 #define GCAPS_ARBRUSHTEXT 0x10000000
312 #define GCAPS_SCREENPRECISION 0x20000000
313 #define GCAPS_FONT_RASTERIZER 0x40000000
314 #define GCAPS_NUP 0x80000000
316 /* DEVINFO.iDitherFormat constants */
328 /* DEVINFO.flGraphicsCaps2 flags */
329 #define GCAPS2_JPEGSRC 0x00000001
330 #define GCAPS2_xxxx 0x00000002
331 #define GCAPS2_PNGSRC 0x00000008
332 #define GCAPS2_CHANGEGAMMARAMP 0x00000010
333 #define GCAPS2_ALPHACURSOR 0x00000020
334 #define GCAPS2_SYNCFLUSH 0x00000040
335 #define GCAPS2_SYNCTIMER 0x00000080
336 #define GCAPS2_ICD_MULTIMON 0x00000100
337 #define GCAPS2_MOUSETRAILS 0x00000200
338 #define GCAPS2_RESERVED1 0x00000400
340 typedef struct _DEVINFO {
341 FLONG flGraphicsCaps;
342 LOGFONTW lfDefaultFont;
343 LOGFONTW lfAnsiVarFont;
344 LOGFONTW lfAnsiFixFont;
349 HPALETTE hpalDefault;
350 FLONG flGraphicsCaps2;
351 } DEVINFO, *PDEVINFO;
353 typedef struct _DRIVEROBJ *PDRIVEROBJ;
355 typedef BOOL DDKAPI CALLBACK
357 /*IN*/ PDRIVEROBJ pDriverObj);
359 typedef struct _DRIVEROBJ {
361 FREEOBJPROC pFreeProc;
366 /* DRVFN.iFunc constants */
367 #define INDEX_DrvEnablePDEV 0L
368 #define INDEX_DrvCompletePDEV 1L
369 #define INDEX_DrvDisablePDEV 2L
370 #define INDEX_DrvEnableSurface 3L
371 #define INDEX_DrvDisableSurface 4L
372 #define INDEX_DrvAssertMode 5L
373 #define INDEX_DrvOffset 6L
374 #define INDEX_DrvResetPDEV 7L
375 #define INDEX_DrvDisableDriver 8L
376 #define INDEX_DrvCreateDeviceBitmap 10L
377 #define INDEX_DrvDeleteDeviceBitmap 11L
378 #define INDEX_DrvRealizeBrush 12L
379 #define INDEX_DrvDitherColor 13L
380 #define INDEX_DrvStrokePath 14L
381 #define INDEX_DrvFillPath 15L
382 #define INDEX_DrvStrokeAndFillPath 16L
383 #define INDEX_DrvPaint 17L
384 #define INDEX_DrvBitBlt 18L
385 #define INDEX_DrvCopyBits 19L
386 #define INDEX_DrvStretchBlt 20L
387 #define INDEX_DrvSetPalette 22L
388 #define INDEX_DrvTextOut 23L
389 #define INDEX_DrvEscape 24L
390 #define INDEX_DrvDrawEscape 25L
391 #define INDEX_DrvQueryFont 26L
392 #define INDEX_DrvQueryFontTree 27L
393 #define INDEX_DrvQueryFontData 28L
394 #define INDEX_DrvSetPointerShape 29L
395 #define INDEX_DrvMovePointer 30L
396 #define INDEX_DrvLineTo 31L
397 #define INDEX_DrvSendPage 32L
398 #define INDEX_DrvStartPage 33L
399 #define INDEX_DrvEndDoc 34L
400 #define INDEX_DrvStartDoc 35L
401 #define INDEX_DrvGetGlyphMode 37L
402 #define INDEX_DrvSynchronize 38L
403 #define INDEX_DrvSaveScreenBits 40L
404 #define INDEX_DrvGetModes 41L
405 #define INDEX_DrvFree 42L
406 #define INDEX_DrvDestroyFont 43L
407 #define INDEX_DrvQueryFontCaps 44L
408 #define INDEX_DrvLoadFontFile 45L
409 #define INDEX_DrvUnloadFontFile 46L
410 #define INDEX_DrvFontManagement 47L
411 #define INDEX_DrvQueryTrueTypeTable 48L
412 #define INDEX_DrvQueryTrueTypeOutline 49L
413 #define INDEX_DrvGetTrueTypeFile 50L
414 #define INDEX_DrvQueryFontFile 51L
415 #define INDEX_DrvMovePanning 52L
416 #define INDEX_DrvQueryAdvanceWidths 53L
417 #define INDEX_DrvSetPixelFormat 54L
418 #define INDEX_DrvDescribePixelFormat 55L
419 #define INDEX_DrvSwapBuffers 56L
420 #define INDEX_DrvStartBanding 57L
421 #define INDEX_DrvNextBand 58L
422 #define INDEX_DrvGetDirectDrawInfo 59L
423 #define INDEX_DrvEnableDirectDraw 60L
424 #define INDEX_DrvDisableDirectDraw 61L
425 #define INDEX_DrvQuerySpoolType 62L
426 #define INDEX_DrvIcmCreateColorTransform 64L
427 #define INDEX_DrvIcmDeleteColorTransform 65L
428 #define INDEX_DrvIcmCheckBitmapBits 66L
429 #define INDEX_DrvIcmSetDeviceGammaRamp 67L
430 #define INDEX_DrvGradientFill 68L
431 #define INDEX_DrvStretchBltROP 69L
432 #define INDEX_DrvPlgBlt 70L
433 #define INDEX_DrvAlphaBlend 71L
434 #define INDEX_DrvSynthesizeFont 72L
435 #define INDEX_DrvGetSynthesizedFontFiles 73L
436 #define INDEX_DrvTransparentBlt 74L
437 #define INDEX_DrvQueryPerBandInfo 75L
438 #define INDEX_DrvQueryDeviceSupport 76L
439 #define INDEX_DrvReserved1 77L
440 #define INDEX_DrvReserved2 78L
441 #define INDEX_DrvReserved3 79L
442 #define INDEX_DrvReserved4 80L
443 #define INDEX_DrvReserved5 81L
444 #define INDEX_DrvReserved6 82L
445 #define INDEX_DrvReserved7 83L
446 #define INDEX_DrvReserved8 84L
447 #define INDEX_DrvDeriveSurface 85L
448 #define INDEX_DrvQueryGlyphAttrs 86L
449 #define INDEX_DrvNotify 87L
450 #define INDEX_DrvSynchronizeSurface 88L
451 #define INDEX_DrvResetDevice 89L
452 #define INDEX_DrvReserved9 90L
453 #define INDEX_DrvReserved10 91L
454 #define INDEX_DrvReserved11 92L
455 #define INDEX_LAST 93L
457 typedef struct _DRVFN {
462 /* DRVENABLEDATA.iDriverVersion constants */
463 #define DDI_DRIVER_VERSION_NT4 0x00020000
464 #define DDI_DRIVER_VERSION_SP3 0x00020003
465 #define DDI_DRIVER_VERSION_NT5 0x00030000
466 #define DDI_DRIVER_VERSION_NT5_01 0x00030100
468 typedef struct _DRVENABLEDATA {
469 ULONG iDriverVersion;
472 } DRVENABLEDATA, *PDRVENABLEDATA;
474 DECLARE_HANDLE(HSEMAPHORE);
480 PBYTE pvCurrentRecord;
481 } EMFINFO, *PEMFINFO;
483 typedef struct _ENGSAFESEMAPHORE {
488 typedef struct _ENG_TIME_FIELDS {
495 USHORT usMilliseconds;
497 } ENG_TIME_FIELDS, *PENG_TIME_FIELDS;
499 typedef struct _ENUMRECTS {
504 typedef struct _FD_XFORM {
509 } FD_XFORM, *PFD_XFORM;
511 /* FD_DEVICEMETRICS.flRealizedType constants */
512 #define FDM_TYPE_BM_SIDE_CONST 0x00000001
513 #define FDM_TYPE_MAXEXT_EQUAL_BM_SIDE 0x00000002
514 #define FDM_TYPE_CHAR_INC_EQUAL_BM_BASE 0x00000004
515 #define FDM_TYPE_ZERO_BEARINGS 0x00000008
516 #define FDM_TYPE_CONST_BEARINGS 0x00000010
518 typedef struct _FD_DEVICEMETRICS {
519 FLONG flRealizedType;
525 POINTL ptlUnderline1;
527 POINTL ptlULThickness;
528 POINTL ptlSOThickness;
532 FD_XFORM fdxQuantized;
533 LONG lNonLinearExtLeading;
534 LONG lNonLinearIntLeading;
535 LONG lNonLinearMaxCharWidth;
536 LONG lNonLinearAvgCharWidth;
541 } FD_DEVICEMETRICS, *PFD_DEVICEMETRICS;
543 /* FD_GLYPHATTR.iMode constants */
544 #define FO_ATTR_MODE_ROTATE 1
546 typedef struct _FD_GLYPHATTR {
551 } FD_GLYPHATTR, *PFD_GLYPHATTR;
553 /* FD_GLYPHSET.flAccel */
554 #define GS_UNICODE_HANDLES 0x00000001
555 #define GS_8BIT_HANDLES 0x00000002
556 #define GS_16BIT_HANDLES 0x00000004
558 typedef struct _WCRUN {
564 typedef struct _FD_GLYPHSET {
567 ULONG cGlyphsSupported;
570 } FD_GLYPHSET, *PFD_GLYPHSET;
572 typedef struct _FD_KERNINGPAIR {
578 typedef struct _FLOATOBJ
582 } FLOATOBJ, *PFLOATOBJ;
584 typedef struct _FLOATOBJ_XFORM {
591 } FLOATOBJ_XFORM, *PFLOATOBJ_XFORM, FAR *LPFLOATOBJ_XFORM;
593 /* FONTDIFF.fsSelection */
594 #define FM_SEL_ITALIC 0x0001
595 #define FM_SEL_UNDERSCORE 0x0002
596 #define FM_SEL_NEGATIVE 0x0004
597 #define FM_SEL_OUTLINED 0x0008
598 #define FM_SEL_STRIKEOUT 0x0010
599 #define FM_SEL_BOLD 0x0020
600 #define FM_SEL_REGULAR 0x0040
602 typedef struct _FONTDIFF {
609 FWORD fwdAveCharWidth;
614 typedef struct _FONTSIM {
617 PTRDIFF dpBoldItalic;
620 /* FONTINFO.flCaps constants */
621 #define FO_DEVICE_FONT 1L
622 #define FO_OUTLINE_CAPABLE 2L
624 typedef struct _FONTINFO {
627 ULONG cGlyphsSupported;
632 } FONTINFO, *PFONTINFO;
634 /* FONTOBJ.flFontType constants */
635 #define FO_TYPE_RASTER RASTER_FONTTYPE
636 #define FO_TYPE_DEVICE DEVICE_FONTTYPE
637 #define FO_TYPE_TRUETYPE TRUETYPE_FONTTYPE
638 #define FO_TYPE_OPENTYPE OPENTYPE_FONTTYPE
640 #define FO_SIM_BOLD 0x00002000
641 #define FO_SIM_ITALIC 0x00004000
642 #define FO_EM_HEIGHT 0x00008000
643 #define FO_GRAY16 0x00010000
644 #define FO_NOGRAY16 0x00020000
645 #define FO_NOHINTS 0x00040000
646 #define FO_NO_CHOICE 0x00080000
647 #define FO_CFF 0x00100000
648 #define FO_POSTSCRIPT 0x00200000
649 #define FO_MULTIPLEMASTER 0x00400000
650 #define FO_VERT_FACE 0x00800000
651 #define FO_DBCS_FONT 0X01000000
652 #define FO_NOCLEARTYPE 0x02000000
653 #define FO_CLEARTYPE_X 0x10000000
654 #define FO_CLEARTYPE_Y 0x20000000
656 typedef struct _FONTOBJ {
669 typedef struct _GAMMARAMP {
673 } GAMMARAMP, *PGAMMARAMP;
675 /* GDIINFO.ulPrimaryOrder constants */
676 #define PRIMARY_ORDER_ABC 0
677 #define PRIMARY_ORDER_ACB 1
678 #define PRIMARY_ORDER_BAC 2
679 #define PRIMARY_ORDER_BCA 3
680 #define PRIMARY_ORDER_CBA 4
681 #define PRIMARY_ORDER_CAB 5
683 /* GDIINFO.ulHTPatternSize constants */
684 #define HT_PATSIZE_2x2 0
685 #define HT_PATSIZE_2x2_M 1
686 #define HT_PATSIZE_4x4 2
687 #define HT_PATSIZE_4x4_M 3
688 #define HT_PATSIZE_6x6 4
689 #define HT_PATSIZE_6x6_M 5
690 #define HT_PATSIZE_8x8 6
691 #define HT_PATSIZE_8x8_M 7
692 #define HT_PATSIZE_10x10 8
693 #define HT_PATSIZE_10x10_M 9
694 #define HT_PATSIZE_12x12 10
695 #define HT_PATSIZE_12x12_M 11
696 #define HT_PATSIZE_14x14 12
697 #define HT_PATSIZE_14x14_M 13
698 #define HT_PATSIZE_16x16 14
699 #define HT_PATSIZE_16x16_M 15
700 #define HT_PATSIZE_SUPERCELL 16
701 #define HT_PATSIZE_SUPERCELL_M 17
702 #define HT_PATSIZE_USER 18
703 #define HT_PATSIZE_MAX_INDEX HT_PATSIZE_USER
704 #define HT_PATSIZE_DEFAULT HT_PATSIZE_SUPERCELL_M
705 #define HT_USERPAT_CX_MIN 4
706 #define HT_USERPAT_CX_MAX 256
707 #define HT_USERPAT_CY_MIN 4
708 #define HT_USERPAT_CY_MAX 256
710 /* GDIINFO.ulHTOutputFormat constants */
711 #define HT_FORMAT_1BPP 0
712 #define HT_FORMAT_4BPP 2
713 #define HT_FORMAT_4BPP_IRGB 3
714 #define HT_FORMAT_8BPP 4
715 #define HT_FORMAT_16BPP 5
716 #define HT_FORMAT_24BPP 6
717 #define HT_FORMAT_32BPP 7
719 /* GDIINFO.flHTFlags */
720 #define HT_FLAG_SQUARE_DEVICE_PEL 0x00000001
721 #define HT_FLAG_HAS_BLACK_DYE 0x00000002
722 #define HT_FLAG_ADDITIVE_PRIMS 0x00000004
723 #define HT_FLAG_USE_8BPP_BITMASK 0x00000008
724 #define HT_FLAG_INK_HIGH_ABSORPTION 0x00000010
725 #define HT_FLAG_INK_ABSORPTION_INDICES 0x00000060
726 #define HT_FLAG_DO_DEVCLR_XFORM 0x00000080
727 #define HT_FLAG_OUTPUT_CMY 0x00000100
728 #define HT_FLAG_PRINT_DRAFT_MODE 0x00000200
729 #define HT_FLAG_INVERT_8BPP_BITMASK_IDX 0x00000400
730 #define HT_FLAG_8BPP_CMY332_MASK 0xFF000000
732 #define MAKE_CMYMASK_BYTE(c,m,y) ((BYTE)(((BYTE)(c) & 0x07) << 5) \
733 |(BYTE)(((BYTE)(m) & 0x07) << 2) \
734 |(BYTE)((BYTE)(y) & 0x03))
736 #define MAKE_CMY332_MASK(c,m,y) ((DWORD)(((DWORD)(c) & 0x07) << 29)\
737 |(DWORD)(((DWORD)(m) & 0x07) << 26)\
738 |(DWORD)(((DWORD)(y) & 0x03) << 24))
740 /* GDIINFO.flHTFlags constants */
741 #define HT_FLAG_INK_ABSORPTION_IDX0 0x00000000
742 #define HT_FLAG_INK_ABSORPTION_IDX1 0x00000020
743 #define HT_FLAG_INK_ABSORPTION_IDX2 0x00000040
744 #define HT_FLAG_INK_ABSORPTION_IDX3 0x00000060
746 #define HT_FLAG_HIGHEST_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \
747 |HT_FLAG_INK_ABSORPTION_IDX3)
748 #define HT_FLAG_HIGHER_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \
749 |HT_FLAG_INK_ABSORPTION_IDX2)
750 #define HT_FLAG_HIGH_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \
751 |HT_FLAG_INK_ABSORPTION_IDX1)
752 #define HT_FLAG_NORMAL_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX0
753 #define HT_FLAG_LOW_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX1
754 #define HT_FLAG_LOWER_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX2
755 #define HT_FLAG_LOWEST_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX3
757 #define HT_BITMASKPALRGB (DWORD)'0BGR'
758 #define HT_SET_BITMASKPAL2RGB(pPal) (*((LPDWORD)(pPal)) = HT_BITMASKPALRGB)
759 #define HT_IS_BITMASKPALRGB(pPal) (*((LPDWORD)(pPal)) == (DWORD)0)
761 /* GDIINFO.ulPhysicalPixelCharacteristics constants */
762 #define PPC_DEFAULT 0x0
763 #define PPC_UNDEFINED 0x1
764 #define PPC_RGB_ORDER_VERTICAL_STRIPES 0x2
765 #define PPC_BGR_ORDER_VERTICAL_STRIPES 0x3
766 #define PPC_RGB_ORDER_HORIZONTAL_STRIPES 0x4
767 #define PPC_BGR_ORDER_HORIZONTAL_STRIPES 0x5
769 #define PPG_DEFAULT 0
772 typedef struct _GDIINFO {
795 POINTL ptlPhysOffset;
799 ULONG ulDevicePelsDPI;
800 ULONG ulPrimaryOrder;
801 ULONG ulHTPatternSize;
802 ULONG ulHTOutputFormat;
805 ULONG ulBltAlignment;
806 ULONG ulPanningHorzRes;
807 ULONG ulPanningVertRes;
808 ULONG xPanningAlignment;
809 ULONG yPanningAlignment;
816 ULONG ulPhysicalPixelCharacteristics;
817 ULONG ulPhysicalPixelGamma;
818 } GDIINFO, *PGDIINFO;
820 /* PATHDATA.flags constants */
821 #define PD_BEGINSUBPATH 0x00000001
822 #define PD_ENDSUBPATH 0x00000002
823 #define PD_RESETSTYLE 0x00000004
824 #define PD_CLOSEFIGURE 0x00000008
825 #define PD_BEZIERS 0x00000010
826 #define PD_ALL (PD_BEGINSUBPATH \
832 typedef struct _PATHDATA {
836 } PATHDATA, *PPATHDATA;
838 /* PATHOBJ.fl constants */
839 #define PO_BEZIERS 0x00000001
840 #define PO_ELLIPSE 0x00000002
841 #define PO_ALL_INTEGERS 0x00000004
842 #define PO_ENUM_AS_INTEGERS 0x00000008
844 typedef struct _PATHOBJ {
849 typedef struct _GLYPHBITS {
855 typedef union _GLYPHDEF {
860 typedef struct _GLYPHPOS {
864 } GLYPHPOS, *PGLYPHPOS;
866 typedef struct _GLYPHDATA {
878 typedef struct _IFIEXTRA {
882 PTRDIFF dpDesignVector;
884 ULONG aulReserved[1];
885 } IFIEXTRA, *PIFIEXTRA;
887 /* IFIMETRICS constants */
889 #define FM_VERSION_NUMBER 0x0
891 /* IFIMETRICS.fsType constants */
892 #define FM_TYPE_LICENSED 0x2
893 #define FM_READONLY_EMBED 0x4
894 #define FM_EDITABLE_EMBED 0x8
895 #define FM_NO_EMBEDDING FM_TYPE_LICENSED
897 /* IFIMETRICS.flInfo constants */
898 #define FM_INFO_TECH_TRUETYPE 0x00000001
899 #define FM_INFO_TECH_BITMAP 0x00000002
900 #define FM_INFO_TECH_STROKE 0x00000004
901 #define FM_INFO_TECH_OUTLINE_NOT_TRUETYPE 0x00000008
902 #define FM_INFO_ARB_XFORMS 0x00000010
903 #define FM_INFO_1BPP 0x00000020
904 #define FM_INFO_4BPP 0x00000040
905 #define FM_INFO_8BPP 0x00000080
906 #define FM_INFO_16BPP 0x00000100
907 #define FM_INFO_24BPP 0x00000200
908 #define FM_INFO_32BPP 0x00000400
909 #define FM_INFO_INTEGER_WIDTH 0x00000800
910 #define FM_INFO_CONSTANT_WIDTH 0x00001000
911 #define FM_INFO_NOT_CONTIGUOUS 0x00002000
912 #define FM_INFO_TECH_MM 0x00004000
913 #define FM_INFO_RETURNS_OUTLINES 0x00008000
914 #define FM_INFO_RETURNS_STROKES 0x00010000
915 #define FM_INFO_RETURNS_BITMAPS 0x00020000
916 #define FM_INFO_DSIG 0x00040000
917 #define FM_INFO_RIGHT_HANDED 0x00080000
918 #define FM_INFO_INTEGRAL_SCALING 0x00100000
919 #define FM_INFO_90DEGREE_ROTATIONS 0x00200000
920 #define FM_INFO_OPTICALLY_FIXED_PITCH 0x00400000
921 #define FM_INFO_DO_NOT_ENUMERATE 0x00800000
922 #define FM_INFO_ISOTROPIC_SCALING_ONLY 0x01000000
923 #define FM_INFO_ANISOTROPIC_SCALING_ONLY 0x02000000
924 #define FM_INFO_TECH_CFF 0x04000000
925 #define FM_INFO_FAMILY_EQUIV 0x08000000
926 #define FM_INFO_DBCS_FIXED_PITCH 0x10000000
927 #define FM_INFO_NONNEGATIVE_AC 0x20000000
928 #define FM_INFO_IGNORE_TC_RA_ABLE 0x40000000
929 #define FM_INFO_TECH_TYPE1 0x80000000
931 #define MAXCHARSETS 16
933 /* IFIMETRICS.ulPanoseCulture constants */
934 #define FM_PANOSE_CULTURE_LATIN 0x0
936 typedef struct _IFIMETRICS {
939 PTRDIFF dpwszFamilyName;
940 PTRDIFF dpwszStyleName;
941 PTRDIFF dpwszFaceName;
942 PTRDIFF dpwszUniqueName;
949 BYTE jWinPitchAndFamily;
956 FWORD fwdWinAscender;
957 FWORD fwdWinDescender;
958 FWORD fwdMacAscender;
959 FWORD fwdMacDescender;
961 FWORD fwdTypoAscender;
962 FWORD fwdTypoDescender;
963 FWORD fwdTypoLineGap;
964 FWORD fwdAveCharWidth;
968 FWORD fwdSubscriptXSize;
969 FWORD fwdSubscriptYSize;
970 FWORD fwdSubscriptXOffset;
971 FWORD fwdSubscriptYOffset;
972 FWORD fwdSuperscriptXSize;
973 FWORD fwdSuperscriptYSize;
974 FWORD fwdSuperscriptXOffset;
975 FWORD fwdSuperscriptYOffset;
976 FWORD fwdUnderscoreSize;
977 FWORD fwdUnderscorePosition;
978 FWORD fwdStrikeoutSize;
979 FWORD fwdStrikeoutPosition;
994 ULONG ulPanoseCulture;
999 } IFIMETRICS, *PIFIMETRICS;
1002 #define LA_GEOMETRIC 0x00000001
1003 #define LA_ALTERNATE 0x00000002
1004 #define LA_STARTGAP 0x00000004
1005 #define LA_STYLED 0x00000008
1007 /* LINEATTRS.iJoin */
1008 #define JOIN_ROUND 0L
1009 #define JOIN_BEVEL 1L
1010 #define JOIN_MITER 2L
1012 /* LINEATTRS.iEndCap */
1013 #define ENDCAP_ROUND 0L
1014 #define ENDCAP_SQUARE 1L
1015 #define ENDCAP_BUTT 2L
1017 typedef struct _LINEATTRS {
1025 FLOAT_LONG elStyleState;
1026 } LINEATTRS, *PLINEATTRS;
1028 typedef struct _PALOBJ {
1032 typedef struct _PERBANDINFO {
1033 BOOL bRepeatThisBand;
1037 } PERBANDINFO, *PPERBANDINFO;
1039 /* STROBJ.flAccel constants */
1040 #define SO_FLAG_DEFAULT_PLACEMENT 0x00000001
1041 #define SO_HORIZONTAL 0x00000002
1042 #define SO_VERTICAL 0x00000004
1043 #define SO_REVERSED 0x00000008
1044 #define SO_ZERO_BEARINGS 0x00000010
1045 #define SO_CHAR_INC_EQUAL_BM_BASE 0x00000020
1046 #define SO_MAXEXT_EQUAL_BM_SIDE 0x00000040
1047 #define SO_DO_NOT_SUBSTITUTE_DEVICE_FONT 0x00000080
1048 #define SO_GLYPHINDEX_TEXTOUT 0x00000100
1049 #define SO_ESC_NOT_ORIENT 0x00000200
1050 #define SO_DXDY 0x00000400
1051 #define SO_CHARACTER_EXTRA 0x00000800
1052 #define SO_BREAK_EXTRA 0x00001000
1054 typedef struct _STROBJ {
1063 typedef struct _SURFACEALIGNMENT {
1066 DWORD dwStartAlignment;
1067 DWORD dwPitchAlignment;
1078 } SURFACEALIGNMENT, *LPSURFACEALIGNMENT;
1080 /* SURFOBJ.iType constants */
1081 #define STYPE_BITMAP 0L
1082 #define STYPE_DEVICE 1L
1083 #define STYPE_DEVBITMAP 3L
1085 /* SURFOBJ.fjBitmap constants */
1086 #define BMF_TOPDOWN 0x0001
1087 #define BMF_NOZEROINIT 0x0002
1088 #define BMF_DONTCACHE 0x0004
1089 #define BMF_USERMEM 0x0008
1090 #define BMF_KMSECTION 0x0010
1091 #define BMF_NOTSYSMEM 0x0020
1092 #define BMF_WINDOW_BLT 0x0040
1093 #define BMF_UMPDMEM 0x0080
1094 #define BMF_RESERVED 0xFF00
1096 typedef struct _SURFOBJ {
1107 ULONG iBitmapFormat;
1112 typedef struct _TYPE1_FONT {
1118 typedef struct _WNDOBJ {
1125 typedef struct _XFORML {
1134 typedef struct _XFORMOBJ {
1138 /* XLATEOBJ.flXlate constants */
1139 #define XO_TRIVIAL 0x00000001
1140 #define XO_TABLE 0x00000002
1141 #define XO_TO_MONO 0x00000004
1142 #define XO_FROM_CMYK 0x00000008
1143 #define XO_DEVICE_ICM 0x00000010
1144 #define XO_HOST_ICM 0x00000020
1146 typedef struct _XLATEOBJ {
1155 typedef VOID DDKAPI (CALLBACK *WNDOBJCHANGEPROC)(
1163 BRUSHOBJ_hGetColorTransform(
1164 /*IN*/ BRUSHOBJ *pbo);
1169 BRUSHOBJ_pvAllocRbrush(
1170 /*IN*/ BRUSHOBJ *pbo,
1176 BRUSHOBJ_pvGetRbrush(
1177 /*IN*/ BRUSHOBJ *pbo);
1182 BRUSHOBJ_ulGetBrushColor(
1183 /*IN*/ BRUSHOBJ *pbo);
1189 /*IN*/ CLIPOBJ *pco,
1194 /* CLIPOBJ_cEnumStart.iType constants */
1195 #define CT_RECTANGLES 0L
1197 /* CLIPOBJ_cEnumStart.iDirection constants */
1198 #define CD_RIGHTDOWN 0x00000000
1199 #define CD_LEFTDOWN 0x00000001
1200 #define CD_LEFTWARDS 0x00000001
1201 #define CD_RIGHTUP 0x00000002
1202 #define CD_UPWARDS 0x00000002
1203 #define CD_LEFTUP 0x00000003
1204 #define CD_ANY 0x00000004
1210 /*IN*/ CLIPOBJ *pco,
1213 /*IN*/ ULONG iDirection,
1214 /*IN*/ ULONG cLimit);
1220 /*IN*/ CLIPOBJ *pco);
1225 EngAcquireSemaphore(
1226 /*IN*/ HSEMAPHORE hsem);
1228 #define FL_ZERO_MEMORY 0x00000001
1229 #define FL_NONPAGED_MEMORY 0x00000002
1236 /*IN*/ ULONG MemSize,
1242 EngAllocPrivateUserMem(
1243 /*IN*/ PDD_SURFACE_LOCAL psl,
1258 /*IN*/ SURFOBJ *psoDest,
1259 /*IN*/ SURFOBJ *psoSrc,
1260 /*IN*/ CLIPOBJ *pco,
1261 /*IN*/ XLATEOBJ *pxlo,
1262 /*IN*/ RECTL *prclDest,
1263 /*IN*/ RECTL *prclSrc,
1264 /*IN*/ BLENDOBJ *pBlendObj);
1266 /* EngAssociateSurface.flHooks constants */
1267 #define HOOK_BITBLT 0x00000001
1268 #define HOOK_STRETCHBLT 0x00000002
1269 #define HOOK_PLGBLT 0x00000004
1270 #define HOOK_TEXTOUT 0x00000008
1271 #define HOOK_PAINT 0x00000010
1272 #define HOOK_STROKEPATH 0x00000020
1273 #define HOOK_FILLPATH 0x00000040
1274 #define HOOK_STROKEANDFILLPATH 0x00000080
1275 #define HOOK_LINETO 0x00000100
1276 #define HOOK_COPYBITS 0x00000400
1277 #define HOOK_MOVEPANNING 0x00000800
1278 #define HOOK_SYNCHRONIZE 0x00001000
1279 #define HOOK_STRETCHBLTROP 0x00002000
1280 #define HOOK_SYNCHRONIZEACCESS 0x00004000
1281 #define HOOK_TRANSPARENTBLT 0x00008000
1282 #define HOOK_ALPHABLEND 0x00010000
1283 #define HOOK_GRADIENTFILL 0x00020000
1284 #define HOOK_FLAGS 0x0003b5ff
1289 EngAssociateSurface(
1292 /*IN*/ FLONG flHooks);
1298 /*IN*/ SURFOBJ *psoTrg,
1299 /*IN*/ SURFOBJ *psoSrc,
1300 /*IN*/ SURFOBJ *psoMask,
1301 /*IN*/ CLIPOBJ *pco,
1302 /*IN*/ XLATEOBJ *pxlo,
1303 /*IN*/ RECTL *prclTrg,
1304 /*IN*/ POINTL *pptlSrc,
1305 /*IN*/ POINTL *pptlMask,
1306 /*IN*/ BRUSHOBJ *pbo,
1307 /*IN*/ POINTL *pptlBrush,
1314 /*IN*/ SURFOBJ *pso);
1320 /*IN*/ PEVENT pEvent);
1326 /*IN*/ INT nCodePage,
1327 /*IN*/ INT nFirstChar,
1330 /* EngControlSprites.fl constants */
1331 #define ECS_TEARDOWN 0x00000001
1332 #define ECS_REDRAW 0x00000002
1346 /*OUT*/ SURFOBJ *psoDest,
1347 /*IN*/ SURFOBJ *psoSrc,
1348 /*IN*/ CLIPOBJ *pco,
1349 /*IN*/ XLATEOBJ *pxlo,
1350 /*IN*/ RECTL *prclDest,
1351 /*IN*/ POINTL *pptlSrc);
1359 /*IN*/ ULONG iFormat,
1361 /*IN*/ PVOID pvBits);
1372 EngCreateDeviceBitmap(
1373 /*IN*/ DHSURF dhsurf,
1375 /*IN*/ ULONG iFormatCompat);
1380 EngCreateDeviceSurface(
1383 ULONG iFormatCompat);
1391 FREEOBJPROC pFreeObjProc,
1400 /*OUT*/ PEVENT *ppEvent);
1402 /* EngCreatePalette.iMode constants */
1403 #define PAL_INDEXED 0x00000001
1404 #define PAL_BITFIELDS 0x00000002
1405 #define PAL_RGB 0x00000004
1406 #define PAL_BGR 0x00000008
1407 #define PAL_CMYK 0x00000010
1414 /*IN*/ ULONG cColors,
1415 /*IN*/ ULONG *pulColors,
1417 /*IN*/ FLONG flGreen,
1418 /*IN*/ FLONG flBlue);
1432 /* EngCreateWnd.fl constants */
1433 #define WO_RGN_CLIENT_DELTA 0x00000001
1434 #define WO_RGN_CLIENT 0x00000002
1435 #define WO_RGN_SURFACE_DELTA 0x00000004
1436 #define WO_RGN_SURFACE 0x00000008
1437 #define WO_RGN_UPDATE_ALL 0x00000010
1438 #define WO_RGN_WINDOW 0x00000020
1439 #define WO_DRAW_NOTIFY 0x00000040
1440 #define WO_SPRITE_NOTIFY 0x00000080
1441 #define WO_RGN_DESKTOP_COORD 0x00000100
1449 WNDOBJCHANGEPROC pfn,
1463 /*IN*/ PCHAR StandardPrefix,
1464 /*IN*/ PCHAR DebugMessage,
1471 /*IN*/ CLIPOBJ *pco);
1478 /*IN*/ BOOL bCallBack,
1479 /*IN*/ BOOL bLocked);
1485 /*IN*/ PEVENT pEvent);
1491 /*IN*/ LPWSTR pwszFileName);
1497 /*IN*/ HPALETTE hpal);
1503 /*IN*/ PATHOBJ *ppo);
1508 EngDeleteSafeSemaphore(
1509 /*IN OUT*/ ENGSAFESEMAPHORE *pssem);
1515 /*IN OUT*/ HSEMAPHORE hsem);
1521 /*IN*/ HSURF hsurf);
1527 /*IN*/ WNDOBJ *pwo);
1533 /*IN*/ HANDLE hDevice,
1534 /*IN*/ DWORD dwIoControlCode,
1535 /*IN*/ LPVOID lpInBuffer,
1536 /*IN*/ DWORD nInBufferSize,
1537 /*IN OUT*/ LPVOID lpOutBuffer,
1538 /*IN*/ DWORD nOutBufferSize,
1540 /*OUT*/ LPDWORD lpBytesReturned);
1550 /*OUT*/ ULONG *pul);
1556 /*IN*/ HANDLE hPrinter,
1559 /*OUT*/ LPBYTE pForm,
1562 /*OUT*/ LPDWORD pcbNeeded,
1564 /*OUT*/ LPDWORD pcReturned);
1570 /*IN*/ SURFOBJ *pso,
1572 /*IN*/ ULONG iColor);
1578 /*IN*/ SURFOBJ *pso,
1579 /*IN*/ PATHOBJ *ppo,
1580 /*IN*/ CLIPOBJ *pco,
1581 /*IN*/ BRUSHOBJ *pbo,
1582 /*IN*/ POINTL *pptlBrushOrg,
1584 /*IN*/ FLONG flOptions);
1589 EngFindImageProcAddress(
1590 /*IN*/ HANDLE hModule,
1591 /*IN*/ LPSTR lpProcName);
1601 /*OUT*/ PULONG pulSize);
1607 /*IN*/ ULONG FastCheckSum,
1608 /*IN*/ ULONG ulSize);
1610 /* EngFntCacheFault.iFaultMode constants */
1611 #define ENG_FNT_CACHE_READ_FAULT 0x00000001
1612 #define ENG_FNT_CACHE_WRITE_FAULT 0x00000002
1618 /*IN*/ ULONG ulFastCheckSum,
1619 /*IN*/ ULONG iFaultMode);
1625 /*IN*/ ULONG FastCheckSum,
1627 /*OUT*/ ULONG *pulSize);
1644 EngFreePrivateUserMem(
1645 /*IN*/ PDD_SURFACE_LOCAL psl,
1657 EngGetCurrentCodePage(
1659 /*OUT*/ PUSHORT OemCodePage,
1661 /*OUT*/ PUSHORT AnsiCodePage);
1666 EngGetCurrentProcessId(
1672 EngGetCurrentThreadId(
1684 EngGetFileChangeTime(
1687 /*OUT*/ LARGE_INTEGER *pChangeTime);
1695 /*OUT*/ WCHAR (*pDest)[MAX_PATH+1]);
1701 /*IN*/ HANDLE hPrinter,
1702 /*IN*/ LPWSTR pFormName,
1705 /*OUT*/ LPBYTE pForm,
1708 /*OUT*/ LPDWORD pcbNeeded);
1720 /*IN*/ HANDLE hPrinter,
1721 /*IN*/ DWORD dwLevel,
1723 /*OUT*/ LPBYTE pPrinter,
1726 /*OUT*/ LPDWORD pcbNeeded);
1732 /*IN*/ HANDLE hPrinter,
1733 /*IN*/ LPWSTR pValueName,
1735 /*OUT*/ LPDWORD pType,
1737 /*OUT*/ LPBYTE pData,
1740 /*OUT*/ LPDWORD pcbNeeded);
1745 EngGetPrinterDataFileName(
1751 EngGetPrinterDriver(
1752 /*IN*/ HANDLE hPrinter,
1753 /*IN*/ LPWSTR pEnvironment,
1754 /*IN*/ DWORD dwLevel,
1756 /*OUT*/ BYTE *lpbDrvInfo,
1759 /*OUT*/ DWORD *pcbNeeded);
1764 EngGetProcessHandle(
1770 EngGetType1FontList(
1773 /*OUT*/ TYPE1_FONT *pType1Buffer,
1774 /*IN*/ ULONG cjType1Buffer,
1776 /*OUT*/ PULONG pulLocalFonts,
1778 /*OUT*/ PULONG pulRemoteFonts,
1780 /*OUT*/ LARGE_INTEGER *pLastModified);
1786 /*IN*/ SURFOBJ *psoDest,
1787 /*IN*/ CLIPOBJ *pco,
1788 /*IN*/ XLATEOBJ *pxlo,
1789 /*IN*/ TRIVERTEX *pVertex,
1790 /*IN*/ ULONG nVertex,
1793 /*IN*/ RECTL *prclExtents,
1794 /*IN*/ POINTL *pptlDitherOrg,
1795 /*IN*/ ULONG ulMode);
1797 /* EngHangNotification return values */
1798 #define EHN_RESTORED 0x00000000
1799 #define EHN_ERROR 0x00000001
1804 EngHangNotification(
1806 /*IN*/ PVOID Reserved);
1811 EngInitializeSafeSemaphore(
1813 /*OUT*/ ENGSAFESEMAPHORE *pssem);
1818 EngIsSemaphoreOwned(
1819 /*IN*/ HSEMAPHORE hsem);
1824 EngIsSemaphoreOwnedByCurrentThread(
1825 /*IN*/ HSEMAPHORE hsem);
1845 /*IN*/ LPWSTR pwszDriver);
1851 /*IN*/ LPWSTR pwsz);
1856 EngLoadModuleForWrite(
1858 /*IN*/ ULONG cjSizeOfModule);
1863 EngLockDirectDrawSurface(
1864 /*IN*/ HANDLE hSurface);
1870 /*IN*/ HDRVOBJ hdo);
1876 /*IN*/ HSURF hsurf);
1889 /*IN*/ HANDLE hUserObject,
1890 /*IN*/ PVOID Reserved1,
1891 /*IN*/ PVOID Reserved2,
1892 /*IN*/ PVOID Reserved3);
1899 /*IN*/ ULONG cjSize,
1901 /*OUT*/ ULONG_PTR *piFile);
1915 /*IN*/ ULONG_PTR iFile,
1917 /*OUT*/ PULONG *ppjBuf,
1919 /*OUT*/ ULONG *pcjBuf);
1927 /*OUT*/ PULONG pSize);
1932 EngMarkBandingSurface(
1933 /*IN*/ HSURF hsurf);
1935 /* EngModifySurface.flSurface constants */
1936 #define MS_NOTSYSTEMMEMORY 0x00000001
1937 #define MS_SHAREDACCESS 0x00000002
1945 /*IN*/ FLONG flHooks,
1946 /*IN*/ FLONG flSurface,
1947 /*IN*/ DHSURF dhsurf,
1948 /*IN*/ VOID *pvScan0,
1950 /*IN*/ VOID *pvReserved);
1956 /*IN*/ SURFOBJ *pso,
1959 /*IN*/ RECTL *prcl);
1972 EngMultiByteToUnicodeN(
1974 /*OUT*/ LPWSTR UnicodeString,
1975 /*IN*/ ULONG MaxBytesInUnicodeString,
1977 /*OUT*/ PULONG BytesInUnicodeString,
1978 /*IN*/ PCHAR MultiByteString,
1979 /*IN*/ ULONG BytesInMultiByteString);
1984 EngMultiByteToWideChar(
1985 /*IN*/ UINT CodePage,
1987 /*OUT*/ LPWSTR WideCharString,
1988 /*IN*/ INT BytesInWideCharString,
1989 /*IN*/ LPSTR MultiByteString,
1990 /*IN*/ INT BytesInMultiByteString);
1996 /*IN*/ SURFOBJ *pso,
1997 /*IN*/ CLIPOBJ *pco,
1998 /*IN*/ BRUSHOBJ *pbo,
1999 /*IN*/ POINTL *pptlBrushOrg,
2006 /*IN*/ SURFOBJ *psoTrg,
2007 /*IN*/ SURFOBJ *psoSrc,
2008 /*IN*/ SURFOBJ *psoMsk,
2009 /*IN*/ CLIPOBJ *pco,
2010 /*IN*/ XLATEOBJ *pxlo,
2011 /*IN*/ COLORADJUSTMENT *pca,
2012 /*IN*/ POINTL *pptlBrushOrg,
2013 /*IN*/ POINTFIX *pptfx,
2015 /*IN*/ POINTL *pptl,
2016 /*IN*/ ULONG iMode);
2022 /*IN*/ PVOID Address,
2023 /*IN*/ ULONG Length,
2024 /*IN*/ ULONG Alignment);
2029 EngProbeForReadAndWrite(
2030 /*IN*/ PVOID Address,
2031 /*IN*/ ULONG Length,
2032 /*IN*/ ULONG Alignment);
2034 typedef enum _ENG_DEVICE_ATTRIBUTE {
2036 QDA_ACCELERATION_LEVEL
2037 } ENG_DEVICE_ATTRIBUTE;
2042 EngQueryDeviceAttribute(
2044 /*IN*/ ENG_DEVICE_ATTRIBUTE devAttr,
2046 /*IN*/ ULONG ulInSize,
2048 /*OUT*/ VOID *pvOut,
2050 /*OUT*/ ULONG ulOutSize);
2055 EngQueryFileTimeStamp(
2056 /*IN*/ LPWSTR pwsz);
2063 /*OUT*/ PENG_TIME_FIELDS ptf);
2069 /*IN*/ HPALETTE hPal,
2071 /*OUT*/ ULONG *piMode,
2072 /*IN*/ ULONG cColors,
2074 /*OUT*/ ULONG *pulColors);
2079 EngQueryPerformanceCounter(
2081 /*OUT*/ LONGLONG *pPerformanceCount);
2086 EngQueryPerformanceFrequency(
2088 /*OUT*/ LONGLONG *pFrequency);
2090 typedef enum _ENG_SYSTEM_ATTRIBUTE {
2091 EngProcessorFeature = 1,
2092 EngNumberOfProcessors,
2093 EngOptimumAvailableUserMemory,
2094 EngOptimumAvailableSystemMemory,
2095 } ENG_SYSTEM_ATTRIBUTE;
2097 #define QSA_MMX 0x00000100
2098 #define QSA_SSE 0x00002000
2099 #define QSA_3DNOW 0x00004000
2104 EngQuerySystemAttribute(
2105 /*IN*/ ENG_SYSTEM_ATTRIBUTE CapNum,
2107 /*OUT*/ PDWORD pCapability);
2113 /*IN*/ PEVENT pEvent);
2118 EngReleaseSemaphore(
2119 /*IN*/ HSEMAPHORE hsem);
2124 EngRestoreFloatingPointState(
2125 /*IN*/ VOID *pBuffer);
2130 EngSaveFloatingPointState(
2132 /*OUT*/ VOID *pBuffer,
2133 /*IN*/ ULONG cjBufferSize);
2139 /*IN*/ PVOID Address,
2140 /*IN*/ ULONG Length);
2146 /*IN*/ PEVENT pEvent);
2152 /*IN*/ ULONG iError);
2158 /*IN*/ SURFOBJ *pso,
2159 /*IN*/ SURFOBJ *psoMask,
2160 /*IN*/ SURFOBJ *psoColor,
2161 /*IN*/ XLATEOBJ *pxlo,
2174 /*IN*/ SURFOBJ *psoMask,
2175 /*IN*/ SURFOBJ *psoColor,
2176 /*IN*/ XLATEOBJ *pxlo,
2183 /*IN*/ HANDLE hPrinter,
2184 /*IN*/ LPWSTR pType,
2185 /*IN*/ DWORD dwType,
2186 /*IN*/ LPBYTE lpbPrinterData,
2187 /*IN*/ DWORD cjPrinterData);
2189 typedef int DDKCDECLAPI (*SORTCOMP)(const void *pv1, const void *pv2);
2195 /*IN OUT*/ PBYTE pjBuf,
2197 /*IN*/ ULONG cjElem,
2198 /*IN*/ SORTCOMP pfnComp);
2204 /*IN*/ SURFOBJ *psoDest,
2205 /*IN*/ SURFOBJ *psoSrc,
2206 /*IN*/ SURFOBJ *psoMask,
2207 /*IN*/ CLIPOBJ *pco,
2208 /*IN*/ XLATEOBJ *pxlo,
2209 /*IN*/ COLORADJUSTMENT *pca,
2210 /*IN*/ POINTL *pptlHTOrg,
2211 /*IN*/ RECTL *prclDest,
2212 /*IN*/ RECTL *prclSrc,
2213 /*IN*/ POINTL *pptlMask,
2214 /*IN*/ ULONG iMode);
2220 /*IN*/ SURFOBJ *psoDest,
2221 /*IN*/ SURFOBJ *psoSrc,
2222 /*IN*/ SURFOBJ *psoMask,
2223 /*IN*/ CLIPOBJ *pco,
2224 /*IN*/ XLATEOBJ *pxlo,
2225 /*IN*/ COLORADJUSTMENT *pca,
2226 /*IN*/ POINTL *pptlHTOrg,
2227 /*IN*/ RECTL *prclDest,
2228 /*IN*/ RECTL *prclSrc,
2229 /*IN*/ POINTL *pptlMask,
2231 /*IN*/ BRUSHOBJ *pbo,
2237 EngStrokeAndFillPath(
2238 /*IN*/ SURFOBJ *pso,
2239 /*IN*/ PATHOBJ *ppo,
2240 /*IN*/ CLIPOBJ *pco,
2241 /*IN*/ XFORMOBJ *pxo,
2242 /*IN*/ BRUSHOBJ *pboStroke,
2243 /*IN*/ LINEATTRS *plineattrs,
2244 /*IN*/ BRUSHOBJ *pboFill,
2245 /*IN*/ POINTL *pptlBrushOrg,
2247 /*IN*/ FLONG flOptions);
2253 /*IN*/ SURFOBJ *pso,
2254 /*IN*/ PATHOBJ *ppo,
2255 /*IN*/ CLIPOBJ *pco,
2256 /*IN*/ XFORMOBJ *pxo,
2257 /*IN*/ BRUSHOBJ *pbo,
2258 /*IN*/ POINTL *pptlBrushOrg,
2259 /*IN*/ LINEATTRS *plineattrs,
2266 /*IN*/ SURFOBJ *pso,
2267 /*IN*/ STROBJ *pstro,
2268 /*IN*/ FONTOBJ *pfo,
2269 /*IN*/ CLIPOBJ *pco,
2270 /*IN*/ RECTL *prclExtra,
2271 /*IN*/ RECTL *prclOpaque,
2272 /*IN*/ BRUSHOBJ *pboFore,
2273 /*IN*/ BRUSHOBJ *pboOpaque,
2274 /*IN*/ POINTL *pptlOrg,
2281 /*IN*/ SURFOBJ *psoDst,
2282 /*IN*/ SURFOBJ *psoSrc,
2283 /*IN*/ CLIPOBJ *pco,
2284 /*IN*/ XLATEOBJ *pxlo,
2285 /*IN*/ RECTL *prclDst,
2286 /*IN*/ RECTL *prclSrc,
2287 /*IN*/ ULONG iTransColor,
2288 /*IN*/ ULONG ulReserved);
2293 EngUnicodeToMultiByteN(
2295 /*OUT*/ PCHAR MultiByteString,
2296 /*IN*/ ULONG MaxBytesInMultiByteString,
2298 /*OUT*/ PULONG BytesInMultiByteString,
2299 /*IN*/ PWSTR UnicodeString,
2300 /*IN*/ ULONG BytesInUnicodeString);
2306 /*IN*/ HANDLE hModule);
2311 EngUnlockDirectDrawSurface(
2312 /*IN*/ PDD_SURFACE_LOCAL pSurface);
2318 /*IN*/ HDRVOBJ hdo);
2324 /*IN*/ SURFOBJ *pso);
2330 /*IN*/ PEVENT pEvent);
2336 /*IN*/ ULONG_PTR iFile);
2348 /*IN*/ ULONG_PTR iFile);
2354 /*IN*/ HANDLE hSecure);
2359 EngWaitForSingleObject(
2360 /*IN*/ PEVENT pEvent,
2361 /*IN*/ PLARGE_INTEGER pTimeOut);
2366 EngWideCharToMultiByte(
2367 /*IN*/ UINT CodePage,
2368 /*IN*/ LPWSTR WideCharString,
2369 /*IN*/ INT BytesInWideCharString,
2371 /*OUT*/ LPSTR MultiByteString,
2372 /*IN*/ INT BytesInMultiByteString);
2378 /*IN*/ HANDLE hPrinter,
2382 /*OUT*/ LPDWORD pcWritten);
2388 /*IN OUT*/ PFLOATOBJ pf,
2389 /*IN*/ PFLOATOBJ pf1);
2395 /*IN OUT*/ PFLOATOBJ pf,
2402 /*IN OUT*/ PFLOATOBJ pf,
2409 /*IN OUT*/ PFLOATOBJ pf,
2410 /*IN*/ PFLOATOBJ pf1);
2416 /*IN OUT*/ PFLOATOBJ pf,
2423 /*IN OUT*/ PFLOATOBJ pf,
2430 /*IN*/ PFLOATOBJ pf,
2431 /*IN*/ PFLOATOBJ pf1);
2437 /*IN*/ PFLOATOBJ pf,
2444 /*IN*/ PFLOATOBJ pf);
2450 /*IN*/ PFLOATOBJ pf);
2455 FLOATOBJ_GreaterThan(
2456 /*IN*/ PFLOATOBJ pf,
2457 /*IN*/ PFLOATOBJ pf1);
2462 FLOATOBJ_GreaterThanLong(
2463 /*IN*/ PFLOATOBJ pf,
2470 /*IN*/ PFLOATOBJ pf,
2471 /*IN*/ PFLOATOBJ pf1);
2476 FLOATOBJ_LessThanLong(
2477 /*IN*/ PFLOATOBJ pf,
2484 /*IN OUT*/ PFLOATOBJ pf,
2485 /*IN*/ PFLOATOBJ pf1);
2491 /*IN OUT*/ PFLOATOBJ pf,
2498 /*IN OUT*/ PFLOATOBJ pf,
2505 /*IN OUT*/ PFLOATOBJ pf);
2512 /*OUT*/ PFLOATOBJ pf,
2520 /*OUT*/ PFLOATOBJ pf,
2527 /*IN OUT*/ PFLOATOBJ pf,
2528 /*IN*/ PFLOATOBJ pf1);
2534 /*IN OUT*/ PFLOATOBJ pf,
2541 /*IN OUT*/ PFLOATOBJ pf,
2547 FONTOBJ_cGetAllGlyphHandles(
2548 /*IN*/ FONTOBJ *pfo,
2550 /*OUT*/ HGLYPH *phg);
2556 /*IN*/ FONTOBJ *pfo,
2558 /*IN*/ ULONG cGlyph,
2561 /*OUT*/ PVOID *ppvGlyph);
2567 /*IN*/ FONTOBJ *pfo);
2573 /*IN*/ FONTOBJ *pfo);
2578 FONTOBJ_pjOpenTypeTablePointer(
2579 /*IN*/ FONTOBJ *pfo,
2582 /*OUT*/ ULONG *pcjTable);
2587 FONTOBJ_pQueryGlyphAttrs(
2588 /*IN*/ FONTOBJ *pfo,
2589 /*IN*/ ULONG iMode);
2594 FONTOBJ_pvTrueTypeFontFile(
2595 /*IN*/ FONTOBJ *pfo,
2597 /*OUT*/ ULONG *pcjFile);
2602 FONTOBJ_pwszFontFilePaths(
2603 /*IN*/ FONTOBJ *pfo,
2605 /*OUT*/ ULONG *pcwc);
2610 FONTOBJ_pxoGetXform(
2611 /*IN*/ FONTOBJ *pfo);
2617 /*IN*/ FONTOBJ *pfo,
2618 /*IN*/ ULONG cjSize,
2620 /*OUT*/ FONTINFO *pfi);
2625 HeapVidMemAllocAligned(
2626 /*IN*/ LPVIDMEM lpVidMem,
2627 /*IN*/ DWORD dwWidth,
2628 /*IN*/ DWORD dwHeight,
2629 /*IN*/ LPSURFACEALIGNMENT lpAlignment,
2631 /*OUT*/ LPLONG lpNewPitch);
2636 HT_ComputeRGBGammaTable(
2637 /*IN*/ USHORT GammaTableEntries,
2638 /*IN*/ USHORT GammaTableType,
2639 /*IN*/ USHORT RedGamma,
2640 /*IN*/ USHORT GreenGamma,
2641 /*IN*/ USHORT BlueGamma,
2643 /*OUT*/ LPBYTE pGammaTable);
2648 HT_Get8BPPFormatPalette(
2650 /*OUT*/ LPPALETTEENTRY pPaletteEntry,
2651 /*IN*/ USHORT RedGamma,
2652 /*IN*/ USHORT GreenGamma,
2653 /*IN*/ USHORT BlueGamma);
2658 HT_Get8BPPMaskPalette(
2659 /*IN OUT*/ LPPALETTEENTRY pPaletteEntry,
2660 /*IN*/ BOOL Use8BPPMaskPal,
2661 /*IN*/ BYTE CMYMask,
2662 /*IN*/ USHORT RedGamma,
2663 /*IN*/ USHORT GreenGamma,
2664 /*IN*/ USHORT BlueGamma);
2669 HTUI_DeviceColorAdjustment(
2670 /*IN*/ LPSTR pDeviceName,
2672 /*OUT*/ PDEVHTADJDATA pDevHTAdjData);
2678 /*IN*/ PALOBJ *ppalo,
2679 /*IN*/ ULONG iStart,
2680 /*IN*/ ULONG cColors,
2682 /*OUT*/ ULONG *pulColors);
2687 PATHOBJ_bCloseFigure(
2688 /*IN*/ PATHOBJ *ppo);
2694 /*IN*/ PATHOBJ *ppo,
2696 /*OUT*/ PATHDATA *ppd);
2701 PATHOBJ_bEnumClipLines(
2702 /*IN*/ PATHOBJ *ppo,
2705 /*OUT*/ CLIPLINE *pcl);
2711 /*IN*/ PATHOBJ *ppo,
2712 /*IN*/ POINTFIX ptfx);
2717 PATHOBJ_bPolyBezierTo(
2718 /*IN*/ PATHOBJ *ppo,
2719 /*IN*/ POINTFIX *pptfx,
2720 /*IN*/ ULONG cptfx);
2725 PATHOBJ_bPolyLineTo(
2726 /*IN*/ PATHOBJ *ppo,
2727 /*IN*/ POINTFIX *pptfx,
2728 /*IN*/ ULONG cptfx);
2734 /*IN*/ PATHOBJ *ppo);
2739 PATHOBJ_vEnumStartClipLines(
2740 /*IN*/ PATHOBJ *ppo,
2741 /*IN*/ CLIPOBJ *pco,
2742 /*IN*/ SURFOBJ *pso,
2743 /*IN*/ LINEATTRS *pla);
2749 /*IN*/ PATHOBJ *ppo,
2751 /*OUT*/ PRECTFX prectfx);
2757 /*IN*/ STROBJ *pstro,
2761 /*OUT*/ PGLYPHPOS *ppgpos);
2766 STROBJ_bEnumPositionsOnly(
2767 /*IN*/ STROBJ *pstro,
2771 /*OUT*/ PGLYPHPOS *ppgpos);
2776 STROBJ_bGetAdvanceWidths(
2778 /*IN*/ ULONG iFirst,
2781 /*OUT*/ POINTQF *pptqD);
2786 STROBJ_dwGetCodePage(
2787 /*IN*/ STROBJ *pstro);
2792 STROBJ_fxBreakExtra(
2793 /*IN*/ STROBJ *pstro);
2798 STROBJ_fxCharacterExtra(
2799 /*IN*/ STROBJ *pstro);
2805 /*IN*/ STROBJ *pstro);
2811 /*IN*/ LPVMEMHEAP pvmh,
2812 /*IN*/ FLATPTR ptr);
2821 /*OUT*/ ULONG *pul);
2829 /*IN*/ ULONG iDirection,
2830 /*IN*/ ULONG cLimit);
2835 WNDOBJ_vSetConsumer(
2837 /*IN*/ PVOID pvConsumer);
2839 /* XFORMOBJ_bApplyXform.iMode constants */
2841 #define XF_INV_LTOL 1L
2843 #define XF_INV_FXTOL 3L
2848 XFORMOBJ_bApplyXform(
2849 /*IN*/ XFORMOBJ *pxo,
2851 /*IN*/ ULONG cPoints,
2854 /*OUT*/ PVOID pvOut);
2859 XFORMOBJ_iGetFloatObjXform(
2860 /*IN*/ XFORMOBJ *pxo,
2862 /*OUT*/ FLOATOBJ_XFORM *pxfo);
2868 /*IN*/ XFORMOBJ *pxo,
2870 /*OUT*/ XFORML *pxform);
2872 /* XLATEOBJ_cGetPalette.iPal constants */
2873 #define XO_SRCPALETTE 1
2874 #define XO_DESTPALETTE 2
2875 #define XO_DESTDCPALETTE 3
2876 #define XO_SRCBITFIELDS 4
2877 #define XO_DESTBITFIELDS 5
2882 XLATEOBJ_cGetPalette(
2883 /*IN*/ XLATEOBJ *pxlo,
2887 /*OUT*/ ULONG *pPal);
2892 XLATEOBJ_hGetColorTransform(
2893 /*IN*/ XLATEOBJ *pxlo);
2899 /*IN*/ XLATEOBJ *pxlo,
2900 /*IN*/ ULONG iColor);
2906 /*IN*/ XLATEOBJ *pxlo);
2910 /* Graphics Driver Functions */
2915 /*IN*/ SURFOBJ *psoDest,
2916 /*IN*/ SURFOBJ *psoSrc,
2917 /*IN*/ CLIPOBJ *pco,
2918 /*IN*/ XLATEOBJ *pxlo,
2919 /*IN*/ RECTL *prclDest,
2920 /*IN*/ RECTL *prclSrc,
2921 /*IN*/ BLENDOBJ *pBlendObj);
2926 /*IN*/ DHPDEV dhpdev,
2927 /*IN*/ BOOL bEnable);
2932 /*IN*/ SURFOBJ *psoTrg,
2933 /*IN*/ SURFOBJ *psoSrc,
2934 /*IN*/ SURFOBJ *psoMask,
2935 /*IN*/ CLIPOBJ *pco,
2936 /*IN*/ XLATEOBJ *pxlo,
2937 /*IN*/ RECTL *prclTrg,
2938 /*IN*/ POINTL *pptlSrc,
2939 /*IN*/ POINTL *pptlMask,
2940 /*IN*/ BRUSHOBJ *pbo,
2941 /*IN*/ POINTL *pptlBrush,
2947 /*IN*/ DHPDEV dhpdev,
2953 /*IN*/ SURFOBJ *psoDest,
2954 /*IN*/ SURFOBJ *psoSrc,
2955 /*IN*/ CLIPOBJ *pco,
2956 /*IN*/ XLATEOBJ *pxlo,
2957 /*IN*/ RECTL *prclDest,
2958 /*IN*/ POINTL *pptlSrc);
2962 DrvCreateDeviceBitmap(
2963 /*IN*/ DHPDEV dhpdev,
2965 /*IN*/ ULONG iFormat);
2969 DrvDeleteDeviceBitmap(
2970 /*IN*/ DHSURF dhsurf);
2975 DD_DIRECTDRAW_GLOBAL *pDirectDraw,
2976 DD_SURFACE_LOCAL *pSurface);
2980 DrvDescribePixelFormat(
2981 /*IN*/ DHPDEV dhpdev,
2982 /*IN*/ LONG iPixelFormat,
2985 /*OUT*/ PIXELFORMATDESCRIPTOR *ppfd);
2990 /*IN*/ FONTOBJ *pfo);
3000 /*IN*/ DHPDEV dhpdev);
3005 /*IN*/ DHPDEV dhpdev);
3007 #define DM_DEFAULT 0x00000001
3008 #define DM_MONOCHROME 0x00000002
3013 /*IN*/ DHPDEV dhpdev,
3017 /*OUT*/ ULONG *pul);
3022 /*IN*/ SURFOBJ *pso,
3024 /*IN*/ CLIPOBJ *pco,
3032 /*IN*/ ULONG iEngineVersion,
3035 /*OUT*/ DRVENABLEDATA *pded);
3040 /*IN*/ DEVMODEW *pdm,
3041 /*IN*/ LPWSTR pwszLogAddress,
3044 /*OUT*/ HSURF *phsurfPatterns,
3045 /*IN*/ ULONG cjCaps,
3047 /*OUT*/ ULONG *pdevcaps,
3048 /*IN*/ ULONG cjDevInfo,
3050 /*OUT*/ DEVINFO *pdi,
3052 /*IN*/ LPWSTR pwszDeviceName,
3053 /*IN*/ HANDLE hDriver);
3058 /*IN*/ DHPDEV dhpdev);
3060 /* DrvEndDoc.fl constants */
3061 #define ED_ABORTDOC 0x00000001
3066 /*IN*/ SURFOBJ *pso,
3072 /*IN*/ SURFOBJ *pso,
3078 /*OUT*/ PVOID pvOut);
3083 /*IN*/ SURFOBJ *pso,
3084 /*IN*/ PATHOBJ *ppo,
3085 /*IN*/ CLIPOBJ *pco,
3086 /*IN*/ BRUSHOBJ *pbo,
3087 /*IN*/ POINTL *pptlBrushOrg,
3089 /*IN*/ FLONG flOptions);
3094 /*IN*/ SURFOBJ *pso,
3095 /*IN*/ FONTOBJ *pfo,
3101 /*OUT*/ PVOID pvOut);
3107 /*IN*/ ULONG_PTR id);
3109 /* DrvGetGlyphMode return values */
3110 #define FO_HGLYPHS 0L
3111 #define FO_GLYPHBITS 1L
3112 #define FO_PATHOBJ 2L
3117 /*IN*/ DHPDEV dhpdev,
3118 /*IN*/ FONTOBJ *pfo);
3123 /*IN*/ HANDLE hDriver,
3124 /*IN*/ ULONG cjSize,
3126 /*OUT*/ DEVMODEW *pdm);
3131 /*IN*/ ULONG_PTR iFile,
3137 /*IN*/ SURFOBJ *psoDest,
3138 /*IN*/ CLIPOBJ *pco,
3139 /*IN*/ XLATEOBJ *pxlo,
3140 /*IN*/ TRIVERTEX *pVertex,
3141 /*IN*/ ULONG nVertex,
3144 /*IN*/ RECTL *prclExtents,
3145 /*IN*/ POINTL *pptlDitherOrg,
3146 /*IN*/ ULONG ulMode);
3150 DrvIcmCheckBitmapBits(
3151 /*IN*/ DHPDEV dhpdev,
3152 /*IN*/ HANDLE hColorTransform,
3153 /*IN*/ SURFOBJ *pso,
3155 /*OUT*/ PBYTE paResults);
3159 DrvIcmCreateColorTransform(
3160 /*IN*/ DHPDEV dhpdev,
3161 /*IN*/ LPLOGCOLORSPACEW pLogColorSpace,
3162 /*IN*/ PVOID pvSourceProfile,
3163 /*IN*/ ULONG cjSourceProfile,
3164 /*IN*/ PVOID pvDestProfile,
3165 /*IN*/ ULONG cjDestProfile,
3166 /*IN*/ PVOID pvTargetProfile,
3167 /*IN*/ ULONG cjTargetProfile,
3168 /*IN*/ DWORD dwReserved);
3172 DrvIcmDeleteColorTransform(
3173 /*IN*/ DHPDEV dhpdev,
3174 /*IN*/ HANDLE hcmXform);
3176 /* DrvIcmSetDeviceGammaRamp.iFormat constants */
3177 #define IGRF_RGB_256BYTES 0x00000000
3178 #define IGRF_RGB_256WORDS 0x00000001
3182 DrvIcmSetDeviceGammaRamp(
3183 /*IN*/ DHPDEV dhpdev,
3184 /*IN*/ ULONG iFormat,
3185 /*IN*/ LPVOID lpRamp);
3209 ULONG ulFastCheckSum);
3214 /*IN*/ SURFOBJ *pso,
3217 /*IN*/ RECTL *prcl);
3222 /*IN*/ SURFOBJ *pso,
3223 /*IN*/ POINTL *pptl);
3228 /*IN*/ SURFOBJ *pso,
3230 /*IN*/ PVOID pvData);
3235 /*IN*/ SURFOBJ *pso,
3238 /*IN*/ FLONG flReserved);
3243 /*IN*/ SURFOBJ *pso,
3244 /*IN*/ CLIPOBJ *pco,
3245 /*IN*/ BRUSHOBJ *pbo,
3246 /*IN*/ POINTL *pptlBrushOrg,
3252 /*IN*/ SURFOBJ *psoTrg,
3253 /*IN*/ SURFOBJ *psoSrc,
3254 /*IN*/ SURFOBJ *psoMsk,
3255 /*IN*/ CLIPOBJ *pco,
3256 /*IN*/ XLATEOBJ *pxlo,
3257 /*IN*/ COLORADJUSTMENT *pca,
3258 /*IN*/ POINTL *pptlBrushOrg,
3259 /*IN*/ POINTFIX *pptfx,
3261 /*IN*/ POINTL *pptl,
3262 /*IN*/ ULONG iMode);
3264 /* DrvQueryAdvanceWidths.iMode constants */
3265 #define QAW_GETWIDTHS 0
3266 #define QAW_GETEASYWIDTHS 1
3270 DrvQueryAdvanceWidths(
3271 /*IN*/ DHPDEV dhpdev,
3272 /*IN*/ FONTOBJ *pfo,
3276 /*OUT*/ PVOID pvWidths,
3277 /*IN*/ ULONG cGlyphs);
3279 /* DrvQueryDeviceSupport.iType constants */
3280 #define QDS_CHECKJPEGFORMAT 0x00000000
3281 #define QDS_CHECKPNGFORMAT 0x00000001
3285 DrvQueryDeviceSupport(
3295 /* DrvQueryDriverInfo.dwMode constants */
3296 #define DRVQUERY_USERMODE 0x00000001
3309 /*IN*/ DHPDEV dhpdev,
3310 /*IN*/ ULONG_PTR iFile,
3312 /*IN*/ ULONG_PTR *pid);
3314 /* DrvQueryFontCaps.pulCaps constants */
3315 #define QC_OUTLINES 0x00000001
3316 #define QC_1BIT 0x00000002
3317 #define QC_4BIT 0x00000004
3319 #define QC_FONTDRIVERCAPS (QC_OUTLINES | QC_1BIT | QC_4BIT)
3324 /*IN*/ ULONG culCaps,
3326 /*OUT*/ ULONG *pulCaps);
3328 /* DrvQueryFontData.iMode constants */
3329 #define QFD_GLYPHANDBITMAP 1L
3330 #define QFD_GLYPHANDOUTLINE 2L
3331 #define QFD_MAXEXTENTS 3L
3332 #define QFD_TT_GLYPHANDBITMAP 4L
3333 #define QFD_TT_GRAY1_BITMAP 5L
3334 #define QFD_TT_GRAY2_BITMAP 6L
3335 #define QFD_TT_GRAY4_BITMAP 8L
3336 #define QFD_TT_GRAY8_BITMAP 9L
3338 #define QFD_TT_MONO_BITMAP QFD_TT_GRAY1_BITMAP
3343 /*IN*/ DHPDEV dhpdev,
3344 /*IN*/ FONTOBJ *pfo,
3347 /*IN OUT*/ GLYPHDATA *pgd,
3348 /*IN OUT*/ PVOID pv,
3349 /*IN*/ ULONG cjSize);
3351 /* DrvQueryFontFile.ulMode constants */
3352 #define QFF_DESCRIPTION 0x00000001
3353 #define QFF_NUMFACES 0x00000002
3358 /*IN*/ ULONG_PTR iFile,
3359 /*IN*/ ULONG ulMode,
3361 /*IN*/ ULONG *pulBuf);
3363 /* DrvQueryFontTree.iMode constants */
3364 #define QFT_UNICODE 0L
3365 #define QFT_LIGATURES 1L
3366 #define QFT_KERNPAIRS 2L
3367 #define QFT_GLYPHSET 3L
3372 /*IN*/ DHPDEV dhpdev,
3373 /*IN*/ ULONG_PTR iFile,
3376 /*IN*/ ULONG_PTR *pid);
3381 /*IN*/ FONTOBJ *pfo,
3382 /*IN*/ ULONG iMode);
3386 DrvQueryPerBandInfo(
3387 /*IN*/ SURFOBJ *pso,
3388 /*IN OUT*/ PERBANDINFO *pbi);
3390 /* DrvQueryTrueTypeOutline.bMetricsOnly constants */
3391 #define TTO_METRICS_ONLY 0x00000001
3392 #define TTO_QUBICS 0x00000002
3393 #define TTO_UNHINTED 0x00000004
3397 DrvQueryTrueTypeOutline(
3398 /*IN*/ DHPDEV dhpdev,
3399 /*IN*/ FONTOBJ *pfo,
3400 /*IN*/ HGLYPH hglyph,
3401 /*IN*/ BOOL bMetricsOnly,
3402 /*IN*/ GLYPHDATA *pgldt,
3405 /*OUT*/ TTPOLYGONHEADER *ppoly);
3409 DrvQueryTrueTypeTable(
3410 /*IN*/ ULONG_PTR iFile,
3411 /*IN*/ ULONG ulFont,
3413 /*IN*/ PTRDIFF dpStart,
3416 /*OUT*/ BYTE *pjBuf,
3418 /*OUT*/ PBYTE *ppjTable,
3420 /*OUT*/ ULONG *pcjTable);
3422 /* DrvRealizeBrush.iHatch constants */
3423 #define RB_DITHERCOLOR 0x80000000L
3425 #define HS_DDI_MAX 6
3430 /*IN*/ BRUSHOBJ *pbo,
3431 /*IN*/ SURFOBJ *psoTarget,
3432 /*IN*/ SURFOBJ *psoPattern,
3433 /*IN*/ SURFOBJ *psoMask,
3434 /*IN*/ XLATEOBJ *pxlo,
3435 /*IN*/ ULONG iHatch);
3437 /* DrvResetDevice return values */
3438 #define DRD_SUCCESS 0
3444 /*IN*/ DHPDEV dhpdev,
3445 /*IN*/ PVOID Reserved);
3453 /* DrvSaveScreenBits.iMode constants */
3454 #define SS_SAVE 0x00000000
3455 #define SS_RESTORE 0x00000001
3456 #define SS_FREE 0x00000002
3461 /*IN*/ SURFOBJ *pso,
3463 /*IN*/ ULONG_PTR ident,
3464 /*IN*/ RECTL *prcl);
3469 /*IN*/ SURFOBJ *pso);
3474 /*IN*/ DHPDEV dhpdev,
3475 /*IN*/ PALOBJ *ppalo,
3477 /*IN*/ ULONG iStart,
3478 /*IN*/ ULONG cColors);
3483 /*IN*/ SURFOBJ *pso,
3484 /*IN*/ LONG iPixelFormat,
3487 /* DrvSetPointerShape return values */
3488 #define SPS_ERROR 0x00000000
3489 #define SPS_DECLINE 0x00000001
3490 #define SPS_ACCEPT_NOEXCLUDE 0x00000002
3491 #define SPS_ACCEPT_EXCLUDE 0x00000003
3492 #define SPS_ACCEPT_SYNCHRONOUS 0x00000004
3494 /* DrvSetPointerShape.fl constants */
3495 #define SPS_CHANGE 0x00000001L
3496 #define SPS_ASYNCCHANGE 0x00000002L
3497 #define SPS_ANIMATESTART 0x00000004L
3498 #define SPS_ANIMATEUPDATE 0x00000008L
3499 #define SPS_ALPHA 0x00000010L
3500 #define SPS_LENGTHMASK 0x00000F00L
3501 #define SPS_FREQMASK 0x000FF000L
3506 /*IN*/ SURFOBJ *pso,
3507 /*IN*/ SURFOBJ *psoMask,
3508 /*IN*/ SURFOBJ *psoColor,
3509 /*IN*/ XLATEOBJ *pxlo,
3520 /*IN*/ SURFOBJ *pso,
3521 /*IN*/ POINTL *pptl);
3526 /*IN*/ SURFOBJ *pso,
3527 /*IN*/ LPWSTR pwszDocName,
3528 /*IN*/ DWORD dwJobId);
3533 /*IN*/ SURFOBJ *pso);
3538 /*IN*/ SURFOBJ *psoDest,
3539 /*IN*/ SURFOBJ *psoSrc,
3540 /*IN*/ SURFOBJ *psoMask,
3541 /*IN*/ CLIPOBJ *pco,
3542 /*IN*/ XLATEOBJ *pxlo,
3543 /*IN*/ COLORADJUSTMENT *pca,
3544 /*IN*/ POINTL *pptlHTOrg,
3545 /*IN*/ RECTL *prclDest,
3546 /*IN*/ RECTL *prclSrc,
3547 /*IN*/ POINTL *pptlMask,
3548 /*IN*/ ULONG iMode);
3553 /*IN*/ SURFOBJ *psoDest,
3554 /*IN*/ SURFOBJ *psoSrc,
3555 /*IN*/ SURFOBJ *psoMask,
3556 /*IN*/ CLIPOBJ *pco,
3557 /*IN*/ XLATEOBJ *pxlo,
3558 /*IN*/ COLORADJUSTMENT *pca,
3559 /*IN*/ POINTL *pptlHTOrg,
3560 /*IN*/ RECTL *prclDest,
3561 /*IN*/ RECTL *prclSrc,
3562 /*IN*/ POINTL *pptlMask,
3564 /*IN*/ BRUSHOBJ *pbo,
3569 DrvStrokeAndFillPath(
3570 /*IN*/ SURFOBJ *pso,
3571 /*IN*/ PATHOBJ *ppo,
3572 /*IN*/ CLIPOBJ *pco,
3573 /*IN*/ XFORMOBJ *pxo,
3574 /*IN*/ BRUSHOBJ *pboStroke,
3575 /*IN*/ LINEATTRS *plineattrs,
3576 /*IN*/ BRUSHOBJ *pboFill,
3577 /*IN*/ POINTL *pptlBrushOrg,
3579 /*IN*/ FLONG flOptions);
3584 /*IN*/ SURFOBJ *pso,
3585 /*IN*/ PATHOBJ *ppo,
3586 /*IN*/ CLIPOBJ *pco,
3587 /*IN*/ XFORMOBJ *pxo,
3588 /*IN*/ BRUSHOBJ *pbo,
3589 /*IN*/ POINTL *pptlBrushOrg,
3590 /*IN*/ LINEATTRS *plineattrs,
3596 /*IN*/ SURFOBJ *pso,
3597 /*IN*/ WNDOBJ *pwo);
3602 /*IN*/ DHPDEV dhpdev,
3603 /*IN*/ RECTL *prcl);
3605 /* DrvSynchronizeSurface.fl constants */
3606 #define DSS_TIMER_EVENT 0x00000001
3607 #define DSS_FLUSH_EVENT 0x00000002
3611 DrvSynchronizeSurface(
3612 /*IN*/ SURFOBJ *pso,
3619 /*IN*/ SURFOBJ *pso,
3620 /*IN*/ STROBJ *pstro,
3621 /*IN*/ FONTOBJ *pfo,
3622 /*IN*/ CLIPOBJ *pco,
3623 /*IN*/ RECTL *prclExtra,
3624 /*IN*/ RECTL *prclOpaque,
3625 /*IN*/ BRUSHOBJ *pboFore,
3626 /*IN*/ BRUSHOBJ *pboOpaque,
3627 /*IN*/ POINTL *pptlOrg,
3633 /*IN*/ SURFOBJ *psoDst,
3634 /*IN*/ SURFOBJ *psoSrc,
3635 /*IN*/ CLIPOBJ *pco,
3636 /*IN*/ XLATEOBJ *pxlo,
3637 /*IN*/ RECTL *prclDst,
3638 /*IN*/ RECTL *prclSrc,
3639 /*IN*/ ULONG iTransColor,
3640 /*IN*/ ULONG ulReserved);
3645 /*IN*/ ULONG_PTR iFile);
3647 /* WNDOBJCHANGEPROC.fl constants */
3648 #define WOC_RGN_CLIENT_DELTA 0x00000001
3649 #define WOC_RGN_CLIENT 0x00000002
3650 #define WOC_RGN_SURFACE_DELTA 0x00000004
3651 #define WOC_RGN_SURFACE 0x00000008
3652 #define WOC_CHANGED 0x00000010
3653 #define WOC_DELETE 0x00000020
3654 #define WOC_DRAWN 0x00000040
3655 #define WOC_SPRITE_OVERLAP 0x00000080
3656 #define WOC_SPRITE_NO_OVERLAP 0x00000100
3659 (CALLBACK * WNDOBJCHANGEPROC)(
3665 (*PFN_DrvAlphaBlend)(
3666 /*IN*/ SURFOBJ *psoDest,
3667 /*IN*/ SURFOBJ *psoSrc,
3668 /*IN*/ CLIPOBJ *pco,
3669 /*IN*/ XLATEOBJ *pxlo,
3670 /*IN*/ RECTL *prclDest,
3671 /*IN*/ RECTL *prclSrc,
3672 /*IN*/ BLENDOBJ *pBlendObj);
3675 (*PFN_DrvAssertMode)(
3676 /*IN*/ DHPDEV dhpdev,
3677 /*IN*/ BOOL bEnable);
3681 /*IN*/ SURFOBJ *psoTrg,
3682 /*IN*/ SURFOBJ *psoSrc,
3683 /*IN*/ SURFOBJ *psoMask,
3684 /*IN*/ CLIPOBJ *pco,
3685 /*IN*/ XLATEOBJ *pxlo,
3686 /*IN*/ RECTL *prclTrg,
3687 /*IN*/ POINTL *pptlSrc,
3688 /*IN*/ POINTL *pptlMask,
3689 /*IN*/ BRUSHOBJ *pbo,
3690 /*IN*/ POINTL *pptlBrush,
3694 (*PFN_DrvCompletePDEV)(
3695 /*IN*/ DHPDEV dhpdev,
3700 /*IN*/ SURFOBJ *psoDest,
3701 /*IN*/ SURFOBJ *psoSrc,
3702 /*IN*/ CLIPOBJ *pco,
3703 /*IN*/ XLATEOBJ *pxlo,
3704 /*IN*/ RECTL *prclDest,
3705 /*IN*/ POINTL *pptlSrc);
3707 typedef HBITMAP DDKAPI
3708 (*PFN_DrvCreateDeviceBitmap)(
3709 /*IN*/ DHPDEV dhpdev,
3711 /*IN*/ ULONG iFormat);
3714 (*PFN_DrvDeleteDeviceBitmap)(
3715 /*IN*/ DHSURF dhsurf);
3717 typedef HBITMAP DDKAPI
3718 (*PFN_DrvDeriveSurface)(
3719 DD_DIRECTDRAW_GLOBAL *pDirectDraw,
3720 DD_SURFACE_LOCAL *pSurface);
3723 (*PFN_DrvDescribePixelFormat)(
3724 /*IN*/ DHPDEV dhpdev,
3725 /*IN*/ LONG iPixelFormat,
3728 /*OUT*/ PIXELFORMATDESCRIPTOR *ppfd);
3731 (*PFN_DrvDestroyFont)(
3732 /*IN*/ FONTOBJ *pfo);
3735 (*PFN_DrvDisableDriver)(
3739 (*PFN_DrvDisablePDEV)(
3740 /*IN*/ DHPDEV dhpdev);
3743 (*PFN_DrvDisableSurface)(
3744 /*IN*/ DHPDEV dhpdev);
3746 typedef ULONG DDKAPI
3747 (*PFN_DrvDitherColor)(
3748 /*IN*/ DHPDEV dhpdev,
3752 /*OUT*/ ULONG *pul);
3754 typedef ULONG DDKAPI
3755 (*PFN_DrvDrawEscape)(
3756 /*IN*/ SURFOBJ *pso,
3758 /*IN*/ CLIPOBJ *pco,
3764 (*PFN_DrvEnableDriver)(
3765 /*IN*/ ULONG iEngineVersion,
3768 /*OUT*/ DRVENABLEDATA *pded);
3770 typedef DHPDEV DDKAPI
3771 (*PFN_DrvEnablePDEV)(
3772 /*IN*/ DEVMODEW *pdm,
3773 /*IN*/ LPWSTR pwszLogAddress,
3776 /*OUT*/ HSURF *phsurfPatterns,
3777 /*IN*/ ULONG cjCaps,
3779 /*OUT*/ ULONG *pdevcaps,
3780 /*IN*/ ULONG cjDevInfo,
3782 /*OUT*/ DEVINFO *pdi,
3784 /*IN*/ LPWSTR pwszDeviceName,
3785 /*IN*/ HANDLE hDriver);
3787 typedef HSURF DDKAPI
3788 (*PFN_DrvEnableSurface)(
3789 /*IN*/ DHPDEV dhpdev);
3793 /*IN*/ SURFOBJ *pso,
3796 typedef ULONG DDKAPI
3798 /*IN*/ SURFOBJ *pso,
3804 /*OUT*/ PVOID pvOut);
3808 /*IN*/ SURFOBJ *pso,
3809 /*IN*/ PATHOBJ *ppo,
3810 /*IN*/ CLIPOBJ *pco,
3811 /*IN*/ BRUSHOBJ *pbo,
3812 /*IN*/ POINTL *pptlBrushOrg,
3814 /*IN*/ FLONG flOptions);
3816 typedef ULONG DDKAPI
3817 (*PFN_DrvFontManagement)(
3818 /*IN*/ SURFOBJ *pso,
3819 /*IN*/ FONTOBJ *pfo,
3825 /*OUT*/ PVOID pvOut);
3830 /*IN*/ ULONG_PTR id);
3832 typedef ULONG DDKAPI
3833 (*PFN_DrvGetGlyphMode)(
3834 /*IN*/ DHPDEV dhpdev,
3835 /*IN*/ FONTOBJ *pfo);
3837 typedef ULONG DDKAPI
3839 /*IN*/ HANDLE hDriver,
3840 /*IN*/ ULONG cjSize,
3842 /*OUT*/ DEVMODEW *pdm);
3844 typedef PVOID DDKAPI
3845 (*PFN_DrvGetTrueTypeFile)(
3846 /*IN*/ ULONG_PTR iFile,
3850 (*PFN_DrvGradientFill)(
3851 /*IN*/ SURFOBJ *psoDest,
3852 /*IN*/ CLIPOBJ *pco,
3853 /*IN*/ XLATEOBJ *pxlo,
3854 /*IN*/ TRIVERTEX *pVertex,
3855 /*IN*/ ULONG nVertex,
3858 /*IN*/ RECTL *prclExtents,
3859 /*IN*/ POINTL *pptlDitherOrg,
3860 /*IN*/ ULONG ulMode);
3863 (*PFN_DrvIcmCheckBitmapBits)(
3864 /*IN*/ DHPDEV dhpdev,
3865 /*IN*/ HANDLE hColorTransform,
3866 /*IN*/ SURFOBJ *pso,
3868 /*OUT*/ PBYTE paResults);
3870 typedef HANDLE DDKAPI
3871 (*PFN_DrvIcmCreateColorTransform)(
3872 /*IN*/ DHPDEV dhpdev,
3873 /*IN*/ LPLOGCOLORSPACEW pLogColorSpace,
3874 /*IN*/ PVOID pvSourceProfile,
3875 /*IN*/ ULONG cjSourceProfile,
3876 /*IN*/ PVOID pvDestProfile,
3877 /*IN*/ ULONG cjDestProfile,
3878 /*IN*/ PVOID pvTargetProfile,
3879 /*IN*/ ULONG cjTargetProfile,
3880 /*IN*/ DWORD dwReserved);
3883 (*PFN_DrvIcmDeleteColorTransform)(
3884 /*IN*/ DHPDEV dhpdev,
3885 /*IN*/ HANDLE hcmXform);
3888 (*PFN_DrvIcmSetDeviceGammaRamp)(
3889 /*IN*/ DHPDEV dhpdev,
3890 /*IN*/ ULONG iFormat,
3891 /*IN*/ LPVOID lpRamp);
3905 typedef ULONG_PTR DDKAPI
3906 (*PFN_DrvLoadFontFile)(
3913 ULONG ulFastCheckSum);
3916 (*PFN_DrvMovePointer)(
3917 /*IN*/ SURFOBJ *pso,
3920 /*IN*/ RECTL *prcl);
3924 /*IN*/ SURFOBJ *pso,
3925 /*IN*/ POINTL *pptl);
3929 /*IN*/ SURFOBJ *pso,
3931 /*IN*/ PVOID pvData);
3935 /*IN*/ SURFOBJ *pso,
3938 /*IN*/ FLONG flReserved);
3942 /*IN*/ SURFOBJ *pso,
3943 /*IN*/ CLIPOBJ *pco,
3944 /*IN*/ BRUSHOBJ *pbo,
3945 /*IN*/ POINTL *pptlBrushOrg,
3950 /*IN*/ SURFOBJ *psoTrg,
3951 /*IN*/ SURFOBJ *psoSrc,
3952 /*IN*/ SURFOBJ *psoMsk,
3953 /*IN*/ CLIPOBJ *pco,
3954 /*IN*/ XLATEOBJ *pxlo,
3955 /*IN*/ COLORADJUSTMENT *pca,
3956 /*IN*/ POINTL *pptlBrushOrg,
3957 /*IN*/ POINTFIX *pptfx,
3959 /*IN*/ POINTL *pptl,
3960 /*IN*/ ULONG iMode);
3963 (*PFN_DrvQueryAdvanceWidths)(
3964 /*IN*/ DHPDEV dhpdev,
3965 /*IN*/ FONTOBJ *pfo,
3969 /*OUT*/ PVOID pvWidths,
3970 /*IN*/ ULONG cGlyphs);
3973 (*PFN_DrvQueryDeviceSupport)(
3984 (*PFN_DrvQueryDriverInfo)(
3990 typedef PIFIMETRICS DDKAPI
3991 (*PFN_DrvQueryFont)(
3992 /*IN*/ DHPDEV dhpdev,
3993 /*IN*/ ULONG_PTR iFile,
3995 /*IN*/ ULONG_PTR *pid);
3998 (*PFN_DrvQueryFontCaps)(
3999 /*IN*/ ULONG culCaps,
4001 /*OUT*/ ULONG *pulCaps);
4004 (*PFN_DrvQueryFontData)(
4005 /*IN*/ DHPDEV dhpdev,
4006 /*IN*/ FONTOBJ *pfo,
4009 /*IN OUT*/ GLYPHDATA *pgd,
4010 /*IN OUT*/ PVOID pv,
4011 /*IN*/ ULONG cjSize);
4014 (*PFN_DrvQueryFontFile)(
4015 /*IN*/ ULONG_PTR iFile,
4016 /*IN*/ ULONG ulMode,
4018 /*IN*/ ULONG *pulBuf);
4020 typedef PVOID DDKAPI
4021 (*PFN_DrvQueryFontTree)(
4022 /*IN*/ DHPDEV dhpdev,
4023 /*IN*/ ULONG_PTR iFile,
4026 /*IN*/ ULONG_PTR *pid);
4028 typedef PFD_GLYPHATTR DDKAPI
4029 (*PFN_DrvQueryGlyphAttrs)(
4030 /*IN*/ FONTOBJ *pfo,
4031 /*IN*/ ULONG iMode);
4033 typedef ULONG DDKAPI
4034 (*PFN_DrvQueryPerBandInfo)(
4035 /*IN*/ SURFOBJ *pso,
4036 /*IN OUT*/ PERBANDINFO *pbi);
4039 (*PFN_DrvQueryTrueTypeOutline)(
4040 /*IN*/ DHPDEV dhpdev,
4041 /*IN*/ FONTOBJ *pfo,
4042 /*IN*/ HGLYPH hglyph,
4043 /*IN*/ BOOL bMetricsOnly,
4044 /*IN*/ GLYPHDATA *pgldt,
4046 /*OUT*/ TTPOLYGONHEADER *ppoly);
4049 (*PFN_DrvQueryTrueTypeTable)(
4050 /*IN*/ ULONG_PTR iFile,
4051 /*IN*/ ULONG ulFont,
4053 /*IN*/ PTRDIFF dpStart,
4055 /*OUT*/ BYTE *pjBuf,
4056 /*OUT*/ PBYTE *ppjTable,
4057 /*OUT*/ ULONG *pcjTable);
4060 (*PFN_DrvRealizeBrush)(
4061 /*IN*/ BRUSHOBJ *pbo,
4062 /*IN*/ SURFOBJ *psoTarget,
4063 /*IN*/ SURFOBJ *psoPattern,
4064 /*IN*/ SURFOBJ *psoMask,
4065 /*IN*/ XLATEOBJ *pxlo,
4066 /*IN*/ ULONG iHatch);
4068 typedef ULONG DDKAPI
4069 (*PFN_DrvResetDevice)(
4070 /*IN*/ DHPDEV dhpdev,
4071 /*IN*/ PVOID Reserved);
4074 (*PFN_DrvResetPDEV)(
4078 typedef ULONG_PTR DDKAPI
4079 (*PFN_DrvSaveScreenBits)(
4080 /*IN*/ SURFOBJ *pso,
4082 /*IN*/ ULONG_PTR ident,
4083 /*IN*/ RECTL *prcl);
4087 /*IN*/ SURFOBJ *pso);
4090 (*PFN_DrvSetPalette)(
4091 /*IN*/ DHPDEV dhpdev,
4092 /*IN*/ PALOBJ *ppalo,
4094 /*IN*/ ULONG iStart,
4095 /*IN*/ ULONG cColors);
4098 (*PFN_DrvSetPixelFormat)(
4099 /*IN*/ SURFOBJ *pso,
4100 /*IN*/ LONG iPixelFormat,
4103 typedef ULONG DDKAPI
4104 (*PFN_DrvSetPointerShape)(
4105 /*IN*/ SURFOBJ *pso,
4106 /*IN*/ SURFOBJ *psoMask,
4107 /*IN*/ SURFOBJ *psoColor,
4108 /*IN*/ XLATEOBJ *pxlo,
4117 (*PFN_DrvStartBanding)(
4118 /*IN*/ SURFOBJ *pso,
4119 /*IN*/ POINTL *pptl);
4123 /*IN*/ SURFOBJ *pso,
4124 /*IN*/ LPWSTR pwszDocName,
4125 /*IN*/ DWORD dwJobId);
4128 (*PFN_DrvStartPage)(
4129 /*IN*/ SURFOBJ *pso);
4132 (*PFN_DrvStretchBlt)(
4133 /*IN*/ SURFOBJ *psoDest,
4134 /*IN*/ SURFOBJ *psoSrc,
4135 /*IN*/ SURFOBJ *psoMask,
4136 /*IN*/ CLIPOBJ *pco,
4137 /*IN*/ XLATEOBJ *pxlo,
4138 /*IN*/ COLORADJUSTMENT *pca,
4139 /*IN*/ POINTL *pptlHTOrg,
4140 /*IN*/ RECTL *prclDest,
4141 /*IN*/ RECTL *prclSrc,
4142 /*IN*/ POINTL *pptlMask,
4143 /*IN*/ ULONG iMode);
4146 (*PFN_DrvStretchBltROP)(
4147 /*IN*/ SURFOBJ *psoDest,
4148 /*IN*/ SURFOBJ *psoSrc,
4149 /*IN*/ SURFOBJ *psoMask,
4150 /*IN*/ CLIPOBJ *pco,
4151 /*IN*/ XLATEOBJ *pxlo,
4152 /*IN*/ COLORADJUSTMENT *pca,
4153 /*IN*/ POINTL *pptlHTOrg,
4154 /*IN*/ RECTL *prclDest,
4155 /*IN*/ RECTL *prclSrc,
4156 /*IN*/ POINTL *pptlMask,
4158 /*IN*/ BRUSHOBJ *pbo,
4162 (*PFN_DrvStrokeAndFillPath)(
4163 /*IN*/ SURFOBJ *pso,
4164 /*IN*/ PATHOBJ *ppo,
4165 /*IN*/ CLIPOBJ *pco,
4166 /*IN*/ XFORMOBJ *pxo,
4167 /*IN*/ BRUSHOBJ *pboStroke,
4168 /*IN*/ LINEATTRS *plineattrs,
4169 /*IN*/ BRUSHOBJ *pboFill,
4170 /*IN*/ POINTL *pptlBrushOrg,
4172 /*IN*/ FLONG flOptions);
4175 (*PFN_DrvStrokePath)(
4176 /*IN*/ SURFOBJ *pso,
4177 /*IN*/ PATHOBJ *ppo,
4178 /*IN*/ CLIPOBJ *pco,
4179 /*IN*/ XFORMOBJ *pxo,
4180 /*IN*/ BRUSHOBJ *pbo,
4181 /*IN*/ POINTL *pptlBrushOrg,
4182 /*IN*/ LINEATTRS *plineattrs,
4186 (*PFN_DrvSwapBuffers)(
4187 /*IN*/ SURFOBJ *pso,
4188 /*IN*/ WNDOBJ *pwo);
4191 (*PFN_DrvSynchronize)(
4192 /*IN*/ DHPDEV dhpdev,
4193 /*IN*/ RECTL *prcl);
4196 (*PFN_DrvSynchronizeSurface)(
4197 /*IN*/ SURFOBJ *pso,
4203 /*IN*/ SURFOBJ *pso,
4204 /*IN*/ STROBJ *pstro,
4205 /*IN*/ FONTOBJ *pfo,
4206 /*IN*/ CLIPOBJ *pco,
4207 /*IN*/ RECTL *prclExtra,
4208 /*IN*/ RECTL *prclOpaque,
4209 /*IN*/ BRUSHOBJ *pboFore,
4210 /*IN*/ BRUSHOBJ *pboOpaque,
4211 /*IN*/ POINTL *pptlOrg,
4215 (*PFN_DrvTransparentBlt)(
4216 /*IN*/ SURFOBJ *psoDst,
4217 /*IN*/ SURFOBJ *psoSrc,
4218 /*IN*/ CLIPOBJ *pco,
4219 /*IN*/ XLATEOBJ *pxlo,
4220 /*IN*/ RECTL *prclDst,
4221 /*IN*/ RECTL *prclSrc,
4222 /*IN*/ ULONG iTransColor,
4223 /*IN*/ ULONG ulReserved);
4226 (*PFN_DrvUnloadFontFile)(
4227 /*IN*/ ULONG_PTR iFile);
4233 DrvDisableDirectDraw(
4234 /*IN*/ DHPDEV dhpdev);
4239 DrvEnableDirectDraw(
4240 /*IN*/ DHPDEV dhpdev,
4241 /*OUT*/ DD_CALLBACKS *pCallBacks,
4242 /*OUT*/ DD_SURFACECALLBACKS *pSurfaceCallBacks,
4243 /*OUT*/ DD_PALETTECALLBACKS *pPaletteCallBacks);
4248 DrvGetDirectDrawInfo(
4249 /*IN*/ DHPDEV dhpdev,
4250 /*OUT*/ DD_HALINFO *pHalInfo,
4251 /*OUT*/ DWORD *pdwNumHeaps,
4252 /*OUT*/ VIDEOMEMORY *pvmList,
4253 /*OUT*/ DWORD *pdwNumFourCCCodes,
4254 /*OUT*/ DWORD *pdwFourCC);
4260 #endif /* defined __VIDEO_H */
4262 #endif /* __WINDDI_H */