491 lines
9.1 KiB
Plaintext
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
|
|
);
|
|
};
|