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

IMbnMultiCarrierEvents

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

公式ドキュメント

このインターフェイスは、非同期の IMbnMultiCarrier メソッド呼び出しを処理するために使用される通知インターフェイスです。

メソッド 5

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

vtbl 3 HRESULT OnSetHomeProviderComplete(IMbnMultiCarrier* mbnInterface, DWORD requestID, HRESULT status)

この通知メソッドは、SetHomeProvider 操作の完了を示すために Mobile Broadband サービスによって呼び出されます。

mbnInterfaceIMbnMultiCarrier*inMobile Broadband デバイスの SetHomeProvider 操作を表す IMbnMultiCarrier オブジェクトです。
requestIDDWORDinMobile Broadband サービスが SetHomeProvider 操作に割り当てたリクエスト ID です。
statusHRESULTin

SetHomeProvider の結果を示すステータスコードです。

意味
S_OK
操作は成功しました。
E_MBN_PROVIDER_NOT_VISIBLE
要求されたプロバイダーは表示されていません。
E_INVALIDARG
登録モードの入力が無効であるか、入力として指定されたプロバイダー ID が最大長の 7 文字を超えているか、指定されたデータクラスが無効です。入力に無効な引数が指定された場合、Mobile Broadband サービスはリクエストをデバイスに送信しません。 手動登録モードでは、これは要求されたプロバイダーが禁止されていることを示します。
E_FAIL
操作を完了できませんでした。詳細はネットワークエラーコードで確認できます。
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
この操作はデバイスでサポートされていません。マルチキャリアをサポートしていないデバイスから返される場合があります。

戻り値

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

解説(Remarks)

statusS_OK の場合、インターフェイスのホームプロバイダーは SetHomeProvider によって新しいプロバイダーに正常に設定されています。それ以外の場合、元のホームプロバイダーは変更されず、接続やパケットサービスなど、インターフェイスの以前の状態は変更されないままとなります。

vtbl 4 HRESULT OnCurrentCellularClassChange(IMbnMultiCarrier* mbnInterface)

この通知メソッドは、GetCurrentCellularClass 操作の完了を示すために Mobile Broadband サービスによって呼び出されます。

mbnInterfaceIMbnMultiCarrier*inMobile Broadband デバイスの GetCurrentCellularClass 操作を表す IMbnMultiCarrier オブジェクトです。

戻り値

このメソッドは次のいずれかの値を返すことができます。

リターンコード 説明
S_OK
操作は成功しました。
vtbl 5 HRESULT OnPreferredProvidersChange(IMbnMultiCarrier* mbnInterface)

この通知メソッドは、GetPreferredProviders 操作の完了と、デバイスの優先プロバイダーリストの変更を示すために Mobile Broadband サービスによって呼び出されます。

mbnInterfaceIMbnMultiCarrier*in

IMbnMultiCarrier

Mobile Broadband デバイスの GetPreferredProviders 操作を表す IMbnMultiCarrier オブジェクトです。

戻り値

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

解説(Remarks)

デバイスの優先プロバイダーリストは、SMS または OTA(Over The Air)更新によってネットワークから更新される場合があります。Mobile Broadband サービスは、優先プロバイダーリストの変更をアプリケーションに通知するためにこのメソッドを呼び出します。アプリケーションは、IMbnMultiCarrier オブジェクトの GetPreferredProviders メソッドを呼び出して、更新された優先プロバイダーのリストを取得できます。

vtbl 6 HRESULT OnScanNetworkComplete(IMbnMultiCarrier* mbnInterface, DWORD requestID, HRESULT status)

この通知メソッドは、ScanNetwork 操作の完了を示すために Mobile Broadband サービスによって呼び出されます。

mbnInterfaceIMbnMultiCarrier*inMobile Broadband デバイスの ScanNetwork 操作を表す IMbnMultiCarrier オブジェクトです。
requestIDDWORDinMobile Broadband サービスが ScanNetwork 操作に割り当てたリクエスト ID です。
statusHRESULTin

ScanNetwork の結果を示すステータスコードです。

意味
S_OK
操作は成功しました。
E_MBN_RADIO_POWER_OFF
デバイスの無線がオフになっているため、表示可能なネットワークのリストを取得できません。アプリケーションは、無線がオンになった通知を受け取ったときにネットワークスキャンリクエストを発行できます。
E_MBN_DEVICE_BUSY
デバイスがビジー状態であり、現在はネットワークスキャン操作を実行できません。これは、データ接続が確立されているときにネットワークスキャン操作をサポートしないデバイスから返されます。
E_MBN_ALREADY_ACTIVE
ネットワークスキャン操作が既に進行中です。
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
この操作はデバイスでサポートされていません。マルチキャリアをサポートしていないデバイスから返される場合があります。

戻り値

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

解説(Remarks)

statusS_OK の場合、Mobile Broadband サービスは表示可能なプロバイダーのキャッシュされたリストを正常に更新しました。アプリケーションは、渡された IMbnMultiCarrierGetVisibleProviders メソッドを呼び出して、表示可能なプロバイダーのリストを取得できます。

複数のアプリケーションが通知に登録している場合、このメソッドは登録済みのすべてのアプリケーションで呼び出されます。つまり、更新操作を開始していないアプリケーションも通知を受け取ります。

vtbl 7 HRESULT OnInterfaceCapabilityChange(IMbnMultiCarrier* mbnInterface)

この通知メソッドは、インターフェイスの機能を更新する SetHomeProvider 操作の完了を示すために Mobile Broadband サービスによって呼び出されます。

mbnInterfaceIMbnMultiCarrier*inMobile Broadband デバイスを表す IMbnMultiCarrier オブジェクトです。

戻り値

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

解説(Remarks)

SetHomeProvider の呼び出しによってネットワークキャリアが変更されると、インターフェイスの機能が新しいキャリアの機能で更新された時点で OnInterfaceCapabilityChange が呼び出されます。アプリケーションは、SetHomeProvider に渡された IMbnInterface オブジェクトの GetInterfaceCapability メソッドを呼び出して、利用可能な機能情報を取得できます。IMbnInterface は、OnInterfaceCapabilityChange に渡された IMbnMultiCarrier オブジェクトで QueryInterface を呼び出すことで取得できます。インターフェイスの機能の一覧については、MBN_INTERFACE_CAPS を参照してください。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IMbnMultiCarrierEvents "{DCDDDAB6-2021-4BBB-AAEE-338E368AF6FA}"
#usecom global IMbnMultiCarrierEvents IID_IMbnMultiCarrierEvents "{}"
#comfunc global IMbnMultiCarrierEvents_OnSetHomeProviderComplete     3 sptr,int,int
#comfunc global IMbnMultiCarrierEvents_OnCurrentCellularClassChange  4 sptr
#comfunc global IMbnMultiCarrierEvents_OnPreferredProvidersChange    5 sptr
#comfunc global IMbnMultiCarrierEvents_OnScanNetworkComplete         6 sptr,int,int
#comfunc global IMbnMultiCarrierEvents_OnInterfaceCapabilityChange   7 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。