Win32 API 日本語リファレンス
ホームNetworking.NetworkListManager › INetwork

INetwork

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDdcb00002-570f-4a9b-8d69-199fdba5723b継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

INetwork インターフェイスは、ローカルマシン上のネットワークを表します。また、類似のネットワーク署名を持つネットワーク接続の集合を表すこともあります。

解説(Remarks)

INetwork を実装する COM オブジェクトは、追加のプロパティ用のプロパティバッグも実装しています。このプロパティバッグにアクセスするには、INetwork インターフェイスを使用し、QueryInterfaceIPropertyBag を取得します。この COM オブジェクトのプロパティバッグには、以下のプロパティが含まれます。

パラメーター 説明
NA_DomainAuthenticationFailed VT_BOOL ドメインネットワークがドメインコントローラーに対して認証できないことを示します。
NA_NetworkClass VT_UINT として格納された NLM_NETWORK_CLASS ネットワークのクラスを指定します。取り得る値は次のとおりです。
  • NLM_NETWORK_IDENTIFYING (0x01)

    これは特別な「Identifying(識別中)」ネットワークです。このネットワーククラスのプロパティは変更できません。

  • NLM_NETWORK_IDENTIFIED (0x02)

    これは Identified(識別済み)ネットワークです。

  • NLM_NETWORK_UNIDENTIFIED (0x03)

    これは特別な「Unidentified(未識別)」ネットワークです。このネットワークのカテゴリは変更できますが、ネットワークが切断されると保持されません。

NA_InternetConnectivityV4

または

NA_InternetConnectivityV6

VT_UINT として格納された NLM_INTERNET_CONNECTIVITY IPv4 または IPv6 のネットワーク接続に関する詳細を提供します。取り得る値は次のとおりです。
  • NLM_INTERNET_CONNECTIVITY_WEBHIJACK (0x1)

    検出されたネットワークはホットスポットです。たとえば、カフェの Wi-Fi ホットスポットネットワークに接続していて、ローカルの HTTP トラフィックがキャプティブポータルにリダイレクトされている場合、このフラグが設定されます。

  • NLM_INTERNET_CONNECTIVITY_PROXIED (0x2)

    検出されたネットワークにはプロキシ構成があります。たとえば、HTTP アクセスにプロキシを使用する社内ネットワークに接続している場合、このフラグが設定されます。

  • NLM_INTERNET_CONNECTIVITY_CORPORATE (0x4)

    マシンが Direct Access 用に構成されており、Direct Access が構成された社内ドメインネットワークへのアクセスが検出されています。

NA_NameSetByPolicy VT_BOOL ネットワークの名前がグループポリシーによって設定されています。
NA_IconSetByPolicy VT_BOOL ネットワークのアイコンがグループポリシーによって設定されています。
NA_DescriptionSetByPolicy VT_BOOL ネットワークの説明がグループポリシーによって設定されています。
NA_CategorySetByPolicy VT_BOOL ネットワークのカテゴリがグループポリシーによって設定されています。
NA_NameReadOnly VT_BOOL ネットワークの名前は読み取り専用です。
NA_IconReadOnly VT_BOOL ネットワークのアイコンは読み取り専用です。
NA_DescriptionReadOnly VT_BOOL ネットワークの説明は読み取り専用です。
NA_CategoryReadOnly VT_BOOL ネットワークのカテゴリは読み取り専用です。
NA_AllowMerge VT_BOOL ネットワークを別のネットワークと統合できます。

IPropertyBag インターフェイスは、IPropertyBag::Read および IPropertyBag::Write メソッドの一部として LPCOLESTR を受け付けます。利便性のため、これらのプロパティの文字列値は同じ名前で netlistmgr.h 内に定義されています。

メソッド 13

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT GetName(LPWSTR* pszNetworkName)

GetName メソッドは、ネットワークの名前を返します。

