xpmgr/BuildTools/Include/prntvpt.h

145 lines
3.8 KiB
C

/*++
Copyright (c) 1996-2004 Microsoft Corporation
Module Name:
prnptntv.h
Abstract:
Print ticket APIs for Win32 applications
--*/
#ifndef _PRNPTNTV_H_
#define _PRNPTNTV_H_
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
DECLARE_HANDLE(HPTPROVIDER);
#define PRINTTICKET_ISTREAM_APIS 1
#define S_PT_NO_CONFLICT (0x00040001)
#define S_PT_CONFLICT_RESOLVED (0x00040002)
/*
PrintTicket stream provided by the caller did not
follow PrintTicket framework specification or the XML
could not be parsed. If returned by
PTMergeAndValidatePrintTicket, it indicates that the
base ticket contained the error.
*/
#define E_PRINTTICKET_FORMAT (0x80040003)
/*
PrintCapabilities document generated by the driver
did not follow the specification. This indicates an
error in the driver.
*/
#define E_PRINTCAPABILITIES_FORMAT (0x80040004)
/*
The delta print ticket parameter passed to
PTMergeAndValidatePrintTicket did not
follow PrintTicket framework specification or
the XML could not be parsed.
*/
#define E_DELTA_PRINTTICKET_FORMAT (0x80040005)
typedef enum tagEDefaultDevmodeType
{
kUserDefaultDevmode,
kPrinterDefaultDevmode
} EDefaultDevmodeType;
typedef enum
{
kPTPageScope,
kPTDocumentScope,
kPTJobScope
} EPrintTicketScope;
HRESULT WINAPI
PTQuerySchemaVersionSupport(
__in PCWSTR pszPrinterName,
__out DWORD *pMaxVersion
);
HRESULT WINAPI
PTOpenProvider(
__in PCWSTR pszPrinterName,
DWORD dwVersion,
__out HPTPROVIDER *phProvider
);
HRESULT WINAPI
PTOpenProviderEx(
__in PCWSTR pszPrinterName,
DWORD dwMaxVersion,
DWORD dwPrefVersion,
__out HPTPROVIDER *phProvider,
__out DWORD *pUsedVersion
);
HRESULT WINAPI
PTCloseProvider(
__in HPTPROVIDER hProvider
);
HRESULT WINAPI
PTReleaseMemory(
__in PVOID pBuffer
);
HRESULT WINAPI
PTGetPrintCapabilities(
__in HPTPROVIDER hProvider,
__in_opt IStream *pPrintTicket,
__inout IStream *pCapabilities,
__out_opt BSTR *pbstrErrorMessage
);
HRESULT WINAPI
PTMergeAndValidatePrintTicket(
__in HPTPROVIDER hProvider,
__in IStream *pBaseTicket,
__in_opt IStream *pDeltaTicket,
__in EPrintTicketScope scope,
__inout IStream *pResultTicket,
__out_opt BSTR *pbstrErrorMessage
);
HRESULT WINAPI
PTConvertPrintTicketToDevMode(
__in HPTPROVIDER hProvider,
__in IStream *pPrintTicket,
EDefaultDevmodeType baseDevmodeType,
__in EPrintTicketScope scope,
__out ULONG *pcbDevmode,
__deref_out_bcount(*pcbDevmode) OUT PDEVMODE *ppDevmode,
__out_opt BSTR *pbstrErrorMessage
);
HRESULT WINAPI
PTConvertDevModeToPrintTicket(
__in HPTPROVIDER hProvider,
ULONG cbDevmode,
__in PDEVMODE pDevmode,
__in EPrintTicketScope scope,
__inout IStream *pPrintTicket
);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* _PRNPTNTV_H_ */