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

ITfCategoryMgr

COM
IIDc3acefb5-f69d-4905-938f-fcadcf4be830継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

ITfCategoryMgr インターフェイスは、テキストサービス向けにオブジェクトのカテゴリを管理します。このインターフェイスは TSF マネージャーが実装します。

メソッド 14

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

vtbl 3 HRESULT RegisterCategory(GUID* rclsid, GUID* rcatid, GUID* rguid)

ITfCategoryMgr::RegisterCategory メソッド

rclsidGUID*in項目を所有するテキストサービスの CLSID を格納します。
rcatidGUID*in項目を登録するカテゴリを識別する GUID 値を格納します。ユーザー定義のカテゴリ、または定義済みカテゴリ値のいずれかを指定できます。
rguidGUID*in登録する項目を識別する GUID 値を格納します。

戻り値

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

説明
S_OK
メソッドは成功しました。
E_FAIL
原因不明のエラーが発生しました。
vtbl 4 HRESULT UnregisterCategory(GUID* rclsid, GUID* rcatid, GUID* rguid)

ITfCategoryMgr::UnregisterCategory メソッド

rclsidGUID*in項目を所有するテキストサービスの CLSID を格納します。
rcatidGUID*in項目が登録されているカテゴリを識別する GUID を格納します。
rguidGUID*in削除する項目を識別する GUID を格納します。

戻り値

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

説明
S_OK
メソッドは成功しました。
E_FAIL
原因不明のエラーが発生しました。
vtbl 5 HRESULT EnumCategoriesInItem(GUID* rguid, IEnumGUID** ppEnum)

ITfCategoryMgr::EnumCategoriesInItem メソッド

rguidGUID*inカテゴリを列挙する対象の項目を識別する GUID 値を格納します。
ppEnumIEnumGUID**out列挙子を受け取る IEnumGUID インターフェイスポインターへのポインター。

戻り値

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

説明
S_OK
メソッドは成功しました。
E_FAIL
原因不明のエラーが発生しました。
E_INVALIDARG
ppEnum が無効です。
E_OUTOFMEMORY
操作を実行するためのメモリが不足しています。
vtbl 6 HRESULT EnumItemsInCategory(GUID* rcatid, IEnumGUID** ppEnum)

ITfCategoryMgr::EnumItemsInCategory メソッド

rcatidGUID*in項目を列挙する対象のカテゴリを識別する GUID 値を格納します。
ppEnumIEnumGUID**out列挙子を受け取る IEnumGUID インターフェイスポインターへのポインター。

戻り値

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

説明
S_OK
メソッドは成功しました。
E_FAIL
原因不明のエラーが発生しました。
E_INVALIDARG
ppEnum が無効です。
E_OUTOFMEMORY
操作を実行するためのメモリが不足しています。
vtbl 7 HRESULT FindClosestCategory(GUID* rguid, GUID* pcatid, GUID** ppcatidList, DWORD ulCount)

ITfCategoryMgr::FindClosestCategory メソッド

rguidGUID*in最も近いカテゴリを検索する対象の GUID のアドレスを指定します。
pcatidGUID*out最も近いカテゴリの CATID を受け取る GUID へのポインター。
ppcatidListGUID**in最も近いカテゴリを検索する対象となる CATID の配列を指定するポインターへのポインター。
ulCountDWORDinppcatidList パラメーターの配列の要素数を指定します。

戻り値

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

説明
S_OK
メソッドはカテゴリ一覧から最も近いカテゴリを取得しました。または、一覧からカテゴリを取得できず、そのことを pcatid パラメーターのポインターに GUID_NULL を設定することで示しています。
S_FALSE
メソッドは指定された GUID に対するカテゴリを見つけられず、そのことを pcatid パラメーターのポインターに GUID_NULL を設定することで示しています。
E_FAIL
メソッドが内部テーブルにアクセスできません。
E_INVALIDARG
入力時に指定された pcatid パラメーターが NULL であったか、ulCount パラメーターが 0 以外のときにカテゴリ一覧に NULL 要素が含まれていました。
E_OUTOFMEMORY
操作を実行するためのメモリが不足しています。

