209 lines
5.9 KiB
Plaintext
209 lines
5.9 KiB
Plaintext
//---------------------------------------------------------------------------
|
|
//
|
|
// Microsoft Windows
|
|
// Copyright (C) Microsoft Corporation, 1996
|
|
//
|
|
// File: user.odl
|
|
//
|
|
// Contents: User Interfaces
|
|
//
|
|
//----------------------------------------------------------------------------
|
|
|
|
|
|
[ uuid(OLEDS_IID_IADsAccessControlEntry), oleautomation, dual]
|
|
interface IADsAccessControlEntry: IDispatch
|
|
{
|
|
PROPERTY_LONG_RW(AccessMask, 2)
|
|
|
|
PROPERTY_LONG_RW(AceType, 3)
|
|
|
|
PROPERTY_LONG_RW(AceFlags, 4)
|
|
|
|
PROPERTY_LONG_RW(Flags, 5)
|
|
|
|
PROPERTY_BSTR_RW(ObjectType, 6)
|
|
|
|
PROPERTY_BSTR_RW(InheritedObjectType, 7)
|
|
|
|
PROPERTY_BSTR_RW(Trustee, 8)
|
|
|
|
};
|
|
|
|
|
|
[ uuid(OLEDS_CLSID_AccessControlEntry)]
|
|
coclass AccessControlEntry
|
|
{
|
|
[default] interface IADsAccessControlEntry;
|
|
interface IDispatch;
|
|
};
|
|
|
|
[ uuid(OLEDS_IID_IADsAccessControlList), oleautomation, dual]
|
|
interface IADsAccessControlList: IDispatch
|
|
{
|
|
|
|
PROPERTY_LONG_RW(AclRevision, 3)
|
|
|
|
PROPERTY_LONG_RW(AceCount, 4)
|
|
|
|
[id(5)]
|
|
HRESULT
|
|
AddAce([in] IDispatch * pAccessControlEntry);
|
|
|
|
[id(6)]
|
|
HRESULT
|
|
RemoveAce([in] IDispatch * pAccessControlEntry);
|
|
|
|
[id(7)]
|
|
HRESULT
|
|
CopyAccessList([out,retval] IDispatch * * ppAccessControlList);
|
|
|
|
[propget, restricted, id(DISPID_NEWENUM)] // Must be propget.
|
|
HRESULT
|
|
_NewEnum(
|
|
[out, retval] IUnknown** retval
|
|
);
|
|
};
|
|
|
|
|
|
[ uuid(OLEDS_CLSID_AccessControlList)]
|
|
coclass AccessControlList
|
|
{
|
|
[default] interface IADsAccessControlList;
|
|
interface IDispatch;
|
|
};
|
|
|
|
|
|
|
|
[ uuid(OLEDS_IID_IADsSecurityDescriptor), oleautomation, dual]
|
|
interface IADsSecurityDescriptor : IDispatch
|
|
{
|
|
|
|
PROPERTY_LONG_RW(Revision, 2)
|
|
|
|
PROPERTY_LONG_RW(Control, 3)
|
|
|
|
PROPERTY_BSTR_RW(Owner, 4)
|
|
|
|
PROPERTY_VARIANT_BOOL_RW(OwnerDefaulted, 5)
|
|
|
|
PROPERTY_BSTR_RW(Group, 6)
|
|
|
|
PROPERTY_VARIANT_BOOL_RW(GroupDefaulted, 7)
|
|
|
|
PROPERTY_DISPATCH_RW(DiscretionaryAcl, 8)
|
|
|
|
PROPERTY_VARIANT_BOOL_RW(DaclDefaulted, 9)
|
|
|
|
PROPERTY_DISPATCH_RW(SystemAcl, 10)
|
|
|
|
PROPERTY_VARIANT_BOOL_RW(SaclDefaulted, 11)
|
|
|
|
[id(12)]
|
|
HRESULT
|
|
CopySecurityDescriptor([out, retval] IDispatch ** ppSecurityDescriptor);
|
|
};
|
|
|
|
|
|
[ uuid(OLEDS_CLSID_SecurityDescriptor)]
|
|
coclass SecurityDescriptor
|
|
{
|
|
[default] interface IADsSecurityDescriptor;
|
|
interface IDispatch;
|
|
};
|
|
|
|
//
|
|
// ACCESS MASKS
|
|
//
|
|
typedef enum {
|
|
ADS_RIGHT_DELETE =0x00010000,
|
|
ADS_RIGHT_READ_CONTROL =0x00020000,
|
|
ADS_RIGHT_WRITE_DAC =0x00040000,
|
|
ADS_RIGHT_WRITE_OWNER =0x00080000,
|
|
ADS_RIGHT_SYNCHRONIZE =0x00100000,
|
|
ADS_RIGHT_ACCESS_SYSTEM_SECURITY =0x01000000,
|
|
ADS_RIGHT_GENERIC_READ =0x80000000,
|
|
ADS_RIGHT_GENERIC_WRITE =0x40000000,
|
|
ADS_RIGHT_GENERIC_EXECUTE =0x20000000,
|
|
ADS_RIGHT_GENERIC_ALL =0x10000000,
|
|
ADS_RIGHT_DS_CREATE_CHILD =0x00000001,
|
|
ADS_RIGHT_DS_DELETE_CHILD =0x00000002,
|
|
ADS_RIGHT_ACTRL_DS_LIST =0x00000004,
|
|
ADS_RIGHT_DS_SELF =0x00000008,
|
|
ADS_RIGHT_DS_READ_PROP =0x00000010,
|
|
ADS_RIGHT_DS_WRITE_PROP =0x00000020,
|
|
ADS_RIGHT_DS_DELETE_TREE =0x00000040,
|
|
ADS_RIGHT_DS_LIST_OBJECT =0x00000080,
|
|
ADS_RIGHT_DS_CONTROL_ACCESS =0x00000100
|
|
} ADS_RIGHTS_ENUM;
|
|
|
|
//
|
|
// ACETYPES
|
|
//
|
|
typedef enum {
|
|
ADS_ACETYPE_ACCESS_ALLOWED =0x0,
|
|
ADS_ACETYPE_ACCESS_DENIED =0x1,
|
|
ADS_ACETYPE_SYSTEM_AUDIT =0x2,
|
|
ADS_ACETYPE_ACCESS_ALLOWED_OBJECT =0x5,
|
|
ADS_ACETYPE_ACCESS_DENIED_OBJECT =0x6,
|
|
ADS_ACETYPE_SYSTEM_AUDIT_OBJECT =0x7,
|
|
ADS_ACETYPE_SYSTEM_ALARM_OBJECT =0x8,
|
|
ADS_ACETYPE_ACCESS_ALLOWED_CALLBACK =0x9,
|
|
ADS_ACETYPE_ACCESS_DENIED_CALLBACK =0xA,
|
|
ADS_ACETYPE_ACCESS_ALLOWED_CALLBACK_OBJECT =0xB,
|
|
ADS_ACETYPE_ACCESS_DENIED_CALLBACK_OBJECT =0xC,
|
|
ADS_ACETYPE_SYSTEM_AUDIT_CALLBACK =0xD,
|
|
ADS_ACETYPE_SYSTEM_ALARM_CALLBACK =0xE,
|
|
ADS_ACETYPE_SYSTEM_AUDIT_CALLBACK_OBJECT =0xF,
|
|
ADS_ACETYPE_SYSTEM_ALARM_CALLBACK_OBJECT =0x10
|
|
|
|
|
|
} ADS_ACETYPE_ENUM;
|
|
|
|
//
|
|
// ACEFLAGS
|
|
//
|
|
typedef enum {
|
|
ADS_ACEFLAG_INHERIT_ACE =0x2,
|
|
ADS_ACEFLAG_NO_PROPAGATE_INHERIT_ACE =0x4,
|
|
ADS_ACEFLAG_INHERIT_ONLY_ACE =0x8,
|
|
ADS_ACEFLAG_INHERITED_ACE =0x10,
|
|
ADS_ACEFLAG_VALID_INHERIT_FLAGS =0x1F,
|
|
ADS_ACEFLAG_SUCCESSFUL_ACCESS =0x40,
|
|
ADS_ACEFLAG_FAILED_ACCESS =0x80
|
|
} ADS_ACEFLAG_ENUM;
|
|
|
|
//
|
|
// FLAGS
|
|
//
|
|
typedef enum {
|
|
ADS_FLAG_OBJECT_TYPE_PRESENT =0x1,
|
|
ADS_FLAG_INHERITED_OBJECT_TYPE_PRESENT =0x2
|
|
} ADS_FLAGTYPE_ENUM;
|
|
|
|
//
|
|
// CONTROL
|
|
//
|
|
typedef enum {
|
|
ADS_SD_CONTROL_SE_OWNER_DEFAULTED = 0x0001,
|
|
ADS_SD_CONTROL_SE_GROUP_DEFAULTED = 0x0002,
|
|
ADS_SD_CONTROL_SE_DACL_PRESENT = 0x0004,
|
|
ADS_SD_CONTROL_SE_DACL_DEFAULTED = 0x0008,
|
|
ADS_SD_CONTROL_SE_SACL_PRESENT = 0x0010,
|
|
ADS_SD_CONTROL_SE_SACL_DEFAULTED = 0x0020,
|
|
ADS_SD_CONTROL_SE_DACL_AUTO_INHERIT_REQ = 0x0100,
|
|
ADS_SD_CONTROL_SE_SACL_AUTO_INHERIT_REQ = 0x0200,
|
|
ADS_SD_CONTROL_SE_DACL_AUTO_INHERITED = 0x0400,
|
|
ADS_SD_CONTROL_SE_SACL_AUTO_INHERITED = 0x0800,
|
|
ADS_SD_CONTROL_SE_DACL_PROTECTED = 0x1000,
|
|
ADS_SD_CONTROL_SE_SACL_PROTECTED = 0x2000,
|
|
ADS_SD_CONTROL_SE_SELF_RELATIVE = 0x8000
|
|
} ADS_SD_CONTROL_ENUM;
|
|
|
|
//
|
|
// REVISION
|
|
//
|
|
typedef enum {
|
|
ADS_SD_REVISION_DS = 4
|
|
} ADS_SD_REVISION_ENUM;
|
|
|