ITfDisplayAttributeInfo
COM公式ドキュメント
ITfDisplayAttributeInfo インターフェイスは、表示属性データを提供するためにテキストサービスが実装します。このインターフェイスは、テキストの表示方法を判別する必要があるコンポーネント (多くの場合はアプリケーション) が使用します。
解説(Remarks)
アプリケーションは、ITfDisplayAttributeMgr::GetDisplayAttributeInfo または IEnumTfDisplayAttributeInfo::Next を呼び出すことで、このインターフェイスのインスタンスを取得します。
テキストサービスは、ITfDisplayAttributeProvider::GetDisplayAttributeInfo メソッドでこのインターフェイスのインスタンスを提供します。
メソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
ITfDisplayAttributeInfo::GetGUID メソッド
| pguid | GUID* | out | 表示属性の GUID を受け取る GUID 値へのポインターです。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| pguid が無効です。 |
ITfDisplayAttributeInfo::GetDescription メソッド
| pbstrDesc | LPWSTR* | out | 説明文字列を受け取る BSTR 値へのポインターです。この値は SysAllocString を使用して割り当てる必要があります。呼び出し元は、不要になった時点で SysFreeString を使用してこのメモリを解放する必要があります。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| pbstrDesc が無効です。 |
ITfDisplayAttributeInfo::GetAttributeInfo メソッド
| pda | TF_DISPLAYATTRIBUTE* | out | 表示属性データを受け取る TF_DISPLAYATTRIBUTE 構造体へのポインターです。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| pda が無効です。 |
ITfDisplayAttributeInfo::SetAttributeInfo メソッド
| pda | TF_DISPLAYATTRIBUTE* | in | 新しい表示属性データを格納する TF_DISPLAYATTRIBUTE 構造体へのポインターです。 |
戻り値
このメソッドは次のいずれかの値を返します。
| 値 | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 表示属性プロバイダーは属性の変更をサポートしていません。 | |
| pda が無効です。 |
解説(Remarks)
このメソッドの実装は、このメソッドへの応答として ITfDisplayAttributeMgr::OnUpdateInfo を呼び出さないでください。呼び出し元が呼び出す必要があります。これにより、複数の属性が変更された場合に通知が重複するのを避けられます。他のクライアントが属性の更新通知を受け取れるように、呼び出し元は最終的に ITfDisplayAttributeMgr::OnUpdateInfo を呼び出す必要があります。
ITfDisplayAttributeInfo::Reset メソッド
戻り値
解説(Remarks)
このメソッドの実装は、このメソッドへの応答として ITfDisplayAttributeMgr::OnUpdateInfo を呼び出さないでください。呼び出し元が呼び出す必要があります。これにより、複数の属性が変更された場合に通知が重複するのを避けられます。他のクライアントが属性の更新通知を受け取れるように、呼び出し元は最終的に ITfDisplayAttributeMgr::OnUpdateInfo を呼び出す必要があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ITfDisplayAttributeInfo "{70528852-2F26-4AEA-8C96-215150578932}" #usecom global ITfDisplayAttributeInfo IID_ITfDisplayAttributeInfo "{}" #comfunc global ITfDisplayAttributeInfo_GetGUID 3 var #comfunc global ITfDisplayAttributeInfo_GetDescription 4 var #comfunc global ITfDisplayAttributeInfo_GetAttributeInfo 5 var #comfunc global ITfDisplayAttributeInfo_SetAttributeInfo 6 var #comfunc global ITfDisplayAttributeInfo_Reset 7 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ITfDisplayAttributeInfo "{70528852-2F26-4AEA-8C96-215150578932}" #usecom global ITfDisplayAttributeInfo IID_ITfDisplayAttributeInfo "{}" #comfunc global ITfDisplayAttributeInfo_GetGUID 3 sptr #comfunc global ITfDisplayAttributeInfo_GetDescription 4 sptr #comfunc global ITfDisplayAttributeInfo_GetAttributeInfo 5 sptr #comfunc global ITfDisplayAttributeInfo_SetAttributeInfo 6 sptr #comfunc global ITfDisplayAttributeInfo_Reset 7 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。