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

IMbnConnectionProfileManager

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

公式ドキュメント

接続プロファイルおよび接続通知へのアクセスを提供します。

解説(Remarks)

このインターフェイスは、次の通知インターフェイスへのアクセスに使用できます。

登録する通知シンク IID
IMbnConnectionProfileManagerEvents IID_IMbnConnectionProfileManagerEvents
MbnConnectionProfileEvents IID_IMbnConnectionProfileEvents

アプリケーションは、クラス ID に CLSID_IMbnConnectionProfileManager を指定して CoCreateInstance を呼び出すことで、このインターフェイスを取得できます。

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

  1. IMbnConnectionProfileManager オブジェクトに対して QueryInterface を呼び出し、IConnectionPointContainer インターフェイスを取得します。
  2. 登録する各通知シンクについて、取得したインターフェイスに対して FindConnectionPoint を呼び出し、通知シンクに対応する IID を riid に渡します。
  3. 手順 2 で返された各接続ポイントについて、その接続ポイントに対して Advise を呼び出し、対応する通知インターフェイスを実装するオブジェクトの IUnknown インターフェイスへのポインターを pUnk に渡します。
通知は、手順 2 で返された接続ポイントに対して Unadvise を呼び出すことで終了できます。

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

メソッド 3

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

vtbl 3 HRESULT GetConnectionProfiles(IMbnInterface* mbnInterface, SAFEARRAY** connectionProfiles)

デバイスに関連付けられている接続プロファイルの一覧を取得します。

mbnInterfaceIMbnInterface*inプロファイル要求の対象となるデバイスを表す IMbnInterface。これが NULL の場合、この関数はシステムに存在するすべてのプロファイルを返します。
connectionProfilesSAFEARRAY**outデバイスで利用可能なすべての接続プロファイルを表す IMbnConnectionProfile インターフェイスの配列。このメソッドが S_OK 以外を返した場合、配列ポインターは NULL になります。それ以外の場合、呼び出し元アプリケーションは、最終的に SafeArrayDestroy を呼び出して割り当てられたメモリを解放する必要があります。

戻り値

このメソッドは次のいずれかの値を返します。

リターン コード 説明
S_OK
メソッドは正常に完了しました。
E_HANDLE
インターフェイスが無効です。多くの場合、モバイル ブロードバンド デバイスがシステムから取り外されたことが原因です。
HRESULT_FROM_WIN32(ERROR_NOT_READY)
デバイスの準備ができていません。デバイスが MBN_READY_STATE_INITIALIZED ではないため、サブスクライバー ID を取得できません。
HRESULT_FROM_WIN32(ERROR_SERVICE_NOT_ACTIVE)
このシステムでモバイル ブロードバンド サービスが実行されていません。

解説(Remarks)

この操作が特定のデバイスに対して呼び出されると、デバイスが現在報告しているサブスクライバー ID と同じサブスクライバー ID を持つプロファイルの一覧が返されます。インターフェイスに関連付けられたサブスクライバー ID は、IMbnInterfaceGetSubscriberInformation メソッドを使用して取得できます。

接続プロファイルは、デバイスのサブスクライバー ID に関連付けられます。GSM デバイスの場合、サブスクライバー ID は SIM の International Mobile Subscriber Identity (IMSI) です。CDMA デバイスの場合は、Mobile Identification Number (MIN) 文字列または International Roaming MIN (IRM) 文字列です。

vtbl 4 HRESULT GetConnectionProfile(IMbnInterface* mbnInterface, LPWSTR profileName, IMbnConnectionProfile** connectionProfile)

指定したモバイル ブロードバンド デバイスに関連付けられている特定の接続プロファイルを取得します。

mbnInterfaceIMbnInterface*inプロファイル要求の対象となるデバイスを表す IMbnInterfacembnInterfaceNULL の場合、この関数はシステム内のいずれかのデバイスに関連付けられた、指定した名前のプロファイルを返します。
profileNameLPWSTRin接続プロファイルの名前を含む null 終端文字列。
connectionProfileIMbnConnectionProfile**out目的の接続プロファイルを表す IMbnConnectionProfile インターフェイス。このメソッドが S_OK 以外を返した場合、これは NULL になります。

