IMbnConnectionContextEvents
COM公式ドキュメント
この通知インターフェイスは、非同期のプロビジョニング済みコンテキストイベントを処理するために使用されます。
解説(Remarks)
通知を登録する手順は次のとおりです。
- IMbnInterfaceManager オブジェクトに対して QueryInterface を呼び出して IConnectionPointContainer インターフェイスを取得します。
- 返されたインターフェイスに対して FindConnectionPoint を呼び出し、riid に IID_IMbnConnectionContextEvents を渡します。
- 返された接続ポイントに対して Advise を呼び出し、IMbnConnectionContextEvents を実装するオブジェクトの IUnknown インターフェイスへのポインターを pUnk に渡します。
COM 通知を登録するコード例については、COM Connection Points の記事の Client セクションを参照してください。
メソッド 2
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
デバイスに保存されているプロビジョニング済みコンテキストが利用可能になったか更新されたことを示すために、モバイルブロードバンドサービスによって呼び出される通知メソッドです。
| newInterface | IMbnConnectionContext* | in | コンテキストが利用可能になった、または更新されたデバイスを表す IMbnConnectionContext インターフェイスです。 |
戻り値
このメソッドは S_OK を返す必要があります。
解説(Remarks)
アプリケーションは、渡された IMbnConnectionContext インターフェイスを使用して、デバイスのプロビジョニング済みコンテキストの一覧を取得できます。
OnProvisionedContextListChange は、アプリケーションが IMbnConnectionContext の SetProvisionedContext メソッドを呼び出して既存のプロビジョニング済みコンテキストを更新した結果としては呼び出されません。
デバイス内のプロビジョニング済みコンテキストが設定されたことを示すために、モバイルブロードバンドサービスによって呼び出される通知メソッドです。
| newInterface | IMbnConnectionContext* | in | コンテキストが設定されたデバイスを表す IMbnConnectionContext インターフェイスです。 | ||||||||||||||
| requestID | DWORD | in | コンテキストを設定した操作を識別するために、モバイルブロードバンドサービスによって設定されるリクエスト ID です。 | ||||||||||||||
| status | HRESULT | in | 操作の結果を示すステータスコードです。 呼び出し側のアプリケーションは、次のいずれかの値を期待できます。
|
戻り値
このメソッドは S_OK を返す必要があります。
解説(Remarks)
呼び出し側のアプリケーションは、newInterface に IMbnConnectionContext インターフェイスを渡すことで、デバイス内のプロビジョニング済みコンテキストの更新された一覧を取得できます。 ただし、この操作は非同期であるため、アプリケーションはこのインターフェイスを使用してコンテキストを取得する前に、OnProvisionedContextListChange 通知を待つ必要があります。
複数のアプリケーションが通知を受け取るように登録されている場合、この操作を開始できたのはそのうちの 1 つだけであっても、それらすべてがこの通知を受け取ります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMbnConnectionContextEvents "{DCBBBAB6-200C-4BBB-AAEE-338E368AF6FA}"
#usecom global IMbnConnectionContextEvents IID_IMbnConnectionContextEvents "{}"
#comfunc global IMbnConnectionContextEvents_OnProvisionedContextListChange 3 sptr
#comfunc global IMbnConnectionContextEvents_OnSetProvisionedContextComplete 4 sptr,int,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。