Mercurial > games > semicongine
diff fuhtark_test/include/winapi/cryptuiapi.h @ 1500:91c8c3b7cbf0
add: futhark tests for generating vulkan api
| author | sam <sam@basx.dev> |
|---|---|
| date | Wed, 26 Nov 2025 21:36:48 +0700 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fuhtark_test/include/winapi/cryptuiapi.h Wed Nov 26 21:36:48 2025 +0700 @@ -0,0 +1,316 @@ +/** + * This file has no copyright assigned and is placed in the Public Domain. + * This file is part of the w64 mingw-runtime package. + * No warranty is given; refer to the file DISCLAIMER within this package. + */ +#ifndef __CRYPTUIAPI_H__ +#define __CRYPTUIAPI_H__ + +#include <wintrust.h> +#include <wincrypt.h> + +#ifdef __cplusplus +extern "C" { +#endif + +#include <pshpack8.h> + + WINBOOL WINAPI CryptUIDlgViewContext(DWORD dwContextType,const void *pvContext,HWND hwnd,LPCWSTR pwszTitle,DWORD dwFlags,void *pvReserved); + PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateFromStore(HCERTSTORE hCertStore,HWND hwnd,LPCWSTR pwszTitle,LPCWSTR pwszDisplayString,DWORD dwDontUseColumn,DWORD dwFlags,void *pvReserved); + +#define CRYPTUI_SELECT_ISSUEDTO_COLUMN 0x000000001 +#define CRYPTUI_SELECT_ISSUEDBY_COLUMN 0x000000002 +#define CRYPTUI_SELECT_INTENDEDUSE_COLUMN 0x000000004 +#define CRYPTUI_SELECT_FRIENDLYNAME_COLUMN 0x000000008 +#define CRYPTUI_SELECT_LOCATION_COLUMN 0x000000010 +#define CRYPTUI_SELECT_EXPIRATION_COLUMN 0x000000020 + + typedef WINBOOL (WINAPI *PFNCFILTERPROC)(PCCERT_CONTEXT pCertContext,WINBOOL *pfInitialSelectedCert,void *pvCallbackData); + +#define CRYPTUI_CERT_MGR_TAB_MASK 0x0000000F +#define CRYPTUI_CERT_MGR_PUBLISHER_TAB 0x00000004 +#define CRYPTUI_CERT_MGR_SINGLE_TAB_FLAG 0x00008000 + + typedef struct _CRYPTUI_CERT_MGR_STRUCT { + DWORD dwSize; + HWND hwndParent; + DWORD dwFlags; + LPCWSTR pwszTitle; + LPCSTR pszInitUsageOID; + } CRYPTUI_CERT_MGR_STRUCT,*PCRYPTUI_CERT_MGR_STRUCT; + + typedef const CRYPTUI_CERT_MGR_STRUCT *PCCRYPTUI_CERT_MGR_STRUCT; + + WINBOOL WINAPI CryptUIDlgCertMgr(PCCRYPTUI_CERT_MGR_STRUCT pCryptUICertMgr); + + typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO { + DWORD dwSize; + GUID *pGuidSubject; + DWORD cbBlob; + BYTE *pbBlob; + LPCWSTR pwszDisplayName; + } CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO,*PCRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO; + + typedef const CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO; + + typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO { + DWORD dwSize; + DWORD cCertStore; + HCERTSTORE *rghCertStore; + PFNCFILTERPROC pFilterCallback; + void *pvCallbackData; + } CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO,*PCRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO; + + typedef const CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO; + + typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO { + DWORD dwSize; + LPWSTR pwszPvkFileName; + LPWSTR pwszProvName; + DWORD dwProvType; + } CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO,*PCRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO; + + typedef const CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO; + +#define CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE 0x01 +#define CRYPTUI_WIZ_DIGITAL_SIGN_PVK_PROV 0x02 + + typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO { + DWORD dwSize; + LPWSTR pwszSigningCertFileName; + DWORD dwPvkChoice; + __MINGW_EXTENSION union { + PCCRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO pPvkFileInfo; + PCRYPT_KEY_PROV_INFO pPvkProvInfo; + }; + } CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO,*PCRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO; + + typedef const CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO; +#define CRYPTUI_WIZ_DIGITAL_SIGN_COMMERCIAL 0x0001 +#define CRYPTUI_WIZ_DIGITAL_SIGN_INDIVIDUAL 0x0002 + + typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO { + DWORD dwSize; + DWORD dwAttrFlags; + LPCWSTR pwszDescription; + LPCWSTR pwszMoreInfoLocation; + LPCSTR pszHashAlg; + LPCWSTR pwszSigningCertDisplayString; + HCERTSTORE hAdditionalCertStore; + PCRYPT_ATTRIBUTES psAuthenticated; + PCRYPT_ATTRIBUTES psUnauthenticated; + } CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO,*PCRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO; + + typedef const CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO; + +#define CRYPTUI_WIZ_DIGITAL_SIGN_SUBJECT_FILE 0x01 +#define CRYPTUI_WIZ_DIGITAL_SIGN_SUBJECT_BLOB 0x02 +#define CRYPTUI_WIZ_DIGITAL_SIGN_CERT 0x01 +#define CRYPTUI_WIZ_DIGITAL_SIGN_STORE 0x02 +#define CRYPTUI_WIZ_DIGITAL_SIGN_PVK 0x03 + +#define CRYPTUI_WIZ_DIGITAL_SIGN_ADD_CHAIN 0x00000001 +#define CRYPTUI_WIZ_DIGITAL_SIGN_ADD_CHAIN_NO_ROOT 0x00000002 + + typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_INFO { + DWORD dwSize; + DWORD dwSubjectChoice; + __MINGW_EXTENSION union { + LPCWSTR pwszFileName; + PCCRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO pSignBlobInfo; + }; + DWORD dwSigningCertChoice; + __MINGW_EXTENSION union { + PCCERT_CONTEXT pSigningCertContext; + PCCRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO pSigningCertStore; + PCCRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO pSigningCertPvkInfo; + }; + LPCWSTR pwszTimestampURL; + DWORD dwAdditionalCertChoice; + PCCRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO pSignExtInfo; + } CRYPTUI_WIZ_DIGITAL_SIGN_INFO,*PCRYPTUI_WIZ_DIGITAL_SIGN_INFO; + + typedef const CRYPTUI_WIZ_DIGITAL_SIGN_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_INFO; + + typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT { + DWORD dwSize; + DWORD cbBlob; + BYTE *pbBlob; + } CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT,*PCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT; + + typedef const CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT *PCCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT; + +#define CRYPTUI_WIZ_NO_UI 0x0001 + + WINBOOL WINAPI CryptUIWizDigitalSign(DWORD dwFlags,HWND hwndParent,LPCWSTR pwszWizardTitle,PCCRYPTUI_WIZ_DIGITAL_SIGN_INFO pDigitalSignInfo,PCCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT *ppSignContext); + WINBOOL WINAPI CryptUIWizFreeDigitalSignContext(PCCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT pSignContext); + +#define CRYPTUI_HIDE_HIERARCHYPAGE 0x00000001 +#define CRYPTUI_HIDE_DETAILPAGE 0x00000002 +#define CRYPTUI_DISABLE_EDITPROPERTIES 0x00000004 +#define CRYPTUI_ENABLE_EDITPROPERTIES 0x00000008 +#define CRYPTUI_DISABLE_ADDTOSTORE 0x00000010 +#define CRYPTUI_ENABLE_ADDTOSTORE 0x00000020 +#define CRYPTUI_ACCEPT_DECLINE_STYLE 0x00000040 +#define CRYPTUI_IGNORE_UNTRUSTED_ROOT 0x00000080 +#define CRYPTUI_DONT_OPEN_STORES 0x00000100 +#define CRYPTUI_ONLY_OPEN_ROOT_STORE 0x00000200 +#define CRYPTUI_WARN_UNTRUSTED_ROOT 0x00000400 + +#define CRYPTUI_ENABLE_REVOCATION_CHECKING 0x00000800 + +#define CRYPTUI_WARN_REMOTE_TRUST 0x00001000 +#define CRYPTUI_DISABLE_EXPORT 0x00002000 + +#define CRYPTUI_ENABLE_REVOCATION_CHECK_END_CERT 0x00004000 +#define CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN 0x00008000 +#define CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT CRYPTUI_ENABLE_REVOCATION_CHECKING + + typedef struct tagCRYPTUI_INITDIALOG_STRUCT { + LPARAM lParam; + PCCERT_CONTEXT pCertContext; + } CRYPTUI_INITDIALOG_STRUCT,*PCRYPTUI_INITDIALOG_STRUCT; + + typedef struct tagCRYPTUI_VIEWCERTIFICATE_STRUCTW { + DWORD dwSize; + HWND hwndParent; + DWORD dwFlags; + LPCWSTR szTitle; + PCCERT_CONTEXT pCertContext; + LPCSTR *rgszPurposes; + DWORD cPurposes; + __MINGW_EXTENSION union { + CRYPT_PROVIDER_DATA const *pCryptProviderData; + HANDLE hWVTStateData; + }; + WINBOOL fpCryptProviderDataTrustedUsage; + DWORD idxSigner; + DWORD idxCert; + WINBOOL fCounterSigner; + DWORD idxCounterSigner; + DWORD cStores; + HCERTSTORE *rghStores; + DWORD cPropSheetPages; + LPCPROPSHEETPAGEW rgPropSheetPages; + DWORD nStartPage; + } CRYPTUI_VIEWCERTIFICATE_STRUCTW,*PCRYPTUI_VIEWCERTIFICATE_STRUCTW; + typedef const CRYPTUI_VIEWCERTIFICATE_STRUCTW *PCCRYPTUI_VIEWCERTIFICATE_STRUCTW; + + typedef struct tagCRYPTUI_VIEWCERTIFICATE_STRUCTA { + DWORD dwSize; + HWND hwndParent; + DWORD dwFlags; + LPCSTR szTitle; + PCCERT_CONTEXT pCertContext; + LPCSTR *rgszPurposes; + DWORD cPurposes; + __MINGW_EXTENSION union { + CRYPT_PROVIDER_DATA const *pCryptProviderData; + HANDLE hWVTStateData; + }; + WINBOOL fpCryptProviderDataTrustedUsage; + DWORD idxSigner; + DWORD idxCert; + WINBOOL fCounterSigner; + DWORD idxCounterSigner; + DWORD cStores; + HCERTSTORE *rghStores; + DWORD cPropSheetPages; + LPCPROPSHEETPAGEA rgPropSheetPages; + DWORD nStartPage; + } CRYPTUI_VIEWCERTIFICATE_STRUCTA,*PCRYPTUI_VIEWCERTIFICATE_STRUCTA; + typedef const CRYPTUI_VIEWCERTIFICATE_STRUCTA *PCCRYPTUI_VIEWCERTIFICATE_STRUCTA; + + WINBOOL WINAPI CryptUIDlgViewCertificateW(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo,WINBOOL *pfPropertiesChanged); + WINBOOL WINAPI CryptUIDlgViewCertificateA(PCCRYPTUI_VIEWCERTIFICATE_STRUCTA pCertViewInfo,WINBOOL *pfPropertiesChanged); +#ifdef UNICODE +#define CryptUIDlgViewCertificate CryptUIDlgViewCertificateW +#define PCRYPTUI_VIEWCERTIFICATE_STRUCT PCRYPTUI_VIEWCERTIFICATE_STRUCTW +#define CRYPTUI_VIEWCERTIFICATE_STRUCT CRYPTUI_VIEWCERTIFICATE_STRUCTW +#define PCCRYPTUI_VIEWCERTIFICATE_STRUCT PCCRYPTUI_VIEWCERTIFICATE_STRUCTW +#else +#define CryptUIDlgViewCertificate CryptUIDlgViewCertificateA +#define PCRYPTUI_VIEWCERTIFICATE_STRUCT PCRYPTUI_VIEWCERTIFICATE_STRUCTA +#define CRYPTUI_VIEWCERTIFICATE_STRUCT CRYPTUI_VIEWCERTIFICATE_STRUCTA +#define PCCRYPTUI_VIEWCERTIFICATE_STRUCT PCCRYPTUI_VIEWCERTIFICATE_STRUCTA +#endif + +#define CRYPTUI_WIZ_EXPORT_CERT_CONTEXT 1 +#define CRYPTUI_WIZ_EXPORT_CTL_CONTEXT 2 +#define CRYPTUI_WIZ_EXPORT_CRL_CONTEXT 3 +#define CRYPTUI_WIZ_EXPORT_CERT_STORE 4 +#define CRYPTUI_WIZ_EXPORT_CERT_STORE_CERTIFICATES_ONLY 5 + + typedef struct _CRYPTUI_WIZ_EXPORT_INFO { + DWORD dwSize; + LPCWSTR pwszExportFileName; + DWORD dwSubjectChoice; + __MINGW_EXTENSION union { + PCCERT_CONTEXT pCertContext; + PCCTL_CONTEXT pCTLContext; + PCCRL_CONTEXT pCRLContext; + HCERTSTORE hCertStore; + }; + DWORD cStores; + HCERTSTORE *rghStores; + } CRYPTUI_WIZ_EXPORT_INFO,*PCRYPTUI_WIZ_EXPORT_INFO; + + typedef const CRYPTUI_WIZ_EXPORT_INFO *PCCRYPTUI_WIZ_EXPORT_INFO; + +#define CRYPTUI_WIZ_EXPORT_FORMAT_DER 1 +#define CRYPTUI_WIZ_EXPORT_FORMAT_PFX 2 +#define CRYPTUI_WIZ_EXPORT_FORMAT_PKCS7 3 +#define CRYPTUI_WIZ_EXPORT_FORMAT_BASE64 4 +#define CRYPTUI_WIZ_EXPORT_FORMAT_SERIALIZED_CERT_STORE 5 + + typedef struct _CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO { + DWORD dwSize; + DWORD dwExportFormat; + WINBOOL fExportChain; + WINBOOL fExportPrivateKeys; + LPCWSTR pwszPassword; + WINBOOL fStrongEncryption; + } CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO,*PCRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO; + + typedef const CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO *PCCRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO; + + WINBOOL WINAPI CryptUIWizExport(DWORD dwFlags,HWND hwndParent,LPCWSTR pwszWizardTitle,PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo,void *pvoid); + +#define CRYPTUI_WIZ_IMPORT_SUBJECT_FILE 1 +#define CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_CONTEXT 2 +#define CRYPTUI_WIZ_IMPORT_SUBJECT_CTL_CONTEXT 3 +#define CRYPTUI_WIZ_IMPORT_SUBJECT_CRL_CONTEXT 4 +#define CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_STORE 5 + + typedef struct _CRYPTUI_WIZ_IMPORT_SUBJECT_INFO { + DWORD dwSize; + DWORD dwSubjectChoice; + __MINGW_EXTENSION union { + LPCWSTR pwszFileName; + PCCERT_CONTEXT pCertContext; + PCCTL_CONTEXT pCTLContext; + PCCRL_CONTEXT pCRLContext; + HCERTSTORE hCertStore; + }; + DWORD dwFlags; + LPCWSTR pwszPassword; + } CRYPTUI_WIZ_IMPORT_SRC_INFO,*PCRYPTUI_WIZ_IMPORT_SRC_INFO; + + typedef const CRYPTUI_WIZ_IMPORT_SRC_INFO *PCCRYPTUI_WIZ_IMPORT_SRC_INFO; + +#define CRYPTUI_WIZ_IMPORT_NO_CHANGE_DEST_STORE 0x00010000 +#define CRYPTUI_WIZ_IMPORT_ALLOW_CERT 0x00020000 +#define CRYPTUI_WIZ_IMPORT_ALLOW_CRL 0x00040000 +#define CRYPTUI_WIZ_IMPORT_ALLOW_CTL 0x00080000 +#define CRYPTUI_WIZ_IMPORT_TO_LOCALMACHINE 0x00100000 +#define CRYPTUI_WIZ_IMPORT_TO_CURRENTUSER 0x00200000 +#define CRYPTUI_WIZ_IMPORT_REMOTE_DEST_STORE 0x00400000 + + WINBOOL WINAPI CryptUIWizImport(DWORD dwFlags,HWND hwndParent,LPCWSTR pwszWizardTitle,PCCRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc,HCERTSTORE hDestCertStore); + +#include <poppack.h> + +#ifdef __cplusplus +} +#endif +#endif
