| 1 |
/***********************************************************************\ |
|---|
| 2 |
* accctrl.d * |
|---|
| 3 |
* * |
|---|
| 4 |
* Windows API header module * |
|---|
| 5 |
* * |
|---|
| 6 |
* Translated from MinGW Windows headers * |
|---|
| 7 |
* by Stewart Gordon * |
|---|
| 8 |
* * |
|---|
| 9 |
* Placed into public domain * |
|---|
| 10 |
\***********************************************************************/ |
|---|
| 11 |
module win32.accctrl; |
|---|
| 12 |
|
|---|
| 13 |
private import win32.basetyps, win32.w32api, win32.winbase, win32.windef; |
|---|
| 14 |
|
|---|
| 15 |
// FIXME: check types and grouping of constants |
|---|
| 16 |
// FIXME: check Windows version support |
|---|
| 17 |
|
|---|
| 18 |
static assert (_WIN32_WINNT_ONLY, |
|---|
| 19 |
"win32.accctrl is available only if version WindowsNTonly, WindowsXP, " |
|---|
| 20 |
"Windows2003 or WindowsVista is set"); |
|---|
| 21 |
|
|---|
| 22 |
alias LocalFree AccFree; |
|---|
| 23 |
|
|---|
| 24 |
const uint |
|---|
| 25 |
ACTRL_RESERVED = 0x00000000, |
|---|
| 26 |
ACTRL_ACCESS_PROTECTED = 0x00000001, |
|---|
| 27 |
ACTRL_ACCESS_ALLOWED = 0x00000001, |
|---|
| 28 |
ACTRL_ACCESS_DENIED = 0x00000002, |
|---|
| 29 |
ACTRL_AUDIT_SUCCESS = 0x00000004, |
|---|
| 30 |
ACTRL_AUDIT_FAILURE = 0x00000008, |
|---|
| 31 |
ACTRL_SYSTEM_ACCESS = 0x04000000, |
|---|
| 32 |
ACTRL_DELETE = 0x08000000, |
|---|
| 33 |
ACTRL_READ_CONTROL = 0x10000000, |
|---|
| 34 |
ACTRL_CHANGE_ACCESS = 0x20000000, |
|---|
| 35 |
ACTRL_CHANGE_OWNER = 0x40000000, |
|---|
| 36 |
ACTRL_SYNCHRONIZE = 0x80000000, |
|---|
| 37 |
ACTRL_STD_RIGHTS_ALL = 0xf8000000; |
|---|
| 38 |
|
|---|
| 39 |
const uint |
|---|
| 40 |
ACTRL_FILE_READ = 0x00000001, |
|---|
| 41 |
ACTRL_FILE_WRITE = 0x00000002, |
|---|
| 42 |
ACTRL_FILE_APPEND = 0x00000004, |
|---|
| 43 |
ACTRL_FILE_READ_PROP = 0x00000008, |
|---|
| 44 |
ACTRL_FILE_WRITE_PROP = 0x00000010, |
|---|
| 45 |
ACTRL_FILE_EXECUTE = 0x00000020, |
|---|
| 46 |
ACTRL_FILE_READ_ATTRIB = 0x00000080, |
|---|
| 47 |
ACTRL_FILE_WRITE_ATTRIB = 0x00000100, |
|---|
| 48 |
ACTRL_FILE_CREATE_PIPE = 0x00000200; |
|---|
| 49 |
|
|---|
| 50 |
const uint |
|---|
| 51 |
ACTRL_DIR_LIST = 0x00000001, |
|---|
| 52 |
ACTRL_DIR_CREATE_OBJECT = 0x00000002, |
|---|
| 53 |
ACTRL_DIR_CREATE_CHILD = 0x00000004, |
|---|
| 54 |
ACTRL_DIR_DELETE_CHILD = 0x00000040, |
|---|
| 55 |
ACTRL_DIR_TRAVERSE = 0x00000020; |
|---|
| 56 |
|
|---|
| 57 |
const uint |
|---|
| 58 |
ACTRL_KERNEL_TERMINATE = 0x00000001, |
|---|
| 59 |
ACTRL_KERNEL_THREAD = 0x00000002, |
|---|
| 60 |
ACTRL_KERNEL_VM = 0x00000004, |
|---|
| 61 |
ACTRL_KERNEL_VM_READ = 0x00000008, |
|---|
| 62 |
ACTRL_KERNEL_VM_WRITE = 0x00000010, |
|---|
| 63 |
ACTRL_KERNEL_DUP_HANDLE = 0x00000020, |
|---|
| 64 |
ACTRL_KERNEL_PROCESS = 0x00000040, |
|---|
| 65 |
ACTRL_KERNEL_SET_INFO = 0x00000080, |
|---|
| 66 |
ACTRL_KERNEL_GET_INFO = 0x00000100, |
|---|
| 67 |
ACTRL_KERNEL_CONTROL = 0x00000200, |
|---|
| 68 |
ACTRL_KERNEL_ALERT = 0x00000400, |
|---|
| 69 |
ACTRL_KERNEL_GET_CONTEXT = 0x00000800, |
|---|
| 70 |
ACTRL_KERNEL_SET_CONTEXT = 0x00001000, |
|---|
| 71 |
ACTRL_KERNEL_TOKEN = 0x00002000, |
|---|
| 72 |
ACTRL_KERNEL_IMPERSONATE = 0x00004000, |
|---|
| 73 |
ACTRL_KERNEL_DIMPERSONATE = 0x00008000; |
|---|
| 74 |
|
|---|
| 75 |
const uint |
|---|
| 76 |
ACTRL_PRINT_SADMIN = 0x00000001, |
|---|
| 77 |
ACTRL_PRINT_SLIST = 0x00000002, |
|---|
| 78 |
ACTRL_PRINT_PADMIN = 0x00000004, |
|---|
| 79 |
ACTRL_PRINT_PUSE = 0x00000008, |
|---|
| 80 |
ACTRL_PRINT_JADMIN = 0x00000010; |
|---|
| 81 |
|
|---|
| 82 |
const uint |
|---|
| 83 |
ACTRL_SVC_GET_INFO = 0x00000001, |
|---|
| 84 |
ACTRL_SVC_SET_INFO = 0x00000002, |
|---|
| 85 |
ACTRL_SVC_STATUS = 0x00000004, |
|---|
| 86 |
ACTRL_SVC_LIST = 0x00000008, |
|---|
| 87 |
ACTRL_SVC_START = 0x00000010, |
|---|
| 88 |
ACTRL_SVC_STOP = 0x00000020, |
|---|
| 89 |
ACTRL_SVC_PAUSE = 0x00000040, |
|---|
| 90 |
ACTRL_SVC_INTERROGATE = 0x00000080, |
|---|
| 91 |
ACTRL_SVC_UCONTROL = 0x00000100; |
|---|
| 92 |
|
|---|
| 93 |
const uint |
|---|
| 94 |
ACTRL_REG_QUERY = 0x00000001, |
|---|
| 95 |
ACTRL_REG_SET = 0x00000002, |
|---|
| 96 |
ACTRL_REG_CREATE_CHILD = 0x00000004, |
|---|
| 97 |
ACTRL_REG_LIST = 0x00000008, |
|---|
| 98 |
ACTRL_REG_NOTIFY = 0x00000010, |
|---|
| 99 |
ACTRL_REG_LINK = 0x00000020; |
|---|
| 100 |
|
|---|
| 101 |
const uint |
|---|
| 102 |
ACTRL_WIN_CLIPBRD = 0x00000001, |
|---|
| 103 |
ACTRL_WIN_GLOBAL_ATOMS = 0x00000002, |
|---|
| 104 |
ACTRL_WIN_CREATE = 0x00000004, |
|---|
| 105 |
ACTRL_WIN_LIST_DESK = 0x00000008, |
|---|
| 106 |
ACTRL_WIN_LIST = 0x00000010, |
|---|
| 107 |
ACTRL_WIN_READ_ATTRIBS = 0x00000020, |
|---|
| 108 |
ACTRL_WIN_WRITE_ATTRIBS = 0x00000040, |
|---|
| 109 |
ACTRL_WIN_SCREEN = 0x00000080, |
|---|
| 110 |
ACTRL_WIN_EXIT = 0x00000100; |
|---|
| 111 |
|
|---|
| 112 |
enum : uint { |
|---|
| 113 |
ACTRL_ACCESS_NO_OPTIONS = 0x00000000, |
|---|
| 114 |
ACTRL_ACCESS_SUPPORTS_OBJECT_ENTRIES = 0x00000001 |
|---|
| 115 |
} |
|---|
| 116 |
|
|---|
| 117 |
const TCHAR[] ACCCTRL_DEFAULT_PROVIDER = "Windows NT Access Provider"; |
|---|
| 118 |
|
|---|
| 119 |
const uint |
|---|
| 120 |
TRUSTEE_ACCESS_ALLOWED = 0x00000001, |
|---|
| 121 |
TRUSTEE_ACCESS_READ = 0x00000002, |
|---|
| 122 |
TRUSTEE_ACCESS_WRITE = 0x00000004, |
|---|
| 123 |
TRUSTEE_ACCESS_EXPLICIT = 0x00000001, |
|---|
| 124 |
TRUSTEE_ACCESS_READ_WRITE = 0x00000006, |
|---|
| 125 |
TRUSTEE_ACCESS_ALL = 0xFFFFFFFF; |
|---|
| 126 |
|
|---|
| 127 |
const uint |
|---|
| 128 |
NO_INHERITANCE = 0x0, |
|---|
| 129 |
SUB_OBJECTS_ONLY_INHERIT = 0x1, |
|---|
| 130 |
SUB_CONTAINERS_ONLY_INHERIT = 0x2, |
|---|
| 131 |
SUB_CONTAINERS_AND_OBJECTS_INHERIT = 0x3, |
|---|
| 132 |
INHERIT_NO_PROPAGATE = 0x4, |
|---|
| 133 |
INHERIT_ONLY = 0x8, |
|---|
| 134 |
INHERITED_ACCESS_ENTRY = 0x10, |
|---|
| 135 |
INHERITED_PARENT = 0x10000000, |
|---|
| 136 |
INHERITED_GRANDPARENT = 0x20000000; |
|---|
| 137 |
|
|---|
| 138 |
alias ULONG INHERIT_FLAGS, ACCESS_RIGHTS; |
|---|
| 139 |
alias ULONG* PINHERIT_FLAGS, PACCESS_RIGHTS; |
|---|
| 140 |
|
|---|
| 141 |
enum ACCESS_MODE { |
|---|
| 142 |
NOT_USED_ACCESS, |
|---|
| 143 |
GRANT_ACCESS, |
|---|
| 144 |
SET_ACCESS, |
|---|
| 145 |
DENY_ACCESS, |
|---|
| 146 |
REVOKE_ACCESS, |
|---|
| 147 |
SET_AUDIT_SUCCESS, |
|---|
| 148 |
SET_AUDIT_FAILURE |
|---|
| 149 |
} |
|---|
| 150 |
|
|---|
| 151 |
enum SE_OBJECT_TYPE { |
|---|
| 152 |
SE_UNKNOWN_OBJECT_TYPE, |
|---|
| 153 |
SE_FILE_OBJECT, |
|---|
| 154 |
SE_SERVICE, |
|---|
| 155 |
SE_PRINTER, |
|---|
| 156 |
SE_REGISTRY_KEY, |
|---|
| 157 |
SE_LMSHARE, |
|---|
| 158 |
SE_KERNEL_OBJECT, |
|---|
| 159 |
SE_WINDOW_OBJECT, |
|---|
| 160 |
SE_DS_OBJECT, |
|---|
| 161 |
SE_DS_OBJECT_ALL, |
|---|
| 162 |
SE_PROVIDER_DEFINED_OBJECT, |
|---|
| 163 |
SE_WMIGUID_OBJECT, |
|---|
| 164 |
SE_REGISTRY_WOW64_32KEY |
|---|
| 165 |
} |
|---|
| 166 |
|
|---|
| 167 |
enum TRUSTEE_TYPE { |
|---|
| 168 |
TRUSTEE_IS_UNKNOWN, |
|---|
| 169 |
TRUSTEE_IS_USER, |
|---|
| 170 |
TRUSTEE_IS_GROUP, |
|---|
| 171 |
TRUSTEE_IS_DOMAIN, |
|---|
| 172 |
TRUSTEE_IS_ALIAS, |
|---|
| 173 |
TRUSTEE_IS_WELL_KNOWN_GROUP, |
|---|
| 174 |
TRUSTEE_IS_DELETED, |
|---|
| 175 |
TRUSTEE_IS_INVALID, |
|---|
| 176 |
TRUSTEE_IS_COMPUTER |
|---|
| 177 |
} |
|---|
| 178 |
|
|---|
| 179 |
enum TRUSTEE_FORM { |
|---|
| 180 |
TRUSTEE_IS_SID, |
|---|
| 181 |
TRUSTEE_IS_NAME, |
|---|
| 182 |
TRUSTEE_BAD_FORM, |
|---|
| 183 |
TRUSTEE_IS_OBJECTS_AND_SID, |
|---|
| 184 |
TRUSTEE_IS_OBJECTS_AND_NAME |
|---|
| 185 |
} |
|---|
| 186 |
|
|---|
| 187 |
enum MULTIPLE_TRUSTEE_OPERATION { |
|---|
| 188 |
NO_MULTIPLE_TRUSTEE, |
|---|
| 189 |
TRUSTEE_IS_IMPERSONATE |
|---|
| 190 |
} |
|---|
| 191 |
|
|---|
| 192 |
struct TRUSTEE_A { |
|---|
| 193 |
TRUSTEE_A* pMultipleTrustee; |
|---|
| 194 |
MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation; |
|---|
| 195 |
TRUSTEE_FORM TrusteeForm; |
|---|
| 196 |
TRUSTEE_TYPE TrusteeType; |
|---|
| 197 |
LPSTR ptstrName; |
|---|
| 198 |
} |
|---|
| 199 |
alias TRUSTEE_A TRUSTEEA; |
|---|
| 200 |
alias TRUSTEE_A* PTRUSTEE_A, PTRUSTEEA; |
|---|
| 201 |
|
|---|
| 202 |
struct TRUSTEE_W { |
|---|
| 203 |
TRUSTEE_W* pMultipleTrustee; |
|---|
| 204 |
MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation; |
|---|
| 205 |
TRUSTEE_FORM TrusteeForm; |
|---|
| 206 |
TRUSTEE_TYPE TrusteeType; |
|---|
| 207 |
LPWSTR ptstrName; |
|---|
| 208 |
} |
|---|
| 209 |
alias TRUSTEE_W TRUSTEEW; |
|---|
| 210 |
alias TRUSTEEW* PTRUSTEE_W, PTRUSTEEW; |
|---|
| 211 |
|
|---|
| 212 |
struct ACTRL_ACCESS_ENTRYA { |
|---|
| 213 |
TRUSTEE_A Trustee; |
|---|
| 214 |
ULONG fAccessFlags; |
|---|
| 215 |
ACCESS_RIGHTS Access; |
|---|
| 216 |
ACCESS_RIGHTS ProvSpecificAccess; |
|---|
| 217 |
INHERIT_FLAGS Inheritance; |
|---|
| 218 |
LPCSTR lpInheritProperty; |
|---|
| 219 |
} |
|---|
| 220 |
alias ACTRL_ACCESS_ENTRYA* PACTRL_ACCESS_ENTRYA; |
|---|
| 221 |
|
|---|
| 222 |
struct ACTRL_ACCESS_ENTRYW { |
|---|
| 223 |
TRUSTEE_W Trustee; |
|---|
| 224 |
ULONG fAccessFlags; |
|---|
| 225 |
ACCESS_RIGHTS Access; |
|---|
| 226 |
ACCESS_RIGHTS ProvSpecificAccess; |
|---|
| 227 |
INHERIT_FLAGS Inheritance; |
|---|
| 228 |
LPCWSTR lpInheritProperty; |
|---|
| 229 |
} |
|---|
| 230 |
alias ACTRL_ACCESS_ENTRYW* PACTRL_ACCESS_ENTRYW; |
|---|
| 231 |
|
|---|
| 232 |
struct ACTRL_ACCESS_ENTRY_LISTA { |
|---|
| 233 |
ULONG cEntries; |
|---|
| 234 |
ACTRL_ACCESS_ENTRYA* pAccessList; |
|---|
| 235 |
} |
|---|
| 236 |
alias ACTRL_ACCESS_ENTRY_LISTA* PACTRL_ACCESS_ENTRY_LISTA; |
|---|
| 237 |
|
|---|
| 238 |
struct ACTRL_ACCESS_ENTRY_LISTW { |
|---|
| 239 |
ULONG cEntries; |
|---|
| 240 |
ACTRL_ACCESS_ENTRYW* pAccessList; |
|---|
| 241 |
} |
|---|
| 242 |
alias ACTRL_ACCESS_ENTRY_LISTW* PACTRL_ACCESS_ENTRY_LISTW; |
|---|
| 243 |
|
|---|
| 244 |
struct ACTRL_PROPERTY_ENTRYA { |
|---|
| 245 |
LPCSTR lpProperty; |
|---|
| 246 |
PACTRL_ACCESS_ENTRY_LISTA pAccessEntryList; |
|---|
| 247 |
ULONG fListFlags; |
|---|
| 248 |
} |
|---|
| 249 |
alias ACTRL_PROPERTY_ENTRYA* PACTRL_PROPERTY_ENTRYA; |
|---|
| 250 |
|
|---|
| 251 |
struct ACTRL_PROPERTY_ENTRYW { |
|---|
| 252 |
LPCWSTR lpProperty; |
|---|
| 253 |
PACTRL_ACCESS_ENTRY_LISTW pAccessEntryList; |
|---|
| 254 |
ULONG fListFlags; |
|---|
| 255 |
} |
|---|
| 256 |
alias ACTRL_PROPERTY_ENTRYW* PACTRL_PROPERTY_ENTRYW; |
|---|
| 257 |
|
|---|
| 258 |
struct ACTRL_ACCESSA { |
|---|
| 259 |
ULONG cEntries; |
|---|
| 260 |
PACTRL_PROPERTY_ENTRYA pPropertyAccessList; |
|---|
| 261 |
} |
|---|
| 262 |
alias ACTRL_ACCESSA ACTRL_AUDITA; |
|---|
| 263 |
alias ACTRL_ACCESSA* PACTRL_ACCESSA, PACTRL_AUDITA; |
|---|
| 264 |
|
|---|
| 265 |
struct ACTRL_ACCESSW { |
|---|
| 266 |
ULONG cEntries; |
|---|
| 267 |
PACTRL_PROPERTY_ENTRYW pPropertyAccessList; |
|---|
| 268 |
} |
|---|
| 269 |
alias ACTRL_ACCESSW ACTRL_AUDITW; |
|---|
| 270 |
alias ACTRL_ACCESSW* PACTRL_ACCESSW, PACTRL_AUDITW; |
|---|
| 271 |
|
|---|
| 272 |
struct TRUSTEE_ACCESSA { |
|---|
| 273 |
LPSTR lpProperty; |
|---|
| 274 |
ACCESS_RIGHTS Access; |
|---|
| 275 |
ULONG fAccessFlags; |
|---|
| 276 |
ULONG fReturnedAccess; |
|---|
| 277 |
} |
|---|
| 278 |
alias TRUSTEE_ACCESSA* PTRUSTEE_ACCESSA; |
|---|
| 279 |
|
|---|
| 280 |
struct TRUSTEE_ACCESSW { |
|---|
| 281 |
LPWSTR lpProperty; |
|---|
| 282 |
ACCESS_RIGHTS Access; |
|---|
| 283 |
ULONG fAccessFlags; |
|---|
| 284 |
ULONG fReturnedAccess; |
|---|
| 285 |
} |
|---|
| 286 |
alias TRUSTEE_ACCESSW* PTRUSTEE_ACCESSW; |
|---|
| 287 |
|
|---|
| 288 |
struct ACTRL_OVERLAPPED { |
|---|
| 289 |
union { |
|---|
| 290 |
PVOID Provider; |
|---|
| 291 |
ULONG Reserved1; |
|---|
| 292 |
} |
|---|
| 293 |
ULONG Reserved2; |
|---|
| 294 |
HANDLE hEvent; |
|---|
| 295 |
} |
|---|
| 296 |
alias ACTRL_OVERLAPPED* PACTRL_OVERLAPPED; |
|---|
| 297 |
|
|---|
| 298 |
struct ACTRL_ACCESS_INFOA { |
|---|
| 299 |
ULONG fAccessPermission; |
|---|
| 300 |
LPSTR lpAccessPermissionName; |
|---|
| 301 |
} |
|---|
| 302 |
alias ACTRL_ACCESS_INFOA* PACTRL_ACCESS_INFOA; |
|---|
| 303 |
|
|---|
| 304 |
struct ACTRL_ACCESS_INFOW { |
|---|
| 305 |
ULONG fAccessPermission; |
|---|
| 306 |
LPWSTR lpAccessPermissionName; |
|---|
| 307 |
} |
|---|
| 308 |
alias ACTRL_ACCESS_INFOW* PACTRL_ACCESS_INFOW; |
|---|
| 309 |
|
|---|
| 310 |
struct ACTRL_CONTROL_INFOA { |
|---|
| 311 |
LPSTR lpControlId; |
|---|
| 312 |
LPSTR lpControlName; |
|---|
| 313 |
} |
|---|
| 314 |
alias ACTRL_CONTROL_INFOA* PACTRL_CONTROL_INFOA; |
|---|
| 315 |
|
|---|
| 316 |
struct ACTRL_CONTROL_INFOW { |
|---|
| 317 |
LPWSTR lpControlId; |
|---|
| 318 |
LPWSTR lpControlName; |
|---|
| 319 |
} |
|---|
| 320 |
alias ACTRL_CONTROL_INFOW* PACTRL_CONTROL_INFOW; |
|---|
| 321 |
|
|---|
| 322 |
struct EXPLICIT_ACCESS_A { |
|---|
| 323 |
DWORD grfAccessPermissions; |
|---|
| 324 |
ACCESS_MODE grfAccessMode; |
|---|
| 325 |
DWORD grfInheritance; |
|---|
| 326 |
TRUSTEE_A Trustee; |
|---|
| 327 |
} |
|---|
| 328 |
alias EXPLICIT_ACCESS_A EXPLICIT_ACCESSA; |
|---|
| 329 |
alias EXPLICIT_ACCESS_A* PEXPLICIT_ACCESS_A, PEXPLICIT_ACCESSA; |
|---|
| 330 |
|
|---|
| 331 |
struct EXPLICIT_ACCESS_W { |
|---|
| 332 |
DWORD grfAccessPermissions; |
|---|
| 333 |
ACCESS_MODE grfAccessMode; |
|---|
| 334 |
DWORD grfInheritance; |
|---|
| 335 |
TRUSTEE_W Trustee; |
|---|
| 336 |
} |
|---|
| 337 |
alias EXPLICIT_ACCESS_W EXPLICIT_ACCESSW; |
|---|
| 338 |
alias EXPLICIT_ACCESS_W* PEXPLICIT_ACCESS_W, PEXPLICIT_ACCESSW; |
|---|
| 339 |
|
|---|
| 340 |
struct OBJECTS_AND_SID { |
|---|
| 341 |
DWORD ObjectsPresent; |
|---|
| 342 |
GUID ObjectTypeGuid; |
|---|
| 343 |
GUID InheritedObjectTypeGuid; |
|---|
| 344 |
SID* pSid; |
|---|
| 345 |
} |
|---|
| 346 |
alias OBJECTS_AND_SID* POBJECTS_AND_SID; |
|---|
| 347 |
|
|---|
| 348 |
struct OBJECTS_AND_NAME_A { |
|---|
| 349 |
DWORD ObjectsPresent; |
|---|
| 350 |
SE_OBJECT_TYPE ObjectType; |
|---|
| 351 |
LPSTR ObjectTypeName; |
|---|
| 352 |
LPSTR InheritedObjectTypeName; |
|---|
| 353 |
LPSTR ptstrName; |
|---|
| 354 |
} |
|---|
| 355 |
alias OBJECTS_AND_NAME_A* POBJECTS_AND_NAME_A; |
|---|
| 356 |
|
|---|
| 357 |
struct OBJECTS_AND_NAME_W { |
|---|
| 358 |
DWORD ObjectsPresent; |
|---|
| 359 |
SE_OBJECT_TYPE ObjectType; |
|---|
| 360 |
LPWSTR ObjectTypeName; |
|---|
| 361 |
LPWSTR InheritedObjectTypeName; |
|---|
| 362 |
LPWSTR ptstrName; |
|---|
| 363 |
} |
|---|
| 364 |
alias OBJECTS_AND_NAME_W* POBJECTS_AND_NAME_W; |
|---|
| 365 |
|
|---|
| 366 |
static if (WINVER >= 0x501) { |
|---|
| 367 |
struct INHERITED_FROMA { |
|---|
| 368 |
LONG GenerationGap; |
|---|
| 369 |
LPSTR AncestorName; |
|---|
| 370 |
} |
|---|
| 371 |
alias INHERITED_FROMA* PINHERITED_FROMA; |
|---|
| 372 |
|
|---|
| 373 |
struct INHERITED_FROMW { |
|---|
| 374 |
LONG GenerationGap; |
|---|
| 375 |
LPWSTR AncestorName; |
|---|
| 376 |
} |
|---|
| 377 |
alias INHERITED_FROMW* PINHERITED_FROMW; |
|---|
| 378 |
} |
|---|
| 379 |
|
|---|
| 380 |
version (Unicode) { |
|---|
| 381 |
alias TRUSTEEW TRUSTEE; |
|---|
| 382 |
alias ACTRL_ACCESSW ACTRL_ACCESS; |
|---|
| 383 |
alias ACTRL_ACCESS_ENTRY_LISTW ACTRL_ACCESS_ENTRY_LIST; |
|---|
| 384 |
alias ACTRL_ACCESS_INFOW ACTRL_ACCESS_INFO; |
|---|
| 385 |
alias ACTRL_ACCESS_ENTRYW ACTRL_ACCESS_ENTRY; |
|---|
| 386 |
alias ACTRL_AUDITW ACTRL_AUDIT; |
|---|
| 387 |
alias ACTRL_CONTROL_INFOW ACTRL_CONTROL_INFO; |
|---|
| 388 |
alias EXPLICIT_ACCESSW EXPLICIT_ACCESS; |
|---|
| 389 |
alias TRUSTEE_ACCESSW TRUSTEE_ACCESS; |
|---|
| 390 |
alias OBJECTS_AND_NAME_W OBJECTS_AND_NAME_; |
|---|
| 391 |
static if (WINVER >= 0x501) { |
|---|
| 392 |
alias INHERITED_FROMW INHERITED_FROM; |
|---|
| 393 |
} |
|---|
| 394 |
} else { |
|---|
| 395 |
alias TRUSTEEA TRUSTEE; |
|---|
| 396 |
alias ACTRL_ACCESSA ACTRL_ACCESS; |
|---|
| 397 |
alias ACTRL_ACCESS_ENTRY_LISTA ACTRL_ACCESS_ENTRY_LIST; |
|---|
| 398 |
alias ACTRL_ACCESS_INFOA ACTRL_ACCESS_INFO; |
|---|
| 399 |
alias ACTRL_ACCESS_ENTRYA ACTRL_ACCESS_ENTRY; |
|---|
| 400 |
alias ACTRL_AUDITA ACTRL_AUDIT; |
|---|
| 401 |
alias ACTRL_CONTROL_INFOA ACTRL_CONTROL_INFO; |
|---|
| 402 |
alias EXPLICIT_ACCESSA EXPLICIT_ACCESS; |
|---|
| 403 |
alias TRUSTEE_ACCESSA TRUSTEE_ACCESS; |
|---|
| 404 |
alias OBJECTS_AND_NAME_A OBJECTS_AND_NAME_; |
|---|
| 405 |
static if (WINVER >= 0x501) { |
|---|
| 406 |
alias INHERITED_FROMA INHERITED_FROM; |
|---|
| 407 |
} |
|---|
| 408 |
} |
|---|
| 409 |
|
|---|
| 410 |
alias TRUSTEE TRUSTEE_; |
|---|
| 411 |
alias TRUSTEE* PTRUSTEE, PTRUSTEE_; |
|---|
| 412 |
alias ACTRL_ACCESS* PACTRL_ACCESS; |
|---|
| 413 |
alias ACTRL_ACCESS_ENTRY_LIST* PACTRL_ACCESS_ENTRY_LIST; |
|---|
| 414 |
alias ACTRL_ACCESS_INFO* PACTRL_ACCESS_INFO; |
|---|
| 415 |
alias ACTRL_ACCESS_ENTRY* PACTRL_ACCESS_ENTRY; |
|---|
| 416 |
alias ACTRL_AUDIT* PACTRL_AUDIT; |
|---|
| 417 |
alias ACTRL_CONTROL_INFO* PACTRL_CONTROL_INFO; |
|---|
| 418 |
alias EXPLICIT_ACCESS EXPLICIT_ACCESS_; |
|---|
| 419 |
alias EXPLICIT_ACCESS* PEXPLICIT_ACCESS, PEXPLICIT_ACCESS_; |
|---|
| 420 |
alias TRUSTEE_ACCESS* PTRUSTEE_ACCESS; |
|---|
| 421 |
alias OBJECTS_AND_NAME_* POBJECTS_AND_NAME_; |
|---|
| 422 |
static if (WINVER >= 0x501) { |
|---|
| 423 |
alias INHERITED_FROM* PINHERITED_FROM; |
|---|
| 424 |
} |
|---|