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.