Directory Services |
The DsBrowseForContainer function displays a dialog box used to browse for Active Directory container objects.
int DsBrowseForContainer( PDSBROWSEINFO pInfo );
The function returns one of the following values.
The dialog box displays a container picker which is either populated with containers from a particular root or which uses trusted domains. If it uses trusted domains, it can use either the domain that the user is currently logged on to, or it can use an alternate domain specified by the application using the pszRoot member of the DSBROWSEINFO structure. If the user clicks the OK pushbutton or double-clicks an object, IDOK is returned and pszPath contains the ADsPath of the selected object. If the user cancels the dialog box, DsBrowseForContainer returns IDCANCEL.
The pszRoot member contains an ADsPath, which requires the following form.
LDAP://fabrikam.com/CN=Users,DC=Fabrikam,DC=comDsBrowseForContainer uses this path as the root of the tree. The pszRoot member can also be used to specify a domain that has a trust with the domain that the user is logged on to, so that the user can browse the Users container of the alternate domain. If the pszPath member contains a path, the dialog will navigate from pszRoot through the containers until it reaches the object specified by pszPath.
The DsBrowseForContainer function supports a callback function as specified in the DSBROWSEINFO structure. The callback function can be used to filter, modify, or otherwise update the view based on selection change, and so on. For more information, see BFFCallBack.
The following code example shows using this function to choose a container in the domain that the user is logged on to. The view also displays all the trusted domains.
void PickContainer(void) { DSBROWSEINFO dsbi = { 0 }; WCHAR wszResult[MAX_PATH]; dsbi.cbStruct = SIZEOF(dsbi); dsbi.pszCaption = TEXT("The container picker"); dsbi.pszTitle = TEXT("Pick a container for this example. This will be returned if the user clicks ""OK"""); dsbi.pszPath = wszResult; dsbi.cchPath = MAX_PATH; dsbi.dwFlags = DSBI_ENTIREDIRECTORY; if ( IDOK == DsBrowseForContainer(&dsbi) ) { // wszResult contains the resulting path } }
Client: Included in Windows XP and
Windows 2000 Professional.
Server: Included in Windows Server 2003 and
Windows 2000 Server.
Redistributable: Requires Active Directory Client Extension
on Windows NT 4.0 SP6a and Windows 95/98/Me.
Unicode: Implemented as Unicode and ANSI versions on Windows
NT/2000/XP.
Header: Declared in Dsclient.h.
Library: Use Dsuiext.lib.