Поделиться через


Функция DsBrowseForContainerA (dsclient.h)

Функция dsBrowseForContainer отображает диалоговое окно, используемое для поиска объектов контейнеров в доменных службах Active Directory.

Синтаксис

int DsBrowseForContainerA(
  [in] PDSBROWSEINFOA pInfo
);

Параметры

[in] pInfo

Указатель на структуру DSBROWSEINFO , содержащую данные об инициализации диалогового окна браузера контейнеров и получает данные о выбранном объекте.

Возвращаемое значение

Функция возвращает идентификатор, если пользователь выбирает контейнер и нажимает кнопку "ОК " или дважды щелкает объект. Если пользователь отменяет диалоговое окно, функция возвращает IDCANCEL. Если возникает ошибка, функция возвращается -1. Используйте функцию GetLastError для получения расширенных сведений об ошибке.

Замечания

В диалоговом окне отображается средство выбора контейнеров, заполненное контейнерами из определенного корневого каталога или использующего доверенные домены. Если он использует доверенные домены, он может использовать либо домен, в который пользователь вошел в систему, либо использовать альтернативный домен, указанный приложением, с помощью pszRoot члена структуры DSBROWSEINFO. Если пользователь нажимает кнопку "ОК " или дважды щелкает объект, идентификатор IDOK возвращается и pszPath содержит ADsPath выбранного объекта. Если пользователь отменяет диалоговое окно, DsBrowseForContainer возвращает IDCANCEL.

Элемент pszRoot содержит ADsPath, который должен быть в следующем формате:

LDAP://fabrikam.com/CN=Users,DC=Fabrikam,DC=com

DsBrowseForContainer использует этот путь в качестве корня дерева. Член pszRoot также можно использовать для указания домена, которому присвоено доверие с доменом, в который входит пользователь, чтобы пользователь смог просмотреть контейнер Users альтернативного домена. Если элемент pszPath содержит путь, диалоговое окно будет переходить от pszRoot через контейнеры, пока не достигнет объекта, указанного pszPath.

Функция dsBrowseForContainer поддерживает функцию обратного вызова, указанную в структуре DSBROWSEINFO. Функцию обратного вызова можно использовать для фильтрации, изменения или изменения представления на основе изменения выбора и т. д. Дополнительные сведения см. в BFFCallBack.

Это важно

 Начиная с Windows Server 2003, версия ANSI этой функции (DsBrowseForContainerA) не реализована и всегда возвращается -1.

Примеры

В следующем примере кода выбирается контейнер в домене, в который вошел пользователь. В представлении также отображаются все доверенные домены.

void PickContainer(void)
{
    DSBROWSEINFOW dsbi = { 0 };
    WCHAR wszResult[MAX_PATH];
 
    dsbi.cbStruct = sizeof(dsbi);
    dsbi.pszCaption = L"The container picker";
    dsbi.pszTitle = L"Pick a container for this example.";
    dsbi.pszPath = wszResult;
    dsbi.cchPath = MAX_PATH;
    dsbi.dwFlags = DSBI_ENTIREDIRECTORY;

    int nReturn = DsBrowseForContainerW(&dsbi);
 
    if ( IDOK == nReturn )
    {
        // wszResult contains the resulting path
    }
}

Заметка

Заголовок dsclient.h определяет DsBrowseForContainer как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows Vista
минимальный поддерживаемый сервер Windows Server 2008
целевая платформа Виндоус
заголовка dsclient.h
библиотеки Dsuiext.lib
Библиотека dll Dsuiext.dll

См. также

BFFCallBack

DSBROWSEINFO