1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
|
/*++
Copyright (c) 2005 Microsoft Corporation
All rights reserved.
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
File Name:
xdsmplptprov.h
Abstract:
Definition of the PrintTicket provider plugin. This is responsible for
handling PrintTicket features that are too complex for the GPD->PrintTicket
automapping facility.
--*/
#pragma once
#include "cunknown.h"
#include "schema.h"
#include "ftrdmptcnv.h"
typedef vector<IFeatureDMPTConvert*> DMPTConvCollection;
class CXDSmplPTProvider : public CUnknown<IPrintOemPrintTicketProvider>
{
public:
CXDSmplPTProvider();
virtual ~CXDSmplPTProvider();
//
// IPrintOemPrintTicketProvider methods
//
virtual HRESULT STDMETHODCALLTYPE
GetSupportedVersions(
_In_ HANDLE hPrinter,
_Outptr_result_buffer_(*pcVersions) INT* ppVersions[],
_Out_ INT* pcVersions
);
virtual HRESULT STDMETHODCALLTYPE
BindPrinter(
_In_ HANDLE hPrinter,
INT version,
_Out_ POEMPTOPTS pOptions,
_Out_ INT* pcNamespaces,
_Outptr_result_buffer_maybenull_(*pcNamespaces) BSTR** ppNamespaces
);
virtual HRESULT STDMETHODCALLTYPE
PublishPrintTicketHelperInterface(
_In_ IUnknown* pHelper
);
virtual HRESULT STDMETHODCALLTYPE
QueryDeviceDefaultNamespace(
_Out_ BSTR* pbstrNamespaceUri
);
virtual HRESULT STDMETHODCALLTYPE
ConvertPrintTicketToDevMode(
_In_ IXMLDOMDocument2* pPrintTicket,
ULONG cbDevmode,
_Inout_updates_bytes_(cbDevmode)
PDEVMODE pDevmode,
ULONG cbDrvPrivateSize,
_Inout_ PVOID pPrivateDevmode
);
virtual HRESULT STDMETHODCALLTYPE
ConvertDevModeToPrintTicket(
ULONG cbDevmode,
_Inout_updates_bytes_(cbDevmode)
PDEVMODE pDevmode,
ULONG cbDrvPrivateSize,
_Inout_ PVOID pPrivateDevmode,
_Inout_ IXMLDOMDocument2* pPrintTicket
);
virtual HRESULT STDMETHODCALLTYPE
CompletePrintCapabilities(
_In_opt_ IXMLDOMDocument2* pPrintTicket,
_Inout_ IXMLDOMDocument2* pCapabilities
);
virtual HRESULT STDMETHODCALLTYPE
ExpandIntentOptions(
_Inout_ IXMLDOMDocument2* pPrintTicket
);
virtual HRESULT STDMETHODCALLTYPE
ValidatePrintTicket(
_Inout_ IXMLDOMDocument2* pPrintTicket
);
private:
HRESULT
DeleteConverters(
VOID
);
HRESULT
AddConverter(
_In_opt_ __drv_aliasesMem IFeatureDMPTConvert* pHandler
);
private:
HANDLE m_hPrinterCached;
CComPtr<IPrintCoreHelperUni> m_pCoreHelper;
DMPTConvCollection m_vectFtrDMPTConverters;
CComBSTR m_bstrPrivateNS;
};
|