Коллекции и группы
ADSI использует объекты коллекции для представления любого произвольного набора элементов в службе каталогов, который может быть представлен с помощью одного типа данных. Объекты коллекции определяются как набор значений VARIANT, представляющих любой из допустимых типов данных службы автоматизации. Объекты коллекции могут представлять как постоянные сведения, такие как списки управления доступом, так и переменные данные, такие как задания печати в очереди печати.
Стандартное соглашение COM для перечисления содержимого объекта коллекции (или контейнера) заключается в создании объекта перечислителя, поддерживающего IEnumVARIANT, который имеет методы для пошагового выполнения списка объектов коллекции. Интерфейсы в ADSI, которые предоставляют метод get__NewEnum (обратите внимание на два подчеркивания), являются IADsContainer, IADsMembers и IADsCollection. ADSI также предоставляет вспомогательные функции ADsBuildEnumerator и ADsEnumerateNext для программ C и C++ для упрощения перечисления. Клиенты службы автоматизации используют перечисление неявно при вызове Next в цикле For .
Группы — это просто коллекции объектов, поддерживающих интерфейс IADsMembers.