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

IMbnPinManager

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

公式ドキュメント

デバイスの PIN に関する重要な詳細を提供します。

解説(Remarks)

アプリケーションは、IMbnInterfaceQueryInterface メソッドを呼び出すことで、このインターフェイスを取得できます。

メソッド 3

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

vtbl 3 HRESULT GetPinList(SAFEARRAY** pinList)

デバイスがサポートするさまざまな PIN の種類の一覧を取得します。

pinListSAFEARRAY**outデバイスがサポートする PIN の種類を表す MBN_PIN_TYPE 値の一覧へのポインター。GetPinListS_OK 以外を返す場合、pinListNULL になります。それ以外の場合、呼び出し側アプリケーションは SafeArrayDestroy を呼び出して、割り当てられたメモリを解放する必要があります。

戻り値

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

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_PENDING
PIN の種類が利用できません。モバイル ブロードバンド サービスが、情報を取得するためにデバイスを現在調べています。PIN の種類が利用可能になると、モバイル ブロードバンド サービスは OnPinListAvailable メソッド(IMbnPinManagerEvents)を呼び出します。
E_MBN_PIN_REQUIRED
この操作を行うには、デバイスで PIN の入力が必要です。
E_MBN_SIM_NOT_INSERTED
SIM が挿入されていません。
E_MBN_BAD_SIM
不正な SIM がデバイスに挿入されています。

解説(Remarks)

回復可能なエラー E_MBN_PIN_REQUIREDE_MBN_SIM_NOT_INSERTEDE_MBN_BAD_SIM の場合、モバイル ブロードバンド サービスは、エラー状態が解消された時点でこの情報をデバイスから取得しようとします。この情報を取得している間、GetPinList の呼び出しは E_PENDING を返します。取得操作が完了すると、モバイル ブロードバンド サービスは IMbnPinManagerEventsOnPinListAvailable メソッドを呼び出します。

vtbl 4 HRESULT GetPin(MBN_PIN_TYPE pinType, IMbnPin** pin)

特定の種類の PIN を取得します。

pinTypeMBN_PIN_TYPEin要求された PIN の種類を表す MBN_PIN_TYPE 値。
pinIMbnPin**out要求された PIN の種類に対応する IMbnPin のアドレスへのポインター。このメソッドが S_OK 以外の値を返す場合、このパラメーターは NULL になります。それ以外の場合、呼び出し側アプリケーションは、このインターフェイスの使用が終わったら解放する必要があります。

戻り値

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

戻り値 説明
S_OK
メソッドは正常に完了しました。
E_PENDING
PIN の種類が利用できません。モバイル ブロードバンド サービスが、この情報を取得するためにデバイスを現在調べています。PIN の種類が利用可能になると、モバイル ブロードバンド サービスは IMbnPinManagerEventsOnPinListAvailable メソッドを呼び出します。
E_MBN_PIN_REQUIRED
操作を完了するには PIN が必要です。呼び出し側アプリケーションは、デバイスの PIN ロックが解除されたときにこの操作を再試行できます。
E_MBN_SIM_NOT_INSERTED
デバイスに SIM がありません。
E_MBN_BAD_SIM
デバイスに不正な SIM があります。
HRESULT_FROM_WIN32(ERROR_NOT_SUPPORTED)
要求された PIN の種類は、デバイスでサポートされていません。
vtbl 5 HRESULT GetPinState(DWORD* requestID)

デバイスの現在の PIN 状態を取得します。

requestIDDWORD*outこの非同期要求に対してモバイル ブロードバンド サービスが設定する要求 ID へのポインター。応答には同じ要求 ID が含まれます。

戻り値

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

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

解説(Remarks)

GetPinState メソッドは、デバイスの PIN 状態を求める非同期要求を開始します。PIN 状態は、要求された操作を完了するために PIN の入力が必要かどうかを示します。また、デバイスが想定している PIN の種類に関する情報も含まれ、オプションで、有効な PIN を入力するための残り試行回数を提供します。

このメソッドは常にデバイスの現在の PIN 状態を返します。このオブジェクトが作成された時点の PIN 状態をキャッシュすることはありません。代わりに、常にデバイスに問い合わせ、デバイスの現在の PIN 状態を返します。

これは非同期操作であるため、GetPinState は直ちに戻ります。操作が完了すると、モバイル ブロードバンド サービスは IMbnPinManagerEventsOnGetPinStateComplete メソッドを呼び出します。

操作が E_MBN_PIN_REQUIRED を返した場合、またはデバイスが報告する準備完了状態が MBN_READY_STATE_DEVICE_LOCKED である場合は常に、アプリケーションはこのメソッドを使用して、デバイスまたは SIM のロック解除に必要な PIN の種類を照会する必要があります。

この操作の進行中にモバイル ブロードバンド デバイスがシステムから取り外された場合、IMbnPinManagerEventsOnGetPinStateComplete メソッドの呼び出しは保証されません。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_IMbnPinManager "{DCBBBAB6-2005-4BBB-AAEE-338E368AF6FA}"
#usecom global IMbnPinManager IID_IMbnPinManager "{}"
#comfunc global IMbnPinManager_GetPinList   3 var
#comfunc global IMbnPinManager_GetPin       4 int,sptr
#comfunc global IMbnPinManager_GetPinState  5 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。