次の方法で共有


IADsCollection::GetObject メソッド (iads.h)

IADsCollection::GetObject メソッドは、コレクションの項目を取得します。

構文

HRESULT GetObject(
  [in] BSTR    bstrName,
  [in] VARIANT *pvItem
);

パラメーター

[in] bstrName

アイテムの名前を指定する null で終わる Unicode 文字列。 これは、アイテムがコレクションに追加されるときに IADsCollection::Add に渡される名前と同じです。

[in] pvItem

アイテムの現在の値。 オブジェクトの場合、これは オブジェクトの IDispatch インターフェイス ポインターに対応します。

戻り値

このメソッドは、S_OKを含む標準の戻り値をサポートします。 詳細およびその他の戻り値については、「 ADSI エラー コード」を参照してください。

解説

Sessions コレクション内のセッションの名前がわかっている場合は、IADsCollection::GetObject メソッドを明示的に呼び出してセッション オブジェクトを取得します。

次の Visual Basic コード例は、アクティブなファイル サービス セッションのコレクションから名前付きセッション オブジェクトを取得する方法を示しています。

Dim fso As IADsFileServiceOperations 
Dim ses As IADsSession
Dim coll As IADsCollection
Dim mySessionName As String

Set fso = GetObject("WinNT://myComputer/FabrikamServer") 
Set coll = fso.Sessions

' Insert code to set mySessionName to the name of mySession.
 
' The following statement invokes IADsCollection::GetObject.
Set ses = coll.GetObject(mySessionName)

次の C++ コード例は、アクティブなファイル サービス セッションのコレクションから名前付きセッション オブジェクトを取得する方法を示しています。

HRESULT GetASessionObjectFromCollection(BSTR mySession)
{
    LPWSTR adspath = L"WinNT://myComputer/FabrikamServer";
    IUnknown *pUnk=NULL;
    HRESULT hr = S_OK;
    IADsCollection *pColl = NULL;
    IADsFileServiceOperations *pFso = NULL;
    IADs *pADsObj = NULL;
    VARIANT varObj;
    BSTR bstrObj = NULL;

    VariantInit(&varObj);
    hr = ADsGetObject(adspath, 
                      IID_IADsFileServiceOperations,
                      (void**)&pFso);
    if(FAILED(hr)) {goto Cleanup;}

    hr = pFso->Sessions(&pColl);
    if(FAILED(hr)) {goto Cleanup;}

    hr = pColl->GetObject(mySession, &varObj);
    V_DISPATCH(&varObj)->QueryInterface(IID_IADs,(void**)&pADsObj);
    hr = pADsObj->get_Class(&bstrObj);
    printf("Class of the object obtained from GetObject: %S\n",
             bstrObj);

Cleanup:
    if(bstrObj) SysFreeString(bstrObj);
    if(pFso) pFso->Release();
    VariantClear(&varObj);
    if(pADsObj) pADsObj->Release();
    if(pColl) pColl->Release();

    return hr;
}

要件

   
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー iads.h
[DLL] Activeds.dll

関連項目

ADSI エラー コード

IADsCollection

IADsCollection::Add

IDispatch

IEnumVARIANT