IMbnSubscriberInformation
COM公式ドキュメント
加入者情報へのアクセスを提供します。
解説(Remarks)
このインターフェイスは、IMbnInterface の GetSubscriberInformation メソッドによって返されます。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
デバイスの加入者 ID です。
| SubscriberID | LPWSTR* | out | 加入者識別子(IMSI等)の文字列を受け取る出力ポインタ。呼び出し側が解放する。 |
解説(Remarks)
これは数字で構成される null 終端文字列です。GSM デバイスの場合は、International Mobile Equipment Identity (IMSI) 文字列(最大 15 桁)を表します。CDMA デバイスの場合は、Mobile Identification Number (MIN) 文字列または International Roaming MIN (IRM) 文字列(10 桁)を表します。
通常、この値はデバイスのレディ状態が MBN_READY_STATE_INITIALIZED の場合にのみ利用できます。場合によっては、MBN_READY_STATE_DEVICE_LOCKED、MBN_READY_STATE_BAD_SIM、MBN_READY_STATE_FAILURE などの他の状態でも設定されることがあります。この情報が利用できない場合は、空の文字列 "" が返されます。
デバイスの SIM International circuit card number (SimICCID) です。
| SimIccID | LPWSTR* | out | SIMカードのICCID(集積回路カード識別子)文字列を受け取る出力ポインタ。呼び出し側が解放する。 |
解説(Remarks)
SIM の International Circuit Card Id は長さが 15 桁から 20 桁の範囲で異なり、文字で表現されます。この値はデバイスのレディ状態が MBN_READY_STATE_INITIALIZED の場合にのみ利用できます。場合によっては、MBN_READY_STATE_DEVICE_LOCKED、MBN_READY_STATE_BAD_SIM、MBN_READY_STATE_FAILURE などの状態でも設定されることがあります。この情報が利用できない場合は、空の文字列が返されます。
デバイスに関連付けられた電話番号です。
| TelephoneNumbers | SAFEARRAY** | out | 加入者に紐づく電話番号の一覧をSAFEARRAYで受け取る出力ポインタ。 |
解説(Remarks)
このプロパティは、加入者に割り当てられた電話番号(TN)の一覧を提供します。GSM では、これらの番号は Mobile Station ISDN Numbers (MSISDN) と呼ばれます。CDMA では Mobile Directory Numbers (MDN) と呼ばれます。
この値は、レディ状態が MBN_READY_STATE_INITIALIZED に達するまで設定されません。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMbnSubscriberInformation "{459ECC43-BCF5-11DC-A8A8-001321F1405F}" #usecom global IMbnSubscriberInformation IID_IMbnSubscriberInformation "{}" #comfunc global IMbnSubscriberInformation_get_SubscriberID 3 var #comfunc global IMbnSubscriberInformation_get_SimIccID 4 var #comfunc global IMbnSubscriberInformation_get_TelephoneNumbers 5 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IMbnSubscriberInformation "{459ECC43-BCF5-11DC-A8A8-001321F1405F}" #usecom global IMbnSubscriberInformation IID_IMbnSubscriberInformation "{}" #comfunc global IMbnSubscriberInformation_get_SubscriberID 3 sptr #comfunc global IMbnSubscriberInformation_get_SimIccID 4 sptr #comfunc global IMbnSubscriberInformation_get_TelephoneNumbers 5 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。