IMbnSmsEvents
COM公式ドキュメント
この通知インターフェイスは、SMS 操作の完了状況やデバイスの SMS 状態の変化をアプリケーションに通知します。
解説(Remarks)
通知を登録する手順は次のとおりです。
- IMbnInterfaceManager オブジェクトに対して QueryInterface を呼び出し、IConnectionPointContainer インターフェイスを取得します。
- 取得したインターフェイスに対して FindConnectionPoint を呼び出し、riid に IID_IMbnSmsEvents を渡します。
- 返されたコネクション ポイントに対して Advise を呼び出し、IMbnSmsEvents を実装するオブジェクトの IUnknown インターフェイスへのポインターを pUnk に渡します。
COM 通知を登録するコードの例については、COM Connection Points の記事の Client セクションを参照してください。
メソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
SMS 構成が変更された、または利用可能になったことを示す通知メソッドです。
| sms | IMbnSms* | in | SMS 構成が利用可能になったモバイル ブロードバンド デバイスを表す IMbnSms インターフェイスへのポインターです。 |
戻り値
このメソッドは S_OK を返す必要があります。
解説(Remarks)
アプリケーションは IMbnSms を使用して、新しい構成の詳細を取得できます。
SMS 構成の設定操作が完了したこと、または SMS サブシステムが初期化されて動作可能になったことを通知するメソッドです。
| sms | IMbnSms* | in | SMS 構成が更新されたモバイル ブロードバンド デバイスを表す IMbnSms インターフェイスへのポインターです。 | ||||||||||||
| requestID | DWORD | in | 操作を識別するためにモバイル ブロードバンド サービスによって割り当てられたリクエスト ID です。 | ||||||||||||
| status | HRESULT | in | 操作の結果を示すステータス コードです。 呼び出し元のアプリケーションは、次のいずれかの値を受け取ることが想定されます。
|
戻り値
このメソッドは S_OK を返す必要があります。
解説(Remarks)
このメソッドは、SMS 構成の設定操作の完了をアプリケーションに通知するために使用されます。アプリケーションは、渡された IMbnSms インターフェイスを使用して、新しい構成情報を取得できます。また、デバイスがその SMS サブシステムの準備完了を示すためにも使用されます。システム起動時やデバイス挿入時に、このメソッドが呼び出され、デバイスの SMS サブシステムが動作可能であることをアプリケーションに通知します。
メッセージ送信操作の完了を示す通知メソッドです。
| sms | IMbnSms* | in | 操作が完了したモバイル ブロードバンド デバイスを表す IMbnSms インターフェイスです。 | ||||||||||||||||||||||||||||||||
| requestID | DWORD | in | 操作を識別するためにモバイル ブロードバンド サービスによって割り当てられたリクエスト ID です。 | ||||||||||||||||||||||||||||||||
| status | HRESULT | in | 操作の結果を示すステータス コードです。 呼び出し元のアプリケーションは、次のいずれかの値を受け取ることが想定されます。
|
戻り値
このメソッドは S_OK を返す必要があります。
解説(Remarks)
送信操作は、デバイスがネットワークへの登録に成功した後にのみ試みるべきです。
メッセージ読み取り操作の完了を示す通知メソッドです。
| sms | IMbnSms* | in | 操作が完了したメッセージ ストアを表す IMbnSms インターフェイスです。 | ||||||||||||||||||
| smsFormat | MBN_SMS_FORMAT | in | SMS メッセージの形式を定義する MBN_SMS_FORMAT 値です。 | ||||||||||||||||||
| readMsgs | SAFEARRAY* | in | デバイスから読み取られたメッセージの配列です。 | ||||||||||||||||||
| moreMsgs | VARIANT_BOOL | in | 処理中のメッセージがまだ存在するかどうかを示すブール値です。これが TRUE の場合、メッセージがなくなり moreMsgs が FALSE になるまで、OnSmsReadComplete が繰り返し呼び出されます。 | ||||||||||||||||||
| requestID | DWORD | in | メッセージ読み取り操作を識別するためにモバイル ブロードバンド サービスによって割り当てられたリクエスト ID です。 | ||||||||||||||||||
| status | HRESULT | in | 操作の結果を示すステータス コードです。 呼び出し元のアプリケーションは、次のいずれかの値を受け取ることが想定されます。
|
戻り値
このメソッドは S_OK を返す必要があります。
解説(Remarks)
GSM デバイスの場合、呼び出し元のアプリケーションは readMsgs の各要素に対して QueryInterface を呼び出し、IMbnSmsReadMsgPdu インターフェイスを取得する必要があります。
CDMA デバイスの場合、smsFormat が MBN_SMS_FORMAT_TEXT であれば、アプリケーションは QueryInterface を呼び出して IMbnSmsReadMsgTextCdma インターフェイスを取得します。一方、smsFormat が MBN_SMS_FORMAT_PDU であれば、アプリケーションは QueryInterface を呼び出して IMbnSmsReadMsgPdu インターフェイスを取得します。
読み取りリクエストによって大量のメッセージが読み取られる場合、moreMsgs が読み取るべきメッセージがもうないことを示すまで、OnSmsReadComplete が繰り返し呼び出されることがあります。
新しいクラス 0/フラッシュ メッセージの到着を通知するメソッドです。
| sms | IMbnSms* | in | 新しいメッセージを受信したモバイル ブロードバンド デバイスを表す IMbnSms インターフェイスです。 |
| smsFormat | MBN_SMS_FORMAT | in | 新しい SMS メッセージの形式を定義する MBN_SMS_FORMAT 値です。 |
| readMsgs | SAFEARRAY* | in | 新しいメッセージの配列です。 |
戻り値
このメソッドは S_OK を返す必要があります。
解説(Remarks)
GSM デバイスの場合、呼び出し元のアプリケーションは readMsgs の各要素に対して QueryInterface を呼び出し、IMbnSmsReadMsgPdu インターフェイスを取得する必要があります。
CDMA デバイスの場合、smsFormat が MBN_SMS_FORMAT_TEXT であれば、呼び出し元のアプリケーションは QueryInterface を呼び出して IMbnSmsReadMsgTextCdma インターフェイスを取得します。smsFormat が MBN_SMS_FORMAT_PDU であれば、呼び出し元のアプリケーションは QueryInterface を呼び出して IMbnSmsReadMsgPdu インターフェイスを取得します。
SMS 削除操作の完了を通知するメソッドです。
| sms | IMbnSms* | in | メッセージが削除されたモバイル ブロードバンド デバイスを表す IMbnSms インターフェイスです。 | ||||||||||||||||||
| requestID | DWORD | in | 操作を識別するためにモバイル ブロードバンド サービスによって割り当てられたリクエスト ID です。 | ||||||||||||||||||
| status | HRESULT | in | 操作の結果を示すステータス コードです。 呼び出し元のアプリケーションは、次のいずれかの値を受け取ることが想定されます。
|
戻り値
このメソッドは S_OK を返す必要があります。
メッセージ ストアのステータスの変化を示す通知メソッドです。
| sms | IMbnSms* | in | メッセージ ストアのステータスが変化したモバイル ブロードバンド デバイスを表す IMbnSms インターフェイスです。 |
戻り値
このメソッドは S_OK を返す必要があります。
解説(Remarks)
アプリケーションは IMbnSms インターフェイスを使用して、新しいステータス情報を取得できます。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IMbnSmsEvents "{DCBBBAB6-2016-4BBB-AAEE-338E368AF6FA}" #usecom global IMbnSmsEvents IID_IMbnSmsEvents "{}" #comfunc global IMbnSmsEvents_OnSmsConfigurationChange 3 sptr #comfunc global IMbnSmsEvents_OnSetSmsConfigurationComplete 4 sptr,int,int #comfunc global IMbnSmsEvents_OnSmsSendComplete 5 sptr,int,int #comfunc global IMbnSmsEvents_OnSmsReadComplete 6 sptr,int,var,int,int,int #comfunc global IMbnSmsEvents_OnSmsNewClass0Message 7 sptr,int,var #comfunc global IMbnSmsEvents_OnSmsDeleteComplete 8 sptr,int,int #comfunc global IMbnSmsEvents_OnSmsStatusChange 9 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IMbnSmsEvents "{DCBBBAB6-2016-4BBB-AAEE-338E368AF6FA}" #usecom global IMbnSmsEvents IID_IMbnSmsEvents "{}" #comfunc global IMbnSmsEvents_OnSmsConfigurationChange 3 sptr #comfunc global IMbnSmsEvents_OnSetSmsConfigurationComplete 4 sptr,int,int #comfunc global IMbnSmsEvents_OnSmsSendComplete 5 sptr,int,int #comfunc global IMbnSmsEvents_OnSmsReadComplete 6 sptr,int,sptr,int,int,int #comfunc global IMbnSmsEvents_OnSmsNewClass0Message 7 sptr,int,sptr #comfunc global IMbnSmsEvents_OnSmsDeleteComplete 8 sptr,int,int #comfunc global IMbnSmsEvents_OnSmsStatusChange 9 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。