Share via


IADsContainer::get__NewEnum 方法 (iads.h)

IADsContainer::get__NewEnum方法擷取容器的列舉值物件。 列舉值物件會實作 IEnumVARIANT 介面,以列舉容器物件的子系。

語法

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

參數

[out] retval

接收列舉值物件的 IUnknown 指標指標指標。 當不再需要此介面時,呼叫端必須釋放此介面。

傳回值

這個方法支援標準傳回值,包括成功作業S_OK。 如需錯誤碼的詳細資訊,請參閱 ADSI 錯誤碼

備註

在 「get」 和 「NewEnum」 之間的函式名稱中,有兩個底線字元 (「__」) 。

在 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