DsBrowseForContainer 函数显示用于浏览 Active Directory 域服务中的容器对象的对话框。
语法
int DsBrowseForContainerA(
  [in] PDSBROWSEINFOA pInfo
);
参数
[in] pInfo
指向 DSBROWSEINFO 结构的指针,该结构包含有关初始化容器浏览器对话框的数据,并接收有关所选对象的数据。
返回值
如果用户选择容器并单击“确定”按钮,或双击对象,该函数将返回 IDOK。 如果用户取消对话框,该函数将返回 IDCANCEL。 如果发生错误,函数将 -1返回 。 使用 GetLastError 函数检索扩展的错误信息。
言论
该对话框显示容器选取器,该选取器由特定根中的容器填充,或者使用受信任的域。 如果它使用受信任的域,则可以使用用户当前登录到的域,也可以使用应用程序指定的备用域,该域使用 DSBROWSEINFO 结构的 pszRoot 成员。 如果用户单击“确定”按钮或双击对象,则返回 IDOK,pszPath 包含所选对象的 ADsPath。 如果用户取消对话框,
pszRoot 成员包含 ADsPath,必须采用以下格式:
LDAP://fabrikam.com/CN=Users,DC=Fabrikam,DC=com
DsBrowseForContainer 使用此路径作为树的根。 pszRoot 成员还可用于指定与用户登录的域具有信任的域,以便用户可以浏览备用域的用户容器。 如果 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 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 
要求
| 要求 | 价值 | 
|---|---|
| 最低支持的客户端 | Windows Vista | 
| 支持的最低服务器 | Windows Server 2008 | 
| 目标平台 | 窗户 | 
| 标头 | dsclient.h | 
| 库 | Dsuiext.lib | 
| DLL | Dsuiext.dll |