File Annotation

Not logged in
4e2933c620 2015-04-21        kinaba: /***********************************************************************\
4e2933c620 2015-04-21        kinaba: *                                aclui.d                                *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Windows API header module                       *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *             Translated from MinGW API for MS-Windows 3.10             *
4e2933c620 2015-04-21        kinaba: *                           by Stewart Gordon                           *
4e2933c620 2015-04-21        kinaba: *                                                                       *
4e2933c620 2015-04-21        kinaba: *                       Placed into public domain                       *
4e2933c620 2015-04-21        kinaba: \***********************************************************************/
4e2933c620 2015-04-21        kinaba: module win32.aclui;
9b639cf2d6 2015-05-05        kinaba: pragma(lib, "aclui");
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: private import win32.w32api;
4e2933c620 2015-04-21        kinaba: 
9b639cf2d6 2015-05-05        kinaba: static assert (_WIN32_WINNT >= 0x500,
9b639cf2d6 2015-05-05        kinaba: 	"win32.aclui is available only if version Windows2000, WindowsXP, Windows2003 "
9b639cf2d6 2015-05-05        kinaba: 	"or WindowsVista is set");
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: import win32.accctrl, win32.commctrl, win32.objbase;
4e2933c620 2015-04-21        kinaba: private import win32.basetyps, win32.prsht, win32.unknwn, win32.windef,
4e2933c620 2015-04-21        kinaba:   win32.winuser;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SI_OBJECT_INFO {
4e2933c620 2015-04-21        kinaba: 	DWORD     dwFlags;
4e2933c620 2015-04-21        kinaba: 	HINSTANCE hInstance;
4e2933c620 2015-04-21        kinaba: 	LPWSTR    pszServerName;
4e2933c620 2015-04-21        kinaba: 	LPWSTR    pszObjectName;
4e2933c620 2015-04-21        kinaba: 	LPWSTR    pszPageTitle;
4e2933c620 2015-04-21        kinaba: 	GUID      guidObjectType;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SI_OBJECT_INFO* PSI_OBJECT_INFO;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // values for SI_OBJECT_INFO.dwFlags
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	SI_EDIT_PERMS               = 0x00000000,
4e2933c620 2015-04-21        kinaba: 	SI_EDIT_OWNER               = 0x00000001,
4e2933c620 2015-04-21        kinaba: 	SI_EDIT_AUDITS              = 0x00000002,
4e2933c620 2015-04-21        kinaba: 	SI_CONTAINER                = 0x00000004,
4e2933c620 2015-04-21        kinaba: 	SI_READONLY                 = 0x00000008,
4e2933c620 2015-04-21        kinaba: 	SI_ADVANCED                 = 0x00000010,
4e2933c620 2015-04-21        kinaba: 	SI_RESET                    = 0x00000020,
4e2933c620 2015-04-21        kinaba: 	SI_OWNER_READONLY           = 0x00000040,
4e2933c620 2015-04-21        kinaba: 	SI_EDIT_PROPERTIES          = 0x00000080,
4e2933c620 2015-04-21        kinaba: 	SI_OWNER_RECURSE            = 0x00000100,
4e2933c620 2015-04-21        kinaba: 	SI_NO_ACL_PROTECT           = 0x00000200,
4e2933c620 2015-04-21        kinaba: 	SI_NO_TREE_APPLY            = 0x00000400,
4e2933c620 2015-04-21        kinaba: 	SI_PAGE_TITLE               = 0x00000800,
4e2933c620 2015-04-21        kinaba: 	SI_SERVER_IS_DC             = 0x00001000,
4e2933c620 2015-04-21        kinaba: 	SI_RESET_DACL_TREE          = 0x00004000,
4e2933c620 2015-04-21        kinaba: 	SI_RESET_SACL_TREE          = 0x00008000,
4e2933c620 2015-04-21        kinaba: 	SI_OBJECT_GUID              = 0x00010000,
4e2933c620 2015-04-21        kinaba: 	SI_EDIT_EFFECTIVE           = 0x00020000,
4e2933c620 2015-04-21        kinaba: 	SI_RESET_DACL               = 0x00040000,
4e2933c620 2015-04-21        kinaba: 	SI_RESET_SACL               = 0x00080000,
4e2933c620 2015-04-21        kinaba: 	SI_RESET_OWNER              = 0x00100000,
4e2933c620 2015-04-21        kinaba: 	SI_NO_ADDITIONAL_PERMISSION = 0x00200000,
4e2933c620 2015-04-21        kinaba: 	SI_MAY_WRITE                = 0x10000000,
4e2933c620 2015-04-21        kinaba: 	SI_EDIT_ALL                 = SI_EDIT_PERMS | SI_EDIT_OWNER
4e2933c620 2015-04-21        kinaba: 	                              | SI_EDIT_AUDITS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SI_ACCESS {
9b639cf2d6 2015-05-05        kinaba: 	const(GUID)* pguid;
9b639cf2d6 2015-05-05        kinaba: 	ACCESS_MASK  mask;
9b639cf2d6 2015-05-05        kinaba: 	LPCWSTR      pszName;
9b639cf2d6 2015-05-05        kinaba: 	DWORD        dwFlags;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SI_ACCESS* PSI_ACCESS;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // values for SI_ACCESS.dwFlags
4e2933c620 2015-04-21        kinaba: const DWORD
4e2933c620 2015-04-21        kinaba: 	SI_ACCESS_SPECIFIC  = 0x00010000,
4e2933c620 2015-04-21        kinaba: 	SI_ACCESS_GENERAL   = 0x00020000,
4e2933c620 2015-04-21        kinaba: 	SI_ACCESS_CONTAINER = 0x00040000,
4e2933c620 2015-04-21        kinaba: 	SI_ACCESS_PROPERTY  = 0x00080000;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: struct SI_INHERIT_TYPE {
9b639cf2d6 2015-05-05        kinaba: 	const(GUID)* pguid;
9b639cf2d6 2015-05-05        kinaba: 	ULONG        dwFlags;
9b639cf2d6 2015-05-05        kinaba: 	LPCWSTR      pszName;
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: alias SI_INHERIT_TYPE* PSI_INHERIT_TYPE;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: /* values for SI_INHERIT_TYPE.dwFlags
4e2933c620 2015-04-21        kinaba:    INHERIT_ONLY_ACE, CONTAINER_INHERIT_ACE, OBJECT_INHERIT_ACE
4e2933c620 2015-04-21        kinaba:    defined elsewhere */
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: enum SI_PAGE_TYPE {
4e2933c620 2015-04-21        kinaba: 	SI_PAGE_PERM,
4e2933c620 2015-04-21        kinaba: 	SI_PAGE_ADVPERM,
4e2933c620 2015-04-21        kinaba: 	SI_PAGE_AUDIT,
4e2933c620 2015-04-21        kinaba: 	SI_PAGE_OWNER
4e2933c620 2015-04-21        kinaba: }
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: const uint PSPCB_SI_INITDIALOG = WM_USER + 1;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: interface ISecurityInformation : IUnknown {
4e2933c620 2015-04-21        kinaba: 	HRESULT GetObjectInformation(PSI_OBJECT_INFO);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR*, BOOL);
4e2933c620 2015-04-21        kinaba: 	HRESULT SetSecurity(SECURITY_INFORMATION, PSECURITY_DESCRIPTOR);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT GetAccessRights(const(GUID)*, DWORD, PSI_ACCESS*, ULONG*, ULONG*);
9b639cf2d6 2015-05-05        kinaba: 	HRESULT MapGeneric(const(GUID)*, UCHAR*, ACCESS_MASK*);
4e2933c620 2015-04-21        kinaba: 	HRESULT GetInheritTypes(PSI_INHERIT_TYPE*, ULONG*);
4e2933c620 2015-04-21        kinaba: 	HRESULT PropertySheetPageCallback(HWND, UINT, SI_PAGE_TYPE);
4e2933c620 2015-04-21        kinaba: }
9b639cf2d6 2015-05-05        kinaba: alias ISecurityInformation LPSECURITYINFO;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: /* Comment from MinGW
4e2933c620 2015-04-21        kinaba:  * TODO: ISecurityInformation2, IEffectivePermission, ISecurityObjectTypeInfo
4e2933c620 2015-04-21        kinaba:  */
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: // FIXME: linkage attribute?
4e2933c620 2015-04-21        kinaba: extern (C) /+DECLSPEC_IMPORT+/ extern const IID IID_ISecurityInformation;
4e2933c620 2015-04-21        kinaba: 
4e2933c620 2015-04-21        kinaba: extern (Windows) {
4e2933c620 2015-04-21        kinaba: 	HPROPSHEETPAGE CreateSecurityPage(LPSECURITYINFO psi);
4e2933c620 2015-04-21        kinaba: 	BOOL EditSecurity(HWND hwndOwner, LPSECURITYINFO psi);
4e2933c620 2015-04-21        kinaba: }