關於網路清單管理員 API
Microsoft Windows 網路環境可讓多路電腦同時連線到數個網路。 可能會有多個無線網路,以及 LAN 和撥號連線。 網路清單管理員會識別可用的網路,並將網路屬性資料傳回至應用程式。
網路清單管理員 API 會與網路清單管理員服務互動,以識別和擷取電腦所連線之每個網路的屬性。 每個網路都會根據該網路的唯一可識別屬性,以網路簽章進行唯一識別。 當應用程式註冊網路清單管理員通知時,應用程式會收到有關新網路連線可用性或現有網路連線變更的通知。 應用程式可以根據下列情況來調整其邏輯:所連線的網路;其所連線的網路連線;或網路屬性是什麼。 利用這項資訊,應用程式可以根據目前的網路狀況微調其動作
Windows Vista 引進了新的介面,可用來取得這些網路特性的詳細資訊等等。 透過 INetworkListManager 介面,可以輕鬆地列舉所有網路, (INetwork) 電腦曾看到或只是已連線的網路,或只是已中斷連線的網路。 INetworkListManager介面也可讓您輕鬆地列舉電腦上的網路介面。
INetwork介面可用來判斷網路連線的屬性:名稱、描述、識別碼、受控/已驗證、已連線/已中斷連線等等。 單一網路可能連線到數個介面,因此透過 INetwork 介面,您也可以列舉所使用的 INetwork 介面實例。
INetwork介面會告訴您介面的相關屬性:識別碼、GUID、類型 (受管理、已驗證) ,以及狀態 (已連線、已中斷連線、V4 本機、V4 網際網路、V6 本機、V6 網際網路) 。 V4 本機表示網際網路通訊協定第 4 版 (IPv4) 本機存取。 V4 網際網路表示具有網際網路存取的 IPv4。 V6 本機和 V6 網際網路平均 IPv6。
網路位置的物件樹狀目錄根是 INetworkListManager 介面。 這個介面會在 CLSID_NetworkListManager coclass 上實作。 若要使用此介面,您必須如下列所示建立 CLSID_NetworkListManager COM 物件:
#include <windows.h>
#include <netlistmgr.h>
#pragma comment(lib, "ole32.lib")
void main()
{
INetworkListManager *pNetworkListManager = NULL;
HRESULT hr = CoCreateInstance(CLSID_NetworkListManager, NULL,
CLSCTX_ALL, IID_INetworkListManager,
(LPVOID *)&pNetworkListManager);
}