⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 winddi.h

📁 MinGW+MSYS开发必用的api参考
💻 H
📖 第 1 页 / 共 5 页
字号:
/* * winddi.h * * GDI device driver interface * * This file is part of the w32api package. * * Contributors: *   Created by Casper S. Hornstrup <chorns@users.sourceforge.net> * * THIS SOFTWARE IS NOT COPYRIGHTED * * This source code is offered for use in the public domain. You may * use, modify or distribute it freely. * * This code is distributed in the hope that it will be useful but * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY * DISCLAIMED. This includes but is not limited to warranties of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * */#ifndef __WINDDI_H#define __WINDDI_H#if __GNUC__ >=3#pragma GCC system_header#endif#ifdef __VIDEO_H#error video.h cannot be included with winddi.h#else#ifdef __cplusplusextern "C" {#endif#include "ntddk.h"#include <wingdi.h>#ifndef __DD_INCLUDED__/* FIXME: Some DirectDraw structures not added yet */typedef ULONG_PTR FLATPTR;typedef struct _DD_SURFACECALLBACKS {} DD_SURFACECALLBACKS, *PDD_SURFACECALLBACKS;typedef struct _DD_PALETTECALLBACKS {} DD_PALETTECALLBACKS, *PDD_PALETTECALLBACKS;typedef struct _DD_CALLBACKS {} DD_CALLBACKS, *PDD_CALLBACKS;typedef struct _DD_HALINFO {} DD_HALINFO, *PDD_HALINFO;typedef struct _VIDEOMEMORY {} VIDEOMEMORY, *LPVIDEOMEMORY;typedef struct _DD_DIRECTDRAW_GLOBAL {} DD_DIRECTDRAW_GLOBAL, *LPDD_DIRECTDRAW_GLOBAL;typedef struct _DD_SURFACE_LOCAL {} DD_SURFACE_LOCAL, *PDD_SURFACE_LOCAL, *LPDD_SURFACE_LOCAL;#endif#ifndef __DDRAWI_INCLUDED__typedef PVOID LPVIDMEM;#endif#if !defined(__DD_INCLUDED__) && !defined(__DDRAWI_INCLUDED__)typedef struct _DDSCAPS {} DDSCAPS, *PDDSCAPS;typedef struct _DDSCAPSEX {} DDSCAPSEX, *PDDSCAPSEX;typedef PVOID LPVMEMHEAP;#endif#if defined(_WIN32K_)#define WIN32KAPI DECL_EXPORT#else#define WIN32KAPI DECL_IMPORT#endif#define DDI_DRIVER_VERSION_NT4            0x00020000#define DDI_DRIVER_VERSION_SP3            0x00020003#define DDI_DRIVER_VERSION_NT5            0x00030000#define DDI_DRIVER_VERSION_NT5_01         0x00030100#define GDI_DRIVER_VERSION                0x4000#ifdef _X86_typedef DWORD FLOATL;#else /* !_X86_ */typedef FLOAT FLOATL;#endiftypedef SHORT FWORD;typedef LONG LDECI4;typedef ULONG IDENT;typedef ULONG_PTR HFF;typedef ULONG_PTR HFC;typedef LONG PTRDIFF;typedef PTRDIFF *PPTRDIFF;typedef LONG FIX;typedef FIX *PFIX;typedef ULONG ROP4;typedef ULONG MIX;typedef ULONG HGLYPH;typedef HGLYPH *PHGLYPH;typedef LONG_PTR (DDKAPI *PFN)();DECLARE_HANDLE(HBM);DECLARE_HANDLE(HDEV);DECLARE_HANDLE(HSURF);DECLARE_HANDLE(DHSURF);DECLARE_HANDLE(DHPDEV);DECLARE_HANDLE(HDRVOBJ);#define GDI_DRIVER_VERSION                0x4000typedef struct _ENG_EVENT *PEVENT;#define OPENGL_CMD                        4352#define OPENGL_GETINFO                    4353#define WNDOBJ_SETUP                      4354#define FD_ERROR                          0xFFFFFFFF#define DDI_ERROR                         0xFFFFFFFF#define HFF_INVALID                       ((HFF) 0)#define HFC_INVALID                       ((HFC) 0)#define HGLYPH_INVALID                    ((HGLYPH) -1)#define FP_ALTERNATEMODE                  1#define FP_WINDINGMODE                    2#define DN_ACCELERATION_LEVEL             1#define DN_DEVICE_ORIGIN                  2#define DN_SLEEP_MODE                     3#define DN_DRAWING_BEGIN                  4#define DCR_SOLID                         0#define DCR_DRIVER                        1#define DCR_HALFTONE                      2#define GX_IDENTITY                       0#define GX_OFFSET                         1#define GX_SCALE                          2#define GX_GENERAL                        3typedef struct _POINTE {	FLOATL  x;	FLOATL  y;} POINTE, *PPOINTE;typedef union _FLOAT_LONG {  FLOATL  e;  LONG  l;} FLOAT_LONG, *PFLOAT_LONG;typedef struct _POINTFIX {  FIX  x;  FIX  y;} POINTFIX, *PPOINTFIX;typedef struct _RECTFX {  FIX  xLeft;  FIX  yTop;  FIX  xRight;  FIX  yBottom;} RECTFX, *PRECTFX;typedef struct _POINTQF {  LARGE_INTEGER  x;  LARGE_INTEGER  y;} POINTQF, *PPOINTQF;typedef struct _BLENDOBJ {  BLENDFUNCTION  BlendFunction;} BLENDOBJ,*PBLENDOBJ;/* BRUSHOBJ.flColorType */#define BR_DEVICE_ICM    0x01#define BR_HOST_ICM      0x02#define BR_CMYKCOLOR     0x04#define BR_ORIGCOLOR     0x08typedef struct _BRUSHOBJ {  ULONG  iSolidColor;  PVOID  pvRbrush;  FLONG  flColorType;} BRUSHOBJ;typedef struct _CIECHROMA {  LDECI4  x;  LDECI4  y;  LDECI4  Y;} CIECHROMA;typedef struct _RUN {  LONG  iStart;  LONG  iStop;} RUN, *PRUN;typedef struct _CLIPLINE {  POINTFIX  ptfxA;  POINTFIX  ptfxB;  LONG  lStyleState;  ULONG  c;  RUN  arun[1];} CLIPLINE, *PCLIPLINE;/* CLIPOBJ.iDComplexity constants */#define DC_TRIVIAL                        0#define DC_RECT                           1#define DC_COMPLEX                        3/* CLIPOBJ.iFComplexity constants */#define FC_RECT                           1#define FC_RECT4                          2#define FC_COMPLEX                        3/* CLIPOBJ.iMode constants */#define TC_RECTANGLES                     0#define TC_PATHOBJ                        2/* CLIPOBJ.fjOptions constants */#define OC_BANK_CLIP                      1typedef struct _CLIPOBJ {  ULONG  iUniq;  RECTL  rclBounds;  BYTE  iDComplexity;  BYTE  iFComplexity;  BYTE  iMode;  BYTE  fjOptions;} CLIPOBJ;typedef struct _COLORINFO {  CIECHROMA  Red;  CIECHROMA  Green;  CIECHROMA  Blue;  CIECHROMA  Cyan;  CIECHROMA  Magenta;  CIECHROMA  Yellow;  CIECHROMA  AlignmentWhite;  LDECI4  RedGamma;  LDECI4  GreenGamma;  LDECI4  BlueGamma;  LDECI4  MagentaInCyanDye;  LDECI4  YellowInCyanDye;  LDECI4  CyanInMagentaDye;  LDECI4  YellowInMagentaDye;  LDECI4  CyanInYellowDye;  LDECI4  MagentaInYellowDye;} COLORINFO, *PCOLORINFO;/* DEVHTADJDATA.DeviceFlags constants */#define DEVHTADJF_COLOR_DEVICE            0x00000001#define DEVHTADJF_ADDITIVE_DEVICE         0x00000002typedef struct _DEVHTINFO {  DWORD  HTFlags;  DWORD  HTPatternSize;  DWORD  DevPelsDPI;  COLORINFO  ColorInfo;} DEVHTINFO, *PDEVHTINFO;typedef struct _DEVHTADJDATA {  DWORD   DeviceFlags;  DWORD   DeviceXDPI;  DWORD   DeviceYDPI;  PDEVHTINFO  pDefHTInfo;  PDEVHTINFO  pAdjHTInfo;} DEVHTADJDATA, *PDEVHTADJDATA;/* DEVINFO.flGraphicsCaps flags */#define GCAPS_BEZIERS           0x00000001#define GCAPS_GEOMETRICWIDE     0x00000002#define GCAPS_ALTERNATEFILL     0x00000004#define GCAPS_WINDINGFILL       0x00000008#define GCAPS_HALFTONE          0x00000010#define GCAPS_COLOR_DITHER      0x00000020#define GCAPS_HORIZSTRIKE       0x00000040#define GCAPS_VERTSTRIKE        0x00000080#define GCAPS_OPAQUERECT        0x00000100#define GCAPS_VECTORFONT        0x00000200#define GCAPS_MONO_DITHER       0x00000400#define GCAPS_ASYNCCHANGE       0x00000800#define GCAPS_ASYNCMOVE         0x00001000#define GCAPS_DONTJOURNAL       0x00002000#define GCAPS_DIRECTDRAW        0x00004000#define GCAPS_ARBRUSHOPAQUE     0x00008000#define GCAPS_PANNING           0x00010000#define GCAPS_HIGHRESTEXT       0x00040000#define GCAPS_PALMANAGED        0x00080000#define GCAPS_DITHERONREALIZE   0x00200000#define GCAPS_NO64BITMEMACCESS  0x00400000#define GCAPS_FORCEDITHER       0x00800000#define GCAPS_GRAY16            0x01000000#define GCAPS_ICM               0x02000000#define GCAPS_CMYKCOLOR         0x04000000#define GCAPS_LAYERED           0x08000000#define GCAPS_ARBRUSHTEXT       0x10000000#define GCAPS_SCREENPRECISION   0x20000000#define GCAPS_FONT_RASTERIZER   0x40000000#define GCAPS_NUP               0x80000000/* DEVINFO.iDitherFormat constants */#define BMF_1BPP       1L#define BMF_4BPP       2L#define BMF_8BPP       3L#define BMF_16BPP      4L#define BMF_24BPP      5L#define BMF_32BPP      6L#define BMF_4RLE       7L#define BMF_8RLE       8L#define BMF_JPEG       9L#define BMF_PNG       10L/* DEVINFO.flGraphicsCaps2 flags */#define GCAPS2_JPEGSRC          0x00000001#define GCAPS2_xxxx             0x00000002#define GCAPS2_PNGSRC           0x00000008#define GCAPS2_CHANGEGAMMARAMP  0x00000010#define GCAPS2_ALPHACURSOR      0x00000020#define GCAPS2_SYNCFLUSH        0x00000040#define GCAPS2_SYNCTIMER        0x00000080#define GCAPS2_ICD_MULTIMON     0x00000100#define GCAPS2_MOUSETRAILS      0x00000200#define GCAPS2_RESERVED1        0x00000400typedef struct _DEVINFO {  FLONG  flGraphicsCaps;  LOGFONTW  lfDefaultFont;  LOGFONTW  lfAnsiVarFont;  LOGFONTW  lfAnsiFixFont;  ULONG  cFonts;  ULONG  iDitherFormat;  USHORT  cxDither;  USHORT  cyDither;  HPALETTE  hpalDefault;  FLONG  flGraphicsCaps2;} DEVINFO, *PDEVINFO;typedef struct _DRIVEROBJ *PDRIVEROBJ;typedef BOOL DDKAPI CALLBACK(*FREEOBJPROC)(  /*IN*/ PDRIVEROBJ  pDriverObj);typedef struct _DRIVEROBJ {  PVOID  pvObj;  FREEOBJPROC  pFreeProc;  HDEV  hdev;  DHPDEV  dhpdev;} DRIVEROBJ;/* DRVFN.iFunc constants */#define INDEX_DrvEnablePDEV               0L#define INDEX_DrvCompletePDEV             1L#define INDEX_DrvDisablePDEV              2L#define INDEX_DrvEnableSurface            3L#define INDEX_DrvDisableSurface           4L#define INDEX_DrvAssertMode               5L#define INDEX_DrvOffset                   6L#define INDEX_DrvResetPDEV                7L#define INDEX_DrvDisableDriver            8L#define INDEX_DrvCreateDeviceBitmap       10L#define INDEX_DrvDeleteDeviceBitmap       11L#define INDEX_DrvRealizeBrush             12L#define INDEX_DrvDitherColor              13L#define INDEX_DrvStrokePath               14L#define INDEX_DrvFillPath                 15L#define INDEX_DrvStrokeAndFillPath        16L#define INDEX_DrvPaint                    17L#define INDEX_DrvBitBlt                   18L#define INDEX_DrvCopyBits                 19L#define INDEX_DrvStretchBlt               20L#define INDEX_DrvSetPalette               22L#define INDEX_DrvTextOut                  23L#define INDEX_DrvEscape                   24L#define INDEX_DrvDrawEscape               25L#define INDEX_DrvQueryFont                26L#define INDEX_DrvQueryFontTree            27L#define INDEX_DrvQueryFontData            28L#define INDEX_DrvSetPointerShape          29L#define INDEX_DrvMovePointer              30L#define INDEX_DrvLineTo                   31L#define INDEX_DrvSendPage                 32L#define INDEX_DrvStartPage                33L#define INDEX_DrvEndDoc                   34L#define INDEX_DrvStartDoc                 35L#define INDEX_DrvGetGlyphMode             37L#define INDEX_DrvSynchronize              38L#define INDEX_DrvSaveScreenBits           40L#define INDEX_DrvGetModes                 41L#define INDEX_DrvFree                     42L#define INDEX_DrvDestroyFont              43L#define INDEX_DrvQueryFontCaps            44L#define INDEX_DrvLoadFontFile             45L#define INDEX_DrvUnloadFontFile           46L#define INDEX_DrvFontManagement           47L#define INDEX_DrvQueryTrueTypeTable       48L#define INDEX_DrvQueryTrueTypeOutline     49L#define INDEX_DrvGetTrueTypeFile          50L#define INDEX_DrvQueryFontFile            51L#define INDEX_DrvMovePanning              52L#define INDEX_DrvQueryAdvanceWidths       53L#define INDEX_DrvSetPixelFormat           54L#define INDEX_DrvDescribePixelFormat      55L#define INDEX_DrvSwapBuffers              56L#define INDEX_DrvStartBanding             57L#define INDEX_DrvNextBand                 58L#define INDEX_DrvGetDirectDrawInfo        59L#define INDEX_DrvEnableDirectDraw         60L#define INDEX_DrvDisableDirectDraw        61L#define INDEX_DrvQuerySpoolType           62L#define INDEX_DrvIcmCreateColorTransform  64L#define INDEX_DrvIcmDeleteColorTransform  65L#define INDEX_DrvIcmCheckBitmapBits       66L#define INDEX_DrvIcmSetDeviceGammaRamp    67L#define INDEX_DrvGradientFill             68L#define INDEX_DrvStretchBltROP            69L#define INDEX_DrvPlgBlt                   70L#define INDEX_DrvAlphaBlend               71L#define INDEX_DrvSynthesizeFont           72L#define INDEX_DrvGetSynthesizedFontFiles  73L#define INDEX_DrvTransparentBlt           74L#define INDEX_DrvQueryPerBandInfo         75L#define INDEX_DrvQueryDeviceSupport       76L#define INDEX_DrvReserved1                77L#define INDEX_DrvReserved2                78L#define INDEX_DrvReserved3                79L#define INDEX_DrvReserved4                80L#define INDEX_DrvReserved5                81L#define INDEX_DrvReserved6                82L#define INDEX_DrvReserved7                83L#define INDEX_DrvReserved8                84L#define INDEX_DrvDeriveSurface            85L#define INDEX_DrvQueryGlyphAttrs          86L#define INDEX_DrvNotify                   87L#define INDEX_DrvSynchronizeSurface       88L#define INDEX_DrvResetDevice              89L#define INDEX_DrvReserved9                90L#define INDEX_DrvReserved10               91L#define INDEX_DrvReserved11               92L#define INDEX_LAST                        93Ltypedef struct _DRVFN {  ULONG  iFunc;  PFN  pfn;} DRVFN, *PDRVFN;/* DRVENABLEDATA.iDriverVersion constants */#define DDI_DRIVER_VERSION_NT4            0x00020000#define DDI_DRIVER_VERSION_SP3            0x00020003#define DDI_DRIVER_VERSION_NT5            0x00030000#define DDI_DRIVER_VERSION_NT5_01         0x00030100typedef struct _DRVENABLEDATA {  ULONG  iDriverVersion;  ULONG  c;  DRVFN  *pdrvfn;} DRVENABLEDATA, *PDRVENABLEDATA;DECLARE_HANDLE(HSEMAPHORE);typedef struct {  DWORD  nSize;  HDC  hdc;  PBYTE  pvEMF;  PBYTE  pvCurrentRecord;} EMFINFO, *PEMFINFO;typedef struct _ENGSAFESEMAPHORE {  HSEMAPHORE  hsem;  LONG  lCount;} ENGSAFESEMAPHORE;typedef struct _ENG_TIME_FIELDS {  USHORT  usYear;  USHORT  usMonth;  USHORT  usDay;  USHORT  usHour;  USHORT  usMinute;  USHORT  usSecond;  USHORT  usMilliseconds;  USHORT  usWeekday;} ENG_TIME_FIELDS, *PENG_TIME_FIELDS;typedef struct _ENUMRECTS {  ULONG  c;  RECTL  arcl[1];} ENUMRECTS;typedef struct _FD_XFORM {  FLOATL  eXX;  FLOATL  eXY;  FLOATL  eYX;  FLOATL  eYY;} FD_XFORM, *PFD_XFORM;/* FD_DEVICEMETRICS.flRealizedType constants */#define FDM_TYPE_BM_SIDE_CONST            0x00000001#define FDM_TYPE_MAXEXT_EQUAL_BM_SIDE     0x00000002#define FDM_TYPE_CHAR_INC_EQUAL_BM_BASE   0x00000004#define FDM_TYPE_ZERO_BEARINGS            0x00000008#define FDM_TYPE_CONST_BEARINGS           0x00000010typedef struct _FD_DEVICEMETRICS {  FLONG  flRealizedType;  POINTE  pteBase;  POINTE  pteSide;  LONG  lD;  FIX  fxMaxAscender;  FIX  fxMaxDescender;  POINTL  ptlUnderline1;  POINTL  ptlStrikeout;  POINTL  ptlULThickness;  POINTL  ptlSOThickness;  ULONG  cxMax;  ULONG  cyMax;  ULONG  cjGlyphMax;  FD_XFORM  fdxQuantized;  LONG  lNonLinearExtLeading;  LONG  lNonLinearIntLeading;  LONG  lNonLinearMaxCharWidth;  LONG  lNonLinearAvgCharWidth;  LONG  lMinA;  LONG  lMinC;  LONG  lMinD;  LONG  alReserved[1];} FD_DEVICEMETRICS, *PFD_DEVICEMETRICS;/* FD_GLYPHATTR.iMode constants */#define FO_ATTR_MODE_ROTATE               1typedef struct _FD_GLYPHATTR {  ULONG  cjThis;  ULONG  cGlyphs;  ULONG  iMode;  BYTE  aGlyphAttr[1];} FD_GLYPHATTR, *PFD_GLYPHATTR;/* FD_GLYPHSET.flAccel */#define GS_UNICODE_HANDLES                0x00000001#define GS_8BIT_HANDLES                   0x00000002#define GS_16BIT_HANDLES                  0x00000004typedef struct _WCRUN {  WCHAR  wcLow;  USHORT  cGlyphs;  HGLYPH  *phg;} WCRUN, *PWCRUN;typedef struct _FD_GLYPHSET {  ULONG  cjThis;  FLONG  flAccel;  ULONG  cGlyphsSupported;  ULONG  cRuns;  WCRUN  awcrun[1];} FD_GLYPHSET, *PFD_GLYPHSET;typedef struct _FD_KERNINGPAIR {  WCHAR  wcFirst;  WCHAR  wcSecond;  FWORD  fwdKern;} FD_KERNINGPAIR;typedef struct _FLOATOBJ{  ULONG  ul1;  ULONG  ul2;} FLOATOBJ, *PFLOATOBJ;typedef struct _FLOATOBJ_XFORM {  FLOATOBJ  eM11;  FLOATOBJ  eM12;  FLOATOBJ  eM21;  FLOATOBJ  eM22;  FLOATOBJ  eDx;  FLOATOBJ  eDy;} FLOATOBJ_XFORM, *PFLOATOBJ_XFORM, FAR *LPFLOATOBJ_XFORM;/* FONTDIFF.fsSelection */#define FM_SEL_ITALIC                     0x0001#define FM_SEL_UNDERSCORE                 0x0002#define FM_SEL_NEGATIVE                   0x0004#define FM_SEL_OUTLINED                   0x0008#define FM_SEL_STRIKEOUT                  0x0010#define FM_SEL_BOLD                       0x0020#define FM_SEL_REGULAR                    0x0040typedef struct _FONTDIFF {  BYTE  jReserved1;  BYTE  jReserved2;  BYTE  jReserved3;  BYTE  bWeight;  USHORT  usWinWeight;  FSHORT  fsSelection;  FWORD  fwdAveCharWidth;  FWORD  fwdMaxCharInc;  POINTL  ptlCaret;} FONTDIFF;typedef struct _FONTSIM {  PTRDIFF  dpBold;  PTRDIFF  dpItalic;  PTRDIFF  dpBoldItalic;} FONTSIM;/* FONTINFO.flCaps constants */#define FO_DEVICE_FONT                    1L#define FO_OUTLINE_CAPABLE                2Ltypedef struct _FONTINFO {  ULONG  cjThis;  FLONG  flCaps;  ULONG  cGlyphsSupported;  ULONG  cjMaxGlyph1;  ULONG  cjMaxGlyph4;  ULONG  cjMaxGlyph8;  ULONG  cjMaxGlyph32;} FONTINFO, *PFONTINFO;/* FONTOBJ.flFontType constants */#define FO_TYPE_RASTER   RASTER_FONTTYPE#define FO_TYPE_DEVICE   DEVICE_FONTTYPE#define FO_TYPE_TRUETYPE TRUETYPE_FONTTYPE#define FO_TYPE_OPENTYPE OPENTYPE_FONTTYPE#define FO_SIM_BOLD      0x00002000

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -