Usando as interfaces IADs
ADSI, cada elemento de um serviço de diretório é representado por um objeto ADSI, que é um objeto COM (Component Object Model) que oferece suporte à interface IUnknown COM padrão, bem como as interfaces IDispatch e IADs. Os IADs fornecem as funções básicas de manutenção para objetos ADSI.
Cada objeto ADSI deve oferecer suporte a essa interface, que serve para:
- Forneça identificação de objeto por nome, classe ou ADsPath.
- Identifique o contêiner de objeto que gerencia a criação e a exclusão de objetos.
- Obtenha a definição do esquema do objeto.
- Carregue os atributos de objeto no cache de propriedades e confirme as alterações no repositório de diretórios persistente.
- Acesse e modifique os valores de atributo de objeto no cache de propriedades.
A figura anterior mostra um objeto ADSI genérico que oferece suporte às interfaces fundamentais IADs, IADsPropertyList, IUnknown, IDirectoryObject e IDispatch. Um objeto ADSI como esse gerencia dados do armazenamento de dados do serviço de diretório subjacente por meio das interfaces suportadas. Esses dados são conhecidos como as propriedades do objeto, e as rotinas que obtêm e definem essas propriedades são conhecidas como métodos de propriedade. As propriedades somente leitura têm um método de propriedade que obtém o valor da propriedade. As propriedades de leitura/gravação têm dois métodos; um método que define o valor e um que obtém o valor. As propriedades são implementadas em cada objeto ADSI usando um cache de propriedades. IADs::get_ADsPath e IADs::p ut_ADsPath são exemplos de métodos de propriedade. Métodos de propriedade não são aparentes para Visual Basic e outros clientes de automação que permitem referências diretas para a propriedade. Por exemplo, Visual Basic refere-se a IADs::ADsPath diretamente usando a sintaxe Object.ADsPath. Para obter mais informações, consulte Métodos de propriedade de interface.
Além disso, um objeto ADSI interage com outros objetos ADSI e diretamente com um namespace por meio de métodos. Os métodos são executados imediatamente. Exemplos de métodos incluem IADs::SetInfo e IADs::GetInfo.
Propriedades, métodos de propriedade e métodos são acessados por meio de interfaces COM padrão.
Um objeto ADSI é identificado exclusivamente por seu ADsPath. Por exemplo, um ADsPath para o namespace LDAP é "LDAP://MyServer/DC=Fabrikam,DC=COM". Para obter mais informações sobre ADsPaths, consulte Vinculação ADSI. Para programadores familiarizados com apelidos COM, isso é conceitualmente semelhante ao nome de exibição do moniker COM.
Qualquer objeto ADSI que contenha outros objetos ADSI, chamado de objeto de contêiner ADSI, também oferece suporte à interface IADsContainer , que fornece métodos e propriedades que gerenciam a criação, exclusão e enumeração de objetos ADSI contidos pelo objeto. A figura a seguir mostra um objeto de contêiner ADSI.
A maioria dos objetos ADSI são contidos por outros objetos. O único objeto ADSI sem contêiner pai é o objeto ADSI Namespaces de nível superior ("ADS:").
O método IADs::SetInfo em um objeto de contêiner armazena persistentemente as propriedades armazenadas em cache do objeto de contêiner ADSI para armazenamento, além de quaisquer objetos criados com o método IADsContainer::Create. IADsContainer::D elete não afeta o cache de propriedades, mas exclui o elemento de diretório de namespace subjacente representado por esse objeto.