1922 lines
70 KiB
C
1922 lines
70 KiB
C
|
/*
|
||
|
* winddi.h Win32 Device Driver Interface functions
|
||
|
*
|
||
|
* =========================================================================
|
||
|
*
|
||
|
* Open Watcom Project
|
||
|
*
|
||
|
* Copyright (c) 2004-2010 The Open Watcom Contributors. All Rights Reserved.
|
||
|
*
|
||
|
* This file is automatically generated. Do not edit directly.
|
||
|
*
|
||
|
* =========================================================================
|
||
|
*/
|
||
|
|
||
|
#ifndef _WINDDI_
|
||
|
#define _WINDDI_
|
||
|
|
||
|
#ifndef _ENABLE_AUTODEPEND
|
||
|
#pragma read_only_file;
|
||
|
#endif
|
||
|
|
||
|
#include <ddrawint.h>
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
extern "C" {
|
||
|
#endif
|
||
|
|
||
|
/* Macro to specify graphics engine functions */
|
||
|
#define ENGAPI DECLSPEC_IMPORT
|
||
|
|
||
|
/* Primitive data types */
|
||
|
#if defined( _X86_ ) && !defined( USERMODE_DRIVER )
|
||
|
typedef DWORD FLOATL;
|
||
|
#else
|
||
|
typedef FLOAT FLOATL;
|
||
|
#endif
|
||
|
typedef LONG PTRDIFF;
|
||
|
typedef PTRDIFF *PPTRDIFF;
|
||
|
typedef LONG FIX;
|
||
|
typedef FIX *PFIX;
|
||
|
typedef ULONG ROP4;
|
||
|
typedef ULONG MIX;
|
||
|
typedef ULONG HGLYPH;
|
||
|
typedef HGLYPH *PHGLYPH;
|
||
|
typedef ULONG IDENT;
|
||
|
typedef ULONG_PTR HFF;
|
||
|
typedef ULONG_PTR HFC;
|
||
|
typedef SHORT FWORD;
|
||
|
typedef LONG LDECI4;
|
||
|
|
||
|
/* Handle data types */
|
||
|
DECLARE_HANDLE( HBM );
|
||
|
DECLARE_HANDLE( HDEV );
|
||
|
DECLARE_HANDLE( HSURF );
|
||
|
DECLARE_HANDLE( DHSURF );
|
||
|
DECLARE_HANDLE( DHPDEV );
|
||
|
DECLARE_HANDLE( HDRVOBJ );
|
||
|
DECLARE_HANDLE( HSEMAPHORE );
|
||
|
#if (NTDDI_VERSION >= 0x06000000)
|
||
|
DECLARE_HANDLE( HFASTMUTEX );
|
||
|
#endif
|
||
|
|
||
|
/* Handle special values */
|
||
|
#define HGLYPH_INVALID ((HGLYPH)-1)
|
||
|
#define HFF_INVALID ((HFF)-1)
|
||
|
#define HHFC_INVALID ((HFF)-1)
|
||
|
|
||
|
/* Error values */
|
||
|
#define FD_ERROR 0xFFFFFFFFL
|
||
|
#define DDI_ERROR 0xFFFFFFFFL
|
||
|
|
||
|
/* Conversion macros */
|
||
|
#define LTOFX( x ) ((x) << 4)
|
||
|
#define FXTOL( x ) ((x) >> 4)
|
||
|
#define FXTOLFLOOR( x ) ((x) >> 4)
|
||
|
#define FXTOLCEILING( x ) (((x) + 0x0F) >> 4)
|
||
|
#define FXTOLROUND( x ) ((((x) >> 3) + 1) >> 1)
|
||
|
|
||
|
/* Font description types */
|
||
|
#define FDM_TYPE_BM_SIDE_CONST 0x00000001L
|
||
|
#define FDM_TYPE_MAXEXT_EQUAL_BM_SIDE 0x00000002L
|
||
|
#define FDM_TYPE_CHAR_INC_EQUAL_BM_SIDE 0x00000004L
|
||
|
#define FDM_TYPE_ZERO_BEARINGS 0x00000008L
|
||
|
#define FDM_TYPE_CONST_BEARINGS 0x00000010L
|
||
|
|
||
|
/* Glyph support flags */
|
||
|
#define GS_UNICODE_HANDLES 0x00000001L
|
||
|
#define GS_8BIT_HANDLES 0x00000002L
|
||
|
#define GS_16BIT_HANDLES 0x00000004L
|
||
|
|
||
|
/* Font metrics version number */
|
||
|
#define FM_VERSION_NUMBER 0
|
||
|
|
||
|
/* Font metrics types */
|
||
|
#define FM_TYPE_LICENSED 0x0002
|
||
|
#define FM_READONLY_EMBED 0x0004
|
||
|
#define FM_EDITABLE_EMBED 0x0008
|
||
|
#define FM_NO_EMBEDDING FM_TYPE_LICENSED
|
||
|
|
||
|
/* Font metrics information indices */
|
||
|
#define FM_INFO_TECH_TRUETYPE 0x00000001L
|
||
|
#define FM_INFO_TECH_BITMAP 0x00000002L
|
||
|
#define FM_INFO_TECH_STROKE 0x00000004L
|
||
|
#define FM_INFO_TECH_OUTLINE_NOT_TRUETYPE 0x00000008L
|
||
|
#define FM_INFO_ARB_XFORMS 0x00000010L
|
||
|
#define FM_INFO_1BPP 0x00000020L
|
||
|
#define FM_INFO_4BPP 0x00000040L
|
||
|
#define FM_INFO_8BPP 0x00000080L
|
||
|
#define FM_INFO_16BPP 0x00000100L
|
||
|
#define FM_INFO_24BPP 0x00000200L
|
||
|
#define FM_INFO_32BPP 0x00000400L
|
||
|
#define FM_INFO_INTEGER_WIDTH 0x00000800L
|
||
|
#define FM_INFO_CONSTANT_WIDTH 0x00001000L
|
||
|
#define FM_INFO_NOT_CONTIGUOUS 0x00002000L
|
||
|
#define FM_INFO_TECH_MM 0x00004000L
|
||
|
#define FM_INFO_RETURNS_OUTLINES 0x00008000L
|
||
|
#define FM_INFO_RETURNS_STROKES 0x00010000L
|
||
|
#define FM_INFO_RETURNS_BITMAPS 0x00020000L
|
||
|
#define FM_INFO_DSIG 0x00040000L
|
||
|
#define FM_INFO_RIGHT_HANDED 0x00080000L
|
||
|
#define FM_INFO_INTEGRAL_SCALING 0x00100000L
|
||
|
#define FM_INFO_90DEGREE_ROTATIONS 0x00200000L
|
||
|
#define FM_INFO_OPTICALLY_FIXED_PITCH 0x00400000L
|
||
|
#define FM_INFO_DO_NOT_ENUMERATE 0x00800000L
|
||
|
#define FM_INFO_ISOTROPIC_SCALING_ONLY 0x01000000L
|
||
|
#define FM_INFO_ANISOTROPIC_SCALING_ONLY 0x02000000L
|
||
|
#define FM_INFO_TECH_CFF 0x04000000L
|
||
|
#define FM_INFO_FAMILY_EQUIV 0x08000000L
|
||
|
#define FM_INFO_DBCS_FIXED_PITCH 0x10000000L
|
||
|
#define FM_INFO_NONNEGATIVE_AC 0x20000000L
|
||
|
#define FM_INFO_IGNORE_TC_RA_ABLE 0x40000000L
|
||
|
#define FM_INFO_TECH_TYPE1 0x80000000L
|
||
|
|
||
|
/* Maximum number of character sets */
|
||
|
#define MAXCHARSETS 16
|
||
|
|
||
|
/* Font metrics PANOSE cultures */
|
||
|
#define FM_PANOSE_CULTURE_LATIN 0x00000000L
|
||
|
|
||
|
/* Font metrics selection flags */
|
||
|
#define FM_SEL_ITALIC 0x0001
|
||
|
#define FM_SEL_UNDERSCORE 0x0002
|
||
|
#define FM_SEL_NEGATIVE 0x0004
|
||
|
#define FM_SEL_OUTLINED 0x0008
|
||
|
#define FM_SEL_STRIKEOUT 0x0010
|
||
|
#define FM_SEL_BOLD 0x0020
|
||
|
#define FM_SEL_REGULAR 0x0040
|
||
|
|
||
|
/* OpenGL escapes */
|
||
|
#define OPENGL_CMD 4352
|
||
|
#define OPENGL_GETINFO 4353
|
||
|
#define WNDOBJ_SETUP 4354
|
||
|
|
||
|
/* Display driver version numbers */
|
||
|
#define DDI_DRIVER_VERSION_NT4 0x00020000
|
||
|
#define DDI_DRIVER_VERSION_SP3 0x00020003
|
||
|
#define DDI_DRIVER_VERSION_NT5 0x00030000
|
||
|
#define DDI_DRIVER_VERSION_NT5_01 0x00030100
|
||
|
#define DDI_DRIVER_VERSION_NT5_01_SP1 0x00030101
|
||
|
|
||
|
/* GDI driver version number */
|
||
|
#define GDI_DRIVER_VERSION 0x4000
|
||
|
|
||
|
/* Driver function indices */
|
||
|
#define INDEX_DrvEnablePDEV 0L
|
||
|
#define INDEX_DrvCompletePDEV 1L
|
||
|
#define INDEX_DrvDisablePDEV 2L
|
||
|
#define INDEX_DrvEnableSurface 3L
|
||
|
#define INDEX_DrvDisableSurface 4L
|
||
|
#define INDEX_DrvAssertMode 5L
|
||
|
#define INDEX_DrvOffset 6L
|
||
|
#define INDEX_DrvResetPDEV 7L
|
||
|
#define INDEX_DrvDisableDriver 8L
|
||
|
#define INDEX_DrvCreateDeviceBitmap 10L
|
||
|
#define INDEX_DrvDeleteDeviceBitmap 11L
|
||
|
#define INDEX_DrvRealizeBrush 12L
|
||
|
#define INDEX_DrvDitherColor 13L
|
||
|
#define INDEX_DrvStrokePath 14L
|
||
|
#define INDEX_DrvFillPath 15L
|
||
|
#define INDEX_DrvStrokeAndFillPath 16L
|
||
|
#define INDEX_DrvPaint 17L
|
||
|
#define INDEX_DrvBitBlt 18L
|
||
|
#define INDEX_DrvCopyBits 19L
|
||
|
#define INDEX_DrvStretchBlt 20L
|
||
|
#define INDEX_DrvSetPalette 22L
|
||
|
#define INDEX_DrvTextOut 23L
|
||
|
#define INDEX_DrvEscape 24L
|
||
|
#define INDEX_DrvDrawEscape 25L
|
||
|
#define INDEX_DrvQueryFont 26L
|
||
|
#define INDEX_DrvQueryFontTree 27L
|
||
|
#define INDEX_DrvQueryFontData 28L
|
||
|
#define INDEX_DrvSetPointerShape 29L
|
||
|
#define INDEX_DrvMovePointer 30L
|
||
|
#define INDEX_DrvLineTo 31L
|
||
|
#define INDEX_DrvSendPage 32L
|
||
|
#define INDEX_DrvStartPage 33L
|
||
|
#define INDEX_DrvEndDoc 34L
|
||
|
#define INDEX_DrvStartDoc 35L
|
||
|
#define INDEX_DrvGetGlyphMode 37L
|
||
|
#define INDEX_DrvSynchronize 38L
|
||
|
#define INDEX_DrvSaveScreenBits 40L
|
||
|
#define INDEX_DrvGetModes 41L
|
||
|
#define INDEX_DrvFree 42L
|
||
|
#define INDEX_DrvDestroyFont 43L
|
||
|
#define INDEX_DrvQueryFontCaps 44L
|
||
|
#define INDEX_DrvLoadFontFile 45L
|
||
|
#define INDEX_DrvUnloadFontFile 46L
|
||
|
#define INDEX_DrvFontManagement 47L
|
||
|
#define INDEX_DrvQueryTrueTypeTable 48L
|
||
|
#define INDEX_DrvQueryTrueTypeOutline 49L
|
||
|
#define INDEX_DrvGetTrueTypeFile 50L
|
||
|
#define INDEX_DrvQueryFontFile 51L
|
||
|
#define INDEX_DrvMovePanning 52L
|
||
|
#define INDEX_DrvQueryAdvanceWidths 53L
|
||
|
#define INDEX_DrvSetPixelFormat 54L
|
||
|
#define INDEX_DrvDescribePixelFormat 55L
|
||
|
#define INDEX_DrvSwapBuffers 56L
|
||
|
#define INDEX_DrvStartBending 57L
|
||
|
#define INDEX_DrvNextBand 58L
|
||
|
#define INDEX_DrvGetDirectDrawInfo 59L
|
||
|
#define INDEX_DrvEnableDirectDraw 60L
|
||
|
#define INDEX_DrvDisableDirectDraw 61L
|
||
|
#define INDEX_DrvQuerySpoolType 62L
|
||
|
#define INDEX_DrvIcmCreateColorTransform 64L
|
||
|
#define INDEX_DrvIcmDeleteColorTransform 65L
|
||
|
#define INDEX_DrvIcmCheckBitmapBits 66L
|
||
|
#define INDEX_DrvIcmSetDeviceGammaRamp 67L
|
||
|
#define INDEX_DrvGradientFill 68L
|
||
|
#define INDEX_DrvStretchBltROP 69L
|
||
|
#define INDEX_DrvPlgBlt 70L
|
||
|
#define INDEX_DrvAlphaBlend 71L
|
||
|
#define INDEX_DrvSynthesizeFont 72L
|
||
|
#define INDEX_DrvGetSynthesizedFontFiles 73L
|
||
|
#define INDEX_DrvTransparentBlt 74L
|
||
|
#define INDEX_DrvQueryPerBandInfo 75L
|
||
|
#define INDEX_DrvQueryDeviceSupport 76L
|
||
|
#define INDEX_DrvDeriveSurface 85L
|
||
|
#define INDEX_DrvQueryGlyphAttrs 86L
|
||
|
#define INDEX_DrvNotify 87L
|
||
|
#define INDEX_DrvSynchronizeSurface 88L
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
#define INDEX_DrvResetDevice 89L
|
||
|
#endif
|
||
|
#if (NTDDI_VERSION >= 0x06000000)
|
||
|
#define INDEX_DrvRenderHint 93L
|
||
|
#endif
|
||
|
#if (NTDDI_VERSION >= 0x06010000)
|
||
|
#define INDEX_DrvCreateDeviceBitmapEx 94L
|
||
|
#define INDEX_DrvDeleteDeviceBitmapEx 95L
|
||
|
#define INDEX_DrvAssociateSharedSurface 96L
|
||
|
#define INDEX_DrvSynchronizeRedirectionBitmaps 97L
|
||
|
#define INDEX_DrvAccumulateD3DDirtyRect 98L
|
||
|
#define INDEX_DrvStartDxInterop 99L
|
||
|
#define INDEX_DrvEndDxInterop 100L
|
||
|
#define INDEX_DrvLockDisplayArea 101L
|
||
|
#define INDEX_DrvUnlockDisplayArea 102L
|
||
|
#define INDEX_LAST 103L
|
||
|
#elif (NTDDI_VERSION >= 0x06000000)
|
||
|
#define INDEX_LAST 94L
|
||
|
#elif (NTDDI_VERSION >= 0x05010000)
|
||
|
#define INDEX_LAST 93L
|
||
|
#else
|
||
|
#define INDEX_LAST 89L
|
||
|
#endif
|
||
|
|
||
|
/* Graphics capabilities */
|
||
|
#define GCAPS_BEZIERS 0x00000001L
|
||
|
#define GCAPS_GEOMETRICWIDE 0x00000002L
|
||
|
#define GCAPS_ALTERNATEFILL 0x00000004L
|
||
|
#define GCAPS_WINDINGFILL 0x00000008L
|
||
|
#define GCAPS_HALFTONE 0x00000010L
|
||
|
#define GCAPS_COLOR_DITHER 0x00000020L
|
||
|
#define GCAPS_HORIZSTRIKE 0x00000040L
|
||
|
#define GCAPS_VERTSTRIKE 0x00000080L
|
||
|
#define GCAPS_OPAQUERECT 0x00000100L
|
||
|
#define GCAPS_VECTORFONT 0x00000200L
|
||
|
#define GCAPS_MONO_DITHER 0x00000400L
|
||
|
#define GCAPS_ASYNCCHANGE 0x00000800L
|
||
|
#define GCAPS_ASYNCMOVE 0x00001000L
|
||
|
#define GCAPS_DONTJOURNAL 0x00002000L
|
||
|
#define GCAPS_DIRECTDRAW 0x00004000L
|
||
|
#define GCAPS_ARBRUSHOPAQUE 0x00008000L
|
||
|
#define GCAPS_PANNING 0x00010000L
|
||
|
#define GCAPS_HIGHRESTEXT 0x00040000L
|
||
|
#define GCAPS_PALMANAGED 0x00080000L
|
||
|
#define GCAPS_DITHERONREALIZE 0x00200000L
|
||
|
#define GCAPS_NO64BITMEMACCESS 0x00400000L
|
||
|
#define GCAPS_FORCEDITHER 0x00800000L
|
||
|
#define GCAPS_GRAY16 0x01000000L
|
||
|
#define GCAPS_ICM 0x02000000L
|
||
|
#define GCAPS_CMYKCOLOR 0x04000000L
|
||
|
#define GCAPS_LAYERED 0x08000000L
|
||
|
#define GCAPS_ARBRUSHTEXT 0x10000000L
|
||
|
#define GCAPS_SCREENPRECISION 0x20000000L
|
||
|
#define GCAPS_FONT_RASTERIZER 0x40000000L
|
||
|
#define GCAPS_NUP 0x80000000L
|
||
|
|
||
|
/* Secondary graphics capabilities */
|
||
|
#define GCAPS2_JPEGSRC 0x00000001L
|
||
|
#define GCAPS2_PNGSRC 0x00000008L
|
||
|
#define GCAPS2_CHANGEGAMMARAMP 0x00000010L
|
||
|
#define GCAPS2_ALPHACURSOR 0x00000020L
|
||
|
#define GCAPS2_SYNCFLUSH 0x00000040L
|
||
|
#define GCAPS2_SYNCTIMER 0x00000080L
|
||
|
#define GCAPS2_ICD_MULTIMON 0x00000100L
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
#define GCAPS2_MOUSETRAILS 0x00000200L
|
||
|
#endif
|
||
|
#if (NTDDI_VERSION >= 0x06000000)
|
||
|
#define GCAPS2_EXCLUDELAYERED 0x00000800L
|
||
|
#define GCAPS2_INCLUDEAPIBITMAPS 0x00001000L
|
||
|
#define GCAPS2_SHOWHIDDENPOINTER 0x00002000L
|
||
|
#endif
|
||
|
#if (NTDDI_VERSION >= 0x06010000)
|
||
|
#define GCAPS2_CLEARTYPE 0x00004000L
|
||
|
#endif
|
||
|
|
||
|
/* Line attribute flags */
|
||
|
#define LA_GEOMETRIC 0x00000001L
|
||
|
#define LA_ALTERNATE 0x00000002L
|
||
|
#define LA_STARTGAP 0x00000004L
|
||
|
#define LA_STYLED 0x00000008L
|
||
|
|
||
|
/* Join types */
|
||
|
#define JOIN_ROUND 0L
|
||
|
#define JOIN_BEVEL 1L
|
||
|
#define JOIN_MITER 2L
|
||
|
|
||
|
/* End cap types */
|
||
|
#define ENDCAP_ROUND 0L
|
||
|
#define ENDCAP_SQUARE 1L
|
||
|
#define ENDCAP_BUTT 2L
|
||
|
|
||
|
/* Primary orders */
|
||
|
#define PRIMARY_ORDER_ABC 0L
|
||
|
#define PRIMARY_ORDER_ACB 1L
|
||
|
#define PRIMARY_ORDER_BAC 2L
|
||
|
#define PRIMARY_ORDER_BCA 3L
|
||
|
#define PRIMARY_ORDER_CBA 4L
|
||
|
#define PRIMARY_ORDER_CAB 5L
|
||
|
|
||
|
/* Halftone pattern sizes */
|
||
|
#define HT_PATSIZE_2x2 0L
|
||
|
#define HT_PATSIZE_2x2_M 1L
|
||
|
#define HT_PATSIZE_4x4 2L
|
||
|
#define HT_PATSIZE_4x4_M 3L
|
||
|
#define HT_PATSIZE_6x6 4L
|
||
|
#define HT_PATSIZE_6x6_M 5L
|
||
|
#define HT_PATSIZE_8x8 6L
|
||
|
#define HT_PATSIZE_8x8_M 7L
|
||
|
#define HT_PATSIZE_10x10 8L
|
||
|
#define HT_PATSIZE_10x10_M 9L
|
||
|
#define HT_PATSIZE_12x12 10L
|
||
|
#define HT_PATSIZE_12x12_M 11L
|
||
|
#define HT_PATSIZE_14x14 12L
|
||
|
#define HT_PATSIZE_14x14_M 13L
|
||
|
#define HT_PATSIZE_16x16 14L
|
||
|
#define HT_PATSIZE_16x16_M 15L
|
||
|
#define HT_PATSIZE_SUPERCELL 16L
|
||
|
#define HT_PATSIZE_SUPERCELL_M 17L
|
||
|
#define HT_PATSIZE_USER 18L
|
||
|
#define HT_PATSIZE_MAX_INDEX HT_PATSIZE_USER
|
||
|
#define HT_PATSIZE_DEFAULT HT_PATSIZE_SUPERCELL_M
|
||
|
|
||
|
/* Halftone user-defined pattern dimensions */
|
||
|
#define HT_USERPAT_CX_MIN 4
|
||
|
#define HT_USERPAT_CX_MAX 256
|
||
|
#define HT_USERPAT_CY_MIN 4
|
||
|
#define HT_USERPAT_CY_MAX 256
|
||
|
|
||
|
/* Halftone output formats */
|
||
|
#define HT_FORMAT_1BPP 0L
|
||
|
#define HT_FORMAT_4BPP 2L
|
||
|
#define HT_FORMAT_4BPP_IRGB 3L
|
||
|
#define HT_FORMAT_8BPP 4L
|
||
|
#define HT_FORMAT_16BPP 5L
|
||
|
#define HT_FORMAT_24BPP 6L
|
||
|
#define HT_FORMAT_32BPP 7L
|
||
|
|
||
|
/* Halftone flags */
|
||
|
#define HT_FLAG_SQUARE_DEVICE_PEL 0x00000001L
|
||
|
#define HT_FLAG_HAS_BLACK_DYE 0x00000002L
|
||
|
#define HT_FLAG_ADDITIVE_PRIMS 0x00000004L
|
||
|
#define HT_FLAG_USE_8BPP_BITMASK 0x00000008L
|
||
|
#define HT_FLAG_INK_HIGH_ABSORPTION 0x00000010L
|
||
|
#define HT_FLAG_INK_ABSORPTION_INDICES 0x00000060L
|
||
|
#define HT_FLAG_DO_DEVCLR_XFORM 0x00000080L
|
||
|
#define HT_FLAG_OUTPUT_CMY 0x00000100L
|
||
|
#define HT_FLAG_PRINT_DRAFT_MODE 0x00000200L
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
#define HT_FLAG_INVERT_8BPP_BITMASK_IDX 0x00000400L
|
||
|
#endif
|
||
|
#define HT_FLAG_8BPP_CMY332_MASK 0xFF000000L
|
||
|
|
||
|
/* Macro to make CMY masks */
|
||
|
#define MAKE_CMYMASK_BYTE( p1, p2, p3 ) \
|
||
|
((((BYTE)(p1) & 0x07) << 5) | (((BYTE)(p2) & 0x07) << 2) | ((BYTE)(p3) & 0x03))
|
||
|
#define MAKE_CMY332_MASK( p1, p2, p3 ) \
|
||
|
((((DWORD)(p1) & 0x07) < 29) | (((DWORD)(p2) & 0x07 << 26) | \
|
||
|
(((DWORD)(p3) & 0x03) << 24))
|
||
|
|
||
|
/* Halftone ink absorption flags */
|
||
|
#define HT_FLAG_INK_ABSORPTION_IDX0 0x00000000L
|
||
|
#define HT_FLAG_INK_ABSORPTION_IDX1 0x00000020L
|
||
|
#define HT_FLAG_INK_ABSORPTION_IDX2 0x00000040L
|
||
|
#define HT_FLAG_INK_ABSORPTION_IDX3 0x00000060L
|
||
|
#define HT_FLAG_HIGHEST_INK_ABSORPTION \
|
||
|
(HT_FLAG_INK_HIGH_ABSORPTION | HT_FLAG_INK_ABSORPTION_IDX3)
|
||
|
#define HT_FLAG_HIGHER_INK_ABSORPTION \
|
||
|
(HT_FLAG_INK_HIGH_ABSORPTION | HT_FLAG_INK_ABSORPTION_IDX2)
|
||
|
#define HT_FLAG_HIGH_INK_ABSORPTION \
|
||
|
(HT_FLAG_INK_HIGH_ABSORPTION | HT_FLAG_INK_ABSORPTION_IDX1)
|
||
|
#define HT_FLAG_NORMAL_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX0
|
||
|
#define HT_FLAG_LOW_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX1
|
||
|
#define HT_FLAG_LOWER_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX2
|
||
|
#define HT_FLAG_LOWEST_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX3
|
||
|
|
||
|
/* Halftone bitmask macros */
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
#define HT_BITMASKPALRGB ((DWORD)'0BGR')
|
||
|
#define HT_SET_BITMASKPAL2RGB( x ) (*((LPDWORD)(x)) = HT_BITMASKPALRGB)
|
||
|
#define HT_IS_BITMASKPAL2RGB( x ) (*((LPDWORD)(x)) == 0L)
|
||
|
#endif
|
||
|
|
||
|
/* Physical pixel characteristics */
|
||
|
#define PPC_DEFAULT 0x00000000L
|
||
|
#define PPC_UNDEFINED 0x00000001L
|
||
|
#define PPC_RGB_ORDER_VERTICAL_STRIPES 0x00000002L
|
||
|
#define PPC_BGR_ORDER_VERTICAL_STRIPES 0x00000003L
|
||
|
#define PPC_RGB_ORDER_HORIZONTAL_STRIPES 0x00000004L
|
||
|
#define PPC_BGR_ORDER_HORIZONTAL_STRIPES 0x00000005L
|
||
|
|
||
|
/* Physical pixel gamma values */
|
||
|
#define PPG_DEFAULT 0L
|
||
|
#define PPG_SRGB 1L
|
||
|
|
||
|
/* Brush object color types */
|
||
|
#define BR_DEVICE_ICM 0x00000001L
|
||
|
#define BR_HOST_ICM 0x00000002L
|
||
|
#define BR_CMYKCOLOR 0x00000004L
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
#define BR_ORIGCOLOR 0x00000008L
|
||
|
#endif
|
||
|
|
||
|
/* Font object types */
|
||
|
#define FO_TYPE_RASTER RASTER_FONTTYPE
|
||
|
#define FO_TYPE_DEVICE DEVICE_FONTTYPE
|
||
|
#define FO_TYPE_TRUETYPE TRUETYPE_FONTTYPE
|
||
|
#define FO_SIM_BOLD 0x00002000L
|
||
|
#define FO_SIM_ITALIC 0x00004000L
|
||
|
#define FO_EM_HEIGHT 0x00008000L
|
||
|
#define FO_GRAY16 0x00010000L
|
||
|
#define FO_NOGRAY16 0x00020000L
|
||
|
#define FO_NOHINTS 0x00040000L
|
||
|
#define FO_NO_CHOICE 0x00080000L
|
||
|
#define FO_CFF 0x00100000L
|
||
|
#define FO_POSTSCRIPT 0x00200000L
|
||
|
#define FO_MULTIPLEMASTER 0x00400000L
|
||
|
#define FO_VERT_FACE 0x00800000L
|
||
|
#define FO_DBCS_FONT 0x01000000L
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
#define FO_NOCLEARTYPE 0x02000000L
|
||
|
#define FO_CLEARTYPE_X 0x10000000L
|
||
|
#define FO_CLEARTYPE_Y 0x20000000L
|
||
|
#define FO_CLEARTYPENATURAL_X 0x40000000L
|
||
|
#endif
|
||
|
|
||
|
/* Clip object complexity values */
|
||
|
#define DC_TRIVIAL 0
|
||
|
#define DC_RECT 1
|
||
|
#define DC_COMPLEX 3
|
||
|
#define FC_RECT 1
|
||
|
#define FC_RECT4 2
|
||
|
#define FC_COMPLEX 3
|
||
|
|
||
|
/* Clip object modes */
|
||
|
#define TC_RECTANGLES 0
|
||
|
#define TC_PATHOBJ 2
|
||
|
|
||
|
/* Clip object options */
|
||
|
#define OC_BANK_CLIP 1
|
||
|
|
||
|
/* CLIPOBJ_cEnumStart() types */
|
||
|
#define CT_RECTANGLES 0L
|
||
|
|
||
|
/* CLIPOBJ_cEnumStart() directions */
|
||
|
#define CD_RIGHTDOWN 0L
|
||
|
#define CD_LEFTDOWN 1L
|
||
|
#define CD_RIGHTUP 2L
|
||
|
#define CD_LEFTUP 3L
|
||
|
#define CD_ANY 4L
|
||
|
#define CD_LEFTWARDS 1L
|
||
|
#define CD_UPWARDS 2L
|
||
|
|
||
|
/* DrvGetGlyphMode() return values */
|
||
|
#define FO_HGLYPHS 0L
|
||
|
#define FO_GLYPHBITS 1L
|
||
|
#define FO_PATHOBJ 2L
|
||
|
|
||
|
/* Old constant for compatibility */
|
||
|
#define FD_NEGATIVE_FONT 1L
|
||
|
|
||
|
/* Font capabilities */
|
||
|
#define FO_DEVICE_FONT 1L
|
||
|
#define FO_OUTLINE_CAPABLE 2L
|
||
|
|
||
|
/* String object flags */
|
||
|
#define SO_FLAG_DEFAULT_PLACEMENT 0x00000001L
|
||
|
#define SO_HORIZONTAL 0x00000002L
|
||
|
#define SO_VERTICAL 0x00000004L
|
||
|
#define SO_REVERSED 0x00000008L
|
||
|
#define SO_ZERO_BEARINGS 0x00000010L
|
||
|
#define SO_CHAR_INC_EQUAL_BM_BASE 0x00000020L
|
||
|
#define SO_MAXEXT_EQUAL_BM_SIDE 0x00000040L
|
||
|
#define SO_DO_NOT_SUBSTITUTE_DEVICE_FONT 0x00000080L
|
||
|
#define SO_GLYPHINDEX_TEXTOUT 0x00000100L
|
||
|
#define SO_ESC_NOT_ORIENT 0x00000200L
|
||
|
#define SO_DXDY 0x00000400L
|
||
|
#define SO_CHARACTER_EXTRA 0x00000800L
|
||
|
#define SO_BREAK_EXTRA 0x00001000L
|
||
|
|
||
|
/* Font object attribute modes */
|
||
|
#define FO_ATTR_MODE_ROTATE 1L
|
||
|
|
||
|
/* Palette object flags */
|
||
|
#define PAL_INDEXED 0x00000001L
|
||
|
#define PAL_BITFIELDS 0x00000002L
|
||
|
#define PAL_RGB 0x00000004L
|
||
|
#define PAL_BGR 0x00000008L
|
||
|
#define PAL_CMYK 0x00000010L
|
||
|
|
||
|
/* Path object flags */
|
||
|
#define PO_BEZIERS 0x00000001L
|
||
|
#define PO_ELLIPSE 0x00000002L
|
||
|
#define PO_ALL_INTEGERS 0x00000004L
|
||
|
#define PO_ENUM_AS_INTEGERS 0x00000008L
|
||
|
#if (NTDDI_VERSION >= 0x06010000)
|
||
|
#define PO_WIDENED 0x00000010L
|
||
|
#endif
|
||
|
|
||
|
/* Path data flags */
|
||
|
#define PD_BEGINSUBPATH 0x00000001L
|
||
|
#define PD_ENDSUBPATH 0x00000002L
|
||
|
#define PD_RESETSTYLE 0x00000004L
|
||
|
#define PD_CLOSEFIGURE 0x00000008L
|
||
|
#define PD_BEZIERS 0x00000010L
|
||
|
#define PD_ALL \
|
||
|
(PD_BEGINSUBPATH | PD_ENDSUBPATH | PD_RESETSTYLE | PD_CLOSEFIGURE | PD_BEZIERS)
|
||
|
|
||
|
/* Surface object types */
|
||
|
#define STYPE_BITMAP 0L
|
||
|
#define STYPE_DEVICE 1L
|
||
|
#define STYPE_DEVBITMAP 3L
|
||
|
|
||
|
/* Bitmap formats */
|
||
|
#define BMF_1BPP 1L
|
||
|
#define BMF_4BPP 2L
|
||
|
#define BMF_8BPP 3L
|
||
|
#define BMF_16BPP 4L
|
||
|
#define BMF_24BPP 5L
|
||
|
#define BMF_32BPP 6L
|
||
|
#define BMF_4RLE 7L
|
||
|
#define BMF_8RLE 8L
|
||
|
#define BMF_JPEG 9L
|
||
|
#define BMF_PNG 10L
|
||
|
|
||
|
/* Bitmap flags */
|
||
|
#define BMF_TOPDOWN 0x0001
|
||
|
#define BMF_NOZEROINIT 0x0002
|
||
|
#define BMF_DONTCACHE 0x0004
|
||
|
#define BMF_USERMEM 0x0008
|
||
|
#define BMF_KMSECTION 0x0010
|
||
|
#define BMF_NOTSYSMEM 0x0020
|
||
|
#define BMF_WINDOW_BLT 0x0040
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
#define BMF_UMPDMEM 0x0080
|
||
|
#endif
|
||
|
#if (NTDDI_VERSION >= 0x06010000)
|
||
|
#define BMF_TEMP_ALPHA 0x0100
|
||
|
#endif
|
||
|
|
||
|
/* XFORMOBJ_iGetXform() return values */
|
||
|
#define GX_IDENTITY 0L
|
||
|
#define GX_OFFSET 1L
|
||
|
#define GX_SCALE 2L
|
||
|
#define GX_GENERAL 3L
|
||
|
|
||
|
/* XFORMOBJ_bApplyXform() modes */
|
||
|
#define XF_LTOL 0L
|
||
|
#define XF_INV_LTOL 1L
|
||
|
#define XF_LTOFX 2L
|
||
|
#define XF_INV_FXTOL 3L
|
||
|
|
||
|
/* Translate object flags */
|
||
|
#define XO_TRIVIAL 0x00000001L
|
||
|
#define XO_TABLE 0x00000002L
|
||
|
#define XO_TO_MONO 0x00000004L
|
||
|
#define XO_FROM_CMYK 0x00000008L
|
||
|
#define XO_DEVICE_ICM 0x00000010L
|
||
|
#define XO_HOST_ICM 0x00000020L
|
||
|
|
||
|
/* Translate object palette information types */
|
||
|
#define XO_SRCPALETTE 1L
|
||
|
#define XO_DESTPALETTE 2L
|
||
|
#define XO_DESTDCPALETTE 3L
|
||
|
#define XO_SRCBITFIELDS 4L
|
||
|
#define XO_DESTBITFIELDS 5L
|
||
|
|
||
|
/* EngAssociateSurface() hook flags */
|
||
|
#define HOOK_BITBLT 0x00000001L
|
||
|
#define HOOK_STRETCHBLT 0x00000002L
|
||
|
#define HOOK_PLGBLT 0x00000004L
|
||
|
#define HOOK_TEXTOUT 0x00000008L
|
||
|
#define HOOK_PAINT 0x00000010L
|
||
|
#define HOOK_STROKEPATH 0x00000020L
|
||
|
#define HOOK_FILLPATH 0x00000040L
|
||
|
#define HOOK_STROKEANDFILLPATH 0x00000080L
|
||
|
#define HOOK_LINETO 0x00000100L
|
||
|
#define HOOK_COPYBITS 0x00000400L
|
||
|
#define HOOK_MOVEPANNING 0x00000800L
|
||
|
#define HOOK_SYNCHRONIZE 0x00001000L
|
||
|
#define HOOK_STRETCHBLTROP 0x00002000L
|
||
|
#define HOOK_SYNCHRONIZEACCESS 0x00004000L
|
||
|
#define HOOK_TRANSPARENTBLT 0x00008000L
|
||
|
#define HOOK_ALPHABLEND 0x00010000L
|
||
|
#define HOOK_GRADIENTFILL 0x00020000L
|
||
|
#if (NTDDI_VERSION < 0x06000000)
|
||
|
#define HOOK_FLAGS 0x0003B5FFL
|
||
|
#else
|
||
|
#define HOOK_FLAGS 0x0003B5EFL
|
||
|
#endif
|
||
|
|
||
|
/* EngModifySurface() flags */
|
||
|
#define MS_NOTSHAREDMEMORY 0x00000001L
|
||
|
#define MS_SHAREDACCESS 0x00000002L
|
||
|
|
||
|
/* DrvQueryDriverInfo() modes */
|
||
|
#define DRVQUERY_USERMODE 1L
|
||
|
|
||
|
/* Maximum hatch style */
|
||
|
#define HS_DDI_MAX 6L
|
||
|
|
||
|
/* DrvResetDevice() return values */
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
#define DRD_SUCCESS 0L
|
||
|
#define DRD_ERROR 1L
|
||
|
#endif
|
||
|
|
||
|
/* DrvSaveScreenBits() modes */
|
||
|
#define SS_SAVE 0L
|
||
|
#define SS_RESTORE 1L
|
||
|
#define SS_FREE 2L
|
||
|
|
||
|
/* DrvCreateDeviceBitmapEx() flags */
|
||
|
#if (NTDDI_VERSION >= 0x06010000)
|
||
|
#define CDBEX_REDIRECTION 0x00000001L
|
||
|
#define CDBEX_DXINTEROP 0x00000002L
|
||
|
#endif
|
||
|
|
||
|
/* DrvDitherColor() modes */
|
||
|
#define DM_DEFAULT 0x00000001L
|
||
|
#define DM_MONOCHROME 0x00000002L
|
||
|
|
||
|
/* DrvSetPalette() maximum values */
|
||
|
#define WINDDI_MAXSETPALETTECOLORS 256L
|
||
|
#define WINDDI_MAXSETPALETTECOLORINDEX 255L
|
||
|
|
||
|
/* DrvDitherColor() return values */
|
||
|
#define DCR_SOLID 0L
|
||
|
#define DCR_DRIVER 1L
|
||
|
#define DCR_HALFTONE 2L
|
||
|
|
||
|
/* DrvRealizeBrush() flags */
|
||
|
#define RB_DITHERCOLOR 0x80000000L
|
||
|
|
||
|
/* DrvQueryFontTree() modes */
|
||
|
#define QFT_LIGATURES 1L
|
||
|
#define QFT_KERNPAIRS 2L
|
||
|
#define QFT_GLYPHSET 3L
|
||
|
|
||
|
/* DrvQueryFontData() modes */
|
||
|
#define QFD_GLYPHANDBITMAP 1L
|
||
|
#define QFD_GLYPHANDOUTLINE 2L
|
||
|
#define QFD_MAXEXTENTS 3L
|
||
|
#define QFD_TT_GLYPHANDBITMAP 4L
|
||
|
#define QFD_TT_GRAY1_BITMAP 5L
|
||
|
#define QFD_TT_GRAY2_BITMAP 6L
|
||
|
#define QFD_TT_GRAY4_BITMAP 8L
|
||
|
#define QFD_TT_GRAY8_BITMAP 9L
|
||
|
#define QFD_TT_MONO_BITMAP QFD_TT_GRAY1_BITMAP
|
||
|
|
||
|
/* DrvQueryCaps() capability flags */
|
||
|
#define QC_OUTLINES 0x00000001L
|
||
|
#define QC_1BIT 0x00000002L
|
||
|
#define QC_4BIT 0x00000004L
|
||
|
#define QC_FONTDRIVERCAPS (QC_OUTLINES | QC_1BIT | QC_4BIT)
|
||
|
|
||
|
/* Font file status values */
|
||
|
#define FF_SIGNATURE_VERIFIED 0x00000001L
|
||
|
#define FF_IGNORED_SIGNATURE 0x00000002L
|
||
|
|
||
|
/* DrvQueryAdvanceWidths() modes */
|
||
|
#define QAW_GETWIDTHS 0L
|
||
|
#define QAW_GETEASYWIDTHS 1L
|
||
|
|
||
|
/* DrvQueryTrueTypeOutline() metrics only values */
|
||
|
#define TTO_METRICS_ONLY 1
|
||
|
#define TTO_QUBICS 2
|
||
|
#define TTO_UNHINTED 4
|
||
|
|
||
|
/* DrvQueryFontFile() modes */
|
||
|
#define QFF_DESCRIPTION 1L
|
||
|
#define QFF_NUMFACES 2L
|
||
|
|
||
|
/* DrvFillPath() options */
|
||
|
#define FP_ALTERNATEMODE 1L
|
||
|
#define FP_WINDINGMODE 2L
|
||
|
|
||
|
/* DrvSetPointerShape() return values */
|
||
|
#define SPS_ERROR 0L
|
||
|
#define SPS_DECLINE 1L
|
||
|
#define SPS_ACCEPT_NOEXCLUDE 2L
|
||
|
#define SPS_ACCEPT_EXCLUDE 3L
|
||
|
#define SPS_ACCEPT_SYNCHRONOUS 4L
|
||
|
|
||
|
/* DrvSetPointerShape() flags */
|
||
|
#define SPS_CHANGE 0x00000001L
|
||
|
#define SPS_ASYNCCHANGE 0x00000002L
|
||
|
#define SPS_ANIMATESTART 0x00000004L
|
||
|
#define SPS_ANIMATEUPDATE 0x00000008L
|
||
|
#define SPS_ALPHA 0x00000010L
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
#define SPS_FLAGSMASK 0x000000FFL
|
||
|
#define SPS_LENGTHMASK 0x00000F00L
|
||
|
#define SPS_FREQMASK 0x000FF000L
|
||
|
#endif
|
||
|
|
||
|
/* DrvEndDoc() flags */
|
||
|
#define ED_ABORTDOC 1L
|
||
|
|
||
|
/* ICM gamma ramp formats */
|
||
|
#define IGRF_RGB_256BYTES 0L
|
||
|
#define IGRF_RGB_256WORDS 1L
|
||
|
|
||
|
/* DrvQueryDeviceSupport() types */
|
||
|
#define QDS_CHECKJPEGFORMAT 0L
|
||
|
#define QDS_CHECKPNGFORMAT 1L
|
||
|
|
||
|
/* DrvSynchronizeSurface() flags */
|
||
|
#define DSS_TIMER_EVENT 0x00000001L
|
||
|
#define DSS_FLUSH_EVENT 0x00000002L
|
||
|
|
||
|
/* DrvNotify() types */
|
||
|
#define DN_ACCELERATION_LEVEL 1L
|
||
|
#define DN_DEVICE_ORIGIN 2L
|
||
|
#define DN_SLEEP_MODE 3L
|
||
|
#define DN_DRAWING_BEGIN 4L
|
||
|
|
||
|
/* Window object change flags */
|
||
|
#define WOC_RGN_CLIENT_DELTA 0x00000001L
|
||
|
#define WOC_RGN_CLIENT 0x00000002L
|
||
|
#define WOC_RGN_SURFACE_DELTA 0x00000004L
|
||
|
#define WOC_RGN_SURFACE 0x00000008L
|
||
|
#define WOC_CHANGED 0x00000010L
|
||
|
#define WOC_DELETE 0x00000020L
|
||
|
#define WOC_DRAWN 0x00000040L
|
||
|
#define WOC_SPRITE_OVERLAP 0x00000080L
|
||
|
#define WOC_SPRITE_NO_OVERLAP 0x00000100L
|
||
|
#if (NTDDI_VERSION >= 0x06000000)
|
||
|
#define WOC_RGN_SPRITE 0x00000200L
|
||
|
#endif
|
||
|
|
||
|
/* Window object flags */
|
||
|
#define WO_RGN_CLIENT_DELTA 0x00000001L
|
||
|
#define WO_RGN_CLIENT 0x00000002L
|
||
|
#define WO_RGN_SURFACE_DELTA 0x00000004L
|
||
|
#define WO_RGN_SURFACE 0x00000008L
|
||
|
#define WO_RGN_UPDATE_ALL 0x00000010L
|
||
|
#define WO_RGN_WINDOW 0x00000020L
|
||
|
#define WO_DRAW_NOTIFY 0x00000040L
|
||
|
#define WO_SPRITE_NOTIFY 0x00000080L
|
||
|
#define WO_RGN_DESKTOP_COORD 0x00000100L
|
||
|
#if (NTDDI_VERSION >= 0x06000000)
|
||
|
#define WO_RGN_SPRITE 0x00000200L
|
||
|
#endif
|
||
|
|
||
|
/* EngHangNotification() return values */
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
#define EHN_RESTORED 0L
|
||
|
#define EHN_ERROR 1L
|
||
|
#endif
|
||
|
|
||
|
/* EngControlSprites() flags */
|
||
|
#define ECS_TEARDOWN 0x00000001L
|
||
|
#define ECS_REDRAW 0x00000002L
|
||
|
|
||
|
/* Device halftone adjustment flags */
|
||
|
#define DEVHTADJF_COLOR_DEVICE 0x00000001L
|
||
|
#define DEVHTADJF_ADDITIVE_DEVICE 0x00000002L
|
||
|
|
||
|
/* EngAllocMem() flags */
|
||
|
#define FL_ZERO_MEMORY 0x00000001L
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
#define FL_NONPAGED_MEMORY 0x00000002L
|
||
|
#endif
|
||
|
#if (NTDDI_VERSION >= 0x06010000)
|
||
|
#define FL_NON_SESSION 0x00000004L
|
||
|
#endif
|
||
|
|
||
|
/* EngQuerySystemAttribute() flags */
|
||
|
#define QSA_MMX 0x00000100L
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
#define QSA_SSE 0x00002000L
|
||
|
#define QSA_3DNOW 0x00004000L
|
||
|
#endif
|
||
|
#if (NTDDI_VERSION >= 0x06000000)
|
||
|
#define QSA_SSE1 QSA_SSE
|
||
|
#define QSA_SSE2 0x00010000L
|
||
|
#define QSA_SSE3 0x00020000L
|
||
|
#endif
|
||
|
|
||
|
/* EngFntCacheFault() modes */
|
||
|
#define ENG_FNT_CACHE_READ_FAULT 0x00000001L
|
||
|
#define ENG_FNT_CACHE_WRITE_FAULT 0x00000002L
|
||
|
|
||
|
/* DrvRenderHint() notification codes */
|
||
|
#if (NTDDI_VERSION >= 0x06000000)
|
||
|
#define DRH_APIBITMAP 0x00000001L
|
||
|
#endif
|
||
|
|
||
|
/* Opaque data types */
|
||
|
typedef struct _ENG_EVENT *PEVENT;
|
||
|
|
||
|
/* Point */
|
||
|
typedef struct _POINTE {
|
||
|
FLOATL x;
|
||
|
FLOATL y;
|
||
|
} POINTE;
|
||
|
typedef POINTE *PPOINTE;
|
||
|
|
||
|
/* Float/long */
|
||
|
typedef union _FLOAT_LONG {
|
||
|
FLOATL e;
|
||
|
LONG l;
|
||
|
} FLOAT_LONG;
|
||
|
typedef FLOAT_LONG *PFLOAT_LONG;
|
||
|
|
||
|
/* Fixed point */
|
||
|
typedef struct _POINTFIX {
|
||
|
FIX x;
|
||
|
FIX y;
|
||
|
} POINTFIX;
|
||
|
typedef POINTFIX *PPOINTFIX;
|
||
|
|
||
|
/* Fixed rectangle */
|
||
|
typedef struct _RECTFX {
|
||
|
FIX xLeft;
|
||
|
FIX yTop;
|
||
|
FIX xRight;
|
||
|
FIX yBottom;
|
||
|
} RECTFX;
|
||
|
typedef RECTFX *PRECTFX;
|
||
|
|
||
|
/* Font description transform */
|
||
|
typedef struct _FD_XFORM {
|
||
|
FLOATL eXX;
|
||
|
FLOATL eXY;
|
||
|
FLOATL eYX;
|
||
|
FLOATL eYY;
|
||
|
} FD_XFORM;
|
||
|
typedef FD_XFORM *PFD_XFORM;
|
||
|
|
||
|
/* Font description device metrics */
|
||
|
typedef struct _FD_DEVICEMETRICS {
|
||
|
FLONG flRealizedType;
|
||
|
POINTE pteBase;
|
||
|
POINTE pteSide;
|
||
|
LONG lD;
|
||
|
FIX fxMaxAscender;
|
||
|
FIX fxMaxDescender;
|
||
|
POINTL ptlUnderline1;
|
||
|
POINTL ptlStrikeOut;
|
||
|
POINTL ptlULThickness;
|
||
|
POINTL ptlSOThickness;
|
||
|
ULONG cxMax;
|
||
|
ULONG cyMax;
|
||
|
ULONG cjGlyphMax;
|
||
|
FD_XFORM fdxQuantized;
|
||
|
LONG lNonLinearExtLeading;
|
||
|
LONG lNonLinearIntLeading;
|
||
|
LONG lNonLinearMaxCharWidth;
|
||
|
LONG lNonLinearAvgCharWidth;
|
||
|
LONG lMinA;
|
||
|
LONG lMinC;
|
||
|
LONG lMinD;
|
||
|
LONG alReserved[1];
|
||
|
} FD_DEVICEMETRICS;
|
||
|
typedef FD_DEVICEMETRICS *PFD_DEVICEMETRICS;
|
||
|
|
||
|
/* Ligature */
|
||
|
typedef struct _LIGATURE {
|
||
|
ULONG culSize;
|
||
|
LPWSTR pwsz;
|
||
|
ULONG chglyph;
|
||
|
HGLYPH ahglyph[1];
|
||
|
} LIGATURE;
|
||
|
typedef LIGATURE *PLIGATURE;
|
||
|
|
||
|
/* Font description ligature */
|
||
|
typedef struct _FD_LIGATURE {
|
||
|
ULONG culThis;
|
||
|
ULONG ulType;
|
||
|
ULONG cLigatures;
|
||
|
LIGATURE alig[1];
|
||
|
} FD_LIGATURE;
|
||
|
|
||
|
/* Point */
|
||
|
typedef struct _POINTQF {
|
||
|
LARGE_INTEGER x;
|
||
|
LARGE_INTEGER y;
|
||
|
} POINTQF;
|
||
|
typedef POINTQF *PPOINTQF;
|
||
|
|
||
|
/* Unicode character run */
|
||
|
typedef struct _WCRUN {
|
||
|
WCHAR wcLow;
|
||
|
USHORT cGlyphs;
|
||
|
HGLYPH *phg;
|
||
|
} WCRUN;
|
||
|
typedef WCRUN *PWCRUN;
|
||
|
|
||
|
/* Font description glyph set */
|
||
|
typedef struct _FD_GLYPHSET {
|
||
|
ULONG cjThis;
|
||
|
FLONG flAccel;
|
||
|
ULONG cGlyphsSupported;
|
||
|
ULONG cRuns;
|
||
|
WCRUN awcrun[1];
|
||
|
} FD_GLYPHSET;
|
||
|
typedef FD_GLYPHSET *PFD_GLYPHSET;
|
||
|
|
||
|
/* Font description glyph attribute */
|
||
|
typedef struct _FD_GLYPHATTR {
|
||
|
ULONG cjThis;
|
||
|
ULONG cGlyphs;
|
||
|
ULONG iMode;
|
||
|
BYTE aGlyphAttr[1];
|
||
|
} FD_GLYPHATTR;
|
||
|
typedef FD_GLYPHATTR *PFD_GLYPHATTR;
|
||
|
|
||
|
/* Font description kerning pair */
|
||
|
typedef struct _FD_KERNINGPAIR {
|
||
|
WCHAR wcFirst;
|
||
|
WCHAR wcSecond;
|
||
|
FWORD fwdKern;
|
||
|
} FD_KERNINGPAIR;
|
||
|
typedef FD_KERNINGPAIR *PFD_KERNINGPAIR;
|
||
|
|
||
|
/* Font difference */
|
||
|
typedef struct _FONTDIFF {
|
||
|
BYTE jReserved1;
|
||
|
BYTE jReserved2;
|
||
|
BYTE jReserved3;
|
||
|
BYTE bWeight;
|
||
|
USHORT usWinWeight;
|
||
|
FSHORT fsSelection;
|
||
|
FWORD fwdAveCharWidth;
|
||
|
FWORD fwdMaxCharInc;
|
||
|
POINTL ptlCaret;
|
||
|
} FONTDIFF;
|
||
|
|
||
|
/* Font simulation */
|
||
|
typedef struct _FONTSIM {
|
||
|
PTRDIFF dpBold;
|
||
|
PTRDIFF dpItalic;
|
||
|
PTRDIFF dpBoldItalic;
|
||
|
} FONTSIM;
|
||
|
|
||
|
/* Font metrics */
|
||
|
typedef struct _IFIMETRICS {
|
||
|
ULONG cjThis;
|
||
|
ULONG cjIfiExtra;
|
||
|
PTRDIFF dpwszFamilyName;
|
||
|
PTRDIFF dpwszStyleName;
|
||
|
PTRDIFF dpwszFaceName;
|
||
|
PTRDIFF dpwszUniqueName;
|
||
|
PTRDIFF dpFontSim;
|
||
|
LONG lEmbedId;
|
||
|
LONG lItalicAngle;
|
||
|
LONG lCharBias;
|
||
|
PTRDIFF dpCharSets;
|
||
|
BYTE jWinCharSet;
|
||
|
BYTE jWinPitchAndFamily;
|
||
|
USHORT usWinWeight;
|
||
|
ULONG flInfo;
|
||
|
USHORT fsSelection;
|
||
|
USHORT fsType;
|
||
|
FWORD fwdUnitsPerEm;
|
||
|
FWORD fwdLowestPPEm;
|
||
|
FWORD fwdWinAscender;
|
||
|
FWORD fwdWinDescender;
|
||
|
FWORD fwdMacAscender;
|
||
|
FWORD fwdMacDescender;
|
||
|
FWORD fwdMacLineGap;
|
||
|
FWORD fwdTypoAscender;
|
||
|
FWORD fwdTypoDescender;
|
||
|
FWORD fwdTypoLineGap;
|
||
|
FWORD fwdAveCharWidth;
|
||
|
FWORD fwdMaxCharInc;
|
||
|
FWORD fwdCapHeight;
|
||
|
FWORD fwdXHeight;
|
||
|
FWORD fwdSubscriptXSize;
|
||
|
FWORD fwdSubscriptYSize;
|
||
|
FWORD fwdSubscriptXOffset;
|
||
|
FWORD fwdSubscriptYOffset;
|
||
|
FWORD fwdSuperscriptXSize;
|
||
|
FWORD fwdSuperscriptYSize;
|
||
|
FWORD fwdSuperscriptXOffset;
|
||
|
FWORD fwdSuperscriptYOffset;
|
||
|
FWORD fwdUnderscoreSize;
|
||
|
FWORD fwdUnderscorePosition;
|
||
|
FWORD fwdStrikeoutSize;
|
||
|
FWORD fwdStrikeoutPosition;
|
||
|
BYTE chFirstChar;
|
||
|
BYTE chLastChar;
|
||
|
BYTE chDefaultChar;
|
||
|
BYTE chBreakChar;
|
||
|
WCHAR wcFirstChar;
|
||
|
WCHAR wcLastChar;
|
||
|
WCHAR wcDefaultChar;
|
||
|
WCHAR wcBreakChar;
|
||
|
POINTL ptlBaseline;
|
||
|
POINTL ptlAspect;
|
||
|
POINTL ptlCaret;
|
||
|
RECTL rclFontBox;
|
||
|
BYTE achVendId[4];
|
||
|
ULONG cKerningPairs;
|
||
|
ULONG ulPanoseCulture;
|
||
|
PANOSE panose;
|
||
|
} IFIMETRICS;
|
||
|
typedef IFIMETRICS *PIFIMETRICS;
|
||
|
|
||
|
/* Font metrics extra information */
|
||
|
typedef struct _IFIEXTRA {
|
||
|
ULONG ulIdentifier;
|
||
|
PTRDIFF dpFontSig;
|
||
|
ULONG cig;
|
||
|
PTRDIFF dpDesignVector;
|
||
|
PTRDIFF dpAxesInfoW;
|
||
|
ULONG aulReserved[1];
|
||
|
} IFIEXTRA;
|
||
|
typedef IFIEXTRA *PIFIEXTRA;
|
||
|
|
||
|
/* General function pointer */
|
||
|
typedef LONG_PTR (APIENTRY *PFN)();
|
||
|
|
||
|
/* Driver function */
|
||
|
typedef struct _DRVFN {
|
||
|
ULONG iFunc;
|
||
|
PFN pfn;
|
||
|
} DRVFN;
|
||
|
typedef DRVFN *PDRVFN;
|
||
|
|
||
|
/* Driver enable data */
|
||
|
typedef struct _DRVENABLEDATA {
|
||
|
ULONG iDriverVersion;
|
||
|
ULONG c;
|
||
|
DRVFN *pdrvfn;
|
||
|
} DRVENABLEDATA;
|
||
|
typedef DRVENABLEDATA *PDRVENABLEDATA;
|
||
|
|
||
|
/* Device information */
|
||
|
typedef struct tagDEVINFO {
|
||
|
FLONG flGraphicsCaps;
|
||
|
LOGFONTW lfDefaultFont;
|
||
|
LOGFONTW lfAnsiVarFont;
|
||
|
LOGFONTW lfAnsiFixFont;
|
||
|
ULONG cFonts;
|
||
|
ULONG iDitherFormat;
|
||
|
USHORT cxDither;
|
||
|
USHORT cyDither;
|
||
|
HPALETTE hpalDefault;
|
||
|
FLONG flGraphicsCaps2;
|
||
|
} DEVINFO;
|
||
|
typedef DEVINFO *PDEVINFO;
|
||
|
|
||
|
/* Line attributes */
|
||
|
typedef struct _LINEATTRS {
|
||
|
FLONG fl;
|
||
|
ULONG iJoin;
|
||
|
ULONG iEndCap;
|
||
|
FLOAT_LONG elWidth;
|
||
|
FLOATL eMiterLimit;
|
||
|
ULONG cstyle;
|
||
|
PFLOAT_LONG pstyle;
|
||
|
FLOAT_LONG elStyleState;
|
||
|
} LINEATTRS;
|
||
|
typedef LINEATTRS *PLINEATTRS;
|
||
|
|
||
|
/* Transform */
|
||
|
typedef struct _XFORML {
|
||
|
FLOATL eM11;
|
||
|
FLOATL eM12;
|
||
|
FLOATL eM21;
|
||
|
FLOATL eM22;
|
||
|
FLOATL eDx;
|
||
|
FLOATL eDy;
|
||
|
} XFORML;
|
||
|
typedef XFORML *PXFORML;
|
||
|
|
||
|
/* CIE chromaticity */
|
||
|
typedef struct _CIECHROMA {
|
||
|
LDECI4 x;
|
||
|
LDECI4 y;
|
||
|
LDECI4 Y;
|
||
|
} CIECHROMA;
|
||
|
|
||
|
/* Color information */
|
||
|
typedef struct _COLORINFO {
|
||
|
CIECHROMA Red;
|
||
|
CIECHROMA Green;
|
||
|
CIECHROMA Blue;
|
||
|
CIECHROMA Cyan;
|
||
|
CIECHROMA Magenta;
|
||
|
CIECHROMA Yellow;
|
||
|
CIECHROMA AlignmentWhite;
|
||
|
LDECI4 RedGamma;
|
||
|
LDECI4 GreenGamma;
|
||
|
LDECI4 BlueGamma;
|
||
|
LDECI4 MagentaInCyanDye;
|
||
|
LDECI4 YellowInCyanDye;
|
||
|
LDECI4 CyanInMagentaDye;
|
||
|
LDECI4 YellowInMagentaDye;
|
||
|
LDECI4 CyanInYellowDye;
|
||
|
LDECI4 MagentaInYellowDye;
|
||
|
} COLORINFO;
|
||
|
typedef COLORINFO *PCOLORINFO;
|
||
|
|
||
|
/* GDI information */
|
||
|
typedef struct _GDIINFO {
|
||
|
ULONG ulVersion;
|
||
|
ULONG ulTechnology;
|
||
|
ULONG ulHorzSize;
|
||
|
ULONG ulVertSize;
|
||
|
ULONG ulHorzRes;
|
||
|
ULONG ulVertRes;
|
||
|
ULONG cBitsPixel;
|
||
|
ULONG cPlanes;
|
||
|
ULONG ulNumColors;
|
||
|
ULONG flRaster;
|
||
|
ULONG ulLogPixelsX;
|
||
|
ULONG ulLogPixelsY;
|
||
|
ULONG flTextCaps;
|
||
|
ULONG ulDACRed;
|
||
|
ULONG ulDACGreen;
|
||
|
ULONG ulDACBlue;
|
||
|
ULONG ulAspectX;
|
||
|
ULONG ulAspectY;
|
||
|
ULONG ulAspectXY;
|
||
|
LONG xStyleStep;
|
||
|
LONG yStyleStep;
|
||
|
LONG denStyleStep;
|
||
|
POINTL ptlPhysOffset;
|
||
|
SIZEL szlPhysSize;
|
||
|
ULONG ulNumPalReg;
|
||
|
COLORINFO ciDevice;
|
||
|
ULONG ulDevicePelsDPI;
|
||
|
ULONG ulPrimaryOrder;
|
||
|
ULONG ulHTPatternSize;
|
||
|
ULONG ulHTOutputFormat;
|
||
|
ULONG flHTFlags;
|
||
|
ULONG ulVRefresh;
|
||
|
ULONG ulBltAlignment;
|
||
|
ULONG ulPanningHorzRes;
|
||
|
ULONG ulPanningVertRes;
|
||
|
ULONG xPanningAlignment;
|
||
|
ULONG yPanningAlignment;
|
||
|
ULONG cxHTPat;
|
||
|
ULONG cyHTPat;
|
||
|
LPBYTE pHTPatA;
|
||
|
LPBYTE pHTPatB;
|
||
|
LPBYTE pHTPatC;
|
||
|
ULONG flShadeBlend;
|
||
|
ULONG ulPhysicalPixelCharacteristics;
|
||
|
ULONG ulPhysicalPixelGamma;
|
||
|
} GDIINFO;
|
||
|
typedef GDIINFO *PGDIINFO;
|
||
|
|
||
|
/* Brush object */
|
||
|
typedef struct _BRUSHOBJ {
|
||
|
ULONG iSolidColor;
|
||
|
PVOID pvRbrush;
|
||
|
FLONG flColorType;
|
||
|
} BRUSHOBJ;
|
||
|
|
||
|
/* Clip object */
|
||
|
typedef struct _CLIPOBJ {
|
||
|
ULONG iUniq;
|
||
|
RECTL rclBounds;
|
||
|
BYTE iDComplexity;
|
||
|
BYTE iFComplexity;
|
||
|
BYTE iMode;
|
||
|
BYTE fjOptions;
|
||
|
} CLIPOBJ;
|
||
|
|
||
|
/* Free object procedure */
|
||
|
typedef BOOL (CALLBACK *FREEOBJPROC)( struct _DRIVEROBJ * );
|
||
|
|
||
|
/* Driver object */
|
||
|
typedef struct _DRIVEROBJ {
|
||
|
PVOID pvObj;
|
||
|
FREEOBJPROC pFreeProc;
|
||
|
HDEV hdev;
|
||
|
DHPDEV dhpdev;
|
||
|
} DRIVEROBJ;
|
||
|
|
||
|
/* Font object */
|
||
|
typedef struct _FONTOBJ {
|
||
|
ULONG iUniq;
|
||
|
ULONG iFace;
|
||
|
ULONG cxMax;
|
||
|
FLONG flFontType;
|
||
|
ULONG_PTR iTTUniq;
|
||
|
ULONG_PTR iFile;
|
||
|
SIZE sizLogResPpi;
|
||
|
ULONG ulStyleSize;
|
||
|
PVOID pvConsumer;
|
||
|
PVOID pvProducer;
|
||
|
} FONTOBJ;
|
||
|
|
||
|
/* Blend object */
|
||
|
typedef struct _BLENDOBJ {
|
||
|
BLENDFUNCTION BlendFunction;
|
||
|
} BLENDOBJ;
|
||
|
typedef BLENDOBJ *PBLENDOBJ;
|
||
|
|
||
|
/* Gamma tables */
|
||
|
typedef BYTE GAMMA_TABLES[2][256];
|
||
|
|
||
|
/* Palette object */
|
||
|
typedef struct _PALOBJ {
|
||
|
ULONG ulReserved;
|
||
|
} PALOBJ;
|
||
|
|
||
|
/* Path object */
|
||
|
typedef struct _PATHOBJ {
|
||
|
FLONG fl;
|
||
|
ULONG cCurves;
|
||
|
} PATHOBJ;
|
||
|
|
||
|
/* Surface object */
|
||
|
typedef struct _SURFACEOBJ {
|
||
|
DHSURF dhsurf;
|
||
|
HSURF hsurf;
|
||
|
DHPDEV dhpdev;
|
||
|
HDEV hdev;
|
||
|
SIZEL sizlBitmap;
|
||
|
ULONG cjBits;
|
||
|
PVOID pvBits;
|
||
|
PVOID pvScan0;
|
||
|
LONG lDelta;
|
||
|
ULONG iUniq;
|
||
|
ULONG iBitmapFormat;
|
||
|
USHORT iType;
|
||
|
USHORT fjBitmap;
|
||
|
} SURFOBJ;
|
||
|
|
||
|
/* Window object */
|
||
|
typedef struct _WNDOBJ {
|
||
|
CLIPOBJ coClient;
|
||
|
PVOID pvConsumer;
|
||
|
RECTL rclClient;
|
||
|
SURFOBJ *psoOwner;
|
||
|
} WNDOBJ;
|
||
|
typedef WNDOBJ *PWNDOBJ;
|
||
|
|
||
|
/* Transform object */
|
||
|
typedef struct _XFORMOBJ {
|
||
|
ULONG ulReserved;
|
||
|
} XFORMOBJ;
|
||
|
|
||
|
/* Translate object */
|
||
|
typedef struct _XLATEOBJ {
|
||
|
ULONG iUniq;
|
||
|
FLONG flXlate;
|
||
|
USHORT iSrcType;
|
||
|
USHORT iDstType;
|
||
|
ULONG cEntries;
|
||
|
ULONG *pulXlate;
|
||
|
} XLATEOBJ;
|
||
|
|
||
|
/* Rectangle enumeration information */
|
||
|
typedef struct _ENUMRECTS {
|
||
|
ULONG c;
|
||
|
RECTL arcl[1];
|
||
|
} ENUMRECTS;
|
||
|
|
||
|
/* Glyph bits */
|
||
|
typedef struct _GLYPHBITS {
|
||
|
POINTL ptlOrigin;
|
||
|
SIZEL sizlBitmap;
|
||
|
BYTE aj[1];
|
||
|
} GLYPHBITS;
|
||
|
|
||
|
/* Glyph definition */
|
||
|
typedef union _GLYPHDEF {
|
||
|
GLYPHBITS *pgb;
|
||
|
PATHOBJ *ppo;
|
||
|
} GLYPHDEF;
|
||
|
|
||
|
/* Glyph position */
|
||
|
typedef struct _GLYPHPOS {
|
||
|
HGLYPH hg;
|
||
|
GLYPHDEF *pgdf;
|
||
|
POINTL ptl;
|
||
|
} GLYPHPOS;
|
||
|
typedef GLYPHPOS *PGLYPHPOS;
|
||
|
|
||
|
/* Glyph data */
|
||
|
typedef struct _GLYPHDATA {
|
||
|
GLYPHDEF gdf;
|
||
|
HGLYPH hg;
|
||
|
FIX fxD;
|
||
|
FIX fxA;
|
||
|
FIX fxAB;
|
||
|
FIX fxInkTop;
|
||
|
FIX fxInkBottom;
|
||
|
RECTL rclInk;
|
||
|
POINTQF ptqD;
|
||
|
} GLYPHDATA;
|
||
|
|
||
|
/* String object */
|
||
|
typedef struct _STROBJ {
|
||
|
ULONG cGlyphs;
|
||
|
FLONG flAccel;
|
||
|
ULONG ulCharInc;
|
||
|
RECTL rclBkGround;
|
||
|
GLYPHPOS *pgp;
|
||
|
LPWSTR pwszOrg;
|
||
|
} STROBJ;
|
||
|
|
||
|
/* Font information */
|
||
|
typedef struct _FONTINFO {
|
||
|
ULONG cjThis;
|
||
|
FLONG flCaps;
|
||
|
ULONG cGlyphsSupported;
|
||
|
ULONG cjMaxGlyph1;
|
||
|
ULONG cjMaxGlyph4;
|
||
|
ULONG cjMaxGlyph8;
|
||
|
ULONG cjMaxGlyph32;
|
||
|
} FONTINFO;
|
||
|
typedef FONTINFO *PFONTINFO;
|
||
|
|
||
|
/* Path data flags */
|
||
|
typedef struct _PATHDATA {
|
||
|
FLONG flags;
|
||
|
ULONG count;
|
||
|
POINTFIX *pptfx;
|
||
|
} PATHDATA;
|
||
|
typedef PATHDATA *PPATHDATA;
|
||
|
|
||
|
/* Run */
|
||
|
typedef struct _RUN {
|
||
|
LONG iStart;
|
||
|
LONG iStop;
|
||
|
} RUN;
|
||
|
typedef RUN *PRUN;
|
||
|
|
||
|
/* Clip line */
|
||
|
typedef struct _CLIPLINE {
|
||
|
POINTFIX ptfxA;
|
||
|
POINTFIX ptfxB;
|
||
|
LONG lStyleState;
|
||
|
ULONG c;
|
||
|
RUN arun[1];
|
||
|
} CLIPLINE;
|
||
|
typedef CLIPLINE *PCLIPLINE;
|
||
|
|
||
|
/* Per band information */
|
||
|
typedef struct _PERBANDINFO {
|
||
|
BOOL bRepeatThisBand;
|
||
|
SIZEL szlBand;
|
||
|
ULONG ulHorzRes;
|
||
|
ULONG ulVertRes;
|
||
|
} PERBANDINFO;
|
||
|
typedef PERBANDINFO *PPERBANDINFO;
|
||
|
|
||
|
/* Gamma ramp */
|
||
|
typedef struct _GAMMARAMP {
|
||
|
WORD Red[256];
|
||
|
WORD Green[256];
|
||
|
WORD Blue[256];
|
||
|
} GAMMARAMP;
|
||
|
typedef GAMMARAMP *PGAMMARAMP;
|
||
|
|
||
|
/* Window object change procedure */
|
||
|
typedef VOID (CALLBACK *WNDOBJCHANGEPROC)( WNDOBJ *, FLONG );
|
||
|
|
||
|
/* Device halftone information */
|
||
|
typedef struct _DEVHTINFO {
|
||
|
DWORD HTFlags;
|
||
|
DWORD HTPatternSize;
|
||
|
DWORD DevPelsDPI;
|
||
|
COLORINFO ColorInfo;
|
||
|
} DEVHTINFO;
|
||
|
typedef DEVHTINFO *PDEVHTINFO;
|
||
|
|
||
|
/* Device halftone adjustment data */
|
||
|
typedef struct _DEVHTADJDATA {
|
||
|
DWORD DeviceFlags;
|
||
|
DWORD DeviceXDPI;
|
||
|
DWORD DeviceYDPI;
|
||
|
PDEVHTINFO pDefHTInfo;
|
||
|
PDEVHTINFO pAdjHTInfo;
|
||
|
} DEVHTADJDATA;
|
||
|
typedef DEVHTADJDATA *PDEVHTADJDATA;
|
||
|
|
||
|
/* Type 1 font */
|
||
|
typedef struct _TYPE1_FONT {
|
||
|
HANDLE hPFM;
|
||
|
HANDLE hPFB;
|
||
|
ULONG ulIdentifier;
|
||
|
} TYPE1_FONT;
|
||
|
|
||
|
/* Safe semaphore */
|
||
|
typedef struct _ENGSAFESEMAPHORE {
|
||
|
HSEMAPHORE hsem;
|
||
|
LONG lCount;
|
||
|
} ENGSAFESEMAPHORE;
|
||
|
|
||
|
/* Float object */
|
||
|
#if defined( USERMODE_DRIVER ) && defined( _X86_ )
|
||
|
typedef struct _FLOATOBJ {
|
||
|
ULONG ul1;
|
||
|
ULONG ul2;
|
||
|
} FLOATOBJ;
|
||
|
#else
|
||
|
typedef FLOAT FLOATOBJ;
|
||
|
#endif
|
||
|
typedef FLOATOBJ *PFLOATOBJ;
|
||
|
|
||
|
/* Float object transform */
|
||
|
#ifdef USERMODE_DRIVER
|
||
|
typedef XFORML FLOATOBJ_XFORM;
|
||
|
typedef XFORML *PFLOATOBJ_XFORM;
|
||
|
typedef XFORML *LPFLOATOBJ_XFORM;
|
||
|
#else
|
||
|
typedef struct tagFLOATOBJ_XFORM {
|
||
|
FLOATOBJ eM11;
|
||
|
FLOATOBJ eM12;
|
||
|
FLOATOBJ eM21;
|
||
|
FLOATOBJ eM22;
|
||
|
FLOATOBJ eDx;
|
||
|
FLOATOBJ eDy;
|
||
|
} FLOATOBJ_XFORM;
|
||
|
typedef FLOATOBJ_XFORM *PFLOATOBJ_XFORM;
|
||
|
typedef FLOATOBJ_XFORM *LPFLOATOBJ_XFORM;
|
||
|
#endif
|
||
|
|
||
|
/* Sort compare callback */
|
||
|
typedef int (__cdecl *SORTCOMP)( const void *, const void * );
|
||
|
|
||
|
/* Time fields */
|
||
|
typedef struct _ENG_TIME_FIELDS {
|
||
|
USHORT usYear;
|
||
|
USHORT usMonth;
|
||
|
USHORT usDay;
|
||
|
USHORT usHour;
|
||
|
USHORT usMinute;
|
||
|
USHORT usSecond;
|
||
|
USHORT usMilliseconds;
|
||
|
USHORT usWeekday;
|
||
|
} ENG_TIME_FIELDS;
|
||
|
typedef ENG_TIME_FIELDS *PENG_TIME_FIELDS;
|
||
|
|
||
|
/* System attributes */
|
||
|
typedef enum _ENG_SYSTEM_ATTRIBUTE {
|
||
|
EngProcessorFeature = -1,
|
||
|
EngNumberOfProcessors = 0,
|
||
|
EngOptimumAvailableUserMemory = 1,
|
||
|
EngOptimumAvailableSystemMemory = 2
|
||
|
} ENG_SYSTEM_ATTRIBUTE;
|
||
|
|
||
|
/* Device attributes */
|
||
|
typedef enum _ENG_DEVICE_ATTRIBUTE {
|
||
|
QDA_ACCELERATION_LEVEL = 1
|
||
|
} ENG_DEVICE_ATTRIBUTE;
|
||
|
|
||
|
/* MEF information */
|
||
|
typedef struct {
|
||
|
DWORD nSize;
|
||
|
HDC hdc;
|
||
|
PBYTE pvEMF;
|
||
|
PBYTE pvCurrentRecord;
|
||
|
} EMFINFO;
|
||
|
typedef EMFINFO *PEMFINFO;
|
||
|
|
||
|
/* DrvRenderHint() bitmap data */
|
||
|
#if (NTDDI_VERSION >= 0x06000000)
|
||
|
typedef struct _DRH_APIBITMAPDATA {
|
||
|
SURFOBJ *pso;
|
||
|
BOOL b;
|
||
|
} DRH_APIBITMAPDATA;
|
||
|
typedef DRH_APIBITMAPDATA *PDRH_APIBITMAPDATA;
|
||
|
#endif
|
||
|
|
||
|
/* Functions in WIN32K.SYS and GDI32.DLL */
|
||
|
ENGAPI HANDLE APIENTRY BRUSHOBJ_hGetColorTransform( BRUSHOBJ * );
|
||
|
ENGAPI PVOID APIENTRY BRUSHOBJ_pvAllocRbrush( BRUSHOBJ *, ULONG );
|
||
|
ENGAPI PVOID APIENTRY BRUSHOBJ_pvGetRbrush( BRUSHOBJ * );
|
||
|
ENGAPI ULONG APIENTRY BRUSHOBJ_ulGetBrushColor( BRUSHOBJ * );
|
||
|
ENGAPI BOOL APIENTRY CLIPOBJ_bEnum( CLIPOBJ *, ULONG, ULONG * );
|
||
|
ENGAPI ULONG APIENTRY CLIPOBJ_cEnumStart( CLIPOBJ *, BOOL, ULONG, ULONG, ULONG );
|
||
|
ENGAPI PATHOBJ * APIENTRY CLIPOBJ_ppoGetPath( CLIPOBJ * );
|
||
|
ENGAPI VOID APIENTRY EngAcquireSemaphore( HSEMAPHORE );
|
||
|
ENGAPI BOOL APIENTRY EngAlphaBlend( SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, RECTL *, RECTL *, BLENDOBJ * );
|
||
|
ENGAPI BOOL APIENTRY EngAssociateSurface( HSURF, HDEV, FLONG );
|
||
|
ENGAPI BOOL APIENTRY EngBitBlt( SURFOBJ *, SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, RECTL *, POINTL *, POINTL *, BRUSHOBJ *, POINTL *, ROP4 );
|
||
|
ENGAPI BOOL APIENTRY EngCheckAbort( SURFOBJ * );
|
||
|
ENGAPI FD_GLYPHSET * APIENTRY EngComputeGlyphSet( INT, INT, INT );
|
||
|
ENGAPI BOOL APIENTRY EngControlSprites( WNDOBJ *, FLONG );
|
||
|
ENGAPI BOOL APIENTRY EngCopyBits( SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, RECTL *, POINTL * );
|
||
|
ENGAPI HBITMAP APIENTRY EngCreateBitmap( SIZEL, LONG, ULONG, FLONG, PVOID );
|
||
|
ENGAPI CLIPOBJ * APIENTRY EngCreateClip();
|
||
|
ENGAPI HBITMAP APIENTRY EngCreateDeviceBitmap( DHSURF, SIZEL, ULONG );
|
||
|
ENGAPI HSURF APIENTRY EngCreateDeviceSurface( DHSURF, SIZEL, ULONG );
|
||
|
ENGAPI HDRVOBJ APIENTRY EngCreateDriverObj( PVOID, FREEOBJPROC, HDEV );
|
||
|
ENGAPI BOOL APIENTRY EngCreateEvent( PEVENT * );
|
||
|
ENGAPI HPALETTE APIENTRY EngCreatePalette( ULONG, ULONG, ULONG *, FLONG, FLONG, FLONG );
|
||
|
ENGAPI PATHOBJ * APIENTRY EngCreatePath();
|
||
|
ENGAPI HSEMAPHORE APIENTRY EngCreateSemaphore( VOID );
|
||
|
ENGAPI WNDOBJ * APIENTRY EngCreateWnd( SURFOBJ *, HWND, WNDOBJCHANGEPROC, FLONG, int );
|
||
|
ENGAPI VOID APIENTRY EngDebugBreak( VOID );
|
||
|
ENGAPI VOID APIENTRY EngDebugPrint( PCHAR, PCHAR, va_list );
|
||
|
ENGAPI VOID APIENTRY EngDeleteClip( CLIPOBJ * );
|
||
|
ENGAPI BOOL APIENTRY EngDeleteDriverObj( HDRVOBJ, BOOL, BOOL );
|
||
|
ENGAPI BOOL APIENTRY EngDeleteEvent( PEVENT );
|
||
|
ENGAPI BOOL APIENTRY EngDeleteFile( LPWSTR );
|
||
|
ENGAPI BOOL APIENTRY EngDeletePalette( HPALETTE );
|
||
|
ENGAPI VOID APIENTRY EngDeletePath( PATHOBJ * );
|
||
|
ENGAPI VOID APIENTRY EngDeleteSafeSemaphore( ENGSAFESEMAPHORE * );
|
||
|
ENGAPI VOID APIENTRY EngDeleteSemaphore( HSEMAPHORE );
|
||
|
ENGAPI BOOL APIENTRY EngDeleteSurface( HSURF );
|
||
|
ENGAPI VOID APIENTRY EngDeleteWnd( WNDOBJ * );
|
||
|
ENGAPI DWORD APIENTRY EngDeviceIoControl( HANDLE, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD );
|
||
|
ENGAPI ULONG APIENTRY EngDitherColor( HDEV, ULONG, ULONG, ULONG * );
|
||
|
ENGAPI BOOL APIENTRY EngEraseSurface( SURFOBJ *, RECTL *, ULONG );
|
||
|
ENGAPI BOOL APIENTRY EngFillPath( SURFOBJ *, PATHOBJ *, CLIPOBJ *, BRUSHOBJ *, POINTL *, MIX, FLONG );
|
||
|
ENGAPI PVOID APIENTRY EngFindResource( HANDLE, int, int, PULONG );
|
||
|
ENGAPI PVOID APIENTRY EngFntCacheAlloc( ULONG, ULONG );
|
||
|
ENGAPI VOID APIENTRY EngFntCacheFault( ULONG, ULONG );
|
||
|
ENGAPI PVOID APIENTRY EngFntCacheLookUp( ULONG, ULONG * );
|
||
|
ENGAPI VOID APIENTRY EngFreeModule( HANDLE );
|
||
|
ENGAPI VOID APIENTRY EngGetCurrentCodePage( PUSHORT, PUSHORT );
|
||
|
ENGAPI HANDLE APIENTRY EngGetCurrentProcessId();
|
||
|
ENGAPI HANDLE APIENTRY EngGetCurrentThreadId();
|
||
|
ENGAPI LPWSTR APIENTRY EngGetDriverName( HDEV );
|
||
|
ENGAPI BOOL APIENTRY EngGetFileChangeTime( HANDLE, LARGE_INTEGER * );
|
||
|
ENGAPI BOOL APIENTRY EngGetFilePath( HANDLE, WCHAR (*)[MAX_PATH + 1] );
|
||
|
ENGAPI LPWSTR APIENTRY EngGetPrinterDataFileName( HDEV );
|
||
|
ENGAPI HANDLE APIENTRY EngGetProcessHandle();
|
||
|
ENGAPI BOOL APIENTRY EngGetType1FontList( HDEV, TYPE1_FONT *, ULONG, PULONG, PULONG, LARGE_INTEGER * );
|
||
|
ENGAPI BOOL APIENTRY EngGradientFill( SURFOBJ *, CLIPOBJ *, XLATEOBJ *, TRIVERTEX *, ULONG, PVOID, ULONG, RECTL *, POINTL *, ULONG );
|
||
|
ENGAPI BOOL APIENTRY EngInitializeSafeSemaphore( ENGSAFESEMAPHORE * );
|
||
|
ENGAPI BOOL APIENTRY EngLineTo( SURFOBJ *, CLIPOBJ *, BRUSHOBJ *, LONG, LONG, LONG, LONG, RECTL *, MIX );
|
||
|
ENGAPI HANDLE APIENTRY EngLoadModule( LPWSTR );
|
||
|
ENGAPI HANDLE APIENTRY EngLoadModuleForWrite( LPWSTR, ULONG );
|
||
|
ENGAPI PDD_SURFACE_LOCAL APIENTRY EngLockDirectDrawSurface( HANDLE );
|
||
|
ENGAPI DRIVEROBJ * APIENTRY EngLockDriverObj( HDRVOBJ );
|
||
|
ENGAPI SURFOBJ * APIENTRY EngLockSurface( HSURF );
|
||
|
ENGAPI BOOL APIENTRY EngLpkInstalled();
|
||
|
ENGAPI PEVENT APIENTRY EngMapEvent( HDEV, HANDLE, PVOID, PVOID, PVOID );
|
||
|
ENGAPI PVOID APIENTRY EngMapFile( LPWSTR, ULONG, ULONG_PTR * );
|
||
|
ENGAPI BOOL APIENTRY EngMapFontFile( ULONG_PTR, PULONG *, ULONG * );
|
||
|
ENGAPI BOOL APIENTRY EngMapFontFileFD( ULONG_PTR, PULONG *, ULONG * );
|
||
|
ENGAPI BOOL APIENTRY EngMarkBandingSurface( HSURF );
|
||
|
ENGAPI BOOL APIENTRY EngModifySurface( HSURF, HDEV, FLONG, FLONG, DHSURF, VOID *, LONG, VOID * );
|
||
|
ENGAPI VOID APIENTRY EngMovePointer( SURFOBJ *, LONG, LONG, RECTL * );
|
||
|
ENGAPI VOID APIENTRY EngMultiByteToUnicodeN( LPWSTR, ULONG, PULONG, PCHAR, ULONG );
|
||
|
ENGAPI INT APIENTRY EngMultiByteToWideChar( UINT, LPWSTR, INT, LPSTR, INT );
|
||
|
ENGAPI BOOL APIENTRY EngPaint( SURFOBJ *, CLIPOBJ *, BRUSHOBJ *, POINTL *, MIX );
|
||
|
ENGAPI BOOL APIENTRY EngPlgBlt( SURFOBJ *, SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, COLORADJUSTMENT *, POINTL *, POINTFIX *, RECTL *, POINTL *, ULONG );
|
||
|
ENGAPI BOOL APIENTRY EngQueryDeviceAttribute( HDEV, ENG_DEVICE_ATTRIBUTE, VOID *, ULONG, VOID *, ULONG );
|
||
|
ENGAPI BOOL APIENTRY EngQueryEMFInfo( HDEV, EMFINFO * );
|
||
|
ENGAPI VOID APIENTRY EngQueryLocalTime( PENG_TIME_FIELDS );
|
||
|
ENGAPI ULONG APIENTRY EngQueryPalette( HPALETTE, ULONG *, ULONG, ULONG * );
|
||
|
ENGAPI VOID APIENTRY EngQueryPerformanceCounter( LONGLONG * );
|
||
|
ENGAPI VOID APIENTRY EngQueryPerformanceFrequency( LONGLONG * );
|
||
|
ENGAPI BOOL APIENTRY EngQuerySystemAttribute( ENG_SYSTEM_ATTRIBUTE, PDWORD );
|
||
|
ENGAPI VOID APIENTRY EngReleaseSemaphore( HSEMAPHORE );
|
||
|
ENGAPI BOOL APIENTRY EngRestoreFloatingPointState( VOID * );
|
||
|
ENGAPI ULONG APIENTRY EngSaveFloatingPointState( VOID *, ULONG );
|
||
|
ENGAPI HANDLE APIENTRY EngSecureMem( PVOID, ULONG );
|
||
|
ENGAPI LONG APIENTRY EngSetEvent( PEVENT );
|
||
|
ENGAPI ULONG APIENTRY EngSetPointerShape( SURFOBJ *, SURFOBJ *, SURFOBJ *, XLATEOBJ *, LONG, LONG, LONG, LONG, RECTL *, FLONG );
|
||
|
ENGAPI BOOL APIENTRY EngSetPointerTag( HDEV, SURFOBJ *, SURFOBJ *, XLATEOBJ *, FLONG );
|
||
|
ENGAPI VOID APIENTRY EngSort( PBYTE, ULONG, ULONG, SORTCOMP );
|
||
|
ENGAPI BOOL APIENTRY EngStretchBlt( SURFOBJ *, SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, COLORADJUSTMENT *, POINTL *, RECTL *, RECTL *, POINTL *, ULONG );
|
||
|
ENGAPI BOOL APIENTRY EngStretchBltROP( SURFOBJ *, SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, COLORADJUSTMENT *, POINTL *, RECTL *, RECTL *, POINTL *, ULONG, BRUSHOBJ *, DWORD );
|
||
|
ENGAPI BOOL APIENTRY EngStrokeAndFillPath( SURFOBJ *, PATHOBJ *, CLIPOBJ *, XFORMOBJ *, BRUSHOBJ *, LINEATTRS *, BRUSHOBJ *, POINTL *, MIX, FLONG );
|
||
|
ENGAPI BOOL APIENTRY EngStrokePath( SURFOBJ *, PATHOBJ *, CLIPOBJ *, XFORMOBJ *, BRUSHOBJ *, POINTL *, LINEATTRS *, MIX );
|
||
|
ENGAPI BOOL APIENTRY EngTextOut( SURFOBJ *, STROBJ *, FONTOBJ *, CLIPOBJ *, RECTL *, RECTL *, BRUSHOBJ *, BRUSHOBJ *, POINTL *, MIX );
|
||
|
ENGAPI BOOL APIENTRY EngTransparentBlt( SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, RECTL *, RECTL *, ULONG, ULONG );
|
||
|
ENGAPI VOID APIENTRY EngUnicodeToMultiByteN( PCHAR, ULONG, PULONG, PWSTR, ULONG );
|
||
|
ENGAPI BOOL APIENTRY EngUnlockDirectDrawSurface( PDD_SURFACE_LOCAL );
|
||
|
ENGAPI BOOL APIENTRY EngUnlockDriverObj( HDRVOBJ );
|
||
|
ENGAPI VOID APIENTRY EngUnlockSurface( SURFOBJ * );
|
||
|
ENGAPI BOOL APIENTRY EngUnmapEvent( PEVENT );
|
||
|
ENGAPI BOOL APIENTRY EngUnmapFile( ULONG_PTR );
|
||
|
ENGAPI VOID APIENTRY EngUnmapFontFile( ULONG_PTR );
|
||
|
ENGAPI VOID APIENTRY EngUnmapFontFileFD( ULONG_PTR );
|
||
|
ENGAPI VOID APIENTRY EngUnsecureMem( HANDLE );
|
||
|
ENGAPI BOOL APIENTRY EngWaitForSingleObject( PEVENT, PLARGE_INTEGER );
|
||
|
ENGAPI INT APIENTRY EngWideCharToMultiByte( UINT, LPWSTR, INT, LPSTR, INT );
|
||
|
ENGAPI ULONG APIENTRY FONTOBJ_cGetAllGlyphHandles( FONTOBJ *, HGLYPH * );
|
||
|
ENGAPI ULONG APIENTRY FONTOBJ_cGetGlyphs( FONTOBJ *, ULONG, ULONG, HGLYPH *, PVOID * );
|
||
|
ENGAPI PFD_GLYPHATTR APIENTRY FONTOBJ_pQueryGlyphAttrs( FONTOBJ *, ULONG );
|
||
|
ENGAPI FD_GLYPHSET * APIENTRY FONTOBJ_pfdg( FONTOBJ * );
|
||
|
ENGAPI IFIMETRICS * APIENTRY FONTOBJ_pifi( FONTOBJ * );
|
||
|
ENGAPI PBYTE APIENTRY FONTOBJ_pjOpenTypeTablePointer( FONTOBJ *, ULONG, ULONG * );
|
||
|
ENGAPI PVOID APIENTRY FONTOBJ_pvTrueTypeFontFile( FONTOBJ *, ULONG * );
|
||
|
ENGAPI LPWSTR APIENTRY FONTOBJ_pwszFontFilePaths( FONTOBJ *, ULONG * );
|
||
|
ENGAPI XFORMOBJ * APIENTRY FONTOBJ_pxoGetXform( FONTOBJ * );
|
||
|
ENGAPI VOID APIENTRY FONTOBJ_vGetInfo( FONTOBJ *, ULONG, FONTINFO * );
|
||
|
ENGAPI LONG APIENTRY HT_ComputeRGBGammaTable( USHORT, USHORT, USHORT, USHORT, USHORT, LPBYTE );
|
||
|
ENGAPI LONG APIENTRY HT_Get8BPPFormatPalette( LPPALETTEENTRY, USHORT, USHORT, USHORT );
|
||
|
ENGAPI LONG APIENTRY HT_Get8BPPMaskPalette( LPPALETTEENTRY, BOOL, BYTE, USHORT, USHORT, USHORT );
|
||
|
ENGAPI ULONG APIENTRY PALOBJ_cGetColors( PALOBJ *, ULONG, ULONG, ULONG * );
|
||
|
ENGAPI BOOL APIENTRY PATHOBJ_bCloseFigure( PATHOBJ * );
|
||
|
ENGAPI BOOL APIENTRY PATHOBJ_bEnum( PATHOBJ *, PATHDATA * );
|
||
|
ENGAPI BOOL APIENTRY PATHOBJ_bEnumClipLines( PATHOBJ *, ULONG, CLIPLINE * );
|
||
|
ENGAPI BOOL APIENTRY PATHOBJ_bMoveTo( PATHOBJ *, POINTFIX );
|
||
|
ENGAPI BOOL APIENTRY PATHOBJ_bPolyBezierTo( PATHOBJ *, POINTFIX *, ULONG );
|
||
|
ENGAPI BOOL APIENTRY PATHOBJ_bPolyLineTo( PATHOBJ *, POINTFIX *, ULONG );
|
||
|
ENGAPI VOID APIENTRY PATHOBJ_vEnumStart( PATHOBJ * );
|
||
|
ENGAPI VOID APIENTRY PATHOBJ_vEnumStartClipLines( PATHOBJ *, CLIPOBJ *, SURFOBJ *, LINEATTRS * );
|
||
|
ENGAPI VOID APIENTRY PATHOBJ_vGetBounds( PATHOBJ *, PRECTFX );
|
||
|
ENGAPI BOOL APIENTRY STROBJ_bEnum( STROBJ *, ULONG *, PGLYPHPOS * );
|
||
|
ENGAPI BOOL APIENTRY STROBJ_bEnumPositionsOnly( STROBJ *, ULONG *, PGLYPHPOS * );
|
||
|
ENGAPI BOOL APIENTRY STROBJ_bGetAdvanceWidths( STROBJ *, ULONG, ULONG, POINTQF * );
|
||
|
ENGAPI DWORD APIENTRY STROBJ_dwGetCodePage( STROBJ * );
|
||
|
ENGAPI FIX APIENTRY STROBJ_fxBreakExtra( STROBJ * );
|
||
|
ENGAPI FIX APIENTRY STROBJ_fxCharacterExtra( STROBJ * );
|
||
|
ENGAPI VOID APIENTRY STROBJ_vEnumStart( STROBJ * );
|
||
|
ENGAPI BOOL APIENTRY WNDOBJ_bEnum( WNDOBJ *, ULONG, ULONG * );
|
||
|
ENGAPI ULONG APIENTRY WNDOBJ_cEnumStart( WNDOBJ *, ULONG, ULONG, ULONG );
|
||
|
ENGAPI VOID APIENTRY WNDOBJ_vSetConsumer( WNDOBJ *, PVOID );
|
||
|
ENGAPI BOOL APIENTRY XFORMOBJ_bApplyXform( XFORMOBJ *, ULONG, ULONG, PVOID, PVOID );
|
||
|
ENGAPI ULONG APIENTRY XFORMOBJ_iGetXform( XFORMOBJ *, XFORML * );
|
||
|
ENGAPI ULONG APIENTRY XLATEOBJ_cGetPalette( XLATEOBJ *, ULONG, ULONG, ULONG * );
|
||
|
ENGAPI HANDLE APIENTRY XLATEOBJ_hGetColorTransform( XLATEOBJ * );
|
||
|
ENGAPI ULONG APIENTRY XLATEOBJ_iXlate( XLATEOBJ *, ULONG );
|
||
|
ENGAPI ULONG * APIENTRY XLATEOBJ_piVector( XLATEOBJ * );
|
||
|
#ifndef USERMODE_DRIVER
|
||
|
ENGAPI PVOID APIENTRY EngAllocMem( ULONG, ULONG, ULONG );
|
||
|
ENGAPI PVOID APIENTRY EngAllocPrivateUserMem( PDD_SURFACE_LOCAL, SIZE_T, ULONG );
|
||
|
ENGAPI PVOID APIENTRY EngAllocUserMem( SIZE_T, ULONG );
|
||
|
ENGAPI BOOL APIENTRY EngEnumForms( HANDLE, DWORD, LPBYTE, DWORD, LPDWORD, LPDWORD );
|
||
|
ENGAPI PVOID APIENTRY EngFindImageProcAddress( HANDLE, LPSTR );
|
||
|
ENGAPI VOID APIENTRY EngFreeMem( PVOID );
|
||
|
ENGAPI VOID APIENTRY EngFreePrivateUserMem( PDD_SURFACE_LOCAL, PVOID );
|
||
|
ENGAPI VOID APIENTRY EngFreeUserMem( PVOID );
|
||
|
ENGAPI BOOL APIENTRY EngGetForm( HANDLE, LPWSTR, DWORD, LPBYTE, DWORD, LPDWORD );
|
||
|
ENGAPI ULONG APIENTRY EngGetLastError();
|
||
|
ENGAPI BOOL APIENTRY EngGetPrinter( HANDLE, DWORD, LPBYTE, DWORD, LPDWORD );
|
||
|
ENGAPI DWORD APIENTRY EngGetPrinterData( HANDLE, LPWSTR, LPDWORD, LPBYTE, DWORD, LPDWORD );
|
||
|
ENGAPI BOOL APIENTRY EngGetPrinterDriver( HANDLE, LPWSTR, DWORD, BYTE *, DWORD, DWORD * );
|
||
|
ENGAPI HANDLE APIENTRY EngLoadImage( LPWSTR );
|
||
|
ENGAPI PVOID APIENTRY EngMapModule( HANDLE, PULONG );
|
||
|
ENGAPI int APIENTRY EngMulDiv( int, int, int );
|
||
|
ENGAPI VOID APIENTRY EngSetLastError( ULONG );
|
||
|
ENGAPI DWORD APIENTRY EngSetPrinterData( HANDLE, LPWSTR, DWORD, LPBYTE, DWORD );
|
||
|
ENGAPI VOID APIENTRY EngUnloadImage( HANDLE );
|
||
|
ENGAPI BOOL APIENTRY EngWritePrinter( HANDLE, LPVOID, DWORD, LPDWORD );
|
||
|
ENGAPI ULONG APIENTRY XFORMOBJ_iGetFloatObjXform( XFORMOBJ *, FLOATOBJ_XFORM * );
|
||
|
#ifdef _X86_
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_Add( PFLOATOBJ, PFLOATOBJ );
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_AddFloat( PFLOATOBJ, FLOATL );
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_AddLong( PFLOATOBJ, LONG );
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_Div( PFLOATOBJ, PFLOATOBJ );
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_DivFloat( PFLOATOBJ, FLOATL );
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_DivLong( PFLOATOBJ, LONG );
|
||
|
ENGAPI BOOL APIENTRY FLOATOBJ_Equal( PFLOATOBJ, PFLOATOBJ );
|
||
|
ENGAPI BOOL APIENTRY FLOATOBJ_EqualLong( PFLOATOBJ, LONG );
|
||
|
ENGAPI LONG APIENTRY FLOATOBJ_GetFloat( PFLOATOBJ );
|
||
|
ENGAPI LONG APIENTRY FLOATOBJ_GetLong( PFLOATOBJ );
|
||
|
ENGAPI BOOL APIENTRY FLOATOBJ_GreaterThan( PFLOATOBJ, PFLOATOBJ );
|
||
|
ENGAPI BOOL APIENTRY FLOATOBJ_GreaterThanLong( PFLOATOBJ, LONG );
|
||
|
ENGAPI BOOL APIENTRY FLOATOBJ_LessThan( PFLOATOBJ, PFLOATOBJ );
|
||
|
ENGAPI BOOL APIENTRY FLOATOBJ_LessThanLong( PFLOATOBJ, LONG );
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_Mul( PFLOATOBJ, PFLOATOBJ );
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_MulFloat( PFLOATOBJ, FLOATL );
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_MulLong( PFLOATOBJ, LONG );
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_Neg( PFLOATOBJ );
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_SetFloat( PFLOATOBJ, FLOATL );
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_SetLong( PFLOATOBJ, LONG );
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_Sub( PFLOATOBJ, PFLOATOBJ );
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_SubFloat( PFLOATOBJ, FLOATL );
|
||
|
ENGAPI VOID APIENTRY FLOATOBJ_SubLong( PFLOATOBJ, LONG );
|
||
|
#endif
|
||
|
#endif
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
ENGAPI VOID APIENTRY EngClearEvent( PEVENT );
|
||
|
ENGAPI ULONG APIENTRY EngHangNotification( HDEV, PVOID );
|
||
|
ENGAPI BOOL APIENTRY EngIsSemaphoreOwned( HSEMAPHORE );
|
||
|
ENGAPI BOOL APIENTRY EngIsSemaphoreOwnedByCurrentThread( HSEMAPHORE );
|
||
|
ENGAPI LONG APIENTRY EngReadStateEvent( PEVENT );
|
||
|
#ifndef USERMODE_DRIVER
|
||
|
ENGAPI HRESULT APIENTRY EngDxIoctl( ULONG, PVOID, ULONG );
|
||
|
#endif
|
||
|
#endif
|
||
|
#if (NTDDI_VERSION >= 0x05010200)
|
||
|
ENGAPI VOID APIENTRY EngBugCheckEx( ULONG, ULONG_PTR, ULONG_PTR, ULONG_PTR, ULONG_PTR );
|
||
|
#endif
|
||
|
#if (NTDDI_VERSION >= 0x06000000)
|
||
|
ENGAPI HANDLE APIENTRY CLIPOBJ_GetRgn( CLIPOBJ * );
|
||
|
ENGAPI VOID APIENTRY EngAcquireFastMutex( HFASTMUTEX );
|
||
|
ENGAPI BOOL APIENTRY EngAcquireSemaphoreNoWait( HSEMAPHORE );
|
||
|
ENGAPI VOID APIENTRY EngAcquireSemaphoreShared( HSEMAPHORE );
|
||
|
ENGAPI BOOL APIENTRY EngAcquireSemaphoreSharedNoWait( HSEMAPHORE );
|
||
|
ENGAPI INT APIENTRY EngCombineRgn( HANDLE, HANDLE, HANDLE, int );
|
||
|
ENGAPI INT APIENTRY EngCopyRgn( HANDLE, HANDLE );
|
||
|
ENGAPI HFASTMUTEX APIENTRY EngCreateFastMutex();
|
||
|
ENGAPI HANDLE APIENTRY EngCreateRectRgn( INT, INT, INT, INT );
|
||
|
ENGAPI VOID APIENTRY EngDeleteFastMutex( HFASTMUTEX );
|
||
|
ENGAPI VOID APIENTRY EngDeleteRgn( HANDLE );
|
||
|
ENGAPI BOOL APIENTRY EngEqualRgn( HANDLE, HANDLE );
|
||
|
ENGAPI INT APIENTRY EngGetRgnBox( HANDLE, LPRECT );
|
||
|
ENGAPI DWORD APIENTRY EngGetRgnData( HANDLE, DWORD, LPRGNDATA );
|
||
|
ENGAPI INT APIENTRY EngIntersectRgn( HANDLE, HANDLE, HANDLE );
|
||
|
ENGAPI BOOL APIENTRY EngIsSemaphoreSharedByCurrentThread( HSEMAPHORE );
|
||
|
ENGAPI INT APIENTRY EngOffsetRgn( HANDLE, INT, INT );
|
||
|
ENGAPI BOOL APIENTRY EngRectInRgn( HANDLE, LPRECT );
|
||
|
ENGAPI VOID APIENTRY EngReleaseFastMutex( HFASTMUTEX );
|
||
|
ENGAPI BOOL APIENTRY EngSetRectRgn( HANDLE, INT, INT, INT, INT );
|
||
|
ENGAPI INT APIENTRY EngSubtractRgn( HANDLE, HANDLE, HANDLE );
|
||
|
ENGAPI INT APIENTRY EngUnionRgn( HANDLE, HANDLE, HANDLE );
|
||
|
ENGAPI BOOL APIENTRY EngUpdateDeviceSurface( SURFOBJ *, CLIPOBJ ** );
|
||
|
ENGAPI INT APIENTRY EngXorRgn( HANDLE, HANDLE, HANDLE );
|
||
|
#endif
|
||
|
#if (NTDDI_VERSION >= 0x06010000)
|
||
|
ENGAPI ULONG APIENTRY EngCTGetCurrentGamma( HDEV );
|
||
|
ENGAPI VOID APIENTRY EngCTGetGammaTable( ULONG, CONST BYTE **, CONST BYTE ** );
|
||
|
ENGAPI HBITMAP APIENTRY EngCreateRedirectionDeviceBitmap( DHSURF, SIZEL, ULONG );
|
||
|
#endif
|
||
|
|
||
|
/* Functions in WIN32K.SYS and GDI32.DLL with different signatures on different versions */
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
ENGAPI VOID APIENTRY EngProbeForRead( PVOID, SIZE_T, ULONG );
|
||
|
ENGAPI VOID APIENTRY EngProbeForReadAndWrite( PVOID, SIZE_T, ULONG );
|
||
|
#else
|
||
|
ENGAPI VOID APIENTRY EngProbeForRead( PVOID, ULONG, ULONG );
|
||
|
ENGAPI VOID APIENTRY EngProbeForReadAndWrite( PVOID, ULONG, ULONG );
|
||
|
#endif
|
||
|
|
||
|
/* Functions exported by drivers */
|
||
|
BOOL APIENTRY DrvAlphaBlend( SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, RECTL *, RECTL *, BLENDOBJ * );
|
||
|
BOOL APIENTRY DrvAssertMode( DHPDEV, BOOL );
|
||
|
BOOL APIENTRY DrvBitBlt( SURFOBJ *, SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, RECTL *, POINTL *, POINTL *, BRUSHOBJ *, POINTL *, ROP4 );
|
||
|
VOID APIENTRY DrvCompletePDEV( DHPDEV, HDEV );
|
||
|
BOOL APIENTRY DrvCopyBits( SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, RECTL *, POINTL * );
|
||
|
HBITMAP APIENTRY DrvCreateDeviceBitmap( DHPDEV, SIZEL, ULONG );
|
||
|
VOID APIENTRY DrvDeleteDeviceBitmap( DHSURF );
|
||
|
HBITMAP APIENTRY DrvDeriveSurface( DD_DIRECTDRAW_GLOBAL *, DD_SURFACE_LOCAL * );
|
||
|
LONG APIENTRY DrvDescribePixelFormat( DHPDEV, LONG, ULONG, PIXELFORMATDESCRIPTOR * );
|
||
|
VOID APIENTRY DrvDestroyFont( FONTOBJ * );
|
||
|
VOID APIENTRY DrvDisableDriver();
|
||
|
VOID APIENTRY DrvDisablePDEV( DHPDEV );
|
||
|
VOID APIENTRY DrvDisableSurface( DHPDEV );
|
||
|
ULONG APIENTRY DrvDitherColor( DHPDEV, ULONG, ULONG, ULONG * );
|
||
|
VOID APIENTRY DrvDisableDirectDraw( DHPDEV );
|
||
|
ULONG APIENTRY DrvDrawEscape( SURFOBJ *, ULONG, CLIPOBJ *, RECTL *, ULONG, PVOID );
|
||
|
BOOL APIENTRY DrvEnableDirectDraw( DHPDEV, DD_CALLBACKS *, DD_SURFACECALLBACKS *, DD_PALETTECALLBACKS * );
|
||
|
BOOL APIENTRY DrvEnableDriver( ULONG, ULONG, DRVENABLEDATA * );
|
||
|
DHPDEV APIENTRY DrvEnablePDEV( DEVMODEW *, LPWSTR, ULONG, HSURF *, ULONG, ULONG *, ULONG, DEVINFO *, HDEV, LPWSTR, HANDLE );
|
||
|
HSURF APIENTRY DrvEnableSurface( DHPDEV );
|
||
|
BOOL APIENTRY DrvEndDoc( SURFOBJ *, FLONG );
|
||
|
ULONG APIENTRY DrvEscape( SURFOBJ *, ULONG, ULONG, PVOID, ULONG, PVOID );
|
||
|
BOOL APIENTRY DrvFillPath( SURFOBJ *, PATHOBJ *, CLIPOBJ *, BRUSHOBJ *, POINTL *, MIX, FLONG );
|
||
|
ULONG APIENTRY DrvFontManagement( SURFOBJ *, FONTOBJ *, ULONG, ULONG, PVOID, ULONG, PVOID );
|
||
|
BOOL APIENTRY DrvGetDirectDrawInfo( DHPDEV, DD_HALINFO *, DWORD *, VIDEOMEMORY *, DWORD *, DWORD * );
|
||
|
ULONG APIENTRY DrvGetGlyphMode( DHPDEV, FONTOBJ * );
|
||
|
ULONG APIENTRY DrvGetModes( HANDLE, ULONG, DEVMODEW * );
|
||
|
PVOID APIENTRY DrvGetTrueTypeFile( ULONG_PTR, ULONG * );
|
||
|
BOOL APIENTRY DrvGradientFill( SURFOBJ *, CLIPOBJ *, XLATEOBJ *, TRIVERTEX *, ULONG, PVOID, ULONG, RECTL *, POINTL *, ULONG );
|
||
|
BOOL APIENTRY DrvIcmCheckBitmapBits( DHPDEV, HANDLE, SURFOBJ *, PBYTE );
|
||
|
HANDLE APIENTRY DrvIcmCreateColorTransform( DHPDEV, LPLOGCOLORSPACEW, PVOID, ULONG, PVOID, ULONG, PVOID, ULONG, DWORD );
|
||
|
BOOL APIENTRY DrvIcmDeleteColorTransform( DHPDEV, HANDLE );
|
||
|
BOOL APIENTRY DrvIcmSetDeviceGammaRamp( DHPDEV, ULONG, LPVOID );
|
||
|
BOOL APIENTRY DrvLineTo( SURFOBJ *, CLIPOBJ *, BRUSHOBJ *, LONG, LONG, LONG, LONG, RECTL *, MIX );
|
||
|
VOID APIENTRY DrvMovePanning( LONG, LONG, FLONG );
|
||
|
VOID APIENTRY DrvMovePointer( SURFOBJ *, LONG, LONG, RECTL * );
|
||
|
BOOL APIENTRY DrvNextBand( SURFOBJ *, POINTL * );
|
||
|
VOID APIENTRY DrvNotify( SURFOBJ *, ULONG, PVOID );
|
||
|
BOOL APIENTRY DrvOffset( SURFOBJ *, LONG, LONG, FLONG );
|
||
|
BOOL APIENTRY DrvPaint( SURFOBJ *, CLIPOBJ *, BRUSHOBJ *, POINTL *, MIX );
|
||
|
BOOL APIENTRY DrvPlgBlt( SURFOBJ *, SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, COLORADJUSTMENT *, POINTL *, POINTFIX *, RECTL *, POINTL *, ULONG );
|
||
|
BOOL APIENTRY DrvQueryAdvanceWidths( DHPDEV, FONTOBJ *, ULONG, HGLYPH *, PVOID, ULONG );
|
||
|
BOOL APIENTRY DrvQueryDeviceSupport( SURFOBJ *, XLATEOBJ *, XFORMOBJ *, ULONG, ULONG, PVOID, ULONG, PVOID );
|
||
|
BOOL APIENTRY DrvQueryDriverInfo( DWORD, PVOID, DWORD, PDWORD );
|
||
|
LONG APIENTRY DrvQueryFontCaps( ULONG, ULONG * );
|
||
|
LONG APIENTRY DrvQueryFontData( DHPDEV, FONTOBJ *, ULONG, HGLYPH, GLYPHDATA *, PVOID, ULONG );
|
||
|
LONG APIENTRY DrvQueryFontFile( ULONG_PTR, ULONG, ULONG, ULONG * );
|
||
|
ULONG APIENTRY DrvQueryPerBandInfo( SURFOBJ *, PERBANDINFO * );
|
||
|
BOOL APIENTRY DrvQuerySpoolType( DHPDEV, LPWSTR );
|
||
|
LONG APIENTRY DrvQueryTrueTypeOutline( DHPDEV, FONTOBJ *, HGLYPH, BOOL, GLYPHDATA *, ULONG, TTPOLYGONHEADER * );
|
||
|
LONG APIENTRY DrvQueryTrueTypeTable( ULONG_PTR, ULONG, ULONG, PTRDIFF, ULONG, BYTE *, PBYTE *, ULONG * );
|
||
|
BOOL APIENTRY DrvRealizeBrush( BRUSHOBJ *, SURFOBJ *, SURFOBJ *, SURFOBJ *, XLATEOBJ *, ULONG );
|
||
|
BOOL APIENTRY DrvResetPDEV( DHPDEV, DHPDEV );
|
||
|
ULONG_PTR APIENTRY DrvSaveScreenBits( SURFOBJ *, ULONG, ULONG_PTR, RECTL * );
|
||
|
BOOL APIENTRY DrvSendPage( SURFOBJ * );
|
||
|
BOOL APIENTRY DrvSetPalette( DHPDEV, PALOBJ *, FLONG, ULONG, ULONG );
|
||
|
BOOL APIENTRY DrvSetPixelFormat( SURFOBJ *, LONG, HWND );
|
||
|
ULONG APIENTRY DrvSetPointerShape( SURFOBJ *, SURFOBJ *, SURFOBJ *, XLATEOBJ *, LONG, LONG, LONG, LONG, RECTL *, FLONG );
|
||
|
BOOL APIENTRY DrvStartBanding( SURFOBJ *, POINTL * );
|
||
|
BOOL APIENTRY DrvStartDoc( SURFOBJ *, LPWSTR, DWORD );
|
||
|
BOOL APIENTRY DrvStartPage( SURFOBJ * );
|
||
|
BOOL APIENTRY DrvStretchBlt( SURFOBJ *, SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, COLORADJUSTMENT *, POINTL *, RECTL *, RECTL *, POINTL *, ULONG );
|
||
|
BOOL APIENTRY DrvStretchBltROP( SURFOBJ *, SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, COLORADJUSTMENT *, POINTL *, RECTL *, RECTL *, POINTL *, ULONG, BRUSHOBJ *, DWORD );
|
||
|
BOOL APIENTRY DrvStrokePath( SURFOBJ *, PATHOBJ *, CLIPOBJ *, XFORMOBJ *, BRUSHOBJ *, POINTL *, LINEATTRS *, MIX );
|
||
|
BOOL APIENTRY DrvStrokeAndFillPath( SURFOBJ *, PATHOBJ *, CLIPOBJ *, XFORMOBJ *, BRUSHOBJ *, LINEATTRS *, BRUSHOBJ *, POINTL *, MIX, FLONG );
|
||
|
BOOL APIENTRY DrvSwapBuffers( SURFOBJ *, WNDOBJ * );
|
||
|
VOID APIENTRY DrvSynchronize( DHPDEV, RECTL * );
|
||
|
VOID APIENTRY DrvSynchronizeSurface( SURFOBJ *, RECTL *, FLONG );
|
||
|
BOOL APIENTRY DrvTextOut( SURFOBJ *, STROBJ *, FONTOBJ *, CLIPOBJ *, RECTL *, RECTL *, BRUSHOBJ *, BRUSHOBJ *, POINTL *, MIX );
|
||
|
BOOL APIENTRY DrvTransparentBlt( SURFOBJ *, SURFOBJ *, CLIPOBJ *, XLATEOBJ *, RECTL *, RECTL *, ULONG, ULONG );
|
||
|
BOOL APIENTRY DrvUnloadFontFile( ULONG_PTR );
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
ULONG APIENTRY DrvResetDevice( DHPDEV, PVOID );
|
||
|
#endif
|
||
|
#if (NTDDI_VERSION >= 0x06000000)
|
||
|
LONG APIENTRY DrvRenderHint( DHPDEV, ULONG, SIZE_T, PVOID );
|
||
|
#endif
|
||
|
#if (NTDDI_VERSION >= 0x06010000)
|
||
|
BOOL APIENTRY DrvAccumulateD3DDirtyRect( SURFOBJ *, RECTL * );
|
||
|
BOOL APIENTRY DrvAssociateSharedSurface( SURFOBJ *, HANDLE, HANDLE, SIZEL );
|
||
|
HBITMAP APIENTRY DrvCreateDeviceBitmapEx( DHPDEV, SIZEL, ULONG, DWORD, DHSURF, DWORD, HANDLE * );
|
||
|
VOID APIENTRY DrvDeleteDeviceBitmapEx( DHSURF );
|
||
|
BOOL APIENTRY DrvEndDxInterop( SURFOBJ *, BOOL, BOOL * );
|
||
|
VOID APIENTRY DrvLockDisplayArea( DHPDEV, RECTL * );
|
||
|
BOOL APIENTRY DrvStartDxInterop( SURFOBJ *, BOOL );
|
||
|
LONG APIENTRY DrvSynchronizeRedirectionBitmaps( DHPDEV, UINT64 * );
|
||
|
VOID APIENTRY DrvUnlockDisplayArea( DHPDEV, RECTL * );
|
||
|
#endif
|
||
|
|
||
|
/* Functions exported by drivers with different signatures on different versions */
|
||
|
#if (NTDDI_VERSION >= 0x05010000)
|
||
|
VOID APIENTRY DrvFree( PVOID, ULONG_PTR );
|
||
|
PIFIMETRICS APIENTRY DrvQueryFont( DHPDEV, ULONG_PTR, ULONG, ULONG_PTR * );
|
||
|
PVOID APIENTRY DrvQueryFontTree( DHPDEV, ULONG_PTR, ULONG, ULONG, ULONG_PTR * );
|
||
|
#else
|
||
|
VOID APIENTRY DrvFree( PVOID, ULONG );
|
||
|
PIFIMETRICS APIENTRY DrvQueryFont( DHPDEV, ULONG_PTR, ULONG, ULONG * );
|
||
|
PVOID APIENTRY DrvQueryFontTree( DHPDEV, ULONG_PTR, ULONG, ULONG, ULONG * );
|
||
|
#endif
|
||
|
#if (_WIN32_WINNT >= 0x0500)
|
||
|
ULONG_PTR APIENTRY DrvLoadFontFile( ULONG, ULONG_PTR *, PVOID *, ULONG *, DESIGNVECTOR *, ULONG, ULONG );
|
||
|
#else
|
||
|
ULONG APIENTRY DrvLoadFontFile( ULONG, ULONG_PTR *, PVOID *, ULONG *, ULONG );
|
||
|
#endif
|
||
|
|
||
|
/* Functions implemented as macros */
|
||
|
#ifdef USERMODE_DRIVER
|
||
|
#define EngAllocMem( p1, p2, p3 ) \
|
||
|
((PVOID)GlobalAlloc( ((p1) & FL_ZERO_MEMORY) ? GPTR : GMEM_FIXED, p2 ))
|
||
|
#define EngFreeMem( x ) GlobalFree( (HGLOBAL)(x) )
|
||
|
#define EngAllocUserMem( p1, p2 ) ((PVOID)GlobalAlloc( GMEM_FIXED, p1 ))
|
||
|
#define EngFreeUserMem( x ) GlobalFree( (HGLOBAL)(x) )
|
||
|
#define EngAllocPrivateUserMem( p1, p2, p3 ) \
|
||
|
((PVOID)GlobalAlloc( GMEM_FIXED, p2 ))
|
||
|
#define EngFreePrivateUserMem( p1, p2 ) GlobalFree( (HGLOBAL)(x) )
|
||
|
#define EngLoadImage( x ) ((HANDLE)LoadLibraryW( x ))
|
||
|
#define EngFindImageProcAddress( x, p ) ((PVOID)GetProcAddress( x, p ))
|
||
|
#define EngUnloadImage( x ) FreeLibrary( (HMODULE)(x) )
|
||
|
#endif
|
||
|
#if !defined( _X86_ ) || defined( USERMODE_DRIVER )
|
||
|
#define FLOATOBJ_SetFloat( x, p ) { *(x) = (p); }
|
||
|
#define FLOATOBJ_SetLong( x, p ) { *(x) = (FLOAT)(p); }
|
||
|
#define FLOATOBJ_GetFloat( x ) *((PULONG)(x))
|
||
|
#define FLOATOBJ_GetLong( x ) (LONG)*(x)
|
||
|
#define FLOATOBJ_AddFloat( x, p ) { *(x) += (p); }
|
||
|
#define FLOATOBJ_AddLong( x, p ) { *(x) += (LONG)(p); }
|
||
|
#define FLOATOBJ_Add( x, p ) { *(x) += *(p); }
|
||
|
#define FLOATOBJ_SubFloat( x, p ) { *(x) -= (p); }
|
||
|
#define FLOATOBJ_SubLong( x, p ) { *(x) -= (LONG)(p); }
|
||
|
#define FLOATOBJ_Sub( x, p ) { *(x) -= *(p); }
|
||
|
#define FLOATOBJ_MulFloat( x, p ) { *(x) *= (p); }
|
||
|
#define FLOATOBJ_MulLong( x, p ) { *(x) *= (LONG)(p); }
|
||
|
#define FLOATOBJ_Mul( x, p ) { *(x) *= *(p); }
|
||
|
#define FLOATOBJ_DivFloat( x, p ) { *(x) /= (p); }
|
||
|
#define FLOATOBJ_DivLong( x, p ) { *(x) /= (LONG)(p); }
|
||
|
#define FLOATOBJ_Div( x, p ) { *(x) /= *(p); }
|
||
|
#define FLOATOBJ_Neg( x ) { *(x) = -*(x); }
|
||
|
#define FLOATOBJ_EqualLong( x, p ) (*(x) == (FLOAT)(p))
|
||
|
#define FLOATOBJ_GreaterThanLong( x, p ) (*(x) > (FLOAT)(p))
|
||
|
#define FLOATOBJ_LessThanLong( x, p ) (*(x) < (FLOAT)(p))
|
||
|
#define FLOATOBJ_Equal( x, p ) (*(x) == *(p))
|
||
|
#define FLOATOBJ_GreaterThan( x, p ) (*(x) > *(p))
|
||
|
#define FLOATOBJ_LessThan( x, p ) (*(x) < *(p))
|
||
|
#endif
|
||
|
|
||
|
/* Aliases */
|
||
|
#ifdef USERMODE_DRIVER
|
||
|
#define EngEnumForms EnumForms
|
||
|
#define EngGetForm GetForm
|
||
|
#define EngGetLastError GetLastError
|
||
|
#define EngGetPrinter GetPrinter
|
||
|
#define EngGetPrinterData GetPrinterData
|
||
|
#define EngGetPrinterDriver GetPrinterDriver
|
||
|
#define EngMulDiv MulDiv
|
||
|
#define EngSetLastError SetLastError
|
||
|
#define EngSetPrinterData SetPrinterData
|
||
|
#define EngWritePrinter WritePrinter
|
||
|
#define XFORMOBJ_iGetFloatObjXform XFORMOBJ_iGetXform
|
||
|
#endif
|
||
|
|
||
|
#ifdef __cplusplus
|
||
|
} /* extern "C" */
|
||
|
#endif
|
||
|
|
||
|
#endif /* _WINDDI_ */
|