Wolfgang Thallergcc16 merge934c3885 months agoHistory
422 lines · 12.4 KB · D
RawDownload
/** * Windows API header module * * Translated from MinGW Windows headers * * Authors: Stewart Gordon * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost License 1.0) * Source: $(DRUNTIMESRC core/sys/windows/_accctrl.d) */module core.sys.windows.accctrl;version (Windows): version (ANSI) {} else version = Unicode; import core.sys.windows.basetyps, core.sys.windows.w32api, core.sys.windows.winbase, core.sys.windows.windef; // FIXME: check types and grouping of constants// FIXME: check Windows version support alias AccFree = LocalFree; enum uint    ACTRL_RESERVED            = 0x00000000,    ACTRL_ACCESS_PROTECTED    = 0x00000001,    ACTRL_ACCESS_ALLOWED      = 0x00000001,    ACTRL_ACCESS_DENIED       = 0x00000002,    ACTRL_AUDIT_SUCCESS       = 0x00000004,    ACTRL_AUDIT_FAILURE       = 0x00000008,    ACTRL_SYSTEM_ACCESS       = 0x04000000,    ACTRL_DELETE              = 0x08000000,    ACTRL_READ_CONTROL        = 0x10000000,    ACTRL_CHANGE_ACCESS       = 0x20000000,    ACTRL_CHANGE_OWNER        = 0x40000000,    ACTRL_SYNCHRONIZE         = 0x80000000,    ACTRL_STD_RIGHTS_ALL      = 0xf8000000; enum uint    ACTRL_FILE_READ           = 0x00000001,    ACTRL_FILE_WRITE          = 0x00000002,    ACTRL_FILE_APPEND         = 0x00000004,    ACTRL_FILE_READ_PROP      = 0x00000008,    ACTRL_FILE_WRITE_PROP     = 0x00000010,    ACTRL_FILE_EXECUTE        = 0x00000020,    ACTRL_FILE_READ_ATTRIB    = 0x00000080,    ACTRL_FILE_WRITE_ATTRIB   = 0x00000100,    ACTRL_FILE_CREATE_PIPE    = 0x00000200; enum uint    ACTRL_DIR_LIST            = 0x00000001,    ACTRL_DIR_CREATE_OBJECT   = 0x00000002,    ACTRL_DIR_CREATE_CHILD    = 0x00000004,    ACTRL_DIR_DELETE_CHILD    = 0x00000040,    ACTRL_DIR_TRAVERSE        = 0x00000020; enum uint    ACTRL_KERNEL_TERMINATE    = 0x00000001,    ACTRL_KERNEL_THREAD       = 0x00000002,    ACTRL_KERNEL_VM           = 0x00000004,    ACTRL_KERNEL_VM_READ      = 0x00000008,    ACTRL_KERNEL_VM_WRITE     = 0x00000010,    ACTRL_KERNEL_DUP_HANDLE   = 0x00000020,    ACTRL_KERNEL_PROCESS      = 0x00000040,    ACTRL_KERNEL_SET_INFO     = 0x00000080,    ACTRL_KERNEL_GET_INFO     = 0x00000100,    ACTRL_KERNEL_CONTROL      = 0x00000200,    ACTRL_KERNEL_ALERT        = 0x00000400,    ACTRL_KERNEL_GET_CONTEXT  = 0x00000800,    ACTRL_KERNEL_SET_CONTEXT  = 0x00001000,    ACTRL_KERNEL_TOKEN        = 0x00002000,    ACTRL_KERNEL_IMPERSONATE  = 0x00004000,    ACTRL_KERNEL_DIMPERSONATE = 0x00008000; enum uint    ACTRL_PRINT_SADMIN        = 0x00000001,    ACTRL_PRINT_SLIST         = 0x00000002,    ACTRL_PRINT_PADMIN        = 0x00000004,    ACTRL_PRINT_PUSE          = 0x00000008,    ACTRL_PRINT_JADMIN        = 0x00000010; enum uint    ACTRL_SVC_GET_INFO        = 0x00000001,    ACTRL_SVC_SET_INFO        = 0x00000002,    ACTRL_SVC_STATUS          = 0x00000004,    ACTRL_SVC_LIST            = 0x00000008,    ACTRL_SVC_START           = 0x00000010,    ACTRL_SVC_STOP            = 0x00000020,    ACTRL_SVC_PAUSE           = 0x00000040,    ACTRL_SVC_INTERROGATE     = 0x00000080,    ACTRL_SVC_UCONTROL        = 0x00000100; enum uint    ACTRL_REG_QUERY           = 0x00000001,    ACTRL_REG_SET             = 0x00000002,    ACTRL_REG_CREATE_CHILD    = 0x00000004,    ACTRL_REG_LIST            = 0x00000008,    ACTRL_REG_NOTIFY          = 0x00000010,    ACTRL_REG_LINK            = 0x00000020; enum uint    ACTRL_WIN_CLIPBRD         = 0x00000001,    ACTRL_WIN_GLOBAL_ATOMS    = 0x00000002,    ACTRL_WIN_CREATE          = 0x00000004,    ACTRL_WIN_LIST_DESK       = 0x00000008,    ACTRL_WIN_LIST            = 0x00000010,    ACTRL_WIN_READ_ATTRIBS    = 0x00000020,    ACTRL_WIN_WRITE_ATTRIBS   = 0x00000040,    ACTRL_WIN_SCREEN          = 0x00000080,    ACTRL_WIN_EXIT            = 0x00000100; enum : uint {    ACTRL_ACCESS_NO_OPTIONS              = 0x00000000,    ACTRL_ACCESS_SUPPORTS_OBJECT_ENTRIES = 0x00000001} const TCHAR[] ACCCTRL_DEFAULT_PROVIDER = "Windows NT Access Provider"; enum uint    TRUSTEE_ACCESS_ALLOWED    = 0x00000001,    TRUSTEE_ACCESS_READ       = 0x00000002,    TRUSTEE_ACCESS_WRITE      = 0x00000004,    TRUSTEE_ACCESS_EXPLICIT   = 0x00000001,    TRUSTEE_ACCESS_READ_WRITE = 0x00000006,    TRUSTEE_ACCESS_ALL        = 0xFFFFFFFF; enum uint    NO_INHERITANCE                     = 0x0,    SUB_OBJECTS_ONLY_INHERIT           = 0x1,    SUB_CONTAINERS_ONLY_INHERIT        = 0x2,    SUB_CONTAINERS_AND_OBJECTS_INHERIT = 0x3,    INHERIT_NO_PROPAGATE               = 0x4,    INHERIT_ONLY                       = 0x8,    INHERITED_ACCESS_ENTRY             = 0x10,    INHERITED_PARENT                   = 0x10000000,    INHERITED_GRANDPARENT              = 0x20000000; alias INHERIT_FLAGS = ULONG, ACCESS_RIGHTS = ULONG;alias PINHERIT_FLAGS = ULONG*, PACCESS_RIGHTS = ULONG*; enum ACCESS_MODE {    NOT_USED_ACCESS,    GRANT_ACCESS,    SET_ACCESS,    DENY_ACCESS,    REVOKE_ACCESS,    SET_AUDIT_SUCCESS,    SET_AUDIT_FAILURE} enum SE_OBJECT_TYPE {    SE_UNKNOWN_OBJECT_TYPE,    SE_FILE_OBJECT,    SE_SERVICE,    SE_PRINTER,    SE_REGISTRY_KEY,    SE_LMSHARE,    SE_KERNEL_OBJECT,    SE_WINDOW_OBJECT,    SE_DS_OBJECT,    SE_DS_OBJECT_ALL,    SE_PROVIDER_DEFINED_OBJECT,    SE_WMIGUID_OBJECT,    SE_REGISTRY_WOW64_32KEY} enum TRUSTEE_TYPE {    TRUSTEE_IS_UNKNOWN,    TRUSTEE_IS_USER,    TRUSTEE_IS_GROUP,    TRUSTEE_IS_DOMAIN,    TRUSTEE_IS_ALIAS,    TRUSTEE_IS_WELL_KNOWN_GROUP,    TRUSTEE_IS_DELETED,    TRUSTEE_IS_INVALID,    TRUSTEE_IS_COMPUTER} enum TRUSTEE_FORM {    TRUSTEE_IS_SID,    TRUSTEE_IS_NAME,    TRUSTEE_BAD_FORM,    TRUSTEE_IS_OBJECTS_AND_SID,    TRUSTEE_IS_OBJECTS_AND_NAME} enum MULTIPLE_TRUSTEE_OPERATION {    NO_MULTIPLE_TRUSTEE,    TRUSTEE_IS_IMPERSONATE} struct TRUSTEE_A {    TRUSTEE_A*                 pMultipleTrustee;    MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;    TRUSTEE_FORM               TrusteeForm;    TRUSTEE_TYPE               TrusteeType;    LPSTR                      ptstrName;}alias TRUSTEEA = TRUSTEE_A;alias PTRUSTEE_A = TRUSTEE_A*, PTRUSTEEA = TRUSTEE_A*; struct TRUSTEE_W {    TRUSTEE_W*                 pMultipleTrustee;    MULTIPLE_TRUSTEE_OPERATION MultipleTrusteeOperation;    TRUSTEE_FORM               TrusteeForm;    TRUSTEE_TYPE               TrusteeType;    LPWSTR                     ptstrName;}alias TRUSTEEW = TRUSTEE_W;alias PTRUSTEE_W = TRUSTEEW*, PTRUSTEEW = TRUSTEEW*; struct ACTRL_ACCESS_ENTRYA {    TRUSTEE_A     Trustee;    ULONG         fAccessFlags;    ACCESS_RIGHTS Access;    ACCESS_RIGHTS ProvSpecificAccess;    INHERIT_FLAGS Inheritance;    LPCSTR        lpInheritProperty;}alias PACTRL_ACCESS_ENTRYA = ACTRL_ACCESS_ENTRYA*; struct ACTRL_ACCESS_ENTRYW {    TRUSTEE_W     Trustee;    ULONG         fAccessFlags;    ACCESS_RIGHTS Access;    ACCESS_RIGHTS ProvSpecificAccess;    INHERIT_FLAGS Inheritance;    LPCWSTR       lpInheritProperty;}alias PACTRL_ACCESS_ENTRYW = ACTRL_ACCESS_ENTRYW*; struct ACTRL_ACCESS_ENTRY_LISTA {    ULONG                cEntries;    ACTRL_ACCESS_ENTRYA* pAccessList;}alias PACTRL_ACCESS_ENTRY_LISTA = ACTRL_ACCESS_ENTRY_LISTA*; struct ACTRL_ACCESS_ENTRY_LISTW {    ULONG                cEntries;    ACTRL_ACCESS_ENTRYW* pAccessList;}alias PACTRL_ACCESS_ENTRY_LISTW = ACTRL_ACCESS_ENTRY_LISTW*; struct ACTRL_PROPERTY_ENTRYA {    LPCSTR                    lpProperty;    PACTRL_ACCESS_ENTRY_LISTA pAccessEntryList;    ULONG                     fListFlags;}alias PACTRL_PROPERTY_ENTRYA = ACTRL_PROPERTY_ENTRYA*; struct ACTRL_PROPERTY_ENTRYW {    LPCWSTR                   lpProperty;    PACTRL_ACCESS_ENTRY_LISTW pAccessEntryList;    ULONG                     fListFlags;}alias PACTRL_PROPERTY_ENTRYW = ACTRL_PROPERTY_ENTRYW*; struct ACTRL_ACCESSA {    ULONG                  cEntries;    PACTRL_PROPERTY_ENTRYA pPropertyAccessList;}alias ACTRL_AUDITA = ACTRL_ACCESSA;alias PACTRL_ACCESSA = ACTRL_ACCESSA*, PACTRL_AUDITA = ACTRL_ACCESSA*; struct ACTRL_ACCESSW {    ULONG                  cEntries;    PACTRL_PROPERTY_ENTRYW pPropertyAccessList;}alias ACTRL_AUDITW = ACTRL_ACCESSW;alias PACTRL_ACCESSW = ACTRL_ACCESSW*, PACTRL_AUDITW = ACTRL_ACCESSW*; struct TRUSTEE_ACCESSA {    LPSTR         lpProperty;    ACCESS_RIGHTS Access;    ULONG         fAccessFlags;    ULONG         fReturnedAccess;}alias PTRUSTEE_ACCESSA = TRUSTEE_ACCESSA*; struct TRUSTEE_ACCESSW {    LPWSTR        lpProperty;    ACCESS_RIGHTS Access;    ULONG         fAccessFlags;    ULONG         fReturnedAccess;}alias PTRUSTEE_ACCESSW = TRUSTEE_ACCESSW*; struct ACTRL_OVERLAPPED {    union {        PVOID Provider;        ULONG Reserved1;    }    ULONG     Reserved2;    HANDLE    hEvent;}alias PACTRL_OVERLAPPED = ACTRL_OVERLAPPED*; struct ACTRL_ACCESS_INFOA {    ULONG fAccessPermission;    LPSTR lpAccessPermissionName;}alias PACTRL_ACCESS_INFOA = ACTRL_ACCESS_INFOA*; struct ACTRL_ACCESS_INFOW {    ULONG  fAccessPermission;    LPWSTR lpAccessPermissionName;}alias PACTRL_ACCESS_INFOW = ACTRL_ACCESS_INFOW*; struct ACTRL_CONTROL_INFOA {    LPSTR lpControlId;    LPSTR lpControlName;}alias PACTRL_CONTROL_INFOA = ACTRL_CONTROL_INFOA*; struct ACTRL_CONTROL_INFOW {    LPWSTR lpControlId;    LPWSTR lpControlName;}alias PACTRL_CONTROL_INFOW = ACTRL_CONTROL_INFOW*; struct EXPLICIT_ACCESS_A {    DWORD       grfAccessPermissions;    ACCESS_MODE grfAccessMode;    DWORD       grfInheritance;    TRUSTEE_A   Trustee;}alias EXPLICIT_ACCESSA = EXPLICIT_ACCESS_A;alias PEXPLICIT_ACCESS_A = EXPLICIT_ACCESS_A*, PEXPLICIT_ACCESSA = EXPLICIT_ACCESS_A*; struct EXPLICIT_ACCESS_W {    DWORD       grfAccessPermissions;    ACCESS_MODE grfAccessMode;    DWORD       grfInheritance;    TRUSTEE_W   Trustee;}alias EXPLICIT_ACCESSW = EXPLICIT_ACCESS_W;alias PEXPLICIT_ACCESS_W = EXPLICIT_ACCESS_W*, PEXPLICIT_ACCESSW = EXPLICIT_ACCESS_W*; struct OBJECTS_AND_SID {    DWORD ObjectsPresent;    GUID  ObjectTypeGuid;    GUID  InheritedObjectTypeGuid;    SID*  pSid;}alias POBJECTS_AND_SID = OBJECTS_AND_SID*; struct OBJECTS_AND_NAME_A {    DWORD          ObjectsPresent;    SE_OBJECT_TYPE ObjectType;    LPSTR          ObjectTypeName;    LPSTR          InheritedObjectTypeName;    LPSTR          ptstrName;}alias POBJECTS_AND_NAME_A = OBJECTS_AND_NAME_A*; struct OBJECTS_AND_NAME_W {    DWORD          ObjectsPresent;    SE_OBJECT_TYPE ObjectType;    LPWSTR         ObjectTypeName;    LPWSTR         InheritedObjectTypeName;    LPWSTR         ptstrName;}alias POBJECTS_AND_NAME_W = OBJECTS_AND_NAME_W*; static if (_WIN32_WINNT >= 0x501) {    struct INHERITED_FROMA {        LONG  GenerationGap;        LPSTR AncestorName;    }    alias PINHERITED_FROMA = INHERITED_FROMA*;     struct INHERITED_FROMW {        LONG   GenerationGap;        LPWSTR AncestorName;    }    alias PINHERITED_FROMW = INHERITED_FROMW*;} version (Unicode) {    alias TRUSTEE = TRUSTEEW;    alias ACTRL_ACCESS = ACTRL_ACCESSW;    alias ACTRL_ACCESS_ENTRY_LIST = ACTRL_ACCESS_ENTRY_LISTW;    alias ACTRL_ACCESS_INFO = ACTRL_ACCESS_INFOW;    alias ACTRL_ACCESS_ENTRY = ACTRL_ACCESS_ENTRYW;    alias ACTRL_AUDIT = ACTRL_AUDITW;    alias ACTRL_CONTROL_INFO = ACTRL_CONTROL_INFOW;    alias EXPLICIT_ACCESS = EXPLICIT_ACCESSW;    alias TRUSTEE_ACCESS = TRUSTEE_ACCESSW;    alias OBJECTS_AND_NAME_ = OBJECTS_AND_NAME_W;    static if (_WIN32_WINNT >= 0x501) {        alias INHERITED_FROM = INHERITED_FROMW;    }} else {    alias TRUSTEE = TRUSTEEA;    alias ACTRL_ACCESS = ACTRL_ACCESSA;    alias ACTRL_ACCESS_ENTRY_LIST = ACTRL_ACCESS_ENTRY_LISTA;    alias ACTRL_ACCESS_INFO = ACTRL_ACCESS_INFOA;    alias ACTRL_ACCESS_ENTRY = ACTRL_ACCESS_ENTRYA;    alias ACTRL_AUDIT = ACTRL_AUDITA;    alias ACTRL_CONTROL_INFO = ACTRL_CONTROL_INFOA;    alias EXPLICIT_ACCESS = EXPLICIT_ACCESSA;    alias TRUSTEE_ACCESS = TRUSTEE_ACCESSA;    alias OBJECTS_AND_NAME_ = OBJECTS_AND_NAME_A;    static if (_WIN32_WINNT >= 0x501) {        alias INHERITED_FROM = INHERITED_FROMA;    }} alias TRUSTEE_ = TRUSTEE;alias PTRUSTEE = TRUSTEE*, PTRUSTEE_ = TRUSTEE*;alias PACTRL_ACCESS = ACTRL_ACCESS*;alias PACTRL_ACCESS_ENTRY_LIST = ACTRL_ACCESS_ENTRY_LIST*;alias PACTRL_ACCESS_INFO = ACTRL_ACCESS_INFO*;alias PACTRL_ACCESS_ENTRY = ACTRL_ACCESS_ENTRY*;alias PACTRL_AUDIT = ACTRL_AUDIT*;alias PACTRL_CONTROL_INFO = ACTRL_CONTROL_INFO*;alias EXPLICIT_ACCESS_ = EXPLICIT_ACCESS;alias PEXPLICIT_ACCESS = EXPLICIT_ACCESS*, PEXPLICIT_ACCESS_ = EXPLICIT_ACCESS*;alias PTRUSTEE_ACCESS = TRUSTEE_ACCESS*;alias POBJECTS_AND_NAME_ = OBJECTS_AND_NAME_*;static if (_WIN32_WINNT >= 0x501) {    alias PINHERITED_FROM = INHERITED_FROM*;}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t