Antarmuka IADsContainer (iads.h)

Antarmuka IADsContainer memungkinkan objek kontainer ADSI untuk membuat, menghapus, dan mengelola objek ADSI yang terkandung. Objek kontainer mewakili pohon direktori hierarkis, seperti dalam sistem file, dan untuk mengatur hierarki direktori.

Anda dapat menggunakan antarmuka IADsContainer untuk menghitung objek yang terkandung atau mengelola siklus hidupnya. Contohnya adalah menavigasi pohon direktori secara rekursif. Dengan mengkueri antarmuka IADsContainer pada objek ADSI, Anda dapat menentukan apakah objek memiliki anak. Jika antarmuka tidak didukung, objek adalah daun. Jika tidak, itu adalah kontainer. Anda dapat melanjutkan proses ini untuk objek kontainer yang baru ditemukan. Untuk membuat, menyalin, atau menghapus objek, kirim permintaan ke objek kontainer untuk melakukan tugas.

Warisan

Antarmuka IADsContainer mewarisi dari antarmuka IDispatch . IADsContainer juga memiliki jenis anggota ini:

Metode

Antarmuka IADsContainer memiliki metode ini.

 
IADsContainer::CopyHere

Metode IADsContainer::CopyHere membuat salinan objek direktori yang ditentukan dalam kontainer ini.
IADsContainer::Create

Menyiapkan permintaan untuk membuat objek direktori dari kelas skema yang ditentukan dan nama tertentu dalam kontainer.
IADsContainer::D elete

Menghapus objek direktori tertentu dari kontainer ini.
IADsContainer::get__NewEnum

Mengambil objek enumerator untuk kontainer.
IADsContainer::GetObject

Mengambil antarmuka untuk objek direktori dalam kontainer.
IADsContainer::MoveHere

Memindahkan objek tertentu ke kontainer yang mengimplementasikan antarmuka ini.

Keterangan

Untuk menentukan apakah objek adalah kontainer, gunakan properti IADsClass.Container dari objek .

Saat Anda mengikat objek kontainer menggunakan GUID (atau SID), Anda hanya dapat melakukan operasi tertentu pada objek kontainer. Operasi ini termasuk pemeriksaan atribut objek dan enumerasi anak-anak langsung objek. Operasi ini ditampilkan dalam contoh kode berikut.

Dim con As IADsContainer
Dim obj As IADs
Set con = GetObject("LDAP://svr01/<GUID=xxxx>")
con.Filter = Array("user")
For Each item In con
    debug.print item.Name " &  " of " & item.Class
Next

Semua operasi lainnya, yaitu, GetObject, Create, Delete, CopyHere, dan MoveHere tidak didukung dalam representasi GUID kontainer. Misalnya, baris terakhir dari contoh kode berikut akan mengakibatkan kesalahan.

Dim con As IADsContainer
Dim obj As IADs
Set con = GetObject("LDAP://svr01/<GUID=xxxx>")
Set obj = con.GetObject("user", "CN=Jeff Smith")

Pengikatan, menggunakan GUID (atau SID), ditujukan untuk overhead rendah dan, dengan demikian, ikatan cepat, yang sering digunakan untuk introspeksi objek.

Untuk memanggil metode kontainer ini yang terikat dengan GUID (atau SID), ikat ulang ke objek menggunakan nama khususnya.

Dim conGUID, conDN As IADsContainer
Dim obj As IADs
Set conGUID = GetObject("LDAP://svr/<GUID=xxxx>")
Set conDN=GetObject("LDAP://svr/" & conGUID.Get("distinguishedName"))
Set obj = conDN.GetObject("user", "CN=Jeff Smith")

Untuk informasi selengkapnya tentang representasi GUID objek, lihat IADs.GUID.

Contoh

Contoh kode berikut menentukan apakah objek ADSI adalah kontainer.

Dim obj As IADs
Dim cls As IADsClass
On Error GoTo Cleanup

Set obj = GetObject("WinNT://myComputer,computer")
Set cls = GetObject(obj.Schema)
If (cls.Container = TRUE) Then
    MsgBox "The object is a container."
Else
    MsgBox "The object is a leaf."
End If

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

Contoh kode berikut menentukan apakah objek ADSI adalah kontainer.

IADs *pADs = NULL;
IADsClass *pCls = NULL;
HRESULT hr = S_OK;
BSTR bstr;

hr = ADsGetObject(L"WinNT://myComputer,computer", IID_IADs, (void**)&pADs);
if(FAILED(hr)){return;}

pADs->get_Schema(&bstr);
hr = ADsGetObject(bstr, IID_IADsClass, (void**)&pCls);
pADs->Release();
SysFreeString(bstr);

if(FAILED(hr)){return;}

VARIANT_BOOL isContainer;
pCls->get_Container(&isContainer);

if(isContainer) 
    printf("Object is a container.\n");
else
    printf("Object is not a container.\n");

pCls->Release();

Persyaratan

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

Lihat juga

Membuat dan Menghapus Objek

IADs::get_GUID

IADsClass::get_Container

IADsNamespaces

IDispatch