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++ 中,使用 ADsBuildEnumerator、 ADsEnumerateNext和 AdsFreeEnumerator 協助程式函式。
範例
下列程式碼範例示範如何列舉容器中的子物件。
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 |