解説(Remarks)

GUID に最も近いカテゴリは、2 つのモードのいずれかで選択されます。1 つ目のモードでは、メソッドは空でないカテゴリ一覧を受け取ります。この場合、その一覧から最初に一致する CATID を選択します。その GUID を含むカテゴリが一覧に存在しない場合は GUID_NULL を返します。2 つ目のモードでは、空のカテゴリ一覧を受け取ります。この場合、その GUID を含む最初のカテゴリを選択します。その GUID を含むカテゴリが存在しない場合は GUID_NULL を返します。

vtbl 8 HRESULT RegisterGUIDDescription(GUID* rclsid, GUID* rguid, LPWSTR pchDesc, DWORD cch)

ITfCategoryMgr::RegisterGUIDDescription メソッド

rclsidGUID*inGUID を所有するテキストサービスの CLSID を格納します。
rguidGUID*in説明を登録する対象の GUID を格納します。
pchDescLPWSTRinGUID の説明を格納する WCHAR バッファーへのポインター。
cchDWORDin説明文字列の長さを文字数単位で格納します。

戻り値

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

説明
S_OK
メソッドは成功しました。
E_FAIL
メソッドは説明文字列を登録できませんでした。
E_INVALIDARG
pchDest が無効です。
vtbl 9 HRESULT UnregisterGUIDDescription(GUID* rclsid, GUID* rguid)

ITfCategoryMgr::UnregisterGUIDDescription メソッド

rclsidGUID*inGUID を所有するテキストサービスの CLSID を格納します。
rguidGUID*in説明を削除する対象の GUID を格納します。

戻り値

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

説明
S_OK
メソッドは成功しました。
E_FAIL
GUID が見つかりません。
vtbl 10 HRESULT GetGUIDDescription(GUID* rguid, LPWSTR* pbstrDesc)

ITfCategoryMgr::GetGUIDDescription メソッド

rguidGUID*in説明を取得する対象の GUID を指定します。
pbstrDescLPWSTR*out

説明文字列を受け取る BSTR 値へのポインター。SysAllocString を使用して割り当てます。呼び出し元は不要になった時点で SysFreeString を使用してこのメモリを解放する必要があります。

説明文字列を受け取る BSTR 値へのポインター。これは SysAllocString を使用して割り当てる必要があります。呼び出し元は不要になった時点で SysFreeString を使用してこのメモリを解放する必要があります。

戻り値

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

説明
S_OK
メソッドは成功しました。
E_FAIL
メソッドは説明を取得できません。
E_INVALIDARG
pbstrDesc が無効です。
vtbl 11 HRESULT RegisterGUIDDWORD(GUID* rclsid, GUID* rguid, DWORD dw)

ITfCategoryMgr::RegisterGUIDDWORD メソッド

rclsidGUID*inGUID を所有するテキストサービスの CLSID を格納します。
rguidGUID*inDWORD を登録する対象の GUID を格納します。
dwDWORDinGUID に対して登録する DWORD 値を格納します。

戻り値

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

説明
S_OK
メソッドは成功しました。
E_FAIL
メソッドは DWORD 値を登録できませんでした。
vtbl 12 HRESULT UnregisterGUIDDWORD(GUID* rclsid, GUID* rguid)

ITfCategoryMgr::UnregisterGUIDDWORD メソッド

rclsidGUID*inGUID を所有するテキストサービスの CLSID を格納します。
rguidGUID*inDWORD を削除する対象の GUID を格納します。

戻り値

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

説明
S_OK
メソッドは成功しました。
E_FAIL
GUID が見つかりません。
vtbl 13 HRESULT GetGUIDDWORD(GUID* rguid, DWORD* pdw)

ITfCategoryMgr::GetGUIDDWORD メソッド

rguidGUID*in値を取得する対象の GUID のアドレスを指定します。
pdwDWORD*outGUID の値を受け取る DWORD 変数へのポインター。

