IADsContainer::get__NewEnum 方法 (iads.h)
IADsContainer::get__NewEnum 方法检索容器的枚举器对象。 枚举器对象实现 IEnumVARIANT 接口以枚举容器对象的子级。
语法
HRESULT get__NewEnum(
[out] IUnknown **retval
);
parameters
[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 |