ISpellChecker
COM公式ドキュメント
特定の言語に対応する特定のスペルチェッカーを表します。
メソッド 14
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
このスペルチェッカーインスタンスがサポートする BCP47 言語タグを取得します。(ISpellChecker.get_LanguageTag)
| value | LPWSTR* | out | このスペルチェッカーが対象とするBCP47言語タグを受け取る出力ポインタ。呼び出し側で解放する。 |
指定されたテキストのスペルをチェックし、スペルエラーのコレクションを返します。(ISpellChecker.Check)
| text | LPWSTR | in | チェックするテキスト。 |
| value | IEnumSpellingError** | out | このテキストのチェック結果。IEnumSpellingError オブジェクトとして返されます。 |
戻り値
このメソッドは次のいずれかの値を返すことがあります。
| Return code | Description |
|---|---|
| 成功しました。 | |
|
text が空の文字列です。 |
| text が null ポインターです。 |
解説(Remarks)
返される IEnumSpellingError にはスペルチェックの結果が含まれます。text が正しい場合は、(null ではなく) 空の列挙が返されます。
指定されたテキストに対するスペル候補を取得します。(ISpellChecker.Suggest)
| word | LPWSTR | in | 候補を取得する単語または語句。 |
| value | IEnumString** | out | 候補の一覧。IEnumString オブジェクトとして返されます。 |
戻り値
このメソッドは次のいずれかの値を返すことがあります。
| Return code | Description |
|---|---|
| 成功しました。 | |
| word のスペルは正しいです。value には 1 つのエントリ (渡されたテキスト) が含まれます。 | |
|
word が空の文字列です。 |
| word が null ポインターです。 |
指定された単語を、元の辞書に含まれているものとして扱います。
| word | LPWSTR | in | 追加語の一覧に追加する単語。 |
戻り値
このメソッドは次のいずれかの値を返すことがあります。
| Return code | Description |
|---|---|
| 成功しました。 | |
|
word が空の文字列であるか、その長さが MAX_WORD_LENGTH を超えています。 |
| word が null ポインターです。 |
このセッションの残りの間、指定された単語を無視します。
| word | LPWSTR | in | 無視する単語。 |
戻り値
このメソッドは次のいずれかの値を返すことがあります。
| Return code | Description |
|---|---|
| 成功しました。 | |
|
word が空の文字列であるか、その長さが MAX_WORD_LENGTH を超えています。 |
| word が null ポインターです。 |
ある単語の出現箇所を別の単語に置き換えます。
| from | LPWSTR | in | 自動修正の対象となる、スペルが誤っている単語。 |
| to | LPWSTR | in | from を置き換える、スペルが正しい単語。 |
戻り値
このメソッドは次のいずれかの値を返すことがあります。
| Return code | Description |
|---|---|
| 成功しました。 | |
|
from または to が空の文字列であるか、少なくとも一方のパラメーターの長さが MAX_WORD_LENGTH を超えています。 |
| from または to が null ポインターです。 |
指定されたオプションに関連付けられた値を取得します。(ISpellChecker.GetOptionValue)
| optionId | LPWSTR | in | オプション識別子。 |
| value | BYTE* | out | optionId に関連付けられた値。 |
戻り値
このメソッドは次のいずれかの値を返すことがあります。
| Return code | Description |
|---|---|
| 成功しました。 | |
|
optionId が空の文字列であるか、利用可能なオプションのいずれでもありません。 |
| optionId が null ポインターです。 |
宣言されているすべてのオプション識別子を取得します。
| value | IEnumString** | out | このチェッカーがサポートする全オプションIDを列挙するIEnumStringを受け取る出力ポインタ。 |
このスペルチェッカーの識別子を取得します。
| value | LPWSTR* | out | スペルチェッカー実装(プロバイダー)を識別する文字列IDを受け取る出力ポインタ。呼び出し側で解放する。 |
このスペルチェッカーを説明する、ユーザーへの表示に適したテキストを取得します。(ISpellChecker.get_LocalizedName)
| value | LPWSTR* | out | ユーザーへ表示するローカライズ済みのチェッカー名を受け取る出力ポインタ。呼び出し側で解放する。 |
SpellCheckerChanged イベントのイベントハンドラー (ISpellCheckerChangedEventHandler) を追加します。
| handler | ISpellCheckerChangedEventHandler* | in | スペルチェッカーが変更されたときに呼び出すハンドラー。 |
| eventCookie | DWORD* | out | 追加されたハンドラーを一意に識別するイベントクッキー。スペルチェッカーの変更によってこのハンドラーが呼び出されないようにするには、このクッキーを remove_SpellCheckerChanged に渡す必要があります。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
SpellCheckerChanged イベントは、チェック済みのテキストを再チェックする必要があるような形でスペルチェッカーの状態が変化するたびに発生します。これは、単語リストの内容が変化したとき、オプションが変化したとき、または既定のスペルチェッカーが変化したときに発生します。
SpellCheckerChanged イベントに追加されたイベントハンドラー (ISpellCheckerChangedEventHandler) を削除します。
| eventCookie | DWORD | in | 追加されたハンドラーを一意に識別するイベントクッキー。これは add_SpellCheckerChanged の呼び出しから取得した eventCookie です。 |
戻り値
このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
特定のオプションの情報 (id、説明、見出し、ラベル) を取得します。(ISpellChecker.GetOptionDescription)
| optionId | LPWSTR | in | 取得するオプションの識別子。 |
| value | IOptionDescription** | out | optionId に関する情報を含む IOptionDescription インターフェース。 |
戻り値
このメソッドは次のいずれかの値を返すことがあります。
| Return code | Description |
|---|---|
| 成功しました。 | |
|
optionId が空の文字列であるか、利用可能なオプションのいずれでもありません。 |
| optionId が null ポインターです。 |
指定されたテキストのスペルを ISpellChecker::Check よりも徹底的な方法でチェックし、スペルエラーのコレクションを返します。
| text | LPWSTR | in | チェックするテキスト。 |
| value | IEnumSpellingError** | out | このテキストのチェック結果。IEnumSpellingError オブジェクトとして返されます。 |
戻り値
このメソッドは次のいずれかの値を返すことがあります。
| Return code | Description |
|---|---|
| 成功しました。 | |
|
text が空の文字列です。 |
| text が null ポインターです。 |
解説(Remarks)
返される IEnumSpellingError にはスペルチェックの結果が含まれます。text が正しい場合は、(null ではなく) 空の列挙が返されます。
プロバイダーがスペルチェックの 2 つの「モード」(高速なモードと、低速だがより徹底的なモード) をサポートする場合、より徹底的なチェックモードをサポートするために IComprehensiveSpellCheckProvider を実装します。 クライアントが ISpellChecker::ComprehensiveCheck を呼び出すと、スペルチェック機能はプロバイダーに対して IComprehensiveSpellCheckProvider を QueryInterface し、そのインターフェースがサポートされている場合は IComprehensiveSpellCheckProvider.ComprehensiveCheck を呼び出します。インターフェースがサポートされていない場合は、暗黙的に ISpellCheckProvider::Check にフォールバックします。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ISpellChecker "{B6FD0B71-E2BC-4653-8D05-F197E412770B}" #usecom global ISpellChecker IID_ISpellChecker "{}" #comfunc global ISpellChecker_get_LanguageTag 3 var #comfunc global ISpellChecker_Check 4 wstr,sptr #comfunc global ISpellChecker_Suggest 5 wstr,sptr #comfunc global ISpellChecker_Add 6 wstr #comfunc global ISpellChecker_Ignore 7 wstr #comfunc global ISpellChecker_AutoCorrect 8 wstr,wstr #comfunc global ISpellChecker_GetOptionValue 9 wstr,var #comfunc global ISpellChecker_get_OptionIds 10 sptr #comfunc global ISpellChecker_get_Id 11 var #comfunc global ISpellChecker_get_LocalizedName 12 var #comfunc global ISpellChecker_add_SpellCheckerChanged 13 sptr,var #comfunc global ISpellChecker_remove_SpellCheckerChanged 14 int #comfunc global ISpellChecker_GetOptionDescription 15 wstr,sptr #comfunc global ISpellChecker_ComprehensiveCheck 16 wstr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ISpellChecker "{B6FD0B71-E2BC-4653-8D05-F197E412770B}" #usecom global ISpellChecker IID_ISpellChecker "{}" #comfunc global ISpellChecker_get_LanguageTag 3 sptr #comfunc global ISpellChecker_Check 4 wstr,sptr #comfunc global ISpellChecker_Suggest 5 wstr,sptr #comfunc global ISpellChecker_Add 6 wstr #comfunc global ISpellChecker_Ignore 7 wstr #comfunc global ISpellChecker_AutoCorrect 8 wstr,wstr #comfunc global ISpellChecker_GetOptionValue 9 wstr,sptr #comfunc global ISpellChecker_get_OptionIds 10 sptr #comfunc global ISpellChecker_get_Id 11 sptr #comfunc global ISpellChecker_get_LocalizedName 12 sptr #comfunc global ISpellChecker_add_SpellCheckerChanged 13 sptr,sptr #comfunc global ISpellChecker_remove_SpellCheckerChanged 14 int #comfunc global ISpellChecker_GetOptionDescription 15 wstr,sptr #comfunc global ISpellChecker_ComprehensiveCheck 16 wstr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。