blob: 4ba04a35fab464c0e5805c617896ee01fd509ce8 [file] [log] [blame]
Juan Lang183f27b2008-06-28 09:38:14 -07001/*
2 * Copyright (C) 2008 Juan Lang
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17 */
18#ifndef __CRYPTUIAPI_H__
19#define __CRYPTUIAPI_H__
20
21#include <wintrust.h>
22#include <wincrypt.h>
23#include <prsht.h>
24
25#ifdef __cplusplus
26extern "C" {
27#endif
28
29#include <pshpack8.h>
30
31BOOL WINAPI CryptUIDlgViewContext(DWORD dwContextType, LPVOID pvContext,
32 HWND hwnd, LPCWSTR pwszTitle, DWORD dwFlags, LPVOID pvReserved);
33
34/* Values for dwDontUseColumn */
35#define CRYPTUI_SELECT_ISSUEDTO_COLUMN 0x00000001
36#define CRYPTUI_SELECT_ISSUEDBY_COLUMN 0x00000002
37#define CRYPTUI_SELECT_INTENDEDUSE_COLUMN 0x00000004
38#define CRYPTUI_SELECT_FRIENDLYNAME_COLUMN 0x00000008
39#define CRYPTUI_SELECT_LOCATION_COLUMN 0x00000010
40#define CRYPTUI_SELECT_EXPIRATION_COLUMN 0x00000020
41
42PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateFromStore(
43 HCERTSTORE hCertStore, HWND hwnd, LPCWSTR pwszTitle, LPCWSTR pwszDisplayString,
44 DWORD dwDontUseColumn, DWORD dwFlags, LPVOID pvReserved);
45
Juan Lang918303a2008-08-26 10:13:03 -070046/* Values for CRYPTUI_CERT_MGR_STRUCT's dwFlags */
47#define CRYPTUI_CERT_MGR_PUBLISHER_TAB 0x00000004
48#define CRYPTUI_CERT_MGR_TAB_MASK 0x0000000f
49#define CRYPTUI_CERT_MGR_SINGLE_TAB_FLAG 0x00008000
50
51typedef struct _CRYPTUI_CERT_MGR_STRUCT
52{
53 DWORD dwSize;
54 HWND hwndParent;
55 DWORD dwFlags;
56 LPCWSTR pwszTitle;
57 LPCSTR pszInitUsageOID;
58} CRYPTUI_CERT_MGR_STRUCT, *PCRYPTUI_CERT_MGR_STRUCT;
59typedef const struct _CRYPTUI_CERT_MGR_STRUCT *PCCRYPTUI_CERT_MGR_STRUCT;
60
61BOOL WINAPI CryptUIDlgCertMgr(PCCRYPTUI_CERT_MGR_STRUCT pCryptUICertMgr);
62
63typedef BOOL (WINAPI *PFNCFILTERPROC)(PCCERT_CONTEXT pCertContext,
64 BOOL *pfInitialSelectedCert, void *pvCallbackData);
65
66typedef struct tagCRYPTUI_INITDIALOG_STRUCT
67{
68 LPARAM lParam;
69 PCCERT_CONTEXT pCertContext;
70} CRYPTUI_INITDIALOG_STRUCT, *PCRYPTUI_INITDIALOG_STRUCT;
71
Juan Lang3e207c22008-09-18 12:40:28 -070072/* Values for CRYPTUI_VIEWCERTIFICATE_STRUCT's dwFlags */
73#define CRYPTUI_HIDE_HIERARCHYPAGE 0x00000001
74#define CRYPTUI_HIDE_DETAILPAGE 0x00000002
75#define CRYPTUI_DISABLE_EDITPROPERTIES 0x00000004
76#define CRYPTUI_ENABLE_EDITPROPERTIES 0x00000008
77#define CRYPTUI_DISABLE_ADDTOSTORE 0x00000010
78#define CRYPTUI_ENABLE_ADDTOSTORE 0x00000020
79#define CRYPTUI_ACCEPT_DECLINE_STYLE 0x00000040
80#define CRYPTUI_IGNORE_UNTRUSTED_ROOT 0x00000080
81#define CRYPTUI_DONT_OPEN_STORES 0x00000100
82#define CRYPTUI_ONLY_OPEN_ROOT_STORE 0x00000200
83#define CRYPTUI_WARN_UNTRUSTED_ROOT 0x00000400
84#define CRYPTUI_ENABLE_REVOCATION_CHECKING 0x00000800
85#define CRYPTUI_WARN_REMOTE_TRUST 0x00001000
86#define CRYPTUI_DISABLE_EXPORT 0x00002000
87#define CRYPTUI_ENABLE_REVOCATION_CHECK_END_CERT 0x00004000
88#define CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN 0x00008000
89#define CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT CRYPTUI_ENABLE_REVOCATION_CHECKING
90#define CRYPTUI_DISABLE_HTMLLINK 0x00010000
Juan Langa64b7b02008-09-27 11:26:29 -070091#define CRYPTUI_DISABLE_ISSUERSTATEMENT 0x00020000
Juan Lang3e207c22008-09-18 12:40:28 -070092
Juan Lang918303a2008-08-26 10:13:03 -070093typedef struct tagCRYPTUI_VIEWCERTIFICATE_STRUCTA
94{
95 DWORD dwSize;
96 HWND hwndParent;
97 DWORD dwFlags;
98 LPCSTR szTitle;
99 PCCERT_CONTEXT pCertContext;
100 LPCSTR *rgszPurposes;
101 DWORD cPurposes;
102 union {
103 CRYPT_PROVIDER_DATA const *pCryptProviderData;
104 HANDLE hWVTStateData;
105 } DUMMYUNIONNAME;
106 BOOL fpCryptProviderDataTrustedUsage;
107 DWORD idxSigner;
108 DWORD idxCert;
109 BOOL fCounterSigner;
110 DWORD idxCounterSigner;
111 DWORD cStores;
112 HCERTSTORE *rghStores;
113 DWORD cPropSheetPages;
114 LPCPROPSHEETPAGEA rgPropSheetPages;
115 DWORD nStartPage;
116} CRYPTUI_VIEWCERTIFICATE_STRUCTA, *PCRYPTUI_VIEWCERTIFICATE_STRUCTA;
117typedef const CRYPTUI_VIEWCERTIFICATE_STRUCTA *PCCRYPTUI_VIEWCERTIFICATE_STRUCTA;
118
119typedef struct tagCRYPTUI_VIEWCERTIFICATE_STRUCTW
120{
121 DWORD dwSize;
122 HWND hwndParent;
123 DWORD dwFlags;
124 LPCWSTR szTitle;
125 PCCERT_CONTEXT pCertContext;
126 LPCSTR *rgszPurposes;
127 DWORD cPurposes;
128 union {
129 CRYPT_PROVIDER_DATA const *pCryptProviderData;
130 HANDLE hWVTStateData;
131 } DUMMYUNIONNAME;
132 BOOL fpCryptProviderDataTrustedUsage;
133 DWORD idxSigner;
134 DWORD idxCert;
135 BOOL fCounterSigner;
136 DWORD idxCounterSigner;
137 DWORD cStores;
138 HCERTSTORE *rghStores;
139 DWORD cPropSheetPages;
140 LPCPROPSHEETPAGEW rgPropSheetPages;
141 DWORD nStartPage;
142} CRYPTUI_VIEWCERTIFICATE_STRUCTW, *PCRYPTUI_VIEWCERTIFICATE_STRUCTW;
143typedef const CRYPTUI_VIEWCERTIFICATE_STRUCTW *PCCRYPTUI_VIEWCERTIFICATE_STRUCTW;
144
145#define CRYPTUI_VIEWCERTIFICATE_STRUCT WINELIB_NAME_AW(CRYPTUI_VIEWCERTIFICATE_STRUCT)
146#define PCCRYPTUI_VIEWCERTIFICATE_STRUCT WINELIB_NAME_AW(PCCRYPTUI_VIEWCERTIFICATE_STRUCT)
147
148BOOL WINAPI CryptUIDlgViewCertificateA(
149 PCCRYPTUI_VIEWCERTIFICATE_STRUCTA pCertViewInfo, BOOL *pfPropertiesChanged);
150BOOL WINAPI CryptUIDlgViewCertificateW(
151 PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, BOOL *pfPropertiesChanged);
152#define CryptUIDlgViewCertificate WINELIB_NAME_AW(CryptUIDlgViewCertificate)
153
154typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO
155{
156 DWORD dwSize;
157 GUID *pGuidSubject;
158 DWORD cbBlob;
159 BYTE *pbBlob;
160 LPCWSTR pwszDisplayName;
161} CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO, *PCRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO;
162typedef const CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO *
163 PCCRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO;
164
165typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO
166{
167 DWORD dwSize;
168 DWORD cCertStore;
169 HCERTSTORE *rghCertStore;
170 PFNCFILTERPROC pFilterCallback;
171 void *pvCallbackData;
172} CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO, *PCRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO;
173typedef const CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO *
174 PCCRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO;
175
176typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO
177{
178 DWORD dwSize;
179 LPWSTR pwszPvkFileName;
180 LPWSTR pwszProvName;
181 DWORD dwProvType;
182} CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO,
183 *PCRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO;
184typedef const CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO *
185 PCCRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO;
186
187typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO
188{
189 DWORD dwSize;
190 LPWSTR pwszSigningCertFileName;
191 DWORD dwPvkChoice;
192 union {
193 PCCRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO pPvkFileInfo;
194 PCRYPT_KEY_PROV_INFO pPvkProvInfo;
195 } DUMMYUNIONNAME;
196} CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO,
197 *PCRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO;
198typedef const CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO *
199 PCCRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO;
200
201typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO
202{
203 DWORD dwSize;
204 DWORD dwAttrFlags;
205 LPCWSTR pwszDescription;
206 LPCWSTR pwszMoreInfoLocation;
207 LPCSTR pszHashAlg;
208 LPCWSTR pwszSigningCertDisplayString;
209 HCERTSTORE hAdditionalCertStore;
210 PCRYPT_ATTRIBUTES psAuthenticated;
211 PCRYPT_ATTRIBUTES psUnauthenticated;
212} CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO,
213 *PCRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO;
214typedef const CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO *
215 PCCRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO;
216
217typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_INFO
218{
219 DWORD dwSize;
220 DWORD dwSubjectChoice;
221 union {
222 LPCWSTR pwszFileName;
223 PCCRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO pSignBlobInfo;
224 } DUMMYUNIONNAME1;
225 DWORD dwSigningCertChoice;
226 union {
227 PCCERT_CONTEXT pSigningCertContext;
228 PCCRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO pSigningCertStore;
229 PCCRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO pSigningCertPvkInfo;
230 } DUMMYUNIONNAME2;
231 LPCWSTR pwszTimestampURL;
232 DWORD dwAdditionalCertChoice;
233 PCCRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO pSignExtInfo;
234} CRYPTUI_WIZ_DIGITAL_SIGN_INFO, *PCRYPTUI_WIZ_DIGITAL_SIGN_INFO;
235typedef const CRYPTUI_WIZ_DIGITAL_SIGN_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_INFO;
236
237typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT
238{
239 DWORD dwSize;
240 DWORD cbBlob;
241 BYTE *pbBlob;
242} CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT, *PCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT;
243
244/* Values for CryptUIWizDigitalSign's dwFlags */
245#define CRYPTUI_WIZ_NO_UI 0x00000001
246#define CRYPTUI_WIZ_DIGITAL_SIGN_EXCLUDE_PAGE_HASHES 0x00000002
247#define CRYPTUI_WIZ_DIGITAL_SIGN_INCLUDE_PAGE_HASHES 0x00000004
248
249BOOL WINAPI CryptUIWizDigitalSign(DWORD dwFlags, HWND hwndParent,
250 LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_DIGITAL_SIGN_INFO pDigitalSignInfo,
251 PCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT *ppSignContext);
252
253BOOL WINAPI CryptUIWizFreeDigitalSignContext(
254 PCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT pSignContext);
255
256/* Values for CRYPTUI_WIZ_EXPORT_INFO's dwSubjectChoice */
257#define CRYPTUI_WIZ_EXPORT_CERT_CONTEXT 1
258#define CRYPTUI_WIZ_EXPORT_CTL_CONTEXT 2
259#define CRYPTUI_WIZ_EXPORT_CRL_CONTEXT 3
260#define CRYPTUI_WIZ_EXPORT_CERT_STORE 4
261#define CRYPTUI_WIZ_EXPORT_CERT_STORE_CERTIFICATES_ONLY 5
262#define CRYPTUI_WIZ_EXPORT_FORMAT_CRL 6
263#define CRYPTUI_WIZ_EXPORT_FORMAT_CTL 7
264
265typedef struct _CRYPTUI_WIZ_EXPORT_INFO
266{
267 DWORD dwSize;
268 LPCWSTR pwszExportFileName;
269 DWORD dwSubjectChoice;
270 union {
271 PCCERT_CONTEXT pCertContext;
272 PCCTL_CONTEXT pCTLContext;
273 PCCRL_CONTEXT pCRLContext;
Juan Lang072b6062009-01-24 12:52:34 -0800274 HCERTSTORE hCertStore;
Juan Lang918303a2008-08-26 10:13:03 -0700275 } DUMMYUNIONNAME;
276 DWORD cStores;
277 HCERTSTORE *rghStores;
278} CRYPTUI_WIZ_EXPORT_INFO, *PCRYPTUI_WIZ_EXPORT_INFO;
279typedef const CRYPTUI_WIZ_EXPORT_INFO *PCCRYPTUI_WIZ_EXPORT_INFO;
280
281/* Values for CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO's dwExportFormat */
282#define CRYPTUI_WIZ_EXPORT_FORMAT_DER 1
283#define CRYPTUI_WIZ_EXPORT_FORMAT_PFX 2
284#define CRYPTUI_WIZ_EXPORT_FORMAT_PKCS7 3
285#define CRYPTUI_WIZ_EXPORT_FORMAT_BASE64 4
286#define CRYPTUI_WIZ_EXPORT_FORMAT_SERIALIZED_CERT_STORE 5
287
288typedef struct _CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO
289{
290 DWORD dwSize;
291 DWORD dwExportFormat;
292 BOOL fExportChain;
293 BOOL fExportPrivateKeys;
294 LPCWSTR pwszPassword;
295 BOOL fStrongEncryption;
296} CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO, *PCRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO;
297typedef const CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO *
298 PCCRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO;
299
300BOOL WINAPI CryptUIWizExport(DWORD dwFlags, HWND hwndParent,
301 LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo, void *pvoid);
302
303/* Values for CRYPTUI_WIZ_IMPORT_SRC_INFO's dwSubjectChoice */
304#define CRYPTUI_WIZ_IMPORT_SUBJECT_FILE 1
305#define CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_CONTEXT 2
306#define CRYPTUI_WIZ_IMPORT_SUBJECT_CTL_CONTEXT 3
307#define CRYPTUI_WIZ_IMPORT_SUBJECT_CRL_CONTEXT 4
308#define CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_STORE 5
309
310typedef struct _CRYPTUI_WIZ_IMPORT_SUBJECT_INFO
311{
312 DWORD dwSize;
313 DWORD dwSubjectChoice;
314 union {
315 LPCWSTR pwszFileName;
316 PCCERT_CONTEXT pCertContext;
317 PCCTL_CONTEXT pCTLContext;
318 PCCRL_CONTEXT pCRLContext;
319 HCERTSTORE hCertStore;
320 } DUMMYUNIONNAME;
321 DWORD dwFlags;
322 LPCWSTR pwszPassword;
323} CRYPTUI_WIZ_IMPORT_SRC_INFO, *PCRYPTUI_WIZ_IMPORT_SRC_INFO;
324typedef const CRYPTUI_WIZ_IMPORT_SRC_INFO *PCCRYPTUI_WIZ_IMPORT_SRC_INFO;
325
326/* Values for CryptUIWizImport's dwFlags */
327#define CRYPTUI_WIZ_IMPORT_NO_CHANGE_DEST_STORE 0x00010000
328#define CRYPTUI_WIZ_IMPORT_ALLOW_CERT 0x00020000
329#define CRYPTUI_WIZ_IMPORT_ALLOW_CRL 0x00040000
330#define CRYPTUI_WIZ_IMPORT_ALLOW_CTL 0x00080000
331#define CRYPTUI_WIZ_IMPORT_TO_LOCALMACHINE 0x00100000
332#define CRYPTUI_WIZ_IMPORT_TO_CURRENTUSER 0x00200000
333#define CRYPTUI_WIZ_IMPORT_REMOTE_DEST_STORE 0x00400000
334
335BOOL WINAPI CryptUIWizImport(DWORD dwFlags, HWND hwndParent,
336 LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc,
337 HCERTSTORE hDestCertStore);
338
Juan Langdeaf5392008-12-18 21:07:08 -0800339/* Definitions missing from PSDK's cryptuiapi.h, but documented on MSDN. */
340typedef BOOL (WINAPI *PFNCCERTDISPLAYPROC)(PCCERT_CONTEXT pCertContext,
341 HWND hWndSelCertDlg, void *pvCallbackData);
342
343/* Values for CRYPTUI_SELECTCERTIFICATE_STRUCT's dwFlags */
344#define CRYPTUI_SELECTCERT_MULTISELECT 0x00000001
345
346typedef struct _CRYPTUI_SELECTCERTIFICATE_STRUCTA
347{
348 DWORD dwSize;
349 HWND hwndParent;
350 DWORD dwFlags;
351 LPCWSTR szTitle;
352 DWORD dwDontUseColumn;
353 LPCWSTR szDisplayString;
354 PFNCFILTERPROC pFilterCallback;
355 PFNCCERTDISPLAYPROC pDisplayCallback;
356 void *pvCallbackData;
357 DWORD cStores;
358 HCERTSTORE *rghStores;
359 DWORD cPropSheetPages;
360 LPCPROPSHEETPAGEW rgPropSheetPages;
361 HCERTSTORE hSelectedCertStore;
362} CRYPTUI_SELECTCERTIFICATE_STRUCTA, *PCRYPTUI_SELECTCERTIFICATE_STRUCTA;
363typedef const CRYPTUI_SELECTCERTIFICATE_STRUCTA *
364 PCCRYPTUI_SELECTCERTIFICATE_STRUCTA;
365
366typedef struct _CRYPTUI_SELECTCERTIFICATE_STRUCTW
367{
368 DWORD dwSize;
369 HWND hwndParent;
370 DWORD dwFlags;
371 LPCWSTR szTitle;
372 DWORD dwDontUseColumn;
373 LPCWSTR szDisplayString;
374 PFNCFILTERPROC pFilterCallback;
375 PFNCCERTDISPLAYPROC pDisplayCallback;
376 void *pvCallbackData;
377 DWORD cStores;
378 HCERTSTORE *rghStores;
379 DWORD cPropSheetPages;
380 LPCPROPSHEETPAGEW rgPropSheetPages;
381 HCERTSTORE hSelectedCertStore;
382} CRYPTUI_SELECTCERTIFICATE_STRUCTW, *PCRYPTUI_SELECTCERTIFICATE_STRUCTW;
383typedef const CRYPTUI_SELECTCERTIFICATE_STRUCTW *
384 PCCRYPTUI_SELECTCERTIFICATE_STRUCTW;
385
386PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateA(
387 PCCRYPTUI_SELECTCERTIFICATE_STRUCTA pcsc);
388PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateW(
389 PCCRYPTUI_SELECTCERTIFICATE_STRUCTW pcsc);
390
391typedef struct tagCRYPTUI_VIEWSIGNERINFO_STRUCTA
392{
393 DWORD dwSize;
394 HWND hwndParent;
395 DWORD dwFlags;
396 LPCSTR szTitle;
397 CMSG_SIGNER_INFO *pSignerInfo;
398 HCRYPTMSG hMsg;
399 LPCSTR pszOID;
400 DWORD_PTR dwReserved;
401 DWORD cStores;
402 HCERTSTORE *rghStores;
403 DWORD cPropSheetPages;
404 LPCPROPSHEETPAGEA rgPropSheetPages;
405} CRYPTUI_VIEWSIGNERINFO_STRUCTA, *PCRYPTUI_VIEWSIGNERINFO_STRUCTA;
406
407typedef struct tagCRYPTUI_VIEWSIGNERINFO_STRUCTW
408{
409 DWORD dwSize;
410 HWND hwndParent;
411 DWORD dwFlags;
412 LPCWSTR szTitle;
413 CMSG_SIGNER_INFO *pSignerInfo;
414 HCRYPTMSG hMsg;
415 LPCSTR pszOID;
416 DWORD_PTR dwReserved;
417 DWORD cStores;
418 HCERTSTORE *rghStores;
419 DWORD cPropSheetPages;
420 LPCPROPSHEETPAGEW rgPropSheetPages;
421} CRYPTUI_VIEWSIGNERINFO_STRUCTW, *PCRYPTUI_VIEWSIGNERINFO_STRUCTW;
422
423BOOL WINAPI CryptUIDlgViewSignerInfoA(CRYPTUI_VIEWSIGNERINFO_STRUCTA *pcvsi);
424BOOL WINAPI CryptUIDlgViewSignerInfoW(CRYPTUI_VIEWSIGNERINFO_STRUCTW *pcvsi);
425
Juan Lang183f27b2008-06-28 09:38:14 -0700426#include <poppack.h>
427
428#ifdef __cplusplus
429}
430#endif
431
432#endif