//--------------------------------------------------------------------------- // // 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 // enum { ADS_PROPERTY_CLEAR=1, ADS_PROPERTY_UPDATE=2, ADS_PROPERTY_APPEND=3, ADS_PROPERTY_DELETE=4 }; [ 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] ULONG 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_IID_IADsAttrInfo)] interface IADsAttrInfo: IUnknown { HRESULT ConvertAttrInfoToPropertyEntry( PADS_ATTR_INFO pAttrInfo ); HRESULT ConvertPropertyEntryToAttrInfo( PADS_ATTR_INFO * ppAttrInfo ); }; [ 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_IADsValue)] interface IADsValue: IUnknown { HRESULT ConvertADsValueToPropertyValue( PADSVALUE pADsValue ); HRESULT ConvertPropertyValueToADsValue( PADSVALUE pADsValue ); }; [ uuid(OLEDS_CLSID_PropertyValue)] coclass PropertyValue { [default] interface IADsPropertyValue; interface IDispatch; };