Headers diff for opengl32.dll between 6.1.7600.16385-Windows_7.0 and 6.3.9600.17415-Windows_8.1 versions



 wingdi.h (6.1.7600.16385-Windows_7.0)   wingdi.h (6.3.9600.17415-Windows_8.1) 
#include <winapifamily.h>
/************************************************************************** /**************************************************************************
* * * *
* wingdi.h -- GDI procedure declarations, constant definitions and macros * * wingdi.h -- GDI procedure declarations, constant definitions and macros *
* * * *
* Copyright (c) Microsoft Corp. All rights reserved. * * Copyright (c) Microsoft Corp. All rights reserved. *
* * * *
**************************************************************************/ **************************************************************************/
#ifndef _WINGDI_ #ifndef _WINGDI_
#define _WINGDI_ #define _WINGDI_
skipping to change at line 280 skipping to change at line 282
#define META_SETLAYOUT 0x0149 #define META_SETLAYOUT 0x0149
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
#define META_DELETEOBJECT 0x01f0 #define META_DELETEOBJECT 0x01f0
#define META_CREATEPALETTE 0x00f7 #define META_CREATEPALETTE 0x00f7
#define META_CREATEPATTERNBRUSH 0x01F9 #define META_CREATEPATTERNBRUSH 0x01F9
#define META_CREATEPENINDIRECT 0x02FA #define META_CREATEPENINDIRECT 0x02FA
#define META_CREATEFONTINDIRECT 0x02FB #define META_CREATEFONTINDIRECT 0x02FB
#define META_CREATEBRUSHINDIRECT 0x02FC #define META_CREATEBRUSHINDIRECT 0x02FC
#define META_CREATEREGION 0x06FF #define META_CREATEREGION 0x06FF
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
typedef struct _DRAWPATRECT { typedef struct _DRAWPATRECT {
POINT ptPosition; POINT ptPosition;
POINT ptSize; POINT ptSize;
WORD wStyle; WORD wStyle;
WORD wPattern; WORD wPattern;
} DRAWPATRECT, *PDRAWPATRECT; } DRAWPATRECT, *PDRAWPATRECT;
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* NOMETAFILE */ #endif /* NOMETAFILE */
/* GDI Escapes */ /* GDI Escapes */
#define NEWFRAME 1 #define NEWFRAME 1
#define ABORTDOC 2 #define ABORTDOC 2
#define NEXTBAND 3 #define NEXTBAND 3
#define SETCOLORTABLE 4 #define SETCOLORTABLE 4
#define GETCOLORTABLE 5 #define GETCOLORTABLE 5
#define FLUSHOUTPUT 6 #define FLUSHOUTPUT 6
#define DRAFTMODE 7 #define DRAFTMODE 7
skipping to change at line 401 skipping to change at line 409
#define SPCLPASSTHROUGH2 4568 /* new escape for NT5 pscript driver */ #define SPCLPASSTHROUGH2 4568 /* new escape for NT5 pscript driver */
/* /*
* Parameters for POSTSCRIPT_IDENTIFY escape * Parameters for POSTSCRIPT_IDENTIFY escape
*/ */
#define PSIDENT_GDICENTRIC 0 #define PSIDENT_GDICENTRIC 0
#define PSIDENT_PSCENTRIC 1 #define PSIDENT_PSCENTRIC 1
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Header structure for the input buffer to POSTSCRIPT_INJECTION escape * Header structure for the input buffer to POSTSCRIPT_INJECTION escape
*/ */
typedef struct _PSINJECTDATA { typedef struct _PSINJECTDATA {
DWORD DataBytes; /* number of raw data bytes (NOT including this head er) */ DWORD DataBytes; /* number of raw data bytes (NOT including this head er) */
WORD InjectionPoint; /* injection point */ WORD InjectionPoint; /* injection point */
WORD PageNumber; /* page number to apply the injection */ WORD PageNumber; /* page number to apply the injection */
/* Followed by raw data to be injected */ /* Followed by raw data to be injected */
} PSINJECTDATA, *PPSINJECTDATA; } PSINJECTDATA, *PPSINJECTDATA;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* /*
* Constants for PSINJECTDATA.InjectionPoint field * Constants for PSINJECTDATA.InjectionPoint field
*/ */
#define PSINJECT_BEGINSTREAM 1 #define PSINJECT_BEGINSTREAM 1
#define PSINJECT_PSADOBE 2 #define PSINJECT_PSADOBE 2
#define PSINJECT_PAGESATEND 3 #define PSINJECT_PAGESATEND 3
#define PSINJECT_PAGES 4 #define PSINJECT_PAGES 4
#define PSINJECT_DOCNEEDEDRES 5 #define PSINJECT_DOCNEEDEDRES 5
skipping to change at line 483 skipping to change at line 497
#if (_WIN32_WINNT >= _WIN32_WINNT_WINXP) #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
// //
// The range of selectors between FEATURESETTING_PRIVATE_BEGIN and // The range of selectors between FEATURESETTING_PRIVATE_BEGIN and
// FEATURESETTING_PRIVATE_END is reserved by Microsoft for private use // FEATURESETTING_PRIVATE_END is reserved by Microsoft for private use
// //
#define FEATURESETTING_PRIVATE_BEGIN 0x1000 #define FEATURESETTING_PRIVATE_BEGIN 0x1000
#define FEATURESETTING_PRIVATE_END 0x1FFF #define FEATURESETTING_PRIVATE_END 0x1FFF
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WINXP) #endif // (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* /*
* Information about output options * Information about output options
*/ */
typedef struct _PSFEATURE_OUTPUT { typedef struct _PSFEATURE_OUTPUT {
BOOL bPageIndependent; BOOL bPageIndependent;
BOOL bSetPageDevice; BOOL bSetPageDevice;
} PSFEATURE_OUTPUT, *PPSFEATURE_OUTPUT; } PSFEATURE_OUTPUT, *PPSFEATURE_OUTPUT;
skipping to change at line 508 skipping to change at line 525
typedef struct _PSFEATURE_CUSTPAPER { typedef struct _PSFEATURE_CUSTPAPER {
LONG lOrientation; LONG lOrientation;
LONG lWidth; LONG lWidth;
LONG lHeight; LONG lHeight;
LONG lWidthOffset; LONG lWidthOffset;
LONG lHeightOffset; LONG lHeightOffset;
} PSFEATURE_CUSTPAPER, *PPSFEATURE_CUSTPAPER; } PSFEATURE_CUSTPAPER, *PPSFEATURE_CUSTPAPER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* Value returned for FEATURESETTING_PROTOCOL */ /* Value returned for FEATURESETTING_PROTOCOL */
#define PSPROTOCOL_ASCII 0 #define PSPROTOCOL_ASCII 0
#define PSPROTOCOL_BCP 1 #define PSPROTOCOL_BCP 1
#define PSPROTOCOL_TBCP 2 #define PSPROTOCOL_TBCP 2
#define PSPROTOCOL_BINARY 3 #define PSPROTOCOL_BINARY 3
/* Flag returned from QUERYDIBSUPPORT */ /* Flag returned from QUERYDIBSUPPORT */
#define QDI_SETDIBITS 1 #define QDI_SETDIBITS 1
#define QDI_GETDIBITS 2 #define QDI_GETDIBITS 2
#define QDI_DIBTOSCREEN 4 #define QDI_DIBTOSCREEN 4
skipping to change at line 557 skipping to change at line 577
/* xform stuff */ /* xform stuff */
#define MWT_IDENTITY 1 #define MWT_IDENTITY 1
#define MWT_LEFTMULTIPLY 2 #define MWT_LEFTMULTIPLY 2
#define MWT_RIGHTMULTIPLY 3 #define MWT_RIGHTMULTIPLY 3
#define MWT_MIN MWT_IDENTITY #define MWT_MIN MWT_IDENTITY
#define MWT_MAX MWT_RIGHTMULTIPLY #define MWT_MAX MWT_RIGHTMULTIPLY
#define _XFORM_ #define _XFORM_
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagXFORM typedef struct tagXFORM
{ {
FLOAT eM11; FLOAT eM11;
FLOAT eM12; FLOAT eM12;
FLOAT eM21; FLOAT eM21;
FLOAT eM22; FLOAT eM22;
FLOAT eDx; FLOAT eDx;
FLOAT eDy; FLOAT eDy;
} XFORM, *PXFORM, FAR *LPXFORM; } XFORM, *PXFORM, FAR *LPXFORM;
skipping to change at line 579 skipping to change at line 603
{ {
LONG bmType; LONG bmType;
LONG bmWidth; LONG bmWidth;
LONG bmHeight; LONG bmHeight;
LONG bmWidthBytes; LONG bmWidthBytes;
WORD bmPlanes; WORD bmPlanes;
WORD bmBitsPixel; WORD bmBitsPixel;
LPVOID bmBits; LPVOID bmBits;
} BITMAP, *PBITMAP, NEAR *NPBITMAP, FAR *LPBITMAP; } BITMAP, *PBITMAP, NEAR *NPBITMAP, FAR *LPBITMAP;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#include <pshpack1.h> #include <pshpack1.h>
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagRGBTRIPLE { typedef struct tagRGBTRIPLE {
BYTE rgbtBlue; BYTE rgbtBlue;
BYTE rgbtGreen; BYTE rgbtGreen;
BYTE rgbtRed; BYTE rgbtRed;
} RGBTRIPLE, *PRGBTRIPLE, NEAR *NPRGBTRIPLE, FAR *LPRGBTRIPLE; } RGBTRIPLE, *PRGBTRIPLE, NEAR *NPRGBTRIPLE, FAR *LPRGBTRIPLE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#include <poppack.h> #include <poppack.h>
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagRGBQUAD { typedef struct tagRGBQUAD {
BYTE rgbBlue; BYTE rgbBlue;
BYTE rgbGreen; BYTE rgbGreen;
BYTE rgbRed; BYTE rgbRed;
BYTE rgbReserved; BYTE rgbReserved;
} RGBQUAD; } RGBQUAD;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef RGBQUAD FAR* LPRGBQUAD; typedef RGBQUAD FAR* LPRGBQUAD;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
/* Image Color Matching color definitions */ /* Image Color Matching color definitions */
#define CS_ENABLE 0x00000001L #define CS_ENABLE 0x00000001L
#define CS_DISABLE 0x00000002L #define CS_DISABLE 0x00000002L
#define CS_DELETE_TRANSFORM 0x00000003L #define CS_DELETE_TRANSFORM 0x00000003L
/* Logcolorspace signature */ /* Logcolorspace signature */
#define LCS_SIGNATURE 'PSOC' #define LCS_SIGNATURE 'PSOC'
/* Logcolorspace lcsType values */ /* Logcolorspace lcsType values */
#define LCS_sRGB 'sRGB' #define LCS_sRGB 'sRGB'
#define LCS_WINDOWS_COLOR_SPACE 'Win ' // Windows default color space #define LCS_WINDOWS_COLOR_SPACE 'Win ' // Windows default color space
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef LONG LCSCSTYPE; typedef LONG LCSCSTYPE;
#define LCS_CALIBRATED_RGB 0x00000000L #define LCS_CALIBRATED_RGB 0x00000000L
typedef LONG LCSGAMUTMATCH; typedef LONG LCSGAMUTMATCH;
#define LCS_GM_BUSINESS 0x00000001L #define LCS_GM_BUSINESS 0x00000001L
#define LCS_GM_GRAPHICS 0x00000002L #define LCS_GM_GRAPHICS 0x00000002L
#define LCS_GM_IMAGES 0x00000004L #define LCS_GM_IMAGES 0x00000004L
#define LCS_GM_ABS_COLORIMETRIC 0x00000008L #define LCS_GM_ABS_COLORIMETRIC 0x00000008L
/* ICM Defines for results from CheckColorInGamut() */ /* ICM Defines for results from CheckColorInGamut() */
#define CM_OUT_OF_GAMUT 255 #define CM_OUT_OF_GAMUT 255
#define CM_IN_GAMUT 0 #define CM_IN_GAMUT 0
/* UpdateICMRegKey Constants */ /* UpdateICMRegKey Constants */
skipping to change at line 654 skipping to change at line 707
/* ICM Color Definitions */ /* ICM Color Definitions */
// The following two structures are used for defining RGB's in terms of CIEXYZ. // The following two structures are used for defining RGB's in terms of CIEXYZ.
typedef struct tagCIEXYZ typedef struct tagCIEXYZ
{ {
FXPT2DOT30 ciexyzX; FXPT2DOT30 ciexyzX;
FXPT2DOT30 ciexyzY; FXPT2DOT30 ciexyzY;
FXPT2DOT30 ciexyzZ; FXPT2DOT30 ciexyzZ;
} CIEXYZ; } CIEXYZ;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef CIEXYZ FAR *LPCIEXYZ; typedef CIEXYZ FAR *LPCIEXYZ;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagICEXYZTRIPLE typedef struct tagICEXYZTRIPLE
{ {
CIEXYZ ciexyzRed; CIEXYZ ciexyzRed;
CIEXYZ ciexyzGreen; CIEXYZ ciexyzGreen;
CIEXYZ ciexyzBlue; CIEXYZ ciexyzBlue;
} CIEXYZTRIPLE; } CIEXYZTRIPLE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef CIEXYZTRIPLE FAR *LPCIEXYZTRIPLE; typedef CIEXYZTRIPLE FAR *LPCIEXYZTRIPLE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
// The next structures the logical color space. Unlike pens and brushes, // The next structures the logical color space. Unlike pens and brushes,
// but like palettes, there is only one way to create a LogColorSpace. // but like palettes, there is only one way to create a LogColorSpace.
// A pointer to it must be passed, its elements can't be pushed as // A pointer to it must be passed, its elements can't be pushed as
// arguments. // arguments.
typedef struct tagLOGCOLORSPACEA { typedef struct tagLOGCOLORSPACEA {
DWORD lcsSignature; DWORD lcsSignature;
DWORD lcsVersion; DWORD lcsVersion;
DWORD lcsSize; DWORD lcsSize;
LCSCSTYPE lcsCSType; LCSCSTYPE lcsCSType;
skipping to change at line 701 skipping to change at line 780
WCHAR lcsFilename[MAX_PATH]; WCHAR lcsFilename[MAX_PATH];
} LOGCOLORSPACEW, *LPLOGCOLORSPACEW; } LOGCOLORSPACEW, *LPLOGCOLORSPACEW;
#ifdef UNICODE #ifdef UNICODE
typedef LOGCOLORSPACEW LOGCOLORSPACE; typedef LOGCOLORSPACEW LOGCOLORSPACE;
typedef LPLOGCOLORSPACEW LPLOGCOLORSPACE; typedef LPLOGCOLORSPACEW LPLOGCOLORSPACE;
#else #else
typedef LOGCOLORSPACEA LOGCOLORSPACE; typedef LOGCOLORSPACEA LOGCOLORSPACE;
typedef LPLOGCOLORSPACEA LPLOGCOLORSPACE; typedef LPLOGCOLORSPACEA LPLOGCOLORSPACE;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* structures for defining DIBs */ /* structures for defining DIBs */
typedef struct tagBITMAPCOREHEADER { typedef struct tagBITMAPCOREHEADER {
DWORD bcSize; /* used to get to color table */ DWORD bcSize; /* used to get to color table */
WORD bcWidth; WORD bcWidth;
WORD bcHeight; WORD bcHeight;
WORD bcPlanes; WORD bcPlanes;
WORD bcBitCount; WORD bcBitCount;
} BITMAPCOREHEADER, FAR *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER; } BITMAPCOREHEADER, FAR *LPBITMAPCOREHEADER, *PBITMAPCOREHEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagBITMAPINFOHEADER{ typedef struct tagBITMAPINFOHEADER{
DWORD biSize; DWORD biSize;
LONG biWidth; LONG biWidth;
LONG biHeight; LONG biHeight;
WORD biPlanes; WORD biPlanes;
WORD biBitCount; WORD biBitCount;
DWORD biCompression; DWORD biCompression;
DWORD biSizeImage; DWORD biSizeImage;
LONG biXPelsPerMeter; LONG biXPelsPerMeter;
LONG biYPelsPerMeter; LONG biYPelsPerMeter;
DWORD biClrUsed; DWORD biClrUsed;
DWORD biClrImportant; DWORD biClrImportant;
} BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER; } BITMAPINFOHEADER, FAR *LPBITMAPINFOHEADER, *PBITMAPINFOHEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct { typedef struct {
DWORD bV4Size; DWORD bV4Size;
LONG bV4Width; LONG bV4Width;
LONG bV4Height; LONG bV4Height;
WORD bV4Planes; WORD bV4Planes;
WORD bV4BitCount; WORD bV4BitCount;
DWORD bV4V4Compression; DWORD bV4V4Compression;
DWORD bV4SizeImage; DWORD bV4SizeImage;
LONG bV4XPelsPerMeter; LONG bV4XPelsPerMeter;
LONG bV4YPelsPerMeter; LONG bV4YPelsPerMeter;
skipping to change at line 749 skipping to change at line 847
DWORD bV4RedMask; DWORD bV4RedMask;
DWORD bV4GreenMask; DWORD bV4GreenMask;
DWORD bV4BlueMask; DWORD bV4BlueMask;
DWORD bV4AlphaMask; DWORD bV4AlphaMask;
DWORD bV4CSType; DWORD bV4CSType;
CIEXYZTRIPLE bV4Endpoints; CIEXYZTRIPLE bV4Endpoints;
DWORD bV4GammaRed; DWORD bV4GammaRed;
DWORD bV4GammaGreen; DWORD bV4GammaGreen;
DWORD bV4GammaBlue; DWORD bV4GammaBlue;
} BITMAPV4HEADER, FAR *LPBITMAPV4HEADER, *PBITMAPV4HEADER; } BITMAPV4HEADER, FAR *LPBITMAPV4HEADER, *PBITMAPV4HEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if (WINVER >= 0x0500) #if (WINVER >= 0x0500)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct { typedef struct {
DWORD bV5Size; DWORD bV5Size;
LONG bV5Width; LONG bV5Width;
LONG bV5Height; LONG bV5Height;
WORD bV5Planes; WORD bV5Planes;
WORD bV5BitCount; WORD bV5BitCount;
DWORD bV5Compression; DWORD bV5Compression;
DWORD bV5SizeImage; DWORD bV5SizeImage;
LONG bV5XPelsPerMeter; LONG bV5XPelsPerMeter;
LONG bV5YPelsPerMeter; LONG bV5YPelsPerMeter;
skipping to change at line 779 skipping to change at line 883
CIEXYZTRIPLE bV5Endpoints; CIEXYZTRIPLE bV5Endpoints;
DWORD bV5GammaRed; DWORD bV5GammaRed;
DWORD bV5GammaGreen; DWORD bV5GammaGreen;
DWORD bV5GammaBlue; DWORD bV5GammaBlue;
DWORD bV5Intent; DWORD bV5Intent;
DWORD bV5ProfileData; DWORD bV5ProfileData;
DWORD bV5ProfileSize; DWORD bV5ProfileSize;
DWORD bV5Reserved; DWORD bV5Reserved;
} BITMAPV5HEADER, FAR *LPBITMAPV5HEADER, *PBITMAPV5HEADER; } BITMAPV5HEADER, FAR *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
// Values for bV5CSType // Values for bV5CSType
#define PROFILE_LINKED 'LINK' #define PROFILE_LINKED 'LINK'
#define PROFILE_EMBEDDED 'MBED' #define PROFILE_EMBEDDED 'MBED'
#endif #endif
/* constants for the biCompression field */ /* constants for the biCompression field */
#define BI_RGB 0L #define BI_RGB 0L
#define BI_RLE8 1L #define BI_RLE8 1L
#define BI_RLE4 2L #define BI_RLE4 2L
#define BI_BITFIELDS 3L #define BI_BITFIELDS 3L
#define BI_JPEG 4L #define BI_JPEG 4L
#define BI_PNG 5L #define BI_PNG 5L
#if (_WIN32_WINNT >= _WIN32_WINNT_NT4) #if (_WIN32_WINNT >= _WIN32_WINNT_NT4)
#endif #endif
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagBITMAPINFO { typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader; BITMAPINFOHEADER bmiHeader;
RGBQUAD bmiColors[1]; RGBQUAD bmiColors[1];
} BITMAPINFO, FAR *LPBITMAPINFO, *PBITMAPINFO; } BITMAPINFO, FAR *LPBITMAPINFO, *PBITMAPINFO;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagBITMAPCOREINFO { typedef struct tagBITMAPCOREINFO {
BITMAPCOREHEADER bmciHeader; BITMAPCOREHEADER bmciHeader;
RGBTRIPLE bmciColors[1]; RGBTRIPLE bmciColors[1];
} BITMAPCOREINFO, FAR *LPBITMAPCOREINFO, *PBITMAPCOREINFO; } BITMAPCOREINFO, FAR *LPBITMAPCOREINFO, *PBITMAPCOREINFO;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#include <pshpack2.h> #include <pshpack2.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagBITMAPFILEHEADER { typedef struct tagBITMAPFILEHEADER {
WORD bfType; WORD bfType;
DWORD bfSize; DWORD bfSize;
WORD bfReserved1; WORD bfReserved1;
WORD bfReserved2; WORD bfReserved2;
DWORD bfOffBits; DWORD bfOffBits;
} BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER; } BITMAPFILEHEADER, FAR *LPBITMAPFILEHEADER, *PBITMAPFILEHEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#include <poppack.h> #include <poppack.h>
#define MAKEPOINTS(l) (*((POINTS FAR *)&(l))) #define MAKEPOINTS(l) (*((POINTS FAR *)&(l)))
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#ifndef NOFONTSIG #ifndef NOFONTSIG
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagFONTSIGNATURE typedef struct tagFONTSIGNATURE
{ {
DWORD fsUsb[4]; DWORD fsUsb[4];
DWORD fsCsb[2]; DWORD fsCsb[2];
} FONTSIGNATURE, *PFONTSIGNATURE,FAR *LPFONTSIGNATURE; } FONTSIGNATURE, *PFONTSIGNATURE,FAR *LPFONTSIGNATURE;
typedef struct tagCHARSETINFO typedef struct tagCHARSETINFO
{ {
UINT ciCharset; UINT ciCharset;
UINT ciACP; UINT ciACP;
FONTSIGNATURE fs; FONTSIGNATURE fs;
} CHARSETINFO, *PCHARSETINFO, NEAR *NPCHARSETINFO, FAR *LPCHARSETINFO; } CHARSETINFO, *PCHARSETINFO, NEAR *NPCHARSETINFO, FAR *LPCHARSETINFO;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define TCI_SRCCHARSET 1 #define TCI_SRCCHARSET 1
#define TCI_SRCCODEPAGE 2 #define TCI_SRCCODEPAGE 2
#define TCI_SRCFONTSIG 3 #define TCI_SRCFONTSIG 3
#if (_WIN32_WINNT >= _WIN32_WINNT_WINXP) #if (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
#define TCI_SRCLOCALE 0x1000 #define TCI_SRCLOCALE 0x1000
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WINXP) #endif // (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagLOCALESIGNATURE typedef struct tagLOCALESIGNATURE
{ {
DWORD lsUsb[4]; DWORD lsUsb[4];
DWORD lsCsbDefault[2]; DWORD lsCsbDefault[2];
DWORD lsCsbSupported[2]; DWORD lsCsbSupported[2];
} LOCALESIGNATURE, *PLOCALESIGNATURE,FAR *LPLOCALESIGNATURE; } LOCALESIGNATURE, *PLOCALESIGNATURE,FAR *LPLOCALESIGNATURE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#endif #endif
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#ifndef NOMETAFILE #ifndef NOMETAFILE
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
/* Clipboard Metafile Picture Structure */ /* Clipboard Metafile Picture Structure */
typedef struct tagHANDLETABLE typedef struct tagHANDLETABLE
{ {
HGDIOBJ objectHandle[1]; HGDIOBJ objectHandle[1];
} HANDLETABLE, *PHANDLETABLE, FAR *LPHANDLETABLE; } HANDLETABLE, *PHANDLETABLE, FAR *LPHANDLETABLE;
typedef struct tagMETARECORD typedef struct tagMETARECORD
{ {
DWORD rdSize; DWORD rdSize;
WORD rdFunction; WORD rdFunction;
WORD rdParm[1]; WORD rdParm[1];
skipping to change at line 862 skipping to change at line 1006
{ {
HGDIOBJ objectHandle[1]; HGDIOBJ objectHandle[1];
} HANDLETABLE, *PHANDLETABLE, FAR *LPHANDLETABLE; } HANDLETABLE, *PHANDLETABLE, FAR *LPHANDLETABLE;
typedef struct tagMETARECORD typedef struct tagMETARECORD
{ {
DWORD rdSize; DWORD rdSize;
WORD rdFunction; WORD rdFunction;
WORD rdParm[1]; WORD rdParm[1];
} METARECORD; } METARECORD;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagMETARECORD UNALIGNED *PMETARECORD; typedef struct tagMETARECORD UNALIGNED *PMETARECORD;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagMETARECORD UNALIGNED FAR *LPMETARECORD; typedef struct tagMETARECORD UNALIGNED FAR *LPMETARECORD;
typedef struct tagMETAFILEPICT typedef struct tagMETAFILEPICT
{ {
LONG mm; LONG mm;
LONG xExt; LONG xExt;
LONG yExt; LONG yExt;
HMETAFILE hMF; HMETAFILE hMF;
} METAFILEPICT, FAR *LPMETAFILEPICT; } METAFILEPICT, FAR *LPMETAFILEPICT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#include <pshpack2.h> #include <pshpack2.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagMETAHEADER typedef struct tagMETAHEADER
{ {
WORD mtType; WORD mtType;
WORD mtHeaderSize; WORD mtHeaderSize;
WORD mtVersion; WORD mtVersion;
DWORD mtSize; DWORD mtSize;
WORD mtNoObjects; WORD mtNoObjects;
DWORD mtMaxRecord; DWORD mtMaxRecord;
WORD mtNoParameters; WORD mtNoParameters;
} METAHEADER; } METAHEADER;
typedef struct tagMETAHEADER UNALIGNED *PMETAHEADER; typedef struct tagMETAHEADER UNALIGNED *PMETAHEADER;
typedef struct tagMETAHEADER UNALIGNED FAR *LPMETAHEADER; typedef struct tagMETAHEADER UNALIGNED FAR *LPMETAHEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#include <poppack.h> #include <poppack.h>
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
/* Enhanced Metafile structures */ /* Enhanced Metafile structures */
typedef struct tagENHMETARECORD typedef struct tagENHMETARECORD
{ {
DWORD iType; // Record type EMR_XXX DWORD iType; // Record type EMR_XXX
DWORD nSize; // Record size in bytes DWORD nSize; // Record size in bytes
DWORD dParm[1]; // Parameters DWORD dParm[1]; // Parameters
} ENHMETARECORD, *PENHMETARECORD, *LPENHMETARECORD; } ENHMETARECORD, *PENHMETARECORD, *LPENHMETARECORD;
typedef struct tagENHMETAHEADER typedef struct tagENHMETAHEADER
{ {
skipping to change at line 932 skipping to change at line 1103
// This is 0 if no pixel format is set // This is 0 if no pixel format is set
DWORD bOpenGL; // TRUE if OpenGL commands are present in DWORD bOpenGL; // TRUE if OpenGL commands are present in
// the metafile, otherwise FALSE // the metafile, otherwise FALSE
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
SIZEL szlMicrometers; // Size of the reference device in micrometers SIZEL szlMicrometers; // Size of the reference device in micrometers
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
} ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER; } ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#endif /* NOMETAFILE */ #endif /* NOMETAFILE */
#ifndef NOTEXTMETRIC #ifndef NOTEXTMETRIC
/* tmPitchAndFamily flags */ /* tmPitchAndFamily flags */
#define TMPF_FIXED_PITCH 0x01 #define TMPF_FIXED_PITCH 0x01
#define TMPF_VECTOR 0x02 #define TMPF_VECTOR 0x02
#define TMPF_DEVICE 0x08 #define TMPF_DEVICE 0x08
#define TMPF_TRUETYPE 0x04 #define TMPF_TRUETYPE 0x04
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
// //
// BCHAR definition for APPs // BCHAR definition for APPs
// //
#ifdef UNICODE #ifdef UNICODE
typedef WCHAR BCHAR; typedef WCHAR BCHAR;
#else #else
typedef BYTE BCHAR; typedef BYTE BCHAR;
#endif #endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifndef _TEXTMETRIC_DEFINED #ifndef _TEXTMETRIC_DEFINED
#define _TEXTMETRIC_DEFINED #define _TEXTMETRIC_DEFINED
#include <pshpack4.h> #include <pshpack4.h>
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagTEXTMETRICA typedef struct tagTEXTMETRICA
{ {
LONG tmHeight; LONG tmHeight;
LONG tmAscent; LONG tmAscent;
LONG tmDescent; LONG tmDescent;
LONG tmInternalLeading; LONG tmInternalLeading;
LONG tmExternalLeading; LONG tmExternalLeading;
LONG tmAveCharWidth; LONG tmAveCharWidth;
LONG tmMaxCharWidth; LONG tmMaxCharWidth;
LONG tmWeight; LONG tmWeight;
skipping to change at line 1011 skipping to change at line 1195
typedef TEXTMETRICW TEXTMETRIC; typedef TEXTMETRICW TEXTMETRIC;
typedef PTEXTMETRICW PTEXTMETRIC; typedef PTEXTMETRICW PTEXTMETRIC;
typedef NPTEXTMETRICW NPTEXTMETRIC; typedef NPTEXTMETRICW NPTEXTMETRIC;
typedef LPTEXTMETRICW LPTEXTMETRIC; typedef LPTEXTMETRICW LPTEXTMETRIC;
#else #else
typedef TEXTMETRICA TEXTMETRIC; typedef TEXTMETRICA TEXTMETRIC;
typedef PTEXTMETRICA PTEXTMETRIC; typedef PTEXTMETRICA PTEXTMETRIC;
typedef NPTEXTMETRICA NPTEXTMETRIC; typedef NPTEXTMETRICA NPTEXTMETRIC;
typedef LPTEXTMETRICA LPTEXTMETRIC; typedef LPTEXTMETRICA LPTEXTMETRIC;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#include <poppack.h> #include <poppack.h>
#endif // !_TEXTMETRIC_DEFINED #endif // !_TEXTMETRIC_DEFINED
/* ntmFlags field flags */ /* ntmFlags field flags */
#define NTM_REGULAR 0x00000040L #define NTM_REGULAR 0x00000040L
#define NTM_BOLD 0x00000020L #define NTM_BOLD 0x00000020L
#define NTM_ITALIC 0x00000001L #define NTM_ITALIC 0x00000001L
/* new in NT 5.0 */ /* new in NT 5.0 */
#define NTM_NONNEGATIVE_AC 0x00010000 #define NTM_NONNEGATIVE_AC 0x00010000
#define NTM_PS_OPENTYPE 0x00020000 #define NTM_PS_OPENTYPE 0x00020000
#define NTM_TT_OPENTYPE 0x00040000 #define NTM_TT_OPENTYPE 0x00040000
#define NTM_MULTIPLEMASTER 0x00080000 #define NTM_MULTIPLEMASTER 0x00080000
#define NTM_TYPE1 0x00100000 #define NTM_TYPE1 0x00100000
#define NTM_DSIG 0x00200000 #define NTM_DSIG 0x00200000
#include <pshpack4.h> #include <pshpack4.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagNEWTEXTMETRICA typedef struct tagNEWTEXTMETRICA
{ {
LONG tmHeight; LONG tmHeight;
LONG tmAscent; LONG tmAscent;
LONG tmDescent; LONG tmDescent;
LONG tmInternalLeading; LONG tmInternalLeading;
LONG tmExternalLeading; LONG tmExternalLeading;
LONG tmAveCharWidth; LONG tmAveCharWidth;
LONG tmMaxCharWidth; LONG tmMaxCharWidth;
LONG tmWeight; LONG tmWeight;
skipping to change at line 1094 skipping to change at line 1286
typedef NEWTEXTMETRICW NEWTEXTMETRIC; typedef NEWTEXTMETRICW NEWTEXTMETRIC;
typedef PNEWTEXTMETRICW PNEWTEXTMETRIC; typedef PNEWTEXTMETRICW PNEWTEXTMETRIC;
typedef NPNEWTEXTMETRICW NPNEWTEXTMETRIC; typedef NPNEWTEXTMETRICW NPNEWTEXTMETRIC;
typedef LPNEWTEXTMETRICW LPNEWTEXTMETRIC; typedef LPNEWTEXTMETRICW LPNEWTEXTMETRIC;
#else #else
typedef NEWTEXTMETRICA NEWTEXTMETRIC; typedef NEWTEXTMETRICA NEWTEXTMETRIC;
typedef PNEWTEXTMETRICA PNEWTEXTMETRIC; typedef PNEWTEXTMETRICA PNEWTEXTMETRIC;
typedef NPNEWTEXTMETRICA NPNEWTEXTMETRIC; typedef NPNEWTEXTMETRICA NPNEWTEXTMETRIC;
typedef LPNEWTEXTMETRICA LPNEWTEXTMETRIC; typedef LPNEWTEXTMETRICA LPNEWTEXTMETRIC;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#include <poppack.h> #include <poppack.h>
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagNEWTEXTMETRICEXA typedef struct tagNEWTEXTMETRICEXA
{ {
NEWTEXTMETRICA ntmTm; NEWTEXTMETRICA ntmTm;
FONTSIGNATURE ntmFontSig; FONTSIGNATURE ntmFontSig;
}NEWTEXTMETRICEXA; }NEWTEXTMETRICEXA;
typedef struct tagNEWTEXTMETRICEXW typedef struct tagNEWTEXTMETRICEXW
{ {
NEWTEXTMETRICW ntmTm; NEWTEXTMETRICW ntmTm;
FONTSIGNATURE ntmFontSig; FONTSIGNATURE ntmFontSig;
}NEWTEXTMETRICEXW; }NEWTEXTMETRICEXW;
#ifdef UNICODE #ifdef UNICODE
typedef NEWTEXTMETRICEXW NEWTEXTMETRICEX; typedef NEWTEXTMETRICEXW NEWTEXTMETRICEX;
#else #else
typedef NEWTEXTMETRICEXA NEWTEXTMETRICEX; typedef NEWTEXTMETRICEXA NEWTEXTMETRICEX;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* NOTEXTMETRIC */ #endif /* NOTEXTMETRIC */
/* GDI Logical Objects: */ /* GDI Logical Objects: */
/* Pel Array */ /* Pel Array */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagPELARRAY typedef struct tagPELARRAY
{ {
LONG paXCount; LONG paXCount;
LONG paYCount; LONG paYCount;
LONG paXExt; LONG paXExt;
LONG paYExt; LONG paYExt;
BYTE paRGBs; BYTE paRGBs;
} PELARRAY, *PPELARRAY, NEAR *NPPELARRAY, FAR *LPPELARRAY; } PELARRAY, *PPELARRAY, NEAR *NPPELARRAY, FAR *LPPELARRAY;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
/* Logical Brush (or Pattern) */ /* Logical Brush (or Pattern) */
typedef struct tagLOGBRUSH typedef struct tagLOGBRUSH
{ {
UINT lbStyle; UINT lbStyle;
COLORREF lbColor; COLORREF lbColor;
ULONG_PTR lbHatch; ULONG_PTR lbHatch;
} LOGBRUSH, *PLOGBRUSH, NEAR *NPLOGBRUSH, FAR *LPLOGBRUSH; } LOGBRUSH, *PLOGBRUSH, NEAR *NPLOGBRUSH, FAR *LPLOGBRUSH;
typedef struct tagLOGBRUSH32 typedef struct tagLOGBRUSH32
{ {
UINT lbStyle; UINT lbStyle;
COLORREF lbColor; COLORREF lbColor;
ULONG lbHatch; ULONG lbHatch;
} LOGBRUSH32, *PLOGBRUSH32, NEAR *NPLOGBRUSH32, FAR *LPLOGBRUSH32; } LOGBRUSH32, *PLOGBRUSH32, NEAR *NPLOGBRUSH32, FAR *LPLOGBRUSH32;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef LOGBRUSH PATTERN; typedef LOGBRUSH PATTERN;
typedef PATTERN *PPATTERN; typedef PATTERN *PPATTERN;
typedef PATTERN NEAR *NPPATTERN; typedef PATTERN NEAR *NPPATTERN;
typedef PATTERN FAR *LPPATTERN; typedef PATTERN FAR *LPPATTERN;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
/* Logical Pen */ /* Logical Pen */
typedef struct tagLOGPEN typedef struct tagLOGPEN
{ {
UINT lopnStyle; UINT lopnStyle;
POINT lopnWidth; POINT lopnWidth;
COLORREF lopnColor; COLORREF lopnColor;
} LOGPEN, *PLOGPEN, NEAR *NPLOGPEN, FAR *LPLOGPEN; } LOGPEN, *PLOGPEN, NEAR *NPLOGPEN, FAR *LPLOGPEN;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagEXTLOGPEN { typedef struct tagEXTLOGPEN {
DWORD elpPenStyle; DWORD elpPenStyle;
DWORD elpWidth; DWORD elpWidth;
UINT elpBrushStyle; UINT elpBrushStyle;
COLORREF elpColor; COLORREF elpColor;
ULONG_PTR elpHatch; ULONG_PTR elpHatch;
DWORD elpNumEntries; DWORD elpNumEntries;
DWORD elpStyleEntry[1]; DWORD elpStyleEntry[1];
} EXTLOGPEN, *PEXTLOGPEN, NEAR *NPEXTLOGPEN, FAR *LPEXTLOGPEN; } EXTLOGPEN, *PEXTLOGPEN, NEAR *NPEXTLOGPEN, FAR *LPEXTLOGPEN;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagEXTLOGPEN32 { typedef struct tagEXTLOGPEN32 {
DWORD elpPenStyle; DWORD elpPenStyle;
DWORD elpWidth; DWORD elpWidth;
UINT elpBrushStyle; UINT elpBrushStyle;
COLORREF elpColor; COLORREF elpColor;
ULONG elpHatch; ULONG elpHatch;
DWORD elpNumEntries; DWORD elpNumEntries;
DWORD elpStyleEntry[1]; DWORD elpStyleEntry[1];
} EXTLOGPEN32, *PEXTLOGPEN32, NEAR *NPEXTLOGPEN32, FAR *LPEXTLOGPEN32; } EXTLOGPEN32, *PEXTLOGPEN32, NEAR *NPEXTLOGPEN32, FAR *LPEXTLOGPEN32;
skipping to change at line 1191 skipping to change at line 1427
BYTE peFlags; BYTE peFlags;
} PALETTEENTRY, *PPALETTEENTRY, FAR *LPPALETTEENTRY; } PALETTEENTRY, *PPALETTEENTRY, FAR *LPPALETTEENTRY;
#endif // !_PALETTEENTRY_DEFINED #endif // !_PALETTEENTRY_DEFINED
#ifndef _LOGPALETTE_DEFINED #ifndef _LOGPALETTE_DEFINED
#define _LOGPALETTE_DEFINED #define _LOGPALETTE_DEFINED
/* Logical Palette */ /* Logical Palette */
typedef struct tagLOGPALETTE { typedef struct tagLOGPALETTE {
WORD palVersion; WORD palVersion;
WORD palNumEntries; WORD palNumEntries;
__field_ecount_opt(palNumEntries) PALETTEENTRY palPalEntry[1]; _Field_size_opt_(palNumEntries) PALETTEENTRY palPalEntry[1];
} LOGPALETTE, *PLOGPALETTE, NEAR *NPLOGPALETTE, FAR *LPLOGPALETTE; } LOGPALETTE, *PLOGPALETTE, NEAR *NPLOGPALETTE, FAR *LPLOGPALETTE;
#endif // !_LOGPALETTE_DEFINED #endif // !_LOGPALETTE_DEFINED
/* Logical Font */ /* Logical Font */
#define LF_FACESIZE 32 #define LF_FACESIZE 32
typedef struct tagLOGFONTA typedef struct tagLOGFONTA
{ {
LONG lfHeight; LONG lfHeight;
LONG lfWidth; LONG lfWidth;
skipping to change at line 1244 skipping to change at line 1480
typedef PLOGFONTW PLOGFONT; typedef PLOGFONTW PLOGFONT;
typedef NPLOGFONTW NPLOGFONT; typedef NPLOGFONTW NPLOGFONT;
typedef LPLOGFONTW LPLOGFONT; typedef LPLOGFONTW LPLOGFONT;
#else #else
typedef LOGFONTA LOGFONT; typedef LOGFONTA LOGFONT;
typedef PLOGFONTA PLOGFONT; typedef PLOGFONTA PLOGFONT;
typedef NPLOGFONTA NPLOGFONT; typedef NPLOGFONTA NPLOGFONT;
typedef LPLOGFONTA LPLOGFONT; typedef LPLOGFONTA LPLOGFONT;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#define LF_FULLFACESIZE 64 #define LF_FULLFACESIZE 64
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
/* Structure passed to FONTENUMPROC */ /* Structure passed to FONTENUMPROC */
typedef struct tagENUMLOGFONTA typedef struct tagENUMLOGFONTA
{ {
LOGFONTA elfLogFont; LOGFONTA elfLogFont;
BYTE elfFullName[LF_FULLFACESIZE]; BYTE elfFullName[LF_FULLFACESIZE];
BYTE elfStyle[LF_FACESIZE]; BYTE elfStyle[LF_FACESIZE];
} ENUMLOGFONTA, FAR* LPENUMLOGFONTA; } ENUMLOGFONTA, FAR* LPENUMLOGFONTA;
/* Structure passed to FONTENUMPROC */ /* Structure passed to FONTENUMPROC */
typedef struct tagENUMLOGFONTW typedef struct tagENUMLOGFONTW
{ {
skipping to change at line 1292 skipping to change at line 1534
} ENUMLOGFONTEXW, FAR *LPENUMLOGFONTEXW; } ENUMLOGFONTEXW, FAR *LPENUMLOGFONTEXW;
#ifdef UNICODE #ifdef UNICODE
typedef ENUMLOGFONTEXW ENUMLOGFONTEX; typedef ENUMLOGFONTEXW ENUMLOGFONTEX;
typedef LPENUMLOGFONTEXW LPENUMLOGFONTEX; typedef LPENUMLOGFONTEXW LPENUMLOGFONTEX;
#else #else
typedef ENUMLOGFONTEXA ENUMLOGFONTEX; typedef ENUMLOGFONTEXA ENUMLOGFONTEX;
typedef LPENUMLOGFONTEXA LPENUMLOGFONTEX; typedef LPENUMLOGFONTEXA LPENUMLOGFONTEX;
#endif // UNICODE #endif // UNICODE
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#define OUT_DEFAULT_PRECIS 0 #define OUT_DEFAULT_PRECIS 0
#define OUT_STRING_PRECIS 1 #define OUT_STRING_PRECIS 1
#define OUT_CHARACTER_PRECIS 2 #define OUT_CHARACTER_PRECIS 2
#define OUT_STROKE_PRECIS 3 #define OUT_STROKE_PRECIS 3
#define OUT_TT_PRECIS 4 #define OUT_TT_PRECIS 4
#define OUT_DEVICE_PRECIS 5 #define OUT_DEVICE_PRECIS 5
#define OUT_RASTER_PRECIS 6 #define OUT_RASTER_PRECIS 6
#define OUT_TT_ONLY_PRECIS 7 #define OUT_TT_ONLY_PRECIS 7
#define OUT_OUTLINE_PRECIS 8 #define OUT_OUTLINE_PRECIS 8
#define OUT_SCREEN_OUTLINE_PRECIS 9 #define OUT_SCREEN_OUTLINE_PRECIS 9
skipping to change at line 1419 skipping to change at line 1664
#define PAN_PROPORTION_INDEX 3 #define PAN_PROPORTION_INDEX 3
#define PAN_CONTRAST_INDEX 4 #define PAN_CONTRAST_INDEX 4
#define PAN_STROKEVARIATION_INDEX 5 #define PAN_STROKEVARIATION_INDEX 5
#define PAN_ARMSTYLE_INDEX 6 #define PAN_ARMSTYLE_INDEX 6
#define PAN_LETTERFORM_INDEX 7 #define PAN_LETTERFORM_INDEX 7
#define PAN_MIDLINE_INDEX 8 #define PAN_MIDLINE_INDEX 8
#define PAN_XHEIGHT_INDEX 9 #define PAN_XHEIGHT_INDEX 9
#define PAN_CULTURE_LATIN 0 #define PAN_CULTURE_LATIN 0
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagPANOSE typedef struct tagPANOSE
{ {
BYTE bFamilyType; BYTE bFamilyType;
BYTE bSerifStyle; BYTE bSerifStyle;
BYTE bWeight; BYTE bWeight;
BYTE bProportion; BYTE bProportion;
BYTE bContrast; BYTE bContrast;
BYTE bStrokeVariation; BYTE bStrokeVariation;
BYTE bArmStyle; BYTE bArmStyle;
BYTE bLetterform; BYTE bLetterform;
skipping to change at line 1580 skipping to change at line 1828
typedef PEXTLOGFONTW PEXTLOGFONT; typedef PEXTLOGFONTW PEXTLOGFONT;
typedef NPEXTLOGFONTW NPEXTLOGFONT; typedef NPEXTLOGFONTW NPEXTLOGFONT;
typedef LPEXTLOGFONTW LPEXTLOGFONT; typedef LPEXTLOGFONTW LPEXTLOGFONT;
#else #else
typedef EXTLOGFONTA EXTLOGFONT; typedef EXTLOGFONTA EXTLOGFONT;
typedef PEXTLOGFONTA PEXTLOGFONT; typedef PEXTLOGFONTA PEXTLOGFONT;
typedef NPEXTLOGFONTA NPEXTLOGFONT; typedef NPEXTLOGFONTA NPEXTLOGFONT;
typedef LPEXTLOGFONTA LPEXTLOGFONT; typedef LPEXTLOGFONTA LPEXTLOGFONT;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#define ELF_VERSION 0 #define ELF_VERSION 0
#define ELF_CULTURE_LATIN 0 #define ELF_CULTURE_LATIN 0
/* EnumFonts Masks */ /* EnumFonts Masks */
#define RASTER_FONTTYPE 0x0001 #define RASTER_FONTTYPE 0x0001
#define DEVICE_FONTTYPE 0x0002 #define DEVICE_FONTTYPE 0x0002
#define TRUETYPE_FONTTYPE 0x0004 #define TRUETYPE_FONTTYPE 0x0004
#define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DW ORD)(BYTE)(b))<<16))) #define RGB(r,g,b) ((COLORREF)(((BYTE)(r)|((WORD)((BYTE)(g))<<8))|(((DW ORD)(BYTE)(b))<<16)))
#define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b)) #define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
skipping to change at line 1921 skipping to change at line 2172
/* ExtFloodFill style flags */ /* ExtFloodFill style flags */
#define FLOODFILLBORDER 0 #define FLOODFILLBORDER 0
#define FLOODFILLSURFACE 1 #define FLOODFILLSURFACE 1
/* size of a device name string */ /* size of a device name string */
#define CCHDEVICENAME 32 #define CCHDEVICENAME 32
/* size of a form name string */ /* size of a form name string */
#define CCHFORMNAME 32 #define CCHFORMNAME 32
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
#if (_WIN32_WINNT >= ((OSVER(NTDDI_WINXPSP2)) >> 16)) #if (_WIN32_WINNT >= ((OSVER(NTDDI_WINXPSP2)) >> 16))
typedef struct _devicemodeA { typedef struct _devicemodeA {
BYTE dmDeviceName[CCHDEVICENAME]; BYTE dmDeviceName[CCHDEVICENAME];
WORD dmSpecVersion; WORD dmSpecVersion;
WORD dmDriverVersion; WORD dmDriverVersion;
WORD dmSize; WORD dmSize;
WORD dmDriverExtra; WORD dmDriverExtra;
DWORD dmFields; DWORD dmFields;
union { union {
/* printer only fields */ /* printer only fields */
skipping to change at line 2150 skipping to change at line 2404
typedef PDEVMODEW PDEVMODE; typedef PDEVMODEW PDEVMODE;
typedef NPDEVMODEW NPDEVMODE; typedef NPDEVMODEW NPDEVMODE;
typedef LPDEVMODEW LPDEVMODE; typedef LPDEVMODEW LPDEVMODE;
#else #else
typedef DEVMODEA DEVMODE; typedef DEVMODEA DEVMODE;
typedef PDEVMODEA PDEVMODE; typedef PDEVMODEA PDEVMODE;
typedef NPDEVMODEA NPDEVMODE; typedef NPDEVMODEA NPDEVMODE;
typedef LPDEVMODEA LPDEVMODE; typedef LPDEVMODEA LPDEVMODE;
#endif // UNICODE #endif // UNICODE
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WINXP) #endif // (_WIN32_WINNT >= _WIN32_WINNT_WINXP)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
/* current version of specification */ /* current version of specification */
#if (WINVER >= 0x0500) || (_WIN32_WINNT >= _WIN32_WINNT_NT4) #if (WINVER >= 0x0500) || (_WIN32_WINNT >= _WIN32_WINNT_NT4)
#define DM_SPECVERSION 0x0401 #define DM_SPECVERSION 0x0401
#elif (WINVER >= 0x0400) #elif (WINVER >= 0x0400)
#define DM_SPECVERSION 0x0400 #define DM_SPECVERSION 0x0400
#else #else
#define DM_SPECVERSION 0x0320 #define DM_SPECVERSION 0x0320
#endif /* WINVER */ #endif /* WINVER */
/* field selection bits */ /* field selection bits */
skipping to change at line 2449 skipping to change at line 2707
#define DMDITHER_ERRORDIFFUSION 5 /* LineArt dithering */ #define DMDITHER_ERRORDIFFUSION 5 /* LineArt dithering */
#define DMDITHER_RESERVED6 6 /* LineArt dithering */ #define DMDITHER_RESERVED6 6 /* LineArt dithering */
#define DMDITHER_RESERVED7 7 /* LineArt dithering */ #define DMDITHER_RESERVED7 7 /* LineArt dithering */
#define DMDITHER_RESERVED8 8 /* LineArt dithering */ #define DMDITHER_RESERVED8 8 /* LineArt dithering */
#define DMDITHER_RESERVED9 9 /* LineArt dithering */ #define DMDITHER_RESERVED9 9 /* LineArt dithering */
#define DMDITHER_GRAYSCALE 10 /* Device does grayscaling */ #define DMDITHER_GRAYSCALE 10 /* Device does grayscaling */
#define DMDITHER_USER 256 /* Device-specific dithers start here */ #define DMDITHER_USER 256 /* Device-specific dithers start here */
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct _DISPLAY_DEVICEA { typedef struct _DISPLAY_DEVICEA {
DWORD cb; DWORD cb;
CHAR DeviceName[32]; CHAR DeviceName[32];
CHAR DeviceString[128]; CHAR DeviceString[128];
DWORD StateFlags; DWORD StateFlags;
CHAR DeviceID[128]; CHAR DeviceID[128];
CHAR DeviceKey[128]; CHAR DeviceKey[128];
} DISPLAY_DEVICEA, *PDISPLAY_DEVICEA, *LPDISPLAY_DEVICEA; } DISPLAY_DEVICEA, *PDISPLAY_DEVICEA, *LPDISPLAY_DEVICEA;
typedef struct _DISPLAY_DEVICEW { typedef struct _DISPLAY_DEVICEW {
DWORD cb; DWORD cb;
skipping to change at line 2475 skipping to change at line 2736
#ifdef UNICODE #ifdef UNICODE
typedef DISPLAY_DEVICEW DISPLAY_DEVICE; typedef DISPLAY_DEVICEW DISPLAY_DEVICE;
typedef PDISPLAY_DEVICEW PDISPLAY_DEVICE; typedef PDISPLAY_DEVICEW PDISPLAY_DEVICE;
typedef LPDISPLAY_DEVICEW LPDISPLAY_DEVICE; typedef LPDISPLAY_DEVICEW LPDISPLAY_DEVICE;
#else #else
typedef DISPLAY_DEVICEA DISPLAY_DEVICE; typedef DISPLAY_DEVICEA DISPLAY_DEVICE;
typedef PDISPLAY_DEVICEA PDISPLAY_DEVICE; typedef PDISPLAY_DEVICEA PDISPLAY_DEVICE;
typedef LPDISPLAY_DEVICEA LPDISPLAY_DEVICE; typedef LPDISPLAY_DEVICEA LPDISPLAY_DEVICE;
#endif // UNICODE #endif // UNICODE
#define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001 #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002 #pragma endregion
#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008 #define DISPLAY_DEVICE_ATTACHED_TO_DESKTOP 0x00000001
#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010 #define DISPLAY_DEVICE_MULTI_DRIVER 0x00000002
#define DISPLAY_DEVICE_PRIMARY_DEVICE 0x00000004
#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#define DISPLAY_DEVICE_REMOVABLE 0x00000020 #define DISPLAY_DEVICE_REMOVABLE 0x00000020
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#define DISPLAY_DEVICE_MODESPRUNED 0x08000000 #if (_WIN32_WINNT >= _WIN32_WINNT_WIN8)
#define DISPLAY_DEVICE_ACC_DRIVER 0x00000040
#endif
#define DISPLAY_DEVICE_MODESPRUNED 0x08000000
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#define DISPLAY_DEVICE_REMOTE 0x04000000 #define DISPLAY_DEVICE_REMOTE 0x04000000
#define DISPLAY_DEVICE_DISCONNECT 0x02000000 #define DISPLAY_DEVICE_DISCONNECT 0x02000000
#endif #endif
#define DISPLAY_DEVICE_TS_COMPATIBLE 0x00200000 #define DISPLAY_DEVICE_TS_COMPATIBLE 0x00200000
#if (_WIN32_WINNT >= _WIN32_WINNT_LONGHORN) #if (_WIN32_WINNT >= _WIN32_WINNT_LONGHORN)
#define DISPLAY_DEVICE_UNSAFE_MODES_ON 0x00080000 #define DISPLAY_DEVICE_UNSAFE_MODES_ON 0x00080000
#endif #endif
/* Child device state */ /* Child device state */
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#define DISPLAY_DEVICE_ACTIVE 0x00000001 #define DISPLAY_DEVICE_ACTIVE 0x00000001
#define DISPLAY_DEVICE_ATTACHED 0x00000002 #define DISPLAY_DEVICE_ATTACHED 0x00000002
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#if(WINVER >= 0x0601) #if(WINVER >= 0x0601)
#define DISPLAYCONFIG_MAXPATH 1024 // Maximum display path in system. #define DISPLAYCONFIG_MAXPATH 1024 // Maximum display path in system.
// Max adapter (16) * Max source (16) * // Max adapter (16) * Max source (16) *
// Max clone pre source (4) // Max clone pre source (4)
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct DISPLAYCONFIG_RATIONAL typedef struct DISPLAYCONFIG_RATIONAL
{ {
UINT32 Numerator; UINT32 Numerator;
UINT32 Denominator; UINT32 Denominator;
} DISPLAYCONFIG_RATIONAL; } DISPLAYCONFIG_RATIONAL;
typedef enum typedef enum
{ {
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER = -1, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_OTHER = -1,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15 = 0, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HD15 = 0,
skipping to change at line 2528 skipping to change at line 2798
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI = 4, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DVI = 4,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI = 5, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_HDMI = 5,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS = 6, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_LVDS = 6,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN = 8, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_D_JPN = 8,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI = 9, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDI = 9,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL = 10, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EXTERNAL = 10,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED = 11, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED = 11,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL = 12, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EXTERNAL = 12,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED = 13, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_UDI_EMBEDDED = 13,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE = 14, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_SDTVDONGLE = 14,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_MIRACAST = 15,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL = 0x80000000, DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL = 0x80000000,
DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32 = 0xFFFFFFFF DISPLAYCONFIG_OUTPUT_TECHNOLOGY_FORCE_UINT32 = 0xFFFFFFFF
} DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY; } DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY;
typedef enum typedef enum
{ {
DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED = 0, DISPLAYCONFIG_SCANLINE_ORDERING_UNSPECIFIED = 0,
DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE = 1, DISPLAYCONFIG_SCANLINE_ORDERING_PROGRESSIVE = 1,
DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED = 2, DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED = 2,
DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST = DISPLAYCONFIG_ SCANLINE_ORDERING_INTERLACED, DISPLAYCONFIG_SCANLINE_ORDERING_INTERLACED_UPPERFIELDFIRST = DISPLAYCONFIG_ SCANLINE_ORDERING_INTERLACED,
skipping to change at line 2555 skipping to change at line 2826
UINT32 cy; UINT32 cy;
} DISPLAYCONFIG_2DREGION; } DISPLAYCONFIG_2DREGION;
typedef struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO typedef struct DISPLAYCONFIG_VIDEO_SIGNAL_INFO
{ {
UINT64 pixelRate; UINT64 pixelRate;
DISPLAYCONFIG_RATIONAL hSyncFreq; DISPLAYCONFIG_RATIONAL hSyncFreq;
DISPLAYCONFIG_RATIONAL vSyncFreq; DISPLAYCONFIG_RATIONAL vSyncFreq;
DISPLAYCONFIG_2DREGION activeSize; DISPLAYCONFIG_2DREGION activeSize;
DISPLAYCONFIG_2DREGION totalSize; DISPLAYCONFIG_2DREGION totalSize;
UINT32 videoStandard;
union
{
struct
{
UINT32 videoStandard : 16;
// Vertical refresh frequency divider
UINT32 vSyncFreqDivider : 6;
UINT32 reserved : 10;
} AdditionalSignalInfo;
UINT32 videoStandard;
};
// Scan line ordering (e.g. progressive, interlaced).
DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering; DISPLAYCONFIG_SCANLINE_ORDERING scanLineOrdering;
} DISPLAYCONFIG_VIDEO_SIGNAL_INFO; } DISPLAYCONFIG_VIDEO_SIGNAL_INFO;
typedef enum typedef enum
{ {
DISPLAYCONFIG_SCALING_IDENTITY = 1, DISPLAYCONFIG_SCALING_IDENTITY = 1,
DISPLAYCONFIG_SCALING_CENTERED = 2, DISPLAYCONFIG_SCALING_CENTERED = 2,
DISPLAYCONFIG_SCALING_STRETCHED = 3, DISPLAYCONFIG_SCALING_STRETCHED = 3,
DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX = 4, DISPLAYCONFIG_SCALING_ASPECTRATIOCENTEREDMAX = 4,
DISPLAYCONFIG_SCALING_CUSTOM = 5, DISPLAYCONFIG_SCALING_CUSTOM = 5,
skipping to change at line 2689 skipping to change at line 2976
DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32 = 0xFFFFFFFF DISPLAYCONFIG_TOPOLOGY_FORCE_UINT32 = 0xFFFFFFFF
} DISPLAYCONFIG_TOPOLOGY_ID; } DISPLAYCONFIG_TOPOLOGY_ID;
typedef enum typedef enum
{ {
DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME = 1, DISPLAYCONFIG_DEVICE_INFO_GET_SOURCE_NAME = 1,
DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME = 2, DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME = 2,
DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE = 3, DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_PREFERRED_MODE = 3,
DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME = 4, DISPLAYCONFIG_DEVICE_INFO_GET_ADAPTER_NAME = 4,
DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE = 5, DISPLAYCONFIG_DEVICE_INFO_SET_TARGET_PERSISTENCE = 5,
DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_BASE_TYPE = 6,
DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32 = 0xFFFFFFFF DISPLAYCONFIG_DEVICE_INFO_FORCE_UINT32 = 0xFFFFFFFF
} DISPLAYCONFIG_DEVICE_INFO_TYPE; } DISPLAYCONFIG_DEVICE_INFO_TYPE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct DISPLAYCONFIG_DEVICE_INFO_HEADER typedef struct DISPLAYCONFIG_DEVICE_INFO_HEADER
{ {
DISPLAYCONFIG_DEVICE_INFO_TYPE type; DISPLAYCONFIG_DEVICE_INFO_TYPE type;
UINT32 size; UINT32 size;
LUID adapterId; LUID adapterId;
UINT32 id; UINT32 id;
} DISPLAYCONFIG_DEVICE_INFO_HEADER; } DISPLAYCONFIG_DEVICE_INFO_HEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct DISPLAYCONFIG_SOURCE_DEVICE_NAME typedef struct DISPLAYCONFIG_SOURCE_DEVICE_NAME
{ {
DISPLAYCONFIG_DEVICE_INFO_HEADER header; DISPLAYCONFIG_DEVICE_INFO_HEADER header;
WCHAR viewGdiDeviceName[CCHDEVICENAME] ; WCHAR viewGdiDeviceName[CCHDEVICENAME] ;
} DISPLAYCONFIG_SOURCE_DEVICE_NAME; } DISPLAYCONFIG_SOURCE_DEVICE_NAME;
typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS typedef struct DISPLAYCONFIG_TARGET_DEVICE_NAME_FLAGS
{ {
union union
{ {
skipping to change at line 2747 skipping to change at line 3047
UINT32 height; UINT32 height;
DISPLAYCONFIG_TARGET_MODE targetMode; DISPLAYCONFIG_TARGET_MODE targetMode;
} DISPLAYCONFIG_TARGET_PREFERRED_MODE; } DISPLAYCONFIG_TARGET_PREFERRED_MODE;
typedef struct DISPLAYCONFIG_ADAPTER_NAME typedef struct DISPLAYCONFIG_ADAPTER_NAME
{ {
DISPLAYCONFIG_DEVICE_INFO_HEADER header; DISPLAYCONFIG_DEVICE_INFO_HEADER header;
WCHAR adapterDevicePath[128]; WCHAR adapterDevicePath[128];
} DISPLAYCONFIG_ADAPTER_NAME; } DISPLAYCONFIG_ADAPTER_NAME;
typedef struct DISPLAYCONFIG_TARGET_BASE_TYPE {
DISPLAYCONFIG_DEVICE_INFO_HEADER header;
DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY baseOutputTechnology;
} DISPLAYCONFIG_TARGET_BASE_TYPE;
typedef struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE typedef struct DISPLAYCONFIG_SET_TARGET_PERSISTENCE
{ {
DISPLAYCONFIG_DEVICE_INFO_HEADER header; DISPLAYCONFIG_DEVICE_INFO_HEADER header;
union union
{ {
struct struct
{ {
UINT32 bootPersistenceOn : 1; UINT32 bootPersistenceOn : 1;
UINT32 reserved : 31; UINT32 reserved : 31;
}; };
UINT32 value; UINT32 value;
}; };
} DISPLAYCONFIG_SET_TARGET_PERSISTENCE; } DISPLAYCONFIG_SET_TARGET_PERSISTENCE;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
// //
// Definitions to be used by GetDisplayConfigBufferSizes and QueryDisplayConfig. // Definitions to be used by GetDisplayConfigBufferSizes and QueryDisplayConfig.
// //
#define QDC_ALL_PATHS 0x00000001 #define QDC_ALL_PATHS 0x00000001
#define QDC_ONLY_ACTIVE_PATHS 0x00000002 #define QDC_ONLY_ACTIVE_PATHS 0x00000002
#define QDC_DATABASE_CURRENT 0x00000004 #define QDC_DATABASE_CURRENT 0x00000004
// //
// Definitions used by SetDisplayConfig. // Definitions used by SetDisplayConfig.
skipping to change at line 2796 skipping to change at line 3104
#define SDC_PATH_PERSIST_IF_REQUIRED 0x00000800 #define SDC_PATH_PERSIST_IF_REQUIRED 0x00000800
#define SDC_FORCE_MODE_ENUMERATION 0x00001000 #define SDC_FORCE_MODE_ENUMERATION 0x00001000
#define SDC_ALLOW_PATH_ORDER_CHANGES 0x00002000 #define SDC_ALLOW_PATH_ORDER_CHANGES 0x00002000
#endif /* WINVER >= 0x0601 */ #endif /* WINVER >= 0x0601 */
/* GetRegionData/ExtCreateRegion */ /* GetRegionData/ExtCreateRegion */
#define RDH_RECTANGLES 1 #define RDH_RECTANGLES 1
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct _RGNDATAHEADER { typedef struct _RGNDATAHEADER {
DWORD dwSize; DWORD dwSize;
DWORD iType; DWORD iType;
DWORD nCount; DWORD nCount;
DWORD nRgnSize; DWORD nRgnSize;
RECT rcBound; RECT rcBound;
} RGNDATAHEADER, *PRGNDATAHEADER; } RGNDATAHEADER, *PRGNDATAHEADER;
typedef struct _RGNDATA { typedef struct _RGNDATA {
RGNDATAHEADER rdh; RGNDATAHEADER rdh;
char Buffer[1]; char Buffer[1];
} RGNDATA, *PRGNDATA, NEAR *NPRGNDATA, FAR *LPRGNDATA; } RGNDATA, *PRGNDATA, NEAR *NPRGNDATA, FAR *LPRGNDATA;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
/* for GetRandomRgn */ /* for GetRandomRgn */
#define SYSRGN 4 #define SYSRGN 4
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct _ABC { typedef struct _ABC {
int abcA; int abcA;
UINT abcB; UINT abcB;
int abcC; int abcC;
} ABC, *PABC, NEAR *NPABC, FAR *LPABC; } ABC, *PABC, NEAR *NPABC, FAR *LPABC;
typedef struct _ABCFLOAT { typedef struct _ABCFLOAT {
FLOAT abcfA; FLOAT abcfA;
FLOAT abcfB; FLOAT abcfB;
FLOAT abcfC; FLOAT abcfC;
} ABCFLOAT, *PABCFLOAT, NEAR *NPABCFLOAT, FAR *LPABCFLOAT; } ABCFLOAT, *PABCFLOAT, NEAR *NPABCFLOAT, FAR *LPABCFLOAT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifndef NOTEXTMETRIC #ifndef NOTEXTMETRIC
#ifdef _MAC #ifdef _MAC
#include "pshpack4.h" #include "pshpack4.h"
#endif #endif
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct _OUTLINETEXTMETRICA { typedef struct _OUTLINETEXTMETRICA {
UINT otmSize; UINT otmSize;
TEXTMETRICA otmTextMetrics; TEXTMETRICA otmTextMetrics;
BYTE otmFiller; BYTE otmFiller;
PANOSE otmPanoseNumber; PANOSE otmPanoseNumber;
UINT otmfsSelection; UINT otmfsSelection;
UINT otmfsType; UINT otmfsType;
int otmsCharSlopeRise; int otmsCharSlopeRise;
int otmsCharSlopeRun; int otmsCharSlopeRun;
int otmItalicAngle; int otmItalicAngle;
skipping to change at line 2909 skipping to change at line 3233
typedef POUTLINETEXTMETRICW POUTLINETEXTMETRIC; typedef POUTLINETEXTMETRICW POUTLINETEXTMETRIC;
typedef NPOUTLINETEXTMETRICW NPOUTLINETEXTMETRIC; typedef NPOUTLINETEXTMETRICW NPOUTLINETEXTMETRIC;
typedef LPOUTLINETEXTMETRICW LPOUTLINETEXTMETRIC; typedef LPOUTLINETEXTMETRICW LPOUTLINETEXTMETRIC;
#else #else
typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC; typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC;
typedef POUTLINETEXTMETRICA POUTLINETEXTMETRIC; typedef POUTLINETEXTMETRICA POUTLINETEXTMETRIC;
typedef NPOUTLINETEXTMETRICA NPOUTLINETEXTMETRIC; typedef NPOUTLINETEXTMETRICA NPOUTLINETEXTMETRIC;
typedef LPOUTLINETEXTMETRICA LPOUTLINETEXTMETRIC; typedef LPOUTLINETEXTMETRICA LPOUTLINETEXTMETRIC;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifdef _MAC #ifdef _MAC
#include "poppack.h" #include "poppack.h"
#endif #endif
#endif /* NOTEXTMETRIC */ #endif /* NOTEXTMETRIC */
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct tagPOLYTEXTA typedef struct tagPOLYTEXTA
{ {
int x; int x;
int y; int y;
UINT n; UINT n;
LPCSTR lpstr; LPCSTR lpstr;
UINT uiFlags; UINT uiFlags;
RECT rcl; RECT rcl;
int *pdx; int *pdx;
} POLYTEXTA, *PPOLYTEXTA, NEAR *NPPOLYTEXTA, FAR *LPPOLYTEXTA; } POLYTEXTA, *PPOLYTEXTA, NEAR *NPPOLYTEXTA, FAR *LPPOLYTEXTA;
skipping to change at line 2947 skipping to change at line 3277
typedef PPOLYTEXTW PPOLYTEXT; typedef PPOLYTEXTW PPOLYTEXT;
typedef NPPOLYTEXTW NPPOLYTEXT; typedef NPPOLYTEXTW NPPOLYTEXT;
typedef LPPOLYTEXTW LPPOLYTEXT; typedef LPPOLYTEXTW LPPOLYTEXT;
#else #else
typedef POLYTEXTA POLYTEXT; typedef POLYTEXTA POLYTEXT;
typedef PPOLYTEXTA PPOLYTEXT; typedef PPOLYTEXTA PPOLYTEXT;
typedef NPPOLYTEXTA NPPOLYTEXT; typedef NPPOLYTEXTA NPPOLYTEXT;
typedef LPPOLYTEXTA LPPOLYTEXT; typedef LPPOLYTEXTA LPPOLYTEXT;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct _FIXED { typedef struct _FIXED {
#ifndef _MAC #ifndef _MAC
WORD fract; WORD fract;
short value; short value;
#else #else
short value; short value;
WORD fract; WORD fract;
#endif #endif
} FIXED; } FIXED;
skipping to change at line 2972 skipping to change at line 3308
} MAT2, FAR *LPMAT2; } MAT2, FAR *LPMAT2;
typedef struct _GLYPHMETRICS { typedef struct _GLYPHMETRICS {
UINT gmBlackBoxX; UINT gmBlackBoxX;
UINT gmBlackBoxY; UINT gmBlackBoxY;
POINT gmptGlyphOrigin; POINT gmptGlyphOrigin;
short gmCellIncX; short gmCellIncX;
short gmCellIncY; short gmCellIncY;
} GLYPHMETRICS, FAR *LPGLYPHMETRICS; } GLYPHMETRICS, FAR *LPGLYPHMETRICS;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
// GetGlyphOutline constants // GetGlyphOutline constants
#define GGO_METRICS 0 #define GGO_METRICS 0
#define GGO_BITMAP 1 #define GGO_BITMAP 1
#define GGO_NATIVE 2 #define GGO_NATIVE 2
#define GGO_BEZIER 3 #define GGO_BEZIER 3
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define GGO_GRAY2_BITMAP 4 #define GGO_GRAY2_BITMAP 4
#define GGO_GRAY4_BITMAP 5 #define GGO_GRAY4_BITMAP 5
skipping to change at line 2996 skipping to change at line 3335
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#define GGO_UNHINTED 0x0100 #define GGO_UNHINTED 0x0100
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#define TT_POLYGON_TYPE 24 #define TT_POLYGON_TYPE 24
#define TT_PRIM_LINE 1 #define TT_PRIM_LINE 1
#define TT_PRIM_QSPLINE 2 #define TT_PRIM_QSPLINE 2
#define TT_PRIM_CSPLINE 3 #define TT_PRIM_CSPLINE 3
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagPOINTFX typedef struct tagPOINTFX
{ {
FIXED x; FIXED x;
FIXED y; FIXED y;
} POINTFX, FAR* LPPOINTFX; } POINTFX, FAR* LPPOINTFX;
typedef struct tagTTPOLYCURVE typedef struct tagTTPOLYCURVE
{ {
WORD wType; WORD wType;
WORD cpfx; WORD cpfx;
POINTFX apfx[1]; POINTFX apfx[1];
} TTPOLYCURVE, FAR* LPTTPOLYCURVE; } TTPOLYCURVE, FAR* LPTTPOLYCURVE;
typedef struct tagTTPOLYGONHEADER typedef struct tagTTPOLYGONHEADER
{ {
DWORD cb; DWORD cb;
DWORD dwType; DWORD dwType;
POINTFX pfxStart; POINTFX pfxStart;
} TTPOLYGONHEADER, FAR* LPTTPOLYGONHEADER; } TTPOLYGONHEADER, FAR* LPTTPOLYGONHEADER;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define GCP_DBCS 0x0001 #define GCP_DBCS 0x0001
#define GCP_REORDER 0x0002 #define GCP_REORDER 0x0002
#define GCP_USEKERNING 0x0008 #define GCP_USEKERNING 0x0008
#define GCP_GLYPHSHAPE 0x0010 #define GCP_GLYPHSHAPE 0x0010
#define GCP_LIGATE 0x0020 #define GCP_LIGATE 0x0020
////#define GCP_GLYPHINDEXING 0x0080 ////#define GCP_GLYPHINDEXING 0x0080
#define GCP_DIACRITIC 0x0100 #define GCP_DIACRITIC 0x0100
#define GCP_KASHIDA 0x0400 #define GCP_KASHIDA 0x0400
#define GCP_ERROR 0x8000 #define GCP_ERROR 0x8000
skipping to change at line 3058 skipping to change at line 3403
#define GCPCLASS_LATINNUMERICSEPARATOR 7 #define GCPCLASS_LATINNUMERICSEPARATOR 7
#define GCPCLASS_NUMERICSEPARATOR 8 #define GCPCLASS_NUMERICSEPARATOR 8
#define GCPCLASS_PREBOUNDLTR 0x80 #define GCPCLASS_PREBOUNDLTR 0x80
#define GCPCLASS_PREBOUNDRTL 0x40 #define GCPCLASS_PREBOUNDRTL 0x40
#define GCPCLASS_POSTBOUNDLTR 0x20 #define GCPCLASS_POSTBOUNDLTR 0x20
#define GCPCLASS_POSTBOUNDRTL 0x10 #define GCPCLASS_POSTBOUNDRTL 0x10
#define GCPGLYPH_LINKBEFORE 0x8000 #define GCPGLYPH_LINKBEFORE 0x8000
#define GCPGLYPH_LINKAFTER 0x4000 #define GCPGLYPH_LINKAFTER 0x4000
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagGCP_RESULTSA typedef struct tagGCP_RESULTSA
{ {
DWORD lStructSize; DWORD lStructSize;
LPSTR lpOutString; LPSTR lpOutString;
UINT FAR *lpOrder; UINT FAR *lpOrder;
int FAR *lpDx; int FAR *lpDx;
int FAR *lpCaretPos; int FAR *lpCaretPos;
LPSTR lpClass; LPSTR lpClass;
LPWSTR lpGlyphs; LPWSTR lpGlyphs;
UINT nGlyphs; UINT nGlyphs;
skipping to change at line 3089 skipping to change at line 3437
UINT nGlyphs; UINT nGlyphs;
int nMaxFit; int nMaxFit;
} GCP_RESULTSW, FAR* LPGCP_RESULTSW; } GCP_RESULTSW, FAR* LPGCP_RESULTSW;
#ifdef UNICODE #ifdef UNICODE
typedef GCP_RESULTSW GCP_RESULTS; typedef GCP_RESULTSW GCP_RESULTS;
typedef LPGCP_RESULTSW LPGCP_RESULTS; typedef LPGCP_RESULTSW LPGCP_RESULTS;
#else #else
typedef GCP_RESULTSA GCP_RESULTS; typedef GCP_RESULTSA GCP_RESULTS;
typedef LPGCP_RESULTSA LPGCP_RESULTS; typedef LPGCP_RESULTSA LPGCP_RESULTS;
#endif // UNICODE #endif // UNICODE
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct _RASTERIZER_STATUS { typedef struct _RASTERIZER_STATUS {
short nSize; short nSize;
short wFlags; short wFlags;
short nLanguageID; short nLanguageID;
} RASTERIZER_STATUS, FAR *LPRASTERIZER_STATUS; } RASTERIZER_STATUS, FAR *LPRASTERIZER_STATUS;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* bits defined in wFlags of RASTERIZER_STATUS */ /* bits defined in wFlags of RASTERIZER_STATUS */
#define TT_AVAILABLE 0x0001 #define TT_AVAILABLE 0x0001
#define TT_ENABLED 0x0002 #define TT_ENABLED 0x0002
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
/* Pixel format descriptor */ /* Pixel format descriptor */
typedef struct tagPIXELFORMATDESCRIPTOR typedef struct tagPIXELFORMATDESCRIPTOR
{ {
WORD nSize; WORD nSize;
WORD nVersion; WORD nVersion;
DWORD dwFlags; DWORD dwFlags;
BYTE iPixelType; BYTE iPixelType;
BYTE cColorBits; BYTE cColorBits;
BYTE cRedBits; BYTE cRedBits;
BYTE cRedShift; BYTE cRedShift;
skipping to change at line 3132 skipping to change at line 3492
BYTE cDepthBits; BYTE cDepthBits;
BYTE cStencilBits; BYTE cStencilBits;
BYTE cAuxBuffers; BYTE cAuxBuffers;
BYTE iLayerType; BYTE iLayerType;
BYTE bReserved; BYTE bReserved;
DWORD dwLayerMask; DWORD dwLayerMask;
DWORD dwVisibleMask; DWORD dwVisibleMask;
DWORD dwDamageMask; DWORD dwDamageMask;
} PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, FAR *LPPIXELFORMATDESCRIPTOR; } PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, FAR *LPPIXELFORMATDESCRIPTOR;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
/* pixel types */ /* pixel types */
#define PFD_TYPE_RGBA 0 #define PFD_TYPE_RGBA 0
#define PFD_TYPE_COLORINDEX 1 #define PFD_TYPE_COLORINDEX 1
/* layer types */ /* layer types */
#define PFD_MAIN_PLANE 0 #define PFD_MAIN_PLANE 0
#define PFD_OVERLAY_PLANE 1 #define PFD_OVERLAY_PLANE 1
#define PFD_UNDERLAY_PLANE (-1) #define PFD_UNDERLAY_PLANE (-1)
/* PIXELFORMATDESCRIPTOR flags */ /* PIXELFORMATDESCRIPTOR flags */
skipping to change at line 3164 skipping to change at line 3527
#define PFD_GENERIC_ACCELERATED 0x00001000 #define PFD_GENERIC_ACCELERATED 0x00001000
#define PFD_SUPPORT_DIRECTDRAW 0x00002000 #define PFD_SUPPORT_DIRECTDRAW 0x00002000
#define PFD_DIRECT3D_ACCELERATED 0x00004000 #define PFD_DIRECT3D_ACCELERATED 0x00004000
#define PFD_SUPPORT_COMPOSITION 0x00008000 #define PFD_SUPPORT_COMPOSITION 0x00008000
/* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */ /* PIXELFORMATDESCRIPTOR flags for use in ChoosePixelFormat only */
#define PFD_DEPTH_DONTCARE 0x20000000 #define PFD_DEPTH_DONTCARE 0x20000000
#define PFD_DOUBLEBUFFER_DONTCARE 0x40000000 #define PFD_DOUBLEBUFFER_DONTCARE 0x40000000
#define PFD_STEREO_DONTCARE 0x80000000 #define PFD_STEREO_DONTCARE 0x80000000
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifdef STRICT #ifdef STRICT
#if !defined(NOTEXTMETRIC) #if !defined(NOTEXTMETRIC)
typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST TEXTMETRICA *, DWORD, LPARAM); typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST TEXTMETRICA *, DWORD, LPARAM);
typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST TEXTMETRICW *, DWORD, LPARAM); typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST TEXTMETRICW *, DWORD, LPARAM);
#ifdef UNICODE #ifdef UNICODE
#define OLDFONTENUMPROC OLDFONTENUMPROCW #define OLDFONTENUMPROC OLDFONTENUMPROCW
#else #else
#define OLDFONTENUMPROC OLDFONTENUMPROCA #define OLDFONTENUMPROC OLDFONTENUMPROCA
#endif // !UNICODE #endif // !UNICODE
#else #else
typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST VOID *, DWORD, LPARAM); typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST VOID *, DWORD, LPARAM);
skipping to change at line 3206 skipping to change at line 3573
typedef FARPROC FONTENUMPROCW; typedef FARPROC FONTENUMPROCW;
#ifdef UNICODE #ifdef UNICODE
typedef FONTENUMPROCW FONTENUMPROC; typedef FONTENUMPROCW FONTENUMPROC;
#else #else
typedef FONTENUMPROCA FONTENUMPROC; typedef FONTENUMPROCA FONTENUMPROC;
#endif // UNICODE #endif // UNICODE
typedef FARPROC GOBJENUMPROC; typedef FARPROC GOBJENUMPROC;
typedef FARPROC LINEDDAPROC; typedef FARPROC LINEDDAPROC;
#endif #endif
WINGDIAPI int WINAPI AddFontResourceA(__in LPCSTR); #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
WINGDIAPI int WINAPI AddFontResourceW(__in LPCWSTR); #pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINGDIAPI int WINAPI AddFontResourceA(_In_ LPCSTR);
WINGDIAPI int WINAPI AddFontResourceW(_In_ LPCWSTR);
#ifdef UNICODE #ifdef UNICODE
#define AddFontResource AddFontResourceW #define AddFontResource AddFontResourceW
#else #else
#define AddFontResource AddFontResourceA #define AddFontResource AddFontResourceA
#endif // !UNICODE #endif // !UNICODE
__gdi_entry WINGDIAPI BOOL WINAPI AnimatePalette( __in HPALETTE hPal, __in UINT WINGDIAPI BOOL WINAPI AnimatePalette( _In_ HPALETTE hPal, _In_ UINT iStartInde
iStartIndex, __in UINT cEntries, __in_ecount(cEntries) CONST PALETTEENTRY * pp x, _In_ UINT cEntries, _In_reads_(cEntries) CONST PALETTEENTRY * ppe);
e); WINGDIAPI BOOL WINAPI Arc( _In_ HDC hdc, _In_ int x1, _In_ int y1, _In_ int x2
__gdi_entry WINGDIAPI BOOL WINAPI Arc( __in HDC hdc, __in int x1, __in int y1, , _In_ int y2, _In_ int x3, _In_ int y3, _In_ int x4, _In_ int y4);
__in int x2, __in int y2, __in int x3, __in int y3, __in int x4, __in int y4); WINGDIAPI BOOL WINAPI BitBlt( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ int c
__gdi_entry WINGDIAPI BOOL WINAPI BitBlt( __in HDC hdc, __in int x, __in int y, x, _In_ int cy, _In_opt_ HDC hdcSrc, _In_ int x1, _In_ int y1, _In_ DWORD rop);
__in int cx, __in int cy, __in_opt HDC hdcSrc, __in int x1, __in int y1, __in D WINGDIAPI BOOL WINAPI CancelDC( _In_ HDC hdc);
WORD rop); WINGDIAPI BOOL WINAPI Chord( _In_ HDC hdc, _In_ int x1, _In_ int y1, _In_ int
WINGDIAPI BOOL WINAPI CancelDC( __in HDC hdc); x2, _In_ int y2, _In_ int x3, _In_ int y3, _In_ int x4, _In_ int y4);
__gdi_entry WINGDIAPI BOOL WINAPI Chord( __in HDC hdc, __in int x1, __in int y1 WINGDIAPI int WINAPI ChoosePixelFormat( _In_ HDC hdc, _In_ CONST PIXELFORMATDE
, __in int x2, __in int y2, __in int x3, __in int y3, __in int x4, __in int y4); SCRIPTOR *ppfd);
WINGDIAPI int WINAPI ChoosePixelFormat( __in HDC hdc, __in CONST PIXELFORMATDE WINGDIAPI HMETAFILE WINAPI CloseMetaFile( _In_ HDC hdc);
SCRIPTOR *ppfd); WINGDIAPI int WINAPI CombineRgn( _In_opt_ HRGN hrgnDst, _In_opt_ HRGN hrgnSr
WINGDIAPI HMETAFILE WINAPI CloseMetaFile( __in HDC hdc); c1, _In_opt_ HRGN hrgnSrc2, _In_ int iMode);
WINGDIAPI int WINAPI CombineRgn( __in_opt HRGN hrgnDst, __in_opt HRGN hrgnSr WINGDIAPI HMETAFILE WINAPI CopyMetaFileA( _In_ HMETAFILE, _In_opt_ LPCSTR);
c1, __in_opt HRGN hrgnSrc2, __in int iMode); WINGDIAPI HMETAFILE WINAPI CopyMetaFileW( _In_ HMETAFILE, _In_opt_ LPCWSTR);
WINGDIAPI HMETAFILE WINAPI CopyMetaFileA( __in HMETAFILE, __in_opt LPCSTR);
WINGDIAPI HMETAFILE WINAPI CopyMetaFileW( __in HMETAFILE, __in_opt LPCWSTR);
#ifdef UNICODE #ifdef UNICODE
#define CopyMetaFile CopyMetaFileW #define CopyMetaFile CopyMetaFileW
#else #else
#define CopyMetaFile CopyMetaFileA #define CopyMetaFile CopyMetaFileA
#endif // !UNICODE #endif // !UNICODE
__gdi_entry WINGDIAPI HBITMAP WINAPI CreateBitmap( __in int nWidth, __in int nHe WINGDIAPI HBITMAP WINAPI CreateBitmap( _In_ int nWidth, _In_ int nHeight, _In_
ight, __in UINT nPlanes, __in UINT nBitCount, __in_opt CONST VOID *lpBits); UINT nPlanes, _In_ UINT nBitCount, _In_opt_ CONST VOID *lpBits);
__gdi_entry WINGDIAPI HBITMAP WINAPI CreateBitmapIndirect( __in CONST BITMAP *pb WINGDIAPI HBITMAP WINAPI CreateBitmapIndirect( _In_ CONST BITMAP *pbm);
m); WINGDIAPI HBRUSH WINAPI CreateBrushIndirect( _In_ CONST LOGBRUSH *plbrush);
__gdi_entry WINGDIAPI HBRUSH WINAPI CreateBrushIndirect( __in CONST LOGBRUSH *p WINGDIAPI HBITMAP WINAPI CreateCompatibleBitmap( _In_ HDC hdc, _In_ int cx, _In_
lbrush); int cy);
WINGDIAPI HBITMAP WINAPI CreateCompatibleBitmap( __in HDC hdc, __in int cx, __in WINGDIAPI HBITMAP WINAPI CreateDiscardableBitmap( _In_ HDC hdc, _In_ int cx, _In
int cy); _ int cy);
WINGDIAPI HBITMAP WINAPI CreateDiscardableBitmap( __in HDC hdc, __in int cx, __i WINGDIAPI HDC WINAPI CreateCompatibleDC( _In_opt_ HDC hdc);
n int cy); WINGDIAPI HDC WINAPI CreateDCA( _In_opt_ LPCSTR pwszDriver, _In_opt_ LPCSTR
WINGDIAPI HDC WINAPI CreateCompatibleDC( __in_opt HDC hdc); pwszDevice, _In_opt_ LPCSTR pszPort, _In_opt_ CONST DEVMODEA * pdm);
WINGDIAPI HDC WINAPI CreateDCA( __in_opt LPCSTR pwszDriver, __in_opt LPCSTR WINGDIAPI HDC WINAPI CreateDCW( _In_opt_ LPCWSTR pwszDriver, _In_opt_ LPCWST
pwszDevice, __in_opt LPCSTR pszPort, __in_opt CONST DEVMODEA * pdm); R pwszDevice, _In_opt_ LPCWSTR pszPort, _In_opt_ CONST DEVMODEW * pdm);
WINGDIAPI HDC WINAPI CreateDCW( __in_opt LPCWSTR pwszDriver, __in_opt LPCWST
R pwszDevice, __in_opt LPCWSTR pszPort, __in_opt CONST DEVMODEW * pdm);
#ifdef UNICODE #ifdef UNICODE
#define CreateDC CreateDCW #define CreateDC CreateDCW
#else #else
#define CreateDC CreateDCA #define CreateDC CreateDCA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HBITMAP WINAPI CreateDIBitmap( __in HDC hdc, __in_opt CONST BITMAPINFO WINGDIAPI HBITMAP WINAPI CreateDIBitmap( _In_ HDC hdc, _In_opt_ CONST BITMAPINFO
HEADER *pbmih, __in DWORD flInit, __in_opt CONST VOID *pjBits, __in_opt CONST BI HEADER *pbmih, _In_ DWORD flInit, _In_opt_ CONST VOID *pjBits, _In_opt_ CONST BI
TMAPINFO *pbmi, __in UINT iUsage); TMAPINFO *pbmi, _In_ UINT iUsage);
WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrush( __in HGLOBAL h, __in UINT iUsage WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrush( _In_ HGLOBAL h, _In_ UINT iUsage
); );
__gdi_entry WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrushPt( __in CONST VOID *l WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrushPt( _In_ CONST VOID *lpPackedDIB,
pPackedDIB, __in UINT iUsage); _In_ UINT iUsage);
WINGDIAPI HRGN WINAPI CreateEllipticRgn( __in int x1, __in int y1, __in int x WINGDIAPI HRGN WINAPI CreateEllipticRgn( _In_ int x1, _In_ int y1, _In_ int x
2, __in int y2); 2, _In_ int y2);
WINGDIAPI HRGN WINAPI CreateEllipticRgnIndirect( __in CONST RECT *lprect); WINGDIAPI HRGN WINAPI CreateEllipticRgnIndirect( _In_ CONST RECT *lprect);
__gdi_entry WINGDIAPI HFONT WINAPI CreateFontIndirectA( __in CONST LOGFONTA *l WINGDIAPI HFONT WINAPI CreateFontIndirectA( _In_ CONST LOGFONTA *lplf);
plf); WINGDIAPI HFONT WINAPI CreateFontIndirectW( _In_ CONST LOGFONTW *lplf);
__gdi_entry WINGDIAPI HFONT WINAPI CreateFontIndirectW( __in CONST LOGFONTW *l
plf);
#ifdef UNICODE #ifdef UNICODE
#define CreateFontIndirect CreateFontIndirectW #define CreateFontIndirect CreateFontIndirectW
#else #else
#define CreateFontIndirect CreateFontIndirectA #define CreateFontIndirect CreateFontIndirectA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HFONT WINAPI CreateFontA( __in int cHeight, __in int cWidth, __in in WINGDIAPI HFONT WINAPI CreateFontA( _In_ int cHeight, _In_ int cWidth, _In_ in
t cEscapement, __in int cOrientation, __in int cWeight, __in DWORD bItalic, t cEscapement, _In_ int cOrientation, _In_ int cWeight, _In_ DWORD bItalic,
__in DWORD bUnderline, __in DWORD bStrikeOut, __in _In_ DWORD bUnderline, _In_ DWORD bStrikeOut, _In_
DWORD iCharSet, __in DWORD iOutPrecision, __in DWORD iClipPrecision, DWORD iCharSet, _In_ DWORD iOutPrecision, _In_ DWORD iClipPrecision,
__in DWORD iQuality, __in DWORD iPitchAndFamily, __ _In_ DWORD iQuality, _In_ DWORD iPitchAndFamily, _I
in_opt LPCSTR pszFaceName); n_opt_ LPCSTR pszFaceName);
WINGDIAPI HFONT WINAPI CreateFontW( __in int cHeight, __in int cWidth, __in in WINGDIAPI HFONT WINAPI CreateFontW( _In_ int cHeight, _In_ int cWidth, _In_ in
t cEscapement, __in int cOrientation, __in int cWeight, __in DWORD bItalic, t cEscapement, _In_ int cOrientation, _In_ int cWeight, _In_ DWORD bItalic,
__in DWORD bUnderline, __in DWORD bStrikeOut, __in _In_ DWORD bUnderline, _In_ DWORD bStrikeOut, _In_
DWORD iCharSet, __in DWORD iOutPrecision, __in DWORD iClipPrecision, DWORD iCharSet, _In_ DWORD iOutPrecision, _In_ DWORD iClipPrecision,
__in DWORD iQuality, __in DWORD iPitchAndFamily, __ _In_ DWORD iQuality, _In_ DWORD iPitchAndFamily, _I
in_opt LPCWSTR pszFaceName); n_opt_ LPCWSTR pszFaceName);
#ifdef UNICODE #ifdef UNICODE
#define CreateFont CreateFontW #define CreateFont CreateFontW
#else #else
#define CreateFont CreateFontA #define CreateFont CreateFontA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HBRUSH WINAPI CreateHatchBrush( __in int iHatch, __in COLORREF color) WINGDIAPI HBRUSH WINAPI CreateHatchBrush( _In_ int iHatch, _In_ COLORREF color)
; ;
WINGDIAPI HDC WINAPI CreateICA( __in_opt LPCSTR pszDriver, __in_opt LPCSTR p WINGDIAPI HDC WINAPI CreateICA( _In_opt_ LPCSTR pszDriver, _In_opt_ LPCSTR p
szDevice, __in_opt LPCSTR pszPort, __in_opt CONST DEVMODEA * pdm); szDevice, _In_opt_ LPCSTR pszPort, _In_opt_ CONST DEVMODEA * pdm);
WINGDIAPI HDC WINAPI CreateICW( __in_opt LPCWSTR pszDriver, __in_opt LPCWSTR WINGDIAPI HDC WINAPI CreateICW( _In_opt_ LPCWSTR pszDriver, _In_opt_ LPCWSTR
pszDevice, __in_opt LPCWSTR pszPort, __in_opt CONST DEVMODEW * pdm); pszDevice, _In_opt_ LPCWSTR pszPort, _In_opt_ CONST DEVMODEW * pdm);
#ifdef UNICODE #ifdef UNICODE
#define CreateIC CreateICW #define CreateIC CreateICW
#else #else
#define CreateIC CreateICA #define CreateIC CreateICA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HDC WINAPI CreateMetaFileA( __in_opt LPCSTR pszFile); WINGDIAPI HDC WINAPI CreateMetaFileA( _In_opt_ LPCSTR pszFile);
WINGDIAPI HDC WINAPI CreateMetaFileW( __in_opt LPCWSTR pszFile); WINGDIAPI HDC WINAPI CreateMetaFileW( _In_opt_ LPCWSTR pszFile);
#ifdef UNICODE #ifdef UNICODE
#define CreateMetaFile CreateMetaFileW #define CreateMetaFile CreateMetaFileW
#else #else
#define CreateMetaFile CreateMetaFileA #define CreateMetaFile CreateMetaFileA
#endif // !UNICODE #endif // !UNICODE
__gdi_entry WINGDIAPI HPALETTE WINAPI CreatePalette( __in_xcount(2*sizeof(WORD) WINGDIAPI HPALETTE WINAPI CreatePalette( _In_reads_(_Inexpressible_(2*sizeof(WO
+ plpal->palNumEntries * sizeof(PALETTEENTRY)) CONST LOGPALETTE * plpal); RD) + plpal->palNumEntries * sizeof(PALETTEENTRY))) CONST LOGPALETTE * plpal);
WINGDIAPI HPEN WINAPI CreatePen( __in int iStyle, __in int cWidth, __in COLOR WINGDIAPI HPEN WINAPI CreatePen( _In_ int iStyle, _In_ int cWidth, _In_ COLOR
REF color); REF color);
__gdi_entry WINGDIAPI HPEN WINAPI CreatePenIndirect( __in CONST LOGPEN *plpen WINGDIAPI HPEN WINAPI CreatePenIndirect( _In_ CONST LOGPEN *plpen);
); WINGDIAPI HRGN WINAPI CreatePolyPolygonRgn( _In_ CONST POINT *pptl,
WINGDIAPI HRGN WINAPI CreatePolyPolygonRgn( __in CONST POINT *pptl, _In_reads_(cPoly) CONST INT *pc
__in CONST INT *pc, ,
__in int cPoly, _In_ int cPoly,
__in int iMode); _In_ int iMode);
__gdi_entry WINGDIAPI HBRUSH WINAPI CreatePatternBrush( __in HBITMAP hbm); WINGDIAPI HBRUSH WINAPI CreatePatternBrush( _In_ HBITMAP hbm);
WINGDIAPI HRGN WINAPI CreateRectRgn( __in int x1, __in int y1, __in int x2, _ WINGDIAPI HRGN WINAPI CreateRectRgn( _In_ int x1, _In_ int y1, _In_ int x2, _
_in int y2); In_ int y2);
WINGDIAPI HRGN WINAPI CreateRectRgnIndirect( __in CONST RECT *lprect); WINGDIAPI HRGN WINAPI CreateRectRgnIndirect( _In_ CONST RECT *lprect);
WINGDIAPI HRGN WINAPI CreateRoundRectRgn( __in int x1, __in int y1, __in int WINGDIAPI HRGN WINAPI CreateRoundRectRgn( _In_ int x1, _In_ int y1, _In_ int
x2, __in int y2, __in int w, __in int h); x2, _In_ int y2, _In_ int w, _In_ int h);
WINGDIAPI BOOL WINAPI CreateScalableFontResourceA( __in DWORD fdwHidden, __in WINGDIAPI BOOL WINAPI CreateScalableFontResourceA( _In_ DWORD fdwHidden, _In_
LPCSTR lpszFont, __in LPCSTR lpszFile, __in_opt LPCSTR lpszPath); LPCSTR lpszFont, _In_ LPCSTR lpszFile, _In_opt_ LPCSTR lpszPath);
WINGDIAPI BOOL WINAPI CreateScalableFontResourceW( __in DWORD fdwHidden, __in WINGDIAPI BOOL WINAPI CreateScalableFontResourceW( _In_ DWORD fdwHidden, _In_
LPCWSTR lpszFont, __in LPCWSTR lpszFile, __in_opt LPCWSTR lpszPath); LPCWSTR lpszFont, _In_ LPCWSTR lpszFile, _In_opt_ LPCWSTR lpszPath);
#ifdef UNICODE #ifdef UNICODE
#define CreateScalableFontResource CreateScalableFontResourceW #define CreateScalableFontResource CreateScalableFontResourceW
#else #else
#define CreateScalableFontResource CreateScalableFontResourceA #define CreateScalableFontResource CreateScalableFontResourceA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HBRUSH WINAPI CreateSolidBrush( __in COLORREF color); WINGDIAPI HBRUSH WINAPI CreateSolidBrush( _In_ COLORREF color);
WINGDIAPI BOOL WINAPI DeleteDC( __in HDC hdc); WINGDIAPI BOOL WINAPI DeleteDC( _In_ HDC hdc);
WINGDIAPI BOOL WINAPI DeleteMetaFile( __in HMETAFILE hmf); WINGDIAPI BOOL WINAPI DeleteMetaFile( _In_ HMETAFILE hmf);
__gdi_entry WINGDIAPI BOOL WINAPI DeleteObject( __in HGDIOBJ ho); WINGDIAPI BOOL WINAPI DeleteObject( _In_ HGDIOBJ ho);
WINGDIAPI int WINAPI DescribePixelFormat( __in HDC hdc, WINGDIAPI int WINAPI DescribePixelFormat( _In_ HDC hdc,
__in int iPixelFormat, _In_ int iPixelFormat,
__in UINT nBytes, _In_ UINT nBytes,
__out_bcount_opt(nBytes) LPPIXELFORM _Out_writes_bytes_opt_(nBytes) LPPIX
ATDESCRIPTOR ppfd); ELFORMATDESCRIPTOR ppfd);
/* define types of pointers to ExtDeviceMode() and DeviceCapabilities() /* define types of pointers to ExtDeviceMode() and DeviceCapabilities()
* functions for Win 3.1 compatibility * functions for Win 3.1 compatibility
*/ */
typedef UINT (CALLBACK* LPFNDEVMODE)(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, L PDEVMODE, LPSTR, UINT); typedef UINT (CALLBACK* LPFNDEVMODE)(HWND, HMODULE, LPDEVMODE, LPSTR, LPSTR, L PDEVMODE, LPSTR, UINT);
typedef DWORD (CALLBACK* LPFNDEVCAPS)(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE); typedef DWORD (CALLBACK* LPFNDEVCAPS)(LPSTR, LPSTR, UINT, LPSTR, LPDEVMODE);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
/* mode selections for the device mode function */ /* mode selections for the device mode function */
#define DM_UPDATE 1 #define DM_UPDATE 1
#define DM_COPY 2 #define DM_COPY 2
#define DM_PROMPT 4 #define DM_PROMPT 4
#define DM_MODIFY 8 #define DM_MODIFY 8
#define DM_IN_BUFFER DM_MODIFY #define DM_IN_BUFFER DM_MODIFY
#define DM_IN_PROMPT DM_PROMPT #define DM_IN_PROMPT DM_PROMPT
#define DM_OUT_BUFFER DM_COPY #define DM_OUT_BUFFER DM_COPY
#define DM_OUT_DEFAULT DM_UPDATE #define DM_OUT_DEFAULT DM_UPDATE
skipping to change at line 3394 skipping to change at line 3770
#define DCBA_FACEUPNONE 0x0000 #define DCBA_FACEUPNONE 0x0000
#define DCBA_FACEUPCENTER 0x0001 #define DCBA_FACEUPCENTER 0x0001
#define DCBA_FACEUPLEFT 0x0002 #define DCBA_FACEUPLEFT 0x0002
#define DCBA_FACEUPRIGHT 0x0003 #define DCBA_FACEUPRIGHT 0x0003
#define DCBA_FACEDOWNNONE 0x0100 #define DCBA_FACEDOWNNONE 0x0100
#define DCBA_FACEDOWNCENTER 0x0101 #define DCBA_FACEDOWNCENTER 0x0101
#define DCBA_FACEDOWNLEFT 0x0102 #define DCBA_FACEDOWNLEFT 0x0102
#define DCBA_FACEDOWNRIGHT 0x0103 #define DCBA_FACEDOWNRIGHT 0x0103
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINSPOOLAPI WINSPOOLAPI
int int
WINAPI WINAPI
DeviceCapabilitiesA( DeviceCapabilitiesA(
__in LPCSTR pDevice, _In_ LPCSTR pDevice,
__in_opt LPCSTR pPort, _In_opt_ LPCSTR pPort,
__in WORD fwCapability, _In_ WORD fwCapability,
__out_xcount_opt(1) LPSTR pOutput, _Out_writes_opt_(_Inexpressible_(1)) LPSTR pOutput,
__in_opt CONST DEVMODEA *pDevMode _In_opt_ CONST DEVMODEA *pDevMode
); );
WINSPOOLAPI WINSPOOLAPI
int int
WINAPI WINAPI
DeviceCapabilitiesW( DeviceCapabilitiesW(
__in LPCWSTR pDevice, _In_ LPCWSTR pDevice,
__in_opt LPCWSTR pPort, _In_opt_ LPCWSTR pPort,
__in WORD fwCapability, _In_ WORD fwCapability,
__out_xcount_opt(1) LPWSTR pOutput, _Out_writes_opt_(_Inexpressible_(1)) LPWSTR pOutput,
__in_opt CONST DEVMODEW *pDevMode _In_opt_ CONST DEVMODEW *pDevMode
); );
#ifdef UNICODE #ifdef UNICODE
#define DeviceCapabilities DeviceCapabilitiesW #define DeviceCapabilities DeviceCapabilitiesW
#else #else
#define DeviceCapabilities DeviceCapabilitiesA #define DeviceCapabilities DeviceCapabilitiesA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI int WINAPI DrawEscape( __in HDC hdc, WINGDIAPI int WINAPI DrawEscape( _In_ HDC hdc,
__in int iEscape, _In_ int iEscape,
__in int cjIn, _In_ int cjIn,
__in_bcount_opt(cjIn) LPCSTR lpIn); _In_reads_bytes_opt_(cjIn) LPCSTR lpIn);
__gdi_entry WINGDIAPI BOOL WINAPI Ellipse( __in HDC hdc, __in int left, __in int top, __in int right, __in int bottom); WINGDIAPI BOOL WINAPI Ellipse( _In_ HDC hdc, _In_ int left, _In_ int top, _In_ int right, _In_ int bottom);
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINGDIAPI int WINAPI EnumFontFamiliesExA( __in HDC hdc, __in LPLOGFONTA lpLogfo WINGDIAPI int WINAPI EnumFontFamiliesExA( _In_ HDC hdc, _In_ LPLOGFONTA lpLogfo
nt, __in FONTENUMPROCA lpProc, __in LPARAM lParam, __in DWORD dwFlags); nt, _In_ FONTENUMPROCA lpProc, _In_ LPARAM lParam, _In_ DWORD dwFlags);
WINGDIAPI int WINAPI EnumFontFamiliesExW( __in HDC hdc, __in LPLOGFONTW lpLogfo WINGDIAPI int WINAPI EnumFontFamiliesExW( _In_ HDC hdc, _In_ LPLOGFONTW lpLogfo
nt, __in FONTENUMPROCW lpProc, __in LPARAM lParam, __in DWORD dwFlags); nt, _In_ FONTENUMPROCW lpProc, _In_ LPARAM lParam, _In_ DWORD dwFlags);
#ifdef UNICODE #ifdef UNICODE
#define EnumFontFamiliesEx EnumFontFamiliesExW #define EnumFontFamiliesEx EnumFontFamiliesExW
#else #else
#define EnumFontFamiliesEx EnumFontFamiliesExA #define EnumFontFamiliesEx EnumFontFamiliesExA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
WINGDIAPI int WINAPI EnumFontFamiliesA( __in HDC hdc, __in_opt LPCSTR lpLogfont WINGDIAPI int WINAPI EnumFontFamiliesA( _In_ HDC hdc, _In_opt_ LPCSTR lpLogfont
, __in FONTENUMPROCA lpProc, __in LPARAM lParam); , _In_ FONTENUMPROCA lpProc, _In_ LPARAM lParam);
WINGDIAPI int WINAPI EnumFontFamiliesW( __in HDC hdc, __in_opt LPCWSTR lpLogfon WINGDIAPI int WINAPI EnumFontFamiliesW( _In_ HDC hdc, _In_opt_ LPCWSTR lpLogfon
t, __in FONTENUMPROCW lpProc, __in LPARAM lParam); t, _In_ FONTENUMPROCW lpProc, _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define EnumFontFamilies EnumFontFamiliesW #define EnumFontFamilies EnumFontFamiliesW
#else #else
#define EnumFontFamilies EnumFontFamiliesA #define EnumFontFamilies EnumFontFamiliesA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI int WINAPI EnumFontsA( __in HDC hdc, __in_opt LPCSTR lpLogfont, __in WINGDIAPI int WINAPI EnumFontsA( _In_ HDC hdc, _In_opt_ LPCSTR lpLogfont, _In_
FONTENUMPROCA lpProc, __in LPARAM lParam); FONTENUMPROCA lpProc, _In_ LPARAM lParam);
WINGDIAPI int WINAPI EnumFontsW( __in HDC hdc, __in_opt LPCWSTR lpLogfont, __i WINGDIAPI int WINAPI EnumFontsW( _In_ HDC hdc, _In_opt_ LPCWSTR lpLogfont, _In
n FONTENUMPROCW lpProc, __in LPARAM lParam); _ FONTENUMPROCW lpProc, _In_ LPARAM lParam);
#ifdef UNICODE #ifdef UNICODE
#define EnumFonts EnumFontsW #define EnumFonts EnumFontsW
#else #else
#define EnumFonts EnumFontsA #define EnumFonts EnumFontsA
#endif // !UNICODE #endif // !UNICODE
#ifdef STRICT #ifdef STRICT
WINGDIAPI int WINAPI EnumObjects( __in HDC hdc, __in int nType, __in GOBJENUMPR OC lpFunc, __in LPARAM lParam); WINGDIAPI int WINAPI EnumObjects( _In_ HDC hdc, _In_ int nType, _In_ GOBJENUMPR OC lpFunc, _In_ LPARAM lParam);
#else #else
WINGDIAPI int WINAPI EnumObjects( __in HDC hdc, __in int nType, __in GOBJENUMPR OC lpFunc, __in LPVOID lParam); WINGDIAPI int WINAPI EnumObjects( _In_ HDC hdc, _In_ int nType, _In_ GOBJENUMPR OC lpFunc, _In_ LPVOID lParam);
#endif #endif
WINGDIAPI BOOL WINAPI EqualRgn( __in HRGN hrgn1, __in HRGN hrgn2); WINGDIAPI BOOL WINAPI EqualRgn( _In_ HRGN hrgn1, _In_ HRGN hrgn2);
__gdi_entry WINGDIAPI int WINAPI Escape( __in HDC hdc, WINGDIAPI int WINAPI Escape( _In_ HDC hdc,
__in int iEscape, _In_ int iEscape,
__in int cjIn, _In_ int cjIn,
__in_bcount_opt(cjIn) LPCSTR pvIn, _In_reads_bytes_opt_(cjIn) LPCSTR pvIn,
__out_opt LPVOID pvOut); _Out_opt_ LPVOID pvOut);
WINGDIAPI int WINAPI ExtEscape( __in HDC hdc, WINGDIAPI int WINAPI ExtEscape( _In_ HDC hdc,
__in int iEscape, _In_ int iEscape,
__in int cjInput, _In_ int cjInput,
__in_bcount_opt(cjInput) LPCSTR lpInData, _In_reads_bytes_opt_(cjInput) LPCSTR lpInDat
__in int cjOutput, a,
__out_bcount_opt(cjOutput) LPSTR lpOutData); _In_ int cjOutput,
__gdi_entry WINGDIAPI int WINAPI ExcludeClipRect( __in HDC hdc, __in int left, _Out_writes_bytes_opt_(cjOutput) LPSTR lpOut
__in int top, __in int right, __in int bottom); Data);
__gdi_entry WINGDIAPI HRGN WINAPI ExtCreateRegion( __in_opt CONST XFORM * lpx, _ WINGDIAPI int WINAPI ExcludeClipRect( _In_ HDC hdc, _In_ int left, _In_ int to
_in DWORD nCount, __in_bcount(nCount) CONST RGNDATA * lpData); p, _In_ int right, _In_ int bottom);
__gdi_entry WINGDIAPI BOOL WINAPI ExtFloodFill( __in HDC hdc, __in int x, __in i WINGDIAPI HRGN WINAPI ExtCreateRegion( _In_opt_ CONST XFORM * lpx, _In_ DWORD n
nt y, __in COLORREF color, __in UINT type); Count, _In_reads_bytes_(nCount) CONST RGNDATA * lpData);
__gdi_entry WINGDIAPI BOOL WINAPI FillRgn( __in HDC hdc, __in HRGN hrgn, __in HB WINGDIAPI BOOL WINAPI ExtFloodFill( _In_ HDC hdc, _In_ int x, _In_ int y, _In_
RUSH hbr); COLORREF color, _In_ UINT type);
__gdi_entry WINGDIAPI BOOL WINAPI FloodFill( __in HDC hdc, __in int x, __in int WINGDIAPI BOOL WINAPI FillRgn( _In_ HDC hdc, _In_ HRGN hrgn, _In_ HBRUSH hbr);
y, __in COLORREF color); WINGDIAPI BOOL WINAPI FloodFill( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ COL
__gdi_entry WINGDIAPI BOOL WINAPI FrameRgn( __in HDC hdc, __in HRGN hrgn, __in H ORREF color);
BRUSH hbr, __in int w, __in int h); WINGDIAPI BOOL WINAPI FrameRgn( _In_ HDC hdc, _In_ HRGN hrgn, _In_ HBRUSH hbr,
WINGDIAPI int WINAPI GetROP2( __in HDC hdc); _In_ int w, _In_ int h);
WINGDIAPI BOOL WINAPI GetAspectRatioFilterEx( __in HDC hdc, __out LPSIZE lpsize) WINGDIAPI int WINAPI GetROP2( _In_ HDC hdc);
; WINGDIAPI BOOL WINAPI GetAspectRatioFilterEx( _In_ HDC hdc, _Out_ LPSIZE lpsize)
WINGDIAPI COLORREF WINAPI GetBkColor( __in HDC hdc); ;
WINGDIAPI COLORREF WINAPI GetBkColor( _In_ HDC hdc);
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
WINGDIAPI COLORREF WINAPI GetDCBrushColor( __in HDC hdc); WINGDIAPI COLORREF WINAPI GetDCBrushColor( _In_ HDC hdc);
WINGDIAPI COLORREF WINAPI GetDCPenColor( __in HDC hdc); WINGDIAPI COLORREF WINAPI GetDCPenColor( _In_ HDC hdc);
#endif #endif
WINGDIAPI WINGDIAPI
int int
WINAPI WINAPI
GetBkMode( GetBkMode(
__in HDC hdc _In_ HDC hdc
); );
WINGDIAPI WINGDIAPI
LONG LONG
WINAPI WINAPI
GetBitmapBits( GetBitmapBits(
__in HBITMAP hbit, _In_ HBITMAP hbit,
__in LONG cb, _In_ LONG cb,
__out_bcount(cb) LPVOID lpvBits _Out_writes_bytes_(cb) LPVOID lpvBits
); );
WINGDIAPI BOOL WINAPI GetBitmapDimensionEx( __in HBITMAP hbit, __out LPSIZE lps WINGDIAPI BOOL WINAPI GetBitmapDimensionEx( _In_ HBITMAP hbit, _Out_ LPSIZE lps
ize); ize);
WINGDIAPI UINT WINAPI GetBoundsRect( __in HDC hdc, __out LPRECT lprect, __in UI WINGDIAPI UINT WINAPI GetBoundsRect( _In_ HDC hdc, _Out_ LPRECT lprect, _In_ UI
NT flags); NT flags);
WINGDIAPI BOOL WINAPI GetBrushOrgEx( __in HDC hdc, __out LPPOINT lppt); WINGDIAPI BOOL WINAPI GetBrushOrgEx( _In_ HDC hdc, _Out_ LPPOINT lppt);
WINGDIAPI BOOL WINAPI GetCharWidthA( __in HDC hdc, __in UINT iFirst, __in UINT WINGDIAPI BOOL WINAPI GetCharWidthA( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT
iLast, __out_ecount(iLast + 1 - iFirst) LPINT lpBuffer); iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
WINGDIAPI BOOL WINAPI GetCharWidthW( __in HDC hdc, __in UINT iFirst, __in UINT WINGDIAPI BOOL WINAPI GetCharWidthW( _In_ HDC hdc, _In_ UINT iFirst, _In_ UINT
iLast, __out_ecount(iLast + 1 - iFirst) LPINT lpBuffer); iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
#ifdef UNICODE #ifdef UNICODE
#define GetCharWidth GetCharWidthW #define GetCharWidth GetCharWidthW
#else #else
#define GetCharWidth GetCharWidthA #define GetCharWidth GetCharWidthA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI GetCharWidth32A( __in HDC hdc, __in UINT iFirst, __in UIN WINGDIAPI BOOL WINAPI GetCharWidth32A( _In_ HDC hdc, _In_ UINT iFirst, _In_ UIN
T iLast, __out_ecount(iLast + 1 - iFirst) LPINT lpBuffer); T iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
WINGDIAPI BOOL WINAPI GetCharWidth32W( __in HDC hdc, __in UINT iFirst, __in UIN WINGDIAPI BOOL WINAPI GetCharWidth32W( _In_ HDC hdc, _In_ UINT iFirst, _In_ UIN
T iLast, __out_ecount(iLast + 1 - iFirst) LPINT lpBuffer); T iLast, _Out_writes_(iLast + 1 - iFirst) LPINT lpBuffer);
#ifdef UNICODE #ifdef UNICODE
#define GetCharWidth32 GetCharWidth32W #define GetCharWidth32 GetCharWidth32W
#else #else
#define GetCharWidth32 GetCharWidth32A #define GetCharWidth32 GetCharWidth32A
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL APIENTRY GetCharWidthFloatA( __in HDC hdc, __in UINT iFirst, __i WINGDIAPI BOOL APIENTRY GetCharWidthFloatA( _In_ HDC hdc, _In_ UINT iFirst, _In
n UINT iLast, __out_ecount(iLast + 1 - iFirst) PFLOAT lpBuffer); _ UINT iLast, _Out_writes_(iLast + 1 - iFirst) PFLOAT lpBuffer);
WINGDIAPI BOOL APIENTRY GetCharWidthFloatW( __in HDC hdc, __in UINT iFirst, __i WINGDIAPI BOOL APIENTRY GetCharWidthFloatW( _In_ HDC hdc, _In_ UINT iFirst, _In
n UINT iLast, __out_ecount(iLast + 1 - iFirst) PFLOAT lpBuffer); _ UINT iLast, _Out_writes_(iLast + 1 - iFirst) PFLOAT lpBuffer);
#ifdef UNICODE #ifdef UNICODE
#define GetCharWidthFloat GetCharWidthFloatW #define GetCharWidthFloat GetCharWidthFloatW
#else #else
#define GetCharWidthFloat GetCharWidthFloatA #define GetCharWidthFloat GetCharWidthFloatA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL APIENTRY GetCharABCWidthsA( __in HDC hdc, WINGDIAPI BOOL APIENTRY GetCharABCWidthsA( _In_ HDC hdc,
__in UINT wFirst, _In_ UINT wFirst,
__in UINT wLast, _In_ UINT wLast,
__out_ecount(wLast - wFirst + 1) LPA _Out_writes_(wLast - wFirst + 1) LPA
BC lpABC); BC lpABC);
WINGDIAPI BOOL APIENTRY GetCharABCWidthsW( __in HDC hdc, WINGDIAPI BOOL APIENTRY GetCharABCWidthsW( _In_ HDC hdc,
__in UINT wFirst, _In_ UINT wFirst,
__in UINT wLast, _In_ UINT wLast,
__out_ecount(wLast - wFirst + 1) LPA _Out_writes_(wLast - wFirst + 1) LPA
BC lpABC); BC lpABC);
#ifdef UNICODE #ifdef UNICODE
#define GetCharABCWidths GetCharABCWidthsW #define GetCharABCWidths GetCharABCWidthsW
#else #else
#define GetCharABCWidths GetCharABCWidthsA #define GetCharABCWidths GetCharABCWidthsA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL APIENTRY GetCharABCWidthsFloatA( __in HDC hdc, __in UINT iFirst, WINGDIAPI BOOL APIENTRY GetCharABCWidthsFloatA( _In_ HDC hdc, _In_ UINT iFirst,
__in UINT iLast, __out_ecount(iLast + 1 - iFirst) LPABCFLOAT lpABC); _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPABCFLOAT lpABC);
WINGDIAPI BOOL APIENTRY GetCharABCWidthsFloatW( __in HDC hdc, __in UINT iFirst, WINGDIAPI BOOL APIENTRY GetCharABCWidthsFloatW( _In_ HDC hdc, _In_ UINT iFirst,
__in UINT iLast, __out_ecount(iLast + 1 - iFirst) LPABCFLOAT lpABC); _In_ UINT iLast, _Out_writes_(iLast + 1 - iFirst) LPABCFLOAT lpABC);
#ifdef UNICODE #ifdef UNICODE
#define GetCharABCWidthsFloat GetCharABCWidthsFloatW #define GetCharABCWidthsFloat GetCharABCWidthsFloatW
#else #else
#define GetCharABCWidthsFloat GetCharABCWidthsFloatA #define GetCharABCWidthsFloat GetCharABCWidthsFloatA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI int WINAPI GetClipBox( __in HDC hdc, __out LPRECT lprect); WINGDIAPI int WINAPI GetClipBox( _In_ HDC hdc, _Out_ LPRECT lprect);
WINGDIAPI int WINAPI GetClipRgn( __in HDC hdc, __in HRGN hrgn); WINGDIAPI int WINAPI GetClipRgn( _In_ HDC hdc, _In_ HRGN hrgn);
WINGDIAPI int WINAPI GetMetaRgn( __in HDC hdc, __in HRGN hrgn); WINGDIAPI int WINAPI GetMetaRgn( _In_ HDC hdc, _In_ HRGN hrgn);
WINGDIAPI HGDIOBJ WINAPI GetCurrentObject( __in HDC hdc, __in UINT type); WINGDIAPI HGDIOBJ WINAPI GetCurrentObject( _In_ HDC hdc, _In_ UINT type);
WINGDIAPI BOOL WINAPI GetCurrentPositionEx( __in HDC hdc, __out LPPOINT lppt); WINGDIAPI BOOL WINAPI GetCurrentPositionEx( _In_ HDC hdc, _Out_ LPPOINT lppt);
WINGDIAPI int WINAPI GetDeviceCaps( __in_opt HDC hdc, __in int index); WINGDIAPI int WINAPI GetDeviceCaps( _In_opt_ HDC hdc, _In_ int index);
WINGDIAPI int WINAPI GetDIBits( __in HDC hdc, __in HBITMAP hbm, __in UINT star WINGDIAPI int WINAPI GetDIBits( _In_ HDC hdc, _In_ HBITMAP hbm, _In_ UINT star
t, __in UINT cLines, __out_opt LPVOID lpvBits, __inout_xcount(sizeof(BITMAPINFO t, _In_ UINT cLines,
HEADER)) LPBITMAPINFO lpbmi, __in UINT usage); // SAL actual size of lpbmi is c _Out_opt_ LPVOID lpvBits, _At_((LPBITMAPINFOHEADER)lpbmi, _Inout_) LPBITMAPI
omputed from structure elements NFO lpbmi, _In_ UINT usage); // SAL actual size of lpbmi is computed from struc
ture elements
__success(return != GDI_ERROR) _Success_(return != GDI_ERROR)
WINGDIAPI DWORD WINAPI GetFontData ( __in HDC hdc, WINGDIAPI DWORD WINAPI GetFontData ( _In_ HDC hdc,
__in DWORD dwTable, _In_ DWORD dwTable,
__in DWORD dwOffset, _In_ DWORD dwOffset,
__out_bcount_part_opt(cjBuffer, return) _Out_writes_bytes_to_opt_(cjBuffer, retu
PVOID pvBuffer, rn) PVOID pvBuffer,
__in DWORD cjBuffer _In_ DWORD cjBuffer
); );
WINGDIAPI DWORD WINAPI GetGlyphOutlineA( __in HDC hdc, WINGDIAPI DWORD WINAPI GetGlyphOutlineA( _In_ HDC hdc,
__in UINT uChar, _In_ UINT uChar,
__in UINT fuFormat, _In_ UINT fuFormat,
__out LPGLYPHMETRICS lpgm, _Out_ LPGLYPHMETRICS lpgm,
__in DWORD cjBuffer, _In_ DWORD cjBuffer,
__out_bcount_opt(cjBuffer) LPVOID pv _Out_writes_bytes_opt_(cjBuffer) LPV
Buffer, OID pvBuffer,
__in CONST MAT2 *lpmat2 _In_ CONST MAT2 *lpmat2
); );
WINGDIAPI DWORD WINAPI GetGlyphOutlineW( __in HDC hdc, WINGDIAPI DWORD WINAPI GetGlyphOutlineW( _In_ HDC hdc,
__in UINT uChar, _In_ UINT uChar,
__in UINT fuFormat, _In_ UINT fuFormat,
__out LPGLYPHMETRICS lpgm, _Out_ LPGLYPHMETRICS lpgm,
__in DWORD cjBuffer, _In_ DWORD cjBuffer,
__out_bcount_opt(cjBuffer) LPVOID pv _Out_writes_bytes_opt_(cjBuffer) LPV
Buffer, OID pvBuffer,
__in CONST MAT2 *lpmat2 _In_ CONST MAT2 *lpmat2
); );
#ifdef UNICODE #ifdef UNICODE
#define GetGlyphOutline GetGlyphOutlineW #define GetGlyphOutline GetGlyphOutlineW
#else #else
#define GetGlyphOutline GetGlyphOutlineA #define GetGlyphOutline GetGlyphOutlineA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI int WINAPI GetGraphicsMode( __in HDC hdc); WINGDIAPI int WINAPI GetGraphicsMode( _In_ HDC hdc);
WINGDIAPI int WINAPI GetMapMode( __in HDC hdc); WINGDIAPI int WINAPI GetMapMode( _In_ HDC hdc);
WINGDIAPI UINT WINAPI GetMetaFileBitsEx(__in HMETAFILE hMF, __in UINT cbBuffer, WINGDIAPI UINT WINAPI GetMetaFileBitsEx(_In_ HMETAFILE hMF, _In_ UINT cbBuffer,
__out_bcount_opt(cbBuffer) LPVOID lpData); _Out_writes_bytes_opt_(cbBuffer) LPVOID lpData);
WINGDIAPI HMETAFILE WINAPI GetMetaFileA( __in LPCSTR lpName); WINGDIAPI HMETAFILE WINAPI GetMetaFileA( _In_ LPCSTR lpName);
WINGDIAPI HMETAFILE WINAPI GetMetaFileW( __in LPCWSTR lpName); WINGDIAPI HMETAFILE WINAPI GetMetaFileW( _In_ LPCWSTR lpName);
#ifdef UNICODE #ifdef UNICODE
#define GetMetaFile GetMetaFileW #define GetMetaFile GetMetaFileW
#else #else
#define GetMetaFile GetMetaFileA #define GetMetaFile GetMetaFileA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI COLORREF WINAPI GetNearestColor( __in HDC hdc, __in COLORREF color); WINGDIAPI COLORREF WINAPI GetNearestColor( _In_ HDC hdc, _In_ COLORREF color);
WINGDIAPI UINT WINAPI GetNearestPaletteIndex( __in HPALETTE h, __in COLORREF co WINGDIAPI UINT WINAPI GetNearestPaletteIndex( _In_ HPALETTE h, _In_ COLORREF co
lor); lor);
WINGDIAPI DWORD WINAPI GetObjectType( __in HGDIOBJ h); WINGDIAPI DWORD WINAPI GetObjectType( _In_ HGDIOBJ h);
#ifndef NOTEXTMETRIC #ifndef NOTEXTMETRIC
WINGDIAPI UINT APIENTRY GetOutlineTextMetricsA( __in HDC hdc, WINGDIAPI UINT APIENTRY GetOutlineTextMetricsA( _In_ HDC hdc,
__in UINT cjCopy, _In_ UINT cjCopy,
__out_bcount_opt(cjCopy) LPOUTLI _Out_writes_bytes_opt_(cjCopy) L
NETEXTMETRICA potm); POUTLINETEXTMETRICA potm);
WINGDIAPI UINT APIENTRY GetOutlineTextMetricsW( __in HDC hdc, WINGDIAPI UINT APIENTRY GetOutlineTextMetricsW( _In_ HDC hdc,
__in UINT cjCopy, _In_ UINT cjCopy,
__out_bcount_opt(cjCopy) LPOUTLI _Out_writes_bytes_opt_(cjCopy) L
NETEXTMETRICW potm); POUTLINETEXTMETRICW potm);
#ifdef UNICODE #ifdef UNICODE
#define GetOutlineTextMetrics GetOutlineTextMetricsW #define GetOutlineTextMetrics GetOutlineTextMetricsW
#else #else
#define GetOutlineTextMetrics GetOutlineTextMetricsA #define GetOutlineTextMetrics GetOutlineTextMetricsA
#endif // !UNICODE #endif // !UNICODE
#endif /* NOTEXTMETRIC */ #endif /* NOTEXTMETRIC */
__range(0,cEntries) _Ret_range_(0,cEntries)
WINGDIAPI UINT WINAPI GetPaletteEntries( __in HPALETTE hpal, WINGDIAPI UINT WINAPI GetPaletteEntries( _In_ HPALETTE hpal,
__in UINT iStart, _In_ UINT iStart,
__in UINT cEntries, _In_ UINT cEntries,
__out_ecount_part_opt(cEntries,retur _Out_writes_to_opt_(cEntries,return)
n) LPPALETTEENTRY pPalEntries); LPPALETTEENTRY pPalEntries);
WINGDIAPI COLORREF WINAPI GetPixel( __in HDC hdc, __in int x, __in int y); WINGDIAPI COLORREF WINAPI GetPixel( _In_ HDC hdc, _In_ int x, _In_ int y);
WINGDIAPI int WINAPI GetPixelFormat( __in HDC hdc); WINGDIAPI int WINAPI GetPixelFormat( _In_ HDC hdc);
WINGDIAPI int WINAPI GetPolyFillMode( __in HDC hdc); WINGDIAPI int WINAPI GetPolyFillMode( _In_ HDC hdc);
WINGDIAPI BOOL WINAPI GetRasterizerCaps( __out_bcount(cjBytes) LPRASTERIZER_S WINGDIAPI BOOL WINAPI GetRasterizerCaps( _Out_writes_bytes_(cjBytes) LPRASTER
TATUS lpraststat, IZER_STATUS lpraststat,
__in UINT cjBytes); _In_ UINT cjBytes);
WINGDIAPI int WINAPI GetRandomRgn (__in HDC hdc, __in HRGN hrgn, __in INT i); WINGDIAPI int WINAPI GetRandomRgn (_In_ HDC hdc, _In_ HRGN hrgn, _In_ INT i);
WINGDIAPI DWORD WINAPI GetRegionData( __in HRGN hrgn, WINGDIAPI DWORD WINAPI GetRegionData( _In_ HRGN hrgn,
__in DWORD nCount, _In_ DWORD nCount,
__out_bcount_part_opt(nCount, return) LP _Out_writes_bytes_to_opt_(nCount, return
RGNDATA lpRgnData); ) LPRGNDATA lpRgnData);
WINGDIAPI int WINAPI GetRgnBox( __in HRGN hrgn, __out LPRECT lprc); WINGDIAPI int WINAPI GetRgnBox( _In_ HRGN hrgn, _Out_ LPRECT lprc);
WINGDIAPI HGDIOBJ WINAPI GetStockObject( __in int i); WINGDIAPI HGDIOBJ WINAPI GetStockObject( _In_ int i);
WINGDIAPI int WINAPI GetStretchBltMode(__in HDC hdc); WINGDIAPI int WINAPI GetStretchBltMode(_In_ HDC hdc);
WINGDIAPI WINGDIAPI
UINT UINT
WINAPI WINAPI
GetSystemPaletteEntries( GetSystemPaletteEntries(
__in HDC hdc, _In_ HDC hdc,
__in UINT iStart, _In_ UINT iStart,
__in UINT cEntries, _In_ UINT cEntries,
__out_ecount_opt(cEntries) LPPALETTEENTRY pPalEntries _Out_writes_opt_(cEntries) LPPALETTEENTRY pPalEntries
); );
WINGDIAPI UINT WINAPI GetSystemPaletteUse(__in HDC hdc); WINGDIAPI UINT WINAPI GetSystemPaletteUse(_In_ HDC hdc);
WINGDIAPI int WINAPI GetTextCharacterExtra(__in HDC hdc); WINGDIAPI int WINAPI GetTextCharacterExtra(_In_ HDC hdc);
WINGDIAPI UINT WINAPI GetTextAlign(__in HDC hdc); WINGDIAPI UINT WINAPI GetTextAlign(_In_ HDC hdc);
WINGDIAPI COLORREF WINAPI GetTextColor(__in HDC hdc); WINGDIAPI COLORREF WINAPI GetTextColor(_In_ HDC hdc);
WINGDIAPI WINGDIAPI
BOOL BOOL
APIENTRY APIENTRY
GetTextExtentPointA( GetTextExtentPointA(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(c) LPCSTR lpString, _In_reads_(c) LPCSTR lpString,
__in int c, _In_ int c,
__out LPSIZE lpsz _Out_ LPSIZE lpsz
); );
WINGDIAPI WINGDIAPI
BOOL BOOL
APIENTRY APIENTRY
GetTextExtentPointW( GetTextExtentPointW(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(c) LPCWSTR lpString, _In_reads_(c) LPCWSTR lpString,
__in int c, _In_ int c,
__out LPSIZE lpsz _Out_ LPSIZE lpsz
); );
#ifdef UNICODE #ifdef UNICODE
#define GetTextExtentPoint GetTextExtentPointW #define GetTextExtentPoint GetTextExtentPointW
#else #else
#define GetTextExtentPoint GetTextExtentPointA #define GetTextExtentPoint GetTextExtentPointA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI WINGDIAPI
BOOL BOOL
APIENTRY APIENTRY
GetTextExtentPoint32A( GetTextExtentPoint32A(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(c) LPCSTR lpString, _In_reads_(c) LPCSTR lpString,
__in int c, _In_ int c,
__out LPSIZE psizl _Out_ LPSIZE psizl
); );
WINGDIAPI WINGDIAPI
BOOL BOOL
APIENTRY APIENTRY
GetTextExtentPoint32W( GetTextExtentPoint32W(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(c) LPCWSTR lpString, _In_reads_(c) LPCWSTR lpString,
__in int c, _In_ int c,
__out LPSIZE psizl _Out_ LPSIZE psizl
); );
#ifdef UNICODE #ifdef UNICODE
#define GetTextExtentPoint32 GetTextExtentPoint32W #define GetTextExtentPoint32 GetTextExtentPoint32W
#else #else
#define GetTextExtentPoint32 GetTextExtentPoint32A #define GetTextExtentPoint32 GetTextExtentPoint32A
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI WINGDIAPI
BOOL BOOL
APIENTRY APIENTRY
GetTextExtentExPointA( GetTextExtentExPointA(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(cchString) LPCSTR lpszString, _In_reads_(cchString) LPCSTR lpszString,
__in int cchString, _In_ int cchString,
__in int nMaxExtent, _In_ int nMaxExtent,
__out_opt LPINT lpnFit, _Out_opt_ LPINT lpnFit,
__out_ecount_part_opt (cchString, *lpnFit) LPINT lpnDx, _Out_writes_to_opt_ (cchString, *lpnFit) LPINT lpnDx,
__out LPSIZE lpSize _Out_ LPSIZE lpSize
); );
WINGDIAPI WINGDIAPI
BOOL BOOL
APIENTRY APIENTRY
GetTextExtentExPointW( GetTextExtentExPointW(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(cchString) LPCWSTR lpszString, _In_reads_(cchString) LPCWSTR lpszString,
__in int cchString, _In_ int cchString,
__in int nMaxExtent, _In_ int nMaxExtent,
__out_opt LPINT lpnFit, _Out_opt_ LPINT lpnFit,
__out_ecount_part_opt (cchString, *lpnFit) LPINT lpnDx, _Out_writes_to_opt_ (cchString, *lpnFit) LPINT lpnDx,
__out LPSIZE lpSize _Out_ LPSIZE lpSize
); );
#ifdef UNICODE #ifdef UNICODE
#define GetTextExtentExPoint GetTextExtentExPointW #define GetTextExtentExPoint GetTextExtentExPointW
#else #else
#define GetTextExtentExPoint GetTextExtentExPointA #define GetTextExtentExPoint GetTextExtentExPointA
#endif // !UNICODE #endif // !UNICODE
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
WINGDIAPI int WINAPI GetTextCharset( __in HDC hdc); WINGDIAPI int WINAPI GetTextCharset( _In_ HDC hdc);
WINGDIAPI int WINAPI GetTextCharsetInfo( __in HDC hdc, __out_opt LPFONTSIGNATURE WINGDIAPI int WINAPI GetTextCharsetInfo( _In_ HDC hdc, _Out_opt_ LPFONTSIGNATURE
lpSig, __in DWORD dwFlags); lpSig, _In_ DWORD dwFlags);
WINGDIAPI BOOL WINAPI TranslateCharsetInfo( __inout DWORD FAR *lpSrc, __out LPC WINGDIAPI BOOL WINAPI TranslateCharsetInfo( _Inout_ DWORD FAR *lpSrc, _Out_ LPC
HARSETINFO lpCs, __in DWORD dwFlags); HARSETINFO lpCs, _In_ DWORD dwFlags);
WINGDIAPI DWORD WINAPI GetFontLanguageInfo( __in HDC hdc); WINGDIAPI DWORD WINAPI GetFontLanguageInfo( _In_ HDC hdc);
WINGDIAPI DWORD WINAPI GetCharacterPlacementA( __in HDC hdc, __in_ecount(nCount WINGDIAPI DWORD WINAPI GetCharacterPlacementA( _In_ HDC hdc, _In_reads_(nCount)
) LPCSTR lpString, __in int nCount, __in int nMexExtent, __inout LPGCP_RESULTSA LPCSTR lpString, _In_ int nCount, _In_ int nMexExtent, _Inout_ LPGCP_RESULTSA l
lpResults, __in DWORD dwFlags); pResults, _In_ DWORD dwFlags);
WINGDIAPI DWORD WINAPI GetCharacterPlacementW( __in HDC hdc, __in_ecount(nCount WINGDIAPI DWORD WINAPI GetCharacterPlacementW( _In_ HDC hdc, _In_reads_(nCount)
) LPCWSTR lpString, __in int nCount, __in int nMexExtent, __inout LPGCP_RESULTSW LPCWSTR lpString, _In_ int nCount, _In_ int nMexExtent, _Inout_ LPGCP_RESULTSW
lpResults, __in DWORD dwFlags); lpResults, _In_ DWORD dwFlags);
#ifdef UNICODE #ifdef UNICODE
#define GetCharacterPlacement GetCharacterPlacementW #define GetCharacterPlacement GetCharacterPlacementW
#else #else
#define GetCharacterPlacement GetCharacterPlacementA #define GetCharacterPlacement GetCharacterPlacementA
#endif // !UNICODE #endif // !UNICODE
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct tagWCRANGE typedef struct tagWCRANGE
{ {
WCHAR wcLow; WCHAR wcLow;
USHORT cGlyphs; USHORT cGlyphs;
} WCRANGE, *PWCRANGE,FAR *LPWCRANGE; } WCRANGE, *PWCRANGE,FAR *LPWCRANGE;
typedef struct tagGLYPHSET typedef struct tagGLYPHSET
{ {
DWORD cbThis; DWORD cbThis;
DWORD flAccel; DWORD flAccel;
skipping to change at line 3767 skipping to change at line 4153
} GLYPHSET, *PGLYPHSET, FAR *LPGLYPHSET; } GLYPHSET, *PGLYPHSET, FAR *LPGLYPHSET;
/* flAccel flags for the GLYPHSET structure above */ /* flAccel flags for the GLYPHSET structure above */
#define GS_8BIT_INDICES 0x00000001 #define GS_8BIT_INDICES 0x00000001
/* flags for GetGlyphIndices */ /* flags for GetGlyphIndices */
#define GGI_MARK_NONEXISTING_GLYPHS 0X0001 #define GGI_MARK_NONEXISTING_GLYPHS 0X0001
WINGDIAPI DWORD WINAPI GetFontUnicodeRanges( __in HDC hdc, __out_opt LPGLYPHSET WINGDIAPI DWORD WINAPI GetFontUnicodeRanges( _In_ HDC hdc, _Out_opt_ LPGLYPHSET
lpgs); lpgs);
WINGDIAPI DWORD WINAPI GetGlyphIndicesA( __in HDC hdc, __in_ecount(c) LPCSTR lps WINGDIAPI DWORD WINAPI GetGlyphIndicesA( _In_ HDC hdc, _In_reads_(c) LPCSTR lpst
tr, __in int c, __out_ecount(c) LPWORD pgi, __in DWORD fl); r, _In_ int c, _Out_writes_(c) LPWORD pgi, _In_ DWORD fl);
WINGDIAPI DWORD WINAPI GetGlyphIndicesW( __in HDC hdc, __in_ecount(c) LPCWSTR lp WINGDIAPI DWORD WINAPI GetGlyphIndicesW( _In_ HDC hdc, _In_reads_(c) LPCWSTR lps
str, __in int c, __out_ecount(c) LPWORD pgi, __in DWORD fl); tr, _In_ int c, _Out_writes_(c) LPWORD pgi, _In_ DWORD fl);
#ifdef UNICODE #ifdef UNICODE
#define GetGlyphIndices GetGlyphIndicesW #define GetGlyphIndices GetGlyphIndicesW
#else #else
#define GetGlyphIndices GetGlyphIndicesA #define GetGlyphIndices GetGlyphIndicesA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI GetTextExtentPointI(__in HDC hdc, __in_ecount(cgi) LPWORD WINGDIAPI BOOL WINAPI GetTextExtentPointI(_In_ HDC hdc, _In_reads_(cgi) LPWORD
pgiIn, __in int cgi, __out LPSIZE psize); pgiIn, _In_ int cgi, _Out_ LPSIZE psize);
WINGDIAPI BOOL WINAPI GetTextExtentExPointI ( __in HDC hdc, WINGDIAPI BOOL WINAPI GetTextExtentExPointI ( _In_ HDC hdc,
__in_ecount(cwchString) LPWORD l _In_reads_(cwchString) LPWORD lp
pwszString, wszString,
__in int cwchString, _In_ int cwchString,
__in int nMaxExtent, _In_ int nMaxExtent,
__out_opt LPINT lpnFit, _Out_opt_ LPINT lpnFit,
__out_ecount_part_opt(cwchString _Out_writes_to_opt_(cwchString,
, *lpnFit) LPINT lpnDx, *lpnFit) LPINT lpnDx,
__out LPSIZE lpSize _Out_ LPSIZE lpSize
); );
WINGDIAPI BOOL WINAPI GetCharWidthI( __in HDC hdc, WINGDIAPI BOOL WINAPI GetCharWidthI( _In_ HDC hdc,
__in UINT giFirst, _In_ UINT giFirst,
__in UINT cgi, _In_ UINT cgi,
__in_ecount_opt(cgi) LPWORD pgi, _In_reads_opt_(cgi) LPWORD pgi,
__out_ecount(cgi) LPINT piWidths _Out_writes_(cgi) LPINT piWidths
); );
WINGDIAPI BOOL WINAPI GetCharABCWidthsI( __in HDC hdc, WINGDIAPI BOOL WINAPI GetCharABCWidthsI( _In_ HDC hdc,
__in UINT giFirst, _In_ UINT giFirst,
__in UINT cgi, _In_ UINT cgi,
__in_ecount_opt(cgi) LPWORD pgi, _In_reads_opt_(cgi) LPWORD pgi,
__out_ecount(cgi) LPABC pabc _Out_writes_(cgi) LPABC pabc
); );
#define STAMP_DESIGNVECTOR (0x8000000 + 'd' + ('v' << 8)) #define STAMP_DESIGNVECTOR (0x8000000 + 'd' + ('v' << 8))
#define STAMP_AXESLIST (0x8000000 + 'a' + ('l' << 8)) #define STAMP_AXESLIST (0x8000000 + 'a' + ('l' << 8))
#define MM_MAX_NUMAXES 16 #define MM_MAX_NUMAXES 16
typedef struct tagDESIGNVECTOR typedef struct tagDESIGNVECTOR
{ {
DWORD dvReserved; DWORD dvReserved;
DWORD dvNumAxes; DWORD dvNumAxes;
LONG dvValues[MM_MAX_NUMAXES]; LONG dvValues[MM_MAX_NUMAXES];
} DESIGNVECTOR, *PDESIGNVECTOR, FAR *LPDESIGNVECTOR; } DESIGNVECTOR, *PDESIGNVECTOR, FAR *LPDESIGNVECTOR;
WINGDIAPI int WINAPI AddFontResourceExA( __in LPCSTR name, __in DWORD fl, __res WINGDIAPI int WINAPI AddFontResourceExA( _In_ LPCSTR name, _In_ DWORD fl, _Rese
erved PVOID res); rved_ PVOID res);
WINGDIAPI int WINAPI AddFontResourceExW( __in LPCWSTR name, __in DWORD fl, __re WINGDIAPI int WINAPI AddFontResourceExW( _In_ LPCWSTR name, _In_ DWORD fl, _Res
served PVOID res); erved_ PVOID res);
#ifdef UNICODE #ifdef UNICODE
#define AddFontResourceEx AddFontResourceExW #define AddFontResourceEx AddFontResourceExW
#else #else
#define AddFontResourceEx AddFontResourceExA #define AddFontResourceEx AddFontResourceExA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI RemoveFontResourceExA( __in LPCSTR name, __in DWORD fl, __ WINGDIAPI BOOL WINAPI RemoveFontResourceExA( _In_ LPCSTR name, _In_ DWORD fl, _R
reserved PVOID pdv); eserved_ PVOID pdv);
WINGDIAPI BOOL WINAPI RemoveFontResourceExW( __in LPCWSTR name, __in DWORD fl, _ WINGDIAPI BOOL WINAPI RemoveFontResourceExW( _In_ LPCWSTR name, _In_ DWORD fl, _
_reserved PVOID pdv); Reserved_ PVOID pdv);
#ifdef UNICODE #ifdef UNICODE
#define RemoveFontResourceEx RemoveFontResourceExW #define RemoveFontResourceEx RemoveFontResourceExW
#else #else
#define RemoveFontResourceEx RemoveFontResourceExA #define RemoveFontResourceEx RemoveFontResourceExA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HANDLE WINAPI AddFontMemResourceEx( __in_bcount(cjSize) PVOID pFileV WINGDIAPI HANDLE WINAPI AddFontMemResourceEx( _In_reads_bytes_(cjSize) PVOID p
iew, FileView,
__in DWORD cjSize, _In_ DWORD cjSize,
__reserved PVOID pvResrved, _Reserved_ PVOID pvResrved,
__in DWORD* pNumFonts); _In_ DWORD* pNumFonts);
WINGDIAPI BOOL WINAPI RemoveFontMemResourceEx( __in HANDLE h); WINGDIAPI BOOL WINAPI RemoveFontMemResourceEx( _In_ HANDLE h);
#define FR_PRIVATE 0x10 #define FR_PRIVATE 0x10
#define FR_NOT_ENUM 0x20 #define FR_NOT_ENUM 0x20
// The actual size of the DESIGNVECTOR and ENUMLOGFONTEXDV structures // The actual size of the DESIGNVECTOR and ENUMLOGFONTEXDV structures
// is determined by dvNumAxes, // is determined by dvNumAxes,
// MM_MAX_NUMAXES only detemines the maximal size allowed // MM_MAX_NUMAXES only detemines the maximal size allowed
#define MM_MAX_AXES_NAMELEN 16 #define MM_MAX_AXES_NAMELEN 16
typedef struct tagAXISINFOA typedef struct tagAXISINFOA
skipping to change at line 3907 skipping to change at line 4293
#ifdef UNICODE #ifdef UNICODE
typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV; typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV;
typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV; typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV;
typedef LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV; typedef LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV;
#else #else
typedef ENUMLOGFONTEXDVA ENUMLOGFONTEXDV; typedef ENUMLOGFONTEXDVA ENUMLOGFONTEXDV;
typedef PENUMLOGFONTEXDVA PENUMLOGFONTEXDV; typedef PENUMLOGFONTEXDVA PENUMLOGFONTEXDV;
typedef LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV; typedef LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV;
#endif // UNICODE #endif // UNICODE
WINGDIAPI HFONT WINAPI CreateFontIndirectExA( __in CONST ENUMLOGFONTEXDVA *); WINGDIAPI HFONT WINAPI CreateFontIndirectExA( _In_ CONST ENUMLOGFONTEXDVA *);
WINGDIAPI HFONT WINAPI CreateFontIndirectExW( __in CONST ENUMLOGFONTEXDVW *); WINGDIAPI HFONT WINAPI CreateFontIndirectExW( _In_ CONST ENUMLOGFONTEXDVW *);
#ifdef UNICODE #ifdef UNICODE
#define CreateFontIndirectEx CreateFontIndirectExW #define CreateFontIndirectEx CreateFontIndirectExW
#else #else
#define CreateFontIndirectEx CreateFontIndirectExA #define CreateFontIndirectEx CreateFontIndirectExA
#endif // !UNICODE #endif // !UNICODE
#ifndef NOTEXTMETRIC #ifndef NOTEXTMETRIC
typedef struct tagENUMTEXTMETRICA typedef struct tagENUMTEXTMETRICA
{ {
NEWTEXTMETRICEXA etmNewTextMetricEx; NEWTEXTMETRICEXA etmNewTextMetricEx;
skipping to change at line 3937 skipping to change at line 4323
typedef ENUMTEXTMETRICW ENUMTEXTMETRIC; typedef ENUMTEXTMETRICW ENUMTEXTMETRIC;
typedef PENUMTEXTMETRICW PENUMTEXTMETRIC; typedef PENUMTEXTMETRICW PENUMTEXTMETRIC;
typedef LPENUMTEXTMETRICW LPENUMTEXTMETRIC; typedef LPENUMTEXTMETRICW LPENUMTEXTMETRIC;
#else #else
typedef ENUMTEXTMETRICA ENUMTEXTMETRIC; typedef ENUMTEXTMETRICA ENUMTEXTMETRIC;
typedef PENUMTEXTMETRICA PENUMTEXTMETRIC; typedef PENUMTEXTMETRICA PENUMTEXTMETRIC;
typedef LPENUMTEXTMETRICA LPENUMTEXTMETRIC; typedef LPENUMTEXTMETRICA LPENUMTEXTMETRIC;
#endif // UNICODE #endif // UNICODE
#endif /* NOTEXTMETRIC */ #endif /* NOTEXTMETRIC */
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #endif // (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
WINGDIAPI BOOL WINAPI GetViewportExtEx( __in HDC hdc, __out LPSIZE lpsize); #pragma region Desktop Family
WINGDIAPI BOOL WINAPI GetViewportOrgEx( __in HDC hdc, __out LPPOINT lppoint); #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
WINGDIAPI BOOL WINAPI GetWindowExtEx( __in HDC hdc, __out LPSIZE lpsize);
WINGDIAPI BOOL WINAPI GetWindowOrgEx( __in HDC hdc, __out LPPOINT lppoint);
__gdi_entry WINGDIAPI int WINAPI IntersectClipRect( __in HDC hdc, __in int left WINGDIAPI BOOL WINAPI GetViewportExtEx( _In_ HDC hdc, _Out_ LPSIZE lpsize);
, __in int top, __in int right, __in int bottom); WINGDIAPI BOOL WINAPI GetViewportOrgEx( _In_ HDC hdc, _Out_ LPPOINT lppoint);
__gdi_entry WINGDIAPI BOOL WINAPI InvertRgn( __in HDC hdc, __in HRGN hrgn); WINGDIAPI BOOL WINAPI GetWindowExtEx( _In_ HDC hdc, _Out_ LPSIZE lpsize);
WINGDIAPI BOOL WINAPI LineDDA( __in int xStart, __in int yStart, __in int xEnd, WINGDIAPI BOOL WINAPI GetWindowOrgEx( _In_ HDC hdc, _Out_ LPPOINT lppoint);
__in int yEnd, __in LINEDDAPROC lpProc, __in_opt LPARAM data);
__gdi_entry WINGDIAPI BOOL WINAPI LineTo( __in HDC hdc, __in int x, __in int y);
WINGDIAPI BOOL WINAPI MaskBlt( __in HDC hdcDest, __in int xDest, __in int yDest,
__in int width, __in int height,
__in HDC hdcSrc, __in int xSrc, __in int ySrc, __in HBITMAP hbmMas
k, __in int xMask, __in int yMask, __in DWORD rop);
WINGDIAPI BOOL WINAPI PlgBlt( __in HDC hdcDest, __in_ecount(3) CONST POINT * lpP
oint, __in HDC hdcSrc, __in int xSrc, __in int ySrc, __in int width,
__in int height, __in_opt HBITMAP hbmMask, __in int xMask,
__in int yMask);
__gdi_entry WINGDIAPI int WINAPI OffsetClipRgn(__in HDC hdc, __in int x, __in i WINGDIAPI int WINAPI IntersectClipRect( _In_ HDC hdc, _In_ int left, _In_ int
nt y); top, _In_ int right, _In_ int bottom);
WINGDIAPI int WINAPI OffsetRgn(__in HRGN hrgn, __in int x, __in int y); WINGDIAPI BOOL WINAPI InvertRgn( _In_ HDC hdc, _In_ HRGN hrgn);
__gdi_entry WINGDIAPI BOOL WINAPI PatBlt(__in HDC hdc, __in int x, __in int y, _ WINGDIAPI BOOL WINAPI LineDDA( _In_ int xStart, _In_ int yStart, _In_ int xEnd,
_in int w, __in int h, __in DWORD rop); _In_ int yEnd, _In_ LINEDDAPROC lpProc, _In_opt_ LPARAM data);
__gdi_entry WINGDIAPI BOOL WINAPI Pie(__in HDC hdc, __in int left, __in int top, WINGDIAPI BOOL WINAPI LineTo( _In_ HDC hdc, _In_ int x, _In_ int y);
__in int right, __in int bottom, __in int xr1, __in int yr1, __in int xr2, __in WINGDIAPI BOOL WINAPI MaskBlt( _In_ HDC hdcDest, _In_ int xDest, _In_ int yDest,
int yr2); _In_ int width, _In_ int height,
WINGDIAPI BOOL WINAPI PlayMetaFile(__in HDC hdc, __in HMETAFILE hmf); _In_ HDC hdcSrc, _In_ int xSrc, _In_ int ySrc, _In_ HBITMAP hbmMas
__gdi_entry WINGDIAPI BOOL WINAPI PaintRgn(__in HDC hdc, __in HRGN hrgn); k, _In_ int xMask, _In_ int yMask, _In_ DWORD rop);
__gdi_entry WINGDIAPI BOOL WINAPI PolyPolygon(__in HDC hdc, __in CONST POINT *a WINGDIAPI BOOL WINAPI PlgBlt( _In_ HDC hdcDest, _In_reads_(3) CONST POINT * lpPo
pt, __in_ecount(csz) CONST INT *asz, __in int csz); int, _In_ HDC hdcSrc, _In_ int xSrc, _In_ int ySrc, _In_ int width,
WINGDIAPI BOOL WINAPI PtInRegion(__in HRGN hrgn, __in int x, __in int y); _In_ int height, _In_opt_ HBITMAP hbmMask, _In_ int xMask,
WINGDIAPI BOOL WINAPI PtVisible(__in HDC hdc, __in int x, __in int y); _In_ int yMask);
WINGDIAPI BOOL WINAPI RectInRegion(__in HRGN hrgn, __in CONST RECT * lprect);
WINGDIAPI BOOL WINAPI RectVisible(__in HDC hdc, __in CONST RECT * lprect); WINGDIAPI int WINAPI OffsetClipRgn(_In_ HDC hdc, _In_ int x, _In_ int y);
__gdi_entry WINGDIAPI BOOL WINAPI Rectangle(__in HDC hdc, __in int left, __in in WINGDIAPI int WINAPI OffsetRgn(_In_ HRGN hrgn, _In_ int x, _In_ int y);
t top, __in int right, __in int bottom); WINGDIAPI BOOL WINAPI PatBlt(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ int w,
__gdi_entry WINGDIAPI BOOL WINAPI RestoreDC(__in HDC hdc, __in int nSavedDC); _In_ int h, _In_ DWORD rop);
__gdi_entry WINGDIAPI HDC WINAPI ResetDCA(__in HDC hdc, __in CONST DEVMODEA * l WINGDIAPI BOOL WINAPI Pie(_In_ HDC hdc, _In_ int left, _In_ int top, _In_ int r
pdm); ight, _In_ int bottom, _In_ int xr1, _In_ int yr1, _In_ int xr2, _In_ int yr2);
__gdi_entry WINGDIAPI HDC WINAPI ResetDCW(__in HDC hdc, __in CONST DEVMODEW * l WINGDIAPI BOOL WINAPI PlayMetaFile(_In_ HDC hdc, _In_ HMETAFILE hmf);
pdm); WINGDIAPI BOOL WINAPI PaintRgn(_In_ HDC hdc, _In_ HRGN hrgn);
WINGDIAPI BOOL WINAPI PolyPolygon(_In_ HDC hdc, _In_ CONST POINT *apt, _In_re
ads_(csz) CONST INT *asz, _In_ int csz);
WINGDIAPI BOOL WINAPI PtInRegion(_In_ HRGN hrgn, _In_ int x, _In_ int y);
WINGDIAPI BOOL WINAPI PtVisible(_In_ HDC hdc, _In_ int x, _In_ int y);
WINGDIAPI BOOL WINAPI RectInRegion(_In_ HRGN hrgn, _In_ CONST RECT * lprect);
WINGDIAPI BOOL WINAPI RectVisible(_In_ HDC hdc, _In_ CONST RECT * lprect);
WINGDIAPI BOOL WINAPI Rectangle(_In_ HDC hdc, _In_ int left, _In_ int top, _In_
int right, _In_ int bottom);
WINGDIAPI BOOL WINAPI RestoreDC(_In_ HDC hdc, _In_ int nSavedDC);
WINGDIAPI HDC WINAPI ResetDCA(_In_ HDC hdc, _In_ CONST DEVMODEA * lpdm);
WINGDIAPI HDC WINAPI ResetDCW(_In_ HDC hdc, _In_ CONST DEVMODEW * lpdm);
#ifdef UNICODE #ifdef UNICODE
#define ResetDC ResetDCW #define ResetDC ResetDCW
#else #else
#define ResetDC ResetDCA #define ResetDC ResetDCA
#endif // !UNICODE #endif // !UNICODE
__gdi_entry WINGDIAPI UINT WINAPI RealizePalette(__in HDC hdc); WINGDIAPI UINT WINAPI RealizePalette(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI RemoveFontResourceA(__in LPCSTR lpFileName); WINGDIAPI BOOL WINAPI RemoveFontResourceA(_In_ LPCSTR lpFileName);
WINGDIAPI BOOL WINAPI RemoveFontResourceW(__in LPCWSTR lpFileName); WINGDIAPI BOOL WINAPI RemoveFontResourceW(_In_ LPCWSTR lpFileName);
#ifdef UNICODE #ifdef UNICODE
#define RemoveFontResource RemoveFontResourceW #define RemoveFontResource RemoveFontResourceW
#else #else
#define RemoveFontResource RemoveFontResourceA #define RemoveFontResource RemoveFontResourceA
#endif // !UNICODE #endif // !UNICODE
__gdi_entry WINGDIAPI BOOL WINAPI RoundRect(__in HDC hdc, __in int left, __in i WINGDIAPI BOOL WINAPI RoundRect(_In_ HDC hdc, _In_ int left, _In_ int top, _In
nt top, __in int right, __in int bottom, __in int width, __in int height); _ int right, _In_ int bottom, _In_ int width, _In_ int height);
__gdi_entry WINGDIAPI BOOL WINAPI ResizePalette(__in HPALETTE hpal, __in UINT n) WINGDIAPI BOOL WINAPI ResizePalette(_In_ HPALETTE hpal, _In_ UINT n);
;
__gdi_entry WINGDIAPI int WINAPI SaveDC(__in HDC hdc); WINGDIAPI int WINAPI SaveDC(_In_ HDC hdc);
__gdi_entry WINGDIAPI int WINAPI SelectClipRgn(__in HDC hdc, __in_opt HRGN hrgn WINGDIAPI int WINAPI SelectClipRgn(_In_ HDC hdc, _In_opt_ HRGN hrgn);
); WINGDIAPI int WINAPI ExtSelectClipRgn(_In_ HDC hdc, _In_opt_ HRGN hrgn, _In_ in
WINGDIAPI int WINAPI ExtSelectClipRgn(__in HDC hdc, __in_opt HRGN hrgn, __in in t mode);
t mode); WINGDIAPI int WINAPI SetMetaRgn(_In_ HDC hdc);
WINGDIAPI int WINAPI SetMetaRgn(__in HDC hdc); WINGDIAPI HGDIOBJ WINAPI SelectObject(_In_ HDC hdc, _In_ HGDIOBJ h);
__gdi_entry WINGDIAPI HGDIOBJ WINAPI SelectObject(__in HDC hdc, __in HGDIOBJ h); WINGDIAPI HPALETTE WINAPI SelectPalette(_In_ HDC hdc, _In_ HPALETTE hPal, _In_
__gdi_entry WINGDIAPI HPALETTE WINAPI SelectPalette(__in HDC hdc, __in HPALETTE BOOL bForceBkgd);
hPal, __in BOOL bForceBkgd); WINGDIAPI COLORREF WINAPI SetBkColor(_In_ HDC hdc, _In_ COLORREF color);
__gdi_entry WINGDIAPI COLORREF WINAPI SetBkColor(__in HDC hdc, __in COLORREF col
or);
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
WINGDIAPI COLORREF WINAPI SetDCBrushColor(__in HDC hdc, __in COLORREF color); WINGDIAPI COLORREF WINAPI SetDCBrushColor(_In_ HDC hdc, _In_ COLORREF color);
WINGDIAPI COLORREF WINAPI SetDCPenColor(__in HDC hdc, __in COLORREF color); WINGDIAPI COLORREF WINAPI SetDCPenColor(_In_ HDC hdc, _In_ COLORREF color);
#endif #endif
__gdi_entry WINGDIAPI int WINAPI SetBkMode(__in HDC hdc, __in int mode); WINGDIAPI int WINAPI SetBkMode(_In_ HDC hdc, _In_ int mode);
WINGDIAPI WINGDIAPI
LONG WINAPI LONG WINAPI
SetBitmapBits( SetBitmapBits(
__in HBITMAP hbm, _In_ HBITMAP hbm,
__in DWORD cb, _In_ DWORD cb,
__in_bcount(cb) CONST VOID *pvBits); _In_reads_bytes_(cb) CONST VOID *pvBits);
WINGDIAPI UINT WINAPI SetBoundsRect(__in HDC hdc, __in_opt CONST RECT * lprect, WINGDIAPI UINT WINAPI SetBoundsRect(_In_ HDC hdc, _In_opt_ CONST RECT * lprect,
__in UINT flags); _In_ UINT flags);
WINGDIAPI int WINAPI SetDIBits(__in_opt HDC hdc, __in HBITMAP hbm, __in UINT s WINGDIAPI int WINAPI SetDIBits(_In_opt_ HDC hdc, _In_ HBITMAP hbm, _In_ UINT s
tart, __in UINT cLines, __in CONST VOID *lpBits, __in CONST BITMAPINFO * lpbmi, tart, _In_ UINT cLines, _In_ CONST VOID *lpBits, _In_ CONST BITMAPINFO * lpbmi,
__in UINT ColorUse); _In_ UINT ColorUse);
__gdi_entry WINGDIAPI int WINAPI SetDIBitsToDevice(__in HDC hdc, __in int xDes WINGDIAPI int WINAPI SetDIBitsToDevice(_In_ HDC hdc, _In_ int xDest, _In_ int
t, __in int yDest, __in DWORD w, __in DWORD h, __in int xSrc, yDest, _In_ DWORD w, _In_ DWORD h, _In_ int xSrc,
__in int ySrc, __in UINT StartScan, __in UINT cLines, __in CONST VOID * _In_ int ySrc, _In_ UINT StartScan, _In_ UINT cLines, _In_ CONST VOID *
lpvBits, __in CONST BITMAPINFO * lpbmi, __in UINT ColorUse); lpvBits, _In_ CONST BITMAPINFO * lpbmi, _In_ UINT ColorUse);
__gdi_entry WINGDIAPI DWORD WINAPI SetMapperFlags(__in HDC hdc, __in DWORD flags WINGDIAPI DWORD WINAPI SetMapperFlags(_In_ HDC hdc, _In_ DWORD flags);
); WINGDIAPI int WINAPI SetGraphicsMode(_In_ HDC hdc, _In_ int iMode);
WINGDIAPI int WINAPI SetGraphicsMode(__in HDC hdc, __in int iMode); WINGDIAPI int WINAPI SetMapMode(_In_ HDC hdc, _In_ int iMode);
__gdi_entry WINGDIAPI int WINAPI SetMapMode(__in HDC hdc, __in int iMode);
#if(WINVER >= 0x0500) #if(WINVER >= 0x0500)
__gdi_entry WINGDIAPI DWORD WINAPI SetLayout(__in HDC hdc, __in DWORD l); WINGDIAPI DWORD WINAPI SetLayout(_In_ HDC hdc, _In_ DWORD l);
WINGDIAPI DWORD WINAPI GetLayout(__in HDC hdc); WINGDIAPI DWORD WINAPI GetLayout(_In_ HDC hdc);
#endif /* WINVER >= 0x0500 */ #endif /* WINVER >= 0x0500 */
WINGDIAPI HMETAFILE WINAPI SetMetaFileBitsEx(__in UINT cbBuffer, __in_bcount(c WINGDIAPI HMETAFILE WINAPI SetMetaFileBitsEx(_In_ UINT cbBuffer, _In_reads_byt
bBuffer) CONST BYTE *lpData); es_(cbBuffer) CONST BYTE *lpData);
__gdi_entry WINGDIAPI UINT WINAPI SetPaletteEntries( __in HPALETTE hpal, WINGDIAPI UINT WINAPI SetPaletteEntries( _In_ HPALETTE hpal,
__in UINT iStart, _In_ UINT iStart,
__in UINT cEntries, _In_ UINT cEntries,
__in_ecount(cEntries) CONST PALETTEE _In_reads_(cEntries) CONST PALETTEEN
NTRY *pPalEntries); TRY *pPalEntries);
__gdi_entry WINGDIAPI COLORREF WINAPI SetPixel(__in HDC hdc, __in int x, __in in WINGDIAPI COLORREF WINAPI SetPixel(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ C
t y, __in COLORREF color); OLORREF color);
WINGDIAPI BOOL WINAPI SetPixelV(__in HDC hdc, __in int x, __in int y, __in COL WINGDIAPI BOOL WINAPI SetPixelV(_In_ HDC hdc, _In_ int x, _In_ int y, _In_ COL
ORREF color); ORREF color);
WINGDIAPI BOOL WINAPI SetPixelFormat(__in HDC hdc, __in int format, __in CONST WINGDIAPI BOOL WINAPI SetPixelFormat(_In_ HDC hdc, _In_ int format, _In_ CONST
PIXELFORMATDESCRIPTOR * ppfd); PIXELFORMATDESCRIPTOR * ppfd);
__gdi_entry WINGDIAPI int WINAPI SetPolyFillMode(__in HDC hdc, __in int mode); WINGDIAPI int WINAPI SetPolyFillMode(_In_ HDC hdc, _In_ int mode);
__gdi_entry WINGDIAPI BOOL WINAPI StretchBlt(__in HDC hdcDest, __in int xDest, WINGDIAPI BOOL WINAPI StretchBlt(_In_ HDC hdcDest, _In_ int xDest, _In_ int yD
__in int yDest, __in int wDest, __in int hDest, __in_opt HDC hdcSrc, __in int xS est, _In_ int wDest, _In_ int hDest, _In_opt_ HDC hdcSrc, _In_ int xSrc, _In_ in
rc, __in int ySrc, __in int wSrc, __in int hSrc, __in DWORD rop); t ySrc, _In_ int wSrc, _In_ int hSrc, _In_ DWORD rop);
WINGDIAPI BOOL WINAPI SetRectRgn(__in HRGN hrgn, __in int left, __in int top, WINGDIAPI BOOL WINAPI SetRectRgn(_In_ HRGN hrgn, _In_ int left, _In_ int top,
__in int right, __in int bottom); _In_ int right, _In_ int bottom);
__gdi_entry WINGDIAPI int WINAPI StretchDIBits(__in HDC hdc, __in int xDest, _ WINGDIAPI int WINAPI StretchDIBits(_In_ HDC hdc, _In_ int xDest, _In_ int yDe
_in int yDest, __in int DestWidth, __in int DestHeight, __in int xSrc, __in int st, _In_ int DestWidth, _In_ int DestHeight, _In_ int xSrc, _In_ int ySrc, _In_
ySrc, __in int SrcWidth, __in int SrcHeight, int SrcWidth, _In_ int SrcHeight,
__in_opt CONST VOID * lpBits, __in CONST BITMAPINFO * lpbmi, __in UINT i _In_opt_ CONST VOID * lpBits, _In_ CONST BITMAPINFO * lpbmi, _In_ UINT i
Usage, __in DWORD rop); Usage, _In_ DWORD rop);
__gdi_entry WINGDIAPI int WINAPI SetROP2(__in HDC hdc, __in int rop2); WINGDIAPI int WINAPI SetROP2(_In_ HDC hdc, _In_ int rop2);
__gdi_entry WINGDIAPI int WINAPI SetStretchBltMode(__in HDC hdc, __in int mode WINGDIAPI int WINAPI SetStretchBltMode(_In_ HDC hdc, _In_ int mode);
); WINGDIAPI UINT WINAPI SetSystemPaletteUse(_In_ HDC hdc, _In_ UINT use);
WINGDIAPI UINT WINAPI SetSystemPaletteUse(__in HDC hdc, __in UINT use); WINGDIAPI int WINAPI SetTextCharacterExtra(_In_ HDC hdc, _In_ int extra);
__gdi_entry WINGDIAPI int WINAPI SetTextCharacterExtra(__in HDC hdc, __in int WINGDIAPI COLORREF WINAPI SetTextColor(_In_ HDC hdc, _In_ COLORREF color);
extra); WINGDIAPI UINT WINAPI SetTextAlign(_In_ HDC hdc, _In_ UINT align);
__gdi_entry WINGDIAPI COLORREF WINAPI SetTextColor(__in HDC hdc, __in COLORREF c WINGDIAPI BOOL WINAPI SetTextJustification(_In_ HDC hdc, _In_ int extra, _In_
olor); int count);
__gdi_entry WINGDIAPI UINT WINAPI SetTextAlign(__in HDC hdc, __in UINT align); WINGDIAPI BOOL WINAPI UpdateColors(_In_ HDC hdc);
__gdi_entry WINGDIAPI BOOL WINAPI SetTextJustification(__in HDC hdc, __in int e
xtra, __in int count); #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
WINGDIAPI BOOL WINAPI UpdateColors(__in HDC hdc); #pragma endregion
#ifdef COMBOX_SANDBOX #ifdef COMBOX_SANDBOX
#if (_WIN32_WINNT >= 0x0600) #if (_WIN32_WINNT >= 0x0600)
typedef PVOID (WINAPI *GDIMARSHALLOC)(DWORD dwSize, __in LPVOID pGdiRef); #pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef HRESULT (WINAPI *DDRAWMARSHCALLBACKMARSHAL)(__in HGDIOBJ hGdiObj, __in L typedef PVOID (WINAPI *GDIMARSHALLOC)(DWORD dwSize, _In_ LPVOID pGdiRef);
PVOID pGdiRef, __out LPVOID *ppDDrawRef);
typedef HRESULT (WINAPI *DDRAWMARSHCALLBACKUNMARSHAL)(__in LPVOID pData, __out H typedef HRESULT (WINAPI *DDRAWMARSHCALLBACKMARSHAL)(_In_ HGDIOBJ hGdiObj, _In_ L
DC *phdc, __out LPVOID *ppDDrawRef); PVOID pGdiRef, _Out_ LPVOID *ppDDrawRef);
typedef HRESULT (WINAPI *DDRAWMARSHCALLBACKRELEASE)(__in LPVOID pDDrawRef); typedef HRESULT (WINAPI *DDRAWMARSHCALLBACKUNMARSHAL)(_In_ LPVOID pData, _Out_ H
DC *phdc, _Out_ LPVOID *ppDDrawRef);
typedef HRESULT (WINAPI *DDRAWMARSHCALLBACKRELEASE)(_In_ LPVOID pDDrawRef);
#define GDIREGISTERDDRAWPACKETVERSION 0x1 #define GDIREGISTERDDRAWPACKETVERSION 0x1
typedef struct { typedef struct {
DWORD dwSize; DWORD dwSize;
DWORD dwVersion; DWORD dwVersion;
DDRAWMARSHCALLBACKMARSHAL pfnDdMarshal; DDRAWMARSHCALLBACKMARSHAL pfnDdMarshal;
DDRAWMARSHCALLBACKUNMARSHAL pfnDdUnmarshal; DDRAWMARSHCALLBACKUNMARSHAL pfnDdUnmarshal;
DDRAWMARSHCALLBACKRELEASE pfnDdRelease; DDRAWMARSHCALLBACKRELEASE pfnDdRelease;
} GDIREGISTERDDRAWPACKET, *PGDIREGISTERDDRAWPACKET; } GDIREGISTERDDRAWPACKET, *PGDIREGISTERDDRAWPACKET;
WINGDIAPI BOOL WINAPI GdiRegisterDdraw(__in PGDIREGISTERDDRAWPACKET pPacket , __out GDIMARSHALLOC *ppfnGdiAlloc); WINGDIAPI BOOL WINAPI GdiRegisterDdraw(_In_ PGDIREGISTERDDRAWPACKET pPacket , _Out_ GDIMARSHALLOC *ppfnGdiAlloc);
WINGDIAPI ULONG WINAPI GdiMarshalSize(VOID); WINGDIAPI ULONG WINAPI GdiMarshalSize(VOID);
WINGDIAPI VOID WINAPI GdiMarshal(DWORD dwProcessIdTo, __in HGDIOBJ hGdiObj, WINGDIAPI VOID WINAPI GdiMarshal(DWORD dwProcessIdTo, _In_ HGDIOBJ hGdiObj,
__inout PVOID pData, ULONG ulFlags); _Inout_ PVOID pData, ULONG ulFlags);
WINGDIAPI HGDIOBJ WINAPI GdiUnmarshal(__in PVOID pData, ULONG ulFlags); WINGDIAPI HGDIOBJ WINAPI GdiUnmarshal(_In_ PVOID pData, ULONG ulFlags);
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // (_WIN32_WINNT >= 0x0600) #endif // (_WIN32_WINNT >= 0x0600)
#endif // COMBOX_SANDBOX #endif // COMBOX_SANDBOX
#if (WINVER >= 0x0400) #if (WINVER >= 0x0400)
// //
// image blt // image blt
// //
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef USHORT COLOR16; typedef USHORT COLOR16;
typedef struct _TRIVERTEX typedef struct _TRIVERTEX
{ {
LONG x; LONG x;
LONG y; LONG y;
COLOR16 Red; COLOR16 Red;
COLOR16 Green; COLOR16 Green;
COLOR16 Blue; COLOR16 Blue;
COLOR16 Alpha; COLOR16 Alpha;
}TRIVERTEX,*PTRIVERTEX,*LPTRIVERTEX; }TRIVERTEX,*PTRIVERTEX,*LPTRIVERTEX;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
typedef struct _GRADIENT_TRIANGLE typedef struct _GRADIENT_TRIANGLE
{ {
ULONG Vertex1; ULONG Vertex1;
ULONG Vertex2; ULONG Vertex2;
ULONG Vertex3; ULONG Vertex3;
} GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE; } GRADIENT_TRIANGLE,*PGRADIENT_TRIANGLE,*LPGRADIENT_TRIANGLE;
typedef struct _GRADIENT_RECT typedef struct _GRADIENT_RECT
{ {
ULONG UpperLeft; ULONG UpperLeft;
ULONG LowerRight; ULONG LowerRight;
}GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT; }GRADIENT_RECT,*PGRADIENT_RECT,*LPGRADIENT_RECT;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#pragma region Application Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
typedef struct _BLENDFUNCTION typedef struct _BLENDFUNCTION
{ {
BYTE BlendOp; BYTE BlendOp;
BYTE BlendFlags; BYTE BlendFlags;
BYTE SourceConstantAlpha; BYTE SourceConstantAlpha;
BYTE AlphaFormat; BYTE AlphaFormat;
}BLENDFUNCTION,*PBLENDFUNCTION; }BLENDFUNCTION,*PBLENDFUNCTION;
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) */
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
// //
// currentlly defined blend function // currentlly defined blend function
// //
#define AC_SRC_OVER 0x00 #define AC_SRC_OVER 0x00
// //
// alpha format flags // alpha format flags
// //
#define AC_SRC_ALPHA 0x01 #define AC_SRC_ALPHA 0x01
WINGDIAPI BOOL WINAPI AlphaBlend( WINGDIAPI BOOL WINAPI AlphaBlend(
__in HDC hdcDest, _In_ HDC hdcDest,
__in int xoriginDest, _In_ int xoriginDest,
__in int yoriginDest, _In_ int yoriginDest,
__in int wDest, _In_ int wDest,
__in int hDest, _In_ int hDest,
__in HDC hdcSrc, _In_ HDC hdcSrc,
__in int xoriginSrc, _In_ int xoriginSrc,
__in int yoriginSrc, _In_ int yoriginSrc,
__in int wSrc, _In_ int wSrc,
__in int hSrc, _In_ int hSrc,
__in BLENDFUNCTION ftn); _In_ BLENDFUNCTION ftn);
WINGDIAPI BOOL WINAPI TransparentBlt( WINGDIAPI BOOL WINAPI TransparentBlt(
__in HDC hdcDest, _In_ HDC hdcDest,
__in int xoriginDest, _In_ int xoriginDest,
__in int yoriginDest, _In_ int yoriginDest,
__in int wDest, _In_ int wDest,
__in int hDest, _In_ int hDest,
__in HDC hdcSrc, _In_ HDC hdcSrc,
__in int xoriginSrc, _In_ int xoriginSrc,
__in int yoriginSrc, _In_ int yoriginSrc,
__in int wSrc, _In_ int wSrc,
__in int hSrc, _In_ int hSrc,
__in UINT crTransparent); _In_ UINT crTransparent);
// //
// gradient drawing modes // gradient drawing modes
// //
#define GRADIENT_FILL_RECT_H 0x00000000 #define GRADIENT_FILL_RECT_H 0x00000000
#define GRADIENT_FILL_RECT_V 0x00000001 #define GRADIENT_FILL_RECT_V 0x00000001
#define GRADIENT_FILL_TRIANGLE 0x00000002 #define GRADIENT_FILL_TRIANGLE 0x00000002
#define GRADIENT_FILL_OP_FLAG 0x000000ff #define GRADIENT_FILL_OP_FLAG 0x000000ff
WINGDIAPI WINGDIAPI
BOOL BOOL
WINAPI WINAPI
GradientFill( GradientFill(
__in HDC hdc, _In_ HDC hdc,
__in_ecount(nVertex) PTRIVERTEX pVertex, _In_reads_(nVertex) PTRIVERTEX pVertex,
__in ULONG nVertex, _In_ ULONG nVertex,
__in PVOID pMesh, _In_ PVOID pMesh,
__in ULONG nMesh, _In_ ULONG nMesh,
__in ULONG ulMode _In_ ULONG ulMode
); );
#endif #endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // (WINVER >= 0x0400)
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K) #if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
WINGDIAPI BOOL WINAPI GdiAlphaBlend(__in HDC hdcDest, __in int xoriginDest, __i n int yoriginDest, __in int wDest, __in int hDest, __in HDC hdcSrc, __in int xor iginSrc, __in int yoriginSrc, __in int wSrc, __in int hSrc, __in BLENDFUNCTION f tn); WINGDIAPI BOOL WINAPI GdiAlphaBlend(_In_ HDC hdcDest, _In_ int xoriginDest, _In _ int yoriginDest, _In_ int wDest, _In_ int hDest, _In_ HDC hdcSrc, _In_ int xor iginSrc, _In_ int yoriginSrc, _In_ int wSrc, _In_ int hSrc, _In_ BLENDFUNCTION f tn);
WINGDIAPI BOOL WINAPI GdiTransparentBlt(__in HDC hdcDest,__in int xoriginDest, WINGDIAPI BOOL WINAPI GdiTransparentBlt(_In_ HDC hdcDest,_In_ int xoriginDest,
__in int yoriginDest, __in int wDest, __in int hDest, __in HDC hdcSrc, _In_ int yoriginDest, _In_ int wDest, _In_ int hDest, _In_ HDC hdcSrc,
__in int xoriginSrc, __in int yorigin _In_ int xoriginSrc, _In_ int yorigin
Src, __in int wSrc, __in int hSrc, __in UINT crTransparent); Src, _In_ int wSrc, _In_ int hSrc, _In_ UINT crTransparent);
WINGDIAPI BOOL WINAPI GdiGradientFill( __in HDC hdc, WINGDIAPI BOOL WINAPI GdiGradientFill( _In_ HDC hdc,
__in_ecount(nVertex) PTRIVERTEX pVertex, _In_reads_(nVertex) PTRIVERTEX pVertex,
__in ULONG nVertex, _In_ ULONG nVertex,
__in PVOID pMesh, _In_ PVOID pMesh,
__in ULONG nCount, _In_ ULONG nCount,
__in ULONG ulMode); _In_ ULONG ulMode);
#endif #endif
#ifndef NOMETAFILE #ifndef NOMETAFILE
WINGDIAPI BOOL WINAPI PlayMetaFileRecord( __in HDC hdc, WINGDIAPI BOOL WINAPI PlayMetaFileRecord( _In_ HDC hdc,
__in_ecount(noObjs) LPHANDLETABLE lp _In_reads_(noObjs) LPHANDLETABLE lpH
HandleTable, andleTable,
__in LPMETARECORD lpMR, _In_ LPMETARECORD lpMR,
__in UINT noObjs); _In_ UINT noObjs);
typedef int (CALLBACK* MFENUMPROC)( __in HDC hdc, __in_ecount(nObj) HANDLETABLE typedef int (CALLBACK* MFENUMPROC)( _In_ HDC hdc, _In_reads_(nObj) HANDLETABLE F
FAR* lpht, __in METARECORD FAR* lpMR, __in int nObj, __in_opt LPARAM param); AR* lpht, _In_ METARECORD FAR* lpMR, _In_ int nObj, _In_opt_ LPARAM param);
WINGDIAPI BOOL WINAPI EnumMetaFile( __in HDC hdc, __in HMETAFILE hmf, __in MFEN WINGDIAPI BOOL WINAPI EnumMetaFile( _In_ HDC hdc, _In_ HMETAFILE hmf, _In_ MFEN
UMPROC proc, __in_opt LPARAM param); UMPROC proc, _In_opt_ LPARAM param);
typedef int (CALLBACK* ENHMFENUMPROC)(__in HDC hdc, __in_ecount(nHandles) HANDLE TABLE FAR* lpht, __in CONST ENHMETARECORD * lpmr, __in int nHandles, __in_opt LP ARAM data); typedef int (CALLBACK* ENHMFENUMPROC)(_In_ HDC hdc, _In_reads_(nHandles) HANDLET ABLE FAR* lpht, _In_ CONST ENHMETARECORD * lpmr, _In_ int nHandles, _In_opt_ LPA RAM data);
// Enhanced Metafile Function Declarations // Enhanced Metafile Function Declarations
WINGDIAPI HENHMETAFILE WINAPI CloseEnhMetaFile( __in HDC hdc); WINGDIAPI HENHMETAFILE WINAPI CloseEnhMetaFile( _In_ HDC hdc);
WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileA( __in HENHMETAFILE hEnh, __in_opt WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileA( _In_ HENHMETAFILE hEnh, _In_opt_
LPCSTR lpFileName); LPCSTR lpFileName);
WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileW( __in HENHMETAFILE hEnh, __in_opt WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileW( _In_ HENHMETAFILE hEnh, _In_opt_
LPCWSTR lpFileName); LPCWSTR lpFileName);
#ifdef UNICODE #ifdef UNICODE
#define CopyEnhMetaFile CopyEnhMetaFileW #define CopyEnhMetaFile CopyEnhMetaFileW
#else #else
#define CopyEnhMetaFile CopyEnhMetaFileA #define CopyEnhMetaFile CopyEnhMetaFileA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HDC WINAPI CreateEnhMetaFileA( __in_opt HDC hdc, __in_opt LPCSTR lpF WINGDIAPI HDC WINAPI CreateEnhMetaFileA( _In_opt_ HDC hdc, _In_opt_ LPCSTR lpF
ilename, __in_opt CONST RECT *lprc, __in_opt LPCSTR lpDesc); ilename, _In_opt_ CONST RECT *lprc, _In_opt_ LPCSTR lpDesc);
WINGDIAPI HDC WINAPI CreateEnhMetaFileW( __in_opt HDC hdc, __in_opt LPCWSTR lp WINGDIAPI HDC WINAPI CreateEnhMetaFileW( _In_opt_ HDC hdc, _In_opt_ LPCWSTR lp
Filename, __in_opt CONST RECT *lprc, __in_opt LPCWSTR lpDesc); Filename, _In_opt_ CONST RECT *lprc, _In_opt_ LPCWSTR lpDesc);
#ifdef UNICODE #ifdef UNICODE
#define CreateEnhMetaFile CreateEnhMetaFileW #define CreateEnhMetaFile CreateEnhMetaFileW
#else #else
#define CreateEnhMetaFile CreateEnhMetaFileA #define CreateEnhMetaFile CreateEnhMetaFileA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI DeleteEnhMetaFile( __in_opt HENHMETAFILE hmf); WINGDIAPI BOOL WINAPI DeleteEnhMetaFile( _In_opt_ HENHMETAFILE hmf);
WINGDIAPI BOOL WINAPI EnumEnhMetaFile( __in_opt HDC hdc, __in HENHMETAFILE hmf, WINGDIAPI BOOL WINAPI EnumEnhMetaFile( _In_opt_ HDC hdc, _In_ HENHMETAFILE hmf,
__in ENHMFENUMPROC proc, _In_ ENHMFENUMPROC proc,
__in_opt LPVOID param, __in_opt CONST RE _In_opt_ LPVOID param, _In_opt_ CONST RE
CT * lpRect); CT * lpRect);
WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileA( __in LPCSTR lpName); WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileA( _In_ LPCSTR lpName);
WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileW( __in LPCWSTR lpName); WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileW( _In_ LPCWSTR lpName);
#ifdef UNICODE #ifdef UNICODE
#define GetEnhMetaFile GetEnhMetaFileW #define GetEnhMetaFile GetEnhMetaFileW
#else #else
#define GetEnhMetaFile GetEnhMetaFileA #define GetEnhMetaFile GetEnhMetaFileA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI UINT WINAPI GetEnhMetaFileBits( __in HENHMETAFILE hEMF, WINGDIAPI UINT WINAPI GetEnhMetaFileBits( _In_ HENHMETAFILE hEMF,
__in UINT nSize, _In_ UINT nSize,
__out_bcount_opt(nSize) LPBYTE lpDat _Out_writes_bytes_opt_(nSize) LPBYTE
a); lpData);
WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionA( __in HENHMETAFILE hemf, WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionA( _In_ HENHMETAFILE hemf,
__in UINT cchBuffer, _In_ UINT cchBuffer,
__out_ecount_opt(cchBuffer) _Out_writes_opt_(cchBuffer)
LPSTR lpDescription); LPSTR lpDescription);
WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionW( __in HENHMETAFILE hemf, WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionW( _In_ HENHMETAFILE hemf,
__in UINT cchBuffer, _In_ UINT cchBuffer,
__out_ecount_opt(cchBuffer) _Out_writes_opt_(cchBuffer)
LPWSTR lpDescription); LPWSTR lpDescription);
#ifdef UNICODE #ifdef UNICODE
#define GetEnhMetaFileDescription GetEnhMetaFileDescriptionW #define GetEnhMetaFileDescription GetEnhMetaFileDescriptionW
#else #else
#define GetEnhMetaFileDescription GetEnhMetaFileDescriptionA #define GetEnhMetaFileDescription GetEnhMetaFileDescriptionA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI UINT WINAPI GetEnhMetaFileHeader( __in HENHMETAFILE hemf, WINGDIAPI UINT WINAPI GetEnhMetaFileHeader( _In_ HENHMETAFILE hemf,
__in UINT nSize, _In_ UINT nSize,
__out_bcount_opt(nSize) LPENHMET _Out_writes_bytes_opt_(nSize) LP
AHEADER lpEnhMetaHeader); ENHMETAHEADER lpEnhMetaHeader);
WINGDIAPI UINT WINAPI GetEnhMetaFilePaletteEntries(__in HENHMETAFILE hemf, WINGDIAPI UINT WINAPI GetEnhMetaFilePaletteEntries(_In_ HENHMETAFILE hemf,
__in UINT nNumEntries, _In_ UINT nNumEntries,
__out_ecount_opt(nNumEntries _Out_writes_opt_(nNumEntries
) LPPALETTEENTRY lpPaletteEntries); ) LPPALETTEENTRY lpPaletteEntries);
WINGDIAPI UINT WINAPI GetEnhMetaFilePixelFormat( __in HENHMETAFILE hemf, WINGDIAPI UINT WINAPI GetEnhMetaFilePixelFormat( _In_ HENHMETAFILE hemf,
__in UINT cbBuffer, _In_ UINT cbBuffer,
__out_bcount_opt(cbBuffer) P _Out_writes_bytes_opt_(cbBuf
IXELFORMATDESCRIPTOR *ppfd); fer) PIXELFORMATDESCRIPTOR *ppfd);
WINGDIAPI UINT WINAPI GetWinMetaFileBits( __in HENHMETAFILE hemf, WINGDIAPI UINT WINAPI GetWinMetaFileBits( _In_ HENHMETAFILE hemf,
__in UINT cbData16, _In_ UINT cbData16,
__out_bcount_opt(cbData16) LPBYTE pD _Out_writes_bytes_opt_(cbData16) LPB
ata16, YTE pData16,
__in INT iMapMode, _In_ INT iMapMode,
__in HDC hdcRef); _In_ HDC hdcRef);
WINGDIAPI BOOL WINAPI PlayEnhMetaFile( __in HDC hdc, __in HENHMETAFILE hmf, __i WINGDIAPI BOOL WINAPI PlayEnhMetaFile( _In_ HDC hdc, _In_ HENHMETAFILE hmf, _In
n CONST RECT * lprect); _ CONST RECT * lprect);
WINGDIAPI BOOL WINAPI PlayEnhMetaFileRecord( __in HDC hdc, WINGDIAPI BOOL WINAPI PlayEnhMetaFileRecord( _In_ HDC hdc,
__in_ecount(cht) LPHANDLETABLE p _In_reads_(cht) LPHANDLETABLE ph
ht, t,
__in CONST ENHMETARECORD *pmr, _In_ CONST ENHMETARECORD *pmr,
__in UINT cht); _In_ UINT cht);
WINGDIAPI HENHMETAFILE WINAPI SetEnhMetaFileBits( __in UINT nSize, WINGDIAPI HENHMETAFILE WINAPI SetEnhMetaFileBits( _In_ UINT nSize,
__in_bcount(nSize) CONST BYT _In_reads_bytes_(nSize) CONS
E * pb); T BYTE * pb);
WINGDIAPI HENHMETAFILE WINAPI SetWinMetaFileBits( __in UINT nSize, WINGDIAPI HENHMETAFILE WINAPI SetWinMetaFileBits( _In_ UINT nSize,
__in_bcount(nSize) CONST BYT _In_reads_bytes_(nSize) CONS
E *lpMeta16Data, T BYTE *lpMeta16Data,
__in_opt HDC hdcRef, _In_opt_ HDC hdcRef,
__in_opt CONST METAFILEPICT _In_opt_ CONST METAFILEPICT
*lpMFP); *lpMFP);
WINGDIAPI BOOL WINAPI GdiComment(__in HDC hdc, __in UINT nSize, __in_bcount(nSi WINGDIAPI BOOL WINAPI GdiComment(_In_ HDC hdc, _In_ UINT nSize, _In_reads_bytes
ze) CONST BYTE *lpData); _(nSize) CONST BYTE *lpData);
#endif /* NOMETAFILE */ #endif /* NOMETAFILE */
#ifndef NOTEXTMETRIC #ifndef NOTEXTMETRIC
WINGDIAPI BOOL WINAPI GetTextMetricsA( __in HDC hdc, __out LPTEXTMETRICA lptm); WINGDIAPI BOOL WINAPI GetTextMetricsA( _In_ HDC hdc, _Out_ LPTEXTMETRICA lptm);
WINGDIAPI BOOL WINAPI GetTextMetricsW( __in HDC hdc, __out LPTEXTMETRICW lptm); WINGDIAPI BOOL WINAPI GetTextMetricsW( _In_ HDC hdc, _Out_ LPTEXTMETRICW lptm);
#ifdef UNICODE #ifdef UNICODE
#define GetTextMetrics GetTextMetricsW #define GetTextMetrics GetTextMetricsW
#else #else
#define GetTextMetrics GetTextMetricsA #define GetTextMetrics GetTextMetricsA
#endif // !UNICODE #endif // !UNICODE
#if defined(_M_CEE) #if defined(_M_CEE)
#undef GetTextMetrics #undef GetTextMetrics
__inline __inline
BOOL BOOL
skipping to change at line 4314 skipping to change at line 4742
/* new GDI */ /* new GDI */
typedef struct tagDIBSECTION { typedef struct tagDIBSECTION {
BITMAP dsBm; BITMAP dsBm;
BITMAPINFOHEADER dsBmih; BITMAPINFOHEADER dsBmih;
DWORD dsBitfields[3]; DWORD dsBitfields[3];
HANDLE dshSection; HANDLE dshSection;
DWORD dsOffset; DWORD dsOffset;
} DIBSECTION, FAR *LPDIBSECTION, *PDIBSECTION; } DIBSECTION, FAR *LPDIBSECTION, *PDIBSECTION;
WINGDIAPI BOOL WINAPI AngleArc( __in HDC hdc, __in int x, __in int y, __in DWORD WINGDIAPI BOOL WINAPI AngleArc( _In_ HDC hdc, _In_ int x, _In_ int y, _In_ DWORD
r, __in FLOAT StartAngle, __in FLOAT SweepAngle); r, _In_ FLOAT StartAngle, _In_ FLOAT SweepAngle);
WINGDIAPI BOOL WINAPI PolyPolyline(__in HDC hdc, __in CONST POINT *apt, __in_eco WINGDIAPI BOOL WINAPI PolyPolyline(_In_ HDC hdc, _In_ CONST POINT *apt, _In_read
unt(csz) CONST DWORD *asz, __in DWORD csz); s_(csz) CONST DWORD *asz, _In_ DWORD csz);
WINGDIAPI BOOL WINAPI GetWorldTransform( __in HDC hdc, __out LPXFORM lpxf); WINGDIAPI BOOL WINAPI GetWorldTransform( _In_ HDC hdc, _Out_ LPXFORM lpxf);
WINGDIAPI BOOL WINAPI SetWorldTransform( __in HDC hdc, __in CONST XFORM * lpxf); WINGDIAPI BOOL WINAPI SetWorldTransform( _In_ HDC hdc, _In_ CONST XFORM * lpxf);
WINGDIAPI BOOL WINAPI ModifyWorldTransform( __in HDC hdc, __in_opt CONST XFORM * WINGDIAPI BOOL WINAPI ModifyWorldTransform( _In_ HDC hdc, _In_opt_ CONST XFORM *
lpxf, __in DWORD mode); lpxf, _In_ DWORD mode);
WINGDIAPI BOOL WINAPI CombineTransform( __out LPXFORM lpxfOut, __in CONST XFORM WINGDIAPI BOOL WINAPI CombineTransform( _Out_ LPXFORM lpxfOut, _In_ CONST XFORM
*lpxf1, __in CONST XFORM *lpxf2); *lpxf1, _In_ CONST XFORM *lpxf2);
WINGDIAPI HBITMAP WINAPI CreateDIBSection(__in_opt HDC hdc, __in CONST BITMAPINF
O *lpbmi, __in UINT usage, __deref_opt_out VOID **ppvBits, __in_opt HANDLE hSect #define GDI_WIDTHBYTES(bits) ((DWORD)(((bits)+31) & (~31)) / 8)
ion, __in DWORD offset); #define GDI_DIBWIDTHBYTES(bi) (DWORD)GDI_WIDTHBYTES((DWORD)(bi).biWidth * (DWORD
__range(0,cEntries) )(bi).biBitCount)
WINGDIAPI UINT WINAPI GetDIBColorTable( __in HDC hdc, #define GDI__DIBSIZE(bi) (GDI_DIBWIDTHBYTES(bi) * (DWORD)(bi).biHeight)
__in UINT iStart, #define GDI_DIBSIZE(bi) ((bi).biHeight < 0 ? (-1)*(GDI__DIBSIZE(bi)) : GDI__DIBS
__in UINT cEntries, IZE(bi))
__out_ecount_part(cEntries,return) RGBQU
AD *prgbq); WINGDIAPI _Success_(return != NULL) HBITMAP WINAPI CreateDIBSection(
WINGDIAPI UINT WINAPI SetDIBColorTable( __in HDC hdc, _In_opt_ HDC hdc,
__in UINT iStart, _In_ CONST BITMAPINFO *pbmi,
__in UINT cEntries, _In_ UINT usage,
__in_ecount(cEntries) CONST RGBQUAD *prg _When_((pbmi->bmiHeader.biBitCount != 0), _Outptr_result_bytebuffer_(_Inexpr
bq); essible_(GDI_DIBSIZE((pbmi->bmiHeader)))))
_When_((pbmi->bmiHeader.biBitCount == 0), _Outptr_result_bytebuffer_((pbmi->
bmiHeader).biSizeImage))
VOID **ppvBits,
_In_opt_ HANDLE hSection,
_In_ DWORD offset);
_Ret_range_(0,cEntries)
WINGDIAPI UINT WINAPI GetDIBColorTable( _In_ HDC hdc,
_In_ UINT iStart,
_In_ UINT cEntries,
_Out_writes_to_(cEntries,return) RGBQUAD
*prgbq);
WINGDIAPI UINT WINAPI SetDIBColorTable( _In_ HDC hdc,
_In_ UINT iStart,
_In_ UINT cEntries,
_In_reads_(cEntries) CONST RGBQUAD *prgb
q);
/* Flags value for COLORADJUSTMENT */ /* Flags value for COLORADJUSTMENT */
#define CA_NEGATIVE 0x0001 #define CA_NEGATIVE 0x0001
#define CA_LOG_FILTER 0x0002 #define CA_LOG_FILTER 0x0002
/* IlluminantIndex values */ /* IlluminantIndex values */
#define ILLUMINANT_DEVICE_DEFAULT 0 #define ILLUMINANT_DEVICE_DEFAULT 0
#define ILLUMINANT_A 1 #define ILLUMINANT_A 1
#define ILLUMINANT_B 2 #define ILLUMINANT_B 2
#define ILLUMINANT_C 3 #define ILLUMINANT_C 3
skipping to change at line 4381 skipping to change at line 4824
WORD caGreenGamma; WORD caGreenGamma;
WORD caBlueGamma; WORD caBlueGamma;
WORD caReferenceBlack; WORD caReferenceBlack;
WORD caReferenceWhite; WORD caReferenceWhite;
SHORT caContrast; SHORT caContrast;
SHORT caBrightness; SHORT caBrightness;
SHORT caColorfulness; SHORT caColorfulness;
SHORT caRedGreenTint; SHORT caRedGreenTint;
} COLORADJUSTMENT, *PCOLORADJUSTMENT, FAR *LPCOLORADJUSTMENT; } COLORADJUSTMENT, *PCOLORADJUSTMENT, FAR *LPCOLORADJUSTMENT;
WINGDIAPI BOOL WINAPI SetColorAdjustment( __in HDC hdc, __in CONST COLORADJUSTME WINGDIAPI BOOL WINAPI SetColorAdjustment( _In_ HDC hdc, _In_ CONST COLORADJUSTME
NT *lpca); NT *lpca);
WINGDIAPI BOOL WINAPI GetColorAdjustment( __in HDC hdc, __out LPCOLORADJUSTMENT WINGDIAPI BOOL WINAPI GetColorAdjustment( _In_ HDC hdc, _Out_ LPCOLORADJUSTMENT
lpca); lpca);
WINGDIAPI HPALETTE WINAPI CreateHalftonePalette( __in_opt HDC hdc); WINGDIAPI HPALETTE WINAPI CreateHalftonePalette( _In_opt_ HDC hdc);
#ifdef STRICT #ifdef STRICT
typedef BOOL (CALLBACK* ABORTPROC)( __in HDC, __in int); typedef BOOL (CALLBACK* ABORTPROC)( _In_ HDC, _In_ int);
#else #else
typedef FARPROC ABORTPROC; typedef FARPROC ABORTPROC;
#endif #endif
typedef struct _DOCINFOA { typedef struct _DOCINFOA {
int cbSize; int cbSize;
LPCSTR lpszDocName; LPCSTR lpszDocName;
LPCSTR lpszOutput; LPCSTR lpszOutput;
#if (WINVER >= 0x0400) #if (WINVER >= 0x0400)
LPCSTR lpszDatatype; LPCSTR lpszDatatype;
skipping to change at line 4422 skipping to change at line 4865
#else #else
typedef DOCINFOA DOCINFO; typedef DOCINFOA DOCINFO;
typedef LPDOCINFOA LPDOCINFO; typedef LPDOCINFOA LPDOCINFO;
#endif // UNICODE #endif // UNICODE
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define DI_APPBANDING 0x00000001 #define DI_APPBANDING 0x00000001
#define DI_ROPS_READ_DESTINATION 0x00000002 #define DI_ROPS_READ_DESTINATION 0x00000002
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
__gdi_entry WINGDIAPI int WINAPI StartDocA(__in HDC hdc, __in CONST DOCINFOA *lp WINGDIAPI int WINAPI StartDocA(_In_ HDC hdc, _In_ CONST DOCINFOA *lpdi);
di); WINGDIAPI int WINAPI StartDocW(_In_ HDC hdc, _In_ CONST DOCINFOW *lpdi);
__gdi_entry WINGDIAPI int WINAPI StartDocW(__in HDC hdc, __in CONST DOCINFOW *lp
di);
#ifdef UNICODE #ifdef UNICODE
#define StartDoc StartDocW #define StartDoc StartDocW
#else #else
#define StartDoc StartDocA #define StartDoc StartDocA
#endif // !UNICODE #endif // !UNICODE
__gdi_entry WINGDIAPI int WINAPI EndDoc(__in HDC hdc); WINGDIAPI int WINAPI EndDoc(_In_ HDC hdc);
__gdi_entry WINGDIAPI int WINAPI StartPage(__in HDC hdc); WINGDIAPI int WINAPI StartPage(_In_ HDC hdc);
__gdi_entry WINGDIAPI int WINAPI EndPage(__in HDC hdc); WINGDIAPI int WINAPI EndPage(_In_ HDC hdc);
__gdi_entry WINGDIAPI int WINAPI AbortDoc(__in HDC hdc); WINGDIAPI int WINAPI AbortDoc(_In_ HDC hdc);
WINGDIAPI int WINAPI SetAbortProc(__in HDC hdc, __in ABORTPROC proc); WINGDIAPI int WINAPI SetAbortProc(_In_ HDC hdc, _In_ ABORTPROC proc);
WINGDIAPI BOOL WINAPI AbortPath(__in HDC hdc); WINGDIAPI BOOL WINAPI AbortPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI ArcTo(__in HDC hdc, __in int left, __in int top, __in int WINGDIAPI BOOL WINAPI ArcTo(_In_ HDC hdc, _In_ int left, _In_ int top, _In_ int
right, __in int bottom, __in int xr1, __in int yr1, __in int xr2, __in int yr2); right, _In_ int bottom, _In_ int xr1, _In_ int yr1, _In_ int xr2, _In_ int yr2);
WINGDIAPI BOOL WINAPI BeginPath(__in HDC hdc); WINGDIAPI BOOL WINAPI BeginPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI CloseFigure(__in HDC hdc); WINGDIAPI BOOL WINAPI CloseFigure(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI EndPath(__in HDC hdc); WINGDIAPI BOOL WINAPI EndPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI FillPath(__in HDC hdc); WINGDIAPI BOOL WINAPI FillPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI FlattenPath(__in HDC hdc); WINGDIAPI BOOL WINAPI FlattenPath(_In_ HDC hdc);
WINGDIAPI int WINAPI GetPath(__in HDC hdc, __out_ecount_opt(cpt) LPPOINT apt, _ WINGDIAPI int WINAPI GetPath(_In_ HDC hdc, _Out_writes_opt_(cpt) LPPOINT apt, _
_out_ecount_opt(cpt) LPBYTE aj, int cpt); Out_writes_opt_(cpt) LPBYTE aj, int cpt);
WINGDIAPI HRGN WINAPI PathToRegion(__in HDC hdc); WINGDIAPI HRGN WINAPI PathToRegion(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI PolyDraw(__in HDC hdc, __in_ecount(cpt) CONST POINT * apt, WINGDIAPI BOOL WINAPI PolyDraw(_In_ HDC hdc, _In_reads_(cpt) CONST POINT * apt,
__in_ecount(cpt) CONST BYTE * aj, __in int cpt); _In_reads_(cpt) CONST BYTE * aj, _In_ int cpt);
WINGDIAPI BOOL WINAPI SelectClipPath(__in HDC hdc, __in int mode); WINGDIAPI BOOL WINAPI SelectClipPath(_In_ HDC hdc, _In_ int mode);
WINGDIAPI int WINAPI SetArcDirection(__in HDC hdc, __in int dir); WINGDIAPI int WINAPI SetArcDirection(_In_ HDC hdc, _In_ int dir);
WINGDIAPI BOOL WINAPI SetMiterLimit(__in HDC hdc, __in FLOAT limit, __out_opt PF WINGDIAPI BOOL WINAPI SetMiterLimit(_In_ HDC hdc, _In_ FLOAT limit, _Out_opt_ PF
LOAT old); LOAT old);
WINGDIAPI BOOL WINAPI StrokeAndFillPath(__in HDC hdc); WINGDIAPI BOOL WINAPI StrokeAndFillPath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI StrokePath(__in HDC hdc); WINGDIAPI BOOL WINAPI StrokePath(_In_ HDC hdc);
WINGDIAPI BOOL WINAPI WidenPath(__in HDC hdc); WINGDIAPI BOOL WINAPI WidenPath(_In_ HDC hdc);
WINGDIAPI HPEN WINAPI ExtCreatePen( __in DWORD iPenStyle, WINGDIAPI HPEN WINAPI ExtCreatePen( _In_ DWORD iPenStyle,
__in DWORD cWidth, _In_ DWORD cWidth,
__in CONST LOGBRUSH *plbrush, _In_ CONST LOGBRUSH *plbrush,
__in DWORD cStyle, _In_ DWORD cStyle,
__in_ecount_opt(cStyle) CONST DWORD *pstyle) _In_reads_opt_(cStyle) CONST DWORD *pstyle);
; WINGDIAPI BOOL WINAPI GetMiterLimit(_In_ HDC hdc, _Out_ PFLOAT plimit);
WINGDIAPI BOOL WINAPI GetMiterLimit(__in HDC hdc, __out PFLOAT plimit); WINGDIAPI int WINAPI GetArcDirection(_In_ HDC hdc);
WINGDIAPI int WINAPI GetArcDirection(__in HDC hdc);
WINGDIAPI int WINAPI GetObjectA(__in HANDLE h, __in int c, __out_bcount_opt(c) WINGDIAPI int WINAPI GetObjectA(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_o
LPVOID pv); pt_(c) LPVOID pv);
WINGDIAPI int WINAPI GetObjectW(__in HANDLE h, __in int c, __out_bcount_opt(c) WINGDIAPI int WINAPI GetObjectW(_In_ HANDLE h, _In_ int c, _Out_writes_bytes_o
LPVOID pv); pt_(c) LPVOID pv);
#ifdef UNICODE #ifdef UNICODE
#define GetObject GetObjectW #define GetObject GetObjectW
#else #else
#define GetObject GetObjectA #define GetObject GetObjectA
#endif // !UNICODE #endif // !UNICODE
#if defined(_M_CEE) #if defined(_M_CEE)
#undef GetObject #undef GetObject
__inline __inline
int int
GetObject( GetObject(
skipping to change at line 4488 skipping to change at line 4931
#else #else
return GetObjectA( return GetObjectA(
#endif #endif
h, h,
c, c,
pv pv
); );
} }
#endif /* _M_CEE */ #endif /* _M_CEE */
__gdi_entry WINGDIAPI BOOL WINAPI MoveToEx( __in HDC hdc, __in int x, __in int WINGDIAPI BOOL WINAPI MoveToEx( _In_ HDC hdc, _In_ int x, _In_ int y, _Out_opt
y, __out_opt LPPOINT lppt); _ LPPOINT lppt);
__gdi_entry WINGDIAPI BOOL WINAPI TextOutA( __in HDC hdc, __in int x, __in int WINGDIAPI BOOL WINAPI TextOutA( _In_ HDC hdc, _In_ int x, _In_ int y, _In_read
y, __in_ecount(c) LPCSTR lpString, __in int c); s_(c) LPCSTR lpString, _In_ int c);
__gdi_entry WINGDIAPI BOOL WINAPI TextOutW( __in HDC hdc, __in int x, __in int WINGDIAPI BOOL WINAPI TextOutW( _In_ HDC hdc, _In_ int x, _In_ int y, _In_read
y, __in_ecount(c) LPCWSTR lpString, __in int c); s_(c) LPCWSTR lpString, _In_ int c);
#ifdef UNICODE #ifdef UNICODE
#define TextOut TextOutW #define TextOut TextOutW
#else #else
#define TextOut TextOutA #define TextOut TextOutA
#endif // !UNICODE #endif // !UNICODE
__gdi_entry WINGDIAPI BOOL WINAPI ExtTextOutA( __in HDC hdc, __in int x, __in i WINGDIAPI BOOL WINAPI ExtTextOutA( _In_ HDC hdc, _In_ int x, _In_ int y, _In_
nt y, __in UINT options, __in_opt CONST RECT * lprect, __in_ecount_opt(c) LPCSTR UINT options, _In_opt_ CONST RECT * lprect, _In_reads_opt_(c) LPCSTR lpString, _
lpString, __in UINT c, __in_ecount_opt(c) CONST INT * lpDx); In_ UINT c, _In_reads_opt_(c) CONST INT * lpDx);
__gdi_entry WINGDIAPI BOOL WINAPI ExtTextOutW( __in HDC hdc, __in int x, __in i WINGDIAPI BOOL WINAPI ExtTextOutW( _In_ HDC hdc, _In_ int x, _In_ int y, _In_
nt y, __in UINT options, __in_opt CONST RECT * lprect, __in_ecount_opt(c) LPCWST UINT options, _In_opt_ CONST RECT * lprect, _In_reads_opt_(c) LPCWSTR lpString,
R lpString, __in UINT c, __in_ecount_opt(c) CONST INT * lpDx); _In_ UINT c, _In_reads_opt_(c) CONST INT * lpDx);
#ifdef UNICODE #ifdef UNICODE
#define ExtTextOut ExtTextOutW #define ExtTextOut ExtTextOutW
#else #else
#define ExtTextOut ExtTextOutA #define ExtTextOut ExtTextOutA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI PolyTextOutA(__in HDC hdc, __in_ecount(nstrings) CONST PO WINGDIAPI BOOL WINAPI PolyTextOutA(_In_ HDC hdc, _In_reads_(nstrings) CONST POL
LYTEXTA * ppt, __in int nstrings); YTEXTA * ppt, _In_ int nstrings);
WINGDIAPI BOOL WINAPI PolyTextOutW(__in HDC hdc, __in_ecount(nstrings) CONST PO WINGDIAPI BOOL WINAPI PolyTextOutW(_In_ HDC hdc, _In_reads_(nstrings) CONST POL
LYTEXTW * ppt, __in int nstrings); YTEXTW * ppt, _In_ int nstrings);
#ifdef UNICODE #ifdef UNICODE
#define PolyTextOut PolyTextOutW #define PolyTextOut PolyTextOutW
#else #else
#define PolyTextOut PolyTextOutA #define PolyTextOut PolyTextOutA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HRGN WINAPI CreatePolygonRgn( __in_ecount(cPoint) CONST POINT *ppt WINGDIAPI HRGN WINAPI CreatePolygonRgn( _In_reads_(cPoint) CONST POINT *pptl
l, ,
__in int cPoint, _In_ int cPoint,
__in int iMode); _In_ int iMode);
WINGDIAPI BOOL WINAPI DPtoLP( __in HDC hdc, __inout_ecount(c) LPPOINT lppt, __i WINGDIAPI BOOL WINAPI DPtoLP( _In_ HDC hdc, _Inout_updates_(c) LPPOINT lppt, _I
n int c); n_ int c);
WINGDIAPI BOOL WINAPI LPtoDP( __in HDC hdc, __inout_ecount(c) LPPOINT lppt, __i WINGDIAPI BOOL WINAPI LPtoDP( _In_ HDC hdc, _Inout_updates_(c) LPPOINT lppt, _I
n int c); n_ int c);
__gdi_entry WINGDIAPI BOOL WINAPI Polygon(__in HDC hdc, __in_ecount(cpt) CONST WINGDIAPI BOOL WINAPI Polygon(_In_ HDC hdc, _In_reads_(cpt) CONST POINT *apt,
POINT *apt, __in int cpt); _In_ int cpt);
__gdi_entry WINGDIAPI BOOL WINAPI Polyline(__in HDC hdc, __in_ecount(cpt) CONST WINGDIAPI BOOL WINAPI Polyline(_In_ HDC hdc, _In_reads_(cpt) CONST POINT *apt,
POINT *apt, __in int cpt); _In_ int cpt);
WINGDIAPI BOOL WINAPI PolyBezier(__in HDC hdc, __in_ecount(cpt) CONST POINT * a WINGDIAPI BOOL WINAPI PolyBezier(_In_ HDC hdc, _In_reads_(cpt) CONST POINT * ap
pt, __in DWORD cpt); t, _In_ DWORD cpt);
WINGDIAPI BOOL WINAPI PolyBezierTo(__in HDC hdc, __in_ecount(cpt) CONST POINT * WINGDIAPI BOOL WINAPI PolyBezierTo(_In_ HDC hdc, _In_reads_(cpt) CONST POINT *
apt, __in DWORD cpt); apt, _In_ DWORD cpt);
WINGDIAPI BOOL WINAPI PolylineTo(__in HDC hdc, __in_ecount(cpt) CONST POINT * a WINGDIAPI BOOL WINAPI PolylineTo(_In_ HDC hdc, _In_reads_(cpt) CONST POINT * ap
pt, __in DWORD cpt); t, _In_ DWORD cpt);
__gdi_entry WINGDIAPI BOOL WINAPI SetViewportExtEx( __in HDC hdc, __in int x, _ WINGDIAPI BOOL WINAPI SetViewportExtEx( _In_ HDC hdc, _In_ int x, _In_ int y,
_in int y, __out_opt LPSIZE lpsz); _Out_opt_ LPSIZE lpsz);
__gdi_entry WINGDIAPI BOOL WINAPI SetViewportOrgEx( __in HDC hdc, __in int x, _ WINGDIAPI BOOL WINAPI SetViewportOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y,
_in int y, __out_opt LPPOINT lppt); _Out_opt_ LPPOINT lppt);
__gdi_entry WINGDIAPI BOOL WINAPI SetWindowExtEx( __in HDC hdc, __in int x, __i WINGDIAPI BOOL WINAPI SetWindowExtEx( _In_ HDC hdc, _In_ int x, _In_ int y, _O
n int y, __out_opt LPSIZE lpsz); ut_opt_ LPSIZE lpsz);
__gdi_entry WINGDIAPI BOOL WINAPI SetWindowOrgEx( __in HDC hdc, __in int x, __i WINGDIAPI BOOL WINAPI SetWindowOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y, _O
n int y, __out_opt LPPOINT lppt); ut_opt_ LPPOINT lppt);
__gdi_entry WINGDIAPI BOOL WINAPI OffsetViewportOrgEx( __in HDC hdc, __in int x WINGDIAPI BOOL WINAPI OffsetViewportOrgEx( _In_ HDC hdc, _In_ int x, _In_ int
, __in int y, __out_opt LPPOINT lppt); y, _Out_opt_ LPPOINT lppt);
__gdi_entry WINGDIAPI BOOL WINAPI OffsetWindowOrgEx( __in HDC hdc, __in int x, WINGDIAPI BOOL WINAPI OffsetWindowOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y,
__in int y, __out_opt LPPOINT lppt); _Out_opt_ LPPOINT lppt);
__gdi_entry WINGDIAPI BOOL WINAPI ScaleViewportExtEx( __in HDC hdc, __in int xn WINGDIAPI BOOL WINAPI ScaleViewportExtEx( _In_ HDC hdc, _In_ int xn, _In_ int
, __in int dx, __in int yn, __in int yd, __out_opt LPSIZE lpsz); dx, _In_ int yn, _In_ int yd, _Out_opt_ LPSIZE lpsz);
__gdi_entry WINGDIAPI BOOL WINAPI ScaleWindowExtEx( __in HDC hdc, __in int xn, WINGDIAPI BOOL WINAPI ScaleWindowExtEx( _In_ HDC hdc, _In_ int xn, _In_ int xd
__in int xd, __in int yn, __in int yd, __out_opt LPSIZE lpsz); , _In_ int yn, _In_ int yd, _Out_opt_ LPSIZE lpsz);
WINGDIAPI BOOL WINAPI SetBitmapDimensionEx( __in HBITMAP hbm, __in int w, __in WINGDIAPI BOOL WINAPI SetBitmapDimensionEx( _In_ HBITMAP hbm, _In_ int w, _In_
int h, __out_opt LPSIZE lpsz); int h, _Out_opt_ LPSIZE lpsz);
WINGDIAPI BOOL WINAPI SetBrushOrgEx( __in HDC hdc, __in int x, __in int y, __ou WINGDIAPI BOOL WINAPI SetBrushOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y, _Out
t_opt LPPOINT lppt); _opt_ LPPOINT lppt);
WINGDIAPI int WINAPI GetTextFaceA( __in HDC hdc, __in int c, __out_ecount_part WINGDIAPI int WINAPI GetTextFaceA( _In_ HDC hdc, _In_ int c, _Out_writes_to_op
_opt(c, return) LPSTR lpName); t_(c, return) LPSTR lpName);
WINGDIAPI int WINAPI GetTextFaceW( __in HDC hdc, __in int c, __out_ecount_part WINGDIAPI int WINAPI GetTextFaceW( _In_ HDC hdc, _In_ int c, _Out_writes_to_op
_opt(c, return) LPWSTR lpName); t_(c, return) LPWSTR lpName);
#ifdef UNICODE #ifdef UNICODE
#define GetTextFace GetTextFaceW #define GetTextFace GetTextFaceW
#else #else
#define GetTextFace GetTextFaceA #define GetTextFace GetTextFaceA
#endif // !UNICODE #endif // !UNICODE
#define FONTMAPPER_MAX 10 #define FONTMAPPER_MAX 10
typedef struct tagKERNINGPAIR { typedef struct tagKERNINGPAIR {
WORD wFirst; WORD wFirst;
WORD wSecond; WORD wSecond;
int iKernAmount; int iKernAmount;
} KERNINGPAIR, *LPKERNINGPAIR; } KERNINGPAIR, *LPKERNINGPAIR;
WINGDIAPI DWORD WINAPI GetKerningPairsA( __in HDC hdc, WINGDIAPI DWORD WINAPI GetKerningPairsA( _In_ HDC hdc,
__in DWORD nPairs, _In_ DWORD nPairs,
__out_ecount_part_opt(nPairs, return _Out_writes_to_opt_(nPairs, return)
) LPKERNINGPAIR lpKernPair); LPKERNINGPAIR lpKernPair);
WINGDIAPI DWORD WINAPI GetKerningPairsW( __in HDC hdc, WINGDIAPI DWORD WINAPI GetKerningPairsW( _In_ HDC hdc,
__in DWORD nPairs, _In_ DWORD nPairs,
__out_ecount_part_opt(nPairs, return _Out_writes_to_opt_(nPairs, return)
) LPKERNINGPAIR lpKernPair); LPKERNINGPAIR lpKernPair);
#ifdef UNICODE #ifdef UNICODE
#define GetKerningPairs GetKerningPairsW #define GetKerningPairs GetKerningPairsW
#else #else
#define GetKerningPairs GetKerningPairsA #define GetKerningPairs GetKerningPairsA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI GetDCOrgEx( __in HDC hdc, __out LPPOINT lppt); WINGDIAPI BOOL WINAPI GetDCOrgEx( _In_ HDC hdc, _Out_ LPPOINT lppt);
WINGDIAPI BOOL WINAPI FixBrushOrgEx( __in HDC hdc, __in int x, __in int y, __i WINGDIAPI BOOL WINAPI FixBrushOrgEx( _In_ HDC hdc, _In_ int x, _In_ int y, _In
n_opt LPPOINT ptl); _opt_ LPPOINT ptl);
WINGDIAPI BOOL WINAPI UnrealizeObject( __in HGDIOBJ h); WINGDIAPI BOOL WINAPI UnrealizeObject( _In_ HGDIOBJ h);
WINGDIAPI BOOL WINAPI GdiFlush(void); WINGDIAPI BOOL WINAPI GdiFlush(void);
WINGDIAPI DWORD WINAPI GdiSetBatchLimit( __in DWORD dw); WINGDIAPI DWORD WINAPI GdiSetBatchLimit( _In_ DWORD dw);
WINGDIAPI DWORD WINAPI GdiGetBatchLimit(void); WINGDIAPI DWORD WINAPI GdiGetBatchLimit(void);
#if(WINVER >= 0x0400) #if(WINVER >= 0x0400)
#define ICM_OFF 1 #define ICM_OFF 1
#define ICM_ON 2 #define ICM_ON 2
#define ICM_QUERY 3 #define ICM_QUERY 3
#define ICM_DONE_OUTSIDEDC 4 #define ICM_DONE_OUTSIDEDC 4
typedef int (CALLBACK* ICMENUMPROCA)(LPSTR, LPARAM); typedef int (CALLBACK* ICMENUMPROCA)(LPSTR, LPARAM);
typedef int (CALLBACK* ICMENUMPROCW)(LPWSTR, LPARAM); typedef int (CALLBACK* ICMENUMPROCW)(LPWSTR, LPARAM);
#ifdef UNICODE #ifdef UNICODE
#define ICMENUMPROC ICMENUMPROCW #define ICMENUMPROC ICMENUMPROCW
#else #else
#define ICMENUMPROC ICMENUMPROCA #define ICMENUMPROC ICMENUMPROCA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI int WINAPI SetICMMode( __in HDC hdc, __in int mode); WINGDIAPI int WINAPI SetICMMode( _In_ HDC hdc, _In_ int mode);
WINGDIAPI BOOL WINAPI CheckColorsInGamut( __in HDC hdc, WINGDIAPI BOOL WINAPI CheckColorsInGamut( _In_ HDC hdc,
__in_ecount(nCount) LPRGBTRI _In_reads_(nCount) LPRGBTRIP
PLE lpRGBTriple, LE lpRGBTriple,
__out_bcount(nCount) LPVOID _Out_writes_bytes_(nCount) L
dlpBuffer, PVOID dlpBuffer,
__in DWORD nCount); _In_ DWORD nCount);
WINGDIAPI HCOLORSPACE WINAPI GetColorSpace( __in HDC hdc); WINGDIAPI HCOLORSPACE WINAPI GetColorSpace( _In_ HDC hdc);
WINGDIAPI BOOL WINAPI GetLogColorSpaceA( __in HCOLORSPACE hColorSpace, WINGDIAPI BOOL WINAPI GetLogColorSpaceA( _In_ HCOLORSPACE hColorSpace,
__out_bcount(nSize) LPLOGCOLORSP _Out_writes_bytes_(nSize) LPLOGC
ACEA lpBuffer, OLORSPACEA lpBuffer,
__in DWORD nSize); _In_ DWORD nSize);
WINGDIAPI BOOL WINAPI GetLogColorSpaceW( __in HCOLORSPACE hColorSpace, WINGDIAPI BOOL WINAPI GetLogColorSpaceW( _In_ HCOLORSPACE hColorSpace,
__out_bcount(nSize) LPLOGCOLORSP _Out_writes_bytes_(nSize) LPLOGC
ACEW lpBuffer, OLORSPACEW lpBuffer,
__in DWORD nSize); _In_ DWORD nSize);
#ifdef UNICODE #ifdef UNICODE
#define GetLogColorSpace GetLogColorSpaceW #define GetLogColorSpace GetLogColorSpaceW
#else #else
#define GetLogColorSpace GetLogColorSpaceA #define GetLogColorSpace GetLogColorSpaceA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceA( __in LPLOGCOLORSPACEA lplcs); WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceA( _In_ LPLOGCOLORSPACEA lplcs);
WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceW( __in LPLOGCOLORSPACEW lplcs); WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceW( _In_ LPLOGCOLORSPACEW lplcs);
#ifdef UNICODE #ifdef UNICODE
#define CreateColorSpace CreateColorSpaceW #define CreateColorSpace CreateColorSpaceW
#else #else
#define CreateColorSpace CreateColorSpaceA #define CreateColorSpace CreateColorSpaceA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI HCOLORSPACE WINAPI SetColorSpace( __in HDC hdc, __in HCOLORSPACE hcs); WINGDIAPI HCOLORSPACE WINAPI SetColorSpace( _In_ HDC hdc, _In_ HCOLORSPACE hcs);
WINGDIAPI BOOL WINAPI DeleteColorSpace( __in HCOLORSPACE hcs); WINGDIAPI BOOL WINAPI DeleteColorSpace( _In_ HCOLORSPACE hcs);
WINGDIAPI BOOL WINAPI GetICMProfileA( __in HDC hdc, WINGDIAPI BOOL WINAPI GetICMProfileA( _In_ HDC hdc,
__inout LPDWORD pBufSize, _Inout_ LPDWORD pBufSize,
__out_ecount_opt(*pBufSize) LPST _Out_writes_opt_(*pBufSize) LPST
R pszFilename); R pszFilename);
WINGDIAPI BOOL WINAPI GetICMProfileW( __in HDC hdc, WINGDIAPI BOOL WINAPI GetICMProfileW( _In_ HDC hdc,
__inout LPDWORD pBufSize, _Inout_ LPDWORD pBufSize,
__out_ecount_opt(*pBufSize) LPWS _Out_writes_opt_(*pBufSize) LPWS
TR pszFilename); TR pszFilename);
#ifdef UNICODE #ifdef UNICODE
#define GetICMProfile GetICMProfileW #define GetICMProfile GetICMProfileW
#else #else
#define GetICMProfile GetICMProfileA #define GetICMProfile GetICMProfileA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI SetICMProfileA( __in HDC hdc, __in LPSTR lpFileName WINGDIAPI BOOL WINAPI SetICMProfileA( _In_ HDC hdc, _In_ LPSTR lpFileName
); );
WINGDIAPI BOOL WINAPI SetICMProfileW( __in HDC hdc, __in LPWSTR lpFileNam WINGDIAPI BOOL WINAPI SetICMProfileW( _In_ HDC hdc, _In_ LPWSTR lpFileNam
e); e);
#ifdef UNICODE #ifdef UNICODE
#define SetICMProfile SetICMProfileW #define SetICMProfile SetICMProfileW
#else #else
#define SetICMProfile SetICMProfileA #define SetICMProfile SetICMProfileA
#endif // !UNICODE #endif // !UNICODE
WINGDIAPI BOOL WINAPI GetDeviceGammaRamp( __in HDC hdc, __out_bcount(3*25 WINGDIAPI BOOL WINAPI GetDeviceGammaRamp( _In_ HDC hdc, _Out_writes_bytes
6*2) LPVOID lpRamp); _(3*256*2) LPVOID lpRamp);
WINGDIAPI BOOL WINAPI SetDeviceGammaRamp( __in HDC hdc, __in_bcount(3*256 WINGDIAPI BOOL WINAPI SetDeviceGammaRamp( _In_ HDC hdc, _In_reads_bytes_(
*2) LPVOID lpRamp); 3*256*2) LPVOID lpRamp);
WINGDIAPI BOOL WINAPI ColorMatchToTarget( __in HDC hdc, __in HDC hdcTarge WINGDIAPI BOOL WINAPI ColorMatchToTarget( _In_ HDC hdc, _In_ HDC hdcTarge
t, __in DWORD action); t, _In_ DWORD action);
WINGDIAPI int WINAPI EnumICMProfilesA( __in HDC hdc, __in ICMENUMPROCA p WINGDIAPI int WINAPI EnumICMProfilesA( _In_ HDC hdc, _In_ ICMENUMPROCA p
roc, __in_opt LPARAM param); roc, _In_opt_ LPARAM param);
WINGDIAPI int WINAPI EnumICMProfilesW( __in HDC hdc, __in ICMENUMPROCW p WINGDIAPI int WINAPI EnumICMProfilesW( _In_ HDC hdc, _In_ ICMENUMPROCW p
roc, __in_opt LPARAM param); roc, _In_opt_ LPARAM param);
#ifdef UNICODE #ifdef UNICODE
#define EnumICMProfiles EnumICMProfilesW #define EnumICMProfiles EnumICMProfilesW
#else #else
#define EnumICMProfiles EnumICMProfilesA #define EnumICMProfiles EnumICMProfilesA
#endif // !UNICODE #endif // !UNICODE
// The Win95 update API UpdateICMRegKeyA is deprecated to set last error to ERRO R_NOT_SUPPORTED and return FALSE // The Win95 update API UpdateICMRegKeyA is deprecated to set last error to ERRO R_NOT_SUPPORTED and return FALSE
WINGDIAPI BOOL WINAPI UpdateICMRegKeyA( __reserved DWORD reserved, __in L PSTR lpszCMID, __in LPSTR lpszFileName, __in UINT command); WINGDIAPI BOOL WINAPI UpdateICMRegKeyA( _Reserved_ DWORD reserved, _In_ L PSTR lpszCMID, _In_ LPSTR lpszFileName, _In_ UINT command);
// The Win95 update API UpdateICMRegKeyW is deprecated to set last error to ERRO R_NOT_SUPPORTED and return FALSE // The Win95 update API UpdateICMRegKeyW is deprecated to set last error to ERRO R_NOT_SUPPORTED and return FALSE
WINGDIAPI BOOL WINAPI UpdateICMRegKeyW( __reserved DWORD reserved, __in L PWSTR lpszCMID, __in LPWSTR lpszFileName, __in UINT command); WINGDIAPI BOOL WINAPI UpdateICMRegKeyW( _Reserved_ DWORD reserved, _In_ L PWSTR lpszCMID, _In_ LPWSTR lpszFileName, _In_ UINT command);
#ifdef UNICODE #ifdef UNICODE
#define UpdateICMRegKey UpdateICMRegKeyW #define UpdateICMRegKey UpdateICMRegKeyW
#else #else
#define UpdateICMRegKey UpdateICMRegKeyA #define UpdateICMRegKey UpdateICMRegKeyA
#endif // !UNICODE #endif // !UNICODE
#pragma deprecated (UpdateICMRegKeyW) #pragma deprecated (UpdateICMRegKeyW)
#pragma deprecated (UpdateICMRegKeyA) #pragma deprecated (UpdateICMRegKeyA)
#endif /* WINVER >= 0x0400 */ #endif /* WINVER >= 0x0400 */
#if (WINVER >= 0x0500) #if (WINVER >= 0x0500)
WINGDIAPI BOOL WINAPI ColorCorrectPalette( __in HDC hdc, __in HPALETTE hP al, __in DWORD deFirst, __in DWORD num); WINGDIAPI BOOL WINAPI ColorCorrectPalette( _In_ HDC hdc, _In_ HPALETTE hP al, _In_ DWORD deFirst, _In_ DWORD num);
#endif #endif
#ifndef NOMETAFILE #ifndef NOMETAFILE
// Enhanced metafile constants. // Enhanced metafile constants.
#ifndef _MAC #ifndef _MAC
#define ENHMETA_SIGNATURE 0x464D4520 #define ENHMETA_SIGNATURE 0x464D4520
#else #else
#define ENHMETA_SIGNATURE 0x20454D46 #define ENHMETA_SIGNATURE 0x20454D46
skipping to change at line 5730 skipping to change at line 6173
HDC hdc; HDC hdc;
UINT uiFlags; UINT uiFlags;
} WGLSWAP, *PWGLSWAP, FAR *LPWGLSWAP; } WGLSWAP, *PWGLSWAP, FAR *LPWGLSWAP;
#define WGL_SWAPMULTIPLE_MAX 16 #define WGL_SWAPMULTIPLE_MAX 16
WINGDIAPI DWORD WINAPI wglSwapMultipleBuffers(UINT, CONST WGLSWAP *); WINGDIAPI DWORD WINAPI wglSwapMultipleBuffers(UINT, CONST WGLSWAP *);
#endif // (WINVER >= 0x0500) #endif // (WINVER >= 0x0500)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif /* NOGDI */ #endif /* NOGDI */
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif
#if _MSC_VER >= 1200 #if _MSC_VER >= 1200
#pragma warning(pop) #pragma warning(pop)
#endif #endif
#endif /* _WINGDI_ */ #endif /* _WINGDI_ */
 End of changes. 233 change blocks. 
798 lines changed or deleted 1233 lines changed or added

This html diff was produced by rfcdiff 1.41.