次の方法で共有


IADsContainer::get__NewEnum メソッド (iads.h)

IADsContainer::get__NewEnum メソッドコンテナーの列挙子オブジェクトを取得します。 列挙子オブジェクトは、コンテナー オブジェクトの子を列挙する IEnumVARIANT インターフェイスを実装します。

構文

HRESULT get__NewEnum(
  [out] IUnknown **retval
);

パラメーター

[out] retval

列挙子オブジェクトを受け取る IUnknown ポインターへのポインター。 呼び出し元は、不要になったときにこのインターフェイスを解放する必要があります。

戻り値

このメソッドは、正常な操作のS_OKなど、標準の戻り値をサポートしています。 エラー コードの詳細については、「 ADSI エラー コード」を参照してください。

解説

関数名には、"get" と "NewEnum" の間に 2 つのアンダースコア文字 ("__") があります。

Visual Basic では、 ForEach... を使用します。 IADsContainer::get__NewEnum メソッドを暗黙的に呼び出す ステートメント。

C/C++ では、 ADsBuildEnumeratorADsEnumerateNextAdsFreeEnumerator ヘルパー関数を使用します。

次のコード例は、コンテナー内の子オブジェクトを列挙する方法を示しています。

Dim cont As IADsContainer
On Error GoTo Cleanup

Set cont = GetObject("LDAP://OU=Sales,DC=Fabrikam,DC=com")
For Each obj In cont
  Debug.Print obj.Name
Next

Cleanup:
    If(Err.Number<>0) Then
        MsgBox("An error has occurred. " & Err.Number)
    End If
    Set cont = Nothing

次のコード例は、コンテナーに含まれるオブジェクトを列挙する方法を示しています。

IEnumVARIANT *pEnum = NULL;
IADsContainer *pCont = NULL;
LPUNKNOWN pUnk = NULL;
VARIANT var;
IDispatch *pDisp = NULL;
ulong lFetch;
IADs *pADs = NULL;
 
// In this sample, skip error checking.
ADsGetObject(L"LDAP://OU=Sales,DC=Fabrikam,DC=COM", 
                        IID_IADsContainer, (void**) &pCont);
pCont->get__NewEnum(&pUnk);
pCont->Release();
 
pUnk->QueryInterface(IID_IEnumVARIANT, (void**) &pEnum);
pUnk->Release();
 
// Enumerate. 
HRESULT hr = pEnum->Next(1, &var, &lFetch);
while(SUCCEEDED(hr) && lFetch > 0)
{
    if (lFetch == 1)
    {
        BSTR bstr;

        pDisp = V_DISPATCH(&var);
        pDisp->QueryInterface(IID_IADs, (void**)&pADs); 
        pDisp->Release();
        hr = pADs->get_Name(&bstr);
        if(SUCCEEDED(hr))
        {
            SysFreeString(bstr);
        }

        pADs->Release();
    }

    VariantClear(&var);
    hr = pEnum->Next(1, &var, &lFetch);
};

 
pEnum->Release();

要件

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

関連項目

ADsBuildEnumerator

ADsEnumerateNext

AdsFreeEnumerator

IADsContainer

IEnumVARIANT

IUnknown