Win32 API 日本語リファレンス
ホームNetworkManagement.MobileBroadband › IMbnRegistrationEvents

IMbnRegistrationEvents

COM
IIDdcbbbab6-200a-4bbb-aaee-338e368af6fa継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

登録イベントが発生したことを示すために使用される通知インターフェイス。

解説(Remarks)

通知に登録する手順は次のとおりです。

  1. IMbnInterfaceManager オブジェクトで QueryInterface を呼び出して、IConnectionPointContainer インターフェイスを取得します。
  2. 返されたインターフェイスで FindConnectionPoint を呼び出し、riidIID_IMbnRegistrationEvents を渡します。
  3. 返された接続ポイントで Advise を呼び出し、pUnkIMbnRegistrationEvents を実装するオブジェクトの IUnknown インターフェイスへのポインターを渡します。
手順 2 で返された接続ポイントで Unadvise を呼び出すと、通知を終了できます。

COM 通知に登録するコードの例については、COM Connection Points の記事の Client セクションを参照してください。

メソッド 4

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT OnRegisterModeAvailable(IMbnRegistration* newInterface)

登録モード情報が利用可能になったことを示すために、モバイル ブロードバンド サービスによって呼び出される通知メソッド。

newInterfaceIMbnRegistration*in該当するデバイスを表す IMbnRegistration インターフェイスへのポインター。

戻り値

このメソッドは S_OK を返す必要があります。

解説(Remarks)

OnRegisterModeAvailable メソッドは、デバイスの登録モード情報が利用可能になったことを通知するために、モバイル ブロードバンド サービスによって呼び出されます。アプリケーションは、渡された IMbnRegistrationGetRegisterMode メソッドを呼び出して、デバイスの現在の登録モードを取得できます。

vtbl 4 HRESULT OnRegisterStateChange(IMbnRegistration* newInterface)

デバイスの登録状態の変化を示すために、モバイル ブロードバンド サービスによって呼び出される通知メソッド。

newInterfaceIMbnRegistration*in該当するデバイスを表す IMbnRegistration インターフェイスへのポインター。

戻り値

このメソッドは S_OK を返す必要があります。

解説(Remarks)

OnRegisterStateChange メソッドは、デバイスの登録状態の変化を通知するために、モバイル ブロードバンド サービスによって呼び出されます。次のいずれかが変化した場合に呼び出されることがあります。

アプリケーションは、渡された IMbnRegistration インターフェイスを使用して、更新された登録状態データを取得できます。
vtbl 5 HRESULT OnPacketServiceStateChange(IMbnRegistration* newInterface)

デバイスのパケット サービス状態の変化を示すために、モバイル ブロードバンド サービスによって呼び出される通知メソッド。

newInterfaceIMbnRegistration*inパケット サービス状態が変化したデバイスを表す IMbnRegistration インターフェイスへのポインター。

戻り値

このメソッドは S_OK を返す必要があります。

解説(Remarks)

OnPacketServiceStateChange メソッドは、デバイスのパケット サービス状態の変化を通知するために、モバイル ブロードバンド サービスによって呼び出されます。これは、現在のデータ クラス、利用可能なデータ クラス、またはパケット アタッチのネットワーク エラーに変化があった場合に発生することがあります。 アプリケーションは、渡された IMbnRegistration インターフェイスを使用して、更新された状態値を取得できます。

vtbl 6 HRESULT OnSetRegisterModeComplete(IMbnRegistration* newInterface, DWORD requestID, HRESULT status)

登録モードの設定操作を完了したことを示すために、モバイル ブロードバンド サービスによって呼び出される通知メソッド。

newInterfaceIMbnRegistration*in該当するデバイスを表す IMbnRegistration インターフェイスへのポインター。処理を行うアプリケーションは、このインターフェイスを使用してデバイスの現在の登録状態を取得できます。
requestIDDWORDin登録モードの設定操作を追跡するためにモバイル ブロードバンド サービスによって割り当てられた要求 ID。
statusHRESULTin

操作の結果を示すステータス コード。

呼び出し側のアプリケーションでは、次のいずれかの値が想定されます。

意味
S_OK
操作は成功しました。
HRESULT_FROM_WIN32(ERROR_INVALID_STATE)
既にアクティブなネットワーク接続があります。既にデータ接続が確立されている場合、登録モードを変更することはできません。アプリケーションは、まず接続を切断してから登録モードの変更を試みる必要があります。デバイスが既に要求されたモードであり、要求されたプロバイダーに接続されている場合、戻りコードは S_OK になります。
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
操作はデバイスでサポートされていません。要求された登録モードをサポートしていないデバイスから返されることがあります。たとえば、CDMA デバイスは手動登録モードへの切り替えを要求されたときにこのエラーを返します。
E_FAIL
操作を完了できませんでした。詳細はネットワーク エラー コードで確認できます。
E_INVALIDARG
登録モードの入力が無効であるか、入力として指定されたプロバイダー ID が最大長の 7 文字を超えているか、指定されたデータ クラスが無効です。入力に無効な引数が指定された場合、モバイル ブロードバンド サービスは要求をデバイスに送信しません。

手動登録モードでは、これは要求されたプロバイダーが禁止されていることを示します。

E_MBN_PIN_REQUIRED
操作を完了するには PIN が必要です。
E_MBN_SERVICE_NOT_ACTIVATED
ネットワーク サービスのサブスクリプションの有効期限が切れています。
E_MBN_PROVIDER_NOT_VISIBLE
これは手動登録モードに切り替える場合にのみ発生します。切り替えは成功しますが、要求されたプロバイダーは検出されません。デバイスは、要求されたプロバイダーが検出可能になったときに、そのプロバイダーに登録します。

戻り値

このメソッドは 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_IMbnRegistrationEvents "{DCBBBAB6-200A-4BBB-AAEE-338E368AF6FA}"
#usecom global IMbnRegistrationEvents IID_IMbnRegistrationEvents "{}"
#comfunc global IMbnRegistrationEvents_OnRegisterModeAvailable     3 sptr
#comfunc global IMbnRegistrationEvents_OnRegisterStateChange       4 sptr
#comfunc global IMbnRegistrationEvents_OnPacketServiceStateChange  5 sptr
#comfunc global IMbnRegistrationEvents_OnSetRegisterModeComplete   6 sptr,int,int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。