戻り値

このメソッドは次のいずれかの値を返します。

リターン コード 説明
S_OK
メソッドは正常に完了しました。
E_HANDLE
インターフェイスが無効です。多くの場合、モバイル ブロードバンド デバイスがシステムから取り外されたことが原因です。
HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
指定した名前のプロファイルは存在しません。
HRESULT_FROM_WIN32(ERROR_NOT_READY)
デバイスの準備ができていません。デバイスが MBN_READY_STATE_INITIALIZED ではないため、サブスクライバー ID を取得できません。
HRESULT_FROM_WIN32(ERROR_NOT_FOUND)
指定した名前のプロファイルは存在しません。

解説(Remarks)

接続プロファイルは、デバイスのサブスクライバー ID に関連付けられます。GSM デバイスの場合、サブスクライバー ID は SIM の International Mobile Subscriber Identity (IMSI) です。CDMA デバイスの場合は、Mobile Identification Number (MIN) 文字列または International Roaming MIN (IRM) 文字列です。

CreateConnectionProfile を使用して新しいプロファイルが作成された場合、呼び出し元は、その新しいプロファイルの名前を指定して GetConnectionProfile を呼び出す前に、OnConnectionProfileArrival イベントを受信するまで待機する必要があります。そうしないと、GetConnectionProfile API 呼び出しが HRESULT_FROM_WIN32(ERROR_NOT_FOUND) で失敗する可能性があります。

vtbl 5 HRESULT CreateConnectionProfile(LPWSTR xmlProfile)

デバイス用の新しい接続プロファイルを作成します。

xmlProfileLPWSTRinMobile Broadband Profile Schema Reference に準拠した XML 形式のプロファイル データを含む null 終端文字列。

戻り値

このメソッドは次のいずれかの値を返します。

リターン コード 説明
S_OK
メソッドは正常に完了しました。
HRESULT_FROM_WIN32(ERROR_ALREADY_EXISTS)
指定した名前のプロファイルは既に存在します。
E_MBN_INVALID_PROFILE
プロファイルがモバイル ブロードバンド プロファイル スキーマに準拠していません。
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
プロファイルで渡されたアイコン ファイルの場所が無効か、アクセスできません。
E_MBN_DEFAULT_PROFILE_EXIST
呼び出し元アプリケーションが XML データで既定のプロファイル フラグを指定しましたが、モバイル ブロードバンド デバイスの既定のプロファイルは既に存在します。

解説(Remarks)

これは同期操作です。この関数呼び出しが成功すると、新しいプロファイルが作成され、モバイル ブロードバンド サービスは IMbnConnectionProfileManagerEvents インターフェイスの OnConnectionProfileArrival メソッドを呼び出します。

プロファイル データでアイコン ファイルの場所が指定されている場合、モバイル ブロードバンド サービスは指定された場所からアイコン ファイルを自身のストアにコピーします。その後、IMbnConnectionProfile オブジェクトに対してアイコン ファイルの場所を照会すると、モバイル ブロードバンド サービスがアイコン ファイルを格納したファイルの場所が返されます。プロファイルがシステムから削除されると、そのアイコン ファイルもシステムから削除されます。アイコン ファイルは、32x32 ピクセルのサイズの bmp ファイル形式である必要があります。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IMbnConnectionProfileManager "{DCBBBAB6-200F-4BBB-AAEE-338E368AF6FA}"
#usecom global IMbnConnectionProfileManager IID_IMbnConnectionProfileManager "{BDFEE05A-4418-11DD-90ED-001C257CCFF1}"
#comfunc global IMbnConnectionProfileManager_GetConnectionProfiles    3 sptr,var
#comfunc global IMbnConnectionProfileManager_GetConnectionProfile     4 sptr,wstr,sptr
#comfunc global IMbnConnectionProfileManager_CreateConnectionProfile  5 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。