IESOpenMmiEvent
COM公式ドキュメント
OpenMMI イベントから情報を取得します。
解説(Remarks)
このインターフェイスのインターフェイス識別子 (IID) を宣言するには、__uuidof 演算子を使用します: __uuidof(IESOpenMmiEvent)。
メソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
GetDialogNumber メソッドは、送信側デバイスが生成したダイアログ番号を返します。ダイアログ番号は、受信側が OpenMMI イベントを処理している間、そのダイアログを受信側に対して識別するために使用されます。
| pDialogRequest | DWORD* | out | OpenMMI 要求を生成した操作 (たとえば IBDA::CheckEntitlementToken の呼び出し) におけるダイアログ要求の値へのポインター。 |
| pDialogNumber | DWORD* | out | ダイアログを開くデバイスが生成した、ダイアログを識別する番号を取得します。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
GetDialogType メソッドは、開こうとしているダイアログのエクスペリエンスの種類を表す GUID を取得します。
| guidDialogType | GUID* | out | ダイアログのエクスペリエンスの種類を識別する GUID を取得します。アプリケーションがそのエクスペリエンスの種類を認識できない場合は、ERROR_ INVALID_TYPE の結果を返してイベントを完了として設定する必要があります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
OpenMMI イベントに関連付けられたデータを、バイトストリーム形式で取得します。このデータには、開かれるダイアログの内容、またはそのダイアログを格納する Uniform Resource Locator (URL) を指定できます。
| pbData | SAFEARRAY** | out | イベントデータを格納する SAFEARRAY オブジェクトへのポインター。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
OpenMMI イベントに関連付けられたデータを、Unicode 文字列形式で取得します。このデータには、開かれるダイアログの内容、またはそのダイアログを格納する Uniform Resource Locator (URL) を指定できます。
| pbstrBaseUrl | LPWSTR* | out | ダイアログを格納する URL を受け取る文字列へのポインター。 このメモリの解放は呼び出し側の責任です。 |
| pbstrData | LPWSTR* | out | ダイアログの内容を受け取る文字列へのポインター。 このメモリの解放は呼び出し側の責任です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IESOpenMmiEvent "{BA4B6526-1A35-4635-8B56-3EC612746A8C}" #usecom global IESOpenMmiEvent IID_IESOpenMmiEvent "{}" #comfunc global IESOpenMmiEvent_GetDialogNumber 8 var,var #comfunc global IESOpenMmiEvent_GetDialogType 9 var #comfunc global IESOpenMmiEvent_GetDialogData 10 var #comfunc global IESOpenMmiEvent_GetDialogStringData 11 var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IESOpenMmiEvent "{BA4B6526-1A35-4635-8B56-3EC612746A8C}" #usecom global IESOpenMmiEvent IID_IESOpenMmiEvent "{}" #comfunc global IESOpenMmiEvent_GetDialogNumber 8 sptr,sptr #comfunc global IESOpenMmiEvent_GetDialogType 9 sptr #comfunc global IESOpenMmiEvent_GetDialogData 10 sptr #comfunc global IESOpenMmiEvent_GetDialogStringData 11 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。