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
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
/*++
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:
xdsmplui.h
Abstract:
Definition of the UI plugin. This is responsible for initialising and maintining
the property pages used in the XPSDrv feature sample UI.
--*/
#pragma once
#include "cunknown.h"
#include "docppg.h"
typedef std::vector<CDocPropPage*> DocPropertyPageMap;
class CXDSmplUI : public CUnknown<IPrintOemUI>
{
public:
//
// Construction and Destruction
//
CXDSmplUI();
virtual ~CXDSmplUI();
//
// IPrintOemUI methods
//
STDMETHOD(PublishDriverInterface)(THIS_
_In_ IUnknown* pIUnknown
);
STDMETHOD(GetInfo)(THIS_
_In_ DWORD dwMode,
_Out_writes_bytes_(cbSize) PVOID pBuffer,
_In_ DWORD cbSize,
_Out_ PDWORD pcbNeeded
);
STDMETHOD(DevMode)(THIS_
_In_ DWORD dwMode,
_In_ POEMDMPARAM pOemDMParam
);
STDMETHOD(CommonUIProp)(THIS_
_In_ DWORD dwMode,
_In_ POEMCUIPPARAM pOemCUIPParam
);
STDMETHOD(DocumentPropertySheets)(THIS_
_In_ PPROPSHEETUI_INFO pPSUIInfo,
_In_ LPARAM lParam
);
STDMETHOD(DevicePropertySheets)(THIS_
_In_ PPROPSHEETUI_INFO pPSUIInfo,
_In_ LPARAM lParam
);
STDMETHOD(DevQueryPrintEx)(THIS_
_In_ POEMUIOBJ poemuiobj,
_In_ PDEVQUERYPRINT_INFO pDQPInfo,
_In_ PDEVMODE pPublicDM,
_In_ PVOID pOEMDM
);
STDMETHOD(DeviceCapabilities)(THIS_
_In_ POEMUIOBJ poemuiobj,
_In_ HANDLE hPrinter,
_In_z_ PWSTR pDeviceName,
_In_ WORD wCapability,
_In_ PVOID pOutput,
_In_ PDEVMODE pPublicDM,
_In_ PVOID pOEMDM,
_In_ DWORD dwOld,
_In_ DWORD* dwResult
);
STDMETHOD(UpgradePrinter)(THIS_
_In_ DWORD dwLevel,
_In_ PBYTE pDriverUpgradeInfo
);
STDMETHOD(PrinterEvent)(THIS_
_In_ PWSTR pPrinterName,
_In_ INT iDriverEvent,
_In_ DWORD dwFlags,
_In_ LPARAM lParam
);
STDMETHOD(DriverEvent)(THIS_
_In_ DWORD dwDriverEvent,
_In_ DWORD dwLevel,
_In_reads_(_Inexpressible_("varies")) PBYTE pDriverInfo,
_In_ LPARAM lParam
);
STDMETHOD(QueryColorProfile)(THIS_
_In_ HANDLE hPrinter,
_In_ POEMUIOBJ poemuiobj,
_In_ PDEVMODE pPublicDM,
_In_ PVOID pOEMDM,
_In_ ULONG ulReserved,
_Out_writes_(*pcbProfileData) VOID* pvProfileData,
_Inout_ ULONG* pcbProfileData,
_Out_ FLONG* pflProfileData
);
STDMETHOD(FontInstallerDlgProc)(THIS_
_In_ HWND hWnd,
_In_ UINT usMsg,
_In_ WPARAM wParam,
_In_ LPARAM lParam
);
STDMETHOD(UpdateExternalFonts)(THIS_
_In_ HANDLE hPrinter,
_In_ HANDLE hHeap,
_In_z_ PWSTR pwstrCartridges
);
private:
HRESULT
CreatePropertyPages(
VOID
);
HRESULT
AddPropPage(
_In_opt_ __drv_aliasesMem CDocPropPage* pPropPage
);
inline VOID
DestroyPropPages(
VOID
);
private:
POEMCUIPPARAM m_pOemCUIPParam;
CUIProperties* m_pUIProperties;
CComPtr<IPrintOemDriverUI> m_pDriverUIHelp;
DocPropertyPageMap m_vectPropPages;
};
|