Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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
