共用方式為


WNetOpenEnumW 函式 (winnetwk.h)

WNetOpenEnum函式會啟動網路資源或現有連線的列舉。 您可以呼叫 WNetEnumResource 函式來繼續列舉。

語法

DWORD WNetOpenEnumW(
  [in]  DWORD          dwScope,
  [in]  DWORD          dwType,
  [in]  DWORD          dwUsage,
  [in]  LPNETRESOURCEW lpNetResource,
  [out] LPHANDLE       lphEnum
);

參數

[in] dwScope

列舉的範圍。 此參數可以是下列其中一個值。

意義
RESOURCE_CONNECTED
列舉所有目前連線的資源。 函式會忽略 dwUsage 參數。 如需詳細資訊,請參閱接下來的<備註>一節。
RESOURCE_CONTEXT
只列舉呼叫端網路內容中的資源。 指定 [網路鄰近區] 檢視的此值。 函式會忽略 dwUsage 參數。
RESOURCE_GLOBALNET
列舉網路上的所有資源。
RESOURCE_REMEMBERED
列舉所有記住的 (持續性) 連線。 函式會忽略 dwUsage 參數。

[in] dwType

要列舉的資源類型。 此參數可以是下列值的組合。

意義
RESOURCETYPE_ANY
所有資源。 這個值不能與RESOURCETYPE_DISK或RESOURCETYPE_PRINT結合。
RESOURCETYPE_DISK
所有磁片資源。
RESOURCETYPE_PRINT
所有列印資源。
 

如果網路提供者無法區分列印和磁片資源,它可以列舉所有資源。

[in] dwUsage

要列舉的資源使用類型。 此參數可以是下列值的組合。

意義
0
所有資源。
RESOURCEUSAGE_CONNECTABLE
所有可連線的資源。
RESOURCEUSAGE_CONTAINER
所有容器資源。
RESOURCEUSAGE_ATTACHED
如果使用者未通過驗證,設定此值會強制 WNetOpenEnum 失敗。 即使網路允許列舉而不進行驗證,函式也會失敗。
RESOURCEUSAGE_ALL
設定此值相當於設定RESOURCEUSAGE_CONNECTABLE、RESOURCEUSAGE_CONTAINER和RESOURCEUSAGE_ATTACHED。
 

除非 dwScope 參數等於 RESOURCE_GLOBALNET,否則會忽略此參數。 如需詳細資訊,請參閱接下來的<備註>一節。

[in] lpNetResource

NETRESOURCE結構的指標,指定要列舉的容器。 如果 dwScope 參數不是RESOURCE_GLOBALNET,此參數必須是 Null

如果此參數為 Null,則會假設網路根目錄。 (系統會將網路組織為階層;根目錄是 network.) 中最上層的容器

如果此參數不是 Null,它必須指向 NETRESOURCE 結構。 此結構可由應用程式填入,也可以由 呼叫 WNetEnumResource 函式傳回。 NETRESOURCE結構必須指定容器資源;也就是說,必須在dwUsage參數中指定RESOURCEUSAGE_CONTAINER值。

若要列舉所有網路資源,應用程式可以呼叫 WNetOpenEnum ,並將 lpNetResource 參數設定為 Null,然後使用傳回的控制碼呼叫 WNetEnumResource 來列舉資源。 如果WNetEnumResource函式所傳回之 NETRESOURCE陣列中的其中一個資源是容器資源,您可以呼叫WNetOpenEnum來開啟資源以供進一步列舉。

[out] lphEnum

列舉控制碼的指標,可用於 後續呼叫 WNetEnumResource

傳回值

如果函式成功,傳回值會NO_ERROR。

如果函式失敗,傳回值是 系統錯誤碼,例如下列其中一個值。

傳回碼 描述
ERROR_NOT_CONTAINER
lpNetResource參數不會指向容器。
ERROR_INVALID_PARAMETER
dwScopedwType參數無效,或參數組合無效。
ERROR_NO_NETWORK
網路無法使用。
ERROR_EXTENDED_ERROR
發生網路特定錯誤。 若要取得錯誤的描述,請呼叫 WNetGetLastError 函 式。
ERROR_INVALID_ADDRESS
NETRESOURCE結構中提供的遠端網路資源名稱已解析為不正確網路位址。

備註

如果 dwScope 參數等於RESOURCE_CONNECTED,如果連線是由呼叫 WNetOpenEnum 函式的應用程式所建立的應用程式所建立的連線,則會從列舉中省略使用 Microsoft LAN Manager 網路所建立的網路連線。 這是因為使用 Microsoft LAN Manager 建立的連線只會在與建立連線的應用程式相同的登入會話中執行的應用程式看見。 (若要在列舉中包含連線,應用程式不足以在建立 connection 的使用者帳戶中執行。)

dwScope參數中RESOURCE_CONTEXT的確切解譯取決於電腦上安裝的網路。

WNetOpenEnum函式可用來開始列舉單一容器中的資源。 下列範例顯示 Microsoft LAN Manager 網路和 Novell NetWare 網路的階層式結構,並識別容器。

LanMan (container, in this case the provider) 
  ACCOUNTING (container, in this case the domain) 
    \\ACCTSPAY (container, in this case the server) 
      PAYFILES (disk) 
      LASERJET (print) 
 
NetWare (container, in this case the provider) 
  MARKETING (container, in this case the server) 
    SYS (disk, first one on any NetWare server) 
    ANOTHERVOLUME (disk) 
    LASERJET (print) 

範例

如需說明應用程式定義函式以列舉網路上所有資源的程式碼範例,請參閱 列舉網路資源

注意

winnetwk.h 標頭會將 WNetOpenEnum 定義為別名,根據 UNICODE 預處理器常數的定義,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

   
最低支援的用戶端 Windows 2000 Professional [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限桌面應用程式]
目標平台 Windows
標頭 winnetwk.h
程式庫 Mpr.lib
Dll Mpr.dll

另請參閱

NETRESOURCE

WNetCloseEnum

WNetEnumResource

Windows 網路 (WNet) 概觀

Windows 網路功能