pszNetworkNameLPWSTR*outネットワークの名前へのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合、メソッドは次の値を返します。

リターンコード 説明
E_POINTER
渡されたポインターが NULL です。
vtbl 8 HRESULT SetName(LPWSTR szNetworkNewName)

SetName メソッドは、ネットワークの名前を設定または変更します。

szNetworkNewNameLPWSTRinネットワークの新しい名前を含む、ゼロ終端の文字列。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合、メソッドは次のいずれかの値を返します。

リターンコード 説明
E_POINTER
szNetworkNewNameNULL です。
HRESULT_FROM_WIN32(ERROR_FILENAME_EXCED_RANGE)
指定された名前が長すぎます。

解説(Remarks)

ネットワーク名の最大長は 128 文字で、スペースのみ、タブ、または "\ /: * ? " < > |" を含めることはできません。

vtbl 9 HRESULT GetDescription(LPWSTR* pszDescription)

GetDescription メソッドは、ネットワークの説明文字列を返します。

pszDescriptionLPWSTR*outネットワークのテキスト説明を指定する文字列へのポインター。この値は SysFreeString API を使用して解放する必要があります。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合、メソッドは次のいずれかの値を返します。

リターンコード 説明
E_POINTER
渡されたポインターが NULL です。
vtbl 10 HRESULT SetDescription(LPWSTR szDescription)

SetDescription メソッドは、ネットワークの説明を設定または置換します。

szDescriptionLPWSTRinネットワークの説明を含む、ゼロ終端の文字列。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合、メソッドは次のいずれかの値を返します。

リターンコード 説明
E_POINTER
szDescriptionNULL です。
HRESULT_FROM_WIN32(ERROR_FILENAME_EXCED_RANGE)
指定された名前が長すぎます。

解説(Remarks)

ネットワークの説明の最大長は 1024 文字です。

vtbl 11 HRESULT GetNetworkId(GUID* pgdGuidNetworkId)

GetNetworkId メソッドは、ネットワークの一意な識別子を返します。

pgdGuidNetworkIdGUID*outネットワーク ID を指定する GUID へのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。

解説(Remarks)

pgdGuidNetworkId が指すバッファの割り当ては、呼び出し元の責任です。このバッファは GUID を保持できる十分な大きさである必要があります。

要求したネットワークが削除されていても、GetNetworkId の呼び出しは S_OK を返します。

vtbl 12 HRESULT GetDomainType(NLM_DOMAIN_TYPE* pNetworkType)

GetDomainType メソッドは、ネットワークのドメインタイプを返します。

pNetworkTypeNLM_DOMAIN_TYPE*outネットワークのドメインタイプを指定する NLM_DOMAIN_TYPE 列挙値へのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。

vtbl 13 HRESULT GetNetworkConnections(IEnumNetworkConnections** ppEnumNetworkConnection)

GetNetworkConnections メソッドは、ネットワークのすべてのネットワーク接続の列挙を返します。ネットワークは、異なるインターフェイスからの複数の接続、または同じインターフェイスからの異なるリンクを持つことができます。

ppEnumNetworkConnectionIEnumNetworkConnections**outこのネットワークへのローカル接続の一覧を列挙する IEnumNetworkConnections インターフェイスインスタンスへのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。

vtbl 14 HRESULT GetTimeCreatedAndConnected(DWORD* pdwLowDateTimeCreated, DWORD* pdwHighDateTimeCreated, DWORD* pdwLowDateTimeConnected, DWORD* pdwHighDateTimeConnected)

GetTimeCreatedAndConnected メソッドは、ネットワークが作成および接続されたローカルの日付と時刻を返します。

