Reactos
at master 437 lines 16 kB view raw
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 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 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 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 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 93typedef 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; 243typedef 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 250BOOL WINAPI CryptUIWizDigitalSign(DWORD dwFlags, HWND hwndParent, 251 LPCWSTR pwszWizardTitle, PCCRYPTUI_WIZ_DIGITAL_SIGN_INFO pDigitalSignInfo, 252 PCCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT *ppSignContext); 253 254BOOL 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 266typedef 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; 280typedef 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 289typedef 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; 298typedef const CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO * 299 PCCRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO; 300 301BOOL 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 311typedef 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; 325typedef 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 336BOOL 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. */ 341typedef 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 347typedef 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; 366typedef const CRYPTUI_SELECTCERTIFICATE_STRUCTA * 367 PCCRYPTUI_SELECTCERTIFICATE_STRUCTA; 368 369typedef 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; 388typedef const CRYPTUI_SELECTCERTIFICATE_STRUCTW * 389 PCCRYPTUI_SELECTCERTIFICATE_STRUCTW; 390 391PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateA( 392 PCCRYPTUI_SELECTCERTIFICATE_STRUCTA pcsc); 393PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateW( 394 PCCRYPTUI_SELECTCERTIFICATE_STRUCTW pcsc); 395 396typedef 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 412typedef 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 428BOOL WINAPI CryptUIDlgViewSignerInfoA(CRYPTUI_VIEWSIGNERINFO_STRUCTA *pcvsi); 429BOOL WINAPI CryptUIDlgViewSignerInfoW(CRYPTUI_VIEWSIGNERINFO_STRUCTW *pcvsi); 430 431#include <poppack.h> 432 433#ifdef __cplusplus 434} 435#endif 436 437#endif