IADsContainer::GetObject メソッド (iads.h)
IADsContainer::GetObject メソッドは、コンテナー内のディレクトリ オブジェクトのインターフェイスを取得します。
構文
HRESULT GetObject(
[in] BSTR ClassName,
[in] BSTR RelativeName,
[out] IDispatch **ppObject
);
パラメーター
[in] ClassName
取得するオブジェクトの オブジェクト クラスの名前を指定する BSTR 。 このパラメーターが NULL の場合、プロバイダーはコンテナー内で見つかった最初の項目を返します。
[in] RelativeName
取得するオブジェクトの相対識別名を指定する BSTR 。
[out] ppObject
指定したオブジェクトの IDispatch インターフェイスへのポインターへのポインター。
戻り値
このメソッドは、正常な操作のS_OKを含む、標準の戻り値をサポートしています。 エラー コードの詳細については、「 ADSI エラー コード」を参照してください。
解説
LDAP プロバイダーの 場合、bstrRelativeName パラメーターには名前プレフィックス ("CN=Jeff Smith" など) を含める必要があります。 bstrRelativeName パラメーターには、"CN=Jeff Smith,OU=Sales" などの複数のレベルの名前を含めることもできます。
C++ では、GetObject が成功した場合、呼び出し元は QueryInterface メソッドを使用して目的のインターフェイスについて IDispatch インターフェイスに対してクエリを実行する必要があります。
bstrClassName パラメーターには、有効なクラス名または NULL を指定できます。 空き領域が含まれている場合など、クラス名が無効な場合、このメソッドは E_ADS_UNKNOWN_OBJECT エラーをスローします。
例
次のコード例では、コンテナー オブジェクトからユーザー オブジェクトを取得します。
Dim cont As IADsContainer
Dim usr As IADsUser
Set cont = GetObject("LDAP://OU=Sales,DC=Fabrikam,DC=com")
Set usr = cont.GetObject("user", "CN=jeffsmith")
このようにすると、次の記述と同じ結果が得られます。
Dim usr As IADsUser
Set usr=GetObject("LDAP://CN=jeffsmith,OU=Sales,DC=Fabrikam,DC=com")
次のコード例では、コンテナー オブジェクトからユーザー オブジェクトを取得します。
HRESULT hr = S_OK;
CoInitialize(NULL);
IADsContainer *pCont = NULL;
hr = ADsGetObject(L"LDAP://DC=windows2000,DC=mytest,DC=fabrikam,DC=com",
IID_IADsContainer,
(void**) &pCont );
if(FAILED(hr))
{
goto Cleanup;
}
///////////////////////////////////////////////////////////////////////
// Retrieve the child from the container.
// Be aware that in the LDAP provider you can navigate multiple levels.
///////////////////////////////////////////////////////////////////////
IDispatch *pDisp = NULL;
IADs *pADs = NULL;
hr = pCont->GetObject(CComBSTR("user"), CComBSTR("CN=Jeff Smith,OU=DSys"), &pDisp);
pCont->Release();
if(FAILED(hr))
{
goto Cleanup;
}
hr = pDisp->QueryInterface(IID_IADs, (void**)&pADs);
pDisp->Release();
if(FAILED(hr))
{
goto Cleanup;
}
// Perform an operation with pADs.
pADs->Release();
Cleanup:
if(pCont)
pCont->Release();
if(pDisp)
pDisp->Release();
if(pADs)
pADs->Release();
CoUninitialize();
要件
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | iads.h |
[DLL] | Activeds.dll |
関連項目
IADs::get_Class
IADs::get_Name