共用方式為


DsBrowseForContainerW 函式 (dsclient.h)

DsBrowseForContainer 函式會顯示對話框,用來流覽 Active Directory 網域服務中的容器物件。

語法

int DsBrowseForContainerW(
  [in] PDSBROWSEINFOW pInfo
);

參數

[in] pInfo

DSBROWSEINFO 的指標 結構,其中包含初始化容器瀏覽器對話框的相關數據,並接收所選物件的相關數據。

傳回值

如果使用者選取容器並按兩下 [確定] 按鈕,或按兩下物件,函式會傳回IDOK。 如果使用者取消對話框,函式會傳回 IDCANCEL。 如果發生錯誤,函式會傳 -1回 。 使用 GetLastError 函式來擷取擴充的錯誤資訊。

言論

對話框會顯示容器選擇器,該選擇器會填入來自特定根目錄的容器,或使用受信任的網域。 如果它使用信任網域,則可以使用使用者目前登入的網域,也可以使用應用程式使用 pszRootDSBROWSEINFO 結構的成員所指定的替代網域。 如果使用者按兩下 [確定 ] 按鈕或按兩下物件,則會傳回 IDOK而 pszPath 包含所選物件的 ADsPath。 如果使用者取消對話框,DsBrowseForContainerIDCANCEL傳回 。

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 根據 UNICODE 預處理器常數的定義,將 DsBrowseForContainer 定義為自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程序代碼,可能會導致編譯或運行時間錯誤不符。 如需詳細資訊,請參閱函式原型的 慣例。

要求

要求 價值
最低支援的用戶端 Windows Vista
支援的最低伺服器 Windows Server 2008
目標平臺 窗戶
標頭 dsclient.h
連結庫 Dsuiext.lib
DLL Dsuiext.dll

另請參閱

BFFCallBack

DSBROWSEINFO