📄 prcomoem.h
字号:
//
//****************************************************************************
// IPrintOemDriverPS interface
//****************************************************************************
//
#undef INTERFACE
#define INTERFACE IPrintOemDriverPS
DECLARE_INTERFACE_(IPrintOemDriverPS, IUnknown)
{
//
// IUnknown methods
//
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
STDMETHOD_(ULONG, Release) (THIS) PURE;
//
// IPrintOemDriverPS methods
//
//
// Method for OEM to get driver settings
//
STDMETHOD(DrvGetDriverSetting) (THIS_ PVOID pdriverobj,
PCSTR Feature,
PVOID pOutput,
DWORD cbSize,
PDWORD pcbNeeded,
PDWORD pdwOptionsReturned) PURE;
//
// Method for OEM to write to spooler buffer
//
STDMETHOD(DrvWriteSpoolBuf)(THIS_ PDEVOBJ pdevobj,
PVOID pBuffer,
DWORD cbSize,
OUT DWORD *pdwResult) PURE;
};
//
//****************************************************************************
// IPrintCorePS2 interface
//
// This is the revised core driver helper interface OEM PS render plugin can
// call. It supercedes the old helper interface IPrintOemDriverPS.
//****************************************************************************
//
#undef INTERFACE
#define INTERFACE IPrintCorePS2
DECLARE_INTERFACE_(IPrintCorePS2, IUnknown)
{
//
// IUnknown methods
//
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
STDMETHOD_(ULONG, Release) (THIS) PURE;
//
// IPrintCorePS2 methods
//
//
// Method for OEM to write to spooler buffer.
//
STDMETHOD(DrvWriteSpoolBuf)(THIS_
IN PDEVOBJ pdevobj,
IN PVOID pBuffer,
IN DWORD cbSize,
OUT DWORD *pdwResult) PURE;
//
// Helper function to retrieve driver's current setting as a list of
// feature/option keyword pairs.
//
STDMETHOD(GetOptions) (THIS_
IN PDEVOBJ pdevobj,
IN DWORD dwFlags,
IN PCSTR pmszFeaturesRequested,
IN DWORD cbIn,
OUT PSTR pmszFeatureOptionBuf,
IN DWORD cbSize,
OUT PDWORD pcbNeeded) PURE;
//
// Helper function to retrieve global attribute.
//
STDMETHOD(GetGlobalAttribute) (THIS_
IN PDEVOBJ pdevobj,
IN DWORD dwFlags,
IN PCSTR pszAttribute,
OUT PDWORD pdwDataType,
OUT PBYTE pbData,
IN DWORD cbSize,
OUT PDWORD pcbNeeded) PURE;
//
// Helper function to retrieve attribute of a given feature.
//
STDMETHOD(GetFeatureAttribute) (THIS_
IN PDEVOBJ pdevobj,
IN DWORD dwFlags,
IN PCSTR pszFeatureKeyword,
IN PCSTR pszAttribute,
OUT PDWORD pdwDataType,
OUT PBYTE pbData,
IN DWORD cbSize,
OUT PDWORD pcbNeeded) PURE;
//
// Helper function to retrieve attribute of a given feature/option selection.
//
STDMETHOD(GetOptionAttribute) (THIS_
IN PDEVOBJ pdevobj,
IN DWORD dwFlags,
IN PCSTR pszFeatureKeyword,
IN PCSTR pszOptionKeyword,
IN PCSTR pszAttribute,
OUT PDWORD pdwDataType,
OUT PBYTE pbData,
IN DWORD cbSize,
OUT PDWORD pcbNeeded) PURE;
//
// Helper function to retrieve the list of feature keyword.
//
STDMETHOD(EnumFeatures) (THIS_
IN PDEVOBJ pdevobj,
IN DWORD dwFlags,
OUT PSTR pmszFeatureList,
IN DWORD cbSize,
OUT PDWORD pcbNeeded) PURE;
//
// Helper function to retrieve the list of options keyword of a given feature.
//
STDMETHOD(EnumOptions) (THIS_
IN PDEVOBJ pdevobj,
IN DWORD dwFlags,
IN PCSTR pszFeatureKeyword,
OUT PSTR pmszOptionList,
IN DWORD cbSize,
OUT PDWORD pcbNeeded) PURE;
};
//
//****************************************************************************
// IPrintOemUni interface
//****************************************************************************
//
#undef INTERFACE
#define INTERFACE IPrintOemUni
DECLARE_INTERFACE_(IPrintOemUni, IPrintOemEngine)
{
//
// IUnknown methods
//
STDMETHOD(QueryInterface) (THIS_ REFIID riid, LPVOID* ppvObj) PURE;
STDMETHOD_(ULONG, AddRef) (THIS) PURE;
STDMETHOD_(ULONG, Release) (THIS) PURE;
//
// IPrintOemCommon methods
//
//
// Method for getting OEM related information
//
STDMETHOD(GetInfo) (THIS_ DWORD dwMode,
PVOID pBuffer,
DWORD cbSize,
PDWORD pcbNeeded) PURE;
//
// Method for OEM private devmode handling
//
STDMETHOD(DevMode) (THIS_ DWORD dwMode,
POEMDMPARAM pOemDMParam) PURE;
//
// IPrintOemEngine methods
//
//
// Method for OEM to specify DDI hook out
//
STDMETHOD(EnableDriver) (THIS_ DWORD DriverVersion,
DWORD cbSize,
PDRVENABLEDATA pded) PURE;
//
// Method to notify OEM plugin that it is no longer required
//
STDMETHOD(DisableDriver) (THIS) PURE;
//
// Method for OEM to construct its own PDEV
//
STDMETHOD(EnablePDEV) (THIS_ PDEVOBJ pdevobj,
PWSTR pPrinterName,
ULONG cPatterns,
HSURF *phsurfPatterns,
ULONG cjGdiInfo,
GDIINFO *pGdiInfo,
ULONG cjDevInfo,
DEVINFO *pDevInfo,
DRVENABLEDATA *pded,
OUT PDEVOEM *pDevOem) PURE;
//
// Method for OEM to free any resource associated with its PDEV
//
STDMETHOD(DisablePDEV) (THIS_ PDEVOBJ pdevobj) PURE;
//
// Method for OEM to transfer from old PDEV to new PDEV
//
STDMETHOD(ResetPDEV) (THIS_ PDEVOBJ pdevobjOld,
PDEVOBJ pdevobjNew) PURE;
//
// IPrintOemUni methods
//
//
// Method for publishing Driver interface.
//
STDMETHOD(PublishDriverInterface)(THIS_ IUnknown *pIUnknown) PURE;
//
// Method for getting OEM implemented methods.
// Returns S_OK if the given method is implemented.
// Returns S_FALSE if the given method is not implemented.
//
//
STDMETHOD(GetImplementedMethod) (THIS_ PSTR pMethodName) PURE;
//
// DriverDMS
//
STDMETHOD(DriverDMS)(THIS_ PVOID pDevObj,
PVOID pBuffer,
DWORD cbSize,
PDWORD pcbNeeded) PURE;
//
// CommandCallback
//
STDMETHOD(CommandCallback)(THIS_ PDEVOBJ pdevobj,
DWORD dwCallbackID,
DWORD dwCount,
PDWORD pdwParams,
OUT INT *piResult) PURE;
//
// ImageProcessing
//
STDMETHOD(ImageProcessing)(THIS_ PDEVOBJ pdevobj,
PBYTE pSrcBitmap,
PBITMAPINFOHEADER pBitmapInfoHeader,
PBYTE pColorTable,
DWORD dwCallbackID,
PIPPARAMS pIPParams,
OUT PBYTE *ppbResult) PURE;
//
// FilterGraphics
//
STDMETHOD(FilterGraphics) (THIS_ PDEVOBJ pdevobj,
PBYTE pBuf,
DWORD dwLen) PURE;
//
// Compression
//
STDMETHOD(Compression)(THIS_ PDEVOBJ pdevobj,
PBYTE pInBuf,
PBYTE pOutBuf,
DWORD dwInLen,
DWORD dwOutLen,
OUT INT *piResult) PURE;
//
// HalftonePattern
//
STDMETHOD(HalftonePattern) (THIS_ PDEVOBJ pdevobj,
PBYTE pHTPattern,
DWORD dwHTPatternX,
DWORD dwHTPatternY,
DWORD dwHTNumPatterns,
DWORD dwCallbackID,
PBYTE pResource,
DWORD dwResourceSize) PURE;
//
// MemoryUsage
//
STDMETHOD(MemoryUsage) (THIS_ PDEVOBJ pdevobj,
POEMMEMORYUSAGE pMemoryUsage) PURE;
//
// TTYGetInfo
//
STDMETHOD(TTYGetInfo)(THIS_ PDEVOBJ pdevobj,
DWORD dwInfoIndex,
PVOID pOutputBuf,
DWORD dwSize,
DWORD *pcbcNeeded
) PURE;
//
// DownloadFontheader
//
STDMETHOD(DownloadFontHeader)(THIS_ PDEVOBJ pdevobj,
PUNIFONTOBJ pUFObj,
OUT DWORD *pdwResult) PURE;
//
// DownloadCharGlyph
//
STDMETHOD(DownloadCharGlyph)(THIS_ PDEVOBJ pdevobj,
PUNIFONTOBJ pUFObj,
HGLYPH hGlyph,
PDWORD pdwWidth,
OUT DWORD *pdwResult) PURE;
//
// TTDownloadMethod
//
STDMETHOD(TTDownloadMethod)(THIS_ PDEVOBJ pdevobj,
PUNIFONTOBJ pUFObj,
OUT DWORD *pdwResult) PURE;
//
// OutputCharStr
//
STDMETHOD(OutputCharStr)(THIS_ PDEVOBJ pdevobj,
PUNIFONTOBJ pUFObj,
DWORD dwType,
DWORD dwCount,
PVOID pGlyph) PURE;
//
// SendFontCmd
//
STDMETHOD(SendFontCmd)(THIS_ PDEVOBJ pdevobj,
PUNIFONTOBJ pUFObj,
PFINVOCATION pFInv) PURE;
//
// TextOutAsBitmap
//
STDMETHOD(TextOutAsBitmap)(THIS_ SURFOBJ *pso,
STROBJ *pstro,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -