IADsCollection::get__NewEnum method (iads.h)

Metode IADsCollection::get__NewEnum mendapatkan objek enumerator dependen yang mengimplementasikan IEnumVARIANT untuk objek koleksi ADSI ini. Ketahuilah bahwa ada dua karakter garis bawah dalam nama fungsi (get__NewEnum).

Sintaks

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

Parameter

[out] ppEnumerator

Arahkan ke penunjuk ke antarmuka IUnknown pada objek enumerator untuk koleksi ini.

Nilai kembali

Metode ini mendukung nilai pengembalian standar termasuk S_OK, E_FAIL, atau E_NOTIMPL. Untuk informasi selengkapnya dan nilai pengembalian lainnya, lihat Kode Kesalahan ADSI.

Keterangan

Ketika server mendukung pencarian halaman dan klien telah menentukan batas halaman yang lebih besar dari hasil pencarian maksimum yang diizinkan di server, metode IADsCollection::get__NewEnum mengembalikan kesalahan dengan cara berikut:

  • Jika server mengembalikan kesalahan tanpa hasil, fungsi hanya mengembalikan kesalahan.
  • Jika server mengembalikan hasil parsial dengan atau tanpa kesalahan, misalnya, hasil pencarian maksimum yang diizinkan di server, fungsi mengembalikan hasil parsial dari server ke pengguna.
  • Jika server mengembalikan semua hasil dengan atau tanpa kesalahan, misalnya, hasil pencarian maksimum di setiap halaman dan semua hasil melalui beberapa halaman, fungsi mengembalikan semua hasil dari server ke pengguna.

Contoh

Untuk masing-masing... Dalam... Pernyataan berikutnya dalam contoh kode Visual Basic berikut memanggil metode get__NewEnum secara implisit.

Dim fso As IADsFileServiceOperations 
On Error GoTo Cleanup

Set fso = GetObject("WinNT://myComputer/Fabrikam01") 
 
Dim coll As IADsCollection
Set coll = fso.Sessions
 
' The following statement invokes IADsCollection::get__NewEnum.
For Each session In coll 
   MsgBox "Session name: " & session.Name
Next session

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

Contoh kode C++ berikut menunjukkan bagaimana IADsCollection::get__NewEnum digunakan untuk menghitung sesi layanan file aktif.

HRESULT EnumCollection(IADsCollection *);

HRESULT GetACollectionOfSessions()
{
    LPWSTR adspath = L"WinNT://myComputer/LanmanServer";
    HRESULT hr = S_OK;
    IADsCollection *pColl = NULL;

    // Bind to file service operations.
    IADsFileServiceOperations *pFso = NULL;
    hr = ADsGetObject(adspath,
                      IID_IADsFileServiceOperations,
                      (void**)&pFso);
    if(FAILED(hr)) {goto Cleanup;}

    // Get the pointer to the collection.
    hr = pFso->Sessions(&pColl);
    if(FAILED(hr)) {goto Cleanup;}

    hr = EnumCollection(pColl);

Cleanup:
    if(pColl) pColl->Release();
    if(pFso) pFso->Release();

    return hr;
}

HRESULT EnumCollection(IADsCollection *pColl)
{
    IUnknown *pUnk=NULL;
    HRESULT hr = S_OK;
    // Get the Enumerator object on the collection object.
    hr = pColl->get__NewEnum(&pUnk);
    if(FAILED(hr)) {goto Cleanup;}

    IEnumVARIANT *pEnum;
    hr = pUnk->QueryInterface(IID_IEnumVARIANT,(void**)&pEnum);
    if(FAILED(hr)) {goto Cleanup;}

    // Enumerate the collection.
    BSTR bstr = NULL;
    VARIANT var;
    IADs *pADs = NULL;
    ULONG lFetch;
    IDispatch *pDisp = NULL;

    VariantInit(&var);
    hr = pEnum->Next(1, &var, &lFetch);
    while(hr == S_OK)
    {
        if (lFetch == 1)    
        {
             pDisp = V_DISPATCH(&var);
             pDisp->QueryInterface(IID_IADs, (void**)&pADs);
             pADs->get_Name(&bstr);
             printf("Session name: %S\n",bstr);
             SysFreeString(bstr);
             pADs->Release();
        }
        VariantClear(&var);
        pDisp->Release();
        pDisp = NULL;
        hr = pEnum->Next(1, &var, &lFetch);
    };
    

Cleanup:
    if(pDisp) pDisp->Release();
    if(pUnk) pUnk->Release();
    if(pColl) pColl->Release();
    if(pEnum) pEnum->Release();
    return hr;
}

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista
Server minimum yang didukung Windows Server 2008
Target Platform Windows
Header iads.h
DLL Activeds.dll

Lihat juga

Kode Kesalahan ADSI

IADsCollection

IEnumVARIANT

IUnknown