INetSharingPortMappingProps
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
INetSharingPortMappingProps インターフェイスは、ネットワーク接続のポートマッピングのプロパティを取得および設定するメソッドを提供します。
メソッド 8
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
get_Name メソッドは、このポートマッピングの名前を取得します。
| pbstrName | LPWSTR* | out | ポートマッピングの名前を受け取る BSTR 変数へのポインター。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。
メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。
| 戻り値 | 説明 |
|---|---|
| 操作が中止されました。 | |
| 原因不明のエラーが発生しました。 | |
| パラメーターのいずれかが無効です。 | |
| 指定されたインターフェイスはサポートされていません。 | |
| 指定されたメソッドは実装されていません。 | |
| 必要なメモリを割り当てられませんでした。 | |
| パラメーターとして渡されたポインターが無効です。 | |
| 不明な理由でメソッドが失敗しました。 |
get_IPProtocol メソッドは、このポートマッピングに関連付けられた IP プロトコルを取得します。
| pucIPProt | BYTE* | out | ポートマッピングの IP プロトコルを受け取る UCHAR 変数へのポインター。IP プロトコルは次のいずれかの値です。 NAT_PROTOCOL_TCP NAT_PROTOCOL_UDP |
戻り値
メソッドが成功した場合、戻り値は S_OK です。
メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。
| 戻り値 | 説明 |
|---|---|
| 操作が中止されました。 | |
| 原因不明のエラーが発生しました。 | |
| パラメーターのいずれかが無効です。 | |
| 指定されたインターフェイスはサポートされていません。 | |
| 指定されたメソッドは実装されていません。 | |
| 必要なメモリを割り当てられませんでした。 | |
| パラメーターとして渡されたポインターが無効です。 | |
| 不明な理由でメソッドが失敗しました。 |
get_ExternalPort メソッドは、このポートマッピングに関連付けられた外部ポートを取得します。
| pusPort | INT* | out | このポートマッピングの外部ポートを受け取る LONG 変数へのポインター。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。
メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。
| 戻り値 | 説明 |
|---|---|
| 操作が中止されました。 | |
| 原因不明のエラーが発生しました。 | |
| パラメーターのいずれかが無効です。 | |
| 指定されたインターフェイスはサポートされていません。 | |
| 指定されたメソッドは実装されていません。 | |
| 必要なメモリを割り当てられませんでした。 | |
| パラメーターとして渡されたポインターが無効です。 | |
| 不明な理由でメソッドが失敗しました。 |
get_InternalPort メソッドは、このポートマッピングに関連付けられた内部ポートを取得します。
| pusPort | INT* | out | このポートマッピングの内部ポートを受け取る LONG 変数へのポインター。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。
メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。
| 戻り値 | 説明 |
|---|---|
| 操作が中止されました。 | |
| 原因不明のエラーが発生しました。 | |
| パラメーターのいずれかが無効です。 | |
| 指定されたインターフェイスはサポートされていません。 | |
| 指定されたメソッドは実装されていません。 | |
| 必要なメモリを割り当てられませんでした。 | |
| パラメーターとして渡されたポインターが無効です。 | |
| 不明な理由でメソッドが失敗しました。 |
get_Options メソッドは、このポートマッピングに関連付けられたオプションを取得します。
| pdwOptions | INT* | out | このポートマッピングに関連付けられたオプションを受け取る DWORD 変数へのポインター。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。
メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。
| 戻り値 | 説明 |
|---|---|
| 操作が中止されました。 | |
| 原因不明のエラーが発生しました。 | |
| パラメーターのいずれかが無効です。 | |
| 指定されたインターフェイスはサポートされていません。 | |
| 指定されたメソッドは実装されていません。 | |
| 必要なメモリを割り当てられませんでした。 | |
| パラメーターとして渡されたポインターが無効です。 | |
| 不明な理由でメソッドが失敗しました。 |
get_TargetName メソッドは、このポートマッピングの対象コンピューターの名前を取得します。
| pbstrTargetName | LPWSTR* | out | このポートマッピングの対象コンピューターの名前を受け取る BSTR 変数へのポインター。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。
メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。
| 戻り値 | 説明 |
|---|---|
| 操作が中止されました。 | |
| 原因不明のエラーが発生しました。 | |
| パラメーターのいずれかが無効です。 | |
| 指定されたインターフェイスはサポートされていません。 | |
| 指定されたメソッドは実装されていません。 | |
| 必要なメモリを割り当てられませんでした。 | |
| パラメーターとして渡されたポインターが無効です。 | |
| 不明な理由でメソッドが失敗しました。 |
get_TargetIPAddress メソッドは、このポートマッピングの対象コンピューターの IP アドレスを取得します。
| pbstrTargetIPAddress | LPWSTR* | out | このポートマッピングの対象コンピューターの IP アドレスを受け取る BSTR 変数へのポインター。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。
メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。
| 戻り値 | 説明 |
|---|---|
| 操作が中止されました。 | |
| 原因不明のエラーが発生しました。 | |
| パラメーターのいずれかが無効です。 | |
| 指定されたインターフェイスはサポートされていません。 | |
| 指定されたメソッドは実装されていません。 | |
| 必要なメモリを割り当てられませんでした。 | |
| パラメーターとして渡されたポインターが無効です。 | |
| 不明な理由でメソッドが失敗しました。 |
get_Enabled メソッドは、このポートマッピングの状態を取得します。
| pbool | VARIANT_BOOL* | out | ポートマッピングの状態を受け取る VARIANT_BOOL 変数へのポインター。 |
戻り値
メソッドが成功した場合、戻り値は S_OK です。
メソッドが失敗した場合、戻り値は次のいずれかのエラーコードになります。
| 戻り値 | 説明 |
|---|---|
| 操作が中止されました。 | |
| 原因不明のエラーが発生しました。 | |
| パラメーターのいずれかが無効です。 | |
| 指定されたインターフェイスはサポートされていません。 | |
| 指定されたメソッドは実装されていません。 | |
| 必要なメモリを割り当てられませんでした。 | |
| パラメーターとして渡されたポインターが無効です。 | |
| 不明な理由でメソッドが失敗しました。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_INetSharingPortMappingProps "{24B7E9B5-E38F-4685-851B-00892CF5F940}" #usecom global INetSharingPortMappingProps IID_INetSharingPortMappingProps "{}" #comfunc global INetSharingPortMappingProps_get_Name 7 var #comfunc global INetSharingPortMappingProps_get_IPProtocol 8 var #comfunc global INetSharingPortMappingProps_get_ExternalPort 9 var #comfunc global INetSharingPortMappingProps_get_InternalPort 10 var #comfunc global INetSharingPortMappingProps_get_Options 11 var #comfunc global INetSharingPortMappingProps_get_TargetName 12 var #comfunc global INetSharingPortMappingProps_get_TargetIPAddress 13 var #comfunc global INetSharingPortMappingProps_get_Enabled 14 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_INetSharingPortMappingProps "{24B7E9B5-E38F-4685-851B-00892CF5F940}" #usecom global INetSharingPortMappingProps IID_INetSharingPortMappingProps "{}" #comfunc global INetSharingPortMappingProps_get_Name 7 sptr #comfunc global INetSharingPortMappingProps_get_IPProtocol 8 sptr #comfunc global INetSharingPortMappingProps_get_ExternalPort 9 sptr #comfunc global INetSharingPortMappingProps_get_InternalPort 10 sptr #comfunc global INetSharingPortMappingProps_get_Options 11 sptr #comfunc global INetSharingPortMappingProps_get_TargetName 12 sptr #comfunc global INetSharingPortMappingProps_get_TargetIPAddress 13 sptr #comfunc global INetSharingPortMappingProps_get_Enabled 14 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。