Como o ADSI integra extensões

As diretrizes a seguir descrevem como o ADSI interage com extensões:

  • Algo se liga a um objeto de diretório ADSI. Por exemplo, "LDAP://CN=JeffSmith,OU=Sales,DC=Fabrikam,DC=COM".
  • ADSI identifica que o objeto está na classe de usuário .
  • ADSI executa uma pesquisa no registro e identifica a extensão CLSIDs para o usuário. Lembre-se de que o ADSI armazena esses dados em cache.
  • Algo chama o método QueryInterface para IID_IMyExtension. ADSI pesquisa as interfaces associadas ao objeto de usuário , começando com suas próprias interfaces e, em seguida, examinando as interfaces de extensão.
  • Se uma correspondência for encontrada, o ADSI criará uma instância do componente que oferece suporte a IID_IMyExtension e chamará QueryInterface para a extensão. A interface resultante é retornada.
  • O usuário usa essa interface para chamar os métodos de interface.
  • Em seguida, o cliente chama QueryInterface para IID_IYourExtension, que está em um componente diferente. Esse componente delega essa chamada QueryInterface à interface IUnknown do agregador, que passa a ser o próprio ADSI.
  • Novamente, o ADSI pesquisa as interfaces e cria a instância do componente.