Share via


Interfacce IAD e IDirectoryObject

I client ADSI gestiscono e modificano gli oggetti del servizio directory usando una delle due interfacce COM: ID O IDirectoryObject. Gli ID sono un'interfaccia IDispatch destinata all'uso da parte di client con associazione tardiva, ad esempio quelli scritti in Microsoft Visual Basic, Java e vari linguaggi di scripting. IDirectoryObject è un'interfaccia vtable che fornisce l'accesso diretto agli oggetti da client con associazione anticipata, ad esempio quelli scritti in C e C++.

Ogni oggetto ADSI deve implementare sia IAD che IDirectoryObject. I client ADSI scritti in linguaggi come C o C++, che possono accedere direttamente alle tabelle virtuali, possono usare entrambe le interfacce, ma non entrambe nella stessa applicazione. I client ADSI scritti in Visual Basic o Java sono limitati all'uso di ID.

L'interfaccia ID consente ai client con associazione tardiva di sfruttare le funzionalità di pulizia intrinseche del modello a oggetti ADSI. Tra queste funzionalità è la cache delle proprietà, che consente ai client di leggere e scrivere proprietà senza passare attraverso la rete per ogni chiamata. Inoltre, le applicazioni client ottengono l'uso di potenti librerie di controlli dell'interfaccia utente e ActiveX e uno stile di programmazione più semplice. In cambio, i client con associazione tardiva devono usare il tipo di dati VARIANT , che impedisce l'uso dei tipi di dati nativi più avanzati forniti da ADSI.

L'interfaccia IDirectoryObject consente ai client con associazione anticipata di sfruttare appieno i tipi di dati nativi del servizio directory al costo di rinunciare a un lieve vantaggio delle prestazioni rispetto all'uso della cache delle proprietà. In cambio, l'interfaccia IDirectoryObject fornisce l'accesso diretto e in transito alle proprietà degli oggetti tramite una singola richiesta, anziché tramite singole chiamate get e put .