戻り値

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

説明
S_OK
メソッドは成功しました。
E_FAIL
メソッドは DWORD 値を取得できませんでした。
E_INVALIDARG
入力時に指定された pdw パラメーターが NULL でした。
vtbl 14 HRESULT RegisterGUID(GUID* rguid, DWORD* pguidatom)

ITfCategoryMgr::RegisterGUID メソッド

rguidGUID*in識別子を取得する対象の GUID を格納します。
pguidatomDWORD*outGUID の識別子を受け取る TfGuidAtom 値へのポインター。

戻り値

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

説明
S_OK
メソッドは成功しました。
E_FAIL
原因不明のエラーが発生しました。
E_INVALIDARG
pguidatom が無効です。

解説(Remarks)

同一の GUID 値には同一の TfGuidAtom 値が割り当てられます。

TfGuidAtom 値は、ITfCategoryMgr::RegisterGUID を呼び出したプロセス内でのみ有効です。

vtbl 15 HRESULT GetGUID(DWORD guidatom, GUID* pguid)

ITfCategoryMgr::GetGUID メソッド

guidatomDWORDin取得する GUID を指定する TfGuidAtom 値を格納します。
pguidGUID*out指定されたアトムに対応する GUID を受け取る GUID 値へのポインター。アトムに対応する GUID が見つからない場合は GUID_NULL を受け取ります。

戻り値

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

説明
S_OK
メソッドは成功しました。
E_FAIL
原因不明のエラーが発生しました。
E_INVALIDARG
pguid が無効です。
vtbl 16 HRESULT IsEqualTfGuidAtom(DWORD guidatom, GUID* rguid, BOOL* pfEqual)

ITfCategoryMgr::IsEqualTfGuidAtom メソッド

guidatomDWORDin内部テーブル内の GUID を表すアトムを指定します。
rguidGUID*in内部テーブル内のアトムと比較する GUID のアドレスを指定します。
pfEqualBOOL*outアトムがその GUID を表しているかどうかを受け取るブール変数へのポインター。

戻り値

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

説明
S_OK
メソッドは成功しました。
E_FAIL
メソッドが内部テーブルにアクセスできません。
E_INVALIDARG
入力時に指定された pfEqual パラメーターが NULL でした。

解説(Remarks)

guidatom パラメーターで指定されたアトムが rguid パラメーターで指定された GUID を表している場合、pfEqual パラメーターは 0 以外の値を受け取ります。それ以外の場合、pfEqual パラメーターは 0 を受け取ります。

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ITfCategoryMgr "{C3ACEFB5-F69D-4905-938F-FCADCF4BE830}"
#usecom global ITfCategoryMgr IID_ITfCategoryMgr "{}"
#comfunc global ITfCategoryMgr_RegisterCategory           3 var,var,var
#comfunc global ITfCategoryMgr_UnregisterCategory         4 var,var,var
#comfunc global ITfCategoryMgr_EnumCategoriesInItem       5 var,sptr
#comfunc global ITfCategoryMgr_EnumItemsInCategory        6 var,sptr
#comfunc global ITfCategoryMgr_FindClosestCategory        7 var,var,var,int
#comfunc global ITfCategoryMgr_RegisterGUIDDescription    8 var,var,wstr,int
#comfunc global ITfCategoryMgr_UnregisterGUIDDescription  9 var,var
#comfunc global ITfCategoryMgr_GetGUIDDescription         10 var,var
#comfunc global ITfCategoryMgr_RegisterGUIDDWORD          11 var,var,int
#comfunc global ITfCategoryMgr_UnregisterGUIDDWORD        12 var,var
#comfunc global ITfCategoryMgr_GetGUIDDWORD               13 var,var
#comfunc global ITfCategoryMgr_RegisterGUID               14 var,var
#comfunc global ITfCategoryMgr_GetGUID                    15 int,var
#comfunc global ITfCategoryMgr_IsEqualTfGuidAtom          16 int,var,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。