Embed:
(wiki syntax)
Show/hide line numbers
winddi.h
00001 /* 00002 * winddi.h 00003 * 00004 * GDI device driver interface 00005 * 00006 * This file is part of the w32api package. 00007 * 00008 * Contributors: 00009 * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> 00010 * 00011 * THIS SOFTWARE IS NOT COPYRIGHTED 00012 * 00013 * This source code is offered for use in the public domain. You may 00014 * use, modify or distribute it freely. 00015 * 00016 * This code is distributed in the hope that it will be useful but 00017 * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY 00018 * DISCLAIMED. This includes but is not limited to warranties of 00019 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. 00020 * 00021 */ 00022 00023 #ifndef __WINDDI_H 00024 #define __WINDDI_H 00025 00026 #if __GNUC__ >=3 00027 #pragma GCC system_header 00028 #endif 00029 00030 #ifdef __VIDEO_H 00031 #error video.h cannot be included with winddi.h 00032 #else 00033 00034 #ifdef __cplusplus 00035 extern "C" { 00036 #endif 00037 00038 #include "ntddk.h" 00039 #include <wingdi.h> 00040 00041 #ifndef __DD_INCLUDED__ 00042 /* FIXME: Some DirectDraw structures not added yet */ 00043 typedef ULONG_PTR FLATPTR; 00044 typedef struct _DD_SURFACECALLBACKS { 00045 } DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS; 00046 typedef struct _DD_PALETTECALLBACKS { 00047 } DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS; 00048 typedef struct _DD_CALLBACKS { 00049 } DD_CALLBACKS, *PDD_CALLBACKS; 00050 typedef struct _DD_HALINFO { 00051 } DD_HALINFO, *PDD_HALINFO; 00052 typedef struct _VIDEOMEMORY { 00053 } VIDEOMEMORY, *LPVIDEOMEMORY; 00054 typedef struct _DD_DIRECTDRAW_GLOBAL { 00055 } DD_DIRECTDRAW_GLOBAL, *LPDD_DIRECTDRAW_GLOBAL; 00056 typedef struct _DD_SURFACE_LOCAL { 00057 } DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL, *LPDD_SURFACE_LOCAL; 00058 #endif 00059 00060 #ifndef __DDRAWI_INCLUDED__ 00061 typedef PVOID LPVIDMEM; 00062 #endif 00063 00064 #if !defined(__DD_INCLUDED__) && !defined(__DDRAWI_INCLUDED__) 00065 typedef struct _DDSCAPS { 00066 } DDSCAPS, *PDDSCAPS; 00067 typedef struct _DDSCAPSEX { 00068 } DDSCAPSEX, *PDDSCAPSEX; 00069 typedef PVOID LPVMEMHEAP; 00070 #endif 00071 00072 #if defined(_WIN32K_) 00073 #define WIN32KAPI DECL_EXPORT 00074 #else 00075 #define WIN32KAPI DECL_IMPORT 00076 #endif 00077 00078 #define DDI_DRIVER_VERSION_NT4 0x00020000 00079 #define DDI_DRIVER_VERSION_SP3 0x00020003 00080 #define DDI_DRIVER_VERSION_NT5 0x00030000 00081 #define DDI_DRIVER_VERSION_NT5_01 0x00030100 00082 00083 #define GDI_DRIVER_VERSION 0x4000 00084 00085 #ifdef _X86_ 00086 00087 typedef DWORD FLOATL; 00088 00089 #else /* !_X86_ */ 00090 00091 typedef FLOAT FLOATL; 00092 00093 #endif 00094 00095 typedef SHORT FWORD; 00096 typedef LONG LDECI4; 00097 typedef ULONG IDENT; 00098 00099 typedef ULONG_PTR HFF; 00100 typedef ULONG_PTR HFC; 00101 00102 typedef LONG PTRDIFF; 00103 typedef PTRDIFF *PPTRDIFF; 00104 typedef LONG FIX; 00105 typedef FIX *PFIX; 00106 typedef ULONG ROP4; 00107 typedef ULONG MIX; 00108 typedef ULONG HGLYPH; 00109 typedef HGLYPH *PHGLYPH; 00110 00111 typedef LONG_PTR (DDKAPI *PFN)(); 00112 00113 DECLARE_HANDLE(HBM); 00114 DECLARE_HANDLE(HDEV); 00115 DECLARE_HANDLE(HSURF); 00116 DECLARE_HANDLE(DHSURF); 00117 DECLARE_HANDLE(DHPDEV); 00118 DECLARE_HANDLE(HDRVOBJ); 00119 00120 00121 #define GDI_DRIVER_VERSION 0x4000 00122 00123 typedef struct _ENG_EVENT *PEVENT; 00124 00125 #define OPENGL_CMD 4352 00126 #define OPENGL_GETINFO 4353 00127 #define WNDOBJ_SETUP 4354 00128 00129 #define FD_ERROR 0xFFFFFFFF 00130 #define DDI_ERROR 0xFFFFFFFF 00131 00132 #define HFF_INVALID ((HFF) 0) 00133 #define HFC_INVALID ((HFC) 0) 00134 #define HGLYPH_INVALID ((HGLYPH) -1) 00135 00136 #define FP_ALTERNATEMODE 1 00137 #define FP_WINDINGMODE 2 00138 00139 #define DN_ACCELERATION_LEVEL 1 00140 #define DN_DEVICE_ORIGIN 2 00141 #define DN_SLEEP_MODE 3 00142 #define DN_DRAWING_BEGIN 4 00143 00144 #define DCR_SOLID 0 00145 #define DCR_DRIVER 1 00146 #define DCR_HALFTONE 2 00147 00148 #define GX_IDENTITY 0 00149 #define GX_OFFSET 1 00150 #define GX_SCALE 2 00151 #define GX_GENERAL 3 00152 00153 typedef struct _POINTE { 00154 FLOATL x; 00155 FLOATL y; 00156 } POINTE, *PPOINTE; 00157 00158 typedef union _FLOAT_LONG { 00159 FLOATL e; 00160 LONG l; 00161 } FLOAT_LONG, *PFLOAT_LONG; 00162 00163 typedef struct _POINTFIX { 00164 FIX x; 00165 FIX y; 00166 } POINTFIX, *PPOINTFIX; 00167 00168 typedef struct _RECTFX { 00169 FIX xLeft; 00170 FIX yTop; 00171 FIX xRight; 00172 FIX yBottom; 00173 } RECTFX, *PRECTFX; 00174 00175 typedef struct _POINTQF { 00176 LARGE_INTEGER x; 00177 LARGE_INTEGER y; 00178 } POINTQF, *PPOINTQF; 00179 00180 00181 typedef struct _BLENDOBJ { 00182 BLENDFUNCTION BlendFunction; 00183 } BLENDOBJ,*PBLENDOBJ; 00184 00185 /* BRUSHOBJ.flColorType */ 00186 #define BR_DEVICE_ICM 0x01 00187 #define BR_HOST_ICM 0x02 00188 #define BR_CMYKCOLOR 0x04 00189 #define BR_ORIGCOLOR 0x08 00190 00191 typedef struct _BRUSHOBJ { 00192 ULONG iSolidColor; 00193 PVOID pvRbrush; 00194 FLONG flColorType; 00195 } BRUSHOBJ; 00196 00197 typedef struct _CIECHROMA { 00198 LDECI4 x; 00199 LDECI4 y; 00200 LDECI4 Y; 00201 } CIECHROMA; 00202 00203 typedef struct _RUN { 00204 LONG iStart; 00205 LONG iStop; 00206 } RUN, *PRUN; 00207 00208 typedef struct _CLIPLINE { 00209 POINTFIX ptfxA; 00210 POINTFIX ptfxB; 00211 LONG lStyleState; 00212 ULONG c; 00213 RUN arun[1]; 00214 } CLIPLINE, *PCLIPLINE; 00215 00216 /* CLIPOBJ.iDComplexity constants */ 00217 #define DC_TRIVIAL 0 00218 #define DC_RECT 1 00219 #define DC_COMPLEX 3 00220 00221 /* CLIPOBJ.iFComplexity constants */ 00222 #define FC_RECT 1 00223 #define FC_RECT4 2 00224 #define FC_COMPLEX 3 00225 00226 /* CLIPOBJ.iMode constants */ 00227 #define TC_RECTANGLES 0 00228 #define TC_PATHOBJ 2 00229 00230 /* CLIPOBJ.fjOptions constants */ 00231 #define OC_BANK_CLIP 1 00232 00233 typedef struct _CLIPOBJ { 00234 ULONG iUniq; 00235 RECTL rclBounds; 00236 BYTE iDComplexity; 00237 BYTE iFComplexity; 00238 BYTE iMode; 00239 BYTE fjOptions; 00240 } CLIPOBJ; 00241 00242 typedef struct _COLORINFO { 00243 CIECHROMA Red; 00244 CIECHROMA Green; 00245 CIECHROMA Blue; 00246 CIECHROMA Cyan; 00247 CIECHROMA Magenta; 00248 CIECHROMA Yellow; 00249 CIECHROMA AlignmentWhite; 00250 LDECI4 RedGamma; 00251 LDECI4 GreenGamma; 00252 LDECI4 BlueGamma; 00253 LDECI4 MagentaInCyanDye; 00254 LDECI4 YellowInCyanDye; 00255 LDECI4 CyanInMagentaDye; 00256 LDECI4 YellowInMagentaDye; 00257 LDECI4 CyanInYellowDye; 00258 LDECI4 MagentaInYellowDye; 00259 } COLORINFO, *PCOLORINFO; 00260 00261 /* DEVHTADJDATA.DeviceFlags constants */ 00262 #define DEVHTADJF_COLOR_DEVICE 0x00000001 00263 #define DEVHTADJF_ADDITIVE_DEVICE 0x00000002 00264 00265 typedef struct _DEVHTINFO { 00266 DWORD HTFlags; 00267 DWORD HTPatternSize; 00268 DWORD DevPelsDPI; 00269 COLORINFO ColorInfo; 00270 } DEVHTINFO, *PDEVHTINFO; 00271 00272 typedef struct _DEVHTADJDATA { 00273 DWORD DeviceFlags; 00274 DWORD DeviceXDPI; 00275 DWORD DeviceYDPI; 00276 PDEVHTINFO pDefHTInfo; 00277 PDEVHTINFO pAdjHTInfo; 00278 } DEVHTADJDATA, *PDEVHTADJDATA; 00279 00280 /* DEVINFO.flGraphicsCaps flags */ 00281 #define GCAPS_BEZIERS 0x00000001 00282 #define GCAPS_GEOMETRICWIDE 0x00000002 00283 #define GCAPS_ALTERNATEFILL 0x00000004 00284 #define GCAPS_WINDINGFILL 0x00000008 00285 #define GCAPS_HALFTONE 0x00000010 00286 #define GCAPS_COLOR_DITHER 0x00000020 00287 #define GCAPS_HORIZSTRIKE 0x00000040 00288 #define GCAPS_VERTSTRIKE 0x00000080 00289 #define GCAPS_OPAQUERECT 0x00000100 00290 #define GCAPS_VECTORFONT 0x00000200 00291 #define GCAPS_MONO_DITHER 0x00000400 00292 #define GCAPS_ASYNCCHANGE 0x00000800 00293 #define GCAPS_ASYNCMOVE 0x00001000 00294 #define GCAPS_DONTJOURNAL 0x00002000 00295 #define GCAPS_DIRECTDRAW 0x00004000 00296 #define GCAPS_ARBRUSHOPAQUE 0x00008000 00297 #define GCAPS_PANNING 0x00010000 00298 #define GCAPS_HIGHRESTEXT 0x00040000 00299 #define GCAPS_PALMANAGED 0x00080000 00300 #define GCAPS_DITHERONREALIZE 0x00200000 00301 #define GCAPS_NO64BITMEMACCESS 0x00400000 00302 #define GCAPS_FORCEDITHER 0x00800000 00303 #define GCAPS_GRAY16 0x01000000 00304 #define GCAPS_ICM 0x02000000 00305 #define GCAPS_CMYKCOLOR 0x04000000 00306 #define GCAPS_LAYERED 0x08000000 00307 #define GCAPS_ARBRUSHTEXT 0x10000000 00308 #define GCAPS_SCREENPRECISION 0x20000000 00309 #define GCAPS_FONT_RASTERIZER 0x40000000 00310 #define GCAPS_NUP 0x80000000 00311 00312 /* DEVINFO.iDitherFormat constants */ 00313 #define BMF_1BPP 1L 00314 #define BMF_4BPP 2L 00315 #define BMF_8BPP 3L 00316 #define BMF_16BPP 4L 00317 #define BMF_24BPP 5L 00318 #define BMF_32BPP 6L 00319 #define BMF_4RLE 7L 00320 #define BMF_8RLE 8L 00321 #define BMF_JPEG 9L 00322 #define BMF_PNG 10L 00323 00324 /* DEVINFO.flGraphicsCaps2 flags */ 00325 #define GCAPS2_JPEGSRC 0x00000001 00326 #define GCAPS2_xxxx 0x00000002 00327 #define GCAPS2_PNGSRC 0x00000008 00328 #define GCAPS2_CHANGEGAMMARAMP 0x00000010 00329 #define GCAPS2_ALPHACURSOR 0x00000020 00330 #define GCAPS2_SYNCFLUSH 0x00000040 00331 #define GCAPS2_SYNCTIMER 0x00000080 00332 #define GCAPS2_ICD_MULTIMON 0x00000100 00333 #define GCAPS2_MOUSETRAILS 0x00000200 00334 #define GCAPS2_RESERVED1 0x00000400 00335 00336 typedef struct _DEVINFO { 00337 FLONG flGraphicsCaps; 00338 LOGFONTW lfDefaultFont; 00339 LOGFONTW lfAnsiVarFont; 00340 LOGFONTW lfAnsiFixFont; 00341 ULONG cFonts; 00342 ULONG iDitherFormat; 00343 USHORT cxDither; 00344 USHORT cyDither; 00345 HPALETTE hpalDefault; 00346 FLONG flGraphicsCaps2; 00347 } DEVINFO, *PDEVINFO; 00348 00349 typedef struct _DRIVEROBJ *PDRIVEROBJ; 00350 00351 typedef BOOL DDKAPI CALLBACK 00352 (*FREEOBJPROC)( 00353 /*IN*/ PDRIVEROBJ pDriverObj); 00354 00355 typedef struct _DRIVEROBJ { 00356 PVOID pvObj; 00357 FREEOBJPROC pFreeProc; 00358 HDEV hdev; 00359 DHPDEV dhpdev; 00360 } DRIVEROBJ; 00361 00362 /* DRVFN.iFunc constants */ 00363 #define INDEX_DrvEnablePDEV 0L 00364 #define INDEX_DrvCompletePDEV 1L 00365 #define INDEX_DrvDisablePDEV 2L 00366 #define INDEX_DrvEnableSurface 3L 00367 #define INDEX_DrvDisableSurface 4L 00368 #define INDEX_DrvAssertMode 5L 00369 #define INDEX_DrvOffset 6L 00370 #define INDEX_DrvResetPDEV 7L 00371 #define INDEX_DrvDisableDriver 8L 00372 #define INDEX_DrvCreateDeviceBitmap 10L 00373 #define INDEX_DrvDeleteDeviceBitmap 11L 00374 #define INDEX_DrvRealizeBrush 12L 00375 #define INDEX_DrvDitherColor 13L 00376 #define INDEX_DrvStrokePath 14L 00377 #define INDEX_DrvFillPath 15L 00378 #define INDEX_DrvStrokeAndFillPath 16L 00379 #define INDEX_DrvPaint 17L 00380 #define INDEX_DrvBitBlt 18L 00381 #define INDEX_DrvCopyBits 19L 00382 #define INDEX_DrvStretchBlt 20L 00383 #define INDEX_DrvSetPalette 22L 00384 #define INDEX_DrvTextOut 23L 00385 #define INDEX_DrvEscape 24L 00386 #define INDEX_DrvDrawEscape 25L 00387 #define INDEX_DrvQueryFont 26L 00388 #define INDEX_DrvQueryFontTree 27L 00389 #define INDEX_DrvQueryFontData 28L 00390 #define INDEX_DrvSetPointerShape 29L 00391 #define INDEX_DrvMovePointer 30L 00392 #define INDEX_DrvLineTo 31L 00393 #define INDEX_DrvSendPage 32L 00394 #define INDEX_DrvStartPage 33L 00395 #define INDEX_DrvEndDoc 34L 00396 #define INDEX_DrvStartDoc 35L 00397 #define INDEX_DrvGetGlyphMode 37L 00398 #define INDEX_DrvSynchronize 38L 00399 #define INDEX_DrvSaveScreenBits 40L 00400 #define INDEX_DrvGetModes 41L 00401 #define INDEX_DrvFree 42L 00402 #define INDEX_DrvDestroyFont 43L 00403 #define INDEX_DrvQueryFontCaps 44L 00404 #define INDEX_DrvLoadFontFile 45L 00405 #define INDEX_DrvUnloadFontFile 46L 00406 #define INDEX_DrvFontManagement 47L 00407 #define INDEX_DrvQueryTrueTypeTable 48L 00408 #define INDEX_DrvQueryTrueTypeOutline 49L 00409 #define INDEX_DrvGetTrueTypeFile 50L 00410 #define INDEX_DrvQueryFontFile 51L 00411 #define INDEX_DrvMovePanning 52L 00412 #define INDEX_DrvQueryAdvanceWidths 53L 00413 #define INDEX_DrvSetPixelFormat 54L 00414 #define INDEX_DrvDescribePixelFormat 55L 00415 #define INDEX_DrvSwapBuffers 56L 00416 #define INDEX_DrvStartBanding 57L 00417 #define INDEX_DrvNextBand 58L 00418 #define INDEX_DrvGetDirectDrawInfo 59L 00419 #define INDEX_DrvEnableDirectDraw 60L 00420 #define INDEX_DrvDisableDirectDraw 61L 00421 #define INDEX_DrvQuerySpoolType 62L 00422 #define INDEX_DrvIcmCreateColorTransform 64L 00423 #define INDEX_DrvIcmDeleteColorTransform 65L 00424 #define INDEX_DrvIcmCheckBitmapBits 66L 00425 #define INDEX_DrvIcmSetDeviceGammaRamp 67L 00426 #define INDEX_DrvGradientFill 68L 00427 #define INDEX_DrvStretchBltROP 69L 00428 #define INDEX_DrvPlgBlt 70L 00429 #define INDEX_DrvAlphaBlend 71L 00430 #define INDEX_DrvSynthesizeFont 72L 00431 #define INDEX_DrvGetSynthesizedFontFiles 73L 00432 #define INDEX_DrvTransparentBlt 74L 00433 #define INDEX_DrvQueryPerBandInfo 75L 00434 #define INDEX_DrvQueryDeviceSupport 76L 00435 #define INDEX_DrvReserved1 77L 00436 #define INDEX_DrvReserved2 78L 00437 #define INDEX_DrvReserved3 79L 00438 #define INDEX_DrvReserved4 80L 00439 #define INDEX_DrvReserved5 81L 00440 #define INDEX_DrvReserved6 82L 00441 #define INDEX_DrvReserved7 83L 00442 #define INDEX_DrvReserved8 84L 00443 #define INDEX_DrvDeriveSurface 85L 00444 #define INDEX_DrvQueryGlyphAttrs 86L 00445 #define INDEX_DrvNotify 87L 00446 #define INDEX_DrvSynchronizeSurface 88L 00447 #define INDEX_DrvResetDevice 89L 00448 #define INDEX_DrvReserved9 90L 00449 #define INDEX_DrvReserved10 91L 00450 #define INDEX_DrvReserved11 92L 00451 #define INDEX_LAST 93L 00452 00453 typedef struct _DRVFN { 00454 ULONG iFunc; 00455 PFN pfn; 00456 } DRVFN, *PDRVFN; 00457 00458 /* DRVENABLEDATA.iDriverVersion constants */ 00459 #define DDI_DRIVER_VERSION_NT4 0x00020000 00460 #define DDI_DRIVER_VERSION_SP3 0x00020003 00461 #define DDI_DRIVER_VERSION_NT5 0x00030000 00462 #define DDI_DRIVER_VERSION_NT5_01 0x00030100 00463 00464 typedef struct _DRVENABLEDATA { 00465 ULONG iDriverVersion; 00466 ULONG c; 00467 DRVFN *pdrvfn; 00468 } DRVENABLEDATA, *PDRVENABLEDATA; 00469 00470 DECLARE_HANDLE(HSEMAPHORE); 00471 00472 typedef struct { 00473 DWORD nSize; 00474 HDC hdc; 00475 PBYTE pvEMF; 00476 PBYTE pvCurrentRecord; 00477 } EMFINFO, *PEMFINFO; 00478 00479 typedef struct _ENGSAFESEMAPHORE { 00480 HSEMAPHORE hsem; 00481 LONG lCount; 00482 } ENGSAFESEMAPHORE; 00483 00484 typedef struct _ENG_TIME_FIELDS { 00485 USHORT usYear; 00486 USHORT usMonth; 00487 USHORT usDay; 00488 USHORT usHour; 00489 USHORT usMinute; 00490 USHORT usSecond; 00491 USHORT usMilliseconds; 00492 USHORT usWeekday; 00493 } ENG_TIME_FIELDS, *PENG_TIME_FIELDS; 00494 00495 typedef struct _ENUMRECTS { 00496 ULONG c; 00497 RECTL arcl[1]; 00498 } ENUMRECTS; 00499 00500 typedef struct _FD_XFORM { 00501 FLOATL eXX; 00502 FLOATL eXY; 00503 FLOATL eYX; 00504 FLOATL eYY; 00505 } FD_XFORM, *PFD_XFORM; 00506 00507 /* FD_DEVICEMETRICS.flRealizedType constants */ 00508 #define FDM_TYPE_BM_SIDE_CONST 0x00000001 00509 #define FDM_TYPE_MAXEXT_EQUAL_BM_SIDE 0x00000002 00510 #define FDM_TYPE_CHAR_INC_EQUAL_BM_BASE 0x00000004 00511 #define FDM_TYPE_ZERO_BEARINGS 0x00000008 00512 #define FDM_TYPE_CONST_BEARINGS 0x00000010 00513 00514 typedef struct _FD_DEVICEMETRICS { 00515 FLONG flRealizedType; 00516 POINTE pteBase; 00517 POINTE pteSide; 00518 LONG lD; 00519 FIX fxMaxAscender; 00520 FIX fxMaxDescender; 00521 POINTL ptlUnderline1; 00522 POINTL ptlStrikeout; 00523 POINTL ptlULThickness; 00524 POINTL ptlSOThickness; 00525 ULONG cxMax; 00526 ULONG cyMax; 00527 ULONG cjGlyphMax; 00528 FD_XFORM fdxQuantized; 00529 LONG lNonLinearExtLeading; 00530 LONG lNonLinearIntLeading; 00531 LONG lNonLinearMaxCharWidth; 00532 LONG lNonLinearAvgCharWidth; 00533 LONG lMinA; 00534 LONG lMinC; 00535 LONG lMinD; 00536 LONG alReserved[1]; 00537 } FD_DEVICEMETRICS, *PFD_DEVICEMETRICS; 00538 00539 /* FD_GLYPHATTR.iMode constants */ 00540 #define FO_ATTR_MODE_ROTATE 1 00541 00542 typedef struct _FD_GLYPHATTR { 00543 ULONG cjThis; 00544 ULONG cGlyphs; 00545 ULONG iMode; 00546 BYTE aGlyphAttr[1]; 00547 } FD_GLYPHATTR, *PFD_GLYPHATTR; 00548 00549 /* FD_GLYPHSET.flAccel */ 00550 #define GS_UNICODE_HANDLES 0x00000001 00551 #define GS_8BIT_HANDLES 0x00000002 00552 #define GS_16BIT_HANDLES 0x00000004 00553 00554 typedef struct _WCRUN { 00555 WCHAR wcLow; 00556 USHORT cGlyphs; 00557 HGLYPH *phg; 00558 } WCRUN, *PWCRUN; 00559 00560 typedef struct _FD_GLYPHSET { 00561 ULONG cjThis; 00562 FLONG flAccel; 00563 ULONG cGlyphsSupported; 00564 ULONG cRuns; 00565 WCRUN awcrun[1]; 00566 } FD_GLYPHSET, *PFD_GLYPHSET; 00567 00568 typedef struct _FD_KERNINGPAIR { 00569 WCHAR wcFirst; 00570 WCHAR wcSecond; 00571 FWORD fwdKern; 00572 } FD_KERNINGPAIR; 00573 00574 typedef struct _FLOATOBJ 00575 { 00576 ULONG ul1; 00577 ULONG ul2; 00578 } FLOATOBJ, *PFLOATOBJ; 00579 00580 typedef struct _FLOATOBJ_XFORM { 00581 FLOATOBJ eM11; 00582 FLOATOBJ eM12; 00583 FLOATOBJ eM21; 00584 FLOATOBJ eM22; 00585 FLOATOBJ eDx; 00586 FLOATOBJ eDy; 00587 } FLOATOBJ_XFORM, *PFLOATOBJ_XFORM, FAR *LPFLOATOBJ_XFORM; 00588 00589 /* FONTDIFF.fsSelection */ 00590 #define FM_SEL_ITALIC 0x0001 00591 #define FM_SEL_UNDERSCORE 0x0002 00592 #define FM_SEL_NEGATIVE 0x0004 00593 #define FM_SEL_OUTLINED 0x0008 00594 #define FM_SEL_STRIKEOUT 0x0010 00595 #define FM_SEL_BOLD 0x0020 00596 #define FM_SEL_REGULAR 0x0040 00597 00598 typedef struct _FONTDIFF { 00599 BYTE jReserved1; 00600 BYTE jReserved2; 00601 BYTE jReserved3; 00602 BYTE bWeight; 00603 USHORT usWinWeight; 00604 FSHORT fsSelection; 00605 FWORD fwdAveCharWidth; 00606 FWORD fwdMaxCharInc; 00607 POINTL ptlCaret; 00608 } FONTDIFF; 00609 00610 typedef struct _FONTSIM { 00611 PTRDIFF dpBold; 00612 PTRDIFF dpItalic; 00613 PTRDIFF dpBoldItalic; 00614 } FONTSIM; 00615 00616 /* FONTINFO.flCaps constants */ 00617 #define FO_DEVICE_FONT 1L 00618 #define FO_OUTLINE_CAPABLE 2L 00619 00620 typedef struct _FONTINFO { 00621 ULONG cjThis; 00622 FLONG flCaps; 00623 ULONG cGlyphsSupported; 00624 ULONG cjMaxGlyph1; 00625 ULONG cjMaxGlyph4; 00626 ULONG cjMaxGlyph8; 00627 ULONG cjMaxGlyph32; 00628 } FONTINFO, *PFONTINFO; 00629 00630 /* FONTOBJ.flFontType constants */ 00631 #define FO_TYPE_RASTER RASTER_FONTTYPE 00632 #define FO_TYPE_DEVICE DEVICE_FONTTYPE 00633 #define FO_TYPE_TRUETYPE TRUETYPE_FONTTYPE 00634 #define FO_TYPE_OPENTYPE OPENTYPE_FONTTYPE 00635 00636 #define FO_SIM_BOLD 0x00002000 00637 #define FO_SIM_ITALIC 0x00004000 00638 #define FO_EM_HEIGHT 0x00008000 00639 #define FO_GRAY16 0x00010000 00640 #define FO_NOGRAY16 0x00020000 00641 #define FO_NOHINTS 0x00040000 00642 #define FO_NO_CHOICE 0x00080000 00643 #define FO_CFF 0x00100000 00644 #define FO_POSTSCRIPT 0x00200000 00645 #define FO_MULTIPLEMASTER 0x00400000 00646 #define FO_VERT_FACE 0x00800000 00647 #define FO_DBCS_FONT 0X01000000 00648 #define FO_NOCLEARTYPE 0x02000000 00649 #define FO_CLEARTYPE_X 0x10000000 00650 #define FO_CLEARTYPE_Y 0x20000000 00651 00652 typedef struct _FONTOBJ { 00653 ULONG iUniq; 00654 ULONG iFace; 00655 ULONG cxMax; 00656 FLONG flFontType; 00657 ULONG_PTR iTTUniq; 00658 ULONG_PTR iFile; 00659 SIZE sizLogResPpi; 00660 ULONG ulStyleSize; 00661 PVOID pvConsumer; 00662 PVOID pvProducer; 00663 } FONTOBJ; 00664 00665 typedef struct _GAMMARAMP { 00666 WORD Red[256]; 00667 WORD Green[256]; 00668 WORD Blue[256]; 00669 } GAMMARAMP, *PGAMMARAMP; 00670 00671 /* GDIINFO.ulPrimaryOrder constants */ 00672 #define PRIMARY_ORDER_ABC 0 00673 #define PRIMARY_ORDER_ACB 1 00674 #define PRIMARY_ORDER_BAC 2 00675 #define PRIMARY_ORDER_BCA 3 00676 #define PRIMARY_ORDER_CBA 4 00677 #define PRIMARY_ORDER_CAB 5 00678 00679 /* GDIINFO.ulHTPatternSize constants */ 00680 #define HT_PATSIZE_2x2 0 00681 #define HT_PATSIZE_2x2_M 1 00682 #define HT_PATSIZE_4x4 2 00683 #define HT_PATSIZE_4x4_M 3 00684 #define HT_PATSIZE_6x6 4 00685 #define HT_PATSIZE_6x6_M 5 00686 #define HT_PATSIZE_8x8 6 00687 #define HT_PATSIZE_8x8_M 7 00688 #define HT_PATSIZE_10x10 8 00689 #define HT_PATSIZE_10x10_M 9 00690 #define HT_PATSIZE_12x12 10 00691 #define HT_PATSIZE_12x12_M 11 00692 #define HT_PATSIZE_14x14 12 00693 #define HT_PATSIZE_14x14_M 13 00694 #define HT_PATSIZE_16x16 14 00695 #define HT_PATSIZE_16x16_M 15 00696 #define HT_PATSIZE_SUPERCELL 16 00697 #define HT_PATSIZE_SUPERCELL_M 17 00698 #define HT_PATSIZE_USER 18 00699 #define HT_PATSIZE_MAX_INDEX HT_PATSIZE_USER 00700 #define HT_PATSIZE_DEFAULT HT_PATSIZE_SUPERCELL_M 00701 #define HT_USERPAT_CX_MIN 4 00702 #define HT_USERPAT_CX_MAX 256 00703 #define HT_USERPAT_CY_MIN 4 00704 #define HT_USERPAT_CY_MAX 256 00705 00706 /* GDIINFO.ulHTOutputFormat constants */ 00707 #define HT_FORMAT_1BPP 0 00708 #define HT_FORMAT_4BPP 2 00709 #define HT_FORMAT_4BPP_IRGB 3 00710 #define HT_FORMAT_8BPP 4 00711 #define HT_FORMAT_16BPP 5 00712 #define HT_FORMAT_24BPP 6 00713 #define HT_FORMAT_32BPP 7 00714 00715 /* GDIINFO.flHTFlags */ 00716 #define HT_FLAG_SQUARE_DEVICE_PEL 0x00000001 00717 #define HT_FLAG_HAS_BLACK_DYE 0x00000002 00718 #define HT_FLAG_ADDITIVE_PRIMS 0x00000004 00719 #define HT_FLAG_USE_8BPP_BITMASK 0x00000008 00720 #define HT_FLAG_INK_HIGH_ABSORPTION 0x00000010 00721 #define HT_FLAG_INK_ABSORPTION_INDICES 0x00000060 00722 #define HT_FLAG_DO_DEVCLR_XFORM 0x00000080 00723 #define HT_FLAG_OUTPUT_CMY 0x00000100 00724 #define HT_FLAG_PRINT_DRAFT_MODE 0x00000200 00725 #define HT_FLAG_INVERT_8BPP_BITMASK_IDX 0x00000400 00726 #define HT_FLAG_8BPP_CMY332_MASK 0xFF000000 00727 00728 #define MAKE_CMYMASK_BYTE(c,m,y) ((BYTE)(((BYTE)(c) & 0x07) << 5) \ 00729 |(BYTE)(((BYTE)(m) & 0x07) << 2) \ 00730 |(BYTE)((BYTE)(y) & 0x03)) 00731 00732 #define MAKE_CMY332_MASK(c,m,y) ((DWORD)(((DWORD)(c) & 0x07) << 29)\ 00733 |(DWORD)(((DWORD)(m) & 0x07) << 26)\ 00734 |(DWORD)(((DWORD)(y) & 0x03) << 24)) 00735 00736 /* GDIINFO.flHTFlags constants */ 00737 #define HT_FLAG_INK_ABSORPTION_IDX0 0x00000000 00738 #define HT_FLAG_INK_ABSORPTION_IDX1 0x00000020 00739 #define HT_FLAG_INK_ABSORPTION_IDX2 0x00000040 00740 #define HT_FLAG_INK_ABSORPTION_IDX3 0x00000060 00741 00742 #define HT_FLAG_HIGHEST_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \ 00743 |HT_FLAG_INK_ABSORPTION_IDX3) 00744 #define HT_FLAG_HIGHER_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \ 00745 |HT_FLAG_INK_ABSORPTION_IDX2) 00746 #define HT_FLAG_HIGH_INK_ABSORPTION (HT_FLAG_INK_HIGH_ABSORPTION \ 00747 |HT_FLAG_INK_ABSORPTION_IDX1) 00748 #define HT_FLAG_NORMAL_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX0 00749 #define HT_FLAG_LOW_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX1 00750 #define HT_FLAG_LOWER_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX2 00751 #define HT_FLAG_LOWEST_INK_ABSORPTION HT_FLAG_INK_ABSORPTION_IDX3 00752 00753 #define HT_BITMASKPALRGB (DWORD)'0BGR' 00754 #define HT_SET_BITMASKPAL2RGB(pPal) (*((LPDWORD)(pPal)) = HT_BITMASKPALRGB) 00755 #define HT_IS_BITMASKPALRGB(pPal) (*((LPDWORD)(pPal)) == (DWORD)0) 00756 00757 /* GDIINFO.ulPhysicalPixelCharacteristics constants */ 00758 #define PPC_DEFAULT 0x0 00759 #define PPC_UNDEFINED 0x1 00760 #define PPC_RGB_ORDER_VERTICAL_STRIPES 0x2 00761 #define PPC_BGR_ORDER_VERTICAL_STRIPES 0x3 00762 #define PPC_RGB_ORDER_HORIZONTAL_STRIPES 0x4 00763 #define PPC_BGR_ORDER_HORIZONTAL_STRIPES 0x5 00764 00765 #define PPG_DEFAULT 0 00766 #define PPG_SRGB 1 00767 00768 typedef struct _GDIINFO { 00769 ULONG ulVersion; 00770 ULONG ulTechnology; 00771 ULONG ulHorzSize; 00772 ULONG ulVertSize; 00773 ULONG ulHorzRes; 00774 ULONG ulVertRes; 00775 ULONG cBitsPixel; 00776 ULONG cPlanes; 00777 ULONG ulNumColors; 00778 ULONG flRaster; 00779 ULONG ulLogPixelsX; 00780 ULONG ulLogPixelsY; 00781 ULONG flTextCaps; 00782 ULONG ulDACRed; 00783 ULONG ulDACGreen; 00784 ULONG ulDACBlue; 00785 ULONG ulAspectX; 00786 ULONG ulAspectY; 00787 ULONG ulAspectXY; 00788 LONG xStyleStep; 00789 LONG yStyleStep; 00790 LONG denStyleStep; 00791 POINTL ptlPhysOffset; 00792 SIZEL szlPhysSize; 00793 ULONG ulNumPalReg; 00794 COLORINFO ciDevice; 00795 ULONG ulDevicePelsDPI; 00796 ULONG ulPrimaryOrder; 00797 ULONG ulHTPatternSize; 00798 ULONG ulHTOutputFormat; 00799 ULONG flHTFlags; 00800 ULONG ulVRefresh; 00801 ULONG ulBltAlignment; 00802 ULONG ulPanningHorzRes; 00803 ULONG ulPanningVertRes; 00804 ULONG xPanningAlignment; 00805 ULONG yPanningAlignment; 00806 ULONG cxHTPat; 00807 ULONG cyHTPat; 00808 LPBYTE pHTPatA; 00809 LPBYTE pHTPatB; 00810 LPBYTE pHTPatC; 00811 ULONG flShadeBlend; 00812 ULONG ulPhysicalPixelCharacteristics; 00813 ULONG ulPhysicalPixelGamma; 00814 } GDIINFO, *PGDIINFO; 00815 00816 /* PATHDATA.flags constants */ 00817 #define PD_BEGINSUBPATH 0x00000001 00818 #define PD_ENDSUBPATH 0x00000002 00819 #define PD_RESETSTYLE 0x00000004 00820 #define PD_CLOSEFIGURE 0x00000008 00821 #define PD_BEZIERS 0x00000010 00822 #define PD_ALL (PD_BEGINSUBPATH \ 00823 |PD_ENDSUBPATH \ 00824 |PD_RESETSTYLE \ 00825 |PD_CLOSEFIGURE \ 00826 PD_BEZIERS) 00827 00828 typedef struct _PATHDATA { 00829 FLONG flags; 00830 ULONG count; 00831 POINTFIX *glypptfx; 00832 } PATHDATA, *PPATHDATA; 00833 00834 /* PATHOBJ.fl constants */ 00835 #define PO_BEZIERS 0x00000001 00836 #define PO_ELLIPSE 0x00000002 00837 #define PO_ALL_INTEGERS 0x00000004 00838 #define PO_ENUM_AS_INTEGERS 0x00000008 00839 00840 typedef struct _PATHOBJ { 00841 FLONG fl; 00842 ULONG cCurves; 00843 } PATHOBJ; 00844 00845 typedef struct _GLYPHBITS { 00846 POINTL ptlOrigin; 00847 SIZEL sizlBitmap; 00848 BYTE aj[1]; 00849 } GLYPHBITS; 00850 00851 typedef union _GLYPHDEF { 00852 GLYPHBITS *pgb; 00853 PATHOBJ *ppo; 00854 } GLYPHDEF; 00855 00856 typedef struct _GLYPHPOS { 00857 HGLYPH hg; 00858 GLYPHDEF *pgdf; 00859 POINTL ptl; 00860 } GLYPHPOS, *PGLYPHPOS; 00861 00862 typedef struct _GLYPHDATA { 00863 GLYPHDEF gdf; 00864 HGLYPH hg; 00865 FIX fxD; 00866 FIX fxA; 00867 FIX fxAB; 00868 FIX fxInkTop; 00869 FIX fxInkBottom; 00870 RECTL rclInk; 00871 POINTQF ptqD; 00872 } GLYPHDATA; 00873 00874 typedef struct _IFIEXTRA { 00875 ULONG ulIdentifier; 00876 PTRDIFF dpFontSig; 00877 ULONG cig; 00878 PTRDIFF dpDesignVector; 00879 PTRDIFF dpAxesInfoW; 00880 ULONG aulReserved[1]; 00881 } IFIEXTRA, *PIFIEXTRA; 00882 00883 /* IFIMETRICS constants */ 00884 00885 #define FM_VERSION_NUMBER 0x0 00886 00887 /* IFIMETRICS.fsType constants */ 00888 #define FM_TYPE_LICENSED 0x2 00889 #define FM_READONLY_EMBED 0x4 00890 #define FM_EDITABLE_EMBED 0x8 00891 #define FM_NO_EMBEDDING FM_TYPE_LICENSED 00892 00893 /* IFIMETRICS.flInfo constants */ 00894 #define FM_INFO_TECH_TRUETYPE 0x00000001 00895 #define FM_INFO_TECH_BITMAP 0x00000002 00896 #define FM_INFO_TECH_STROKE 0x00000004 00897 #define FM_INFO_TECH_OUTLINE_NOT_TRUETYPE 0x00000008 00898 #define FM_INFO_ARB_XFORMS 0x00000010 00899 #define FM_INFO_1BPP 0x00000020 00900 #define FM_INFO_4BPP 0x00000040 00901 #define FM_INFO_8BPP 0x00000080 00902 #define FM_INFO_16BPP 0x00000100 00903 #define FM_INFO_24BPP 0x00000200 00904 #define FM_INFO_32BPP 0x00000400 00905 #define FM_INFO_INTEGER_WIDTH 0x00000800 00906 #define FM_INFO_CONSTANT_WIDTH 0x00001000 00907 #define FM_INFO_NOT_CONTIGUOUS 0x00002000 00908 #define FM_INFO_TECH_MM 0x00004000 00909 #define FM_INFO_RETURNS_OUTLINES 0x00008000 00910 #define FM_INFO_RETURNS_STROKES 0x00010000 00911 #define FM_INFO_RETURNS_BITMAPS 0x00020000 00912 #define FM_INFO_DSIG 0x00040000 00913 #define FM_INFO_RIGHT_HANDED 0x00080000 00914 #define FM_INFO_INTEGRAL_SCALING 0x00100000 00915 #define FM_INFO_90DEGREE_ROTATIONS 0x00200000 00916 #define FM_INFO_OPTICALLY_FIXED_PITCH 0x00400000 00917 #define FM_INFO_DO_NOT_ENUMERATE 0x00800000 00918 #define FM_INFO_ISOTROPIC_SCALING_ONLY 0x01000000 00919 #define FM_INFO_ANISOTROPIC_SCALING_ONLY 0x02000000 00920 #define FM_INFO_TECH_CFF 0x04000000 00921 #define FM_INFO_FAMILY_EQUIV 0x08000000 00922 #define FM_INFO_DBCS_FIXED_PITCH 0x10000000 00923 #define FM_INFO_NONNEGATIVE_AC 0x20000000 00924 #define FM_INFO_IGNORE_TC_RA_ABLE 0x40000000 00925 #define FM_INFO_TECH_TYPE1 0x80000000 00926 00927 #define MAXCHARSETS 16 00928 00929 /* IFIMETRICS.ulPanoseCulture constants */ 00930 #define FM_PANOSE_CULTURE_LATIN 0x0 00931 00932 typedef struct _IFIMETRICS { 00933 ULONG cjThis; 00934 ULONG cjIfiExtra; 00935 PTRDIFF dpwszFamilyName; 00936 PTRDIFF dpwszStyleName; 00937 PTRDIFF dpwszFaceName; 00938 PTRDIFF dpwszUniqueName; 00939 PTRDIFF dpFontSim; 00940 LONG lEmbedId; 00941 LONG lItalicAngle; 00942 LONG lCharBias; 00943 PTRDIFF dpCharSets; 00944 BYTE jWinCharSet; 00945 BYTE jWinPitchAndFamily; 00946 USHORT usWinWeight; 00947 ULONG flInfo; 00948 USHORT fsSelection; 00949 USHORT fsType; 00950 FWORD fwdUnitsPerEm; 00951 FWORD fwdLowestPPEm; 00952 FWORD fwdWinAscender; 00953 FWORD fwdWinDescender; 00954 FWORD fwdMacAscender; 00955 FWORD fwdMacDescender; 00956 FWORD fwdMacLineGap; 00957 FWORD fwdTypoAscender; 00958 FWORD fwdTypoDescender; 00959 FWORD fwdTypoLineGap; 00960 FWORD fwdAveCharWidth; 00961 FWORD fwdMaxCharInc; 00962 FWORD fwdCapHeight; 00963 FWORD fwdXHeight; 00964 FWORD fwdSubscriptXSize; 00965 FWORD fwdSubscriptYSize; 00966 FWORD fwdSubscriptXOffset; 00967 FWORD fwdSubscriptYOffset; 00968 FWORD fwdSuperscriptXSize; 00969 FWORD fwdSuperscriptYSize; 00970 FWORD fwdSuperscriptXOffset; 00971 FWORD fwdSuperscriptYOffset; 00972 FWORD fwdUnderscoreSize; 00973 FWORD fwdUnderscorePosition; 00974 FWORD fwdStrikeoutSize; 00975 FWORD fwdStrikeoutPosition; 00976 BYTE chFirstChar; 00977 BYTE chLastChar; 00978 BYTE chDefaultChar; 00979 BYTE chBreakChar; 00980 WCHAR wcFirstChar; 00981 WCHAR wcLastChar; 00982 WCHAR wcDefaultChar; 00983 WCHAR wcBreakChar; 00984 POINTL ptlBaseline; 00985 POINTL ptlAspect; 00986 POINTL ptlCaret; 00987 RECTL rclFontBox; 00988 BYTE achVendId[4]; 00989 ULONG cKerningPairs; 00990 ULONG ulPanoseCulture; 00991 PANOSE panose; 00992 #if defined(_WIN64) 00993 PVOID Align; 00994 #endif 00995 } IFIMETRICS, *PIFIMETRICS; 00996 00997 /* LINEATTRS.fl */ 00998 #define LA_GEOMETRIC 0x00000001 00999 #define LA_ALTERNATE 0x00000002 01000 #define LA_STARTGAP 0x00000004 01001 #define LA_STYLED 0x00000008 01002 01003 /* LINEATTRS.iJoin */ 01004 #define JOIN_ROUND 0L 01005 #define JOIN_BEVEL 1L 01006 #define JOIN_MITER 2L 01007 01008 /* LINEATTRS.iEndCap */ 01009 #define ENDCAP_ROUND 0L 01010 #define ENDCAP_SQUARE 1L 01011 #define ENDCAP_BUTT 2L 01012 01013 typedef struct _LINEATTRS { 01014 FLONG fl; 01015 ULONG iJoin; 01016 ULONG iEndCap; 01017 FLOAT_LONG elWidth; 01018 FLOATL eMiterLimit; 01019 ULONG cstyle; 01020 PFLOAT_LONG pstyle; 01021 FLOAT_LONG elStyleState; 01022 } LINEATTRS, *PLINEATTRS; 01023 01024 typedef struct _PALOBJ { 01025 ULONG ulReserved; 01026 } PALOBJ; 01027 01028 typedef struct _PERBANDINFO { 01029 BOOL bRepeatThisBand; 01030 SIZEL szlBand; 01031 ULONG ulHorzRes; 01032 ULONG ulVertRes; 01033 } PERBANDINFO, *PPERBANDINFO; 01034 01035 /* STROBJ.flAccel constants */ 01036 #define SO_FLAG_DEFAULT_PLACEMENT 0x00000001 01037 #define SO_HORIZONTAL 0x00000002 01038 #define SO_VERTICAL 0x00000004 01039 #define SO_REVERSED 0x00000008 01040 #define SO_ZERO_BEARINGS 0x00000010 01041 #define SO_CHAR_INC_EQUAL_BM_BASE 0x00000020 01042 #define SO_MAXEXT_EQUAL_BM_SIDE 0x00000040 01043 #define SO_DO_NOT_SUBSTITUTE_DEVICE_FONT 0x00000080 01044 #define SO_GLYPHINDEX_TEXTOUT 0x00000100 01045 #define SO_ESC_NOT_ORIENT 0x00000200 01046 #define SO_DXDY 0x00000400 01047 #define SO_CHARACTER_EXTRA 0x00000800 01048 #define SO_BREAK_EXTRA 0x00001000 01049 01050 typedef struct _STROBJ { 01051 ULONG cGlyphs; 01052 FLONG flAccel; 01053 ULONG ulCharInc; 01054 RECTL rclBkGround; 01055 GLYPHPOS *pgp; 01056 LPWSTR pwszOrg; 01057 } STROBJ; 01058 01059 typedef struct _SURFACEALIGNMENT { 01060 union { 01061 struct { 01062 DWORD dwStartAlignment; 01063 DWORD dwPitchAlignment; 01064 DWORD dwReserved1; 01065 DWORD dwReserved2; 01066 } Linear; 01067 struct { 01068 DWORD dwXAlignment; 01069 DWORD dwYAlignment; 01070 DWORD dwReserved1; 01071 DWORD dwReserved2; 01072 } Rectangular; 01073 }; 01074 } SURFACEALIGNMENT, *LPSURFACEALIGNMENT; 01075 01076 /* SURFOBJ.iType constants */ 01077 #define STYPE_BITMAP 0L 01078 #define STYPE_DEVICE 1L 01079 #define STYPE_DEVBITMAP 3L 01080 01081 /* SURFOBJ.fjBitmap constants */ 01082 #define BMF_TOPDOWN 0x0001 01083 #define BMF_NOZEROINIT 0x0002 01084 #define BMF_DONTCACHE 0x0004 01085 #define BMF_USERMEM 0x0008 01086 #define BMF_KMSECTION 0x0010 01087 #define BMF_NOTSYSMEM 0x0020 01088 #define BMF_WINDOW_BLT 0x0040 01089 #define BMF_UMPDMEM 0x0080 01090 #define BMF_RESERVED 0xFF00 01091 01092 typedef struct _SURFOBJ { 01093 DHSURF dhsurf; 01094 HSURF hsurf; 01095 DHPDEV dhpdev; 01096 HDEV hdev; 01097 SIZEL sizlBitmap; 01098 ULONG cjBits; 01099 PVOID pvBits; 01100 PVOID pvScan0; 01101 LONG lDelta; 01102 ULONG iUniq; 01103 ULONG iBitmapFormat; 01104 USHORT iType; 01105 USHORT fjBitmap; 01106 } SURFOBJ; 01107 01108 typedef struct _TYPE1_FONT { 01109 HANDLE hPFM; 01110 HANDLE hPFB; 01111 ULONG ulIdentifier; 01112 } TYPE1_FONT; 01113 01114 typedef struct _WNDOBJ { 01115 CLIPOBJ coClient; 01116 PVOID pvConsumer; 01117 RECTL rclClient; 01118 SURFOBJ *psoOwner; 01119 } WNDOBJ, *PWNDOBJ; 01120 01121 typedef struct _XFORML { 01122 FLOATL eM11; 01123 FLOATL eM12; 01124 FLOATL eM21; 01125 FLOATL eM22; 01126 FLOATL eDx; 01127 FLOATL eDy; 01128 } XFORML, *PXFORML; 01129 01130 typedef struct _XFORMOBJ { 01131 ULONG ulReserved; 01132 } XFORMOBJ; 01133 01134 /* XLATEOBJ.flXlate constants */ 01135 #define XO_TRIVIAL 0x00000001 01136 #define XO_TABLE 0x00000002 01137 #define XO_TO_MONO 0x00000004 01138 #define XO_FROM_CMYK 0x00000008 01139 #define XO_DEVICE_ICM 0x00000010 01140 #define XO_HOST_ICM 0x00000020 01141 01142 typedef struct _XLATEOBJ { 01143 ULONG iUniq; 01144 FLONG flXlate; 01145 USHORT iSrcType; 01146 USHORT iDstType; 01147 ULONG cEntries; 01148 ULONG *pulXlate; 01149 } XLATEOBJ; 01150 01151 typedef VOID DDKAPI (CALLBACK *WNDOBJCHANGEPROC)( 01152 /*IN*/ WNDOBJ *pwo, 01153 /*IN*/ FLONG fl); 01154 01155 01156 WIN32KAPI 01157 HANDLE 01158 DDKAPI 01159 BRUSHOBJ_hGetColorTransform( 01160 /*IN*/ BRUSHOBJ *pbo); 01161 01162 WIN32KAPI 01163 PVOID 01164 DDKAPI 01165 BRUSHOBJ_pvAllocRbrush( 01166 /*IN*/ BRUSHOBJ *pbo, 01167 /*IN*/ ULONG cj); 01168 01169 WIN32KAPI 01170 PVOID 01171 DDKAPI 01172 BRUSHOBJ_pvGetRbrush( 01173 /*IN*/ BRUSHOBJ *pbo); 01174 01175 WIN32KAPI 01176 ULONG 01177 DDKAPI 01178 BRUSHOBJ_ulGetBrushColor( 01179 /*IN*/ BRUSHOBJ *pbo); 01180 01181 WIN32KAPI 01182 BOOL 01183 DDKAPI 01184 CLIPOBJ_bEnum( 01185 /*IN*/ CLIPOBJ *pco, 01186 /*IN*/ ULONG cj, 01187 01188 /*OUT*/ ULONG *pv); 01189 01190 /* CLIPOBJ_cEnumStart.iType constants */ 01191 #define CT_RECTANGLES 0L 01192 01193 /* CLIPOBJ_cEnumStart.iDirection constants */ 01194 #define CD_RIGHTDOWN 0x00000000 01195 #define CD_LEFTDOWN 0x00000001 01196 #define CD_LEFTWARDS 0x00000001 01197 #define CD_RIGHTUP 0x00000002 01198 #define CD_UPWARDS 0x00000002 01199 #define CD_LEFTUP 0x00000003 01200 #define CD_ANY 0x00000004 01201 01202 WIN32KAPI 01203 ULONG 01204 DDKAPI 01205 CLIPOBJ_cEnumStart( 01206 /*IN*/ CLIPOBJ *pco, 01207 /*IN*/ BOOL bAll, 01208 /*IN*/ ULONG iType, 01209 /*IN*/ ULONG iDirection, 01210 /*IN*/ ULONG cLimit); 01211 01212 WIN32KAPI 01213 PATHOBJ* 01214 DDKAPI 01215 CLIPOBJ_ppoGetPath( 01216 /*IN*/ CLIPOBJ *pco); 01217 01218 WIN32KAPI 01219 VOID 01220 DDKAPI 01221 EngAcquireSemaphore( 01222 /*IN*/ HSEMAPHORE hsem); 01223 01224 #define FL_ZERO_MEMORY 0x00000001 01225 #define FL_NONPAGED_MEMORY 0x00000002 01226 01227 WIN32KAPI 01228 PVOID 01229 DDKAPI 01230 EngAllocMem( 01231 /*IN*/ ULONG Flags, 01232 /*IN*/ ULONG MemSize, 01233 /*IN*/ ULONG Tag); 01234 01235 WIN32KAPI 01236 PVOID 01237 DDKAPI 01238 EngAllocPrivateUserMem( 01239 /*IN*/ PDD_SURFACE_LOCAL psl, 01240 /*IN*/ SIZE_T cj, 01241 /*IN*/ ULONG tag); 01242 01243 WIN32KAPI 01244 PVOID 01245 DDKAPI 01246 EngAllocUserMem( 01247 /*IN*/ SIZE_T cj, 01248 /*IN*/ ULONG tag); 01249 01250 WIN32KAPI 01251 BOOL 01252 DDKAPI 01253 EngAlphaBlend( 01254 /*IN*/ SURFOBJ *psoDest, 01255 /*IN*/ SURFOBJ *psoSrc, 01256 /*IN*/ CLIPOBJ *pco, 01257 /*IN*/ XLATEOBJ *pxlo, 01258 /*IN*/ RECTL *prclDest, 01259 /*IN*/ RECTL *prclSrc, 01260 /*IN*/ BLENDOBJ *pBlendObj); 01261 01262 /* EngAssociateSurface.flHooks constants */ 01263 #define HOOK_BITBLT 0x00000001 01264 #define HOOK_STRETCHBLT 0x00000002 01265 #define HOOK_PLGBLT 0x00000004 01266 #define HOOK_TEXTOUT 0x00000008 01267 #define HOOK_PAINT 0x00000010 01268 #define HOOK_STROKEPATH 0x00000020 01269 #define HOOK_FILLPATH 0x00000040 01270 #define HOOK_STROKEANDFILLPATH 0x00000080 01271 #define HOOK_LINETO 0x00000100 01272 #define HOOK_COPYBITS 0x00000400 01273 #define HOOK_MOVEPANNING 0x00000800 01274 #define HOOK_SYNCHRONIZE 0x00001000 01275 #define HOOK_STRETCHBLTROP 0x00002000 01276 #define HOOK_SYNCHRONIZEACCESS 0x00004000 01277 #define HOOK_TRANSPARENTBLT 0x00008000 01278 #define HOOK_ALPHABLEND 0x00010000 01279 #define HOOK_GRADIENTFILL 0x00020000 01280 #define HOOK_FLAGS 0x0003b5ff 01281 01282 WIN32KAPI 01283 BOOL 01284 DDKAPI 01285 EngAssociateSurface( 01286 /*IN*/ HSURF hsurf, 01287 /*IN*/ HDEV hdev, 01288 /*IN*/ FLONG flHooks); 01289 01290 WIN32KAPI 01291 BOOL 01292 DDKAPI 01293 EngBitBlt( 01294 /*IN*/ SURFOBJ *psoTrg, 01295 /*IN*/ SURFOBJ *psoSrc, 01296 /*IN*/ SURFOBJ *psoMask, 01297 /*IN*/ CLIPOBJ *pco, 01298 /*IN*/ XLATEOBJ *pxlo, 01299 /*IN*/ RECTL *prclTrg, 01300 /*IN*/ POINTL *pptlSrc, 01301 /*IN*/ POINTL *pptlMask, 01302 /*IN*/ BRUSHOBJ *pbo, 01303 /*IN*/ POINTL *pptlBrush, 01304 /*IN*/ ROP4 rop4); 01305 01306 WIN32KAPI 01307 BOOL 01308 DDKAPI 01309 EngCheckAbort( 01310 /*IN*/ SURFOBJ *pso); 01311 01312 WIN32KAPI 01313 VOID 01314 DDKAPI 01315 EngClearEvent( 01316 /*IN*/ PEVENT pEvent); 01317 01318 WIN32KAPI 01319 FD_GLYPHSET* 01320 DDKAPI 01321 EngComputeGlyphSet( 01322 /*IN*/ INT nCodePage, 01323 /*IN*/ INT nFirstChar, 01324 /*IN*/ INT cChars); 01325 01326 /* EngControlSprites.fl constants */ 01327 #define ECS_TEARDOWN 0x00000001 01328 #define ECS_REDRAW 0x00000002 01329 01330 WIN32KAPI 01331 BOOL 01332 DDKAPI 01333 EngControlSprites( 01334 /*IN*/ WNDOBJ *pwo, 01335 /*IN*/ FLONG fl); 01336 01337 WIN32KAPI 01338 BOOL 01339 DDKAPI 01340 EngCopyBits( 01341 01342 /*OUT*/ SURFOBJ *psoDest, 01343 /*IN*/ SURFOBJ *psoSrc, 01344 /*IN*/ CLIPOBJ *pco, 01345 /*IN*/ XLATEOBJ *pxlo, 01346 /*IN*/ RECTL *prclDest, 01347 /*IN*/ POINTL *pptlSrc); 01348 01349 WIN32KAPI 01350 HBITMAP 01351 DDKAPI 01352 EngCreateBitmap( 01353 /*IN*/ SIZEL sizl, 01354 /*IN*/ LONG lWidth, 01355 /*IN*/ ULONG iFormat, 01356 /*IN*/ FLONG fl, 01357 /*IN*/ PVOID pvBits); 01358 01359 WIN32KAPI 01360 CLIPOBJ* 01361 DDKAPI 01362 EngCreateClip( 01363 VOID); 01364 01365 WIN32KAPI 01366 HBITMAP 01367 DDKAPI 01368 EngCreateDeviceBitmap( 01369 /*IN*/ DHSURF dhsurf, 01370 /*IN*/ SIZEL sizl, 01371 /*IN*/ ULONG iFormatCompat); 01372 01373 WIN32KAPI 01374 HSURF 01375 DDKAPI 01376 EngCreateDeviceSurface( 01377 DHSURF dhsurf, 01378 SIZEL sizl, 01379 ULONG iFormatCompat); 01380 01381 #if 0 01382 WIN32KAPI 01383 HDRVOBJ 01384 DDKAPI 01385 EngCreateDriverObj( 01386 PVOID pvObj, 01387 FREEOBJPROC pFreeObjProc, 01388 HDEV hdev); 01389 #endif 01390 01391 WIN32KAPI 01392 BOOL 01393 DDKAPI 01394 EngCreateEvent( 01395 01396 /*OUT*/ PEVENT *ppEvent); 01397 01398 /* EngCreatePalette.iMode constants */ 01399 #define PAL_INDEXED 0x00000001 01400 #define PAL_BITFIELDS 0x00000002 01401 #define PAL_RGB 0x00000004 01402 #define PAL_BGR 0x00000008 01403 #define PAL_CMYK 0x00000010 01404 01405 WIN32KAPI 01406 HPALETTE 01407 DDKAPI 01408 EngCreatePalette( 01409 /*IN*/ ULONG iMode, 01410 /*IN*/ ULONG cColors, 01411 /*IN*/ ULONG *pulColors, 01412 /*IN*/ FLONG flRed, 01413 /*IN*/ FLONG flGreen, 01414 /*IN*/ FLONG flBlue); 01415 01416 WIN32KAPI 01417 PATHOBJ* 01418 DDKAPI 01419 EngCreatePath( 01420 VOID); 01421 01422 WIN32KAPI 01423 HSEMAPHORE 01424 DDKAPI 01425 EngCreateSemaphore( 01426 VOID); 01427 01428 /* EngCreateWnd.fl constants */ 01429 #define WO_RGN_CLIENT_DELTA 0x00000001 01430 #define WO_RGN_CLIENT 0x00000002 01431 #define WO_RGN_SURFACE_DELTA 0x00000004 01432 #define WO_RGN_SURFACE 0x00000008 01433 #define WO_RGN_UPDATE_ALL 0x00000010 01434 #define WO_RGN_WINDOW 0x00000020 01435 #define WO_DRAW_NOTIFY 0x00000040 01436 #define WO_SPRITE_NOTIFY 0x00000080 01437 #define WO_RGN_DESKTOP_COORD 0x00000100 01438 01439 WIN32KAPI 01440 WNDOBJ* 01441 DDKAPI 01442 EngCreateWnd( 01443 SURFOBJ *pso, 01444 HWND hwnd, 01445 WNDOBJCHANGEPROC pfn, 01446 FLONG fl, 01447 int iPixelFormat); 01448 01449 WIN32KAPI 01450 VOID 01451 DDKAPI 01452 EngDebugBreak( 01453 VOID); 01454 01455 WIN32KAPI 01456 VOID 01457 DDKAPI 01458 EngDebugPrint( 01459 /*IN*/ PCHAR StandardPrefix, 01460 /*IN*/ PCHAR DebugMessage, 01461 /*IN*/ va_list ap); 01462 01463 WIN32KAPI 01464 VOID 01465 DDKAPI 01466 EngDeleteClip( 01467 /*IN*/ CLIPOBJ *pco); 01468 01469 WIN32KAPI 01470 BOOL 01471 DDKAPI 01472 EngDeleteDriverObj( 01473 /*IN*/ HDRVOBJ hdo, 01474 /*IN*/ BOOL bCallBack, 01475 /*IN*/ BOOL bLocked); 01476 01477 WIN32KAPI 01478 BOOL 01479 DDKAPI 01480 EngDeleteEvent( 01481 /*IN*/ PEVENT pEvent); 01482 01483 WIN32KAPI 01484 BOOL 01485 DDKAPI 01486 EngDeleteFile( 01487 /*IN*/ LPWSTR pwszFileName); 01488 01489 WIN32KAPI 01490 BOOL 01491 DDKAPI 01492 EngDeletePalette( 01493 /*IN*/ HPALETTE hpal); 01494 01495 WIN32KAPI 01496 VOID 01497 DDKAPI 01498 EngDeletePath( 01499 /*IN*/ PATHOBJ *ppo); 01500 01501 WIN32KAPI 01502 VOID 01503 DDKAPI 01504 EngDeleteSafeSemaphore( 01505 /*IN OUT*/ ENGSAFESEMAPHORE *pssem); 01506 01507 WIN32KAPI 01508 VOID 01509 DDKAPI 01510 EngDeleteSemaphore( 01511 /*IN OUT*/ HSEMAPHORE hsem); 01512 01513 WIN32KAPI 01514 BOOL 01515 DDKAPI 01516 EngDeleteSurface( 01517 /*IN*/ HSURF hsurf); 01518 01519 WIN32KAPI 01520 VOID 01521 DDKAPI 01522 EngDeleteWnd( 01523 /*IN*/ WNDOBJ *pwo); 01524 01525 WIN32KAPI 01526 DWORD 01527 DDKAPI 01528 EngDeviceIoControl( 01529 /*IN*/ HANDLE hDevice, 01530 /*IN*/ DWORD dwIoControlCode, 01531 /*IN*/ LPVOID lpInBuffer, 01532 /*IN*/ DWORD nInBufferSize, 01533 /*IN OUT*/ LPVOID lpOutBuffer, 01534 /*IN*/ DWORD nOutBufferSize, 01535 01536 /*OUT*/ LPDWORD lpBytesReturned); 01537 01538 WIN32KAPI 01539 ULONG 01540 DDKAPI 01541 EngDitherColor( 01542 /*IN*/ HDEV hdev, 01543 /*IN*/ ULONG iMode, 01544 /*IN*/ ULONG rgb, 01545 01546 /*OUT*/ ULONG *pul); 01547 01548 WIN32KAPI 01549 BOOL 01550 DDKAPI 01551 EngEnumForms( 01552 /*IN*/ HANDLE hPrinter, 01553 /*IN*/ DWORD Level, 01554 01555 /*OUT*/ LPBYTE pForm, 01556 /*IN*/ DWORD cbBuf, 01557 01558 /*OUT*/ LPDWORD pcbNeeded, 01559 01560 /*OUT*/ LPDWORD pcReturned); 01561 01562 WIN32KAPI 01563 BOOL 01564 DDKAPI 01565 EngEraseSurface( 01566 /*IN*/ SURFOBJ *pso, 01567 /*IN*/ RECTL *prcl, 01568 /*IN*/ ULONG iColor); 01569 01570 WIN32KAPI 01571 BOOL 01572 DDKAPI 01573 EngFillPath( 01574 /*IN*/ SURFOBJ *pso, 01575 /*IN*/ PATHOBJ *ppo, 01576 /*IN*/ CLIPOBJ *pco, 01577 /*IN*/ BRUSHOBJ *pbo, 01578 /*IN*/ POINTL *pptlBrushOrg, 01579 /*IN*/ MIX mix, 01580 /*IN*/ FLONG flOptions); 01581 01582 WIN32KAPI 01583 PVOID 01584 DDKAPI 01585 EngFindImageProcAddress( 01586 /*IN*/ HANDLE hModule, 01587 /*IN*/ LPSTR lpProcName); 01588 01589 WIN32KAPI 01590 PVOID 01591 DDKAPI 01592 EngFindResource( 01593 /*IN*/ HANDLE h, 01594 /*IN*/ int iName, 01595 /*IN*/ int iType, 01596 01597 /*OUT*/ PULONG pulSize); 01598 01599 WIN32KAPI 01600 PVOID 01601 DDKAPI 01602 EngFntCacheAlloc( 01603 /*IN*/ ULONG FastCheckSum, 01604 /*IN*/ ULONG ulSize); 01605 01606 /* EngFntCacheFault.iFaultMode constants */ 01607 #define ENG_FNT_CACHE_READ_FAULT 0x00000001 01608 #define ENG_FNT_CACHE_WRITE_FAULT 0x00000002 01609 01610 WIN32KAPI 01611 VOID 01612 DDKAPI 01613 EngFntCacheFault( 01614 /*IN*/ ULONG ulFastCheckSum, 01615 /*IN*/ ULONG iFaultMode); 01616 01617 WIN32KAPI 01618 PVOID 01619 DDKAPI 01620 EngFntCacheLookUp( 01621 /*IN*/ ULONG FastCheckSum, 01622 01623 /*OUT*/ ULONG *pulSize); 01624 01625 WIN32KAPI 01626 VOID 01627 DDKAPI 01628 EngFreeMem( 01629 /*IN*/ PVOID Mem); 01630 01631 WIN32KAPI 01632 VOID 01633 DDKAPI 01634 EngFreeModule( 01635 /*IN*/ HANDLE h); 01636 01637 WIN32KAPI 01638 VOID 01639 DDKAPI 01640 EngFreePrivateUserMem( 01641 /*IN*/ PDD_SURFACE_LOCAL psl, 01642 /*IN*/ PVOID pv); 01643 01644 WIN32KAPI 01645 VOID 01646 DDKAPI 01647 EngFreeUserMem( 01648 /*IN*/ PVOID pv); 01649 01650 WIN32KAPI 01651 VOID 01652 DDKAPI 01653 EngGetCurrentCodePage( 01654 01655 /*OUT*/ PUSHORT OemCodePage, 01656 01657 /*OUT*/ PUSHORT AnsiCodePage); 01658 01659 WIN32KAPI 01660 HANDLE 01661 DDKAPI 01662 EngGetCurrentProcessId( 01663 VOID); 01664 01665 WIN32KAPI 01666 HANDLE 01667 DDKAPI 01668 EngGetCurrentThreadId( 01669 VOID); 01670 01671 WIN32KAPI 01672 LPWSTR 01673 DDKAPI 01674 EngGetDriverName( 01675 /*IN*/ HDEV hdev); 01676 01677 WIN32KAPI 01678 BOOL 01679 DDKAPI 01680 EngGetFileChangeTime( 01681 /*IN*/ HANDLE h, 01682 01683 /*OUT*/ LARGE_INTEGER *pChangeTime); 01684 01685 WIN32KAPI 01686 BOOL 01687 DDKAPI 01688 EngGetFilePath( 01689 /*IN*/ HANDLE h, 01690 01691 /*OUT*/ WCHAR (*pDest)[MAX_PATH+1]); 01692 01693 WIN32KAPI 01694 BOOL 01695 DDKAPI 01696 EngGetForm( 01697 /*IN*/ HANDLE hPrinter, 01698 /*IN*/ LPWSTR pFormName, 01699 /*IN*/ DWORD Level, 01700 01701 /*OUT*/ LPBYTE pForm, 01702 /*IN*/ DWORD cbBuf, 01703 01704 /*OUT*/ LPDWORD pcbNeeded); 01705 01706 WIN32KAPI 01707 ULONG 01708 DDKAPI 01709 EngGetLastError( 01710 VOID); 01711 01712 WIN32KAPI 01713 BOOL 01714 DDKAPI 01715 EngGetPrinter( 01716 /*IN*/ HANDLE hPrinter, 01717 /*IN*/ DWORD dwLevel, 01718 01719 /*OUT*/ LPBYTE pPrinter, 01720 /*IN*/ DWORD cbBuf, 01721 01722 /*OUT*/ LPDWORD pcbNeeded); 01723 01724 WIN32KAPI 01725 DWORD 01726 DDKAPI 01727 EngGetPrinterData( 01728 /*IN*/ HANDLE hPrinter, 01729 /*IN*/ LPWSTR pValueName, 01730 01731 /*OUT*/ LPDWORD pType, 01732 01733 /*OUT*/ LPBYTE pData, 01734 /*IN*/ DWORD nSize, 01735 01736 /*OUT*/ LPDWORD pcbNeeded); 01737 01738 WIN32KAPI 01739 LPWSTR 01740 DDKAPI 01741 EngGetPrinterDataFileName( 01742 /*IN*/ HDEV hdev); 01743 01744 WIN32KAPI 01745 BOOL 01746 DDKAPI 01747 EngGetPrinterDriver( 01748 /*IN*/ HANDLE hPrinter, 01749 /*IN*/ LPWSTR pEnvironment, 01750 /*IN*/ DWORD dwLevel, 01751 01752 /*OUT*/ BYTE *lpbDrvInfo, 01753 /*IN*/ DWORD cbBuf, 01754 01755 /*OUT*/ DWORD *pcbNeeded); 01756 01757 WIN32KAPI 01758 HANDLE 01759 DDKAPI 01760 EngGetProcessHandle( 01761 VOID); 01762 01763 WIN32KAPI 01764 BOOL 01765 DDKAPI 01766 EngGetType1FontList( 01767 /*IN*/ HDEV hdev, 01768 01769 /*OUT*/ TYPE1_FONT *pType1Buffer, 01770 /*IN*/ ULONG cjType1Buffer, 01771 01772 /*OUT*/ PULONG pulLocalFonts, 01773 01774 /*OUT*/ PULONG pulRemoteFonts, 01775 01776 /*OUT*/ LARGE_INTEGER *pLastModified); 01777 01778 WIN32KAPI 01779 BOOL 01780 DDKAPI 01781 EngGradientFill( 01782 /*IN*/ SURFOBJ *psoDest, 01783 /*IN*/ CLIPOBJ *pco, 01784 /*IN*/ XLATEOBJ *pxlo, 01785 /*IN*/ TRIVERTEX *pVertex, 01786 /*IN*/ ULONG nVertex, 01787 /*IN*/ PVOID pMesh, 01788 /*IN*/ ULONG nMesh, 01789 /*IN*/ RECTL *prclExtents, 01790 /*IN*/ POINTL *pptlDitherOrg, 01791 /*IN*/ ULONG ulMode); 01792 01793 /* EngHangNotification return values */ 01794 #define EHN_RESTORED 0x00000000 01795 #define EHN_ERROR 0x00000001 01796 01797 WIN32KAPI 01798 ULONG 01799 DDKAPI 01800 EngHangNotification( 01801 /*IN*/ HDEV hDev, 01802 /*IN*/ PVOID Reserved); 01803 01804 WIN32KAPI 01805 BOOL 01806 DDKAPI 01807 EngInitializeSafeSemaphore( 01808 01809 /*OUT*/ ENGSAFESEMAPHORE *pssem); 01810 01811 WIN32KAPI 01812 BOOL 01813 DDKAPI 01814 EngIsSemaphoreOwned( 01815 /*IN*/ HSEMAPHORE hsem); 01816 01817 WIN32KAPI 01818 BOOL 01819 DDKAPI 01820 EngIsSemaphoreOwnedByCurrentThread( 01821 /*IN*/ HSEMAPHORE hsem); 01822 01823 WIN32KAPI 01824 BOOL 01825 DDKAPI 01826 EngLineTo( 01827 SURFOBJ *pso, 01828 CLIPOBJ *pco, 01829 BRUSHOBJ *pbo, 01830 LONG x1, 01831 LONG y1, 01832 LONG x2, 01833 LONG y2, 01834 RECTL *prclBounds, 01835 MIX mix); 01836 01837 WIN32KAPI 01838 HANDLE 01839 DDKAPI 01840 EngLoadImage( 01841 /*IN*/ LPWSTR pwszDriver); 01842 01843 WIN32KAPI 01844 HANDLE 01845 DDKAPI 01846 EngLoadModule( 01847 /*IN*/ LPWSTR pwsz); 01848 01849 WIN32KAPI 01850 HANDLE 01851 DDKAPI 01852 EngLoadModuleForWrite( 01853 /*IN*/ LPWSTR pwsz, 01854 /*IN*/ ULONG cjSizeOfModule); 01855 01856 WIN32KAPI 01857 PDD_SURFACE_LOCAL 01858 DDKAPI 01859 EngLockDirectDrawSurface( 01860 /*IN*/ HANDLE hSurface); 01861 01862 WIN32KAPI 01863 DRIVEROBJ* 01864 DDKAPI 01865 EngLockDriverObj( 01866 /*IN*/ HDRVOBJ hdo); 01867 01868 WIN32KAPI 01869 SURFOBJ* 01870 DDKAPI 01871 EngLockSurface( 01872 /*IN*/ HSURF hsurf); 01873 01874 WIN32KAPI 01875 BOOL 01876 DDKAPI 01877 EngLpkInstalled( 01878 VOID); 01879 01880 WIN32KAPI 01881 PEVENT 01882 DDKAPI 01883 EngMapEvent( 01884 /*IN*/ HDEV hDev, 01885 /*IN*/ HANDLE hUserObject, 01886 /*IN*/ PVOID Reserved1, 01887 /*IN*/ PVOID Reserved2, 01888 /*IN*/ PVOID Reserved3); 01889 01890 WIN32KAPI 01891 PVOID 01892 DDKAPI 01893 EngMapFile( 01894 /*IN*/ LPWSTR pwsz, 01895 /*IN*/ ULONG cjSize, 01896 01897 /*OUT*/ ULONG_PTR *piFile); 01898 01899 WIN32KAPI 01900 BOOL 01901 DDKAPI 01902 EngMapFontFile( 01903 ULONG_PTR iFile, 01904 PULONG *ppjBuf, 01905 ULONG *pcjBuf); 01906 01907 WIN32KAPI 01908 BOOL 01909 DDKAPI 01910 EngMapFontFileFD( 01911 /*IN*/ ULONG_PTR iFile, 01912 01913 /*OUT*/ PULONG *ppjBuf, 01914 01915 /*OUT*/ ULONG *pcjBuf); 01916 01917 WIN32KAPI 01918 PVOID 01919 DDKAPI 01920 EngMapModule( 01921 /*IN*/ HANDLE h, 01922 01923 /*OUT*/ PULONG pSize); 01924 01925 WIN32KAPI 01926 BOOL 01927 DDKAPI 01928 EngMarkBandingSurface( 01929 /*IN*/ HSURF hsurf); 01930 01931 /* EngModifySurface.flSurface constants */ 01932 #define MS_NOTSYSTEMMEMORY 0x00000001 01933 #define MS_SHAREDACCESS 0x00000002 01934 01935 WIN32KAPI 01936 BOOL 01937 DDKAPI 01938 EngModifySurface( 01939 /*IN*/ HSURF hsurf, 01940 /*IN*/ HDEV hdev, 01941 /*IN*/ FLONG flHooks, 01942 /*IN*/ FLONG flSurface, 01943 /*IN*/ DHSURF dhsurf, 01944 /*IN*/ VOID *pvScan0, 01945 /*IN*/ LONG lDelta, 01946 /*IN*/ VOID *pvReserved); 01947 01948 WIN32KAPI 01949 VOID 01950 DDKAPI 01951 EngMovePointer( 01952 /*IN*/ SURFOBJ *pso, 01953 /*IN*/ LONG x, 01954 /*IN*/ LONG y, 01955 /*IN*/ RECTL *prcl); 01956 01957 WIN32KAPI 01958 int 01959 DDKAPI 01960 EngMulDiv( 01961 /*IN*/ int a, 01962 /*IN*/ int b, 01963 /*IN*/ int c); 01964 01965 WIN32KAPI 01966 VOID 01967 DDKAPI 01968 EngMultiByteToUnicodeN( 01969 01970 /*OUT*/ LPWSTR UnicodeString, 01971 /*IN*/ ULONG MaxBytesInUnicodeString, 01972 01973 /*OUT*/ PULONG BytesInUnicodeString, 01974 /*IN*/ PCHAR MultiByteString, 01975 /*IN*/ ULONG BytesInMultiByteString); 01976 01977 WIN32KAPI 01978 INT 01979 DDKAPI 01980 EngMultiByteToWideChar( 01981 /*IN*/ UINT CodePage, 01982 01983 /*OUT*/ LPWSTR WideCharString, 01984 /*IN*/ INT BytesInWideCharString, 01985 /*IN*/ LPSTR MultiByteString, 01986 /*IN*/ INT BytesInMultiByteString); 01987 01988 WIN32KAPI 01989 BOOL 01990 DDKAPI 01991 EngPaint( 01992 /*IN*/ SURFOBJ *pso, 01993 /*IN*/ CLIPOBJ *pco, 01994 /*IN*/ BRUSHOBJ *pbo, 01995 /*IN*/ POINTL *pptlBrushOrg, 01996 /*IN*/ MIX mix); 01997 01998 WIN32KAPI 01999 BOOL 02000 DDKAPI 02001 EngPlgBlt( 02002 /*IN*/ SURFOBJ *psoTrg, 02003 /*IN*/ SURFOBJ *psoSrc, 02004 /*IN*/ SURFOBJ *psoMsk, 02005 /*IN*/ CLIPOBJ *pco, 02006 /*IN*/ XLATEOBJ *pxlo, 02007 /*IN*/ COLORADJUSTMENT *pca, 02008 /*IN*/ POINTL *pptlBrushOrg, 02009 /*IN*/ POINTFIX *pptfx, 02010 /*IN*/ RECTL *prcl, 02011 /*IN*/ POINTL *pptl, 02012 /*IN*/ ULONG iMode); 02013 02014 WIN32KAPI 02015 VOID 02016 DDKAPI 02017 EngProbeForRead( 02018 /*IN*/ PVOID Address, 02019 /*IN*/ ULONG Length, 02020 /*IN*/ ULONG Alignment); 02021 02022 WIN32KAPI 02023 VOID 02024 DDKAPI 02025 EngProbeForReadAndWrite( 02026 /*IN*/ PVOID Address, 02027 /*IN*/ ULONG Length, 02028 /*IN*/ ULONG Alignment); 02029 02030 typedef enum _ENG_DEVICE_ATTRIBUTE { 02031 QDA_RESERVED = 0, 02032 QDA_ACCELERATION_LEVEL 02033 } ENG_DEVICE_ATTRIBUTE; 02034 02035 WIN32KAPI 02036 BOOL 02037 DDKAPI 02038 EngQueryDeviceAttribute( 02039 /*IN*/ HDEV hdev, 02040 /*IN*/ ENG_DEVICE_ATTRIBUTE devAttr, 02041 /*IN*/ VOID *pvIn, 02042 /*IN*/ ULONG ulInSize, 02043 02044 /*OUT*/ VOID *pvOut, 02045 02046 /*OUT*/ ULONG ulOutSize); 02047 02048 WIN32KAPI 02049 LARGE_INTEGER 02050 DDKAPI 02051 EngQueryFileTimeStamp( 02052 /*IN*/ LPWSTR pwsz); 02053 02054 WIN32KAPI 02055 VOID 02056 DDKAPI 02057 EngQueryLocalTime( 02058 02059 /*OUT*/ PENG_TIME_FIELDS ptf); 02060 02061 WIN32KAPI 02062 ULONG 02063 DDKAPI 02064 EngQueryPalette( 02065 /*IN*/ HPALETTE hPal, 02066 02067 /*OUT*/ ULONG *piMode, 02068 /*IN*/ ULONG cColors, 02069 02070 /*OUT*/ ULONG *pulColors); 02071 02072 WIN32KAPI 02073 VOID 02074 DDKAPI 02075 EngQueryPerformanceCounter( 02076 02077 /*OUT*/ LONGLONG *pPerformanceCount); 02078 02079 WIN32KAPI 02080 VOID 02081 DDKAPI 02082 EngQueryPerformanceFrequency( 02083 02084 /*OUT*/ LONGLONG *pFrequency); 02085 02086 typedef enum _ENG_SYSTEM_ATTRIBUTE { 02087 EngProcessorFeature = 1, 02088 EngNumberOfProcessors, 02089 EngOptimumAvailableUserMemory, 02090 EngOptimumAvailableSystemMemory, 02091 } ENG_SYSTEM_ATTRIBUTE; 02092 02093 #define QSA_MMX 0x00000100 02094 #define QSA_SSE 0x00002000 02095 #define QSA_3DNOW 0x00004000 02096 02097 WIN32KAPI 02098 BOOL 02099 DDKAPI 02100 EngQuerySystemAttribute( 02101 /*IN*/ ENG_SYSTEM_ATTRIBUTE CapNum, 02102 02103 /*OUT*/ PDWORD pCapability); 02104 02105 WIN32KAPI 02106 LONG 02107 DDKAPI 02108 EngReadStateEvent( 02109 /*IN*/ PEVENT pEvent); 02110 02111 WIN32KAPI 02112 VOID 02113 DDKAPI 02114 EngReleaseSemaphore( 02115 /*IN*/ HSEMAPHORE hsem); 02116 02117 WIN32KAPI 02118 BOOL 02119 DDKAPI 02120 EngRestoreFloatingPointState( 02121 /*IN*/ VOID *pBuffer); 02122 02123 WIN32KAPI 02124 ULONG 02125 DDKAPI 02126 EngSaveFloatingPointState( 02127 02128 /*OUT*/ VOID *pBuffer, 02129 /*IN*/ ULONG cjBufferSize); 02130 02131 WIN32KAPI 02132 HANDLE 02133 DDKAPI 02134 EngSecureMem( 02135 /*IN*/ PVOID Address, 02136 /*IN*/ ULONG Length); 02137 02138 WIN32KAPI 02139 LONG 02140 DDKAPI 02141 EngSetEvent( 02142 /*IN*/ PEVENT pEvent); 02143 02144 WIN32KAPI 02145 VOID 02146 DDKAPI 02147 EngSetLastError( 02148 /*IN*/ ULONG iError); 02149 02150 WIN32KAPI 02151 ULONG 02152 DDKAPI 02153 EngSetPointerShape( 02154 /*IN*/ SURFOBJ *pso, 02155 /*IN*/ SURFOBJ *psoMask, 02156 /*IN*/ SURFOBJ *psoColor, 02157 /*IN*/ XLATEOBJ *pxlo, 02158 /*IN*/ LONG xHot, 02159 /*IN*/ LONG yHot, 02160 /*IN*/ LONG x, 02161 /*IN*/ LONG y, 02162 /*IN*/ RECTL *prcl, 02163 /*IN*/ FLONG fl); 02164 02165 WIN32KAPI 02166 BOOL 02167 DDKAPI 02168 EngSetPointerTag( 02169 /*IN*/ HDEV hdev, 02170 /*IN*/ SURFOBJ *psoMask, 02171 /*IN*/ SURFOBJ *psoColor, 02172 /*IN*/ XLATEOBJ *pxlo, 02173 /*IN*/ FLONG fl); 02174 02175 WIN32KAPI 02176 DWORD 02177 DDKAPI 02178 EngSetPrinterData( 02179 /*IN*/ HANDLE hPrinter, 02180 /*IN*/ LPWSTR pType, 02181 /*IN*/ DWORD dwType, 02182 /*IN*/ LPBYTE lpbPrinterData, 02183 /*IN*/ DWORD cjPrinterData); 02184 02185 typedef int DDKCDECLAPI (*SORTCOMP)(const void *pv1, const void *pv2); 02186 02187 WIN32KAPI 02188 VOID 02189 DDKAPI 02190 EngSort( 02191 /*IN OUT*/ PBYTE pjBuf, 02192 /*IN*/ ULONG c, 02193 /*IN*/ ULONG cjElem, 02194 /*IN*/ SORTCOMP pfnComp); 02195 02196 WIN32KAPI 02197 BOOL 02198 DDKAPI 02199 EngStretchBlt( 02200 /*IN*/ SURFOBJ *psoDest, 02201 /*IN*/ SURFOBJ *psoSrc, 02202 /*IN*/ SURFOBJ *psoMask, 02203 /*IN*/ CLIPOBJ *pco, 02204 /*IN*/ XLATEOBJ *pxlo, 02205 /*IN*/ COLORADJUSTMENT *pca, 02206 /*IN*/ POINTL *pptlHTOrg, 02207 /*IN*/ RECTL *prclDest, 02208 /*IN*/ RECTL *prclSrc, 02209 /*IN*/ POINTL *pptlMask, 02210 /*IN*/ ULONG iMode); 02211 02212 WIN32KAPI 02213 BOOL 02214 DDKAPI 02215 EngStretchBltROP( 02216 /*IN*/ SURFOBJ *psoDest, 02217 /*IN*/ SURFOBJ *psoSrc, 02218 /*IN*/ SURFOBJ *psoMask, 02219 /*IN*/ CLIPOBJ *pco, 02220 /*IN*/ XLATEOBJ *pxlo, 02221 /*IN*/ COLORADJUSTMENT *pca, 02222 /*IN*/ POINTL *pptlHTOrg, 02223 /*IN*/ RECTL *prclDest, 02224 /*IN*/ RECTL *prclSrc, 02225 /*IN*/ POINTL *pptlMask, 02226 /*IN*/ ULONG iMode, 02227 /*IN*/ BRUSHOBJ *pbo, 02228 /*IN*/ DWORD rop4); 02229 02230 WIN32KAPI 02231 BOOL 02232 DDKAPI 02233 EngStrokeAndFillPath( 02234 /*IN*/ SURFOBJ *pso, 02235 /*IN*/ PATHOBJ *ppo, 02236 /*IN*/ CLIPOBJ *pco, 02237 /*IN*/ XFORMOBJ *pxo, 02238 /*IN*/ BRUSHOBJ *pboStroke, 02239 /*IN*/ LINEATTRS *plineattrs, 02240 /*IN*/ BRUSHOBJ *pboFill, 02241 /*IN*/ POINTL *pptlBrushOrg, 02242 /*IN*/ MIX mixFill, 02243 /*IN*/ FLONG flOptions); 02244 02245 WIN32KAPI 02246 BOOL 02247 DDKAPI 02248 EngStrokePath( 02249 /*IN*/ SURFOBJ *pso, 02250 /*IN*/ PATHOBJ *ppo, 02251 /*IN*/ CLIPOBJ *pco, 02252 /*IN*/ XFORMOBJ *pxo, 02253 /*IN*/ BRUSHOBJ *pbo, 02254 /*IN*/ POINTL *pptlBrushOrg, 02255 /*IN*/ LINEATTRS *plineattrs, 02256 /*IN*/ MIX mix); 02257 02258 WIN32KAPI 02259 BOOL 02260 DDKAPI 02261 EngTextOut( 02262 /*IN*/ SURFOBJ *pso, 02263 /*IN*/ STROBJ *pstro, 02264 /*IN*/ FONTOBJ *pfo, 02265 /*IN*/ CLIPOBJ *pco, 02266 /*IN*/ RECTL *prclExtra, 02267 /*IN*/ RECTL *prclOpaque, 02268 /*IN*/ BRUSHOBJ *pboFore, 02269 /*IN*/ BRUSHOBJ *pboOpaque, 02270 /*IN*/ POINTL *pptlOrg, 02271 /*IN*/ MIX mix); 02272 02273 WIN32KAPI 02274 BOOL 02275 DDKAPI 02276 EngTransparentBlt( 02277 /*IN*/ SURFOBJ *psoDst, 02278 /*IN*/ SURFOBJ *psoSrc, 02279 /*IN*/ CLIPOBJ *pco, 02280 /*IN*/ XLATEOBJ *pxlo, 02281 /*IN*/ RECTL *prclDst, 02282 /*IN*/ RECTL *prclSrc, 02283 /*IN*/ ULONG iTransColor, 02284 /*IN*/ ULONG ulReserved); 02285 02286 WIN32KAPI 02287 VOID 02288 DDKAPI 02289 EngUnicodeToMultiByteN( 02290 02291 /*OUT*/ PCHAR MultiByteString, 02292 /*IN*/ ULONG MaxBytesInMultiByteString, 02293 02294 /*OUT*/ PULONG BytesInMultiByteString, 02295 /*IN*/ PWSTR UnicodeString, 02296 /*IN*/ ULONG BytesInUnicodeString); 02297 02298 WIN32KAPI 02299 VOID 02300 DDKAPI 02301 EngUnloadImage( 02302 /*IN*/ HANDLE hModule); 02303 02304 WIN32KAPI 02305 BOOL 02306 DDKAPI 02307 EngUnlockDirectDrawSurface( 02308 /*IN*/ PDD_SURFACE_LOCAL pSurface); 02309 02310 WIN32KAPI 02311 BOOL 02312 DDKAPI 02313 EngUnlockDriverObj( 02314 /*IN*/ HDRVOBJ hdo); 02315 02316 WIN32KAPI 02317 VOID 02318 DDKAPI 02319 EngUnlockSurface( 02320 /*IN*/ SURFOBJ *pso); 02321 02322 WIN32KAPI 02323 BOOL 02324 DDKAPI 02325 EngUnmapEvent( 02326 /*IN*/ PEVENT pEvent); 02327 02328 WIN32KAPI 02329 BOOL 02330 DDKAPI 02331 EngUnmapFile( 02332 /*IN*/ ULONG_PTR iFile); 02333 02334 WIN32KAPI 02335 VOID 02336 DDKAPI 02337 EngUnmapFontFile( 02338 ULONG_PTR iFile); 02339 02340 WIN32KAPI 02341 VOID 02342 DDKAPI 02343 EngUnmapFontFileFD( 02344 /*IN*/ ULONG_PTR iFile); 02345 02346 WIN32KAPI 02347 VOID 02348 DDKAPI 02349 EngUnsecureMem( 02350 /*IN*/ HANDLE hSecure); 02351 02352 WIN32KAPI 02353 BOOL 02354 DDKAPI 02355 EngWaitForSingleObject( 02356 /*IN*/ PEVENT pEvent, 02357 /*IN*/ PLARGE_INTEGER pTimeOut); 02358 02359 WIN32KAPI 02360 INT 02361 DDKAPI 02362 EngWideCharToMultiByte( 02363 /*IN*/ UINT CodePage, 02364 /*IN*/ LPWSTR WideCharString, 02365 /*IN*/ INT BytesInWideCharString, 02366 02367 /*OUT*/ LPSTR MultiByteString, 02368 /*IN*/ INT BytesInMultiByteString); 02369 02370 WIN32KAPI 02371 BOOL 02372 DDKAPI 02373 EngWritePrinter( 02374 /*IN*/ HANDLE hPrinter, 02375 /*IN*/ LPVOID pBuf, 02376 /*IN*/ DWORD cbBuf, 02377 02378 /*OUT*/ LPDWORD pcWritten); 02379 02380 WIN32KAPI 02381 VOID 02382 DDKAPI 02383 FLOATOBJ_Add( 02384 /*IN OUT*/ PFLOATOBJ pf, 02385 /*IN*/ PFLOATOBJ pf1); 02386 02387 WIN32KAPI 02388 VOID 02389 DDKAPI 02390 FLOATOBJ_AddFloat( 02391 /*IN OUT*/ PFLOATOBJ pf, 02392 /*IN*/ FLOATL f); 02393 02394 WIN32KAPI 02395 VOID 02396 DDKAPI 02397 FLOATOBJ_AddLong( 02398 /*IN OUT*/ PFLOATOBJ pf, 02399 /*IN*/ LONG l); 02400 02401 WIN32KAPI 02402 VOID 02403 DDKAPI 02404 FLOATOBJ_Div( 02405 /*IN OUT*/ PFLOATOBJ pf, 02406 /*IN*/ PFLOATOBJ pf1); 02407 02408 WIN32KAPI 02409 VOID 02410 DDKAPI 02411 FLOATOBJ_DivFloat( 02412 /*IN OUT*/ PFLOATOBJ pf, 02413 /*IN*/ FLOATL f); 02414 02415 WIN32KAPI 02416 VOID 02417 DDKAPI 02418 FLOATOBJ_DivLong( 02419 /*IN OUT*/ PFLOATOBJ pf, 02420 /*IN*/ LONG l); 02421 02422 WIN32KAPI 02423 BOOL 02424 DDKAPI 02425 FLOATOBJ_Equal( 02426 /*IN*/ PFLOATOBJ pf, 02427 /*IN*/ PFLOATOBJ pf1); 02428 02429 WIN32KAPI 02430 BOOL 02431 DDKAPI 02432 FLOATOBJ_EqualLong( 02433 /*IN*/ PFLOATOBJ pf, 02434 /*IN*/ LONG l); 02435 02436 WIN32KAPI 02437 LONG 02438 DDKAPI 02439 FLOATOBJ_GetFloat( 02440 /*IN*/ PFLOATOBJ pf); 02441 02442 WIN32KAPI 02443 LONG 02444 DDKAPI 02445 FLOATOBJ_GetLong( 02446 /*IN*/ PFLOATOBJ pf); 02447 02448 WIN32KAPI 02449 BOOL 02450 DDKAPI 02451 FLOATOBJ_GreaterThan( 02452 /*IN*/ PFLOATOBJ pf, 02453 /*IN*/ PFLOATOBJ pf1); 02454 02455 WIN32KAPI 02456 BOOL 02457 DDKAPI 02458 FLOATOBJ_GreaterThanLong( 02459 /*IN*/ PFLOATOBJ pf, 02460 /*IN*/ LONG l); 02461 02462 WIN32KAPI 02463 BOOL 02464 DDKAPI 02465 FLOATOBJ_LessThan( 02466 /*IN*/ PFLOATOBJ pf, 02467 /*IN*/ PFLOATOBJ pf1); 02468 02469 WIN32KAPI 02470 BOOL 02471 DDKAPI 02472 FLOATOBJ_LessThanLong( 02473 /*IN*/ PFLOATOBJ pf, 02474 /*IN*/ LONG l); 02475 02476 WIN32KAPI 02477 VOID 02478 DDKAPI 02479 FLOATOBJ_Mul( 02480 /*IN OUT*/ PFLOATOBJ pf, 02481 /*IN*/ PFLOATOBJ pf1); 02482 02483 WIN32KAPI 02484 VOID 02485 DDKAPI 02486 FLOATOBJ_MulFloat( 02487 /*IN OUT*/ PFLOATOBJ pf, 02488 /*IN*/ FLOATL f); 02489 02490 WIN32KAPI 02491 VOID 02492 DDKAPI 02493 FLOATOBJ_MulLong( 02494 /*IN OUT*/ PFLOATOBJ pf, 02495 /*IN*/ LONG l); 02496 02497 WIN32KAPI 02498 VOID 02499 DDKAPI 02500 FLOATOBJ_Neg( 02501 /*IN OUT*/ PFLOATOBJ pf); 02502 02503 WIN32KAPI 02504 VOID 02505 DDKAPI 02506 FLOATOBJ_SetFloat( 02507 02508 /*OUT*/ PFLOATOBJ pf, 02509 /*IN*/ FLOATL f); 02510 02511 WIN32KAPI 02512 VOID 02513 DDKAPI 02514 FLOATOBJ_SetLong( 02515 02516 /*OUT*/ PFLOATOBJ pf, 02517 /*IN*/ LONG l); 02518 02519 WIN32KAPI 02520 VOID 02521 DDKAPI 02522 FLOATOBJ_Sub( 02523 /*IN OUT*/ PFLOATOBJ pf, 02524 /*IN*/ PFLOATOBJ pf1); 02525 02526 WIN32KAPI 02527 VOID 02528 DDKAPI 02529 FLOATOBJ_SubFloat( 02530 /*IN OUT*/ PFLOATOBJ pf, 02531 /*IN*/ FLOATL f); 02532 02533 WIN32KAPI 02534 VOID 02535 DDKAPI 02536 FLOATOBJ_SubLong( 02537 /*IN OUT*/ PFLOATOBJ pf, 02538 /*IN*/ LONG l); 02539 02540 WIN32KAPI 02541 ULONG 02542 DDKAPI 02543 FONTOBJ_cGetAllGlyphHandles( 02544 /*IN*/ FONTOBJ *pfo, 02545 02546 /*OUT*/ HGLYPH *phg); 02547 02548 WIN32KAPI 02549 ULONG 02550 DDKAPI 02551 FONTOBJ_cGetGlyphs( 02552 /*IN*/ FONTOBJ *pfo, 02553 /*IN*/ ULONG iMode, 02554 /*IN*/ ULONG cGlyph, 02555 /*IN*/ HGLYPH *phg, 02556 02557 /*OUT*/ PVOID *ppvGlyph); 02558 02559 WIN32KAPI 02560 FD_GLYPHSET* 02561 DDKAPI 02562 FONTOBJ_pfdg( 02563 /*IN*/ FONTOBJ *pfo); 02564 02565 WIN32KAPI 02566 IFIMETRICS* 02567 DDKAPI 02568 FONTOBJ_pifi( 02569 /*IN*/ FONTOBJ *pfo); 02570 02571 WIN32KAPI 02572 PBYTE 02573 DDKAPI 02574 FONTOBJ_pjOpenTypeTablePointer( 02575 /*IN*/ FONTOBJ *pfo, 02576 /*IN*/ ULONG ulTag, 02577 02578 /*OUT*/ ULONG *pcjTable); 02579 02580 WIN32KAPI 02581 PFD_GLYPHATTR 02582 DDKAPI 02583 FONTOBJ_pQueryGlyphAttrs( 02584 /*IN*/ FONTOBJ *pfo, 02585 /*IN*/ ULONG iMode); 02586 02587 WIN32KAPI 02588 PVOID 02589 DDKAPI 02590 FONTOBJ_pvTrueTypeFontFile( 02591 /*IN*/ FONTOBJ *pfo, 02592 02593 /*OUT*/ ULONG *pcjFile); 02594 02595 WIN32KAPI 02596 LPWSTR 02597 DDKAPI 02598 FONTOBJ_pwszFontFilePaths( 02599 /*IN*/ FONTOBJ *pfo, 02600 02601 /*OUT*/ ULONG *pcwc); 02602 02603 WIN32KAPI 02604 XFORMOBJ* 02605 DDKAPI 02606 FONTOBJ_pxoGetXform( 02607 /*IN*/ FONTOBJ *pfo); 02608 02609 WIN32KAPI 02610 VOID 02611 DDKAPI 02612 FONTOBJ_vGetInfo( 02613 /*IN*/ FONTOBJ *pfo, 02614 /*IN*/ ULONG cjSize, 02615 02616 /*OUT*/ FONTINFO *pfi); 02617 02618 WIN32KAPI 02619 FLATPTR 02620 DDKAPI 02621 HeapVidMemAllocAligned( 02622 /*IN*/ LPVIDMEM lpVidMem, 02623 /*IN*/ DWORD dwWidth, 02624 /*IN*/ DWORD dwHeight, 02625 /*IN*/ LPSURFACEALIGNMENT lpAlignment, 02626 02627 /*OUT*/ LPLONG lpNewPitch); 02628 02629 WIN32KAPI 02630 LONG 02631 DDKAPI 02632 HT_ComputeRGBGammaTable( 02633 /*IN*/ USHORT GammaTableEntries, 02634 /*IN*/ USHORT GammaTableType, 02635 /*IN*/ USHORT RedGamma, 02636 /*IN*/ USHORT GreenGamma, 02637 /*IN*/ USHORT BlueGamma, 02638 02639 /*OUT*/ LPBYTE pGammaTable); 02640 02641 WIN32KAPI 02642 LONG 02643 DDKAPI 02644 HT_Get8BPPFormatPalette( 02645 02646 /*OUT*/ LPPALETTEENTRY pPaletteEntry, 02647 /*IN*/ USHORT RedGamma, 02648 /*IN*/ USHORT GreenGamma, 02649 /*IN*/ USHORT BlueGamma); 02650 02651 WIN32KAPI 02652 LONG 02653 DDKAPI 02654 HT_Get8BPPMaskPalette( 02655 /*IN OUT*/ LPPALETTEENTRY pPaletteEntry, 02656 /*IN*/ BOOL Use8BPPMaskPal, 02657 /*IN*/ BYTE CMYMask, 02658 /*IN*/ USHORT RedGamma, 02659 /*IN*/ USHORT GreenGamma, 02660 /*IN*/ USHORT BlueGamma); 02661 02662 WIN32KAPI 02663 LONG 02664 DDKAPI 02665 HTUI_DeviceColorAdjustment( 02666 /*IN*/ LPSTR pDeviceName, 02667 02668 /*OUT*/ PDEVHTADJDATA pDevHTAdjData); 02669 02670 WIN32KAPI 02671 ULONG 02672 DDKAPI 02673 PALOBJ_cGetColors( 02674 /*IN*/ PALOBJ *ppalo, 02675 /*IN*/ ULONG iStart, 02676 /*IN*/ ULONG cColors, 02677 02678 /*OUT*/ ULONG *pulColors); 02679 02680 WIN32KAPI 02681 BOOL 02682 DDKAPI 02683 PATHOBJ_bCloseFigure( 02684 /*IN*/ PATHOBJ *ppo); 02685 02686 WIN32KAPI 02687 BOOL 02688 DDKAPI 02689 PATHOBJ_bEnum( 02690 /*IN*/ PATHOBJ *ppo, 02691 02692 /*OUT*/ PATHDATA *ppd); 02693 02694 WIN32KAPI 02695 BOOL 02696 DDKAPI 02697 PATHOBJ_bEnumClipLines( 02698 /*IN*/ PATHOBJ *ppo, 02699 /*IN*/ ULONG cb, 02700 02701 /*OUT*/ CLIPLINE *pcl); 02702 02703 WIN32KAPI 02704 BOOL 02705 DDKAPI 02706 PATHOBJ_bMoveTo( 02707 /*IN*/ PATHOBJ *ppo, 02708 /*IN*/ POINTFIX ptfx); 02709 02710 WIN32KAPI 02711 BOOL 02712 DDKAPI 02713 PATHOBJ_bPolyBezierTo( 02714 /*IN*/ PATHOBJ *ppo, 02715 /*IN*/ POINTFIX *pptfx, 02716 /*IN*/ ULONG cptfx); 02717 02718 WIN32KAPI 02719 BOOL 02720 DDKAPI 02721 PATHOBJ_bPolyLineTo( 02722 /*IN*/ PATHOBJ *ppo, 02723 /*IN*/ POINTFIX *pptfx, 02724 /*IN*/ ULONG cptfx); 02725 02726 WIN32KAPI 02727 VOID 02728 DDKAPI 02729 PATHOBJ_vEnumStart( 02730 /*IN*/ PATHOBJ *ppo); 02731 02732 WIN32KAPI 02733 VOID 02734 DDKAPI 02735 PATHOBJ_vEnumStartClipLines( 02736 /*IN*/ PATHOBJ *ppo, 02737 /*IN*/ CLIPOBJ *pco, 02738 /*IN*/ SURFOBJ *pso, 02739 /*IN*/ LINEATTRS *pla); 02740 02741 WIN32KAPI 02742 VOID 02743 DDKAPI 02744 PATHOBJ_vGetBounds( 02745 /*IN*/ PATHOBJ *ppo, 02746 02747 /*OUT*/ PRECTFX prectfx); 02748 02749 WIN32KAPI 02750 BOOL 02751 DDKAPI 02752 STROBJ_bEnum( 02753 /*IN*/ STROBJ *pstro, 02754 02755 /*OUT*/ ULONG *pc, 02756 02757 /*OUT*/ PGLYPHPOS *ppgpos); 02758 02759 WIN32KAPI 02760 BOOL 02761 DDKAPI 02762 STROBJ_bEnumPositionsOnly( 02763 /*IN*/ STROBJ *pstro, 02764 02765 /*OUT*/ ULONG *pc, 02766 02767 /*OUT*/ PGLYPHPOS *ppgpos); 02768 02769 WIN32KAPI 02770 BOOL 02771 DDKAPI 02772 STROBJ_bGetAdvanceWidths( 02773 /*IN*/ STROBJ *pso, 02774 /*IN*/ ULONG iFirst, 02775 /*IN*/ ULONG c, 02776 02777 /*OUT*/ POINTQF *pptqD); 02778 02779 WIN32KAPI 02780 DWORD 02781 DDKAPI 02782 STROBJ_dwGetCodePage( 02783 /*IN*/ STROBJ *pstro); 02784 02785 WIN32KAPI 02786 FIX 02787 DDKAPI 02788 STROBJ_fxBreakExtra( 02789 /*IN*/ STROBJ *pstro); 02790 02791 WIN32KAPI 02792 FIX 02793 DDKAPI 02794 STROBJ_fxCharacterExtra( 02795 /*IN*/ STROBJ *pstro); 02796 02797 WIN32KAPI 02798 VOID 02799 DDKAPI 02800 STROBJ_vEnumStart( 02801 /*IN*/ STROBJ *pstro); 02802 02803 WIN32KAPI 02804 VOID 02805 DDKAPI 02806 VidMemFree( 02807 /*IN*/ LPVMEMHEAP pvmh, 02808 /*IN*/ FLATPTR ptr); 02809 02810 WIN32KAPI 02811 BOOL 02812 DDKAPI 02813 WNDOBJ_bEnum( 02814 /*IN*/ WNDOBJ *pwo, 02815 /*IN*/ ULONG cj, 02816 02817 /*OUT*/ ULONG *pul); 02818 02819 WIN32KAPI 02820 ULONG 02821 DDKAPI 02822 WNDOBJ_cEnumStart( 02823 /*IN*/ WNDOBJ *pwo, 02824 /*IN*/ ULONG iType, 02825 /*IN*/ ULONG iDirection, 02826 /*IN*/ ULONG cLimit); 02827 02828 WIN32KAPI 02829 VOID 02830 DDKAPI 02831 WNDOBJ_vSetConsumer( 02832 /*IN*/ WNDOBJ *pwo, 02833 /*IN*/ PVOID pvConsumer); 02834 02835 /* XFORMOBJ_bApplyXform.iMode constants */ 02836 #define XF_LTOL 0L 02837 #define XF_INV_LTOL 1L 02838 #define XF_LTOFX 2L 02839 #define XF_INV_FXTOL 3L 02840 02841 WIN32KAPI 02842 BOOL 02843 DDKAPI 02844 XFORMOBJ_bApplyXform( 02845 /*IN*/ XFORMOBJ *pxo, 02846 /*IN*/ ULONG iMode, 02847 /*IN*/ ULONG cPoints, 02848 /*IN*/ PVOID pvIn, 02849 02850 /*OUT*/ PVOID pvOut); 02851 02852 WIN32KAPI 02853 ULONG 02854 DDKAPI 02855 XFORMOBJ_iGetFloatObjXform( 02856 /*IN*/ XFORMOBJ *pxo, 02857 02858 /*OUT*/ FLOATOBJ_XFORM *pxfo); 02859 02860 WIN32KAPI 02861 ULONG 02862 DDKAPI 02863 XFORMOBJ_iGetXform( 02864 /*IN*/ XFORMOBJ *pxo, 02865 02866 /*OUT*/ XFORML *pxform); 02867 02868 /* XLATEOBJ_cGetPalette.iPal constants */ 02869 #define XO_SRCPALETTE 1 02870 #define XO_DESTPALETTE 2 02871 #define XO_DESTDCPALETTE 3 02872 #define XO_SRCBITFIELDS 4 02873 #define XO_DESTBITFIELDS 5 02874 02875 WIN32KAPI 02876 ULONG 02877 DDKAPI 02878 XLATEOBJ_cGetPalette( 02879 /*IN*/ XLATEOBJ *pxlo, 02880 /*IN*/ ULONG iPal, 02881 /*IN*/ ULONG cPal, 02882 02883 /*OUT*/ ULONG *pPal); 02884 02885 WIN32KAPI 02886 HANDLE 02887 DDKAPI 02888 XLATEOBJ_hGetColorTransform( 02889 /*IN*/ XLATEOBJ *pxlo); 02890 02891 WIN32KAPI 02892 ULONG 02893 DDKAPI 02894 XLATEOBJ_iXlate( 02895 /*IN*/ XLATEOBJ *pxlo, 02896 /*IN*/ ULONG iColor); 02897 02898 WIN32KAPI 02899 ULONG* 02900 DDKAPI 02901 XLATEOBJ_piVector( 02902 /*IN*/ XLATEOBJ *pxlo); 02903 02904 02905 02906 /* Graphics Driver Functions */ 02907 02908 BOOL 02909 DDKAPI 02910 DrvAlphaBlend( 02911 /*IN*/ SURFOBJ *psoDest, 02912 /*IN*/ SURFOBJ *psoSrc, 02913 /*IN*/ CLIPOBJ *pco, 02914 /*IN*/ XLATEOBJ *pxlo, 02915 /*IN*/ RECTL *prclDest, 02916 /*IN*/ RECTL *prclSrc, 02917 /*IN*/ BLENDOBJ *pBlendObj); 02918 02919 BOOL 02920 DDKAPI 02921 DrvAssertMode( 02922 /*IN*/ DHPDEV dhpdev, 02923 /*IN*/ BOOL bEnable); 02924 02925 BOOL 02926 DDKAPI 02927 DrvBitBlt( 02928 /*IN*/ SURFOBJ *psoTrg, 02929 /*IN*/ SURFOBJ *psoSrc, 02930 /*IN*/ SURFOBJ *psoMask, 02931 /*IN*/ CLIPOBJ *pco, 02932 /*IN*/ XLATEOBJ *pxlo, 02933 /*IN*/ RECTL *prclTrg, 02934 /*IN*/ POINTL *pptlSrc, 02935 /*IN*/ POINTL *pptlMask, 02936 /*IN*/ BRUSHOBJ *pbo, 02937 /*IN*/ POINTL *pptlBrush, 02938 /*IN*/ ROP4 rop4); 02939 02940 VOID 02941 DDKAPI 02942 DrvCompletePDEV( 02943 /*IN*/ DHPDEV dhpdev, 02944 /*IN*/ HDEV hdev); 02945 02946 BOOL 02947 DDKAPI 02948 DrvCopyBits( 02949 /*IN*/ SURFOBJ *psoDest, 02950 /*IN*/ SURFOBJ *psoSrc, 02951 /*IN*/ CLIPOBJ *pco, 02952 /*IN*/ XLATEOBJ *pxlo, 02953 /*IN*/ RECTL *prclDest, 02954 /*IN*/ POINTL *pptlSrc); 02955 02956 HBITMAP 02957 DDKAPI 02958 DrvCreateDeviceBitmap( 02959 /*IN*/ DHPDEV dhpdev, 02960 /*IN*/ SIZEL sizl, 02961 /*IN*/ ULONG iFormat); 02962 02963 VOID 02964 DDKAPI 02965 DrvDeleteDeviceBitmap( 02966 /*IN*/ DHSURF dhsurf); 02967 02968 HBITMAP 02969 DDKAPI 02970 DrvDeriveSurface( 02971 DD_DIRECTDRAW_GLOBAL *pDirectDraw, 02972 DD_SURFACE_LOCAL *pSurface); 02973 02974 LONG 02975 DDKAPI 02976 DrvDescribePixelFormat( 02977 /*IN*/ DHPDEV dhpdev, 02978 /*IN*/ LONG iPixelFormat, 02979 /*IN*/ ULONG cjpfd, 02980 02981 /*OUT*/ PIXELFORMATDESCRIPTOR *ppfd); 02982 02983 VOID 02984 DDKAPI 02985 DrvDestroyFont( 02986 /*IN*/ FONTOBJ *pfo); 02987 02988 VOID 02989 DDKAPI 02990 DrvDisableDriver( 02991 VOID); 02992 02993 VOID 02994 DDKAPI 02995 DrvDisablePDEV( 02996 /*IN*/ DHPDEV dhpdev); 02997 02998 VOID 02999 DDKAPI 03000 DrvDisableSurface( 03001 /*IN*/ DHPDEV dhpdev); 03002 03003 #define DM_DEFAULT 0x00000001 03004 #define DM_MONOCHROME 0x00000002 03005 03006 ULONG 03007 DDKAPI 03008 DrvDitherColor( 03009 /*IN*/ DHPDEV dhpdev, 03010 /*IN*/ ULONG iMode, 03011 /*IN*/ ULONG rgb, 03012 03013 /*OUT*/ ULONG *pul); 03014 03015 ULONG 03016 DDKAPI 03017 DrvDrawEscape( 03018 /*IN*/ SURFOBJ *pso, 03019 /*IN*/ ULONG iEsc, 03020 /*IN*/ CLIPOBJ *pco, 03021 /*IN*/ RECTL *prcl, 03022 /*IN*/ ULONG cjIn, 03023 /*IN*/ PVOID pvIn); 03024 03025 BOOL 03026 DDKAPI 03027 DrvEnableDriver( 03028 /*IN*/ ULONG iEngineVersion, 03029 /*IN*/ ULONG cj, 03030 03031 /*OUT*/ DRVENABLEDATA *pded); 03032 03033 DHPDEV 03034 DDKAPI 03035 DrvEnablePDEV( 03036 /*IN*/ DEVMODEW *pdm, 03037 /*IN*/ LPWSTR pwszLogAddress, 03038 /*IN*/ ULONG cPat, 03039 03040 /*OUT*/ HSURF *phsurfPatterns, 03041 /*IN*/ ULONG cjCaps, 03042 03043 /*OUT*/ ULONG *pdevcaps, 03044 /*IN*/ ULONG cjDevInfo, 03045 03046 /*OUT*/ DEVINFO *pdi, 03047 /*IN*/ HDEV hdev, 03048 /*IN*/ LPWSTR pwszDeviceName, 03049 /*IN*/ HANDLE hDriver); 03050 03051 HSURF 03052 DDKAPI 03053 DrvEnableSurface( 03054 /*IN*/ DHPDEV dhpdev); 03055 03056 /* DrvEndDoc.fl constants */ 03057 #define ED_ABORTDOC 0x00000001 03058 03059 BOOL 03060 DDKAPI 03061 DrvEndDoc( 03062 /*IN*/ SURFOBJ *pso, 03063 /*IN*/ FLONG fl); 03064 03065 ULONG 03066 DDKAPI 03067 DrvEscape( 03068 /*IN*/ SURFOBJ *pso, 03069 /*IN*/ ULONG iEsc, 03070 /*IN*/ ULONG cjIn, 03071 /*IN*/ PVOID pvIn, 03072 /*IN*/ ULONG cjOut, 03073 03074 /*OUT*/ PVOID pvOut); 03075 03076 BOOL 03077 DDKAPI 03078 DrvFillPath( 03079 /*IN*/ SURFOBJ *pso, 03080 /*IN*/ PATHOBJ *ppo, 03081 /*IN*/ CLIPOBJ *pco, 03082 /*IN*/ BRUSHOBJ *pbo, 03083 /*IN*/ POINTL *pptlBrushOrg, 03084 /*IN*/ MIX mix, 03085 /*IN*/ FLONG flOptions); 03086 03087 ULONG 03088 DDKAPI 03089 DrvFontManagement( 03090 /*IN*/ SURFOBJ *pso, 03091 /*IN*/ FONTOBJ *pfo, 03092 /*IN*/ ULONG iMode, 03093 /*IN*/ ULONG cjIn, 03094 /*IN*/ PVOID pvIn, 03095 /*IN*/ ULONG cjOut, 03096 03097 /*OUT*/ PVOID pvOut); 03098 03099 VOID 03100 DDKAPI 03101 DrvFree( 03102 /*IN*/ PVOID pv, 03103 /*IN*/ ULONG_PTR id); 03104 03105 /* DrvGetGlyphMode return values */ 03106 #define FO_HGLYPHS 0L 03107 #define FO_GLYPHBITS 1L 03108 #define FO_PATHOBJ 2L 03109 03110 ULONG 03111 DDKAPI 03112 DrvGetGlyphMode( 03113 /*IN*/ DHPDEV dhpdev, 03114 /*IN*/ FONTOBJ *pfo); 03115 03116 ULONG 03117 DDKAPI 03118 DrvGetModes( 03119 /*IN*/ HANDLE hDriver, 03120 /*IN*/ ULONG cjSize, 03121 03122 /*OUT*/ DEVMODEW *pdm); 03123 03124 PVOID 03125 DDKAPI 03126 DrvGetTrueTypeFile( 03127 /*IN*/ ULONG_PTR iFile, 03128 /*IN*/ ULONG *pcj); 03129 03130 BOOL 03131 DDKAPI 03132 DrvGradientFill( 03133 /*IN*/ SURFOBJ *psoDest, 03134 /*IN*/ CLIPOBJ *pco, 03135 /*IN*/ XLATEOBJ *pxlo, 03136 /*IN*/ TRIVERTEX *pVertex, 03137 /*IN*/ ULONG nVertex, 03138 /*IN*/ PVOID pMesh, 03139 /*IN*/ ULONG nMesh, 03140 /*IN*/ RECTL *prclExtents, 03141 /*IN*/ POINTL *pptlDitherOrg, 03142 /*IN*/ ULONG ulMode); 03143 03144 BOOL 03145 DDKAPI 03146 DrvIcmCheckBitmapBits( 03147 /*IN*/ DHPDEV dhpdev, 03148 /*IN*/ HANDLE hColorTransform, 03149 /*IN*/ SURFOBJ *pso, 03150 03151 /*OUT*/ PBYTE paResults); 03152 03153 HANDLE 03154 DDKAPI 03155 DrvIcmCreateColorTransform( 03156 /*IN*/ DHPDEV dhpdev, 03157 /*IN*/ LPLOGCOLORSPACEW pLogColorSpace, 03158 /*IN*/ PVOID pvSourceProfile, 03159 /*IN*/ ULONG cjSourceProfile, 03160 /*IN*/ PVOID pvDestProfile, 03161 /*IN*/ ULONG cjDestProfile, 03162 /*IN*/ PVOID pvTargetProfile, 03163 /*IN*/ ULONG cjTargetProfile, 03164 /*IN*/ DWORD dwReserved); 03165 03166 BOOL 03167 DDKAPI 03168 DrvIcmDeleteColorTransform( 03169 /*IN*/ DHPDEV dhpdev, 03170 /*IN*/ HANDLE hcmXform); 03171 03172 /* DrvIcmSetDeviceGammaRamp.iFormat constants */ 03173 #define IGRF_RGB_256BYTES 0x00000000 03174 #define IGRF_RGB_256WORDS 0x00000001 03175 03176 BOOL 03177 DDKAPI 03178 DrvIcmSetDeviceGammaRamp( 03179 /*IN*/ DHPDEV dhpdev, 03180 /*IN*/ ULONG iFormat, 03181 /*IN*/ LPVOID lpRamp); 03182 03183 BOOL 03184 DDKAPI 03185 DrvLineTo( 03186 SURFOBJ *pso, 03187 CLIPOBJ *pco, 03188 BRUSHOBJ *pbo, 03189 LONG x1, 03190 LONG y1, 03191 LONG x2, 03192 LONG y2, 03193 RECTL *prclBounds, 03194 MIX mix); 03195 03196 ULONG_PTR 03197 DDKAPI 03198 DrvLoadFontFile( 03199 ULONG cFiles, 03200 ULONG_PTR *piFile, 03201 PVOID *ppvView, 03202 ULONG *pcjView, 03203 DESIGNVECTOR *pdv, 03204 ULONG ulLangID, 03205 ULONG ulFastCheckSum); 03206 03207 VOID 03208 DDKAPI 03209 DrvMovePointer( 03210 /*IN*/ SURFOBJ *pso, 03211 /*IN*/ LONG x, 03212 /*IN*/ LONG y, 03213 /*IN*/ RECTL *prcl); 03214 03215 BOOL 03216 DDKAPI 03217 DrvNextBand( 03218 /*IN*/ SURFOBJ *pso, 03219 /*IN*/ POINTL *pptl); 03220 03221 VOID 03222 DDKAPI 03223 DrvNotify( 03224 /*IN*/ SURFOBJ *pso, 03225 /*IN*/ ULONG iType, 03226 /*IN*/ PVOID pvData); 03227 03228 BOOL 03229 DDKAPI 03230 DrvOffset( 03231 /*IN*/ SURFOBJ *pso, 03232 /*IN*/ LONG x, 03233 /*IN*/ LONG y, 03234 /*IN*/ FLONG flReserved); 03235 03236 BOOL 03237 DDKAPI 03238 DrvPaint( 03239 /*IN*/ SURFOBJ *pso, 03240 /*IN*/ CLIPOBJ *pco, 03241 /*IN*/ BRUSHOBJ *pbo, 03242 /*IN*/ POINTL *pptlBrushOrg, 03243 /*IN*/ MIX mix); 03244 03245 BOOL 03246 DDKAPI 03247 DrvPlgBlt( 03248 /*IN*/ SURFOBJ *psoTrg, 03249 /*IN*/ SURFOBJ *psoSrc, 03250 /*IN*/ SURFOBJ *psoMsk, 03251 /*IN*/ CLIPOBJ *pco, 03252 /*IN*/ XLATEOBJ *pxlo, 03253 /*IN*/ COLORADJUSTMENT *pca, 03254 /*IN*/ POINTL *pptlBrushOrg, 03255 /*IN*/ POINTFIX *pptfx, 03256 /*IN*/ RECTL *prcl, 03257 /*IN*/ POINTL *pptl, 03258 /*IN*/ ULONG iMode); 03259 03260 /* DrvQueryAdvanceWidths.iMode constants */ 03261 #define QAW_GETWIDTHS 0 03262 #define QAW_GETEASYWIDTHS 1 03263 03264 BOOL 03265 DDKAPI 03266 DrvQueryAdvanceWidths( 03267 /*IN*/ DHPDEV dhpdev, 03268 /*IN*/ FONTOBJ *pfo, 03269 /*IN*/ ULONG iMode, 03270 /*IN*/ HGLYPH *phg, 03271 03272 /*OUT*/ PVOID pvWidths, 03273 /*IN*/ ULONG cGlyphs); 03274 03275 /* DrvQueryDeviceSupport.iType constants */ 03276 #define QDS_CHECKJPEGFORMAT 0x00000000 03277 #define QDS_CHECKPNGFORMAT 0x00000001 03278 03279 BOOL 03280 DDKAPI 03281 DrvQueryDeviceSupport( 03282 SURFOBJ *pso, 03283 XLATEOBJ *pxlo, 03284 XFORMOBJ *pxo, 03285 ULONG iType, 03286 ULONG cjIn, 03287 PVOID pvIn, 03288 ULONG cjOut, 03289 PVOID pvOut); 03290 03291 /* DrvQueryDriverInfo.dwMode constants */ 03292 #define DRVQUERY_USERMODE 0x00000001 03293 03294 BOOL 03295 DDKAPI 03296 DrvQueryDriverInfo( 03297 DWORD dwMode, 03298 PVOID pBuffer, 03299 DWORD cbBuf, 03300 PDWORD pcbNeeded); 03301 03302 PIFIMETRICS 03303 DDKAPI 03304 DrvQueryFont( 03305 /*IN*/ DHPDEV dhpdev, 03306 /*IN*/ ULONG_PTR iFile, 03307 /*IN*/ ULONG iFace, 03308 /*IN*/ ULONG_PTR *pid); 03309 03310 /* DrvQueryFontCaps.pulCaps constants */ 03311 #define QC_OUTLINES 0x00000001 03312 #define QC_1BIT 0x00000002 03313 #define QC_4BIT 0x00000004 03314 03315 #define QC_FONTDRIVERCAPS (QC_OUTLINES | QC_1BIT | QC_4BIT) 03316 03317 LONG 03318 DDKAPI 03319 DrvQueryFontCaps( 03320 /*IN*/ ULONG culCaps, 03321 03322 /*OUT*/ ULONG *pulCaps); 03323 03324 /* DrvQueryFontData.iMode constants */ 03325 #define QFD_GLYPHANDBITMAP 1L 03326 #define QFD_GLYPHANDOUTLINE 2L 03327 #define QFD_MAXEXTENTS 3L 03328 #define QFD_TT_GLYPHANDBITMAP 4L 03329 #define QFD_TT_GRAY1_BITMAP 5L 03330 #define QFD_TT_GRAY2_BITMAP 6L 03331 #define QFD_TT_GRAY4_BITMAP 8L 03332 #define QFD_TT_GRAY8_BITMAP 9L 03333 03334 #define QFD_TT_MONO_BITMAP QFD_TT_GRAY1_BITMAP 03335 03336 LONG 03337 DDKAPI 03338 DrvQueryFontData( 03339 /*IN*/ DHPDEV dhpdev, 03340 /*IN*/ FONTOBJ *pfo, 03341 /*IN*/ ULONG iMode, 03342 /*IN*/ HGLYPH hg, 03343 /*IN OUT*/ GLYPHDATA *pgd, 03344 /*IN OUT*/ PVOID pv, 03345 /*IN*/ ULONG cjSize); 03346 03347 /* DrvQueryFontFile.ulMode constants */ 03348 #define QFF_DESCRIPTION 0x00000001 03349 #define QFF_NUMFACES 0x00000002 03350 03351 LONG 03352 DDKAPI 03353 DrvQueryFontFile( 03354 /*IN*/ ULONG_PTR iFile, 03355 /*IN*/ ULONG ulMode, 03356 /*IN*/ ULONG cjBuf, 03357 /*IN*/ ULONG *pulBuf); 03358 03359 /* DrvQueryFontTree.iMode constants */ 03360 #define QFT_UNICODE 0L 03361 #define QFT_LIGATURES 1L 03362 #define QFT_KERNPAIRS 2L 03363 #define QFT_GLYPHSET 3L 03364 03365 PVOID 03366 DDKAPI 03367 DrvQueryFontTree( 03368 /*IN*/ DHPDEV dhpdev, 03369 /*IN*/ ULONG_PTR iFile, 03370 /*IN*/ ULONG iFace, 03371 /*IN*/ ULONG iMode, 03372 /*IN*/ ULONG_PTR *pid); 03373 03374 PFD_GLYPHATTR 03375 DDKAPI 03376 DrvQueryGlyphAttrs( 03377 /*IN*/ FONTOBJ *pfo, 03378 /*IN*/ ULONG iMode); 03379 03380 ULONG 03381 DDKAPI 03382 DrvQueryPerBandInfo( 03383 /*IN*/ SURFOBJ *pso, 03384 /*IN OUT*/ PERBANDINFO *pbi); 03385 03386 /* DrvQueryTrueTypeOutline.bMetricsOnly constants */ 03387 #define TTO_METRICS_ONLY 0x00000001 03388 #define TTO_QUBICS 0x00000002 03389 #define TTO_UNHINTED 0x00000004 03390 03391 LONG 03392 DDKAPI 03393 DrvQueryTrueTypeOutline( 03394 /*IN*/ DHPDEV dhpdev, 03395 /*IN*/ FONTOBJ *pfo, 03396 /*IN*/ HGLYPH hglyph, 03397 /*IN*/ BOOL bMetricsOnly, 03398 /*IN*/ GLYPHDATA *pgldt, 03399 /*IN*/ ULONG cjBuf, 03400 03401 /*OUT*/ TTPOLYGONHEADER *ppoly); 03402 03403 LONG 03404 DDKAPI 03405 DrvQueryTrueTypeTable( 03406 /*IN*/ ULONG_PTR iFile, 03407 /*IN*/ ULONG ulFont, 03408 /*IN*/ ULONG ulTag, 03409 /*IN*/ PTRDIFF dpStart, 03410 /*IN*/ ULONG cjBuf, 03411 03412 /*OUT*/ BYTE *pjBuf, 03413 03414 /*OUT*/ PBYTE *ppjTable, 03415 03416 /*OUT*/ ULONG *pcjTable); 03417 03418 /* DrvRealizeBrush.iHatch constants */ 03419 #define RB_DITHERCOLOR 0x80000000L 03420 03421 #define HS_DDI_MAX 6 03422 03423 BOOL 03424 DDKAPI 03425 DrvRealizeBrush( 03426 /*IN*/ BRUSHOBJ *pbo, 03427 /*IN*/ SURFOBJ *psoTarget, 03428 /*IN*/ SURFOBJ *psoPattern, 03429 /*IN*/ SURFOBJ *psoMask, 03430 /*IN*/ XLATEOBJ *pxlo, 03431 /*IN*/ ULONG iHatch); 03432 03433 /* DrvResetDevice return values */ 03434 #define DRD_SUCCESS 0 03435 #define DRD_ERROR 1 03436 03437 ULONG 03438 DDKAPI 03439 DrvResetDevice( 03440 /*IN*/ DHPDEV dhpdev, 03441 /*IN*/ PVOID Reserved); 03442 03443 BOOL 03444 DDKAPI 03445 DrvResetPDEV( 03446 DHPDEV dhpdevOld, 03447 DHPDEV dhpdevNew); 03448 03449 /* DrvSaveScreenBits.iMode constants */ 03450 #define SS_SAVE 0x00000000 03451 #define SS_RESTORE 0x00000001 03452 #define SS_FREE 0x00000002 03453 03454 ULONG_PTR 03455 DDKAPI 03456 DrvSaveScreenBits( 03457 /*IN*/ SURFOBJ *pso, 03458 /*IN*/ ULONG iMode, 03459 /*IN*/ ULONG_PTR ident, 03460 /*IN*/ RECTL *prcl); 03461 03462 BOOL 03463 DDKAPI 03464 DrvSendPage( 03465 /*IN*/ SURFOBJ *pso); 03466 03467 BOOL 03468 DDKAPI 03469 DrvSetPalette( 03470 /*IN*/ DHPDEV dhpdev, 03471 /*IN*/ PALOBJ *ppalo, 03472 /*IN*/ FLONG fl, 03473 /*IN*/ ULONG iStart, 03474 /*IN*/ ULONG cColors); 03475 03476 BOOL 03477 DDKAPI 03478 DrvSetPixelFormat( 03479 /*IN*/ SURFOBJ *pso, 03480 /*IN*/ LONG iPixelFormat, 03481 /*IN*/ HWND hwnd); 03482 03483 /* DrvSetPointerShape return values */ 03484 #define SPS_ERROR 0x00000000 03485 #define SPS_DECLINE 0x00000001 03486 #define SPS_ACCEPT_NOEXCLUDE 0x00000002 03487 #define SPS_ACCEPT_EXCLUDE 0x00000003 03488 #define SPS_ACCEPT_SYNCHRONOUS 0x00000004 03489 03490 /* DrvSetPointerShape.fl constants */ 03491 #define SPS_CHANGE 0x00000001L 03492 #define SPS_ASYNCCHANGE 0x00000002L 03493 #define SPS_ANIMATESTART 0x00000004L 03494 #define SPS_ANIMATEUPDATE 0x00000008L 03495 #define SPS_ALPHA 0x00000010L 03496 #define SPS_LENGTHMASK 0x00000F00L 03497 #define SPS_FREQMASK 0x000FF000L 03498 03499 ULONG 03500 DDKAPI 03501 DrvSetPointerShape( 03502 /*IN*/ SURFOBJ *pso, 03503 /*IN*/ SURFOBJ *psoMask, 03504 /*IN*/ SURFOBJ *psoColor, 03505 /*IN*/ XLATEOBJ *pxlo, 03506 /*IN*/ LONG xHot, 03507 /*IN*/ LONG yHot, 03508 /*IN*/ LONG x, 03509 /*IN*/ LONG y, 03510 /*IN*/ RECTL *prcl, 03511 /*IN*/ FLONG fl); 03512 03513 BOOL 03514 DDKAPI 03515 DrvStartBanding( 03516 /*IN*/ SURFOBJ *pso, 03517 /*IN*/ POINTL *pptl); 03518 03519 BOOL 03520 DDKAPI 03521 DrvStartDoc( 03522 /*IN*/ SURFOBJ *pso, 03523 /*IN*/ LPWSTR pwszDocName, 03524 /*IN*/ DWORD dwJobId); 03525 03526 BOOL 03527 DDKAPI 03528 DrvStartPage( 03529 /*IN*/ SURFOBJ *pso); 03530 03531 BOOL 03532 DDKAPI 03533 DrvStretchBlt( 03534 /*IN*/ SURFOBJ *psoDest, 03535 /*IN*/ SURFOBJ *psoSrc, 03536 /*IN*/ SURFOBJ *psoMask, 03537 /*IN*/ CLIPOBJ *pco, 03538 /*IN*/ XLATEOBJ *pxlo, 03539 /*IN*/ COLORADJUSTMENT *pca, 03540 /*IN*/ POINTL *pptlHTOrg, 03541 /*IN*/ RECTL *prclDest, 03542 /*IN*/ RECTL *prclSrc, 03543 /*IN*/ POINTL *pptlMask, 03544 /*IN*/ ULONG iMode); 03545 03546 BOOL 03547 DDKAPI 03548 DrvStretchBltROP( 03549 /*IN*/ SURFOBJ *psoDest, 03550 /*IN*/ SURFOBJ *psoSrc, 03551 /*IN*/ SURFOBJ *psoMask, 03552 /*IN*/ CLIPOBJ *pco, 03553 /*IN*/ XLATEOBJ *pxlo, 03554 /*IN*/ COLORADJUSTMENT *pca, 03555 /*IN*/ POINTL *pptlHTOrg, 03556 /*IN*/ RECTL *prclDest, 03557 /*IN*/ RECTL *prclSrc, 03558 /*IN*/ POINTL *pptlMask, 03559 /*IN*/ ULONG iMode, 03560 /*IN*/ BRUSHOBJ *pbo, 03561 /*IN*/ DWORD rop4); 03562 03563 BOOL 03564 DDKAPI 03565 DrvStrokeAndFillPath( 03566 /*IN*/ SURFOBJ *pso, 03567 /*IN*/ PATHOBJ *ppo, 03568 /*IN*/ CLIPOBJ *pco, 03569 /*IN*/ XFORMOBJ *pxo, 03570 /*IN*/ BRUSHOBJ *pboStroke, 03571 /*IN*/ LINEATTRS *plineattrs, 03572 /*IN*/ BRUSHOBJ *pboFill, 03573 /*IN*/ POINTL *pptlBrushOrg, 03574 /*IN*/ MIX mixFill, 03575 /*IN*/ FLONG flOptions); 03576 03577 BOOL 03578 DDKAPI 03579 DrvStrokePath( 03580 /*IN*/ SURFOBJ *pso, 03581 /*IN*/ PATHOBJ *ppo, 03582 /*IN*/ CLIPOBJ *pco, 03583 /*IN*/ XFORMOBJ *pxo, 03584 /*IN*/ BRUSHOBJ *pbo, 03585 /*IN*/ POINTL *pptlBrushOrg, 03586 /*IN*/ LINEATTRS *plineattrs, 03587 /*IN*/ MIX mix); 03588 03589 BOOL 03590 DDKAPI 03591 DrvSwapBuffers( 03592 /*IN*/ SURFOBJ *pso, 03593 /*IN*/ WNDOBJ *pwo); 03594 03595 VOID 03596 DDKAPI 03597 DrvSynchronize( 03598 /*IN*/ DHPDEV dhpdev, 03599 /*IN*/ RECTL *prcl); 03600 03601 /* DrvSynchronizeSurface.fl constants */ 03602 #define DSS_TIMER_EVENT 0x00000001 03603 #define DSS_FLUSH_EVENT 0x00000002 03604 03605 VOID 03606 DDKAPI 03607 DrvSynchronizeSurface( 03608 /*IN*/ SURFOBJ *pso, 03609 /*IN*/ RECTL *prcl, 03610 /*IN*/ FLONG fl); 03611 03612 BOOL 03613 DDKAPI 03614 DrvTextOut( 03615 /*IN*/ SURFOBJ *pso, 03616 /*IN*/ STROBJ *pstro, 03617 /*IN*/ FONTOBJ *pfo, 03618 /*IN*/ CLIPOBJ *pco, 03619 /*IN*/ RECTL *prclExtra, 03620 /*IN*/ RECTL *prclOpaque, 03621 /*IN*/ BRUSHOBJ *pboFore, 03622 /*IN*/ BRUSHOBJ *pboOpaque, 03623 /*IN*/ POINTL *pptlOrg, 03624 /*IN*/ MIX mix); 03625 03626 BOOL 03627 DDKAPI 03628 DrvTransparentBlt( 03629 /*IN*/ SURFOBJ *psoDst, 03630 /*IN*/ SURFOBJ *psoSrc, 03631 /*IN*/ CLIPOBJ *pco, 03632 /*IN*/ XLATEOBJ *pxlo, 03633 /*IN*/ RECTL *prclDst, 03634 /*IN*/ RECTL *prclSrc, 03635 /*IN*/ ULONG iTransColor, 03636 /*IN*/ ULONG ulReserved); 03637 03638 BOOL 03639 DDKAPI 03640 DrvUnloadFontFile( 03641 /*IN*/ ULONG_PTR iFile); 03642 03643 /* WNDOBJCHANGEPROC.fl constants */ 03644 #define WOC_RGN_CLIENT_DELTA 0x00000001 03645 #define WOC_RGN_CLIENT 0x00000002 03646 #define WOC_RGN_SURFACE_DELTA 0x00000004 03647 #define WOC_RGN_SURFACE 0x00000008 03648 #define WOC_CHANGED 0x00000010 03649 #define WOC_DELETE 0x00000020 03650 #define WOC_DRAWN 0x00000040 03651 #define WOC_SPRITE_OVERLAP 0x00000080 03652 #define WOC_SPRITE_NO_OVERLAP 0x00000100 03653 03654 typedef VOID DDKAPI 03655 (CALLBACK * WNDOBJCHANGEPROC)( 03656 WNDOBJ *pwo, 03657 FLONG fl); 03658 03659 03660 typedef BOOL DDKAPI 03661 (*PFN_DrvAlphaBlend)( 03662 /*IN*/ SURFOBJ *psoDest, 03663 /*IN*/ SURFOBJ *psoSrc, 03664 /*IN*/ CLIPOBJ *pco, 03665 /*IN*/ XLATEOBJ *pxlo, 03666 /*IN*/ RECTL *prclDest, 03667 /*IN*/ RECTL *prclSrc, 03668 /*IN*/ BLENDOBJ *pBlendObj); 03669 03670 typedef BOOL DDKAPI 03671 (*PFN_DrvAssertMode)( 03672 /*IN*/ DHPDEV dhpdev, 03673 /*IN*/ BOOL bEnable); 03674 03675 typedef BOOL DDKAPI 03676 (*PFN_DrvBitBlt)( 03677 /*IN*/ SURFOBJ *psoTrg, 03678 /*IN*/ SURFOBJ *psoSrc, 03679 /*IN*/ SURFOBJ *psoMask, 03680 /*IN*/ CLIPOBJ *pco, 03681 /*IN*/ XLATEOBJ *pxlo, 03682 /*IN*/ RECTL *prclTrg, 03683 /*IN*/ POINTL *pptlSrc, 03684 /*IN*/ POINTL *pptlMask, 03685 /*IN*/ BRUSHOBJ *pbo, 03686 /*IN*/ POINTL *pptlBrush, 03687 /*IN*/ ROP4 rop4); 03688 03689 typedef VOID DDKAPI 03690 (*PFN_DrvCompletePDEV)( 03691 /*IN*/ DHPDEV dhpdev, 03692 /*IN*/ HDEV hdev); 03693 03694 typedef BOOL DDKAPI 03695 (*PFN_DrvCopyBits)( 03696 /*IN*/ SURFOBJ *psoDest, 03697 /*IN*/ SURFOBJ *psoSrc, 03698 /*IN*/ CLIPOBJ *pco, 03699 /*IN*/ XLATEOBJ *pxlo, 03700 /*IN*/ RECTL *prclDest, 03701 /*IN*/ POINTL *pptlSrc); 03702 03703 typedef HBITMAP DDKAPI 03704 (*PFN_DrvCreateDeviceBitmap)( 03705 /*IN*/ DHPDEV dhpdev, 03706 /*IN*/ SIZEL sizl, 03707 /*IN*/ ULONG iFormat); 03708 03709 typedef VOID DDKAPI 03710 (*PFN_DrvDeleteDeviceBitmap)( 03711 /*IN*/ DHSURF dhsurf); 03712 03713 typedef HBITMAP DDKAPI 03714 (*PFN_DrvDeriveSurface)( 03715 DD_DIRECTDRAW_GLOBAL *pDirectDraw, 03716 DD_SURFACE_LOCAL *pSurface); 03717 03718 typedef LONG DDKAPI 03719 (*PFN_DrvDescribePixelFormat)( 03720 /*IN*/ DHPDEV dhpdev, 03721 /*IN*/ LONG iPixelFormat, 03722 /*IN*/ ULONG cjpfd, 03723 03724 /*OUT*/ PIXELFORMATDESCRIPTOR *ppfd); 03725 03726 typedef VOID DDKAPI 03727 (*PFN_DrvDestroyFont)( 03728 /*IN*/ FONTOBJ *pfo); 03729 03730 typedef VOID DDKAPI 03731 (*PFN_DrvDisableDriver)( 03732 VOID); 03733 03734 typedef VOID DDKAPI 03735 (*PFN_DrvDisablePDEV)( 03736 /*IN*/ DHPDEV dhpdev); 03737 03738 typedef VOID DDKAPI 03739 (*PFN_DrvDisableSurface)( 03740 /*IN*/ DHPDEV dhpdev); 03741 03742 typedef ULONG DDKAPI 03743 (*PFN_DrvDitherColor)( 03744 /*IN*/ DHPDEV dhpdev, 03745 /*IN*/ ULONG iMode, 03746 /*IN*/ ULONG rgb, 03747 03748 /*OUT*/ ULONG *pul); 03749 03750 typedef ULONG DDKAPI 03751 (*PFN_DrvDrawEscape)( 03752 /*IN*/ SURFOBJ *pso, 03753 /*IN*/ ULONG iEsc, 03754 /*IN*/ CLIPOBJ *pco, 03755 /*IN*/ RECTL *prcl, 03756 /*IN*/ ULONG cjIn, 03757 /*IN*/ PVOID pvIn); 03758 03759 typedef BOOL DDKAPI 03760 (*PFN_DrvEnableDriver)( 03761 /*IN*/ ULONG iEngineVersion, 03762 /*IN*/ ULONG cj, 03763 03764 /*OUT*/ DRVENABLEDATA *pded); 03765 #if 0 03766 typedef DHPDEV DDKAPI 03767 (*PFN_DrvEnablePDEV)( 03768 /*IN*/ DEVMODEW *pdm, 03769 /*IN*/ LPWSTR pwszLogAddress, 03770 /*IN*/ ULONG cPat, 03771 03772 /*OUT*/ HSURF *phsurfPatterns, 03773 /*IN*/ ULONG cjCaps, 03774 03775 /*OUT*/ ULONG *pdevcaps, 03776 /*IN*/ ULONG cjDevInfo, 03777 03778 /*OUT*/ DEVINFO *pdi, 03779 /*IN*/ HDEV hdev, 03780 /*IN*/ LPWSTR pwszDeviceName, 03781 /*IN*/ HANDLE hDriver); 03782 #endif 03783 typedef HSURF DDKAPI 03784 (*PFN_DrvEnableSurface)( 03785 /*IN*/ DHPDEV dhpdev); 03786 03787 typedef BOOL DDKAPI 03788 (*PFN_DrvEndDoc)( 03789 /*IN*/ SURFOBJ *pso, 03790 /*IN*/ FLONG fl); 03791 03792 typedef ULONG DDKAPI 03793 (*PFN_DrvEscape)( 03794 /*IN*/ SURFOBJ *pso, 03795 /*IN*/ ULONG iEsc, 03796 /*IN*/ ULONG cjIn, 03797 /*IN*/ PVOID pvIn, 03798 /*IN*/ ULONG cjOut, 03799 03800 /*OUT*/ PVOID pvOut); 03801 03802 typedef BOOL DDKAPI 03803 (*PFN_DrvFillPath)( 03804 /*IN*/ SURFOBJ *pso, 03805 /*IN*/ PATHOBJ *ppo, 03806 /*IN*/ CLIPOBJ *pco, 03807 /*IN*/ BRUSHOBJ *pbo, 03808 /*IN*/ POINTL *pptlBrushOrg, 03809 /*IN*/ MIX mix, 03810 /*IN*/ FLONG flOptions); 03811 03812 typedef ULONG DDKAPI 03813 (*PFN_DrvFontManagement)( 03814 /*IN*/ SURFOBJ *pso, 03815 /*IN*/ FONTOBJ *pfo, 03816 /*IN*/ ULONG iMode, 03817 /*IN*/ ULONG cjIn, 03818 /*IN*/ PVOID pvIn, 03819 /*IN*/ ULONG cjOut, 03820 03821 /*OUT*/ PVOID pvOut); 03822 03823 typedef VOID DDKAPI 03824 (*PFN_DrvFree)( 03825 /*IN*/ PVOID pv, 03826 /*IN*/ ULONG_PTR id); 03827 03828 typedef ULONG DDKAPI 03829 (*PFN_DrvGetGlyphMode)( 03830 /*IN*/ DHPDEV dhpdev, 03831 /*IN*/ FONTOBJ *pfo); 03832 03833 typedef ULONG DDKAPI 03834 (*PFN_DrvGetModes)( 03835 /*IN*/ HANDLE hDriver, 03836 /*IN*/ ULONG cjSize, 03837 03838 /*OUT*/ DEVMODEW *pdm); 03839 03840 typedef PVOID DDKAPI 03841 (*PFN_DrvGetTrueTypeFile)( 03842 /*IN*/ ULONG_PTR iFile, 03843 /*IN*/ ULONG *pcj); 03844 03845 typedef BOOL DDKAPI 03846 (*PFN_DrvGradientFill)( 03847 /*IN*/ SURFOBJ *psoDest, 03848 /*IN*/ CLIPOBJ *pco, 03849 /*IN*/ XLATEOBJ *pxlo, 03850 /*IN*/ TRIVERTEX *pVertex, 03851 /*IN*/ ULONG nVertex, 03852 /*IN*/ PVOID pMesh, 03853 /*IN*/ ULONG nMesh, 03854 /*IN*/ RECTL *prclExtents, 03855 /*IN*/ POINTL *pptlDitherOrg, 03856 /*IN*/ ULONG ulMode); 03857 03858 typedef BOOL DDKAPI 03859 (*PFN_DrvIcmCheckBitmapBits)( 03860 /*IN*/ DHPDEV dhpdev, 03861 /*IN*/ HANDLE hColorTransform, 03862 /*IN*/ SURFOBJ *pso, 03863 03864 /*OUT*/ PBYTE paResults); 03865 03866 typedef HANDLE DDKAPI 03867 (*PFN_DrvIcmCreateColorTransform)( 03868 /*IN*/ DHPDEV dhpdev, 03869 /*IN*/ LPLOGCOLORSPACEW pLogColorSpace, 03870 /*IN*/ PVOID pvSourceProfile, 03871 /*IN*/ ULONG cjSourceProfile, 03872 /*IN*/ PVOID pvDestProfile, 03873 /*IN*/ ULONG cjDestProfile, 03874 /*IN*/ PVOID pvTargetProfile, 03875 /*IN*/ ULONG cjTargetProfile, 03876 /*IN*/ DWORD dwReserved); 03877 03878 typedef BOOL DDKAPI 03879 (*PFN_DrvIcmDeleteColorTransform)( 03880 /*IN*/ DHPDEV dhpdev, 03881 /*IN*/ HANDLE hcmXform); 03882 03883 typedef BOOL DDKAPI 03884 (*PFN_DrvIcmSetDeviceGammaRamp)( 03885 /*IN*/ DHPDEV dhpdev, 03886 /*IN*/ ULONG iFormat, 03887 /*IN*/ LPVOID lpRamp); 03888 03889 typedef BOOL DDKAPI 03890 (*PFN_DrvLineTo)( 03891 SURFOBJ *pso, 03892 CLIPOBJ *pco, 03893 BRUSHOBJ *pbo, 03894 LONG x1, 03895 LONG y1, 03896 LONG x2, 03897 LONG y2, 03898 RECTL *prclBounds, 03899 MIX mix); 03900 03901 typedef ULONG_PTR DDKAPI 03902 (*PFN_DrvLoadFontFile)( 03903 ULONG cFiles, 03904 ULONG_PTR *piFile, 03905 PVOID *ppvView, 03906 ULONG *pcjView, 03907 DESIGNVECTOR *pdv, 03908 ULONG ulLangID, 03909 ULONG ulFastCheckSum); 03910 03911 typedef VOID DDKAPI 03912 (*PFN_DrvMovePointer)( 03913 /*IN*/ SURFOBJ *pso, 03914 /*IN*/ LONG x, 03915 /*IN*/ LONG y, 03916 /*IN*/ RECTL *prcl); 03917 03918 typedef BOOL DDKAPI 03919 (*PFN_DrvNextBand)( 03920 /*IN*/ SURFOBJ *pso, 03921 /*IN*/ POINTL *pptl); 03922 03923 typedef VOID DDKAPI 03924 (*PFN_DrvNotify)( 03925 /*IN*/ SURFOBJ *pso, 03926 /*IN*/ ULONG iType, 03927 /*IN*/ PVOID pvData); 03928 03929 typedef BOOL DDKAPI 03930 (*PFN_DrvOffset)( 03931 /*IN*/ SURFOBJ *pso, 03932 /*IN*/ LONG x, 03933 /*IN*/ LONG y, 03934 /*IN*/ FLONG flReserved); 03935 03936 typedef BOOL DDKAPI 03937 (*PFN_DrvPaint)( 03938 /*IN*/ SURFOBJ *pso, 03939 /*IN*/ CLIPOBJ *pco, 03940 /*IN*/ BRUSHOBJ *pbo, 03941 /*IN*/ POINTL *pptlBrushOrg, 03942 /*IN*/ MIX mix); 03943 03944 typedef BOOL DDKAPI 03945 (*PFN_DrvPlgBlt)( 03946 /*IN*/ SURFOBJ *psoTrg, 03947 /*IN*/ SURFOBJ *psoSrc, 03948 /*IN*/ SURFOBJ *psoMsk, 03949 /*IN*/ CLIPOBJ *pco, 03950 /*IN*/ XLATEOBJ *pxlo, 03951 /*IN*/ COLORADJUSTMENT *pca, 03952 /*IN*/ POINTL *pptlBrushOrg, 03953 /*IN*/ POINTFIX *pptfx, 03954 /*IN*/ RECTL *prcl, 03955 /*IN*/ POINTL *pptl, 03956 /*IN*/ ULONG iMode); 03957 03958 typedef BOOL DDKAPI 03959 (*PFN_DrvQueryAdvanceWidths)( 03960 /*IN*/ DHPDEV dhpdev, 03961 /*IN*/ FONTOBJ *pfo, 03962 /*IN*/ ULONG iMode, 03963 /*IN*/ HGLYPH *phg, 03964 03965 /*OUT*/ PVOID pvWidths, 03966 /*IN*/ ULONG cGlyphs); 03967 03968 typedef BOOL DDKAPI 03969 (*PFN_DrvQueryDeviceSupport)( 03970 SURFOBJ *pso, 03971 XLATEOBJ *pxlo, 03972 XFORMOBJ *pxo, 03973 ULONG iType, 03974 ULONG cjIn, 03975 PVOID pvIn, 03976 ULONG cjOut, 03977 PVOID pvOut); 03978 03979 typedef BOOL DDKAPI 03980 (*PFN_DrvQueryDriverInfo)( 03981 DWORD dwMode, 03982 PVOID pBuffer, 03983 DWORD cbBuf, 03984 PDWORD pcbNeeded); 03985 03986 typedef PIFIMETRICS DDKAPI 03987 (*PFN_DrvQueryFont)( 03988 /*IN*/ DHPDEV dhpdev, 03989 /*IN*/ ULONG_PTR iFile, 03990 /*IN*/ ULONG iFace, 03991 /*IN*/ ULONG_PTR *pid); 03992 03993 typedef LONG DDKAPI 03994 (*PFN_DrvQueryFontCaps)( 03995 /*IN*/ ULONG culCaps, 03996 03997 /*OUT*/ ULONG *pulCaps); 03998 03999 typedef LONG DDKAPI 04000 (*PFN_DrvQueryFontData)( 04001 /*IN*/ DHPDEV dhpdev, 04002 /*IN*/ FONTOBJ *pfo, 04003 /*IN*/ ULONG iMode, 04004 /*IN*/ HGLYPH hg, 04005 /*IN OUT*/ GLYPHDATA *pgd, 04006 /*IN OUT*/ PVOID pv, 04007 /*IN*/ ULONG cjSize); 04008 04009 typedef LONG DDKAPI 04010 (*PFN_DrvQueryFontFile)( 04011 /*IN*/ ULONG_PTR iFile, 04012 /*IN*/ ULONG ulMode, 04013 /*IN*/ ULONG cjBuf, 04014 /*IN*/ ULONG *pulBuf); 04015 04016 typedef PVOID DDKAPI 04017 (*PFN_DrvQueryFontTree)( 04018 /*IN*/ DHPDEV dhpdev, 04019 /*IN*/ ULONG_PTR iFile, 04020 /*IN*/ ULONG iFace, 04021 /*IN*/ ULONG iMode, 04022 /*IN*/ ULONG_PTR *pid); 04023 04024 typedef PFD_GLYPHATTR DDKAPI 04025 (*PFN_DrvQueryGlyphAttrs)( 04026 /*IN*/ FONTOBJ *pfo, 04027 /*IN*/ ULONG iMode); 04028 04029 typedef ULONG DDKAPI 04030 (*PFN_DrvQueryPerBandInfo)( 04031 /*IN*/ SURFOBJ *pso, 04032 /*IN OUT*/ PERBANDINFO *pbi); 04033 04034 typedef LONG DDKAPI 04035 (*PFN_DrvQueryTrueTypeOutline)( 04036 /*IN*/ DHPDEV dhpdev, 04037 /*IN*/ FONTOBJ *pfo, 04038 /*IN*/ HGLYPH hglyph, 04039 /*IN*/ BOOL bMetricsOnly, 04040 /*IN*/ GLYPHDATA *pgldt, 04041 /*IN*/ ULONG cjBuf, 04042 /*OUT*/ TTPOLYGONHEADER *ppoly); 04043 04044 typedef LONG DDKAPI 04045 (*PFN_DrvQueryTrueTypeTable)( 04046 /*IN*/ ULONG_PTR iFile, 04047 /*IN*/ ULONG ulFont, 04048 /*IN*/ ULONG ulTag, 04049 /*IN*/ PTRDIFF dpStart, 04050 /*IN*/ ULONG cjBuf, 04051 /*OUT*/ BYTE *pjBuf, 04052 /*OUT*/ PBYTE *ppjTable, 04053 /*OUT*/ ULONG *pcjTable); 04054 04055 typedef BOOL DDKAPI 04056 (*PFN_DrvRealizeBrush)( 04057 /*IN*/ BRUSHOBJ *pbo, 04058 /*IN*/ SURFOBJ *psoTarget, 04059 /*IN*/ SURFOBJ *psoPattern, 04060 /*IN*/ SURFOBJ *psoMask, 04061 /*IN*/ XLATEOBJ *pxlo, 04062 /*IN*/ ULONG iHatch); 04063 04064 typedef ULONG DDKAPI 04065 (*PFN_DrvResetDevice)( 04066 /*IN*/ DHPDEV dhpdev, 04067 /*IN*/ PVOID Reserved); 04068 04069 typedef BOOL DDKAPI 04070 (*PFN_DrvResetPDEV)( 04071 DHPDEV dhpdevOld, 04072 DHPDEV dhpdevNew); 04073 04074 typedef ULONG_PTR DDKAPI 04075 (*PFN_DrvSaveScreenBits)( 04076 /*IN*/ SURFOBJ *pso, 04077 /*IN*/ ULONG iMode, 04078 /*IN*/ ULONG_PTR ident, 04079 /*IN*/ RECTL *prcl); 04080 04081 typedef BOOL DDKAPI 04082 (*PFN_DrvSendPage)( 04083 /*IN*/ SURFOBJ *pso); 04084 04085 typedef BOOL DDKAPI 04086 (*PFN_DrvSetPalette)( 04087 /*IN*/ DHPDEV dhpdev, 04088 /*IN*/ PALOBJ *ppalo, 04089 /*IN*/ FLONG fl, 04090 /*IN*/ ULONG iStart, 04091 /*IN*/ ULONG cColors); 04092 04093 typedef BOOL DDKAPI 04094 (*PFN_DrvSetPixelFormat)( 04095 /*IN*/ SURFOBJ *pso, 04096 /*IN*/ LONG iPixelFormat, 04097 /*IN*/ HWND hwnd); 04098 04099 typedef ULONG DDKAPI 04100 (*PFN_DrvSetPointerShape)( 04101 /*IN*/ SURFOBJ *pso, 04102 /*IN*/ SURFOBJ *psoMask, 04103 /*IN*/ SURFOBJ *psoColor, 04104 /*IN*/ XLATEOBJ *pxlo, 04105 /*IN*/ LONG xHot, 04106 /*IN*/ LONG yHot, 04107 /*IN*/ LONG x, 04108 /*IN*/ LONG y, 04109 /*IN*/ RECTL *prcl, 04110 /*IN*/ FLONG fl); 04111 04112 typedef BOOL DDKAPI 04113 (*PFN_DrvStartBanding)( 04114 /*IN*/ SURFOBJ *pso, 04115 /*IN*/ POINTL *pptl); 04116 04117 typedef BOOL DDKAPI 04118 (*PFN_DrvStartDoc)( 04119 /*IN*/ SURFOBJ *pso, 04120 /*IN*/ LPWSTR pwszDocName, 04121 /*IN*/ DWORD dwJobId); 04122 04123 typedef BOOL DDKAPI 04124 (*PFN_DrvStartPage)( 04125 /*IN*/ SURFOBJ *pso); 04126 04127 typedef BOOL DDKAPI 04128 (*PFN_DrvStretchBlt)( 04129 /*IN*/ SURFOBJ *psoDest, 04130 /*IN*/ SURFOBJ *psoSrc, 04131 /*IN*/ SURFOBJ *psoMask, 04132 /*IN*/ CLIPOBJ *pco, 04133 /*IN*/ XLATEOBJ *pxlo, 04134 /*IN*/ COLORADJUSTMENT *pca, 04135 /*IN*/ POINTL *pptlHTOrg, 04136 /*IN*/ RECTL *prclDest, 04137 /*IN*/ RECTL *prclSrc, 04138 /*IN*/ POINTL *pptlMask, 04139 /*IN*/ ULONG iMode); 04140 04141 typedef BOOL DDKAPI 04142 (*PFN_DrvStretchBltROP)( 04143 /*IN*/ SURFOBJ *psoDest, 04144 /*IN*/ SURFOBJ *psoSrc, 04145 /*IN*/ SURFOBJ *psoMask, 04146 /*IN*/ CLIPOBJ *pco, 04147 /*IN*/ XLATEOBJ *pxlo, 04148 /*IN*/ COLORADJUSTMENT *pca, 04149 /*IN*/ POINTL *pptlHTOrg, 04150 /*IN*/ RECTL *prclDest, 04151 /*IN*/ RECTL *prclSrc, 04152 /*IN*/ POINTL *pptlMask, 04153 /*IN*/ ULONG iMode, 04154 /*IN*/ BRUSHOBJ *pbo, 04155 /*IN*/ DWORD rop4); 04156 04157 typedef BOOL DDKAPI 04158 (*PFN_DrvStrokeAndFillPath)( 04159 /*IN*/ SURFOBJ *pso, 04160 /*IN*/ PATHOBJ *ppo, 04161 /*IN*/ CLIPOBJ *pco, 04162 /*IN*/ XFORMOBJ *pxo, 04163 /*IN*/ BRUSHOBJ *pboStroke, 04164 /*IN*/ LINEATTRS *plineattrs, 04165 /*IN*/ BRUSHOBJ *pboFill, 04166 /*IN*/ POINTL *pptlBrushOrg, 04167 /*IN*/ MIX mixFill, 04168 /*IN*/ FLONG flOptions); 04169 04170 typedef BOOL DDKAPI 04171 (*PFN_DrvStrokePath)( 04172 /*IN*/ SURFOBJ *pso, 04173 /*IN*/ PATHOBJ *ppo, 04174 /*IN*/ CLIPOBJ *pco, 04175 /*IN*/ XFORMOBJ *pxo, 04176 /*IN*/ BRUSHOBJ *pbo, 04177 /*IN*/ POINTL *pptlBrushOrg, 04178 /*IN*/ LINEATTRS *plineattrs, 04179 /*IN*/ MIX mix); 04180 04181 typedef BOOL DDKAPI 04182 (*PFN_DrvSwapBuffers)( 04183 /*IN*/ SURFOBJ *pso, 04184 /*IN*/ WNDOBJ *pwo); 04185 04186 typedef VOID DDKAPI 04187 (*PFN_DrvSynchronize)( 04188 /*IN*/ DHPDEV dhpdev, 04189 /*IN*/ RECTL *prcl); 04190 04191 typedef VOID DDKAPI 04192 (*PFN_DrvSynchronizeSurface)( 04193 /*IN*/ SURFOBJ *pso, 04194 /*IN*/ RECTL *prcl, 04195 /*IN*/ FLONG fl); 04196 04197 typedef BOOL DDKAPI 04198 (*PFN_DrvTextOut)( 04199 /*IN*/ SURFOBJ *pso, 04200 /*IN*/ STROBJ *pstro, 04201 /*IN*/ FONTOBJ *pfo, 04202 /*IN*/ CLIPOBJ *pco, 04203 /*IN*/ RECTL *prclExtra, 04204 /*IN*/ RECTL *prclOpaque, 04205 /*IN*/ BRUSHOBJ *pboFore, 04206 /*IN*/ BRUSHOBJ *pboOpaque, 04207 /*IN*/ POINTL *pptlOrg, 04208 /*IN*/ MIX mix); 04209 04210 typedef BOOL DDKAPI 04211 (*PFN_DrvTransparentBlt)( 04212 /*IN*/ SURFOBJ *psoDst, 04213 /*IN*/ SURFOBJ *psoSrc, 04214 /*IN*/ CLIPOBJ *pco, 04215 /*IN*/ XLATEOBJ *pxlo, 04216 /*IN*/ RECTL *prclDst, 04217 /*IN*/ RECTL *prclSrc, 04218 /*IN*/ ULONG iTransColor, 04219 /*IN*/ ULONG ulReserved); 04220 04221 typedef BOOL DDKAPI 04222 (*PFN_DrvUnloadFontFile)( 04223 /*IN*/ ULONG_PTR iFile); 04224 04225 04226 WIN32KAPI 04227 VOID 04228 DDKAPI 04229 DrvDisableDirectDraw( 04230 /*IN*/ DHPDEV dhpdev); 04231 04232 WIN32KAPI 04233 BOOL 04234 DDKAPI 04235 DrvEnableDirectDraw( 04236 /*IN*/ DHPDEV dhpdev, 04237 /*OUT*/ DD_CALLBACKS *pCallBacks, 04238 /*OUT*/ DD_SURFACECALLBACKS *pSurfaceCallBacks, 04239 /*OUT*/ DD_PALETTECALLBACKS *pPaletteCallBacks); 04240 04241 WIN32KAPI 04242 BOOL 04243 DDKAPI 04244 DrvGetDirectDrawInfo( 04245 /*IN*/ DHPDEV dhpdev, 04246 /*OUT*/ DD_HALINFO *pHalInfo, 04247 /*OUT*/ DWORD *pdwNumHeaps, 04248 /*OUT*/ VIDEOMEMORY *pvmList, 04249 /*OUT*/ DWORD *pdwNumFourCCCodes, 04250 /*OUT*/ DWORD *pdwFourCC); 04251 04252 #ifdef __cplusplus 04253 } 04254 #endif 04255 04256 #endif /* defined __VIDEO_H */ 04257 04258 #endif /* __WINDDI_H */
Generated on Tue Jul 12 2022 19:59:55 by
1.7.2