Привязка к родительскому объекту

В ADSI каждый объект каталога представлен com-объектом ADSI, предоставляющим интерфейс IADs . Чтобы получить родительский контейнер объекта, используйте метод IADs::get_Parent для получения ADsPath родительского объекта, а затем привязки к ADsPath родительского объекта.

В следующем примере кода C++ показано, как получить родительский объект.

HRESULT GetParentObject(IADs *pObject,   // Pointer to the object whose parent to bind to.
                        IADs **ppParent) // Return a pointer to the parent object.
{
    if(NULL == ppParent)
    {
        return E_INVALIDARG;
    }
 
    *ppParent = NULL;

    if(NULL == pObject)
    {
        return E_INVALIDARG;
    }
 
    HRESULT hr;
    BSTR bstr;

    // Get the ADsPath of the parent.
    hr = pObject->get_Parent(&bstr);
    if(SUCCEEDED(hr))
    {
        // Bind to the parent.
        hr = ADsOpenObject(bstr,
             NULL,
             NULL,
             ADS_SECURE_AUTHENTICATION,
             IID_IADs,
             (void**)ppParent);

        SysFreeString(bstr);
    }

    return hr;
}