IMbnConnectionEvents
COM公式ドキュメント
この通知インターフェイスは、非同期接続要求の変更状況および完了状況をアプリケーションに通知します。
解説(Remarks)
通知を登録する手順は次のとおりです。
- IMbnConnectionManager オブジェクトに対して QueryInterface を呼び出し、IConnectionPointContainer インターフェイスを取得します。
- 返されたインターフェイスに対して FindConnectionPoint を呼び出し、riid に IID_IMbnConnectionEvents を渡します。
- 返された接続ポイントに対して Advise を呼び出し、IMbnConnectionEvents を実装するオブジェクトの IUnknown インターフェイスへのポインターを pUnk に渡します。
COM 通知を登録するコードの例については、COM Connection Points の記事の Client セクションを参照してください。
メソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
接続操作の完了を通知する通知メソッドです。
| newConnection | IMbnConnection* | in | 接続操作が完了したデバイスを表す IMbnConnection インターフェイスです。 | ||||||||||||||||||||||||||
| requestID | DWORD | in | 接続操作を識別するために Mobile Broadband サービスによって割り当てられた要求 ID です。 | ||||||||||||||||||||||||||
| status | HRESULT | in | 完了状況です。 呼び出し側のアプリケーションでは、次のいずれかの値が返されることを想定できます。
|
戻り値
このメソッドは S_OK を返す必要があります。
解説(Remarks)
アクティベーションコンテキストが確立されると、アプリケーションは IMbnConnection を使用して現在の接続状態を取得できます。
接続操作がエラーになった場合、アプリケーションは IMbnConnection インターフェイスの GetActivationNetworkError メソッドを呼び出して、ネットワークエラー情報を取得できます。
切断操作が実行されたことを示す通知メソッドです。
| newConnection | IMbnConnection* | in | 切断された接続を表す IMbnConnection インターフェイスです。 |
| requestID | DWORD | in | 切断操作を識別するために Mobile Broadband サービスによって割り当てられた要求 ID です。 |
| status | HRESULT | in | 操作の完了状況です。これは S_OK のみになります。 |
戻り値
このメソッドは S_OK を返す必要があります。
解説(Remarks)
アプリケーションは IMbnConnection を使用して現在の接続状態を取得できます。
デバイスの接続状態が変化したかどうかを示す通知メソッドです。
| newConnection | IMbnConnection* | in | システムまたはネットワークによって開始された変更により状態が変化した接続を表す IMbnConnection インターフェイスです。 |
戻り値
このメソッドは S_OK を返す必要があります。
解説(Remarks)
アプリケーションは IMbnConnection を使用して更新された接続状態を取得できます。
デバイスの音声通話状態の変化を示す通知メソッドです。
| newConnection | IMbnConnection* | in | 音声通話状態が変化した接続を表す IMbnConnection インターフェイスです。 |
戻り値
このメソッドは S_OK を返す必要があります。
解説(Remarks)
OnVoiceCallStateChange は、音声通話状態が利用可能になったとき、または音声通話状態に変化があったときに呼び出されます。アプリケーションは IMbnConnection を使用して更新された音声通話状態を取得できます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMbnConnectionEvents "{DCBBBAB6-200E-4BBB-AAEE-338E368AF6FA}"
#usecom global IMbnConnectionEvents IID_IMbnConnectionEvents "{}"
#comfunc global IMbnConnectionEvents_OnConnectComplete 3 sptr,int,int
#comfunc global IMbnConnectionEvents_OnDisconnectComplete 4 sptr,int,int
#comfunc global IMbnConnectionEvents_OnConnectStateChange 5 sptr
#comfunc global IMbnConnectionEvents_OnVoiceCallStateChange 6 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。