ITfUIElementMgr
COM公式ドキュメント
ITfUIElementMgr インターフェイスは TSF マネージャーによって実装され、アプリケーションまたはテキストサービスから使用されます。アプリケーションおよびテキストサービスは、IID_ITfUIElementMgr を指定して ITfThreadMgr::QueryInterface を呼び出すことで、このインターフェイスを取得できます。
解説(Remarks)
UIElement をサポートするテキストサービスは、UI が表示、更新、または非表示になるたびに ITfUIElementMgr を呼び出す必要があります。これにより、アプリケーションは UI の表示状態を制御できます。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ITfUIElementMgr::BeginUIElement メソッドは、テキストサービスが UI を表示する前に呼び出します。返される値によって、テキストサービスの UI を表示すべきかどうかが決まります。
| pElement | ITfUIElement* | in | [in] UIElement オブジェクトの ITfUIElement インターフェイスへのポインター。 |
| pbShow | BOOL* | inout | [in, out] false が返された場合、アプリケーションが自身で UI を描画することがあり、テキストサービスはこの UI 要素について独自の UI を表示しません。 |
| pdwUIElementId | DWORD* | out | [out] この UI 要素の ID を受け取るポインター。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 不特定のエラーが発生しました。 | |
| 1 つ以上のパラメーターが無効です。 | |
| ITfUIElementMgr インターフェイスの再帰呼び出しが発生しました。 |
ITfUIElementMgr::UpdateUIElement メソッドは、UI 要素を更新する必要があるときにテキストサービスから呼び出されます。
| dwUIElementId | DWORD | in | [in] 更新する UI 要素の要素 ID。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 不特定のエラーが発生しました。 | |
| 1 つ以上のパラメーターが無効です。 | |
| ITfUIElementMgr インターフェイスの再帰呼び出しが発生しました。 |
ITfUIElementMgr::EndUIElement メソッドは、UI 要素が非表示になったときにテキストサービスから呼び出されます。
| dwUIElementId | DWORD | in | [in] 非表示にする UI 要素の要素 ID。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 不特定のエラーが発生しました。 | |
| 1 つ以上のパラメーターが無効です。 | |
| ITfUIElementMgr インターフェイスの再帰呼び出しが発生しました。 |
ITfUIElementMgr::GetUIElement メソッドは、指定した要素 ID に対応する ITfUIElement インターフェイスを取得します。
| dwUIELementId | DWORD | in | [in] ITfUIElement インターフェイスを取得する対象の要素 ID。 |
| ppElement | ITfUIElement** | out | [out] ITfUIElement インターフェイスを受け取るポインター。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 不特定のエラーが発生しました。 | |
| 1 つ以上のパラメーターが無効です。 |
ITfUIElementMgr::EnumUIElements メソッドは、ITfUIElement を列挙するための IEnumTfUIElements インターフェイスポインターを返します。
| ppEnum | IEnumTfUIElements** | out | [in] IEnumTfUIElements インターフェイスを受け取るポインター。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 不特定のエラーが発生しました。 | |
| 1 つ以上のパラメーターが無効です。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ITfUIElementMgr "{EA1EA135-19DF-11D7-A6D2-00065B84435C}" #usecom global ITfUIElementMgr IID_ITfUIElementMgr "{}" #comfunc global ITfUIElementMgr_BeginUIElement 3 sptr,var,var #comfunc global ITfUIElementMgr_UpdateUIElement 4 int #comfunc global ITfUIElementMgr_EndUIElement 5 int #comfunc global ITfUIElementMgr_GetUIElement 6 int,sptr #comfunc global ITfUIElementMgr_EnumUIElements 7 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ITfUIElementMgr "{EA1EA135-19DF-11D7-A6D2-00065B84435C}" #usecom global ITfUIElementMgr IID_ITfUIElementMgr "{}" #comfunc global ITfUIElementMgr_BeginUIElement 3 sptr,sptr,sptr #comfunc global ITfUIElementMgr_UpdateUIElement 4 int #comfunc global ITfUIElementMgr_EndUIElement 5 int #comfunc global ITfUIElementMgr_GetUIElement 6 int,sptr #comfunc global ITfUIElementMgr_EnumUIElements 7 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。