4 * GDI device driver interface
6 * This file is part of the w32api package.
9 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net>
11 * THIS SOFTWARE IS NOT COPYRIGHTED
13 * This source code is offered for use in the public domain. You may
14 * use, modify or distribute it freely.
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.
27 #pragma GCC system_header
31 #error video.h cannot be included with winddi.h
41 #ifndef __DD_INCLUDED__
42 /* FIXME: Some DirectDraw structures not added yet */
43 typedef ULONG_PTR FLATPTR
;
44 typedef struct _DD_SURFACECALLBACKS
{
45 } DD_SURFACECALLBACKS
, *PDD_SURFACECALLBACKS
;
46 typedef struct _DD_PALETTECALLBACKS
{
47 } DD_PALETTECALLBACKS
, *PDD_PALETTECALLBACKS
;
48 typedef struct _DD_CALLBACKS
{
49 } DD_CALLBACKS
, *PDD_CALLBACKS
;
50 typedef struct _DD_HALINFO
{
51 } DD_HALINFO
, *PDD_HALINFO
;
52 typedef struct _VIDEOMEMORY
{
53 } VIDEOMEMORY
, *LPVIDEOMEMORY
;
54 typedef struct _DD_DIRECTDRAW_GLOBAL
{
55 } DD_DIRECTDRAW_GLOBAL
, *LPDD_DIRECTDRAW_GLOBAL
;
56 typedef struct _DD_SURFACE_LOCAL
{
57 } DD_SURFACE_LOCAL
, *PDD_SURFACE_LOCAL
, *LPDD_SURFACE_LOCAL
;
60 #ifndef __DDRAWI_INCLUDED__
61 typedef PVOID LPVIDMEM
;
64 #if !defined(__DD_INCLUDED__) && !defined(__DDRAWI_INCLUDED__)
65 typedef struct _DDSCAPS
{
67 typedef struct _DDSCAPSEX
{
68 } DDSCAPSEX
, *PDDSCAPSEX
;
69 typedef PVOID LPVMEMHEAP
;
73 #define WIN32KAPI DECL_EXPORT
75 #define WIN32KAPI DECL_IMPORT
78 #define DDI_DRIVER_VERSION_NT4 0x00020000
79 #define DDI_DRIVER_VERSION_SP3 0x00020003
80 #define DDI_DRIVER_VERSION_NT5 0x00030000
81 #define DDI_DRIVER_VERSION_NT5_01 0x00030100
83 #define GDI_DRIVER_VERSION 0x4000
99 typedef ULONG_PTR HFF
;
100 typedef ULONG_PTR HFC
;
102 typedef LONG PTRDIFF
;
103 typedef PTRDIFF
*PPTRDIFF
;
108 typedef ULONG HGLYPH
;
109 typedef HGLYPH
*PHGLYPH
;
111 typedef LONG_PTR (DDKAPI
*PFN
)();
114 DECLARE_HANDLE(HDEV
);
115 DECLARE_HANDLE(HSURF
);
116 DECLARE_HANDLE(DHSURF
);
117 DECLARE_HANDLE(DHPDEV
);
118 DECLARE_HANDLE(HDRVOBJ
);
121 #define GDI_DRIVER_VERSION 0x4000
123 typedef struct _ENG_EVENT
*PEVENT
;
125 #define OPENGL_CMD 4352
126 #define OPENGL_GETINFO 4353
127 #define WNDOBJ_SETUP 4354
129 #define FD_ERROR 0xFFFFFFFF
130 #define DDI_ERROR 0xFFFFFFFF
132 #define HFF_INVALID ((HFF) 0)
133 #define HFC_INVALID ((HFC) 0)
134 #define HGLYPH_INVALID ((HGLYPH) -1)
136 #define FP_ALTERNATEMODE 1
137 #define FP_WINDINGMODE 2
139 #define DN_ACCELERATION_LEVEL 1
140 #define DN_DEVICE_ORIGIN 2
141 #define DN_SLEEP_MODE 3
142 #define DN_DRAWING_BEGIN 4
146 #define DCR_HALFTONE 2
148 #define GX_IDENTITY 0
153 typedef struct _POINTE
{
158 typedef union _FLOAT_LONG
{
161 } FLOAT_LONG
, *PFLOAT_LONG
;
163 typedef struct _POINTFIX
{
166 } POINTFIX
, *PPOINTFIX
;
168 typedef struct _RECTFX
{
175 typedef struct _POINTQF
{
178 } POINTQF
, *PPOINTQF
;
181 typedef struct _BLENDOBJ
{
182 BLENDFUNCTION BlendFunction
;
183 } BLENDOBJ
,*PBLENDOBJ
;
185 /* BRUSHOBJ.flColorType */
186 #define BR_DEVICE_ICM 0x01
187 #define BR_HOST_ICM 0x02
188 #define BR_CMYKCOLOR 0x04
189 #define BR_ORIGCOLOR 0x08
191 typedef struct _BRUSHOBJ
{
197 typedef struct _CIECHROMA
{
203 typedef struct _RUN
{
208 typedef struct _CLIPLINE
{
214 } CLIPLINE
, *PCLIPLINE
;
216 /* CLIPOBJ.iDComplexity constants */
221 /* CLIPOBJ.iFComplexity constants */
226 /* CLIPOBJ.iMode constants */
227 #define TC_RECTANGLES 0
230 /* CLIPOBJ.fjOptions constants */
231 #define OC_BANK_CLIP 1
233 typedef struct _CLIPOBJ
{
242 typedef struct _COLORINFO
{
249 CIECHROMA AlignmentWhite
;
253 LDECI4 MagentaInCyanDye
;
254 LDECI4 YellowInCyanDye
;
255 LDECI4 CyanInMagentaDye
;
256 LDECI4 YellowInMagentaDye
;
257 LDECI4 CyanInYellowDye
;
258 LDECI4 MagentaInYellowDye
;
259 } COLORINFO
, *PCOLORINFO
;
261 /* DEVHTADJDATA.DeviceFlags constants */
262 #define DEVHTADJF_COLOR_DEVICE 0x00000001
263 #define DEVHTADJF_ADDITIVE_DEVICE 0x00000002
265 typedef struct _DEVHTINFO
{
270 } DEVHTINFO
, *PDEVHTINFO
;
272 typedef struct _DEVHTADJDATA
{
276 PDEVHTINFO pDefHTInfo
;
277 PDEVHTINFO pAdjHTInfo
;
278 } DEVHTADJDATA
, *PDEVHTADJDATA
;
280 /* DEVINFO.flGraphicsCaps flags */
281 #define GCAPS_BEZIERS 0x00000001
282 #define GCAPS_GEOMETRICWIDE 0x00000002
283 #define GCAPS_ALTERNATEFILL 0x00000004
284 #define GCAPS_WINDINGFILL 0x00000008
285 #define GCAPS_HALFTONE 0x00000010
286 #define GCAPS_COLOR_DITHER 0x00000020
287 #define GCAPS_HORIZSTRIKE 0x00000040
288 #define GCAPS_VERTSTRIKE 0x00000080
289 #define GCAPS_OPAQUERECT 0x00000100
290 #define GCAPS_VECTORFONT 0x00000200
291 #define GCAPS_MONO_DITHER 0x00000400
292 #define GCAPS_ASYNCCHANGE 0x00000800
293 #define GCAPS_ASYNCMOVE 0x00001000
294 #define GCAPS_DONTJOURNAL 0x00002000
295 #define GCAPS_DIRECTDRAW 0x00004000
296 #define GCAPS_ARBRUSHOPAQUE 0x00008000
297 #define GCAPS_PANNING 0x00010000
298 #define GCAPS_HIGHRESTEXT 0x00040000
299 #define GCAPS_PALMANAGED 0x00080000
300 #define GCAPS_DITHERONREALIZE 0x00200000
301 #define GCAPS_NO64BITMEMACCESS 0x00400000
302 #define GCAPS_FORCEDITHER 0x00800000
303 #define GCAPS_GRAY16 0x01000000
304 #define GCAPS_ICM 0x02000000
305 #define GCAPS_CMYKCOLOR 0x04000000
306 #define GCAPS_LAYERED 0x08000000
307 #define GCAPS_ARBRUSHTEXT 0x10000000
308 #define GCAPS_SCREENPRECISION 0x20000000
309 #define GCAPS_FONT_RASTERIZER 0x40000000
310 #define GCAPS_NUP 0x80000000
312 /* DEVINFO.iDitherFormat constants */
324 /* DEVINFO.flGraphicsCaps2 flags */
325 #define GCAPS2_JPEGSRC 0x00000001
326 #define GCAPS2_xxxx 0x00000002
327 #define GCAPS2_PNGSRC 0x00000008
328 #define GCAPS2_CHANGEGAMMARAMP 0x00000010
329 #define GCAPS2_ALPHACURSOR 0x00000020
330 #define GCAPS2_SYNCFLUSH 0x00000040
331 #define GCAPS2_SYNCTIMER 0x00000080
332 #define GCAPS2_ICD_MULTIMON 0x00000100
333 #define GCAPS2_MOUSETRAILS 0x00000200
334 #define GCAPS2_RESERVED1 0x00000400
336 typedef struct _DEVINFO
{
337 FLONG flGraphicsCaps
;
338 LOGFONTW lfDefaultFont
;
339 LOGFONTW lfAnsiVarFont
;
340 LOGFONTW lfAnsiFixFont
;
345 HPALETTE hpalDefault
;
346 FLONG flGraphicsCaps2
;
347 } DEVINFO
, *PDEVINFO
;
349 typedef struct _DRIVEROBJ
*PDRIVEROBJ
;
351 typedef BOOL DDKAPI CALLBACK
353 /*IN*/ PDRIVEROBJ pDriverObj
);
355 typedef struct _DRIVEROBJ
{
357 FREEOBJPROC pFreeProc
;
362 /* DRVFN.iFunc constants */
363 #define INDEX_DrvEnablePDEV 0L
364 #define INDEX_DrvCompletePDEV 1L
365 #define INDEX_DrvDisablePDEV 2L
366 #define INDEX_DrvEnableSurface 3L
367 #define INDEX_DrvDisableSurface 4L
368 #define INDEX_DrvAssertMode 5L
369 #define INDEX_DrvOffset 6L
370 #define INDEX_DrvResetPDEV 7L
371 #define INDEX_DrvDisableDriver 8L
372 #define INDEX_DrvCreateDeviceBitmap 10L
373 #define INDEX_DrvDeleteDeviceBitmap 11L
374 #define INDEX_DrvRealizeBrush 12L
375 #define INDEX_DrvDitherColor 13L
376 #define INDEX_DrvStrokePath 14L
377 #define INDEX_DrvFillPath 15L
378 #define INDEX_DrvStrokeAndFillPath 16L
379 #define INDEX_DrvPaint 17L
380 #define INDEX_DrvBitBlt 18L
381 #define INDEX_DrvCopyBits 19L
382 #define INDEX_DrvStretchBlt 20L
383 #define INDEX_DrvSetPalette 22L
384 #define INDEX_DrvTextOut 23L
385 #define INDEX_DrvEscape 24L
386 #define INDEX_DrvDrawEscape 25L
387 #define INDEX_DrvQueryFont 26L
388 #define INDEX_DrvQueryFontTree 27L
389 #define INDEX_DrvQueryFontData 28L
390 #define INDEX_DrvSetPointerShape 29L
391 #define INDEX_DrvMovePointer 30L
392 #define INDEX_DrvLineTo 31L
393 #define INDEX_DrvSendPage 32L
394 #define INDEX_DrvStartPage 33L
395 #define INDEX_DrvEndDoc 34L
396 #define INDEX_DrvStartDoc 35L
397 #define INDEX_DrvGetGlyphMode 37L
398 #define INDEX_DrvSynchronize 38L
399 #define INDEX_DrvSaveScreenBits 40L
400 #define INDEX_DrvGetModes 41L
401 #define INDEX_DrvFree 42L
402 #define INDEX_DrvDestroyFont 43L
403 #define INDEX_DrvQueryFontCaps 44L
404 #define INDEX_DrvLoadFontFile 45L
405 #define INDEX_DrvUnloadFontFile 46L
406 #define INDEX_DrvFontManagement 47L
407 #define INDEX_DrvQueryTrueTypeTable 48L
408 #define INDEX_DrvQueryTrueTypeOutline 49L
409 #define INDEX_DrvGetTrueTypeFile 50L
410 #define INDEX_DrvQueryFontFile 51L
411 #define INDEX_DrvMovePanning 52L
412 #define INDEX_DrvQueryAdvanceWidths 53L
413 #define INDEX_DrvSetPixelFormat 54L
414 #define INDEX_DrvDescribePixelFormat 55L
415 #define INDEX_DrvSwapBuffers 56L
416 #define INDEX_DrvStartBanding 57L
417 #define INDEX_DrvNextBand 58L
418 #define INDEX_DrvGetDirectDrawInfo 59L
419 #define INDEX_DrvEnableDirectDraw 60L
420 #define INDEX_DrvDisableDirectDraw 61L
421 #define INDEX_DrvQuerySpoolType 62L
422 #define INDEX_DrvIcmCreateColorTransform 64L
423 #define INDEX_DrvIcmDeleteColorTransform 65L
424 #define INDEX_DrvIcmCheckBitmapBits 66L
425 #define INDEX_DrvIcmSetDeviceGammaRamp 67L
426 #define INDEX_DrvGradientFill 68L
427 #define INDEX_DrvStretchBltROP 69L
428 #define INDEX_DrvPlgBlt 70L
429 #define INDEX_DrvAlphaBlend 71L
430 #define INDEX_DrvSynthesizeFont 72L
431 #define INDEX_DrvGetSynthesizedFontFiles 73L
432 #define INDEX_DrvTransparentBlt 74L
433 #define INDEX_DrvQueryPerBandInfo 75L
434 #define INDEX_DrvQueryDeviceSupport 76L
435 #define INDEX_DrvReserved1 77L
436 #define INDEX_DrvReserved2 78L
437 #define INDEX_DrvReserved3 79L
438 #define INDEX_DrvReserved4 80L
439 #define INDEX_DrvReserved5 81L
440 #define INDEX_DrvReserved6 82L
441 #define INDEX_DrvReserved7 83L
442 #define INDEX_DrvReserved8 84L
443 #define INDEX_DrvDeriveSurface 85L
444 #define INDEX_DrvQueryGlyphAttrs 86L
445 #define INDEX_DrvNotify 87L
446 #define INDEX_DrvSynchronizeSurface 88L
447 #define INDEX_DrvResetDevice 89L
448 #define INDEX_DrvReserved9 90L
449 #define INDEX_DrvReserved10 91L
450 #define INDEX_DrvReserved11 92L
451 #define INDEX_LAST 93L
453 typedef struct _DRVFN
{
458 /* DRVENABLEDATA.iDriverVersion constants */
459 #define DDI_DRIVER_VERSION_NT4 0x00020000
460 #define DDI_DRIVER_VERSION_SP3 0x00020003
461 #define DDI_DRIVER_VERSION_NT5 0x00030000
462 #define DDI_DRIVER_VERSION_NT5_01 0x00030100
464 typedef struct _DRVENABLEDATA
{
465 ULONG iDriverVersion
;
468 } DRVENABLEDATA
, *PDRVENABLEDATA
;
470 DECLARE_HANDLE(HSEMAPHORE
);
476 PBYTE pvCurrentRecord
;
477 } EMFINFO
, *PEMFINFO
;
479 typedef struct _ENGSAFESEMAPHORE
{
484 typedef struct _ENG_TIME_FIELDS
{
491 USHORT usMilliseconds
;
493 } ENG_TIME_FIELDS
, *PENG_TIME_FIELDS
;
495 typedef struct _ENUMRECTS
{
500 typedef struct _FD_XFORM
{
505 } FD_XFORM
, *PFD_XFORM
;
507 /* FD_DEVICEMETRICS.flRealizedType constants */
508 #define FDM_TYPE_BM_SIDE_CONST 0x00000001
509 #define FDM_TYPE_MAXEXT_EQUAL_BM_SIDE 0x00000002
510 #define FDM_TYPE_CHAR_INC_EQUAL_BM_BASE 0x00000004
511 #define FDM_TYPE_ZERO_BEARINGS 0x00000008
512 #define FDM_TYPE_CONST_BEARINGS 0x00000010
514 typedef struct _FD_DEVICEMETRICS
{
515 FLONG flRealizedType
;
521 POINTL ptlUnderline1
;
523 POINTL ptlULThickness
;
524 POINTL ptlSOThickness
;
528 FD_XFORM fdxQuantized
;
529 LONG lNonLinearExtLeading
;
530 LONG lNonLinearIntLeading
;
531 LONG lNonLinearMaxCharWidth
;
532 LONG lNonLinearAvgCharWidth
;
537 } FD_DEVICEMETRICS
, *PFD_DEVICEMETRICS
;
539 /* FD_GLYPHATTR.iMode constants */
540 #define FO_ATTR_MODE_ROTATE 1
542 typedef struct _FD_GLYPHATTR
{
547 } FD_GLYPHATTR
, *PFD_GLYPHATTR
;
549 /* FD_GLYPHSET.flAccel */
550 #define GS_UNICODE_HANDLES 0x00000001
551 #define GS_8BIT_HANDLES 0x00000002
552 #define GS_16BIT_HANDLES 0x00000004
554 typedef struct _WCRUN
{
560 typedef struct _FD_GLYPHSET
{
563 ULONG cGlyphsSupported
;
566 } FD_GLYPHSET
, *PFD_GLYPHSET
;
568 typedef struct _FD_KERNINGPAIR
{
574 typedef struct _FLOATOBJ
578 } FLOATOBJ
, *PFLOATOBJ
;
580 typedef struct _FLOATOBJ_XFORM
{
587 } FLOATOBJ_XFORM
, *PFLOATOBJ_XFORM
, FAR
*LPFLOATOBJ_XFORM
;
589 /* FONTDIFF.fsSelection */
590 #define FM_SEL_ITALIC 0x0001
591 #define FM_SEL_UNDERSCORE 0x0002
592 #define FM_SEL_NEGATIVE 0x0004
593 #define FM_SEL_OUTLINED 0x0008
594 #define FM_SEL_STRIKEOUT 0x0010
595 #define FM_SEL_BOLD 0x0020
596 #define FM_SEL_REGULAR 0x0040
598 typedef struct _FONTDIFF
{
605 FWORD fwdAveCharWidth
;
610 typedef struct _FONTSIM
{
613 PTRDIFF dpBoldItalic
;
616 /* FONTINFO.flCaps constants */
617 #define FO_DEVICE_FONT 1L
618 #define FO_OUTLINE_CAPABLE 2L
620 typedef struct _FONTINFO
{
623 ULONG cGlyphsSupported
;
628 } FONTINFO
, *PFONTINFO
;
630 /* FONTOBJ.flFontType constants */
631 #define FO_TYPE_RASTER RASTER_FONTTYPE
632 #define FO_TYPE_DEVICE DEVICE_FONTTYPE
633 #define FO_TYPE_TRUETYPE TRUETYPE_FONTTYPE
634 #define FO_TYPE_OPENTYPE OPENTYPE_FONTTYPE
636 #define FO_SIM_BOLD 0x00002000
637 #define FO_SIM_ITALIC 0x00004000
638 #define FO_EM_HEIGHT 0x00008000
639 #define FO_GRAY16 0x00010000
640 #define FO_NOGRAY16 0x00020000
641 #define FO_NOHINTS 0x00040000
642 #define FO_NO_CHOICE 0x00080000
643 #define FO_CFF 0x00100000
644 #define FO_POSTSCRIPT 0x00200000
645 #define FO_MULTIPLEMASTER 0x00400000
646 #define FO_VERT_FACE 0x00800000
647 #define FO_DBCS_FONT 0X01000000
648 #define FO_NOCLEARTYPE 0x02000000
649 #define FO_CLEARTYPE_X 0x10000000
650 #define FO_CLEARTYPE_Y 0x20000000
652 typedef struct _FONTOBJ
{
665 typedef struct _GAMMARAMP
{
669 } GAMMARAMP
, *PGAMMARAMP
;
671 /* GDIINFO.ulPrimaryOrder constants */
672 #define PRIMARY_ORDER_ABC 0
673 #define PRIMARY_ORDER_ACB 1
674 #define PRIMARY_ORDER_BAC 2
675 #define PRIMARY_ORDER_BCA 3
676 #define PRIMARY_ORDER_CBA 4
677 #define PRIMARY_ORDER_CAB 5
679 /* GDIINFO.ulHTPatternSize constants */
680 #define HT_PATSIZE_2x2 0
681 #define HT_PATSIZE_2x2_M 1
682 #define HT_PATSIZE_4x4 2
683 #define HT_PATSIZE_4x4_M 3
684 #define HT_PATSIZE_6x6 4
685 #define HT_PATSIZE_6x6_M 5
686 #define HT_PATSIZE_8x8 6
687 #define HT_PATSIZE_8x8_M 7
688 #define HT_PATSIZE_10x10 8
689 #define HT_PATSIZE_10x10_M 9
690 #define HT_PATSIZE_12x12 10
691 #define HT_PATSIZE_12x12_M 11
692 #define HT_PATSIZE_14x14 12
693 #define HT_PATSIZE_14x14_M 13
694 #define HT_PATSIZE_16x16 14
695 #define HT_PATSIZE_16x16_M 15
696 #define HT_PATSIZE_SUPERCELL 16
697 #define HT_PATSIZE_SUPERCELL_M 17
698 #define HT_PATSIZE_USER 18
699 #define HT_PATSIZE_MAX_INDEX HT_PATSIZE_USER
700 #define HT_PATSIZE_DEFAULT HT_PATSIZE_SUPERCELL_M
701 #define HT_USERPAT_CX_MIN 4
702 #define HT_USERPAT_CX_MAX 256
703 #define HT_USERPAT_CY_MIN 4
704 #define HT_USERPAT_CY_MAX 256
706 /* GDIINFO.ulHTOutputFormat constants */
707 #define HT_FORMAT_1BPP 0
708 #define HT_FORMAT_4BPP 2
709 #define HT_FORMAT_4BPP_IRGB 3
710 #define HT_FORMAT_8BPP 4
711 #define HT_FORMAT_16BPP 5
712 #define HT_FORMAT_24BPP 6
713 #define HT_FORMAT_32BPP 7
715 /* GDIINFO.flHTFlags */
716 #define HT_FLAG_SQUARE_DEVICE_PEL 0x00000001
717 #define HT_FLAG_HAS_BLACK_DYE 0x00000002
718 #define HT_FLAG_ADDITIVE_PRIMS 0x00000004
719 #define HT_FLAG_USE_8BPP_BITMASK 0x00000008
720 #define HT_FLAG_INK_HIGH_ABSORPTION 0x00000010
721 #define HT_FLAG_INK_ABSORPTION_INDICES 0x00000060
722 #define HT_FLAG_DO_DEVCLR_XFORM 0x00000080
723 #define HT_FLAG_OUTPUT_CMY 0x00000100
724 #define HT_FLAG_PRINT_DRAFT_MODE 0x00000200
725 #define HT_FLAG_INVERT_8BPP_BITMASK_IDX 0x00000400
726 #define HT_FLAG_8BPP_CMY332_MASK 0xFF000000
728 #define MAKE_CMYMASK_BYTE(c,m,y) ((BYTE)(((BYTE)(c) & 0x07) << 5) \
729 |(BYTE)(((BYTE)(m) & 0x07) << 2) \
730 |(BYTE)((BYTE)(y) & 0x03))
732 #define MAKE_CMY332_MASK(c,m,y) ((DWORD)(((DWORD)(c) & 0x07) << 29)\
733 |(DWORD)(((DWORD)(m) & 0x07) << 26)\
734 |(DWORD)(((DWORD)(y) & 0x03) << 24))
736 /* GDIINFO.flHTFlags constants */
737 #define HT_FLAG_INK_ABSORPTION_IDX0 0x00000000
738 #define HT_FLAG_INK_ABSORPTION_IDX1 0x00000020
739 #define HT_FLAG_INK_ABSORPTION_IDX2 0x00000040
740 #define HT_FLAG_INK_ABSORPTION_IDX3 0x00000060
742 #define HT_FLAG_HIGHEST_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \
743 |HT_FLAG_INK_ABSORPTION_IDX3)
744 #define HT_FLAG_HIGHER_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \
745 |HT_FLAG_INK_ABSORPTION_IDX2)
746 #define HT_FLAG_HIGH_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \
747 |HT_FLAG_INK_ABSORPTION_IDX1)
748 #define HT_FLAG_NORMAL_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX0
749 #define HT_FLAG_LOW_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX1
750 #define HT_FLAG_LOWER_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX2
751 #define HT_FLAG_LOWEST_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX3
753 #define HT_BITMASKPALRGB (DWORD)'0BGR'
754 #define HT_SET_BITMASKPAL2RGB(pPal) (*((LPDWORD)(pPal)) = HT_BITMASKPALRGB)
755 #define HT_IS_BITMASKPALRGB(pPal) (*((LPDWORD)(pPal)) == (DWORD)0)
757 /* GDIINFO.ulPhysicalPixelCharacteristics constants */
758 #define PPC_DEFAULT 0x0
759 #define PPC_UNDEFINED 0x1
760 #define PPC_RGB_ORDER_VERTICAL_STRIPES 0x2
761 #define PPC_BGR_ORDER_VERTICAL_STRIPES 0x3
762 #define PPC_RGB_ORDER_HORIZONTAL_STRIPES 0x4
763 #define PPC_BGR_ORDER_HORIZONTAL_STRIPES 0x5
765 #define PPG_DEFAULT 0
768 typedef struct _GDIINFO
{
791 POINTL ptlPhysOffset
;
795 ULONG ulDevicePelsDPI
;
796 ULONG ulPrimaryOrder
;
797 ULONG ulHTPatternSize
;
798 ULONG ulHTOutputFormat
;
801 ULONG ulBltAlignment
;
802 ULONG ulPanningHorzRes
;
803 ULONG ulPanningVertRes
;
804 ULONG xPanningAlignment
;
805 ULONG yPanningAlignment
;
812 ULONG ulPhysicalPixelCharacteristics
;
813 ULONG ulPhysicalPixelGamma
;
814 } GDIINFO
, *PGDIINFO
;
816 /* PATHDATA.flags constants */
817 #define PD_BEGINSUBPATH 0x00000001
818 #define PD_ENDSUBPATH 0x00000002
819 #define PD_RESETSTYLE 0x00000004
820 #define PD_CLOSEFIGURE 0x00000008
821 #define PD_BEZIERS 0x00000010
822 #define PD_ALL (PD_BEGINSUBPATH \
828 typedef struct _PATHDATA
{
832 } PATHDATA
, *PPATHDATA
;
834 /* PATHOBJ.fl constants */
835 #define PO_BEZIERS 0x00000001
836 #define PO_ELLIPSE 0x00000002
837 #define PO_ALL_INTEGERS 0x00000004
838 #define PO_ENUM_AS_INTEGERS 0x00000008
840 typedef struct _PATHOBJ
{
845 typedef struct _GLYPHBITS
{
851 typedef union _GLYPHDEF
{
856 typedef struct _GLYPHPOS
{
860 } GLYPHPOS
, *PGLYPHPOS
;
862 typedef struct _GLYPHDATA
{
874 typedef struct _IFIEXTRA
{
878 PTRDIFF dpDesignVector
;
880 ULONG aulReserved
[1];
881 } IFIEXTRA
, *PIFIEXTRA
;
883 /* IFIMETRICS constants */
885 #define FM_VERSION_NUMBER 0x0
887 /* IFIMETRICS.fsType constants */
888 #define FM_TYPE_LICENSED 0x2
889 #define FM_READONLY_EMBED 0x4
890 #define FM_EDITABLE_EMBED 0x8
891 #define FM_NO_EMBEDDING FM_TYPE_LICENSED
893 /* IFIMETRICS.flInfo constants */
894 #define FM_INFO_TECH_TRUETYPE 0x00000001
895 #define FM_INFO_TECH_BITMAP 0x00000002
896 #define FM_INFO_TECH_STROKE 0x00000004
897 #define FM_INFO_TECH_OUTLINE_NOT_TRUETYPE 0x00000008
898 #define FM_INFO_ARB_XFORMS 0x00000010
899 #define FM_INFO_1BPP 0x00000020
900 #define FM_INFO_4BPP 0x00000040
901 #define FM_INFO_8BPP 0x00000080
902 #define FM_INFO_16BPP 0x00000100
903 #define FM_INFO_24BPP 0x00000200
904 #define FM_INFO_32BPP 0x00000400
905 #define FM_INFO_INTEGER_WIDTH 0x00000800
906 #define FM_INFO_CONSTANT_WIDTH 0x00001000
907 #define FM_INFO_NOT_CONTIGUOUS 0x00002000
908 #define FM_INFO_TECH_MM 0x00004000
909 #define FM_INFO_RETURNS_OUTLINES 0x00008000
910 #define FM_INFO_RETURNS_STROKES 0x00010000
911 #define FM_INFO_RETURNS_BITMAPS 0x00020000
912 #define FM_INFO_DSIG 0x00040000
913 #define FM_INFO_RIGHT_HANDED 0x00080000
914 #define FM_INFO_INTEGRAL_SCALING 0x00100000
915 #define FM_INFO_90DEGREE_ROTATIONS 0x00200000
916 #define FM_INFO_OPTICALLY_FIXED_PITCH 0x00400000
917 #define FM_INFO_DO_NOT_ENUMERATE 0x00800000
918 #define FM_INFO_ISOTROPIC_SCALING_ONLY 0x01000000
919 #define FM_INFO_ANISOTROPIC_SCALING_ONLY 0x02000000
920 #define FM_INFO_TECH_CFF 0x04000000
921 #define FM_INFO_FAMILY_EQUIV 0x08000000
922 #define FM_INFO_DBCS_FIXED_PITCH 0x10000000
923 #define FM_INFO_NONNEGATIVE_AC 0x20000000
924 #define FM_INFO_IGNORE_TC_RA_ABLE 0x40000000
925 #define FM_INFO_TECH_TYPE1 0x80000000
927 #define MAXCHARSETS 16
929 /* IFIMETRICS.ulPanoseCulture constants */
930 #define FM_PANOSE_CULTURE_LATIN 0x0
932 typedef struct _IFIMETRICS
{
935 PTRDIFF dpwszFamilyName
;
936 PTRDIFF dpwszStyleName
;
937 PTRDIFF dpwszFaceName
;
938 PTRDIFF dpwszUniqueName
;
945 BYTE jWinPitchAndFamily
;
952 FWORD fwdWinAscender
;
953 FWORD fwdWinDescender
;
954 FWORD fwdMacAscender
;
955 FWORD fwdMacDescender
;
957 FWORD fwdTypoAscender
;
958 FWORD fwdTypoDescender
;
959 FWORD fwdTypoLineGap
;
960 FWORD fwdAveCharWidth
;
964 FWORD fwdSubscriptXSize
;
965 FWORD fwdSubscriptYSize
;
966 FWORD fwdSubscriptXOffset
;
967 FWORD fwdSubscriptYOffset
;
968 FWORD fwdSuperscriptXSize
;
969 FWORD fwdSuperscriptYSize
;
970 FWORD fwdSuperscriptXOffset
;
971 FWORD fwdSuperscriptYOffset
;
972 FWORD fwdUnderscoreSize
;
973 FWORD fwdUnderscorePosition
;
974 FWORD fwdStrikeoutSize
;
975 FWORD fwdStrikeoutPosition
;
990 ULONG ulPanoseCulture
;
995 } IFIMETRICS
, *PIFIMETRICS
;
998 #define LA_GEOMETRIC 0x00000001
999 #define LA_ALTERNATE 0x00000002
1000 #define LA_STARTGAP 0x00000004
1001 #define LA_STYLED 0x00000008
1003 /* LINEATTRS.iJoin */
1004 #define JOIN_ROUND 0L
1005 #define JOIN_BEVEL 1L
1006 #define JOIN_MITER 2L
1008 /* LINEATTRS.iEndCap */
1009 #define ENDCAP_ROUND 0L
1010 #define ENDCAP_SQUARE 1L
1011 #define ENDCAP_BUTT 2L
1013 typedef struct _LINEATTRS
{
1021 FLOAT_LONG elStyleState
;
1022 } LINEATTRS
, *PLINEATTRS
;
1024 typedef struct _PALOBJ
{
1028 typedef struct _PERBANDINFO
{
1029 BOOL bRepeatThisBand
;
1033 } PERBANDINFO
, *PPERBANDINFO
;
1035 /* STROBJ.flAccel constants */
1036 #define SO_FLAG_DEFAULT_PLACEMENT 0x00000001
1037 #define SO_HORIZONTAL 0x00000002
1038 #define SO_VERTICAL 0x00000004
1039 #define SO_REVERSED 0x00000008
1040 #define SO_ZERO_BEARINGS 0x00000010
1041 #define SO_CHAR_INC_EQUAL_BM_BASE 0x00000020
1042 #define SO_MAXEXT_EQUAL_BM_SIDE 0x00000040
1043 #define SO_DO_NOT_SUBSTITUTE_DEVICE_FONT 0x00000080
1044 #define SO_GLYPHINDEX_TEXTOUT 0x00000100
1045 #define SO_ESC_NOT_ORIENT 0x00000200
1046 #define SO_DXDY 0x00000400
1047 #define SO_CHARACTER_EXTRA 0x00000800
1048 #define SO_BREAK_EXTRA 0x00001000
1050 typedef struct _STROBJ
{
1059 typedef struct _SURFACEALIGNMENT
{
1062 DWORD dwStartAlignment
;
1063 DWORD dwPitchAlignment
;
1074 } SURFACEALIGNMENT
, *LPSURFACEALIGNMENT
;
1076 /* SURFOBJ.iType constants */
1077 #define STYPE_BITMAP 0L
1078 #define STYPE_DEVICE 1L
1079 #define STYPE_DEVBITMAP 3L
1081 /* SURFOBJ.fjBitmap constants */
1082 #define BMF_TOPDOWN 0x0001
1083 #define BMF_NOZEROINIT 0x0002
1084 #define BMF_DONTCACHE 0x0004
1085 #define BMF_USERMEM 0x0008
1086 #define BMF_KMSECTION 0x0010
1087 #define BMF_NOTSYSMEM 0x0020
1088 #define BMF_WINDOW_BLT 0x0040
1089 #define BMF_UMPDMEM 0x0080
1090 #define BMF_RESERVED 0xFF00
1092 typedef struct _SURFOBJ
{
1103 ULONG iBitmapFormat
;
1108 typedef struct _TYPE1_FONT
{
1114 typedef struct _WNDOBJ
{
1121 typedef struct _XFORML
{
1130 typedef struct _XFORMOBJ
{
1134 /* XLATEOBJ.flXlate constants */
1135 #define XO_TRIVIAL 0x00000001
1136 #define XO_TABLE 0x00000002
1137 #define XO_TO_MONO 0x00000004
1138 #define XO_FROM_CMYK 0x00000008
1139 #define XO_DEVICE_ICM 0x00000010
1140 #define XO_HOST_ICM 0x00000020
1142 typedef struct _XLATEOBJ
{
1151 typedef VOID
DDKAPI (CALLBACK
*WNDOBJCHANGEPROC
)(
1159 BRUSHOBJ_hGetColorTransform(
1160 /*IN*/ BRUSHOBJ
*pbo
);
1165 BRUSHOBJ_pvAllocRbrush(
1166 /*IN*/ BRUSHOBJ
*pbo
,
1172 BRUSHOBJ_pvGetRbrush(
1173 /*IN*/ BRUSHOBJ
*pbo
);
1178 BRUSHOBJ_ulGetBrushColor(
1179 /*IN*/ BRUSHOBJ
*pbo
);
1185 /*IN*/ CLIPOBJ
*pco
,
1190 /* CLIPOBJ_cEnumStart.iType constants */
1191 #define CT_RECTANGLES 0L
1193 /* CLIPOBJ_cEnumStart.iDirection constants */
1194 #define CD_RIGHTDOWN 0x00000000
1195 #define CD_LEFTDOWN 0x00000001
1196 #define CD_LEFTWARDS 0x00000001
1197 #define CD_RIGHTUP 0x00000002
1198 #define CD_UPWARDS 0x00000002
1199 #define CD_LEFTUP 0x00000003
1200 #define CD_ANY 0x00000004
1206 /*IN*/ CLIPOBJ
*pco
,
1209 /*IN*/ ULONG iDirection
,
1210 /*IN*/ ULONG cLimit
);
1216 /*IN*/ CLIPOBJ
*pco
);
1221 EngAcquireSemaphore(
1222 /*IN*/ HSEMAPHORE hsem
);
1224 #define FL_ZERO_MEMORY 0x00000001
1225 #define FL_NONPAGED_MEMORY 0x00000002
1232 /*IN*/ ULONG MemSize
,
1238 EngAllocPrivateUserMem(
1239 /*IN*/ PDD_SURFACE_LOCAL psl
,
1254 /*IN*/ SURFOBJ
*psoDest
,
1255 /*IN*/ SURFOBJ
*psoSrc
,
1256 /*IN*/ CLIPOBJ
*pco
,
1257 /*IN*/ XLATEOBJ
*pxlo
,
1258 /*IN*/ RECTL
*prclDest
,
1259 /*IN*/ RECTL
*prclSrc
,
1260 /*IN*/ BLENDOBJ
*pBlendObj
);
1262 /* EngAssociateSurface.flHooks constants */
1263 #define HOOK_BITBLT 0x00000001
1264 #define HOOK_STRETCHBLT 0x00000002
1265 #define HOOK_PLGBLT 0x00000004
1266 #define HOOK_TEXTOUT 0x00000008
1267 #define HOOK_PAINT 0x00000010
1268 #define HOOK_STROKEPATH 0x00000020
1269 #define HOOK_FILLPATH 0x00000040
1270 #define HOOK_STROKEANDFILLPATH 0x00000080
1271 #define HOOK_LINETO 0x00000100
1272 #define HOOK_COPYBITS 0x00000400
1273 #define HOOK_MOVEPANNING 0x00000800
1274 #define HOOK_SYNCHRONIZE 0x00001000
1275 #define HOOK_STRETCHBLTROP 0x00002000
1276 #define HOOK_SYNCHRONIZEACCESS 0x00004000
1277 #define HOOK_TRANSPARENTBLT 0x00008000
1278 #define HOOK_ALPHABLEND 0x00010000
1279 #define HOOK_GRADIENTFILL 0x00020000
1280 #define HOOK_FLAGS 0x0003b5ff
1285 EngAssociateSurface(
1288 /*IN*/ FLONG flHooks
);
1294 /*IN*/ SURFOBJ
*psoTrg
,
1295 /*IN*/ SURFOBJ
*psoSrc
,
1296 /*IN*/ SURFOBJ
*psoMask
,
1297 /*IN*/ CLIPOBJ
*pco
,
1298 /*IN*/ XLATEOBJ
*pxlo
,
1299 /*IN*/ RECTL
*prclTrg
,
1300 /*IN*/ POINTL
*pptlSrc
,
1301 /*IN*/ POINTL
*pptlMask
,
1302 /*IN*/ BRUSHOBJ
*pbo
,
1303 /*IN*/ POINTL
*pptlBrush
,
1310 /*IN*/ SURFOBJ
*pso
);
1316 /*IN*/ PEVENT pEvent
);
1322 /*IN*/ INT nCodePage
,
1323 /*IN*/ INT nFirstChar
,
1326 /* EngControlSprites.fl constants */
1327 #define ECS_TEARDOWN 0x00000001
1328 #define ECS_REDRAW 0x00000002
1342 /*OUT*/ SURFOBJ
*psoDest
,
1343 /*IN*/ SURFOBJ
*psoSrc
,
1344 /*IN*/ CLIPOBJ
*pco
,
1345 /*IN*/ XLATEOBJ
*pxlo
,
1346 /*IN*/ RECTL
*prclDest
,
1347 /*IN*/ POINTL
*pptlSrc
);
1355 /*IN*/ ULONG iFormat
,
1357 /*IN*/ PVOID pvBits
);
1368 EngCreateDeviceBitmap(
1369 /*IN*/ DHSURF dhsurf
,
1371 /*IN*/ ULONG iFormatCompat
);
1376 EngCreateDeviceSurface(
1379 ULONG iFormatCompat
);
1387 FREEOBJPROC pFreeObjProc
,
1396 /*OUT*/ PEVENT
*ppEvent
);
1398 /* EngCreatePalette.iMode constants */
1399 #define PAL_INDEXED 0x00000001
1400 #define PAL_BITFIELDS 0x00000002
1401 #define PAL_RGB 0x00000004
1402 #define PAL_BGR 0x00000008
1403 #define PAL_CMYK 0x00000010
1410 /*IN*/ ULONG cColors
,
1411 /*IN*/ ULONG
*pulColors
,
1413 /*IN*/ FLONG flGreen
,
1414 /*IN*/ FLONG flBlue
);
1428 /* EngCreateWnd.fl constants */
1429 #define WO_RGN_CLIENT_DELTA 0x00000001
1430 #define WO_RGN_CLIENT 0x00000002
1431 #define WO_RGN_SURFACE_DELTA 0x00000004
1432 #define WO_RGN_SURFACE 0x00000008
1433 #define WO_RGN_UPDATE_ALL 0x00000010
1434 #define WO_RGN_WINDOW 0x00000020
1435 #define WO_DRAW_NOTIFY 0x00000040
1436 #define WO_SPRITE_NOTIFY 0x00000080
1437 #define WO_RGN_DESKTOP_COORD 0x00000100
1445 WNDOBJCHANGEPROC pfn
,
1459 /*IN*/ PCHAR StandardPrefix
,
1460 /*IN*/ PCHAR DebugMessage
,
1467 /*IN*/ CLIPOBJ
*pco
);
1474 /*IN*/ BOOL bCallBack
,
1475 /*IN*/ BOOL bLocked
);
1481 /*IN*/ PEVENT pEvent
);
1487 /*IN*/ LPWSTR pwszFileName
);
1493 /*IN*/ HPALETTE hpal
);
1499 /*IN*/ PATHOBJ
*ppo
);
1504 EngDeleteSafeSemaphore(
1505 /*IN OUT*/ ENGSAFESEMAPHORE
*pssem
);
1511 /*IN OUT*/ HSEMAPHORE hsem
);
1517 /*IN*/ HSURF hsurf
);
1523 /*IN*/ WNDOBJ
*pwo
);
1529 /*IN*/ HANDLE hDevice
,
1530 /*IN*/ DWORD dwIoControlCode
,
1531 /*IN*/ LPVOID lpInBuffer
,
1532 /*IN*/ DWORD nInBufferSize
,
1533 /*IN OUT*/ LPVOID lpOutBuffer
,
1534 /*IN*/ DWORD nOutBufferSize
,
1536 /*OUT*/ LPDWORD lpBytesReturned
);
1546 /*OUT*/ ULONG
*pul
);
1552 /*IN*/ HANDLE hPrinter
,
1555 /*OUT*/ LPBYTE pForm
,
1558 /*OUT*/ LPDWORD pcbNeeded
,
1560 /*OUT*/ LPDWORD pcReturned
);
1566 /*IN*/ SURFOBJ
*pso
,
1568 /*IN*/ ULONG iColor
);
1574 /*IN*/ SURFOBJ
*pso
,
1575 /*IN*/ PATHOBJ
*ppo
,
1576 /*IN*/ CLIPOBJ
*pco
,
1577 /*IN*/ BRUSHOBJ
*pbo
,
1578 /*IN*/ POINTL
*pptlBrushOrg
,
1580 /*IN*/ FLONG flOptions
);
1585 EngFindImageProcAddress(
1586 /*IN*/ HANDLE hModule
,
1587 /*IN*/ LPSTR lpProcName
);
1597 /*OUT*/ PULONG pulSize
);
1603 /*IN*/ ULONG FastCheckSum
,
1604 /*IN*/ ULONG ulSize
);
1606 /* EngFntCacheFault.iFaultMode constants */
1607 #define ENG_FNT_CACHE_READ_FAULT 0x00000001
1608 #define ENG_FNT_CACHE_WRITE_FAULT 0x00000002
1614 /*IN*/ ULONG ulFastCheckSum
,
1615 /*IN*/ ULONG iFaultMode
);
1621 /*IN*/ ULONG FastCheckSum
,
1623 /*OUT*/ ULONG
*pulSize
);
1640 EngFreePrivateUserMem(
1641 /*IN*/ PDD_SURFACE_LOCAL psl
,
1653 EngGetCurrentCodePage(
1655 /*OUT*/ PUSHORT OemCodePage
,
1657 /*OUT*/ PUSHORT AnsiCodePage
);
1662 EngGetCurrentProcessId(
1668 EngGetCurrentThreadId(
1680 EngGetFileChangeTime(
1683 /*OUT*/ LARGE_INTEGER
*pChangeTime
);
1691 /*OUT*/ WCHAR (*pDest
)[MAX_PATH
+1]);
1697 /*IN*/ HANDLE hPrinter
,
1698 /*IN*/ LPWSTR pFormName
,
1701 /*OUT*/ LPBYTE pForm
,
1704 /*OUT*/ LPDWORD pcbNeeded
);
1716 /*IN*/ HANDLE hPrinter
,
1717 /*IN*/ DWORD dwLevel
,
1719 /*OUT*/ LPBYTE pPrinter
,
1722 /*OUT*/ LPDWORD pcbNeeded
);
1728 /*IN*/ HANDLE hPrinter
,
1729 /*IN*/ LPWSTR pValueName
,
1731 /*OUT*/ LPDWORD pType
,
1733 /*OUT*/ LPBYTE pData
,
1736 /*OUT*/ LPDWORD pcbNeeded
);
1741 EngGetPrinterDataFileName(
1747 EngGetPrinterDriver(
1748 /*IN*/ HANDLE hPrinter
,
1749 /*IN*/ LPWSTR pEnvironment
,
1750 /*IN*/ DWORD dwLevel
,
1752 /*OUT*/ BYTE
*lpbDrvInfo
,
1755 /*OUT*/ DWORD
*pcbNeeded
);
1760 EngGetProcessHandle(
1766 EngGetType1FontList(
1769 /*OUT*/ TYPE1_FONT
*pType1Buffer
,
1770 /*IN*/ ULONG cjType1Buffer
,
1772 /*OUT*/ PULONG pulLocalFonts
,
1774 /*OUT*/ PULONG pulRemoteFonts
,
1776 /*OUT*/ LARGE_INTEGER
*pLastModified
);
1782 /*IN*/ SURFOBJ
*psoDest
,
1783 /*IN*/ CLIPOBJ
*pco
,
1784 /*IN*/ XLATEOBJ
*pxlo
,
1785 /*IN*/ TRIVERTEX
*pVertex
,
1786 /*IN*/ ULONG nVertex
,
1789 /*IN*/ RECTL
*prclExtents
,
1790 /*IN*/ POINTL
*pptlDitherOrg
,
1791 /*IN*/ ULONG ulMode
);
1793 /* EngHangNotification return values */
1794 #define EHN_RESTORED 0x00000000
1795 #define EHN_ERROR 0x00000001
1800 EngHangNotification(
1802 /*IN*/ PVOID Reserved
);
1807 EngInitializeSafeSemaphore(
1809 /*OUT*/ ENGSAFESEMAPHORE
*pssem
);
1814 EngIsSemaphoreOwned(
1815 /*IN*/ HSEMAPHORE hsem
);
1820 EngIsSemaphoreOwnedByCurrentThread(
1821 /*IN*/ HSEMAPHORE hsem
);
1841 /*IN*/ LPWSTR pwszDriver
);
1847 /*IN*/ LPWSTR pwsz
);
1852 EngLoadModuleForWrite(
1854 /*IN*/ ULONG cjSizeOfModule
);
1859 EngLockDirectDrawSurface(
1860 /*IN*/ HANDLE hSurface
);
1866 /*IN*/ HDRVOBJ hdo
);
1872 /*IN*/ HSURF hsurf
);
1885 /*IN*/ HANDLE hUserObject
,
1886 /*IN*/ PVOID Reserved1
,
1887 /*IN*/ PVOID Reserved2
,
1888 /*IN*/ PVOID Reserved3
);
1895 /*IN*/ ULONG cjSize
,
1897 /*OUT*/ ULONG_PTR
*piFile
);
1911 /*IN*/ ULONG_PTR iFile
,
1913 /*OUT*/ PULONG
*ppjBuf
,
1915 /*OUT*/ ULONG
*pcjBuf
);
1923 /*OUT*/ PULONG pSize
);
1928 EngMarkBandingSurface(
1929 /*IN*/ HSURF hsurf
);
1931 /* EngModifySurface.flSurface constants */
1932 #define MS_NOTSYSTEMMEMORY 0x00000001
1933 #define MS_SHAREDACCESS 0x00000002
1941 /*IN*/ FLONG flHooks
,
1942 /*IN*/ FLONG flSurface
,
1943 /*IN*/ DHSURF dhsurf
,
1944 /*IN*/ VOID
*pvScan0
,
1946 /*IN*/ VOID
*pvReserved
);
1952 /*IN*/ SURFOBJ
*pso
,
1955 /*IN*/ RECTL
*prcl
);
1968 EngMultiByteToUnicodeN(
1970 /*OUT*/ LPWSTR UnicodeString
,
1971 /*IN*/ ULONG MaxBytesInUnicodeString
,
1973 /*OUT*/ PULONG BytesInUnicodeString
,
1974 /*IN*/ PCHAR MultiByteString
,
1975 /*IN*/ ULONG BytesInMultiByteString
);
1980 EngMultiByteToWideChar(
1981 /*IN*/ UINT CodePage
,
1983 /*OUT*/ LPWSTR WideCharString
,
1984 /*IN*/ INT BytesInWideCharString
,
1985 /*IN*/ LPSTR MultiByteString
,
1986 /*IN*/ INT BytesInMultiByteString
);
1992 /*IN*/ SURFOBJ
*pso
,
1993 /*IN*/ CLIPOBJ
*pco
,
1994 /*IN*/ BRUSHOBJ
*pbo
,
1995 /*IN*/ POINTL
*pptlBrushOrg
,
2002 /*IN*/ SURFOBJ
*psoTrg
,
2003 /*IN*/ SURFOBJ
*psoSrc
,
2004 /*IN*/ SURFOBJ
*psoMsk
,
2005 /*IN*/ CLIPOBJ
*pco
,
2006 /*IN*/ XLATEOBJ
*pxlo
,
2007 /*IN*/ COLORADJUSTMENT
*pca
,
2008 /*IN*/ POINTL
*pptlBrushOrg
,
2009 /*IN*/ POINTFIX
*pptfx
,
2011 /*IN*/ POINTL
*pptl
,
2012 /*IN*/ ULONG iMode
);
2018 /*IN*/ PVOID Address
,
2019 /*IN*/ ULONG Length
,
2020 /*IN*/ ULONG Alignment
);
2025 EngProbeForReadAndWrite(
2026 /*IN*/ PVOID Address
,
2027 /*IN*/ ULONG Length
,
2028 /*IN*/ ULONG Alignment
);
2030 typedef enum _ENG_DEVICE_ATTRIBUTE
{
2032 QDA_ACCELERATION_LEVEL
2033 } ENG_DEVICE_ATTRIBUTE
;
2038 EngQueryDeviceAttribute(
2040 /*IN*/ ENG_DEVICE_ATTRIBUTE devAttr
,
2042 /*IN*/ ULONG ulInSize
,
2044 /*OUT*/ VOID
*pvOut
,
2046 /*OUT*/ ULONG ulOutSize
);
2051 EngQueryFileTimeStamp(
2052 /*IN*/ LPWSTR pwsz
);
2059 /*OUT*/ PENG_TIME_FIELDS ptf
);
2065 /*IN*/ HPALETTE hPal
,
2067 /*OUT*/ ULONG
*piMode
,
2068 /*IN*/ ULONG cColors
,
2070 /*OUT*/ ULONG
*pulColors
);
2075 EngQueryPerformanceCounter(
2077 /*OUT*/ LONGLONG
*pPerformanceCount
);
2082 EngQueryPerformanceFrequency(
2084 /*OUT*/ LONGLONG
*pFrequency
);
2086 typedef enum _ENG_SYSTEM_ATTRIBUTE
{
2087 EngProcessorFeature
= 1,
2088 EngNumberOfProcessors
,
2089 EngOptimumAvailableUserMemory
,
2090 EngOptimumAvailableSystemMemory
,
2091 } ENG_SYSTEM_ATTRIBUTE
;
2093 #define QSA_MMX 0x00000100
2094 #define QSA_SSE 0x00002000
2095 #define QSA_3DNOW 0x00004000
2100 EngQuerySystemAttribute(
2101 /*IN*/ ENG_SYSTEM_ATTRIBUTE CapNum
,
2103 /*OUT*/ PDWORD pCapability
);
2109 /*IN*/ PEVENT pEvent
);
2114 EngReleaseSemaphore(
2115 /*IN*/ HSEMAPHORE hsem
);
2120 EngRestoreFloatingPointState(
2121 /*IN*/ VOID
*pBuffer
);
2126 EngSaveFloatingPointState(
2128 /*OUT*/ VOID
*pBuffer
,
2129 /*IN*/ ULONG cjBufferSize
);
2135 /*IN*/ PVOID Address
,
2136 /*IN*/ ULONG Length
);
2142 /*IN*/ PEVENT pEvent
);
2148 /*IN*/ ULONG iError
);
2154 /*IN*/ SURFOBJ
*pso
,
2155 /*IN*/ SURFOBJ
*psoMask
,
2156 /*IN*/ SURFOBJ
*psoColor
,
2157 /*IN*/ XLATEOBJ
*pxlo
,
2170 /*IN*/ SURFOBJ
*psoMask
,
2171 /*IN*/ SURFOBJ
*psoColor
,
2172 /*IN*/ XLATEOBJ
*pxlo
,
2179 /*IN*/ HANDLE hPrinter
,
2180 /*IN*/ LPWSTR pType
,
2181 /*IN*/ DWORD dwType
,
2182 /*IN*/ LPBYTE lpbPrinterData
,
2183 /*IN*/ DWORD cjPrinterData
);
2185 typedef int DDKCDECLAPI (*SORTCOMP
)(const void *pv1
, const void *pv2
);
2191 /*IN OUT*/ PBYTE pjBuf
,
2193 /*IN*/ ULONG cjElem
,
2194 /*IN*/ SORTCOMP pfnComp
);
2200 /*IN*/ SURFOBJ
*psoDest
,
2201 /*IN*/ SURFOBJ
*psoSrc
,
2202 /*IN*/ SURFOBJ
*psoMask
,
2203 /*IN*/ CLIPOBJ
*pco
,
2204 /*IN*/ XLATEOBJ
*pxlo
,
2205 /*IN*/ COLORADJUSTMENT
*pca
,
2206 /*IN*/ POINTL
*pptlHTOrg
,
2207 /*IN*/ RECTL
*prclDest
,
2208 /*IN*/ RECTL
*prclSrc
,
2209 /*IN*/ POINTL
*pptlMask
,
2210 /*IN*/ ULONG iMode
);
2216 /*IN*/ SURFOBJ
*psoDest
,
2217 /*IN*/ SURFOBJ
*psoSrc
,
2218 /*IN*/ SURFOBJ
*psoMask
,
2219 /*IN*/ CLIPOBJ
*pco
,
2220 /*IN*/ XLATEOBJ
*pxlo
,
2221 /*IN*/ COLORADJUSTMENT
*pca
,
2222 /*IN*/ POINTL
*pptlHTOrg
,
2223 /*IN*/ RECTL
*prclDest
,
2224 /*IN*/ RECTL
*prclSrc
,
2225 /*IN*/ POINTL
*pptlMask
,
2227 /*IN*/ BRUSHOBJ
*pbo
,
2233 EngStrokeAndFillPath(
2234 /*IN*/ SURFOBJ
*pso
,
2235 /*IN*/ PATHOBJ
*ppo
,
2236 /*IN*/ CLIPOBJ
*pco
,
2237 /*IN*/ XFORMOBJ
*pxo
,
2238 /*IN*/ BRUSHOBJ
*pboStroke
,
2239 /*IN*/ LINEATTRS
*plineattrs
,
2240 /*IN*/ BRUSHOBJ
*pboFill
,
2241 /*IN*/ POINTL
*pptlBrushOrg
,
2243 /*IN*/ FLONG flOptions
);
2249 /*IN*/ SURFOBJ
*pso
,
2250 /*IN*/ PATHOBJ
*ppo
,
2251 /*IN*/ CLIPOBJ
*pco
,
2252 /*IN*/ XFORMOBJ
*pxo
,
2253 /*IN*/ BRUSHOBJ
*pbo
,
2254 /*IN*/ POINTL
*pptlBrushOrg
,
2255 /*IN*/ LINEATTRS
*plineattrs
,
2262 /*IN*/ SURFOBJ
*pso
,
2263 /*IN*/ STROBJ
*pstro
,
2264 /*IN*/ FONTOBJ
*pfo
,
2265 /*IN*/ CLIPOBJ
*pco
,
2266 /*IN*/ RECTL
*prclExtra
,
2267 /*IN*/ RECTL
*prclOpaque
,
2268 /*IN*/ BRUSHOBJ
*pboFore
,
2269 /*IN*/ BRUSHOBJ
*pboOpaque
,
2270 /*IN*/ POINTL
*pptlOrg
,
2277 /*IN*/ SURFOBJ
*psoDst
,
2278 /*IN*/ SURFOBJ
*psoSrc
,
2279 /*IN*/ CLIPOBJ
*pco
,
2280 /*IN*/ XLATEOBJ
*pxlo
,
2281 /*IN*/ RECTL
*prclDst
,
2282 /*IN*/ RECTL
*prclSrc
,
2283 /*IN*/ ULONG iTransColor
,
2284 /*IN*/ ULONG ulReserved
);
2289 EngUnicodeToMultiByteN(
2291 /*OUT*/ PCHAR MultiByteString
,
2292 /*IN*/ ULONG MaxBytesInMultiByteString
,
2294 /*OUT*/ PULONG BytesInMultiByteString
,
2295 /*IN*/ PWSTR UnicodeString
,
2296 /*IN*/ ULONG BytesInUnicodeString
);
2302 /*IN*/ HANDLE hModule
);
2307 EngUnlockDirectDrawSurface(
2308 /*IN*/ PDD_SURFACE_LOCAL pSurface
);
2314 /*IN*/ HDRVOBJ hdo
);
2320 /*IN*/ SURFOBJ
*pso
);
2326 /*IN*/ PEVENT pEvent
);
2332 /*IN*/ ULONG_PTR iFile
);
2344 /*IN*/ ULONG_PTR iFile
);
2350 /*IN*/ HANDLE hSecure
);
2355 EngWaitForSingleObject(
2356 /*IN*/ PEVENT pEvent
,
2357 /*IN*/ PLARGE_INTEGER pTimeOut
);
2362 EngWideCharToMultiByte(
2363 /*IN*/ UINT CodePage
,
2364 /*IN*/ LPWSTR WideCharString
,
2365 /*IN*/ INT BytesInWideCharString
,
2367 /*OUT*/ LPSTR MultiByteString
,
2368 /*IN*/ INT BytesInMultiByteString
);
2374 /*IN*/ HANDLE hPrinter
,
2378 /*OUT*/ LPDWORD pcWritten
);
2384 /*IN OUT*/ PFLOATOBJ pf
,
2385 /*IN*/ PFLOATOBJ pf1
);
2391 /*IN OUT*/ PFLOATOBJ pf
,
2398 /*IN OUT*/ PFLOATOBJ pf
,
2405 /*IN OUT*/ PFLOATOBJ pf
,
2406 /*IN*/ PFLOATOBJ pf1
);
2412 /*IN OUT*/ PFLOATOBJ pf
,
2419 /*IN OUT*/ PFLOATOBJ pf
,
2426 /*IN*/ PFLOATOBJ pf
,
2427 /*IN*/ PFLOATOBJ pf1
);
2433 /*IN*/ PFLOATOBJ pf
,
2440 /*IN*/ PFLOATOBJ pf
);
2446 /*IN*/ PFLOATOBJ pf
);
2451 FLOATOBJ_GreaterThan(
2452 /*IN*/ PFLOATOBJ pf
,
2453 /*IN*/ PFLOATOBJ pf1
);
2458 FLOATOBJ_GreaterThanLong(
2459 /*IN*/ PFLOATOBJ pf
,
2466 /*IN*/ PFLOATOBJ pf
,
2467 /*IN*/ PFLOATOBJ pf1
);
2472 FLOATOBJ_LessThanLong(
2473 /*IN*/ PFLOATOBJ pf
,
2480 /*IN OUT*/ PFLOATOBJ pf
,
2481 /*IN*/ PFLOATOBJ pf1
);
2487 /*IN OUT*/ PFLOATOBJ pf
,
2494 /*IN OUT*/ PFLOATOBJ pf
,
2501 /*IN OUT*/ PFLOATOBJ pf
);
2508 /*OUT*/ PFLOATOBJ pf
,
2516 /*OUT*/ PFLOATOBJ pf
,
2523 /*IN OUT*/ PFLOATOBJ pf
,
2524 /*IN*/ PFLOATOBJ pf1
);
2530 /*IN OUT*/ PFLOATOBJ pf
,
2537 /*IN OUT*/ PFLOATOBJ pf
,
2543 FONTOBJ_cGetAllGlyphHandles(
2544 /*IN*/ FONTOBJ
*pfo
,
2546 /*OUT*/ HGLYPH
*phg
);
2552 /*IN*/ FONTOBJ
*pfo
,
2554 /*IN*/ ULONG cGlyph
,
2557 /*OUT*/ PVOID
*ppvGlyph
);
2563 /*IN*/ FONTOBJ
*pfo
);
2569 /*IN*/ FONTOBJ
*pfo
);
2574 FONTOBJ_pjOpenTypeTablePointer(
2575 /*IN*/ FONTOBJ
*pfo
,
2578 /*OUT*/ ULONG
*pcjTable
);
2583 FONTOBJ_pQueryGlyphAttrs(
2584 /*IN*/ FONTOBJ
*pfo
,
2585 /*IN*/ ULONG iMode
);
2590 FONTOBJ_pvTrueTypeFontFile(
2591 /*IN*/ FONTOBJ
*pfo
,
2593 /*OUT*/ ULONG
*pcjFile
);
2598 FONTOBJ_pwszFontFilePaths(
2599 /*IN*/ FONTOBJ
*pfo
,
2601 /*OUT*/ ULONG
*pcwc
);
2606 FONTOBJ_pxoGetXform(
2607 /*IN*/ FONTOBJ
*pfo
);
2613 /*IN*/ FONTOBJ
*pfo
,
2614 /*IN*/ ULONG cjSize
,
2616 /*OUT*/ FONTINFO
*pfi
);
2621 HeapVidMemAllocAligned(
2622 /*IN*/ LPVIDMEM lpVidMem
,
2623 /*IN*/ DWORD dwWidth
,
2624 /*IN*/ DWORD dwHeight
,
2625 /*IN*/ LPSURFACEALIGNMENT lpAlignment
,
2627 /*OUT*/ LPLONG lpNewPitch
);
2632 HT_ComputeRGBGammaTable(
2633 /*IN*/ USHORT GammaTableEntries
,
2634 /*IN*/ USHORT GammaTableType
,
2635 /*IN*/ USHORT RedGamma
,
2636 /*IN*/ USHORT GreenGamma
,
2637 /*IN*/ USHORT BlueGamma
,
2639 /*OUT*/ LPBYTE pGammaTable
);
2644 HT_Get8BPPFormatPalette(
2646 /*OUT*/ LPPALETTEENTRY pPaletteEntry
,
2647 /*IN*/ USHORT RedGamma
,
2648 /*IN*/ USHORT GreenGamma
,
2649 /*IN*/ USHORT BlueGamma
);
2654 HT_Get8BPPMaskPalette(
2655 /*IN OUT*/ LPPALETTEENTRY pPaletteEntry
,
2656 /*IN*/ BOOL Use8BPPMaskPal
,
2657 /*IN*/ BYTE CMYMask
,
2658 /*IN*/ USHORT RedGamma
,
2659 /*IN*/ USHORT GreenGamma
,
2660 /*IN*/ USHORT BlueGamma
);
2665 HTUI_DeviceColorAdjustment(
2666 /*IN*/ LPSTR pDeviceName
,
2668 /*OUT*/ PDEVHTADJDATA pDevHTAdjData
);
2674 /*IN*/ PALOBJ
*ppalo
,
2675 /*IN*/ ULONG iStart
,
2676 /*IN*/ ULONG cColors
,
2678 /*OUT*/ ULONG
*pulColors
);
2683 PATHOBJ_bCloseFigure(
2684 /*IN*/ PATHOBJ
*ppo
);
2690 /*IN*/ PATHOBJ
*ppo
,
2692 /*OUT*/ PATHDATA
*ppd
);
2697 PATHOBJ_bEnumClipLines(
2698 /*IN*/ PATHOBJ
*ppo
,
2701 /*OUT*/ CLIPLINE
*pcl
);
2707 /*IN*/ PATHOBJ
*ppo
,
2708 /*IN*/ POINTFIX ptfx
);
2713 PATHOBJ_bPolyBezierTo(
2714 /*IN*/ PATHOBJ
*ppo
,
2715 /*IN*/ POINTFIX
*pptfx
,
2716 /*IN*/ ULONG cptfx
);
2721 PATHOBJ_bPolyLineTo(
2722 /*IN*/ PATHOBJ
*ppo
,
2723 /*IN*/ POINTFIX
*pptfx
,
2724 /*IN*/ ULONG cptfx
);
2730 /*IN*/ PATHOBJ
*ppo
);
2735 PATHOBJ_vEnumStartClipLines(
2736 /*IN*/ PATHOBJ
*ppo
,
2737 /*IN*/ CLIPOBJ
*pco
,
2738 /*IN*/ SURFOBJ
*pso
,
2739 /*IN*/ LINEATTRS
*pla
);
2745 /*IN*/ PATHOBJ
*ppo
,
2747 /*OUT*/ PRECTFX prectfx
);
2753 /*IN*/ STROBJ
*pstro
,
2757 /*OUT*/ PGLYPHPOS
*ppgpos
);
2762 STROBJ_bEnumPositionsOnly(
2763 /*IN*/ STROBJ
*pstro
,
2767 /*OUT*/ PGLYPHPOS
*ppgpos
);
2772 STROBJ_bGetAdvanceWidths(
2774 /*IN*/ ULONG iFirst
,
2777 /*OUT*/ POINTQF
*pptqD
);
2782 STROBJ_dwGetCodePage(
2783 /*IN*/ STROBJ
*pstro
);
2788 STROBJ_fxBreakExtra(
2789 /*IN*/ STROBJ
*pstro
);
2794 STROBJ_fxCharacterExtra(
2795 /*IN*/ STROBJ
*pstro
);
2801 /*IN*/ STROBJ
*pstro
);
2807 /*IN*/ LPVMEMHEAP pvmh
,
2808 /*IN*/ FLATPTR ptr
);
2817 /*OUT*/ ULONG
*pul
);
2825 /*IN*/ ULONG iDirection
,
2826 /*IN*/ ULONG cLimit
);
2831 WNDOBJ_vSetConsumer(
2833 /*IN*/ PVOID pvConsumer
);
2835 /* XFORMOBJ_bApplyXform.iMode constants */
2837 #define XF_INV_LTOL 1L
2839 #define XF_INV_FXTOL 3L
2844 XFORMOBJ_bApplyXform(
2845 /*IN*/ XFORMOBJ
*pxo
,
2847 /*IN*/ ULONG cPoints
,
2850 /*OUT*/ PVOID pvOut
);
2855 XFORMOBJ_iGetFloatObjXform(
2856 /*IN*/ XFORMOBJ
*pxo
,
2858 /*OUT*/ FLOATOBJ_XFORM
*pxfo
);
2864 /*IN*/ XFORMOBJ
*pxo
,
2866 /*OUT*/ XFORML
*pxform
);
2868 /* XLATEOBJ_cGetPalette.iPal constants */
2869 #define XO_SRCPALETTE 1
2870 #define XO_DESTPALETTE 2
2871 #define XO_DESTDCPALETTE 3
2872 #define XO_SRCBITFIELDS 4
2873 #define XO_DESTBITFIELDS 5
2878 XLATEOBJ_cGetPalette(
2879 /*IN*/ XLATEOBJ
*pxlo
,
2883 /*OUT*/ ULONG
*pPal
);
2888 XLATEOBJ_hGetColorTransform(
2889 /*IN*/ XLATEOBJ
*pxlo
);
2895 /*IN*/ XLATEOBJ
*pxlo
,
2896 /*IN*/ ULONG iColor
);
2902 /*IN*/ XLATEOBJ
*pxlo
);
2906 /* Graphics Driver Functions */
2911 /*IN*/ SURFOBJ
*psoDest
,
2912 /*IN*/ SURFOBJ
*psoSrc
,
2913 /*IN*/ CLIPOBJ
*pco
,
2914 /*IN*/ XLATEOBJ
*pxlo
,
2915 /*IN*/ RECTL
*prclDest
,
2916 /*IN*/ RECTL
*prclSrc
,
2917 /*IN*/ BLENDOBJ
*pBlendObj
);
2922 /*IN*/ DHPDEV dhpdev
,
2923 /*IN*/ BOOL bEnable
);
2928 /*IN*/ SURFOBJ
*psoTrg
,
2929 /*IN*/ SURFOBJ
*psoSrc
,
2930 /*IN*/ SURFOBJ
*psoMask
,
2931 /*IN*/ CLIPOBJ
*pco
,
2932 /*IN*/ XLATEOBJ
*pxlo
,
2933 /*IN*/ RECTL
*prclTrg
,
2934 /*IN*/ POINTL
*pptlSrc
,
2935 /*IN*/ POINTL
*pptlMask
,
2936 /*IN*/ BRUSHOBJ
*pbo
,
2937 /*IN*/ POINTL
*pptlBrush
,
2943 /*IN*/ DHPDEV dhpdev
,
2949 /*IN*/ SURFOBJ
*psoDest
,
2950 /*IN*/ SURFOBJ
*psoSrc
,
2951 /*IN*/ CLIPOBJ
*pco
,
2952 /*IN*/ XLATEOBJ
*pxlo
,
2953 /*IN*/ RECTL
*prclDest
,
2954 /*IN*/ POINTL
*pptlSrc
);
2958 DrvCreateDeviceBitmap(
2959 /*IN*/ DHPDEV dhpdev
,
2961 /*IN*/ ULONG iFormat
);
2965 DrvDeleteDeviceBitmap(
2966 /*IN*/ DHSURF dhsurf
);
2971 DD_DIRECTDRAW_GLOBAL
*pDirectDraw
,
2972 DD_SURFACE_LOCAL
*pSurface
);
2976 DrvDescribePixelFormat(
2977 /*IN*/ DHPDEV dhpdev
,
2978 /*IN*/ LONG iPixelFormat
,
2981 /*OUT*/ PIXELFORMATDESCRIPTOR
*ppfd
);
2986 /*IN*/ FONTOBJ
*pfo
);
2996 /*IN*/ DHPDEV dhpdev
);
3001 /*IN*/ DHPDEV dhpdev
);
3003 #define DM_DEFAULT 0x00000001
3004 #define DM_MONOCHROME 0x00000002
3009 /*IN*/ DHPDEV dhpdev
,
3013 /*OUT*/ ULONG
*pul
);
3018 /*IN*/ SURFOBJ
*pso
,
3020 /*IN*/ CLIPOBJ
*pco
,
3028 /*IN*/ ULONG iEngineVersion
,
3031 /*OUT*/ DRVENABLEDATA
*pded
);
3036 /*IN*/ DEVMODEW
*pdm
,
3037 /*IN*/ LPWSTR pwszLogAddress
,
3040 /*OUT*/ HSURF
*phsurfPatterns
,
3041 /*IN*/ ULONG cjCaps
,
3043 /*OUT*/ ULONG
*pdevcaps
,
3044 /*IN*/ ULONG cjDevInfo
,
3046 /*OUT*/ DEVINFO
*pdi
,
3048 /*IN*/ LPWSTR pwszDeviceName
,
3049 /*IN*/ HANDLE hDriver
);
3054 /*IN*/ DHPDEV dhpdev
);
3056 /* DrvEndDoc.fl constants */
3057 #define ED_ABORTDOC 0x00000001
3062 /*IN*/ SURFOBJ
*pso
,
3068 /*IN*/ SURFOBJ
*pso
,
3074 /*OUT*/ PVOID pvOut
);
3079 /*IN*/ SURFOBJ
*pso
,
3080 /*IN*/ PATHOBJ
*ppo
,
3081 /*IN*/ CLIPOBJ
*pco
,
3082 /*IN*/ BRUSHOBJ
*pbo
,
3083 /*IN*/ POINTL
*pptlBrushOrg
,
3085 /*IN*/ FLONG flOptions
);
3090 /*IN*/ SURFOBJ
*pso
,
3091 /*IN*/ FONTOBJ
*pfo
,
3097 /*OUT*/ PVOID pvOut
);
3103 /*IN*/ ULONG_PTR id
);
3105 /* DrvGetGlyphMode return values */
3106 #define FO_HGLYPHS 0L
3107 #define FO_GLYPHBITS 1L
3108 #define FO_PATHOBJ 2L
3113 /*IN*/ DHPDEV dhpdev
,
3114 /*IN*/ FONTOBJ
*pfo
);
3119 /*IN*/ HANDLE hDriver
,
3120 /*IN*/ ULONG cjSize
,
3122 /*OUT*/ DEVMODEW
*pdm
);
3127 /*IN*/ ULONG_PTR iFile
,
3133 /*IN*/ SURFOBJ
*psoDest
,
3134 /*IN*/ CLIPOBJ
*pco
,
3135 /*IN*/ XLATEOBJ
*pxlo
,
3136 /*IN*/ TRIVERTEX
*pVertex
,
3137 /*IN*/ ULONG nVertex
,
3140 /*IN*/ RECTL
*prclExtents
,
3141 /*IN*/ POINTL
*pptlDitherOrg
,
3142 /*IN*/ ULONG ulMode
);
3146 DrvIcmCheckBitmapBits(
3147 /*IN*/ DHPDEV dhpdev
,
3148 /*IN*/ HANDLE hColorTransform
,
3149 /*IN*/ SURFOBJ
*pso
,
3151 /*OUT*/ PBYTE paResults
);
3155 DrvIcmCreateColorTransform(
3156 /*IN*/ DHPDEV dhpdev
,
3157 /*IN*/ LPLOGCOLORSPACEW pLogColorSpace
,
3158 /*IN*/ PVOID pvSourceProfile
,
3159 /*IN*/ ULONG cjSourceProfile
,
3160 /*IN*/ PVOID pvDestProfile
,
3161 /*IN*/ ULONG cjDestProfile
,
3162 /*IN*/ PVOID pvTargetProfile
,
3163 /*IN*/ ULONG cjTargetProfile
,
3164 /*IN*/ DWORD dwReserved
);
3168 DrvIcmDeleteColorTransform(
3169 /*IN*/ DHPDEV dhpdev
,
3170 /*IN*/ HANDLE hcmXform
);
3172 /* DrvIcmSetDeviceGammaRamp.iFormat constants */
3173 #define IGRF_RGB_256BYTES 0x00000000
3174 #define IGRF_RGB_256WORDS 0x00000001
3178 DrvIcmSetDeviceGammaRamp(
3179 /*IN*/ DHPDEV dhpdev
,
3180 /*IN*/ ULONG iFormat
,
3181 /*IN*/ LPVOID lpRamp
);
3205 ULONG ulFastCheckSum
);
3210 /*IN*/ SURFOBJ
*pso
,
3213 /*IN*/ RECTL
*prcl
);
3218 /*IN*/ SURFOBJ
*pso
,
3219 /*IN*/ POINTL
*pptl
);
3224 /*IN*/ SURFOBJ
*pso
,
3226 /*IN*/ PVOID pvData
);
3231 /*IN*/ SURFOBJ
*pso
,
3234 /*IN*/ FLONG flReserved
);
3239 /*IN*/ SURFOBJ
*pso
,
3240 /*IN*/ CLIPOBJ
*pco
,
3241 /*IN*/ BRUSHOBJ
*pbo
,
3242 /*IN*/ POINTL
*pptlBrushOrg
,
3248 /*IN*/ SURFOBJ
*psoTrg
,
3249 /*IN*/ SURFOBJ
*psoSrc
,
3250 /*IN*/ SURFOBJ
*psoMsk
,
3251 /*IN*/ CLIPOBJ
*pco
,
3252 /*IN*/ XLATEOBJ
*pxlo
,
3253 /*IN*/ COLORADJUSTMENT
*pca
,
3254 /*IN*/ POINTL
*pptlBrushOrg
,
3255 /*IN*/ POINTFIX
*pptfx
,
3257 /*IN*/ POINTL
*pptl
,
3258 /*IN*/ ULONG iMode
);
3260 /* DrvQueryAdvanceWidths.iMode constants */
3261 #define QAW_GETWIDTHS 0
3262 #define QAW_GETEASYWIDTHS 1
3266 DrvQueryAdvanceWidths(
3267 /*IN*/ DHPDEV dhpdev
,
3268 /*IN*/ FONTOBJ
*pfo
,
3272 /*OUT*/ PVOID pvWidths
,
3273 /*IN*/ ULONG cGlyphs
);
3275 /* DrvQueryDeviceSupport.iType constants */
3276 #define QDS_CHECKJPEGFORMAT 0x00000000
3277 #define QDS_CHECKPNGFORMAT 0x00000001
3281 DrvQueryDeviceSupport(
3291 /* DrvQueryDriverInfo.dwMode constants */
3292 #define DRVQUERY_USERMODE 0x00000001
3305 /*IN*/ DHPDEV dhpdev
,
3306 /*IN*/ ULONG_PTR iFile
,
3308 /*IN*/ ULONG_PTR
*pid
);
3310 /* DrvQueryFontCaps.pulCaps constants */
3311 #define QC_OUTLINES 0x00000001
3312 #define QC_1BIT 0x00000002
3313 #define QC_4BIT 0x00000004
3315 #define QC_FONTDRIVERCAPS (QC_OUTLINES | QC_1BIT | QC_4BIT)
3320 /*IN*/ ULONG culCaps
,
3322 /*OUT*/ ULONG
*pulCaps
);
3324 /* DrvQueryFontData.iMode constants */
3325 #define QFD_GLYPHANDBITMAP 1L
3326 #define QFD_GLYPHANDOUTLINE 2L
3327 #define QFD_MAXEXTENTS 3L
3328 #define QFD_TT_GLYPHANDBITMAP 4L
3329 #define QFD_TT_GRAY1_BITMAP 5L
3330 #define QFD_TT_GRAY2_BITMAP 6L
3331 #define QFD_TT_GRAY4_BITMAP 8L
3332 #define QFD_TT_GRAY8_BITMAP 9L
3334 #define QFD_TT_MONO_BITMAP QFD_TT_GRAY1_BITMAP
3339 /*IN*/ DHPDEV dhpdev
,
3340 /*IN*/ FONTOBJ
*pfo
,
3343 /*IN OUT*/ GLYPHDATA
*pgd
,
3344 /*IN OUT*/ PVOID pv
,
3345 /*IN*/ ULONG cjSize
);
3347 /* DrvQueryFontFile.ulMode constants */
3348 #define QFF_DESCRIPTION 0x00000001
3349 #define QFF_NUMFACES 0x00000002
3354 /*IN*/ ULONG_PTR iFile
,
3355 /*IN*/ ULONG ulMode
,
3357 /*IN*/ ULONG
*pulBuf
);
3359 /* DrvQueryFontTree.iMode constants */
3360 #define QFT_UNICODE 0L
3361 #define QFT_LIGATURES 1L
3362 #define QFT_KERNPAIRS 2L
3363 #define QFT_GLYPHSET 3L
3368 /*IN*/ DHPDEV dhpdev
,
3369 /*IN*/ ULONG_PTR iFile
,
3372 /*IN*/ ULONG_PTR
*pid
);
3377 /*IN*/ FONTOBJ
*pfo
,
3378 /*IN*/ ULONG iMode
);
3382 DrvQueryPerBandInfo(
3383 /*IN*/ SURFOBJ
*pso
,
3384 /*IN OUT*/ PERBANDINFO
*pbi
);
3386 /* DrvQueryTrueTypeOutline.bMetricsOnly constants */
3387 #define TTO_METRICS_ONLY 0x00000001
3388 #define TTO_QUBICS 0x00000002
3389 #define TTO_UNHINTED 0x00000004
3393 DrvQueryTrueTypeOutline(
3394 /*IN*/ DHPDEV dhpdev
,
3395 /*IN*/ FONTOBJ
*pfo
,
3396 /*IN*/ HGLYPH hglyph
,
3397 /*IN*/ BOOL bMetricsOnly
,
3398 /*IN*/ GLYPHDATA
*pgldt
,
3401 /*OUT*/ TTPOLYGONHEADER
*ppoly
);
3405 DrvQueryTrueTypeTable(
3406 /*IN*/ ULONG_PTR iFile
,
3407 /*IN*/ ULONG ulFont
,
3409 /*IN*/ PTRDIFF dpStart
,
3412 /*OUT*/ BYTE
*pjBuf
,
3414 /*OUT*/ PBYTE
*ppjTable
,
3416 /*OUT*/ ULONG
*pcjTable
);
3418 /* DrvRealizeBrush.iHatch constants */
3419 #define RB_DITHERCOLOR 0x80000000L
3421 #define HS_DDI_MAX 6
3426 /*IN*/ BRUSHOBJ
*pbo
,
3427 /*IN*/ SURFOBJ
*psoTarget
,
3428 /*IN*/ SURFOBJ
*psoPattern
,
3429 /*IN*/ SURFOBJ
*psoMask
,
3430 /*IN*/ XLATEOBJ
*pxlo
,
3431 /*IN*/ ULONG iHatch
);
3433 /* DrvResetDevice return values */
3434 #define DRD_SUCCESS 0
3440 /*IN*/ DHPDEV dhpdev
,
3441 /*IN*/ PVOID Reserved
);
3449 /* DrvSaveScreenBits.iMode constants */
3450 #define SS_SAVE 0x00000000
3451 #define SS_RESTORE 0x00000001
3452 #define SS_FREE 0x00000002
3457 /*IN*/ SURFOBJ
*pso
,
3459 /*IN*/ ULONG_PTR ident
,
3460 /*IN*/ RECTL
*prcl
);
3465 /*IN*/ SURFOBJ
*pso
);
3470 /*IN*/ DHPDEV dhpdev
,
3471 /*IN*/ PALOBJ
*ppalo
,
3473 /*IN*/ ULONG iStart
,
3474 /*IN*/ ULONG cColors
);
3479 /*IN*/ SURFOBJ
*pso
,
3480 /*IN*/ LONG iPixelFormat
,
3483 /* DrvSetPointerShape return values */
3484 #define SPS_ERROR 0x00000000
3485 #define SPS_DECLINE 0x00000001
3486 #define SPS_ACCEPT_NOEXCLUDE 0x00000002
3487 #define SPS_ACCEPT_EXCLUDE 0x00000003
3488 #define SPS_ACCEPT_SYNCHRONOUS 0x00000004
3490 /* DrvSetPointerShape.fl constants */
3491 #define SPS_CHANGE 0x00000001L
3492 #define SPS_ASYNCCHANGE 0x00000002L
3493 #define SPS_ANIMATESTART 0x00000004L
3494 #define SPS_ANIMATEUPDATE 0x00000008L
3495 #define SPS_ALPHA 0x00000010L
3496 #define SPS_LENGTHMASK 0x00000F00L
3497 #define SPS_FREQMASK 0x000FF000L
3502 /*IN*/ SURFOBJ
*pso
,
3503 /*IN*/ SURFOBJ
*psoMask
,
3504 /*IN*/ SURFOBJ
*psoColor
,
3505 /*IN*/ XLATEOBJ
*pxlo
,
3516 /*IN*/ SURFOBJ
*pso
,
3517 /*IN*/ POINTL
*pptl
);
3522 /*IN*/ SURFOBJ
*pso
,
3523 /*IN*/ LPWSTR pwszDocName
,
3524 /*IN*/ DWORD dwJobId
);
3529 /*IN*/ SURFOBJ
*pso
);
3534 /*IN*/ SURFOBJ
*psoDest
,
3535 /*IN*/ SURFOBJ
*psoSrc
,
3536 /*IN*/ SURFOBJ
*psoMask
,
3537 /*IN*/ CLIPOBJ
*pco
,
3538 /*IN*/ XLATEOBJ
*pxlo
,
3539 /*IN*/ COLORADJUSTMENT
*pca
,
3540 /*IN*/ POINTL
*pptlHTOrg
,
3541 /*IN*/ RECTL
*prclDest
,
3542 /*IN*/ RECTL
*prclSrc
,
3543 /*IN*/ POINTL
*pptlMask
,
3544 /*IN*/ ULONG iMode
);
3549 /*IN*/ SURFOBJ
*psoDest
,
3550 /*IN*/ SURFOBJ
*psoSrc
,
3551 /*IN*/ SURFOBJ
*psoMask
,
3552 /*IN*/ CLIPOBJ
*pco
,
3553 /*IN*/ XLATEOBJ
*pxlo
,
3554 /*IN*/ COLORADJUSTMENT
*pca
,
3555 /*IN*/ POINTL
*pptlHTOrg
,
3556 /*IN*/ RECTL
*prclDest
,
3557 /*IN*/ RECTL
*prclSrc
,
3558 /*IN*/ POINTL
*pptlMask
,
3560 /*IN*/ BRUSHOBJ
*pbo
,
3565 DrvStrokeAndFillPath(
3566 /*IN*/ SURFOBJ
*pso
,
3567 /*IN*/ PATHOBJ
*ppo
,
3568 /*IN*/ CLIPOBJ
*pco
,
3569 /*IN*/ XFORMOBJ
*pxo
,
3570 /*IN*/ BRUSHOBJ
*pboStroke
,
3571 /*IN*/ LINEATTRS
*plineattrs
,
3572 /*IN*/ BRUSHOBJ
*pboFill
,
3573 /*IN*/ POINTL
*pptlBrushOrg
,
3575 /*IN*/ FLONG flOptions
);
3580 /*IN*/ SURFOBJ
*pso
,
3581 /*IN*/ PATHOBJ
*ppo
,
3582 /*IN*/ CLIPOBJ
*pco
,
3583 /*IN*/ XFORMOBJ
*pxo
,
3584 /*IN*/ BRUSHOBJ
*pbo
,
3585 /*IN*/ POINTL
*pptlBrushOrg
,
3586 /*IN*/ LINEATTRS
*plineattrs
,
3592 /*IN*/ SURFOBJ
*pso
,
3593 /*IN*/ WNDOBJ
*pwo
);
3598 /*IN*/ DHPDEV dhpdev
,
3599 /*IN*/ RECTL
*prcl
);
3601 /* DrvSynchronizeSurface.fl constants */
3602 #define DSS_TIMER_EVENT 0x00000001
3603 #define DSS_FLUSH_EVENT 0x00000002
3607 DrvSynchronizeSurface(
3608 /*IN*/ SURFOBJ
*pso
,
3615 /*IN*/ SURFOBJ
*pso
,
3616 /*IN*/ STROBJ
*pstro
,
3617 /*IN*/ FONTOBJ
*pfo
,
3618 /*IN*/ CLIPOBJ
*pco
,
3619 /*IN*/ RECTL
*prclExtra
,
3620 /*IN*/ RECTL
*prclOpaque
,
3621 /*IN*/ BRUSHOBJ
*pboFore
,
3622 /*IN*/ BRUSHOBJ
*pboOpaque
,
3623 /*IN*/ POINTL
*pptlOrg
,
3629 /*IN*/ SURFOBJ
*psoDst
,
3630 /*IN*/ SURFOBJ
*psoSrc
,
3631 /*IN*/ CLIPOBJ
*pco
,
3632 /*IN*/ XLATEOBJ
*pxlo
,
3633 /*IN*/ RECTL
*prclDst
,
3634 /*IN*/ RECTL
*prclSrc
,
3635 /*IN*/ ULONG iTransColor
,
3636 /*IN*/ ULONG ulReserved
);
3641 /*IN*/ ULONG_PTR iFile
);
3643 /* WNDOBJCHANGEPROC.fl constants */
3644 #define WOC_RGN_CLIENT_DELTA 0x00000001
3645 #define WOC_RGN_CLIENT 0x00000002
3646 #define WOC_RGN_SURFACE_DELTA 0x00000004
3647 #define WOC_RGN_SURFACE 0x00000008
3648 #define WOC_CHANGED 0x00000010
3649 #define WOC_DELETE 0x00000020
3650 #define WOC_DRAWN 0x00000040
3651 #define WOC_SPRITE_OVERLAP 0x00000080
3652 #define WOC_SPRITE_NO_OVERLAP 0x00000100
3655 (CALLBACK
* WNDOBJCHANGEPROC
)(
3661 (*PFN_DrvAlphaBlend
)(
3662 /*IN*/ SURFOBJ
*psoDest
,
3663 /*IN*/ SURFOBJ
*psoSrc
,
3664 /*IN*/ CLIPOBJ
*pco
,
3665 /*IN*/ XLATEOBJ
*pxlo
,
3666 /*IN*/ RECTL
*prclDest
,
3667 /*IN*/ RECTL
*prclSrc
,
3668 /*IN*/ BLENDOBJ
*pBlendObj
);
3671 (*PFN_DrvAssertMode
)(
3672 /*IN*/ DHPDEV dhpdev
,
3673 /*IN*/ BOOL bEnable
);
3677 /*IN*/ SURFOBJ
*psoTrg
,
3678 /*IN*/ SURFOBJ
*psoSrc
,
3679 /*IN*/ SURFOBJ
*psoMask
,
3680 /*IN*/ CLIPOBJ
*pco
,
3681 /*IN*/ XLATEOBJ
*pxlo
,
3682 /*IN*/ RECTL
*prclTrg
,
3683 /*IN*/ POINTL
*pptlSrc
,
3684 /*IN*/ POINTL
*pptlMask
,
3685 /*IN*/ BRUSHOBJ
*pbo
,
3686 /*IN*/ POINTL
*pptlBrush
,
3690 (*PFN_DrvCompletePDEV
)(
3691 /*IN*/ DHPDEV dhpdev
,
3696 /*IN*/ SURFOBJ
*psoDest
,
3697 /*IN*/ SURFOBJ
*psoSrc
,
3698 /*IN*/ CLIPOBJ
*pco
,
3699 /*IN*/ XLATEOBJ
*pxlo
,
3700 /*IN*/ RECTL
*prclDest
,
3701 /*IN*/ POINTL
*pptlSrc
);
3703 typedef HBITMAP DDKAPI
3704 (*PFN_DrvCreateDeviceBitmap
)(
3705 /*IN*/ DHPDEV dhpdev
,
3707 /*IN*/ ULONG iFormat
);
3710 (*PFN_DrvDeleteDeviceBitmap
)(
3711 /*IN*/ DHSURF dhsurf
);
3713 typedef HBITMAP DDKAPI
3714 (*PFN_DrvDeriveSurface
)(
3715 DD_DIRECTDRAW_GLOBAL
*pDirectDraw
,
3716 DD_SURFACE_LOCAL
*pSurface
);
3719 (*PFN_DrvDescribePixelFormat
)(
3720 /*IN*/ DHPDEV dhpdev
,
3721 /*IN*/ LONG iPixelFormat
,
3724 /*OUT*/ PIXELFORMATDESCRIPTOR
*ppfd
);
3727 (*PFN_DrvDestroyFont
)(
3728 /*IN*/ FONTOBJ
*pfo
);
3731 (*PFN_DrvDisableDriver
)(
3735 (*PFN_DrvDisablePDEV
)(
3736 /*IN*/ DHPDEV dhpdev
);
3739 (*PFN_DrvDisableSurface
)(
3740 /*IN*/ DHPDEV dhpdev
);
3742 typedef ULONG DDKAPI
3743 (*PFN_DrvDitherColor
)(
3744 /*IN*/ DHPDEV dhpdev
,
3748 /*OUT*/ ULONG
*pul
);
3750 typedef ULONG DDKAPI
3751 (*PFN_DrvDrawEscape
)(
3752 /*IN*/ SURFOBJ
*pso
,
3754 /*IN*/ CLIPOBJ
*pco
,
3760 (*PFN_DrvEnableDriver
)(
3761 /*IN*/ ULONG iEngineVersion
,
3764 /*OUT*/ DRVENABLEDATA
*pded
);
3766 typedef DHPDEV DDKAPI
3767 (*PFN_DrvEnablePDEV
)(
3768 /*IN*/ DEVMODEW
*pdm
,
3769 /*IN*/ LPWSTR pwszLogAddress
,
3772 /*OUT*/ HSURF
*phsurfPatterns
,
3773 /*IN*/ ULONG cjCaps
,
3775 /*OUT*/ ULONG
*pdevcaps
,
3776 /*IN*/ ULONG cjDevInfo
,
3778 /*OUT*/ DEVINFO
*pdi
,
3780 /*IN*/ LPWSTR pwszDeviceName
,
3781 /*IN*/ HANDLE hDriver
);
3783 typedef HSURF DDKAPI
3784 (*PFN_DrvEnableSurface
)(
3785 /*IN*/ DHPDEV dhpdev
);
3789 /*IN*/ SURFOBJ
*pso
,
3792 typedef ULONG DDKAPI
3794 /*IN*/ SURFOBJ
*pso
,
3800 /*OUT*/ PVOID pvOut
);
3804 /*IN*/ SURFOBJ
*pso
,
3805 /*IN*/ PATHOBJ
*ppo
,
3806 /*IN*/ CLIPOBJ
*pco
,
3807 /*IN*/ BRUSHOBJ
*pbo
,
3808 /*IN*/ POINTL
*pptlBrushOrg
,
3810 /*IN*/ FLONG flOptions
);
3812 typedef ULONG DDKAPI
3813 (*PFN_DrvFontManagement
)(
3814 /*IN*/ SURFOBJ
*pso
,
3815 /*IN*/ FONTOBJ
*pfo
,
3821 /*OUT*/ PVOID pvOut
);
3826 /*IN*/ ULONG_PTR id
);
3828 typedef ULONG DDKAPI
3829 (*PFN_DrvGetGlyphMode
)(
3830 /*IN*/ DHPDEV dhpdev
,
3831 /*IN*/ FONTOBJ
*pfo
);
3833 typedef ULONG DDKAPI
3835 /*IN*/ HANDLE hDriver
,
3836 /*IN*/ ULONG cjSize
,
3838 /*OUT*/ DEVMODEW
*pdm
);
3840 typedef PVOID DDKAPI
3841 (*PFN_DrvGetTrueTypeFile
)(
3842 /*IN*/ ULONG_PTR iFile
,
3846 (*PFN_DrvGradientFill
)(
3847 /*IN*/ SURFOBJ
*psoDest
,
3848 /*IN*/ CLIPOBJ
*pco
,
3849 /*IN*/ XLATEOBJ
*pxlo
,
3850 /*IN*/ TRIVERTEX
*pVertex
,
3851 /*IN*/ ULONG nVertex
,
3854 /*IN*/ RECTL
*prclExtents
,
3855 /*IN*/ POINTL
*pptlDitherOrg
,
3856 /*IN*/ ULONG ulMode
);
3859 (*PFN_DrvIcmCheckBitmapBits
)(
3860 /*IN*/ DHPDEV dhpdev
,
3861 /*IN*/ HANDLE hColorTransform
,
3862 /*IN*/ SURFOBJ
*pso
,
3864 /*OUT*/ PBYTE paResults
);
3866 typedef HANDLE DDKAPI
3867 (*PFN_DrvIcmCreateColorTransform
)(
3868 /*IN*/ DHPDEV dhpdev
,
3869 /*IN*/ LPLOGCOLORSPACEW pLogColorSpace
,
3870 /*IN*/ PVOID pvSourceProfile
,
3871 /*IN*/ ULONG cjSourceProfile
,
3872 /*IN*/ PVOID pvDestProfile
,
3873 /*IN*/ ULONG cjDestProfile
,
3874 /*IN*/ PVOID pvTargetProfile
,
3875 /*IN*/ ULONG cjTargetProfile
,
3876 /*IN*/ DWORD dwReserved
);
3879 (*PFN_DrvIcmDeleteColorTransform
)(
3880 /*IN*/ DHPDEV dhpdev
,
3881 /*IN*/ HANDLE hcmXform
);
3884 (*PFN_DrvIcmSetDeviceGammaRamp
)(
3885 /*IN*/ DHPDEV dhpdev
,
3886 /*IN*/ ULONG iFormat
,
3887 /*IN*/ LPVOID lpRamp
);
3901 typedef ULONG_PTR DDKAPI
3902 (*PFN_DrvLoadFontFile
)(
3909 ULONG ulFastCheckSum
);
3912 (*PFN_DrvMovePointer
)(
3913 /*IN*/ SURFOBJ
*pso
,
3916 /*IN*/ RECTL
*prcl
);
3920 /*IN*/ SURFOBJ
*pso
,
3921 /*IN*/ POINTL
*pptl
);
3925 /*IN*/ SURFOBJ
*pso
,
3927 /*IN*/ PVOID pvData
);
3931 /*IN*/ SURFOBJ
*pso
,
3934 /*IN*/ FLONG flReserved
);
3938 /*IN*/ SURFOBJ
*pso
,
3939 /*IN*/ CLIPOBJ
*pco
,
3940 /*IN*/ BRUSHOBJ
*pbo
,
3941 /*IN*/ POINTL
*pptlBrushOrg
,
3946 /*IN*/ SURFOBJ
*psoTrg
,
3947 /*IN*/ SURFOBJ
*psoSrc
,
3948 /*IN*/ SURFOBJ
*psoMsk
,
3949 /*IN*/ CLIPOBJ
*pco
,
3950 /*IN*/ XLATEOBJ
*pxlo
,
3951 /*IN*/ COLORADJUSTMENT
*pca
,
3952 /*IN*/ POINTL
*pptlBrushOrg
,
3953 /*IN*/ POINTFIX
*pptfx
,
3955 /*IN*/ POINTL
*pptl
,
3956 /*IN*/ ULONG iMode
);
3959 (*PFN_DrvQueryAdvanceWidths
)(
3960 /*IN*/ DHPDEV dhpdev
,
3961 /*IN*/ FONTOBJ
*pfo
,
3965 /*OUT*/ PVOID pvWidths
,
3966 /*IN*/ ULONG cGlyphs
);
3969 (*PFN_DrvQueryDeviceSupport
)(
3980 (*PFN_DrvQueryDriverInfo
)(
3986 typedef PIFIMETRICS DDKAPI
3987 (*PFN_DrvQueryFont
)(
3988 /*IN*/ DHPDEV dhpdev
,
3989 /*IN*/ ULONG_PTR iFile
,
3991 /*IN*/ ULONG_PTR
*pid
);
3994 (*PFN_DrvQueryFontCaps
)(
3995 /*IN*/ ULONG culCaps
,
3997 /*OUT*/ ULONG
*pulCaps
);
4000 (*PFN_DrvQueryFontData
)(
4001 /*IN*/ DHPDEV dhpdev
,
4002 /*IN*/ FONTOBJ
*pfo
,
4005 /*IN OUT*/ GLYPHDATA
*pgd
,
4006 /*IN OUT*/ PVOID pv
,
4007 /*IN*/ ULONG cjSize
);
4010 (*PFN_DrvQueryFontFile
)(
4011 /*IN*/ ULONG_PTR iFile
,
4012 /*IN*/ ULONG ulMode
,
4014 /*IN*/ ULONG
*pulBuf
);
4016 typedef PVOID DDKAPI
4017 (*PFN_DrvQueryFontTree
)(
4018 /*IN*/ DHPDEV dhpdev
,
4019 /*IN*/ ULONG_PTR iFile
,
4022 /*IN*/ ULONG_PTR
*pid
);
4024 typedef PFD_GLYPHATTR DDKAPI
4025 (*PFN_DrvQueryGlyphAttrs
)(
4026 /*IN*/ FONTOBJ
*pfo
,
4027 /*IN*/ ULONG iMode
);
4029 typedef ULONG DDKAPI
4030 (*PFN_DrvQueryPerBandInfo
)(
4031 /*IN*/ SURFOBJ
*pso
,
4032 /*IN OUT*/ PERBANDINFO
*pbi
);
4035 (*PFN_DrvQueryTrueTypeOutline
)(
4036 /*IN*/ DHPDEV dhpdev
,
4037 /*IN*/ FONTOBJ
*pfo
,
4038 /*IN*/ HGLYPH hglyph
,
4039 /*IN*/ BOOL bMetricsOnly
,
4040 /*IN*/ GLYPHDATA
*pgldt
,
4042 /*OUT*/ TTPOLYGONHEADER
*ppoly
);
4045 (*PFN_DrvQueryTrueTypeTable
)(
4046 /*IN*/ ULONG_PTR iFile
,
4047 /*IN*/ ULONG ulFont
,
4049 /*IN*/ PTRDIFF dpStart
,
4051 /*OUT*/ BYTE
*pjBuf
,
4052 /*OUT*/ PBYTE
*ppjTable
,
4053 /*OUT*/ ULONG
*pcjTable
);
4056 (*PFN_DrvRealizeBrush
)(
4057 /*IN*/ BRUSHOBJ
*pbo
,
4058 /*IN*/ SURFOBJ
*psoTarget
,
4059 /*IN*/ SURFOBJ
*psoPattern
,
4060 /*IN*/ SURFOBJ
*psoMask
,
4061 /*IN*/ XLATEOBJ
*pxlo
,
4062 /*IN*/ ULONG iHatch
);
4064 typedef ULONG DDKAPI
4065 (*PFN_DrvResetDevice
)(
4066 /*IN*/ DHPDEV dhpdev
,
4067 /*IN*/ PVOID Reserved
);
4070 (*PFN_DrvResetPDEV
)(
4074 typedef ULONG_PTR DDKAPI
4075 (*PFN_DrvSaveScreenBits
)(
4076 /*IN*/ SURFOBJ
*pso
,
4078 /*IN*/ ULONG_PTR ident
,
4079 /*IN*/ RECTL
*prcl
);
4083 /*IN*/ SURFOBJ
*pso
);
4086 (*PFN_DrvSetPalette
)(
4087 /*IN*/ DHPDEV dhpdev
,
4088 /*IN*/ PALOBJ
*ppalo
,
4090 /*IN*/ ULONG iStart
,
4091 /*IN*/ ULONG cColors
);
4094 (*PFN_DrvSetPixelFormat
)(
4095 /*IN*/ SURFOBJ
*pso
,
4096 /*IN*/ LONG iPixelFormat
,
4099 typedef ULONG DDKAPI
4100 (*PFN_DrvSetPointerShape
)(
4101 /*IN*/ SURFOBJ
*pso
,
4102 /*IN*/ SURFOBJ
*psoMask
,
4103 /*IN*/ SURFOBJ
*psoColor
,
4104 /*IN*/ XLATEOBJ
*pxlo
,
4113 (*PFN_DrvStartBanding
)(
4114 /*IN*/ SURFOBJ
*pso
,
4115 /*IN*/ POINTL
*pptl
);
4119 /*IN*/ SURFOBJ
*pso
,
4120 /*IN*/ LPWSTR pwszDocName
,
4121 /*IN*/ DWORD dwJobId
);
4124 (*PFN_DrvStartPage
)(
4125 /*IN*/ SURFOBJ
*pso
);
4128 (*PFN_DrvStretchBlt
)(
4129 /*IN*/ SURFOBJ
*psoDest
,
4130 /*IN*/ SURFOBJ
*psoSrc
,
4131 /*IN*/ SURFOBJ
*psoMask
,
4132 /*IN*/ CLIPOBJ
*pco
,
4133 /*IN*/ XLATEOBJ
*pxlo
,
4134 /*IN*/ COLORADJUSTMENT
*pca
,
4135 /*IN*/ POINTL
*pptlHTOrg
,
4136 /*IN*/ RECTL
*prclDest
,
4137 /*IN*/ RECTL
*prclSrc
,
4138 /*IN*/ POINTL
*pptlMask
,
4139 /*IN*/ ULONG iMode
);
4142 (*PFN_DrvStretchBltROP
)(
4143 /*IN*/ SURFOBJ
*psoDest
,
4144 /*IN*/ SURFOBJ
*psoSrc
,
4145 /*IN*/ SURFOBJ
*psoMask
,
4146 /*IN*/ CLIPOBJ
*pco
,
4147 /*IN*/ XLATEOBJ
*pxlo
,
4148 /*IN*/ COLORADJUSTMENT
*pca
,
4149 /*IN*/ POINTL
*pptlHTOrg
,
4150 /*IN*/ RECTL
*prclDest
,
4151 /*IN*/ RECTL
*prclSrc
,
4152 /*IN*/ POINTL
*pptlMask
,
4154 /*IN*/ BRUSHOBJ
*pbo
,
4158 (*PFN_DrvStrokeAndFillPath
)(
4159 /*IN*/ SURFOBJ
*pso
,
4160 /*IN*/ PATHOBJ
*ppo
,
4161 /*IN*/ CLIPOBJ
*pco
,
4162 /*IN*/ XFORMOBJ
*pxo
,
4163 /*IN*/ BRUSHOBJ
*pboStroke
,
4164 /*IN*/ LINEATTRS
*plineattrs
,
4165 /*IN*/ BRUSHOBJ
*pboFill
,
4166 /*IN*/ POINTL
*pptlBrushOrg
,
4168 /*IN*/ FLONG flOptions
);
4171 (*PFN_DrvStrokePath
)(
4172 /*IN*/ SURFOBJ
*pso
,
4173 /*IN*/ PATHOBJ
*ppo
,
4174 /*IN*/ CLIPOBJ
*pco
,
4175 /*IN*/ XFORMOBJ
*pxo
,
4176 /*IN*/ BRUSHOBJ
*pbo
,
4177 /*IN*/ POINTL
*pptlBrushOrg
,
4178 /*IN*/ LINEATTRS
*plineattrs
,
4182 (*PFN_DrvSwapBuffers
)(
4183 /*IN*/ SURFOBJ
*pso
,
4184 /*IN*/ WNDOBJ
*pwo
);
4187 (*PFN_DrvSynchronize
)(
4188 /*IN*/ DHPDEV dhpdev
,
4189 /*IN*/ RECTL
*prcl
);
4192 (*PFN_DrvSynchronizeSurface
)(
4193 /*IN*/ SURFOBJ
*pso
,
4199 /*IN*/ SURFOBJ
*pso
,
4200 /*IN*/ STROBJ
*pstro
,
4201 /*IN*/ FONTOBJ
*pfo
,
4202 /*IN*/ CLIPOBJ
*pco
,
4203 /*IN*/ RECTL
*prclExtra
,
4204 /*IN*/ RECTL
*prclOpaque
,
4205 /*IN*/ BRUSHOBJ
*pboFore
,
4206 /*IN*/ BRUSHOBJ
*pboOpaque
,
4207 /*IN*/ POINTL
*pptlOrg
,
4211 (*PFN_DrvTransparentBlt
)(
4212 /*IN*/ SURFOBJ
*psoDst
,
4213 /*IN*/ SURFOBJ
*psoSrc
,
4214 /*IN*/ CLIPOBJ
*pco
,
4215 /*IN*/ XLATEOBJ
*pxlo
,
4216 /*IN*/ RECTL
*prclDst
,
4217 /*IN*/ RECTL
*prclSrc
,
4218 /*IN*/ ULONG iTransColor
,
4219 /*IN*/ ULONG ulReserved
);
4222 (*PFN_DrvUnloadFontFile
)(
4223 /*IN*/ ULONG_PTR iFile
);
4229 DrvDisableDirectDraw(
4230 /*IN*/ DHPDEV dhpdev
);
4235 DrvEnableDirectDraw(
4236 /*IN*/ DHPDEV dhpdev
,
4237 /*OUT*/ DD_CALLBACKS
*pCallBacks
,
4238 /*OUT*/ DD_SURFACECALLBACKS
*pSurfaceCallBacks
,
4239 /*OUT*/ DD_PALETTECALLBACKS
*pPaletteCallBacks
);
4244 DrvGetDirectDrawInfo(
4245 /*IN*/ DHPDEV dhpdev
,
4246 /*OUT*/ DD_HALINFO
*pHalInfo
,
4247 /*OUT*/ DWORD
*pdwNumHeaps
,
4248 /*OUT*/ VIDEOMEMORY
*pvmList
,
4249 /*OUT*/ DWORD
*pdwNumFourCCCodes
,
4250 /*OUT*/ DWORD
*pdwFourCC
);
4256 #endif /* defined __VIDEO_H */
4258 #endif /* __WINDDI_H */