Platform SDK: Active Directory, ADSI, and Directory Services |
The following C++ code fragment contains a function that binds to the parent of an object:
HRESULT GetParentObject(IADs *pObject, //Pointer the object whose parent to bind to. IADs **ppParent //Return a pointer to the parent object. ) { if ((!pObject)||(!ppParent)) return E_INVALIDARG; HRESULT hr = E_FAIL; BSTR bstr; hr = pObject->get_Parent(&bstr); if (SUCCEEDED(hr)) { //Bind to the parent container. *ppParent = NULL; hr = ADsOpenObject(bstr, NULL, NULL, ADS_SECURE_AUTHENTICATION, //Use Secure Authentication IID_IADs, (void**)ppParent); if(FAILED(hr)) { if (!(*ppParent)) { (*ppParent)->Release(); (*ppParent) = NULL; } } } FreeADsStr(bstr); return hr; }