Os IADs e IDirectoryObject Interfaces

Os clientes ADSI gerenciam e manipulam objetos de serviço de diretório usando uma das duas interfaces COM: IADs ou IDirectoryObject. IADs é uma interface IDispatch destinada ao uso por clientes vinculados tardiamente, como aqueles escritos em Microsoft Visual Basic, Java e várias linguagens de script. IDirectoryObject é uma interface vtable que fornece acesso direto a objetos por clientes vinculados antecipadamente, como aqueles escritos em C e C++.

Cada objeto ADSI deve implementar IADs e IDirectoryObject. Clientes ADSI escritos em linguagens como C ou C++, que são capazes de acessar diretamente vtables, podem usar qualquer interface, mas não ambas no mesmo aplicativo. Clientes ADSI escritos em Visual Basic ou Java são limitados a usar IADs.

A interface de IADs permite que os clientes vinculados tardiamente aproveitem os recursos de limpeza inerentes do modelo de objeto ADSI. Entre esses recursos está o cache de propriedades, que permite que os clientes leiam e gravem propriedades sem passar por cima do fio para cada chamada. Além disso, os aplicativos cliente ganham o uso de poderosas bibliotecas de controle ActiveX e de interface do usuário e um estilo mais simples de programação. Em troca, os clientes vinculados tardiamente devem usar o tipo de dados VARIANT, que impede o uso dos tipos de dados nativos mais avançados fornecidos pelo ADSI.

A interface IDirectoryObject permite que os clientes vinculados antecipadamente aproveitem ao máximo os tipos de dados de serviço de diretório nativo ao custo de abrir mão de uma ligeira vantagem de desempenho do uso do cache de propriedades. Em troca, a interface IDirectoryObject fornece acesso direto e on-the-wire às propriedades do objeto por meio de uma única solicitação, em vez de por meio de chamadas get e put individuais.