Every Active Directory object in Active Directory that supports object-specific properties mustsupport a COM interface of the name IADs<Class>.. The interface must be derived from IADs, In this manner, a single COM interface provides access to naming and cachingfor the component.
For example, the User component has a COM interface IADsUser. The interface has get_xxx and put_xxx methods for the properties defined by Active Directory for User objects and methods for setting and changing a user's password.
[ object, uuid(IID_IADsUser), oleautomation, dual ]
interface IADsUser: IADs
{
// Read/write properties
[propget]
HRESULT Description ([out, retval]BSTR *pbstrDescription);
[propput]
HRESULT Description ([in]BSTR bstrDescription);
[propget]
HRESULT Country ([out, retval]BSTR *pbstrCountry);
[propput]
HRESULT Country ([in]BSTR bstrCountry);
[propget]
HRESULT Division ([out, retval]BSTR *pbstrDivision);
[propput]
HRESULT Division ([in]BSTR bstrDivision);
// …many more peoperties omitted for brevity;s sake …
// Methods.
HRESULT SetPassword ([in]BSTR bstr NewPassword);
HRESULT ChangePassword ( [in]BSTR bstrOldPassword
[in]BSTR bstrNewPassword);
};