comparison fuhtark_test/include/winapi/accctrl.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 __ACCESS_CONTROL__
7 #define __ACCESS_CONTROL__
8
9 #include <wtypes.h>
10
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14
15 #define AccFree LocalFree
16
17 typedef enum _SE_OBJECT_TYPE {
18 SE_UNKNOWN_OBJECT_TYPE = 0,
19 SE_FILE_OBJECT,SE_SERVICE,
20 SE_PRINTER,SE_REGISTRY_KEY,
21 SE_LMSHARE,SE_KERNEL_OBJECT,
22 SE_WINDOW_OBJECT,
23 SE_DS_OBJECT,
24 SE_DS_OBJECT_ALL,
25 SE_PROVIDER_DEFINED_OBJECT,
26 SE_WMIGUID_OBJECT,
27 SE_REGISTRY_WOW64_32KEY
28 } SE_OBJECT_TYPE;
29
30 typedef enum _TRUSTEE_TYPE {
31 TRUSTEE_IS_UNKNOWN,
32 TRUSTEE_IS_USER,
33 TRUSTEE_IS_GROUP,
34 TRUSTEE_IS_DOMAIN,
35 TRUSTEE_IS_ALIAS,
36 TRUSTEE_IS_WELL_KNOWN_GROUP,
37 TRUSTEE_IS_DELETED,
38 TRUSTEE_IS_INVALID,
39 TRUSTEE_IS_COMPUTER
40 } TRUSTEE_TYPE;
41
42 typedef enum _TRUSTEE_FORM {
43 TRUSTEE_IS_SID,
44 TRUSTEE_IS_NAME,
45 TRUSTEE_BAD_FORM,
46 TRUSTEE_IS_OBJECTS_AND_SID,
47 TRUSTEE_IS_OBJECTS_AND_NAME
48 } TRUSTEE_FORM;
49
50 typedef enum _MULTIPLE_TRUSTEE_OPERATION {
51 NO_MULTIPLE_TRUSTEE,
52 TRUSTEE_IS_IMPERSONATE
53 } MULTIPLE_TRUSTEE_OPERATION;
54
55 typedef struct _OBJECTS_AND_SID {
56 DWORD ObjectsPresent;
57 GUID ObjectTypeGuid;
58 GUID InheritedObjectTypeGuid;
59 SID *pSid;
60 } OBJECTS_AND_SID,*POBJECTS_AND_SID;
61
62 typedef struct _OBJECTS_AND_NAME_A {
63 DWORD ObjectsPresent;
64 SE_OBJECT_TYPE ObjectType;
65 LPSTR ObjectTypeName;
66 LPSTR InheritedObjectTypeName;
67 LPSTR ptstrName;
68 } OBJECTS_AND_NAME_A,*POBJECTS_AND_NAME_A;
69
70 typedef struct _OBJECTS_AND_NAME_W {
71 DWORD ObjectsPresent;
72 SE_OBJECT_TYPE ObjectType;
73 LPWSTR ObjectTypeName;
74 LPWSTR InheritedObjectTypeName;
75 LPWSTR ptstrName;
76 } OBJECTS_AND_NAME_W,*POBJECTS_AND_NAME_W;
77
78 #ifdef UNICODE
79 typedef OBJECTS_AND_NAME_W OBJECTS_AND_NAME_;
80 typedef POBJECTS_AND_NAME_W POBJECTS_AND_NAME_;
81 #else
82 typedef OBJECTS_AND_NAME_A OBJECTS_AND_NAME_;
83 typedef POBJECTS_AND_NAME_A POBJECTS_AND_NAME_;
84 #endif
85
86 typedef struct _TRUSTEE_A {
87 struct _TRUSTEE_A *pMultipleTrustee;
88 MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;
89 TRUSTEE_FORM TrusteeForm;
90 TRUSTEE_TYPE TrusteeType;
91 LPSTR ptstrName;
92 } TRUSTEE_A,*PTRUSTEE_A,TRUSTEEA,*PTRUSTEEA;
93
94 typedef struct _TRUSTEE_W {
95 struct _TRUSTEE_W *pMultipleTrustee;
96 MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;
97 TRUSTEE_FORM TrusteeForm;
98 TRUSTEE_TYPE TrusteeType;
99 LPWSTR ptstrName;
100 } TRUSTEE_W,*PTRUSTEE_W,TRUSTEEW,*PTRUSTEEW;
101
102 #ifdef UNICODE
103 typedef TRUSTEE_W TRUSTEE_;
104 typedef PTRUSTEE_W PTRUSTEE_;
105 typedef TRUSTEEW TRUSTEE;
106 typedef PTRUSTEEW PTRUSTEE;
107 #else
108 typedef TRUSTEE_A TRUSTEE_;
109 typedef PTRUSTEE_A PTRUSTEE_;
110 typedef TRUSTEEA TRUSTEE;
111 typedef PTRUSTEEA PTRUSTEE;
112 #endif
113
114 typedef enum _ACCESS_MODE {
115 NOT_USED_ACCESS = 0,
116 GRANT_ACCESS,SET_ACCESS,
117 DENY_ACCESS,REVOKE_ACCESS,SET_AUDIT_SUCCESS,
118 SET_AUDIT_FAILURE
119 } ACCESS_MODE;
120
121 #define NO_INHERITANCE 0x0
122 #define SUB_OBJECTS_ONLY_INHERIT 0x1
123 #define SUB_CONTAINERS_ONLY_INHERIT 0x2
124 #define SUB_CONTAINERS_AND_OBJECTS_INHERIT 0x3
125 #define INHERIT_NO_PROPAGATE 0x4
126 #define INHERIT_ONLY 0x8
127 #define INHERITED_ACCESS_ENTRY 0x10
128
129 #define INHERITED_PARENT 0x10000000
130 #define INHERITED_GRANDPARENT 0x20000000
131
132 typedef struct _EXPLICIT_ACCESS_A {
133 DWORD grfAccessPermissions;
134 ACCESS_MODE grfAccessMode;
135 DWORD grfInheritance;
136 TRUSTEE_A Trustee;
137 } EXPLICIT_ACCESS_A,*PEXPLICIT_ACCESS_A,EXPLICIT_ACCESSA,*PEXPLICIT_ACCESSA;
138
139 typedef struct _EXPLICIT_ACCESS_W {
140 DWORD grfAccessPermissions;
141 ACCESS_MODE grfAccessMode;
142 DWORD grfInheritance;
143 TRUSTEE_W Trustee;
144 } EXPLICIT_ACCESS_W,*PEXPLICIT_ACCESS_W,EXPLICIT_ACCESSW,*PEXPLICIT_ACCESSW;
145
146 #ifdef UNICODE
147 typedef EXPLICIT_ACCESS_W EXPLICIT_ACCESS_;
148 typedef PEXPLICIT_ACCESS_W PEXPLICIT_ACCESS_;
149 typedef EXPLICIT_ACCESSW EXPLICIT_ACCESS;
150 typedef PEXPLICIT_ACCESSW PEXPLICIT_ACCESS;
151 #else
152 typedef EXPLICIT_ACCESS_A EXPLICIT_ACCESS_;
153 typedef PEXPLICIT_ACCESS_A PEXPLICIT_ACCESS_;
154 typedef EXPLICIT_ACCESSA EXPLICIT_ACCESS;
155 typedef PEXPLICIT_ACCESSA PEXPLICIT_ACCESS;
156 #endif
157
158 #define ACCCTRL_DEFAULT_PROVIDERA "Windows NT Access Provider"
159 #define ACCCTRL_DEFAULT_PROVIDERW L"Windows NT Access Provider"
160
161 #ifdef UNICODE
162 #define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERW
163 #else
164 #define ACCCTRL_DEFAULT_PROVIDER ACCCTRL_DEFAULT_PROVIDERA
165 #endif
166
167 typedef ULONG ACCESS_RIGHTS,*PACCESS_RIGHTS;
168 typedef ULONG INHERIT_FLAGS,*PINHERIT_FLAGS;
169
170 typedef struct _ACTRL_ACCESS_ENTRYA {
171 TRUSTEE_A Trustee;
172 ULONG fAccessFlags;
173 ACCESS_RIGHTS Access;
174 ACCESS_RIGHTS ProvSpecificAccess;
175 INHERIT_FLAGS Inheritance;
176 LPSTR lpInheritProperty;
177 } ACTRL_ACCESS_ENTRYA,*PACTRL_ACCESS_ENTRYA;
178
179 typedef struct _ACTRL_ACCESS_ENTRYW {
180 TRUSTEE_W Trustee;
181 ULONG fAccessFlags;
182 ACCESS_RIGHTS Access;
183 ACCESS_RIGHTS ProvSpecificAccess;
184 INHERIT_FLAGS Inheritance;
185 LPWSTR lpInheritProperty;
186 } ACTRL_ACCESS_ENTRYW,*PACTRL_ACCESS_ENTRYW;
187
188 #ifdef UNICODE
189 typedef ACTRL_ACCESS_ENTRYW ACTRL_ACCESS_ENTRY;
190 typedef PACTRL_ACCESS_ENTRYW PACTRL_ACCESS_ENTRY;
191 #else
192 typedef ACTRL_ACCESS_ENTRYA ACTRL_ACCESS_ENTRY;
193 typedef PACTRL_ACCESS_ENTRYA PACTRL_ACCESS_ENTRY;
194 #endif
195
196 typedef struct _ACTRL_ACCESS_ENTRY_LISTA {
197 ULONG cEntries;
198 ACTRL_ACCESS_ENTRYA *pAccessList;
199 } ACTRL_ACCESS_ENTRY_LISTA,*PACTRL_ACCESS_ENTRY_LISTA;
200
201 typedef struct _ACTRL_ACCESS_ENTRY_LISTW {
202 ULONG cEntries;
203 ACTRL_ACCESS_ENTRYW *pAccessList;
204 } ACTRL_ACCESS_ENTRY_LISTW,*PACTRL_ACCESS_ENTRY_LISTW;
205
206 #ifdef UNICODE
207 typedef ACTRL_ACCESS_ENTRY_LISTW ACTRL_ACCESS_ENTRY_LIST;
208 typedef PACTRL_ACCESS_ENTRY_LISTW PACTRL_ACCESS_ENTRY_LIST;
209 #else
210 typedef ACTRL_ACCESS_ENTRY_LISTA ACTRL_ACCESS_ENTRY_LIST;
211 typedef PACTRL_ACCESS_ENTRY_LISTA PACTRL_ACCESS_ENTRY_LIST;
212 #endif
213
214 typedef struct _ACTRL_PROPERTY_ENTRYA {
215 LPSTR lpProperty;
216 PACTRL_ACCESS_ENTRY_LISTA pAccessEntryList;
217 ULONG fListFlags;
218 } ACTRL_PROPERTY_ENTRYA,*PACTRL_PROPERTY_ENTRYA;
219
220 typedef struct _ACTRL_PROPERTY_ENTRYW {
221 LPWSTR lpProperty;
222 PACTRL_ACCESS_ENTRY_LISTW pAccessEntryList;
223 ULONG fListFlags;
224 } ACTRL_PROPERTY_ENTRYW,*PACTRL_PROPERTY_ENTRYW;
225
226 #ifdef UNICODE
227 typedef ACTRL_PROPERTY_ENTRYW ACTRL_PROPERTY_ENTRY;
228 typedef PACTRL_PROPERTY_ENTRYW PACTRL_PROPERTY_ENTRY;
229 #else
230 typedef ACTRL_PROPERTY_ENTRYA ACTRL_PROPERTY_ENTRY;
231 typedef PACTRL_PROPERTY_ENTRYA PACTRL_PROPERTY_ENTRY;
232 #endif
233
234 typedef struct _ACTRL_ALISTA {
235 ULONG cEntries;
236 PACTRL_PROPERTY_ENTRYA pPropertyAccessList;
237 } ACTRL_ACCESSA,*PACTRL_ACCESSA,ACTRL_AUDITA,*PACTRL_AUDITA;
238
239 typedef struct _ACTRL_ALISTW {
240 ULONG cEntries;
241 PACTRL_PROPERTY_ENTRYW pPropertyAccessList;
242 } ACTRL_ACCESSW,*PACTRL_ACCESSW,ACTRL_AUDITW,*PACTRL_AUDITW;
243
244 #ifdef UNICODE
245 typedef ACTRL_ACCESSW ACTRL_ACCESS;
246 typedef PACTRL_ACCESSW PACTRL_ACCESS;
247 typedef ACTRL_AUDITW ACTRL_AUDIT;
248 typedef PACTRL_AUDITW PACTRL_AUDIT;
249 #else
250 typedef ACTRL_ACCESSA ACTRL_ACCESS;
251 typedef PACTRL_ACCESSA PACTRL_ACCESS;
252 typedef ACTRL_AUDITA ACTRL_AUDIT;
253 typedef PACTRL_AUDITA PACTRL_AUDIT;
254 #endif
255
256 #define TRUSTEE_ACCESS_ALLOWED 0x00000001L
257 #define TRUSTEE_ACCESS_READ 0x00000002L
258 #define TRUSTEE_ACCESS_WRITE 0x00000004L
259
260 #define TRUSTEE_ACCESS_EXPLICIT 0x00000001L
261 #define TRUSTEE_ACCESS_READ_WRITE (TRUSTEE_ACCESS_READ | TRUSTEE_ACCESS_WRITE)
262
263 #define TRUSTEE_ACCESS_ALL 0xFFFFFFFFL
264
265 typedef struct _TRUSTEE_ACCESSA {
266 LPSTR lpProperty;
267 ACCESS_RIGHTS Access;
268 ULONG fAccessFlags;
269 ULONG fReturnedAccess;
270 } TRUSTEE_ACCESSA,*PTRUSTEE_ACCESSA;
271
272 typedef struct _TRUSTEE_ACCESSW {
273 LPWSTR lpProperty;
274 ACCESS_RIGHTS Access;
275 ULONG fAccessFlags;
276 ULONG fReturnedAccess;
277 } TRUSTEE_ACCESSW,*PTRUSTEE_ACCESSW;
278
279 #ifdef UNICODE
280 typedef TRUSTEE_ACCESSW TRUSTEE_ACCESS;
281 typedef PTRUSTEE_ACCESSW PTRUSTEE_ACCESS;
282 #else
283 typedef TRUSTEE_ACCESSA TRUSTEE_ACCESS;
284 typedef PTRUSTEE_ACCESSA PTRUSTEE_ACCESS;
285 #endif
286
287 #define ACTRL_RESERVED 0x00000000
288 #define ACTRL_PERM_1 0x00000001
289 #define ACTRL_PERM_2 0x00000002
290 #define ACTRL_PERM_3 0x00000004
291 #define ACTRL_PERM_4 0x00000008
292 #define ACTRL_PERM_5 0x00000010
293 #define ACTRL_PERM_6 0x00000020
294 #define ACTRL_PERM_7 0x00000040
295 #define ACTRL_PERM_8 0x00000080
296 #define ACTRL_PERM_9 0x00000100
297 #define ACTRL_PERM_10 0x00000200
298 #define ACTRL_PERM_11 0x00000400
299 #define ACTRL_PERM_12 0x00000800
300 #define ACTRL_PERM_13 0x00001000
301 #define ACTRL_PERM_14 0x00002000
302 #define ACTRL_PERM_15 0x00004000
303 #define ACTRL_PERM_16 0x00008000
304 #define ACTRL_PERM_17 0x00010000
305 #define ACTRL_PERM_18 0x00020000
306 #define ACTRL_PERM_19 0x00040000
307 #define ACTRL_PERM_20 0x00080000
308
309 #define ACTRL_ACCESS_ALLOWED 0x00000001
310 #define ACTRL_ACCESS_DENIED 0x00000002
311 #define ACTRL_AUDIT_SUCCESS 0x00000004
312 #define ACTRL_AUDIT_FAILURE 0x00000008
313
314 #define ACTRL_ACCESS_PROTECTED 0x00000001
315
316 #define ACTRL_SYSTEM_ACCESS 0x04000000
317 #define ACTRL_DELETE 0x08000000
318 #define ACTRL_READ_CONTROL 0x10000000
319 #define ACTRL_CHANGE_ACCESS 0x20000000
320 #define ACTRL_CHANGE_OWNER 0x40000000
321 #define ACTRL_SYNCHRONIZE 0x80000000
322 #define ACTRL_STD_RIGHTS_ALL 0xf8000000
323 #define ACTRL_STD_RIGHT_REQUIRED (ACTRL_STD_RIGHTS_ALL & ~ACTRL_SYNCHRONIZE)
324
325 #ifndef _DS_CONTROL_BITS_DEFINED_
326 #define _DS_CONTROL_BITS_DEFINED_
327 #define ACTRL_DS_OPEN ACTRL_RESERVED
328 #define ACTRL_DS_CREATE_CHILD ACTRL_PERM_1
329 #define ACTRL_DS_DELETE_CHILD ACTRL_PERM_2
330 #define ACTRL_DS_LIST ACTRL_PERM_3
331 #define ACTRL_DS_SELF ACTRL_PERM_4
332 #define ACTRL_DS_READ_PROP ACTRL_PERM_5
333 #define ACTRL_DS_WRITE_PROP ACTRL_PERM_6
334 #define ACTRL_DS_DELETE_TREE ACTRL_PERM_7
335 #define ACTRL_DS_LIST_OBJECT ACTRL_PERM_8
336 #define ACTRL_DS_CONTROL_ACCESS ACTRL_PERM_9
337 #endif
338
339 #define ACTRL_FILE_READ ACTRL_PERM_1
340 #define ACTRL_FILE_WRITE ACTRL_PERM_2
341 #define ACTRL_FILE_APPEND ACTRL_PERM_3
342 #define ACTRL_FILE_READ_PROP ACTRL_PERM_4
343 #define ACTRL_FILE_WRITE_PROP ACTRL_PERM_5
344 #define ACTRL_FILE_EXECUTE ACTRL_PERM_6
345 #define ACTRL_FILE_READ_ATTRIB ACTRL_PERM_8
346 #define ACTRL_FILE_WRITE_ATTRIB ACTRL_PERM_9
347 #define ACTRL_FILE_CREATE_PIPE ACTRL_PERM_10
348 #define ACTRL_DIR_LIST ACTRL_PERM_1
349 #define ACTRL_DIR_CREATE_OBJECT ACTRL_PERM_2
350 #define ACTRL_DIR_CREATE_CHILD ACTRL_PERM_3
351 #define ACTRL_DIR_DELETE_CHILD ACTRL_PERM_7
352 #define ACTRL_DIR_TRAVERSE ACTRL_PERM_6
353 #define ACTRL_KERNEL_TERMINATE ACTRL_PERM_1
354 #define ACTRL_KERNEL_THREAD ACTRL_PERM_2
355 #define ACTRL_KERNEL_VM ACTRL_PERM_3
356 #define ACTRL_KERNEL_VM_READ ACTRL_PERM_4
357 #define ACTRL_KERNEL_VM_WRITE ACTRL_PERM_5
358 #define ACTRL_KERNEL_DUP_HANDLE ACTRL_PERM_6
359 #define ACTRL_KERNEL_PROCESS ACTRL_PERM_7
360 #define ACTRL_KERNEL_SET_INFO ACTRL_PERM_8
361 #define ACTRL_KERNEL_GET_INFO ACTRL_PERM_9
362 #define ACTRL_KERNEL_CONTROL ACTRL_PERM_10
363 #define ACTRL_KERNEL_ALERT ACTRL_PERM_11
364 #define ACTRL_KERNEL_GET_CONTEXT ACTRL_PERM_12
365 #define ACTRL_KERNEL_SET_CONTEXT ACTRL_PERM_13
366 #define ACTRL_KERNEL_TOKEN ACTRL_PERM_14
367 #define ACTRL_KERNEL_IMPERSONATE ACTRL_PERM_15
368 #define ACTRL_KERNEL_DIMPERSONATE ACTRL_PERM_16
369 #define ACTRL_PRINT_SADMIN ACTRL_PERM_1
370 #define ACTRL_PRINT_SLIST ACTRL_PERM_2
371 #define ACTRL_PRINT_PADMIN ACTRL_PERM_3
372 #define ACTRL_PRINT_PUSE ACTRL_PERM_4
373 #define ACTRL_PRINT_JADMIN ACTRL_PERM_5
374 #define ACTRL_SVC_GET_INFO ACTRL_PERM_1
375 #define ACTRL_SVC_SET_INFO ACTRL_PERM_2
376 #define ACTRL_SVC_STATUS ACTRL_PERM_3
377 #define ACTRL_SVC_LIST ACTRL_PERM_4
378 #define ACTRL_SVC_START ACTRL_PERM_5
379 #define ACTRL_SVC_STOP ACTRL_PERM_6
380 #define ACTRL_SVC_PAUSE ACTRL_PERM_7
381 #define ACTRL_SVC_INTERROGATE ACTRL_PERM_8
382 #define ACTRL_SVC_UCONTROL ACTRL_PERM_9
383 #define ACTRL_REG_QUERY ACTRL_PERM_1
384 #define ACTRL_REG_SET ACTRL_PERM_2
385 #define ACTRL_REG_CREATE_CHILD ACTRL_PERM_3
386 #define ACTRL_REG_LIST ACTRL_PERM_4
387 #define ACTRL_REG_NOTIFY ACTRL_PERM_5
388 #define ACTRL_REG_LINK ACTRL_PERM_6
389 #define ACTRL_WIN_CLIPBRD ACTRL_PERM_1
390 #define ACTRL_WIN_GLOBAL_ATOMS ACTRL_PERM_2
391 #define ACTRL_WIN_CREATE ACTRL_PERM_3
392 #define ACTRL_WIN_LIST_DESK ACTRL_PERM_4
393 #define ACTRL_WIN_LIST ACTRL_PERM_5
394 #define ACTRL_WIN_READ_ATTRIBS ACTRL_PERM_6
395 #define ACTRL_WIN_WRITE_ATTRIBS ACTRL_PERM_7
396 #define ACTRL_WIN_SCREEN ACTRL_PERM_8
397 #define ACTRL_WIN_EXIT ACTRL_PERM_9
398
399 typedef struct _ACTRL_OVERLAPPED {
400 __MINGW_EXTENSION union {
401 PVOID Provider;
402 ULONG Reserved1;
403 };
404 ULONG Reserved2;
405 HANDLE hEvent;
406 } ACTRL_OVERLAPPED,*PACTRL_OVERLAPPED;
407
408 typedef struct _ACTRL_ACCESS_INFOA {
409 ULONG fAccessPermission;
410 LPSTR lpAccessPermissionName;
411 } ACTRL_ACCESS_INFOA,*PACTRL_ACCESS_INFOA;
412
413 typedef struct _ACTRL_ACCESS_INFOW {
414 ULONG fAccessPermission;
415 LPWSTR lpAccessPermissionName;
416 } ACTRL_ACCESS_INFOW,*PACTRL_ACCESS_INFOW;
417
418 #ifdef UNICODE
419 typedef ACTRL_ACCESS_INFOW ACTRL_ACCESS_INFO;
420 typedef PACTRL_ACCESS_INFOW PACTRL_ACCESS_INFO;
421 #else
422 typedef ACTRL_ACCESS_INFOA ACTRL_ACCESS_INFO;
423 typedef PACTRL_ACCESS_INFOA PACTRL_ACCESS_INFO;
424 #endif
425
426 typedef struct _ACTRL_CONTROL_INFOA {
427 LPSTR lpControlId;
428 LPSTR lpControlName;
429 } ACTRL_CONTROL_INFOA,*PACTRL_CONTROL_INFOA;
430
431 typedef struct _ACTRL_CONTROL_INFOW {
432 LPWSTR lpControlId;
433 LPWSTR lpControlName;
434 } ACTRL_CONTROL_INFOW,*PACTRL_CONTROL_INFOW;
435
436 #ifdef UNICODE
437 typedef ACTRL_CONTROL_INFOW ACTRL_CONTROL_INFO;
438 typedef PACTRL_CONTROL_INFOW PACTRL_CONTROL_INFO;
439 #else
440 typedef ACTRL_CONTROL_INFOA ACTRL_CONTROL_INFO;
441 typedef PACTRL_CONTROL_INFOA PACTRL_CONTROL_INFO;
442 #endif
443
444 #define ACTRL_ACCESS_NO_OPTIONS 0x00000000
445 #define ACTRL_ACCESS_SUPPORTS_OBJECT_ENTRIES 0x00000001
446
447 typedef enum _PROGRESS_INVOKE_SETTING {
448 ProgressInvokeNever = 1,ProgressInvokeEveryObject,ProgressInvokeOnError,ProgressCancelOperation,ProgressRetryOperation
449 } PROG_INVOKE_SETTING,*PPROG_INVOKE_SETTING;
450
451 typedef struct _FN_OBJECT_MGR_FUNCTIONS {
452 ULONG Placeholder;
453 } FN_OBJECT_MGR_FUNCTS,*PFN_OBJECT_MGR_FUNCTS;
454
455 typedef struct _INHERITED_FROMA {
456 LONG GenerationGap;
457 LPSTR AncestorName;
458 } INHERITED_FROMA,*PINHERITED_FROMA;
459
460 typedef struct _INHERITED_FROMW {
461 LONG GenerationGap;
462 LPWSTR AncestorName;
463 } INHERITED_FROMW,*PINHERITED_FROMW;
464
465 #ifdef UNICODE
466 typedef INHERITED_FROMW INHERITED_FROM;
467 typedef PINHERITED_FROMW PINHERITED_FROM;
468 #else
469 typedef INHERITED_FROMA INHERITED_FROM;
470 typedef PINHERITED_FROMA PINHERITED_FROM;
471 #endif
472
473 #ifdef __cplusplus
474 }
475 #endif
476 #endif