Coleções e Grupos
O ADSI usa objetos de coleção para representar qualquer conjunto arbitrário de itens em um serviço de diretório que possa ser representado usando o mesmo tipo de dados. Os objetos de coleção são definidos como um conjunto de valores VARIANT, representando qualquer um dos tipos de dados de automação válidos. Os objetos de coleção podem representar informações persistentes, como listas de controle de acesso, e informações voláteis, como trabalhos de impressão em uma fila de impressão.
A convenção COM padrão para listar o conteúdo de um objeto de coleção (ou contêiner) é criar um objeto enumerador que ofereça suporte a IEnumVARIANT, que tem métodos para percorrer a lista de objetos de coleção. As interfaces no ADSI que fornecem o método get__NewEnum (observe os dois sublinhados) são IADsContainer, IADsMembers e IADsCollection. O ADSI também fornece as funções auxiliares ADsBuildEnumerator e ADsEnumerateNext para programas C e C++ para simplificar a enumeração. Os clientes de automação usam a enumeração implicitamente quando chamam Next em um loop For.
Grupos são simplesmente coleções de objetos que suportam a interface IADsMembers.