WindowsXP-SP1/ds/adsi/types/core.odl

491 lines
9.1 KiB
Plaintext

//---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1996
//
// File: core.odl
//
// Contents: Core Interfaces
//
//----------------------------------------------------------------------------
#define DISPID_NEWENUM -4
//
// The constants below are control codes acceptable for
// IADs::PutEx functions
//
typedef enum {
ADS_PROPERTY_CLEAR=1,
ADS_PROPERTY_UPDATE=2,
ADS_PROPERTY_APPEND=3,
ADS_PROPERTY_DELETE=4
} ADS_PROPERTY_OPERATION_ENUM;
[ uuid(OLEDS_IID_IADs), oleautomation, dual]
interface IADs : IDispatch
{
PROPERTY_RO(Name, BSTR, 2)
PROPERTY_RO(Class, BSTR, 3)
PROPERTY_RO(GUID, BSTR, 4)
PROPERTY_RO(ADsPath, BSTR, 5)
PROPERTY_RO(Parent, BSTR, 6)
PROPERTY_RO(Schema, BSTR, 7)
[id(8)]
HRESULT
GetInfo();
[id(9)]
HRESULT
SetInfo();
[id(10)]
HRESULT
Get (
[in] BSTR bstrName,
[out, retval] VARIANT *pvProp
);
[id(11)]
HRESULT
Put (
[in] BSTR bstrName,
[in] VARIANT vProp
);
[id(12)]
HRESULT
GetEx(
[in] BSTR bstrName,
[out, retval] VARIANT *pvProp
);
[id(13)]
HRESULT
PutEx(
[in] long lnControlCode,
[in] BSTR bstrName,
[in] VARIANT vProp
);
[id(14)]
HRESULT
GetInfoEx(
[in] VARIANT vProperties,
[in] long lnReserved
);
};
[ uuid(OLEDS_IID_IADsContainer), oleautomation, dual]
interface IADsContainer : IDispatch
{
[propget, id(2)]
HRESULT
Count(
[out, retval] long *retval
);
[propget, restricted, id(DISPID_NEWENUM)] // Must be propget.
HRESULT
_NewEnum(
[out, retval] IUnknown** retval
);
[propget, id(3)]
HRESULT
Filter(
[out,retval] VARIANT *pVar
);
[propput, id(3)]
HRESULT
Filter(
[in] VARIANT Var
);
[propget, id(4)]
HRESULT
Hints(
[out,retval] VARIANT *pvFilter
);
[propput, id(4)]
HRESULT
Hints(
[in] VARIANT vHints
);
[id(5)]
HRESULT
GetObject(
[in] BSTR ClassName,
[in] BSTR RelativeName,
[out, retval] IDispatch **ppObject
);
[id(6)]
HRESULT
Create(
[in]BSTR ClassName,
[in] BSTR RelativeName,
[out, retval] IDispatch **ppObject
);
[id(7)]
HRESULT
Delete(
[in] BSTR bstrClassName,
[in] BSTR bstrRelativeName
);
[id(8)]
HRESULT
CopyHere(
[in] BSTR SourceName,
[in] BSTR NewName,
[retval, out] IDispatch **ppObject
);
[id(9)]
HRESULT
MoveHere(
[in] BSTR SourceName,
[in]BSTR NewName,
[retval, out] IDispatch **ppObject
);
};
[uuid(OLEDS_IID_IADsCollection), oleautomation, dual]
interface IADsCollection: IDispatch
{
[id(DISPID_NEWENUM), propget]
HRESULT
_NewEnum(
[out, retval] IUnknown **ppEnumerator
);
[id(4)]
HRESULT
Add(
[in]BSTR bstrName,
[in] VARIANT vItem
);
[id(5)]
HRESULT
Remove(
[in] BSTR bstrItemToBeRemoved
);
[id(6)]
HRESULT
GetObject(
[in] BSTR bstrName,
[out, retval] VARIANT *pvItem
);
};
[uuid(OLEDS_IID_IADsMembers), oleautomation, dual]
interface IADsMembers: IDispatch
{
[id(2), propget]
HRESULT
Count(
[out, retval] long *plCount
);
[id(DISPID_NEWENUM), propget]
HRESULT
_NewEnum(
[out, retval] IUnknown **ppEnumerator
);
[id(3), propget]
HRESULT
Filter(
[out, retval] VARIANT *pvFilter
);
[id(3), propput]
HRESULT
Filter(
[in] VARIANT pvFilter
);
};
[uuid(OLEDS_IID_IADsPropertyList), oleautomation, dual]
interface IADsPropertyList: IDispatch
{
[id(2), propget]
HRESULT
PropertyCount(
[out, retval] long *plCount
);
[id(3)]
HRESULT
Next(
[out, retval] VARIANT *pVariant
);
[id(4)]
HRESULT
Skip([in] long cElements);
[id(5)]
HRESULT
Reset();
[id(DISPID_VALUE)]
HRESULT
Item(
[in] VARIANT varIndex,
[out, retval] VARIANT *pVariant
);
[id(6)]
HRESULT
GetPropertyItem(
[in] BSTR bstrName,
[in] LONG lnADsType,
[out, retval] VARIANT *pVariant
);
[id(7)]
HRESULT
PutPropertyItem(
[in] VARIANT varData
);
[id(8)]
HRESULT
ResetPropertyItem(
[in] VARIANT varEntry
);
[id(9)]
HRESULT
PurgePropertyList();
};
[uuid(OLEDS_IID_IADsPropertyEntry), oleautomation, dual]
interface IADsPropertyEntry: IDispatch
{
[id(1)]
HRESULT
Clear();
PROPERTY_BSTR_RW(Name, 2)
PROPERTY_LONG_RW(ADsType, 3)
PROPERTY_LONG_RW(ControlCode, 4)
PROPERTY_VARIANT_RW(Values, 5)
};
[ uuid(OLEDS_CLSID_PropertyEntry)]
coclass PropertyEntry
{
[default] interface IADsPropertyEntry;
interface IDispatch;
};
[uuid(OLEDS_IID_IADsPropertyValue), oleautomation, dual]
interface IADsPropertyValue: IDispatch
{
[id(1)]
HRESULT
Clear();
PROPERTY_LONG_RW(ADsType, 2)
PROPERTY_BSTR_RW(DNString, 3)
PROPERTY_BSTR_RW(CaseExactString, 4)
PROPERTY_BSTR_RW(CaseIgnoreString, 5)
PROPERTY_BSTR_RW(PrintableString, 6)
PROPERTY_BSTR_RW(NumericString, 7)
PROPERTY_LONG_RW(Boolean, 8)
PROPERTY_LONG_RW(Integer, 9)
PROPERTY_VARIANT_RW(OctetString, 10)
PROPERTY_DISPATCH_RW(SecurityDescriptor, 11)
PROPERTY_DISPATCH_RW(LargeInteger, 12)
PROPERTY_DATE_RW(UTCTime, 13)
};
[uuid(OLEDS_IID_IADsPropertyValue2), oleautomation, dual]
interface IADsPropertyValue2: IDispatch
{
[id(1)]
HRESULT
GetObjectProperty(
[in, out] long *lnADsType,
[out, retval] VARIANT *pvProp
);
[id(2)]
HRESULT
PutObjectProperty(
[in] long lnADsType,
[in] VARIANT vProp
);
};
[ uuid(OLEDS_CLSID_PropertyValue)]
coclass PropertyValue
{
[default] interface IADsPropertyValue;
interface IDispatch;
};
[uuid(OLEDS_IID_IPrivateDispatch)]
interface IPrivateDispatch: IUnknown
{
HRESULT
ADSIInitializeDispatchManager(
[in] long dwExtensionId
);
HRESULT
ADSIGetTypeInfoCount(
[out] UINT * pctinfo
);
HRESULT
ADSIGetTypeInfo(
[in] UINT itinfo,
[in] LCID lcid,
[out] ITypeInfo * * pptinfo
);
HRESULT
ADSIGetIDsOfNames(
[in] REFIID riid,
[in] OLECHAR * * rgszNames,
[in] UINT cNames,
[in] LCID lcid,
[out] DISPID * rgdispid
);
HRESULT
ADSIInvoke(
[in] DISPID dispidMember,
[in] REFIID riid,
[in] LCID lcid,
[in] WORD wFlags,
[in] DISPPARAMS * pdispparams,
[out] VARIANT * pvarResult,
[out] EXCEPINFO * pexcepinfo,
[out] UINT * puArgErr
);
};
[uuid(OLEDS_IID_IPrivateUnknown)]
interface IPrivateUnknown: IUnknown
{
HRESULT
ADSIInitializeObject(
[in] BSTR lpszUserName,
[in] BSTR lpszPassword,
[in] long lnReserved
);
HRESULT
ADSIReleaseObject(
);
};
[uuid(OLEDS_IID_IADsExtension)]
interface IADsExtension: IUnknown
{
HRESULT
Operate(
[in] DWORD dwCode,
[in] VARIANT varData1,
[in] VARIANT varData2,
[in] VARIANT varData3
);
HRESULT
PrivateGetIDsOfNames(
[in] REFIID riid,
[in] OLECHAR * * rgszNames,
[in] unsigned int cNames,
[in] LCID lcid,
[out] DISPID * rgDispid
);
HRESULT
PrivateInvoke(
[in] DISPID dispidMember,
[in] REFIID riid,
[in] LCID lcid,
[in] WORD wFlags,
[in] DISPPARAMS * pdispparams,
[out] VARIANT * pvarResult,
[out] EXCEPINFO * pexcepinfo,
[out] unsigned int * puArgErr
);
};
[ uuid(OLEDS_IID_IADsDeleteOps), oleautomation, dual]
interface IADsDeleteOps : IDispatch
{
[id(2)]
HRESULT
DeleteObject(
[in] long lnFlags
);
};