| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : C:/Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/um/ |
Upload File : |
/*++
Copyright (c) 1996-2004 Microsoft Corporation
Module Name:
printoem.h
Abstract:
Declarations for Windows NT printer driver OEM plugins
NOTE:
This file contains hsplit tags that publish structures and constants to public\internal headers. So
please take care before making any changes to this file. Please build usermode\test\PublishingTests
before checking in any changes to this file.
--*/
#ifndef _PRINTOEM_
#define _PRINTOEM_
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#ifdef __cplusplus
extern "C" {
#endif
// @@BEGIN_INTERNAL_PUBLISHCOMMON
//
// PScript5's private DEVMODE structure to allow its plugins to determine its size.
//
typedef struct _PSCRIPT5_PRIVATE_DEVMODE {
WORD wReserved[57];
WORD wSize; // size of PScript5's private DEVMODE
} PSCRIPT5_PRIVATE_DEVMODE, *PPSCRIPT5_PRIVATE_DEVMODE;
#define GET_PSCRIPT5_PRIVATE_DEVMODE_SIZE(pdm) \
( ( (pdm)->dmDriverExtra > (FIELD_OFFSET(PSCRIPT5_PRIVATE_DEVMODE, wSize) + sizeof(WORD)) ) ? \
((PPSCRIPT5_PRIVATE_DEVMODE)((PBYTE)(pdm) + (pdm)->dmSize))->wSize : 0 )
//
// Unidrv's private DEVMODE structure to allow its plugins to determine its size.
//
typedef struct _UNIDRV_PRIVATE_DEVMODE {
WORD wReserved[4];
WORD wSize; // size of Unidrv's private DEVMODE
} UNIDRV_PRIVATE_DEVMODE, *PUNIDRV_PRIVATE_DEVMODE;
#define GET_UNIDRV_PRIVATE_DEVMODE_SIZE(pdm) \
( ( (pdm)->dmDriverExtra > (FIELD_OFFSET(UNIDRV_PRIVATE_DEVMODE, wSize) + sizeof(WORD)) ) ? \
((PUNIDRV_PRIVATE_DEVMODE)((PBYTE)(pdm) + (pdm)->dmSize))->wSize : 0 )
//
// Current OEM plugin interface version number
//
#define PRINTER_OEMINTF_VERSION 0x00010000
#define OEM_MODE_PUBLISHER 0x00000001
typedef struct _PUBLISHERINFO {
DWORD dwMode; // flags for publisher
WORD wMinoutlinePPEM; // min size to download as Type1
WORD wMaxbitmapPPEM; // max size to download as Type3
} PUBLISHERINFO, *PPUBLISHERINFO;
#define OEMGI_GETSIGNATURE 1
#define OEMGI_GETINTERFACEVERSION 2
#define OEMGI_GETVERSION 3
#define OEMGI_GETPUBLISHERINFO 4
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define OEMGI_GETREQUESTEDHELPERINTERFACES 5
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
//
// OEMGI_GETREQUESTEDINTERFACES
//
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define OEMPUBLISH_DEFAULT (0)
#define OEMPUBLISH_IPRINTCOREHELPER (1<<0)
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
//
// OEMGetInfo
//
__drv_preferredFunction("IPrintOemUI", "Obsolete")
BOOL APIENTRY
OEMGetInfo(
DWORD dwMode,
_Out_writes_bytes_(cbSize) PVOID pBuffer,
DWORD cbSize,
_Out_ PDWORD pcbNeeded
);
__drv_preferredFunction("IPrintOemUni", "Obsolete")
BOOL APIENTRY
OEMDriverDMS(
PVOID pDevObj,
_Out_writes_bytes_(cbSize) PVOID pBuffer,
DWORD cbSize,
_Out_ PDWORD pcbNeeded
);
//
// OEMDevMode
//
#define OEMDM_SIZE 1
#define OEMDM_DEFAULT 2
#define OEMDM_CONVERT 3
#define OEMDM_MERGE 4
typedef struct _OEMDMPARAM {
DWORD cbSize; // size of OEM_DEVMODEPARAM
PVOID pdriverobj; // reference to driver data structure
HANDLE hPrinter; // PRINTER handle
HANDLE hModule; // OEM module handle
PDEVMODE pPublicDMIn; // public devmode in
PDEVMODE pPublicDMOut; // public devmode out
PVOID pOEMDMIn; // OEM private devmode in
PVOID pOEMDMOut; // OEM private devmode out
DWORD cbBufSize; // output size of pOEMDMOut buffer
} OEMDMPARAM, *POEMDMPARAM;
typedef struct _OEM_DMEXTRAHEADER {
DWORD dwSize; // size of OEM extra data
DWORD dwSignature; // Unique OEM signature
DWORD dwVersion; // OEM DLL version number
} OEM_DMEXTRAHEADER, *POEM_DMEXTRAHEADER;
//
// USERDATA for OPTITEM.UserData
//
typedef struct _USERDATA {
DWORD dwSize; // Size of this structure
ULONG_PTR dwItemID; // XXX_ITEM or pointer to FEATURE
PSTR pKeyWordName; // Keyword name
DWORD dwReserved[8];
} USERDATA, *PUSERDATA;
__drv_preferredFunction("IPrintOemUI", "Obsolete")
BOOL APIENTRY
OEMDevMode(
DWORD dwMode,
POEMDMPARAM pOemDMParam
);
//
// Callback function provided by the driver to
// allow OEM plugins access/set/update to driver private settings
//
typedef BOOL (APIENTRY *PFN_DrvGetDriverSetting)(
PVOID pdriverobj,
PCSTR Feature,
_Out_writes_bytes_opt_(cbSize) PVOID pOutput,
DWORD cbSize,
_Out_opt_ PDWORD pcbNeeded,
_Out_opt_ PDWORD pdwOptionsReturned
);
//
// Callback function provided by the driver to
// allow OEM plugins upgrade private registry settings.
//
typedef BOOL (APIENTRY *PFN_DrvUpgradeRegistrySetting)(
HANDLE hPrinter,
PCSTR pFeature,
PCSTR pOption
);
//
// Callback function provided by the driver UI to
// allow OEM plugins to update the driver UI settings and
// shows constraint. This function is called only when the UI is present.
//
typedef BOOL (APIENTRY *PFN_DrvUpdateUISetting)(
PVOID pdriverobj,
PVOID pOptItem,
DWORD dwPreviousSelection,
DWORD dwMode
);
// Predefined feature indices used for accessing driver private settings
#define OEMGDS_MIN_DOCSTICKY 1
#define OEMGDS_PSDM_FLAGS 1 // DWORD - misc. flag bits
#define OEMGDS_PSDM_DIALECT 2 // INT - PS output option
#define OEMGDS_PSDM_TTDLFMT 3 // INT - TrueType font downloading option
#define OEMGDS_PSDM_NUP 4 // INT - N-up option
#define OEMGDS_PSDM_PSLEVEL 5 // INT - target language level
#define OEMGDS_PSDM_CUSTOMSIZE 6 // 5*DWORD - custom page size parameters
#define OEMGDS_UNIDM_GPDVER 0x4000 // WORD - GPD Version
#define OEMGDS_UNIDM_FLAGS 0x4001 // DWORD - misc flag bits
// Indices for private devmode fields - start at 0x4000
#define OEMGDS_MIN_PRINTERSTICKY 0x8000
#define OEMGDS_PRINTFLAGS 0x8000 // DWORD - misc. flag bits
#define OEMGDS_FREEMEM 0x8001 // DWORD - amount of VM, ps only
#define OEMGDS_JOBTIMEOUT 0x8002 // DWORD - job timeout, ps only
#define OEMGDS_WAITTIMEOUT 0x8003 // DWORD - wait timeout, ps only
#define OEMGDS_PROTOCOL 0x8004 // WORD - output protocol, ps only
#define OEMGDS_MINOUTLINE 0x8005 // WORD - min outline font size, ps only
#define OEMGDS_MAXBITMAP 0x8006 // WORD - max bitmap font size, ps only
#define OEMGDS_MAX 0x10000
// dwType flags for use with STDMETHOD (DrvGetGPDData)
#define GPD_OEMCUSTOMDATA 1
// @@END_INTERNAL_PUBLISHCOMMON
// @@BEGIN_INTERNAL_PUBLISHDRV
/*******************************************************************************
*
* Definitions used by kernel-mode rendering module only:
* Make sure the macro KERNEL_MODE is defined and
* the header file winddi.h is included before this file.
*/
// @@END_INTERNAL_PUBLISHDRV
#ifdef KERNEL_MODE
// @@BEGIN_INTERNAL_PUBLISHDRV
//
// OEMEnableDriver
//
__drv_preferredFunction("IPrintOemPS or IPrintOemUni", "Obsolete")
BOOL APIENTRY
OEMEnableDriver(
DWORD dwOemIntfVersion,
DWORD cbSize,
_Out_writes_bytes_(cbSize) PDRVENABLEDATA pded
);
typedef struct _DEVOBJ *PDEVOBJ;
typedef PVOID PDEVOEM;
typedef DWORD (APIENTRY *PFN_DrvWriteSpoolBuf)(
PDEVOBJ pdevobj,
_In_reads_bytes_(cbSize) PVOID pBuffer,
DWORD cbSize
);
typedef DWORD (APIENTRY *PFN_DrvWriteAbortBuf)(
PDEVOBJ pdevobj,
_In_reads_bytes_(cbSize) PVOID pBuffer,
DWORD cbSize,
DWORD dwWait
);
typedef INT (APIENTRY *PFN_DrvXMoveTo)(
PDEVOBJ pdevobj,
INT x,
DWORD dwFlags
);
typedef INT (APIENTRY *PFN_DrvYMoveTo)(
PDEVOBJ pdevobj,
INT y,
DWORD dwFlags
);
typedef BOOL (APIENTRY *PFN_DrvGetStandardVariable)(
PDEVOBJ pdevobj,
DWORD dwIndex,
_Out_writes_bytes_opt_(cbSize) PVOID pBuffer,
DWORD cbSize,
_Out_ PDWORD pcbNeeded
);
typedef enum _STDVARIABLEINDEX{
SVI_NUMDATABYTES, // "NumOfDataBytes"
SVI_WIDTHINBYTES, // "RasterDataWidthInBytes"
SVI_HEIGHTINPIXELS, // "RasterDataHeightInPixels"
SVI_COPIES, // "NumOfCopies"
SVI_PRINTDIRECTION, // "PrintDirInCCDegrees"
SVI_DESTX, // "DestX"
SVI_DESTY, // "DestY"
SVI_DESTXREL, // "DestXRel"
SVI_DESTYREL, // "DestYRel"
SVI_LINEFEEDSPACING, // "LinefeedSpacing"
SVI_RECTXSIZE, // "RectXSize"
SVI_RECTYSIZE, // "RectYSize"
SVI_GRAYPERCENT, // "GrayPercentage"
SVI_NEXTFONTID, // "NextFontID"
SVI_NEXTGLYPH, // "NextGlyph"
SVI_PHYSPAPERLENGTH, // "PhysPaperLength"
SVI_PHYSPAPERWIDTH, // "PhysPaperWidth"
SVI_FONTHEIGHT, // "FontHeight"
SVI_FONTWIDTH, // "FontWidth"
SVI_FONTMAXWIDTH, // "FontMaxWidth"
SVI_FONTBOLD, // "FontBold"
SVI_FONTITALIC, // "FontItalic"
SVI_FONTUNDERLINE, // "FontUnderline"
SVI_FONTSTRIKETHRU, // "FontStrikeThru"
SVI_CURRENTFONTID, // "CurrentFontID"
SVI_TEXTYRES, // "TextYRes"
SVI_TEXTXRES, // "TextXRes"
SVI_GRAPHICSYRES, // "GraphicsYRes"
SVI_GRAPHICSXRES, // "GraphicsXRes"
SVI_ROP3, // "Rop3"
SVI_REDVALUE, // "RedValue"
SVI_GREENVALUE, // "GreenValue"
SVI_BLUEVALUE, // "BlueValue"
SVI_PALETTEINDEXTOPROGRAM, // "PaletteIndexToProgram"
SVI_CURRENTPALETTEINDEX, // "CurrentPaletteIndex"
SVI_PATTERNBRUSH_TYPE, // "PatternBrushType"
SVI_PATTERNBRUSH_ID, // "PatternBrushID"
SVI_PATTERNBRUSH_SIZE, // "PatternBrushSize"
SVI_CURSORORIGINX, // "CursorOriginX"
SVI_CURSORORIGINY, // "CursorOriginY"
// this is in MasterUnits and in the coordinates of the currently selected orientation.
// this value is defined as ImageableOrigin - CursorOrigin
SVI_PAGENUMBER, // "PageNumber"
// this value tracks number of times DrvStartBand has been called since
// StartDoc.
SVI_MAX // Just a placeholder do not use.
}STDVARIABLEINDEX;
typedef BOOL (APIENTRY *PFN_DrvUnidriverTextOut)(
SURFOBJ *pso,
STROBJ *pstro,
FONTOBJ *pfo,
CLIPOBJ *pco,
RECTL *prclExtra,
RECTL *prclOpaque,
BRUSHOBJ *pboFore,
BRUSHOBJ *pboOpaque,
POINTL *pptlBrushOrg,
MIX mix
);
//
// bit fields defined for dwFlags
//
// Note: The following Bit values are reserved for an internal use!
// 0x4000
// 0x8000
//
//
#define MV_UPDATE 0x0001
#define MV_RELATIVE 0x0002
#define MV_GRAPHICS 0x0004
#define MV_PHYSICAL 0x0008
#define MV_SENDXMOVECMD 0x0010
#define MV_SENDYMOVECMD 0x0020
typedef struct _DRVPROCS {
PFN_DrvWriteSpoolBuf DrvWriteSpoolBuf; // common to both pscript and unidrv
PFN_DrvXMoveTo DrvXMoveTo; // unidrv specific
PFN_DrvYMoveTo DrvYMoveTo; // unidrv specific
PFN_DrvGetDriverSetting DrvGetDriverSetting;// common to both pscript and unidrv
PFN_DrvGetStandardVariable BGetStandardVariable; // unidrv specific
PFN_DrvUnidriverTextOut DrvUnidriverTextOut; // unidrv specific
PFN_DrvWriteAbortBuf DrvWriteAbortBuf; // unidrv specific
} DRVPROCS, *PDRVPROCS;
typedef struct _DEVOBJ {
DWORD dwSize; // size of DEVOBJ structure
PDEVOEM pdevOEM; // pointer to OEM's device data
HANDLE hEngine; // GDI handle for current printer
HANDLE hPrinter; // spooler handle for current printer
HANDLE hOEM; // handle to OEM dll
PDEVMODE pPublicDM; // public devmode
PVOID pOEMDM; // OEM private devmode
PDRVPROCS pDrvProcs; // pointer to kernel mode helper function table
} DEVOBJ;
//
// OEMDisableDriver
//
__drv_preferredFunction("IPrintOemPS or IPrintOemUni", "Obsolete")
VOID APIENTRY
OEMDisableDriver(
VOID
);
//
// OEMEnablePDEV
//
__drv_preferredFunction("IPrintOemPS or IPrintOemUni", "Obsolete")
PDEVOEM APIENTRY
OEMEnablePDEV(
PDEVOBJ pdevobj,
_In_ PWSTR pPrinterName,
ULONG cPatterns,
_Inout_updates_(cPatterns) HSURF *phsurfPatterns,
ULONG cjGdiInfo,
_Inout_updates_bytes_(cjGdiInfo) GDIINFO *pGdiInfo,
ULONG cjDevInfo,
_Inout_updates_bytes_(cjDevInfo) DEVINFO *pDevInfo,
_In_ DRVENABLEDATA *pded
);
//
// OEMDisablePDEV
//
__drv_preferredFunction("IPrintOemPS or IPrintOemUni", "Obsolete")
VOID APIENTRY
OEMDisablePDEV(
PDEVOBJ pdevobj
);
//
// OEMResetPDEV
//
__drv_preferredFunction("IPrintOemPS or IPrintOemUni", "Obsolete")
BOOL APIENTRY
OEMResetPDEV(
PDEVOBJ pdevobjOld,
PDEVOBJ pdevobjNew
);
//
// OEMCommand - PSCRIPT only
//
__drv_preferredFunction("IPrintOemPS", "Obsolete")
DWORD APIENTRY
OEMCommand(
PDEVOBJ pdevobj,
DWORD dwIndex,
_In_reads_bytes_opt_(cbSize) PVOID pData,
DWORD cbSize
);
__drv_preferredFunction("IPrintOemUni", "Obsolete")
INT APIENTRY
OEMCommandCallback(
PDEVOBJ pdevobj,
DWORD dwCallbackID,
DWORD dwCount,
_In_reads_opt_(dwCount) PDWORD pdwParams
);
//
// OEMImageProcessing - UNIDRV only
//
typedef struct {
DWORD dwSize;
POINT ptOffset;
PSTR pHalftoneOption;
BOOL bBanding;
BOOL bBlankBand;
} IPPARAMS, *PIPPARAMS;
__drv_preferredFunction("IPrintOemUni", "Obsolete")
PBYTE APIENTRY
OEMImageProcessing(
PDEVOBJ pdevobj,
PBYTE pSrcBitmap,
PBITMAPINFOHEADER pBitmapInfoHeader,
PBYTE pColorTable,
DWORD dwCallbackID,
PIPPARAMS pIPParams
);
//
// OEMFilterGraphics - UNIDRV only
//
__drv_preferredFunction("IPrintOemUni", "Obsolete")
BOOL APIENTRY
OEMFilterGraphics(
PDEVOBJ pdevobj,
_In_reads_bytes_(dwLen) PBYTE pBuf,
DWORD dwLen
);
//
// OEMCompression - UNIDRV only
//
__drv_preferredFunction("IPrintOemUni", "Obsolete")
INT APIENTRY
OEMCompression(
PDEVOBJ pdevobj,
_In_reads_bytes_(dwInLen) PBYTE pInBuf,
_Out_writes_bytes_(dwOutLen) PBYTE pOutBuf,
DWORD dwInLen,
DWORD dwOutLen
);
//
// OEMHalftone - UNIDRV only
//
__drv_preferredFunction("IPrintOemUni", "Obsolete")
BOOL APIENTRY
OEMHalftonePattern(
PDEVOBJ pdevobj,
PBYTE pHTPattern,
DWORD dwHTPatternX,
DWORD dwHTPatternY,
DWORD dwHTNumPatterns,
DWORD dwCallbackID,
_In_reads_bytes_opt_(dwResourceSize) PBYTE pResource,
DWORD dwResourceSize
);
//
// OEMMemoryUsage - UNIDRV only
//
typedef struct {
DWORD dwFixedMemoryUsage;
DWORD dwPercentMemoryUsage;
DWORD dwMaxBandSize;
} OEMMEMORYUSAGE, *POEMMEMORYUSAGE;
VOID APIENTRY
OEMMemoryUsage(
PDEVOBJ pdevobj,
_Inout_ POEMMEMORYUSAGE pMemoryUsage
);
//
// OEMTTYGetInfo - UNIDRV only
//
__drv_preferredFunction("IPrintOemUni", "Obsolete")
INT APIENTRY
OEMTTYGetInfo(
PDEVOBJ pdevobj,
DWORD dwInfoIndex,
_Out_writes_bytes_(dwSize) PVOID pOutputBuf,
DWORD dwSize,
_Out_ DWORD *pcbcNeeded
);
#define OEMTTY_INFO_MARGINS 1
#define OEMTTY_INFO_CODEPAGE 2
#define OEMTTY_INFO_NUM_UFMS 3
#define OEMTTY_INFO_UFM_IDS 4
//
// UNIDRV font callback
//
typedef BOOL (*PFNGETINFO)(struct _UNIFONTOBJ*, DWORD, PVOID, DWORD, PDWORD);
typedef struct _UNIFONTOBJ {
ULONG ulFontID;
DWORD dwFlags; // General flags
IFIMETRICS *pIFIMetrics; // Pointer to IFIMETRICS
PFNGETINFO pfnGetInfo; // Pointer to UNIFONTOBJ_GetInfo callback
} UNIFONTOBJ, *PUNIFONTOBJ;
//
// UNIFONTOBJ.dwFlags
//
#define UFOFLAG_TTFONT 0x00000001
#define UFOFLAG_TTDOWNLOAD_BITMAP 0x00000002
#define UFOFLAG_TTDOWNLOAD_TTOUTLINE 0x00000004
#if (NTDDI_VERSION >= NTDDI_WINXP)
#define UFOFLAG_TTOUTLINE_BOLD_SIM 0x00000008
#define UFOFLAG_TTOUTLINE_ITALIC_SIM 0x00000010
#define UFOFLAG_TTOUTLINE_VERTICAL 0x00000020
#define UFOFLAG_TTSUBSTITUTED 0x00000040
#endif // (NTDDI_VERSION >= NTDDI_WINXP)
//
// UNIFONTOBJ callback ID
//
#define UFO_GETINFO_FONTOBJ 1
#define UFO_GETINFO_GLYPHSTRING 2
#define UFO_GETINFO_GLYPHBITMAP 3
#define UFO_GETINFO_GLYPHWIDTH 4
#define UFO_GETINFO_MEMORY 5
#define UFO_GETINFO_STDVARIABLE 6
//
// UFO_GETINFO_FONTOBJ callback structure
//
typedef struct _GETINFO_FONTOBJ {
DWORD dwSize; // Size of this structure
FONTOBJ *pFontObj; // Pointer to the FONTOBJ
} GETINFO_FONTOBJ, *PGETINFO_FONTOBJ;
//
// UFO_GETINFO_FONTOBJ callback structure
//
typedef struct _GETINFO_GLYPHSTRING {
DWORD dwSize; // Size of this structure
DWORD dwCount; // Count of glyphs in pGlyphIn
DWORD dwTypeIn; // Glyph type of pGlyphIn, TYPE_GLYPHID/TYPE_HANDLE.
PVOID pGlyphIn; // Pointer to the input glyph string
DWORD dwTypeOut; // Glyph type of pGlyphOut, TYPE_UNICODE/TYPE_TRANSDATA.
PVOID pGlyphOut; // Pointer to the output glyph string
DWORD dwGlyphOutSize; // The size of pGlyphOut buffer
} GETINFO_GLYPHSTRING, *PGETINFO_GLYPHSTRING;
//
// UFO_GETINFO_GLYPHBITMAP
//
typedef struct _GETINFO_GLYPHBITMAP {
DWORD dwSize; // Size of this structure
HGLYPH hGlyph; // Glyph hangle passed in OEMDownloadCharGlyph
GLYPHDATA *pGlyphData; // Pointer to the GLYPHDATA data structure
} GETINFO_GLYPHBITMAP, *PGETINFO_GLYPHBITMAP;
//
// UFO_GETINFO_GLYPHWIDTH
//
typedef struct _GETINFO_GLYPHWIDTH {
DWORD dwSize; // Size of this structure
DWORD dwType; // Type of glyph stirng in pGlyph, TYPE_GLYPHHANDLE/GLYPHID.
DWORD dwCount; // Count of glyph in pGlyph
PVOID pGlyph; // Pointer to a glyph string
PLONG plWidth; // Pointer to the buffer of width table.
// Minidriver has to prepare this.
} GETINFO_GLYPHWIDTH, *PGETINFO_GLYPHWIDTH;
//
// UFO_GETINFO_MEMORY
//
typedef struct _GETINFO_MEMORY {
DWORD dwSize;
DWORD dwRemainingMemory;
} GETINFO_MEMORY, PGETINFO_MEMROY;
//
// UFO_GETINFO_STDVARIABLE
//
// OEM DLL has to prepare all StdVar buffer and set ID in dwStdVarID.
//
typedef struct _GETINFO_STDVAR {
DWORD dwSize;
DWORD dwNumOfVariable;
struct {
DWORD dwStdVarID;
LONG lStdVariable;
} StdVar[1];
} GETINFO_STDVAR, *PGETINFO_STDVAR;
#define FNT_INFO_PRINTDIRINCCDEGREES 0 // PrintDirInCCDegrees
#define FNT_INFO_GRAYPERCENTAGE 1 // GrayPercentage
#define FNT_INFO_NEXTFONTID 2 // NextfontID
#define FNT_INFO_NEXTGLYPH 3 // NextGlyph
#define FNT_INFO_FONTHEIGHT 4 // FontHeight
#define FNT_INFO_FONTWIDTH 5 // FontWidth
#define FNT_INFO_FONTBOLD 6 // FontBold
#define FNT_INFO_FONTITALIC 7 // FontItalic
#define FNT_INFO_FONTUNDERLINE 8 // FontUnderline
#define FNT_INFO_FONTSTRIKETHRU 9 // FontStrikeThru
#define FNT_INFO_CURRENTFONTID 10 // Current
#define FNT_INFO_TEXTYRES 11 // TextYRes
#define FNT_INFO_TEXTXRES 12 // TextXRes
#define FNT_INFO_FONTMAXWIDTH 13 // FontMaxWidth
#define FNT_INFO_MAX 14
//
// OEMDownloadFontheader - UNIDRV only
//
__drv_preferredFunction("IPrintOemUni", "Obsolete")
DWORD APIENTRY
OEMDownloadFontHeader(
PDEVOBJ pdevobj,
PUNIFONTOBJ pUFObj
);
//
// OEMDownloadCharGlyph - UNIDRV only
//
__drv_preferredFunction("IPrintOemUni", "Obsolete")
DWORD APIENTRY
OEMDownloadCharGlyph(
PDEVOBJ pdevobj,
PUNIFONTOBJ pUFObj,
HGLYPH hGlyph,
_Out_ PDWORD pdwWidth
);
//
// OEMTTDownloadMethod - UNIDRV only
//
__drv_preferredFunction("IPrintOemUni", "Obsolete")
DWORD APIENTRY
OEMTTDownloadMethod(
PDEVOBJ pdevobj,
PUNIFONTOBJ pUFObj
);
#define TTDOWNLOAD_DONTCARE 0
#define TTDOWNLOAD_GRAPHICS 1
#define TTDOWNLOAD_BITMAP 2
#define TTDOWNLOAD_TTOUTLINE 3
//
// OEMOutputCharStr - UNIDRV only
//
__drv_preferredFunction("IPrintOemUni", "Obsolete")
VOID APIENTRY
OEMOutputCharStr(
PDEVOBJ pdevobj,
PUNIFONTOBJ pUFObj,
DWORD dwType,
DWORD dwCount,
_In_reads_(dwCount) PVOID pGlyph
);
#define TYPE_UNICODE 1
#define TYPE_TRANSDATA 2
#define TYPE_GLYPHHANDLE 3
#define TYPE_GLYPHID 4
//
// OEMSendFontCmd - UNIDRV only
//
typedef struct _FINVOCATION {
DWORD dwCount; // Size of command
PBYTE pubCommand; // Pointer to font selection command
} FINVOCATION, *PFINVOCATION;
__drv_preferredFunction("IPrintOemUni", "Obsolete")
VOID APIENTRY
OEMSendFontCmd(
PDEVOBJ pdevobj,
PUNIFONTOBJ pUFObj,
PFINVOCATION pFInv
);
//
// OEMTextOutAsBitmap - UNIDRV only
//
__drv_preferredFunction("IPrintOemUni", "Obsolete")
BOOL APIENTRY
OEMTextOutAsBitmap(
SURFOBJ *pso,
STROBJ *pstro,
FONTOBJ *pfo,
CLIPOBJ *pco,
RECTL *prclExtra,
RECTL *prclOpaque,
BRUSHOBJ *pboFore,
BRUSHOBJ *pboOpaque,
POINTL *pptlOrg,
MIX mix
);
//
// OEMBitBlt
//
BOOL APIENTRY
OEMBitBlt(
SURFOBJ *psoTrg,
SURFOBJ *psoSrc,
SURFOBJ *psoMask,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
RECTL *prclTrg,
POINTL *pptlSrc,
POINTL *pptlMask,
BRUSHOBJ *pbo,
POINTL *pptlBrush,
ROP4 rop4
);
//
// OEMStretchBlt
//
BOOL APIENTRY
OEMStretchBlt(
SURFOBJ *psoDest,
SURFOBJ *psoSrc,
SURFOBJ *psoMask,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
COLORADJUSTMENT *pca,
POINTL *pptlHTOrg,
RECTL *prclDest,
RECTL *prclSrc,
POINTL *pptlMask,
ULONG iMode
);
//
// OEMCopyBits
//
BOOL APIENTRY
OEMCopyBits(
SURFOBJ *psoDest,
SURFOBJ *psoSrc,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
RECTL *prclDest,
POINTL *pptlSrc
);
//
// OEMTextOut
//
BOOL APIENTRY
OEMTextOut(
SURFOBJ *pso,
STROBJ *pstro,
FONTOBJ *pfo,
CLIPOBJ *pco,
RECTL *prclExtra,
RECTL *prclOpaque,
BRUSHOBJ *pboFore,
BRUSHOBJ *pboOpaque,
POINTL *pptlOrg,
MIX mix
);
//
// OEMStrokePath
//
BOOL APIENTRY
OEMStrokePath(
SURFOBJ *pso,
PATHOBJ *ppo,
CLIPOBJ *pco,
XFORMOBJ *pxo,
BRUSHOBJ *pbo,
POINTL *pptlBrushOrg,
LINEATTRS *plineattrs,
MIX mix
);
//
// OEMFillPath
//
BOOL APIENTRY
OEMFillPath(
SURFOBJ *pso,
PATHOBJ *ppo,
CLIPOBJ *pco,
BRUSHOBJ *pbo,
POINTL *pptlBrushOrg,
MIX mix,
FLONG flOptions
);
//
// OEMStrokeAndFillPath
//
BOOL APIENTRY
OEMStrokeAndFillPath(
SURFOBJ *pso,
PATHOBJ *ppo,
CLIPOBJ *pco,
XFORMOBJ *pxo,
BRUSHOBJ *pboStroke,
LINEATTRS *plineattrs,
BRUSHOBJ *pboFill,
POINTL *pptlBrushOrg,
MIX mixFill,
FLONG flOptions
);
//
// OEMRealizeBrush
//
BOOL APIENTRY
OEMRealizeBrush(
BRUSHOBJ *pbo,
SURFOBJ *psoTarget,
SURFOBJ *psoPattern,
SURFOBJ *psoMask,
XLATEOBJ *pxlo,
ULONG iHatch
);
//
// OEMStartPage
//
BOOL APIENTRY
OEMStartPage(
SURFOBJ *pso
);
//
// OEMSendPage
//
BOOL APIENTRY
OEMSendPage(
SURFOBJ *pso
);
//
// OEMEscape
//
ULONG APIENTRY
OEMEscape(
SURFOBJ *pso,
ULONG iEsc,
ULONG cjIn,
_In_reads_bytes_(cjIn) PVOID pvIn,
ULONG cjOut,
_Out_writes_bytes_(cjOut) PVOID pvOut
);
//
// OEMStartDoc
//
BOOL APIENTRY
OEMStartDoc(
SURFOBJ *pso,
_In_ PWSTR pwszDocName,
DWORD dwJobId
);
//
// OEMEndDoc
//
BOOL APIENTRY
OEMEndDoc(
SURFOBJ *pso,
FLONG fl
);
//
// OEMQueryFont
//
PIFIMETRICS APIENTRY
OEMQueryFont(
DHPDEV dhpdev,
ULONG_PTR iFile,
ULONG iFace,
ULONG_PTR *pid
);
//
// OEMQueryFontTree
//
PVOID APIENTRY
OEMQueryFontTree(
DHPDEV dhpdev,
ULONG_PTR iFile,
ULONG iFace,
ULONG iMode,
ULONG_PTR *pid
);
//
// OEMQueryFontData
//
LONG APIENTRY
OEMQueryFontData(
DHPDEV dhpdev,
FONTOBJ *pfo,
ULONG iMode,
HGLYPH hg,
GLYPHDATA *pgd,
_Out_writes_bytes_(cjSize) PVOID pv,
ULONG cjSize
);
//
// OEMQueryAdvanceWidths
//
BOOL APIENTRY
OEMQueryAdvanceWidths(
DHPDEV dhpdev,
FONTOBJ *pfo,
ULONG iMode,
_In_reads_(cGlyphs) HGLYPH *phg,
_Out_writes_bytes_(cGlyphs*sizeof(USHORT)) PVOID pvWidths,
ULONG cGlyphs
);
//
// OEMFontManagement
//
ULONG APIENTRY
OEMFontManagement(
SURFOBJ *pso,
FONTOBJ *pfo,
ULONG iMode,
ULONG cjIn,
_In_reads_bytes_(cjIn) PVOID pvIn,
ULONG cjOut,
_Out_writes_bytes_(cjOut) PVOID pvOut
);
//
// OEMGetGlyphMode
//
ULONG APIENTRY
OEMGetGlyphMode(
DHPDEV dhpdev,
FONTOBJ *pfo
);
BOOL APIENTRY
OEMNextBand(
SURFOBJ *pso,
POINTL *pptl
);
BOOL APIENTRY
OEMStartBanding(
SURFOBJ *pso,
POINTL *pptl
);
ULONG APIENTRY
OEMDitherColor(
DHPDEV dhpdev,
ULONG iMode,
ULONG rgbColor,
ULONG *pulDither
);
BOOL APIENTRY
OEMPaint(
SURFOBJ *pso,
CLIPOBJ *pco,
BRUSHOBJ *pbo,
POINTL *pptlBrushOrg,
MIX mix
);
BOOL APIENTRY
OEMLineTo(
SURFOBJ *pso,
CLIPOBJ *pco,
BRUSHOBJ *pbo,
LONG x1,
LONG y1,
LONG x2,
LONG y2,
RECTL *prclBounds,
MIX mix
);
//
// OEMStretchBltROP
//
BOOL APIENTRY
OEMStretchBltROP(
SURFOBJ *psoDest,
SURFOBJ *psoSrc,
SURFOBJ *psoMask,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
COLORADJUSTMENT *pca,
POINTL *pptlHTOrg,
RECTL *prclDest,
RECTL *prclSrc,
POINTL *pptlMask,
ULONG iMode,
BRUSHOBJ *pbo,
ROP4 rop4
);
//
// OEMPlgBlt
//
BOOL APIENTRY
OEMPlgBlt(
SURFOBJ *psoDst,
SURFOBJ *psoSrc,
SURFOBJ *psoMask,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
COLORADJUSTMENT *pca,
POINTL *pptlBrushOrg,
POINTFIX *pptfixDest,
RECTL *prclSrc,
POINTL *pptlMask,
ULONG iMode
);
//
// OEMAlphaBlend
//
BOOL APIENTRY
OEMAlphaBlend(
SURFOBJ *psoDest,
SURFOBJ *psoSrc,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
RECTL *prclDest,
RECTL *prclSrc,
BLENDOBJ *pBlendObj
);
//
// OEMGradientFill
//
BOOL APIENTRY
OEMGradientFill(
SURFOBJ *psoDest,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
TRIVERTEX *pVertex,
ULONG nVertex,
PVOID pMesh,
ULONG nMesh,
RECTL *prclExtents,
POINTL *pptlDitherOrg,
ULONG ulMode
);
//
// OEMIcmCreateTransform
//
HANDLE APIENTRY
OEMIcmCreateColorTransform(
DHPDEV dhpdev,
LPLOGCOLORSPACEW pLogColorSpace,
_In_reads_bytes_opt_(cjSourceProfile) PVOID pvSourceProfile,
ULONG cjSourceProfile,
_In_reads_bytes_(cjDestProfile) PVOID pvDestProfile,
ULONG cjDestProfile,
_In_reads_bytes_opt_(cjTargetProfile) PVOID pvTargetProfile,
ULONG cjTargetProfile,
DWORD dwReserved
);
//
// OEMIcmDeleteTransform
//
BOOL APIENTRY
OEMIcmDeleteColorTransform(
DHPDEV dhpdev,
HANDLE hcmXform
);
//
// OEMQueryDeviceSupport
//
BOOL APIENTRY
OEMQueryDeviceSupport(
SURFOBJ *pso,
XLATEOBJ *pxlo,
XFORMOBJ *pxo,
ULONG iType,
ULONG cjIn,
_In_reads_bytes_(cjIn) PVOID pvIn,
ULONG cjOut,
_Out_writes_bytes_(cjOut) PVOID pvOut
);
//
// OEMTransparentBlt
//
BOOL APIENTRY
OEMTransparentBlt(
SURFOBJ *psoDst,
SURFOBJ *psoSrc,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
RECTL *prclDst,
RECTL *prclSrc,
ULONG iTransColor,
ULONG ulReserved
);
#if (NTDDI_VERSION >= NTDDI_WINXP)
//
// for the IPrintOemPS2::GetPDEVAdjustment call
//
#define PDEV_ADJUST_PAPER_MARGIN_TYPE 1
typedef struct _PDEV_ADJUST_PAPER_MARGIN {
RECTL rcImageableArea; // contains the imageable area in 0.001 mm units
} PDEV_ADJUST_PAPER_MARGIN;
#define PDEV_HOSTFONT_ENABLED_TYPE 2
typedef struct _PDEV_HOSTFONT_ENABLED {
BOOL bHostfontEnabled;
} PDEV_HOSTFONT_ENABLED;
#define PDEV_USE_TRUE_COLOR_TYPE 3
typedef struct _PDEV_USE_TRUE_COLOR {
BOOL bUseTrueColor;
} PDEV_USE_TRUE_COLOR;
#endif // (NTDDI_VERSION >= NTDDI_WINXP)
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define PDEV_ADJUST_GRAPHICS_RESOLUTION_TYPE (0x1 << 2) //0x4
#define PDEV_ADJUST_IMAGEABLE_ORIGIN_AREA_TYPE (0x1 << 3) //0x8
#define PDEV_ADJUST_PHYSICAL_PAPER_SIZE_TYPE (0x1 << 4) //0x10
typedef struct _PDEV_ADJUST_IMAGEABLE_ORIGIN_AREA {
POINT ptImageOrigin;
SIZEL szlImageableArea;
} PDEV_ADJUST_IMAGEABLE_ORIGIN_AREA, *PPDEV_ADJUST_IMAGEABLE_ORIGIN_AREA;
typedef struct _PDEV_ADJUST_PHYSICAL_PAPER_SIZE {
SIZEL szlPhysicalPaperSize;
} PDEV_ADJUST_PHYSICAL_PAPER_SIZE, *PPDEV_ADJUST_PHYSICAL_PAPER_SIZE;
typedef struct _PDEV_ADJUST_GRAPHICS_RESOLUTION {
POINT ptGraphicsResolution;
} PDEV_ADJUST_GRAPHICS_RESOLUTION, *PPDEV_ADJUST_GRAPHICS_RESOLUTION;
#endif // (NTDDI_VERSION >= NTDDI_VISTA)
// @@END_INTERNAL_PUBLISHDRV
#endif // KERNEL_MODE
// @@BEGIN_INTERNAL_PUBLISHCFG
/*******************************************************************************
*
* Definitions used by user-mode UI module only:
* Make sure the macro KERNEL_MODE is NOT defined and
* the header file winddiui.h is included before this file.
*
*/
// @@END_INTERNAL_PUBLISHCFG
#ifndef KERNEL_MODE
// @@BEGIN_INTERNAL_PUBLISHCFG
#if (NTDDI_VERSION >= NTDDI_WINXP)
//
// Reports capability of simulated features
//
typedef struct _SIMULATE_CAPS_1 {
DWORD dwLevel;
DWORD dwPageOrderFlags; // Reverse page order
DWORD dwNumberOfCopies; // Max number of copies
DWORD dwCollate; // Collate support
DWORD dwNupOptions; // The (1-base) bit set represents the N-up option available.
// 0x0001 means 1-up
// 0x0002 means 2-up
// 0x0008 means 4-up
// 0x812B means (1,2,4,6,9,16)
} SIMULATE_CAPS_1, *PSIMULATE_CAPS_1;
#endif // (NTDDI_VERSION >= NTDDI_WINXP)
//
// Reference to driver data structure. This is passed to
// most of the OEM UI DLL entrypoints.
//
typedef struct _OEMUIPROCS {
PFN_DrvGetDriverSetting DrvGetDriverSetting;
PFN_DrvUpdateUISetting DrvUpdateUISetting;
} OEMUIPROCS, *POEMUIPROCS;
typedef struct _OEMUIOBJ {
DWORD cbSize; // size of this structure
POEMUIPROCS pOemUIProcs; // pointer to user mode helper function table
} OEMUIOBJ, *POEMUIOBJ;
//
// OEMCommonUIProp
//
typedef struct _OEMCUIPPARAM *POEMCUIPPARAM;
typedef LONG (APIENTRY *OEMCUIPCALLBACK)(PCPSUICBPARAM, POEMCUIPPARAM);
typedef struct _OEMCUIPPARAM {
DWORD cbSize; // size of this structure
POEMUIOBJ poemuiobj; // reference to driver data structure
HANDLE hPrinter; // handle to the current printer
PWSTR pPrinterName; // name of current printer
HANDLE hModule; // instance handle to OEM DLL
HANDLE hOEMHeap; // handle to the OEM memory heap
PDEVMODE pPublicDM; // public devmode
PVOID pOEMDM; // OEM private devmode
DWORD dwFlags; // misc. flag bits
POPTITEM pDrvOptItems; // pointer to driver items
DWORD cDrvOptItems; // number of driver items
POPTITEM pOEMOptItems; // pointer to OEM items
DWORD cOEMOptItems; // number of OEM items
PVOID pOEMUserData; // pointer to OEM private data
OEMCUIPCALLBACK OEMCUIPCallback; // address of callback function
} OEMCUIPPARAM;
__drv_preferredFunction("IPrintOemUI", "Obsolete")
BOOL APIENTRY
OEMCommonUIProp(
DWORD dwMode,
POEMCUIPPARAM pOemCUIPParam
);
//
// OEMCommonUIProp dwMode parameter value
//
#define OEMCUIP_DOCPROP 1
#define OEMCUIP_PRNPROP 2
//
// OEMDocumentPropertySheets
//
__drv_preferredFunction("IPrintOemUI", "Obsolete")
LRESULT APIENTRY
OEMDocumentPropertySheets(
_In_ PPROPSHEETUI_INFO pPSUIInfo,
LPARAM lParam
);
//
// OEMDevicePropertySheets
//
__drv_preferredFunction("IPrintOemUI", "Obsolete")
LRESULT APIENTRY
OEMDevicePropertySheets(
_In_ PPROPSHEETUI_INFO pPSUIInfo,
LPARAM lParam
);
//
// pPSUIInfo->lParamInit is a pointer to _OEMUIPSPARAM structure defined below.
//
typedef struct _OEMUIPSPARAM {
DWORD cbSize; // size of this structure
POEMUIOBJ poemuiobj; // reference to driver data structure
HANDLE hPrinter; // handle to the current printer
PWSTR pPrinterName; // name of current printer
HANDLE hModule; // instance handle to OEM DLL
HANDLE hOEMHeap; // handle to the OEM memory heap
PDEVMODE pPublicDM; // public devmode
PVOID pOEMDM; // OEM private devmode
PVOID pOEMUserData; // pointer to OEM private data
DWORD dwFlags; // misc. flag bits
PVOID pOemEntry;
} OEMUIPSPARAM, *POEMUIPSPARAM;
#pragma warning(push)
// Suppress SAL warnings on pre-Windows XP APIs
#pragma warning(disable:28718 28740)
//
// OEMDevQueryPrintEx
//
__drv_preferredFunction("IPrintOemUI", "Obsolete")
BOOL APIENTRY
OEMDevQueryPrintEx(
POEMUIOBJ poemuiobj,
PDEVQUERYPRINT_INFO pDQPInfo,
PDEVMODE pPublicDM,
PVOID pOEMDM
);
//
// OEMDeviceCapabilities
//
__drv_preferredFunction("IPrintOemUI", "Obsolete")
DWORD APIENTRY
OEMDeviceCapabilities(
POEMUIOBJ poemuiobj,
HANDLE hPrinter,
PWSTR pDeviceName,
WORD wCapability,
PVOID pOutput,
PDEVMODE pPublicDM,
PVOID pOEMDM,
DWORD dwLastResult
);
//
// OEMUpgradePrinter
//
__drv_preferredFunction("IPrintOemUI", "Obsolete")
BOOL APIENTRY
OEMUpgradePrinter(
DWORD dwLevel,
PBYTE pDriverUpgradeInfo
);
//
// OEMUpgradeRegistry
//
__drv_preferredFunction("(see documentation)", "Obsolete")
BOOL APIENTRY
OEMUpgradeRegistry(
DWORD dwLevel,
PBYTE pDriverUpgradeInfo,
PFN_DrvUpgradeRegistrySetting pfnUpgrade
);
//
// OEMPrinterEvent
//
__drv_preferredFunction("IPrintOemUI", "Obsolete")
BOOL APIENTRY
OEMPrinterEvent(
PWSTR pPrinterName,
INT iDriverEvent,
DWORD dwFlags,
LPARAM lParam
);
//
// OEMDriverEvent
//
__drv_preferredFunction("IPrintOemUI", "Obsolete")
BOOL APIENTRY
OEMPDriverEvent(
DWORD dwDriverEvent,
DWORD dwLevel,
LPBYTE pDriverInfo,
LPARAM lParam
);
//
// OEMQueryColorProfile
//
__drv_preferredFunction("IPrintOemUI", "Obsolete")
BOOL APIENTRY
OEMQueryColorProfile(
HANDLE hPrinter,
POEMUIOBJ poemuiobj,
PDEVMODE pPublicDM,
PVOID pOEMDM,
ULONG ulQueryMode,
_Out_writes_bytes_(*pcbProfileData) VOID *pvProfileData,
_Out_ ULONG *pcbProfileData,
_Out_ FLONG *pflProfileData
);
//
// Font Installer dialog proc
//
__drv_preferredFunction("IPrintOemUI", "Obsolete")
INT_PTR CALLBACK
OEMFontInstallerDlgProc(
HWND hWnd,
UINT usMsg,
WPARAM wParam,
LPARAM lParam
);
__drv_preferredFunction("IPrintOemUI", "Obsolete")
BOOL CALLBACK
OEMUpdateExternalFonts(
HANDLE hPrinter,
HANDLE hHeap,
PWSTR pwstrCartridges
);
#pragma warning(pop)
// @@END_INTERNAL_PUBLISHCFG
#endif // !KERNEL_MODE
// @@BEGIN_INTERNAL_PUBLISHCOMMON
#if (NTDDI_VERSION >= NTDDI_WINXP)
//
// Datatypes for attributes plugin can get by calling core driver's
// following helper functions:
//
// GetGlobalAttribute, GetFeatureAttribute, GetOptionAttribute
//
typedef enum _EATTRIBUTE_DATATYPE {
kADT_UNKNOWN,
kADT_BOOL,
kADT_INT,
kADT_LONG,
kADT_DWORD,
kADT_ASCII, // NULL terminated ASCII string
kADT_UNICODE, // NULL terminated Unicode string
kADT_BINARY, // binary blob
kADT_SIZE,
kADT_RECT,
kADT_CUSTOMSIZEPARAMS, // array of CUSTOMSIZEPARAM structures
} EATTRIBUTE_DATATYPE;
//
// Data structure for storing information about PPD's *ParamCustomPageSize entries
//
#define CUSTOMPARAM_WIDTH 0
#define CUSTOMPARAM_HEIGHT 1
#define CUSTOMPARAM_WIDTHOFFSET 2
#define CUSTOMPARAM_HEIGHTOFFSET 3
#define CUSTOMPARAM_ORIENTATION 4
#define CUSTOMPARAM_MAX 5
typedef struct _CUSTOMSIZEPARAM {
LONG dwOrder; // order value
LONG lMinVal; // min value (in microns)
LONG lMaxVal; // max value (in microns)
} CUSTOMSIZEPARAM, *PCUSTOMSIZEPARAM;
//
// constants for SetOptions helper function
//
// SetOptions flag
//
#define SETOPTIONS_FLAG_RESOLVE_CONFLICT 0x00000001
#define SETOPTIONS_FLAG_KEEP_CONFLICT 0x00000002
//
// SetOptions result code
//
#define SETOPTIONS_RESULT_NO_CONFLICT 0
#define SETOPTIONS_RESULT_CONFLICT_RESOLVED 1
#define SETOPTIONS_RESULT_CONFLICT_REMAINED 2
#endif // (NTDDI_VERSION >= NTDDI_WINXP)
// @@END_INTERNAL_PUBLISHCOMMON
#ifdef __cplusplus
}
#endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif // !_PRINTOEM_