Microsoft Windows ネットワーク環境では、マルチホーム コンピューターが複数のネットワークに同時に接続できます。 LAN およびダイヤルアップ接続と共に複数のワイヤレス ネットワークを使用できる場合があります。 ネットワーク リスト マネージャーは、使用可能なネットワークを識別し、ネットワーク属性データをアプリケーションに返します。
ネットワーク リスト マネージャー API は、ネットワーク リスト マネージャー サービスと対話して、PC が接続する各ネットワークのプロパティを識別して取得します。 各ネットワークは、そのネットワークの一意に識別可能なプロパティに基づいて、ネットワーク署名によって一意に識別されます。 アプリケーションがネットワーク リスト マネージャーの通知に登録すると、アプリケーションは、新しいネットワーク接続の可用性または既存のネットワーク接続への変更に関する通知を受け取ります。 アプリケーションは、接続しているネットワークによって、接続しているネットワーク接続によって、またはネットワークのプロパティに応じてロジックを調整できます。 この情報アプリケーションを使用すると、現在のネットワーク状態に基づいてアクションを微調整できます
Windows Vista には、これらのネットワーク特性に関する詳細情報を取得するために使用できる新しいインターフェイスが導入されています。 INetworkListManager インターフェイスを使用すると、コンピューターがこれまでに見たすべてのネットワーク (INetwork) または接続されたネットワーク、または切断されたネットワークのみを簡単に列挙できます。 INetworkListManager インターフェイスを使用すると、コンピューター上のネットワーク インターフェイスを簡単に列挙できます。
INetwork インターフェイスは、ネットワーク接続のプロパティ (名前、説明、ID、マネージド/認証済み、接続/切断など) を決定するために使用されます。 1 つのネットワークが複数のインターフェイスに接続されている可能性があるため、INetwork インターフェイスを介して、使用されている INetwork インターフェイスのインスタンスを列挙することもできます。
INetwork インターフェイスは、インターフェイスの関連するプロパティ (ID、GUID、種類 (マネージド、認証済み)、State (接続済み、切断済み、V4 ローカル、V4 インターネット、V6 ローカル、V6 インターネット) を示します。 V4 ローカルとは、インターネット プロトコル バージョン 4 (IPv4) ローカル アクセスを意味します。 V4 インターネットとは、インターネットにアクセスできる IPv4 を意味します。 V6 ローカルおよび V6 インターネットは IPv6 を意味します。
Network Location のオブジェクト ツリーのルートは、INetworkListManagerインターフェイスです。 このインターフェイスは、CLSID_NetworkListManager コクラスに実装されます。 このインターフェイスを使用するには、次に示すように、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);
}