Git conversion: Make reactos the root directory, move rosapps, rostests, wallpapers...
[reactos.git] / sdk / include / psdk / cryptuiapi.h
1 /*
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
26 extern "C" {
27 #endif
28
29 #include <pshpack8.h>
30
31 BOOL 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
42 PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateFromStore(
43 HCERTSTORE hCertStore, HWND hwnd, LPCWSTR pwszTitle, LPCWSTR pwszDisplayString,
44 DWORD dwDontUseColumn, DWORD dwFlags, LPVOID pvReserved);
45
46 /* 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
51 typedef 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;
59 typedef const struct _CRYPTUI_CERT_MGR_STRUCT *PCCRYPTUI_CERT_MGR_STRUCT;
60
61 BOOL WINAPI CryptUIDlgCertMgr(PCCRYPTUI_CERT_MGR_STRUCT pCryptUICertMgr);
62
63 typedef BOOL (WINAPI *PFNCFILTERPROC)(PCCERT_CONTEXT pCertContext,
64 BOOL *pfInitialSelectedCert, void *pvCallbackData);
65
66 typedef struct tagCRYPTUI_INITDIALOG_STRUCT
67 {
68 LPARAM lParam;
69 PCCERT_CONTEXT pCertContext;
70 } CRYPTUI_INITDIALOG_STRUCT, *PCRYPTUI_INITDIALOG_STRUCT;
71
72 /* 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
91 #define CRYPTUI_DISABLE_ISSUERSTATEMENT 0x00020000
92
93 typedef 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;
117 typedef const CRYPTUI_VIEWCERTIFICATE_STRUCTA *PCCRYPTUI_VIEWCERTIFICATE_STRUCTA;
118
119 typedef 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;
143 typedef 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
148 BOOL WINAPI CryptUIDlgViewCertificateA(
149 PCCRYPTUI_VIEWCERTIFICATE_STRUCTA pCertViewInfo, BOOL *pfPropertiesChanged);
150 BOOL WINAPI CryptUIDlgViewCertificateW(
151 PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo, BOOL *pfPropertiesChanged);
152 #define CryptUIDlgViewCertificate WINELIB_NAME_AW(CryptUIDlgViewCertificate)
153
154 typedef 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;
162 typedef const CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO *
163 PCCRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO;
164
165 typedef 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;
173 typedef const CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO *
174 PCCRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO;
175
176 typedef 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;
184 typedef const CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO *
185 PCCRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO;
186
187 typedef 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;
198 typedef const CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO *
199 PCCRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO;
200
201 typedef 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;
214 typedef const CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO *
215 PCCRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO;
216
217 typedef 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;
235 typedef const CRYPTUI_WIZ_DIGITAL_SIGN_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_INFO;
236
237 typedef 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 typedef const CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT *PCCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT;
244
245 /* Values for CryptUIWizDigitalSign's dwFlags */
246 #define CRYPTUI_WIZ_NO_UI 0x00000001
247 #define CRYPTUI_WIZ_DIGITAL_SIGN_EXCLUDE_PAGE_HASHES 0x00000002
248 #define CRYPTUI_WIZ_DIGITAL_SIGN_INCLUDE_PAGE_HASHES 0x00000004
249
250 BOOL WINAPI CryptUIWizDigitalSign(DWORD dwFlags, HWND hwndParent,
251 LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_DIGITAL_SIGN_INFO pDigitalSignInfo,
252 PCCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT *ppSignContext);
253
254 BOOL WINAPI CryptUIWizFreeDigitalSignContext(
255 PCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT pSignContext);
256
257 /* Values for CRYPTUI_WIZ_EXPORT_INFO's dwSubjectChoice */
258 #define CRYPTUI_WIZ_EXPORT_CERT_CONTEXT 1
259 #define CRYPTUI_WIZ_EXPORT_CTL_CONTEXT 2
260 #define CRYPTUI_WIZ_EXPORT_CRL_CONTEXT 3
261 #define CRYPTUI_WIZ_EXPORT_CERT_STORE 4
262 #define CRYPTUI_WIZ_EXPORT_CERT_STORE_CERTIFICATES_ONLY 5
263 #define CRYPTUI_WIZ_EXPORT_FORMAT_CRL 6
264 #define CRYPTUI_WIZ_EXPORT_FORMAT_CTL 7
265
266 typedef struct _CRYPTUI_WIZ_EXPORT_INFO
267 {
268 DWORD dwSize;
269 LPCWSTR pwszExportFileName;
270 DWORD dwSubjectChoice;
271 union {
272 PCCERT_CONTEXT pCertContext;
273 PCCTL_CONTEXT pCTLContext;
274 PCCRL_CONTEXT pCRLContext;
275 HCERTSTORE hCertStore;
276 } DUMMYUNIONNAME;
277 DWORD cStores;
278 HCERTSTORE *rghStores;
279 } CRYPTUI_WIZ_EXPORT_INFO, *PCRYPTUI_WIZ_EXPORT_INFO;
280 typedef const CRYPTUI_WIZ_EXPORT_INFO *PCCRYPTUI_WIZ_EXPORT_INFO;
281
282 /* Values for CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO's dwExportFormat */
283 #define CRYPTUI_WIZ_EXPORT_FORMAT_DER 1
284 #define CRYPTUI_WIZ_EXPORT_FORMAT_PFX 2
285 #define CRYPTUI_WIZ_EXPORT_FORMAT_PKCS7 3
286 #define CRYPTUI_WIZ_EXPORT_FORMAT_BASE64 4
287 #define CRYPTUI_WIZ_EXPORT_FORMAT_SERIALIZED_CERT_STORE 5
288
289 typedef struct _CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO
290 {
291 DWORD dwSize;
292 DWORD dwExportFormat;
293 BOOL fExportChain;
294 BOOL fExportPrivateKeys;
295 LPCWSTR pwszPassword;
296 BOOL fStrongEncryption;
297 } CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO, *PCRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO;
298 typedef const CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO *
299 PCCRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO;
300
301 BOOL WINAPI CryptUIWizExport(DWORD dwFlags, HWND hwndParent,
302 LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo, void *pvoid);
303
304 /* Values for CRYPTUI_WIZ_IMPORT_SRC_INFO's dwSubjectChoice */
305 #define CRYPTUI_WIZ_IMPORT_SUBJECT_FILE 1
306 #define CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_CONTEXT 2
307 #define CRYPTUI_WIZ_IMPORT_SUBJECT_CTL_CONTEXT 3
308 #define CRYPTUI_WIZ_IMPORT_SUBJECT_CRL_CONTEXT 4
309 #define CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_STORE 5
310
311 typedef struct _CRYPTUI_WIZ_IMPORT_SUBJECT_INFO
312 {
313 DWORD dwSize;
314 DWORD dwSubjectChoice;
315 union {
316 LPCWSTR pwszFileName;
317 PCCERT_CONTEXT pCertContext;
318 PCCTL_CONTEXT pCTLContext;
319 PCCRL_CONTEXT pCRLContext;
320 HCERTSTORE hCertStore;
321 } DUMMYUNIONNAME;
322 DWORD dwFlags;
323 LPCWSTR pwszPassword;
324 } CRYPTUI_WIZ_IMPORT_SRC_INFO, *PCRYPTUI_WIZ_IMPORT_SRC_INFO;
325 typedef const CRYPTUI_WIZ_IMPORT_SRC_INFO *PCCRYPTUI_WIZ_IMPORT_SRC_INFO;
326
327 /* Values for CryptUIWizImport's dwFlags */
328 #define CRYPTUI_WIZ_IMPORT_NO_CHANGE_DEST_STORE 0x00010000
329 #define CRYPTUI_WIZ_IMPORT_ALLOW_CERT 0x00020000
330 #define CRYPTUI_WIZ_IMPORT_ALLOW_CRL 0x00040000
331 #define CRYPTUI_WIZ_IMPORT_ALLOW_CTL 0x00080000
332 #define CRYPTUI_WIZ_IMPORT_TO_LOCALMACHINE 0x00100000
333 #define CRYPTUI_WIZ_IMPORT_TO_CURRENTUSER 0x00200000
334 #define CRYPTUI_WIZ_IMPORT_REMOTE_DEST_STORE 0x00400000
335
336 BOOL WINAPI CryptUIWizImport(DWORD dwFlags, HWND hwndParent,
337 LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc,
338 HCERTSTORE hDestCertStore);
339
340 /* Definitions missing from PSDK's cryptuiapi.h, but documented on MSDN. */
341 typedef BOOL (WINAPI *PFNCCERTDISPLAYPROC)(PCCERT_CONTEXT pCertContext,
342 HWND hWndSelCertDlg, void *pvCallbackData);
343
344 /* Values for CRYPTUI_SELECTCERTIFICATE_STRUCT's dwFlags */
345 #define CRYPTUI_SELECTCERT_MULTISELECT 0x00000001
346
347 typedef struct _CRYPTUI_SELECTCERTIFICATE_STRUCTA
348 {
349 DWORD dwSize;
350 HWND hwndParent;
351 DWORD dwFlags;
352 LPCSTR szTitle;
353 DWORD dwDontUseColumn;
354 LPCSTR szDisplayString;
355 PFNCFILTERPROC pFilterCallback;
356 PFNCCERTDISPLAYPROC pDisplayCallback;
357 void *pvCallbackData;
358 DWORD cDisplayStores;
359 HCERTSTORE *rghDisplayStores;
360 DWORD cStores;
361 HCERTSTORE *rghStores;
362 DWORD cPropSheetPages;
363 LPCPROPSHEETPAGEA rgPropSheetPages;
364 HCERTSTORE hSelectedCertStore;
365 } CRYPTUI_SELECTCERTIFICATE_STRUCTA, *PCRYPTUI_SELECTCERTIFICATE_STRUCTA;
366 typedef const CRYPTUI_SELECTCERTIFICATE_STRUCTA *
367 PCCRYPTUI_SELECTCERTIFICATE_STRUCTA;
368
369 typedef struct _CRYPTUI_SELECTCERTIFICATE_STRUCTW
370 {
371 DWORD dwSize;
372 HWND hwndParent;
373 DWORD dwFlags;
374 LPCWSTR szTitle;
375 DWORD dwDontUseColumn;
376 LPCWSTR szDisplayString;
377 PFNCFILTERPROC pFilterCallback;
378 PFNCCERTDISPLAYPROC pDisplayCallback;
379 void *pvCallbackData;
380 DWORD cDisplayStores;
381 HCERTSTORE *rghDisplayStores;
382 DWORD cStores;
383 HCERTSTORE *rghStores;
384 DWORD cPropSheetPages;
385 LPCPROPSHEETPAGEW rgPropSheetPages;
386 HCERTSTORE hSelectedCertStore;
387 } CRYPTUI_SELECTCERTIFICATE_STRUCTW, *PCRYPTUI_SELECTCERTIFICATE_STRUCTW;
388 typedef const CRYPTUI_SELECTCERTIFICATE_STRUCTW *
389 PCCRYPTUI_SELECTCERTIFICATE_STRUCTW;
390
391 PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateA(
392 PCCRYPTUI_SELECTCERTIFICATE_STRUCTA pcsc);
393 PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateW(
394 PCCRYPTUI_SELECTCERTIFICATE_STRUCTW pcsc);
395
396 typedef struct tagCRYPTUI_VIEWSIGNERINFO_STRUCTA
397 {
398 DWORD dwSize;
399 HWND hwndParent;
400 DWORD dwFlags;
401 LPCSTR szTitle;
402 CMSG_SIGNER_INFO *pSignerInfo;
403 HCRYPTMSG hMsg;
404 LPCSTR pszOID;
405 DWORD_PTR dwReserved;
406 DWORD cStores;
407 HCERTSTORE *rghStores;
408 DWORD cPropSheetPages;
409 LPCPROPSHEETPAGEA rgPropSheetPages;
410 } CRYPTUI_VIEWSIGNERINFO_STRUCTA, *PCRYPTUI_VIEWSIGNERINFO_STRUCTA;
411
412 typedef struct tagCRYPTUI_VIEWSIGNERINFO_STRUCTW
413 {
414 DWORD dwSize;
415 HWND hwndParent;
416 DWORD dwFlags;
417 LPCWSTR szTitle;
418 CMSG_SIGNER_INFO *pSignerInfo;
419 HCRYPTMSG hMsg;
420 LPCSTR pszOID;
421 DWORD_PTR dwReserved;
422 DWORD cStores;
423 HCERTSTORE *rghStores;
424 DWORD cPropSheetPages;
425 LPCPROPSHEETPAGEW rgPropSheetPages;
426 } CRYPTUI_VIEWSIGNERINFO_STRUCTW, *PCRYPTUI_VIEWSIGNERINFO_STRUCTW;
427
428 BOOL WINAPI CryptUIDlgViewSignerInfoA(CRYPTUI_VIEWSIGNERINFO_STRUCTA *pcvsi);
429 BOOL WINAPI CryptUIDlgViewSignerInfoW(CRYPTUI_VIEWSIGNERINFO_STRUCTW *pcvsi);
430
431 #include <poppack.h>
432
433 #ifdef __cplusplus
434 }
435 #endif
436
437 #endif