pdwLowDateTimeCreatedDWORD*outネットワークが作成された日時へのポインター。具体的には、FILETIME.dwLowDateTime の下位 DWORD を含みます。
pdwHighDateTimeCreatedDWORD*outネットワークが作成された日時へのポインター。具体的には、FILETIME.dwLowDateTime の上位 DWORD を含みます。
pdwLowDateTimeConnectedDWORD*outネットワークに最後に接続された日時へのポインター。具体的には、FILETIME.dwLowDateTime の下位 DWORD を含みます。
pdwHighDateTimeConnectedDWORD*outネットワークに最後に接続された日時へのポインター。具体的には、FILETIME.dwLowDateTime の上位 DWORD を含みます。

戻り値

メソッドが成功した場合は S_OK を返します。それ以外の場合、メソッドは次のいずれかの値を返します。

リターンコード 説明
E_POINTER
渡されたポインターが NULL です。
vtbl 15 HRESULT get_IsConnectedToInternet(VARIANT_BOOL* pbIsConnected)

get_IsConnectedToInternet プロパティは、ネットワークがインターネット接続を持っているかどうかを指定します。

pbIsConnectedVARIANT_BOOL*outTRUE の場合、このネットワークはインターネットへの接続を持ちます。FALSE の場合は持ちません。

戻り値

成功した場合は S_OK を返します。

vtbl 16 HRESULT get_IsConnected(VARIANT_BOOL* pbIsConnected)

get_IsConnected プロパティは、ネットワークが何らかのネットワーク接続を持っているかどうかを指定します。

pbIsConnectedVARIANT_BOOL*outTRUE の場合、このネットワークは接続されています。FALSE の場合は接続されていません。

戻り値

成功した場合は S_OK を返します。

vtbl 17 HRESULT GetConnectivity(NLM_CONNECTIVITY* pConnectivity)

GetConnectivity メソッドは、ネットワークの接続状態を返します。

pConnectivityNLM_CONNECTIVITY*outこのネットワークの接続状態を指定するビットマスクを含む NLM_CONNECTIVITY 列挙値へのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。

vtbl 18 HRESULT GetCategory(NLM_NETWORK_CATEGORY* pCategory)

GetCategory メソッドは、ネットワークのカテゴリを返します。

pCategoryNLM_NETWORK_CATEGORY*outネットワークのカテゴリ情報を指定する NLM_NETWORK_CATEGORY 列挙値へのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。

解説(Remarks)

ユーザーはこれらのカテゴリの既定の設定を変更できるため、プライベートまたはパブリックのネットワークカテゴリを、どの Windows ファイアウォールのポートが開いているかを推測するために使用してはいけません。代わりに、必要なポートが開いていることを確認するには Windows ファイアウォール API を呼び出す必要があります。

vtbl 19 HRESULT SetCategory(NLM_NETWORK_CATEGORY NewCategory)

SetCategory メソッドは、ネットワークのカテゴリを設定します。変更は即座に有効になります。この API の呼び出し元は Administrators グループのメンバーである必要があります。

NewCategoryNLM_NETWORK_CATEGORYinネットワークの新しいカテゴリを指定する NLM_NETWORK_CATEGORY 列挙値へのポインター。

戻り値

メソッドが成功した場合は S_OK を返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_INetwork "{DCB00002-570F-4A9B-8D69-199FDBA5723B}"
#usecom global INetwork IID_INetwork "{}"
#comfunc global INetwork_GetName                     7 var
#comfunc global INetwork_SetName                     8 wstr
#comfunc global INetwork_GetDescription              9 var
#comfunc global INetwork_SetDescription              10 wstr
#comfunc global INetwork_GetNetworkId                11 var
#comfunc global INetwork_GetDomainType               12 var
#comfunc global INetwork_GetNetworkConnections       13 sptr
#comfunc global INetwork_GetTimeCreatedAndConnected  14 var,var,var,var
#comfunc global INetwork_get_IsConnectedToInternet   15 var
#comfunc global INetwork_get_IsConnected             16 var
#comfunc global INetwork_GetConnectivity             17 var
#comfunc global INetwork_GetCategory                 18 var
#comfunc global INetwork_SetCategory                 19 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。