Win32 API 日本語リファレンス
ホームUI.TextServices › ITfThreadMgrEx

ITfThreadMgrEx

COM
IID3e90ade3-7594-4cb0-bb58-69628f5f458c継承元ITfThreadMgr自前メソッド開始 vtbl14

公式ドキュメント

ITfThreadMgrEx インターフェイスは、アプリケーションがフラグを指定してテキストサービスをアクティブ化するために使用します。ITfThreadMgrEx は ITfThreadMgr から QI (QueryInterface) によって取得できます。

メソッド 2

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

vtbl 14 HRESULT ActivateEx(DWORD* ptid, DWORD dwFlags)

ITfThreadMgrEx::ActivateEx メソッドは、アプリケーションが呼び出し元スレッドに対して TSF を初期化しアクティブ化するために使用します。ITfThreadMgr::Activate とは異なり、ITfThreadMgrEx::ActivateEx では TSF のアクティブ化方法を指定するフラグを渡せます。

ptidDWORD*out[out] クライアント識別子を受け取る TfClientId 値へのポインター。
dwFlagsDWORDin
意味
TF_TMAE_NOACTIVATETIP
ITfThreadMgrEx::ActivateEx の呼び出し時にはテキストサービスをアクティブ化しません。テキストサービスは、呼び出し元スレッドがフォーカスを取得した時点で非同期にアクティブ化されます。
TF_TMAE_SECUREMODE
TSF をセキュアモードでアクティブ化します。セキュアモードをサポートするテキストサービスのみがアクティブ化されます。
TF_TMAE_UIELEMENTENABLEDONLY
TSF は GUID_TFCAT_TIPCAP_UIELEMENTENABLED に分類されるテキストサービスのみをアクティブ化します。
TF_TMAE_COMLESS
TSF は COM を使用しません。TSF は GUID_TFCAT_TIPCAP_COMLESS に分類されるテキストサービスのみをアクティブ化します。
TF_TMAE_NOACTIVATEKEYBOARDLAYOUT
ITfThreadMgrEx::ActivateEx() の呼び出し時に、TSF は現在のキーボードレイアウトを同期しません。キーボードレイアウトは、呼び出し元スレッドがフォーカスを取得した時点で調整されます。このフラグは TF_TMAE_NOACTIVATETIP と併用する必要があります。

戻り値

このメソッドは次のいずれかの値を返します。

説明
S_OK
メソッドは成功しました。
E_FAIL
不特定のエラーが発生しました。
E_INVALIDARG
1 つ以上のパラメーターが無効です。
vtbl 15 HRESULT GetActiveFlags(DWORD* lpdwFlags)

ITfThreadMgrEx::GetActiveFlags メソッドは、TSF がアクティブ化されている際のフラグを返します。

lpdwFlagsDWORD*out

TSF のアクティブ化フラグを受け取る DWORD 値へのポインター。

意味
TF_TMF_NOACTIVATETIP TSF は TF_TMAE_NOACTIVATETIP フラグ付きでアクティブ化されました。
TF_TMF_SECUREMODE TSF はセキュアモードで動作しています。
TF_TMF_UIELEMENTENABLEDONLY TSF は UIElement のみをサポートするテキストサービスで動作しています。
TF_TMF_COMLESS TSF は COM を使用せずに動作しています。
TF_TMF_WOW16 TSF は 16 ビットタスクで動作しています。
TF_TMF_CONSOLE TSF はコンソール向けに動作しています。
TF_TMF_IMMERSIVEMODE Windows 8 以降: TSF は Windows ストアアプリでアクティブです。
TF_TMF_ACTIVATED TSF はアクティブです。

戻り値

このメソッドは次のいずれかの値を返します。

説明
S_OK
メソッドは成功しました。
E_FAIL
不特定のエラーが発生しました。
E_INVALIDARG
1 つ以上のパラメーターが無効です。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ITfThreadMgrEx "{3E90ADE3-7594-4CB0-BB58-69628F5F458C}"
#usecom global ITfThreadMgrEx IID_ITfThreadMgrEx "{}"
#comfunc global ITfThreadMgrEx_ActivateEx      14 var,int
#comfunc global ITfThreadMgrEx_GetActiveFlags  15 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。