オブジェクトの親へのバインド

ADSIでは、すべてのディレクトリオブジェクトは、IADsインターフェイスを公開するADSI COMオブジェクトによって表されます。 オブジェクトの親コンテナーを取得するには、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;
}