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 |