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++ では、 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 |