comparison 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
comparison
equal deleted inserted replaced
1499:1f58458b7ef7 1500:91c8c3b7cbf0
1 /**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the w64 mingw-runtime package.
4 * No warranty is given; refer to the file DISCLAIMER within this package.
5 */
6 #ifndef __CRYPTUIAPI_H__
7 #define __CRYPTUIAPI_H__
8
9 #include <wintrust.h>
10 #include <wincrypt.h>
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15
16 #include <pshpack8.h>
17
18 WINBOOL WINAPI CryptUIDlgViewContext(DWORD dwContextType,const void *pvContext,HWND hwnd,LPCWSTR pwszTitle,DWORD dwFlags,void *pvReserved);
19 PCCERT_CONTEXT WINAPI CryptUIDlgSelectCertificateFromStore(HCERTSTORE hCertStore,HWND hwnd,LPCWSTR pwszTitle,LPCWSTR pwszDisplayString,DWORD dwDontUseColumn,DWORD dwFlags,void *pvReserved);
20
21 #define CRYPTUI_SELECT_ISSUEDTO_COLUMN 0x000000001
22 #define CRYPTUI_SELECT_ISSUEDBY_COLUMN 0x000000002
23 #define CRYPTUI_SELECT_INTENDEDUSE_COLUMN 0x000000004
24 #define CRYPTUI_SELECT_FRIENDLYNAME_COLUMN 0x000000008
25 #define CRYPTUI_SELECT_LOCATION_COLUMN 0x000000010
26 #define CRYPTUI_SELECT_EXPIRATION_COLUMN 0x000000020
27
28 typedef WINBOOL (WINAPI *PFNCFILTERPROC)(PCCERT_CONTEXT pCertContext,WINBOOL *pfInitialSelectedCert,void *pvCallbackData);
29
30 #define CRYPTUI_CERT_MGR_TAB_MASK 0x0000000F
31 #define CRYPTUI_CERT_MGR_PUBLISHER_TAB 0x00000004
32 #define CRYPTUI_CERT_MGR_SINGLE_TAB_FLAG 0x00008000
33
34 typedef struct _CRYPTUI_CERT_MGR_STRUCT {
35 DWORD dwSize;
36 HWND hwndParent;
37 DWORD dwFlags;
38 LPCWSTR pwszTitle;
39 LPCSTR pszInitUsageOID;
40 } CRYPTUI_CERT_MGR_STRUCT,*PCRYPTUI_CERT_MGR_STRUCT;
41
42 typedef const CRYPTUI_CERT_MGR_STRUCT *PCCRYPTUI_CERT_MGR_STRUCT;
43
44 WINBOOL WINAPI CryptUIDlgCertMgr(PCCRYPTUI_CERT_MGR_STRUCT pCryptUICertMgr);
45
46 typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO {
47 DWORD dwSize;
48 GUID *pGuidSubject;
49 DWORD cbBlob;
50 BYTE *pbBlob;
51 LPCWSTR pwszDisplayName;
52 } CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO,*PCRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO;
53
54 typedef const CRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO;
55
56 typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO {
57 DWORD dwSize;
58 DWORD cCertStore;
59 HCERTSTORE *rghCertStore;
60 PFNCFILTERPROC pFilterCallback;
61 void *pvCallbackData;
62 } CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO,*PCRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO;
63
64 typedef const CRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO;
65
66 typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO {
67 DWORD dwSize;
68 LPWSTR pwszPvkFileName;
69 LPWSTR pwszProvName;
70 DWORD dwProvType;
71 } CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO,*PCRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO;
72
73 typedef const CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO;
74
75 #define CRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE 0x01
76 #define CRYPTUI_WIZ_DIGITAL_SIGN_PVK_PROV 0x02
77
78 typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO {
79 DWORD dwSize;
80 LPWSTR pwszSigningCertFileName;
81 DWORD dwPvkChoice;
82 __MINGW_EXTENSION union {
83 PCCRYPTUI_WIZ_DIGITAL_SIGN_PVK_FILE_INFO pPvkFileInfo;
84 PCRYPT_KEY_PROV_INFO pPvkProvInfo;
85 };
86 } CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO,*PCRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO;
87
88 typedef const CRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO;
89 #define CRYPTUI_WIZ_DIGITAL_SIGN_COMMERCIAL 0x0001
90 #define CRYPTUI_WIZ_DIGITAL_SIGN_INDIVIDUAL 0x0002
91
92 typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO {
93 DWORD dwSize;
94 DWORD dwAttrFlags;
95 LPCWSTR pwszDescription;
96 LPCWSTR pwszMoreInfoLocation;
97 LPCSTR pszHashAlg;
98 LPCWSTR pwszSigningCertDisplayString;
99 HCERTSTORE hAdditionalCertStore;
100 PCRYPT_ATTRIBUTES psAuthenticated;
101 PCRYPT_ATTRIBUTES psUnauthenticated;
102 } CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO,*PCRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO;
103
104 typedef const CRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO;
105
106 #define CRYPTUI_WIZ_DIGITAL_SIGN_SUBJECT_FILE 0x01
107 #define CRYPTUI_WIZ_DIGITAL_SIGN_SUBJECT_BLOB 0x02
108 #define CRYPTUI_WIZ_DIGITAL_SIGN_CERT 0x01
109 #define CRYPTUI_WIZ_DIGITAL_SIGN_STORE 0x02
110 #define CRYPTUI_WIZ_DIGITAL_SIGN_PVK 0x03
111
112 #define CRYPTUI_WIZ_DIGITAL_SIGN_ADD_CHAIN 0x00000001
113 #define CRYPTUI_WIZ_DIGITAL_SIGN_ADD_CHAIN_NO_ROOT 0x00000002
114
115 typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_INFO {
116 DWORD dwSize;
117 DWORD dwSubjectChoice;
118 __MINGW_EXTENSION union {
119 LPCWSTR pwszFileName;
120 PCCRYPTUI_WIZ_DIGITAL_SIGN_BLOB_INFO pSignBlobInfo;
121 };
122 DWORD dwSigningCertChoice;
123 __MINGW_EXTENSION union {
124 PCCERT_CONTEXT pSigningCertContext;
125 PCCRYPTUI_WIZ_DIGITAL_SIGN_STORE_INFO pSigningCertStore;
126 PCCRYPTUI_WIZ_DIGITAL_SIGN_CERT_PVK_INFO pSigningCertPvkInfo;
127 };
128 LPCWSTR pwszTimestampURL;
129 DWORD dwAdditionalCertChoice;
130 PCCRYPTUI_WIZ_DIGITAL_SIGN_EXTENDED_INFO pSignExtInfo;
131 } CRYPTUI_WIZ_DIGITAL_SIGN_INFO,*PCRYPTUI_WIZ_DIGITAL_SIGN_INFO;
132
133 typedef const CRYPTUI_WIZ_DIGITAL_SIGN_INFO *PCCRYPTUI_WIZ_DIGITAL_SIGN_INFO;
134
135 typedef struct _CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT {
136 DWORD dwSize;
137 DWORD cbBlob;
138 BYTE *pbBlob;
139 } CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT,*PCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT;
140
141 typedef const CRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT *PCCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT;
142
143 #define CRYPTUI_WIZ_NO_UI 0x0001
144
145 WINBOOL WINAPI CryptUIWizDigitalSign(DWORD dwFlags,HWND hwndParent,LPCWSTR pwszWizardTitle,PCCRYPTUI_WIZ_DIGITAL_SIGN_INFO pDigitalSignInfo,PCCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT *ppSignContext);
146 WINBOOL WINAPI CryptUIWizFreeDigitalSignContext(PCCRYPTUI_WIZ_DIGITAL_SIGN_CONTEXT pSignContext);
147
148 #define CRYPTUI_HIDE_HIERARCHYPAGE 0x00000001
149 #define CRYPTUI_HIDE_DETAILPAGE 0x00000002
150 #define CRYPTUI_DISABLE_EDITPROPERTIES 0x00000004
151 #define CRYPTUI_ENABLE_EDITPROPERTIES 0x00000008
152 #define CRYPTUI_DISABLE_ADDTOSTORE 0x00000010
153 #define CRYPTUI_ENABLE_ADDTOSTORE 0x00000020
154 #define CRYPTUI_ACCEPT_DECLINE_STYLE 0x00000040
155 #define CRYPTUI_IGNORE_UNTRUSTED_ROOT 0x00000080
156 #define CRYPTUI_DONT_OPEN_STORES 0x00000100
157 #define CRYPTUI_ONLY_OPEN_ROOT_STORE 0x00000200
158 #define CRYPTUI_WARN_UNTRUSTED_ROOT 0x00000400
159
160 #define CRYPTUI_ENABLE_REVOCATION_CHECKING 0x00000800
161
162 #define CRYPTUI_WARN_REMOTE_TRUST 0x00001000
163 #define CRYPTUI_DISABLE_EXPORT 0x00002000
164
165 #define CRYPTUI_ENABLE_REVOCATION_CHECK_END_CERT 0x00004000
166 #define CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN 0x00008000
167 #define CRYPTUI_ENABLE_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT CRYPTUI_ENABLE_REVOCATION_CHECKING
168
169 typedef struct tagCRYPTUI_INITDIALOG_STRUCT {
170 LPARAM lParam;
171 PCCERT_CONTEXT pCertContext;
172 } CRYPTUI_INITDIALOG_STRUCT,*PCRYPTUI_INITDIALOG_STRUCT;
173
174 typedef struct tagCRYPTUI_VIEWCERTIFICATE_STRUCTW {
175 DWORD dwSize;
176 HWND hwndParent;
177 DWORD dwFlags;
178 LPCWSTR szTitle;
179 PCCERT_CONTEXT pCertContext;
180 LPCSTR *rgszPurposes;
181 DWORD cPurposes;
182 __MINGW_EXTENSION union {
183 CRYPT_PROVIDER_DATA const *pCryptProviderData;
184 HANDLE hWVTStateData;
185 };
186 WINBOOL fpCryptProviderDataTrustedUsage;
187 DWORD idxSigner;
188 DWORD idxCert;
189 WINBOOL fCounterSigner;
190 DWORD idxCounterSigner;
191 DWORD cStores;
192 HCERTSTORE *rghStores;
193 DWORD cPropSheetPages;
194 LPCPROPSHEETPAGEW rgPropSheetPages;
195 DWORD nStartPage;
196 } CRYPTUI_VIEWCERTIFICATE_STRUCTW,*PCRYPTUI_VIEWCERTIFICATE_STRUCTW;
197 typedef const CRYPTUI_VIEWCERTIFICATE_STRUCTW *PCCRYPTUI_VIEWCERTIFICATE_STRUCTW;
198
199 typedef struct tagCRYPTUI_VIEWCERTIFICATE_STRUCTA {
200 DWORD dwSize;
201 HWND hwndParent;
202 DWORD dwFlags;
203 LPCSTR szTitle;
204 PCCERT_CONTEXT pCertContext;
205 LPCSTR *rgszPurposes;
206 DWORD cPurposes;
207 __MINGW_EXTENSION union {
208 CRYPT_PROVIDER_DATA const *pCryptProviderData;
209 HANDLE hWVTStateData;
210 };
211 WINBOOL fpCryptProviderDataTrustedUsage;
212 DWORD idxSigner;
213 DWORD idxCert;
214 WINBOOL fCounterSigner;
215 DWORD idxCounterSigner;
216 DWORD cStores;
217 HCERTSTORE *rghStores;
218 DWORD cPropSheetPages;
219 LPCPROPSHEETPAGEA rgPropSheetPages;
220 DWORD nStartPage;
221 } CRYPTUI_VIEWCERTIFICATE_STRUCTA,*PCRYPTUI_VIEWCERTIFICATE_STRUCTA;
222 typedef const CRYPTUI_VIEWCERTIFICATE_STRUCTA *PCCRYPTUI_VIEWCERTIFICATE_STRUCTA;
223
224 WINBOOL WINAPI CryptUIDlgViewCertificateW(PCCRYPTUI_VIEWCERTIFICATE_STRUCTW pCertViewInfo,WINBOOL *pfPropertiesChanged);
225 WINBOOL WINAPI CryptUIDlgViewCertificateA(PCCRYPTUI_VIEWCERTIFICATE_STRUCTA pCertViewInfo,WINBOOL *pfPropertiesChanged);
226 #ifdef UNICODE
227 #define CryptUIDlgViewCertificate CryptUIDlgViewCertificateW
228 #define PCRYPTUI_VIEWCERTIFICATE_STRUCT PCRYPTUI_VIEWCERTIFICATE_STRUCTW
229 #define CRYPTUI_VIEWCERTIFICATE_STRUCT CRYPTUI_VIEWCERTIFICATE_STRUCTW
230 #define PCCRYPTUI_VIEWCERTIFICATE_STRUCT PCCRYPTUI_VIEWCERTIFICATE_STRUCTW
231 #else
232 #define CryptUIDlgViewCertificate CryptUIDlgViewCertificateA
233 #define PCRYPTUI_VIEWCERTIFICATE_STRUCT PCRYPTUI_VIEWCERTIFICATE_STRUCTA
234 #define CRYPTUI_VIEWCERTIFICATE_STRUCT CRYPTUI_VIEWCERTIFICATE_STRUCTA
235 #define PCCRYPTUI_VIEWCERTIFICATE_STRUCT PCCRYPTUI_VIEWCERTIFICATE_STRUCTA
236 #endif
237
238 #define CRYPTUI_WIZ_EXPORT_CERT_CONTEXT 1
239 #define CRYPTUI_WIZ_EXPORT_CTL_CONTEXT 2
240 #define CRYPTUI_WIZ_EXPORT_CRL_CONTEXT 3
241 #define CRYPTUI_WIZ_EXPORT_CERT_STORE 4
242 #define CRYPTUI_WIZ_EXPORT_CERT_STORE_CERTIFICATES_ONLY 5
243
244 typedef struct _CRYPTUI_WIZ_EXPORT_INFO {
245 DWORD dwSize;
246 LPCWSTR pwszExportFileName;
247 DWORD dwSubjectChoice;
248 __MINGW_EXTENSION union {
249 PCCERT_CONTEXT pCertContext;
250 PCCTL_CONTEXT pCTLContext;
251 PCCRL_CONTEXT pCRLContext;
252 HCERTSTORE hCertStore;
253 };
254 DWORD cStores;
255 HCERTSTORE *rghStores;
256 } CRYPTUI_WIZ_EXPORT_INFO,*PCRYPTUI_WIZ_EXPORT_INFO;
257
258 typedef const CRYPTUI_WIZ_EXPORT_INFO *PCCRYPTUI_WIZ_EXPORT_INFO;
259
260 #define CRYPTUI_WIZ_EXPORT_FORMAT_DER 1
261 #define CRYPTUI_WIZ_EXPORT_FORMAT_PFX 2
262 #define CRYPTUI_WIZ_EXPORT_FORMAT_PKCS7 3
263 #define CRYPTUI_WIZ_EXPORT_FORMAT_BASE64 4
264 #define CRYPTUI_WIZ_EXPORT_FORMAT_SERIALIZED_CERT_STORE 5
265
266 typedef struct _CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO {
267 DWORD dwSize;
268 DWORD dwExportFormat;
269 WINBOOL fExportChain;
270 WINBOOL fExportPrivateKeys;
271 LPCWSTR pwszPassword;
272 WINBOOL fStrongEncryption;
273 } CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO,*PCRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO;
274
275 typedef const CRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO *PCCRYPTUI_WIZ_EXPORT_CERTCONTEXT_INFO;
276
277 WINBOOL WINAPI CryptUIWizExport(DWORD dwFlags,HWND hwndParent,LPCWSTR pwszWizardTitle,PCCRYPTUI_WIZ_EXPORT_INFO pExportInfo,void *pvoid);
278
279 #define CRYPTUI_WIZ_IMPORT_SUBJECT_FILE 1
280 #define CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_CONTEXT 2
281 #define CRYPTUI_WIZ_IMPORT_SUBJECT_CTL_CONTEXT 3
282 #define CRYPTUI_WIZ_IMPORT_SUBJECT_CRL_CONTEXT 4
283 #define CRYPTUI_WIZ_IMPORT_SUBJECT_CERT_STORE 5
284
285 typedef struct _CRYPTUI_WIZ_IMPORT_SUBJECT_INFO {
286 DWORD dwSize;
287 DWORD dwSubjectChoice;
288 __MINGW_EXTENSION union {
289 LPCWSTR pwszFileName;
290 PCCERT_CONTEXT pCertContext;
291 PCCTL_CONTEXT pCTLContext;
292 PCCRL_CONTEXT pCRLContext;
293 HCERTSTORE hCertStore;
294 };
295 DWORD dwFlags;
296 LPCWSTR pwszPassword;
297 } CRYPTUI_WIZ_IMPORT_SRC_INFO,*PCRYPTUI_WIZ_IMPORT_SRC_INFO;
298
299 typedef const CRYPTUI_WIZ_IMPORT_SRC_INFO *PCCRYPTUI_WIZ_IMPORT_SRC_INFO;
300
301 #define CRYPTUI_WIZ_IMPORT_NO_CHANGE_DEST_STORE 0x00010000
302 #define CRYPTUI_WIZ_IMPORT_ALLOW_CERT 0x00020000
303 #define CRYPTUI_WIZ_IMPORT_ALLOW_CRL 0x00040000
304 #define CRYPTUI_WIZ_IMPORT_ALLOW_CTL 0x00080000
305 #define CRYPTUI_WIZ_IMPORT_TO_LOCALMACHINE 0x00100000
306 #define CRYPTUI_WIZ_IMPORT_TO_CURRENTUSER 0x00200000
307 #define CRYPTUI_WIZ_IMPORT_REMOTE_DEST_STORE 0x00400000
308
309 WINBOOL WINAPI CryptUIWizImport(DWORD dwFlags,HWND hwndParent,LPCWSTR pwszWizardTitle,PCCRYPTUI_WIZ_IMPORT_SRC_INFO pImportSrc,HCERTSTORE hDestCertStore);
310
311 #include <poppack.h>
312
313 #ifdef __cplusplus
314 }
315 #endif
316 #endif