ISpellCheckProvider
COM公式ドキュメント
スペルチェック基盤で使用される、特定の言語に対応する特定のスペルチェッカープロバイダーを表します。
メソッド 10
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
このスペルチェッカーインスタンスがサポートする BCP47 言語タグを取得します。(ISpellCheckProvider.get_LanguageTag)
| value | LPWSTR* | out | このプロバイダーが対象とするBCP47言語タグを受け取る出力ポインタ。呼び出し側で解放する。 |
指定されたテキストのスペルをチェックし、スペルエラーのコレクションを返します。(ISpellCheckProvider.Check)
| text | LPWSTR | in | チェックするテキスト。 |
| value | IEnumSpellingError** | out | このテキストのチェック結果。IEnumSpellingError オブジェクトとして返されます。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
|
text が空の文字列です。 |
| text が null ポインターです。 |
解説(Remarks)
返される IEnumSpellingError には、スペルチェックの結果が格納されている必要があります。正しい text の場合は、(null ではなく)空の列挙を返す必要があります。
指定されたテキストのスペル候補を取得します。(ISpellCheckProvider.Suggest)
| word | LPWSTR | in | 候補を取得する単語または語句。 |
| value | IEnumString** | out | 候補の一覧。IEnumString オブジェクトとして返されます。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
| word は正しく綴られています。value には、渡されたテキストである 1 つのエントリが含まれます。 | |
|
word が空の文字列です。 |
| word が null ポインターです。 |
指定されたオプションに関連付けられた値を取得します。(ISpellCheckProvider.GetOptionValue)
| optionId | LPWSTR | in | オプション識別子。 |
| value | BYTE* | out | optionId に関連付けられた値。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
|
optionId が空の文字列であるか、利用可能なオプションのいずれでもありません。 |
| optionId が null ポインターです。 |
指定されたオプションに関連付ける値を設定します。
| optionId | LPWSTR | in | オプション識別子。 |
| value | BYTE | in | optionId に関連付ける値。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
|
optionId が空の文字列であるか、利用可能なオプションのいずれでもありません。 |
| optionId が null ポインターです。 |
解説(Remarks)
このメソッドはシステムによって呼び出されます。システムは、ユーザーがコントロールパネルで設定したオプション値を読み取り、それを ISpellCheckProvider に送信します。オプションが設定されていない場合、このメソッドは呼び出されず、プロバイダーはそのオプションの既定値で内部的に自身を初期化する必要があります。
スペルチェッカーが認識する、宣言済みのすべてのオプション識別子を取得します。
| value | IEnumString** | out | このプロバイダーがサポートする全オプションIDを列挙するIEnumStringを受け取る出力ポインタ。 |
このスペルチェッカーエンジンの識別子を取得します。
| value | LPWSTR* | out | プロバイダー実装を識別する文字列IDを受け取る出力ポインタ。呼び出し側で解放する。 |
このスペルチェッカーを説明する、ユーザーへの表示に適したテキストを取得します。(ISpellCheckProvider.get_LocalizedName)
| value | LPWSTR* | out | ユーザーへ表示するローカライズ済みのプロバイダー名を受け取る出力ポインタ。呼び出し側で解放する。 |
特定のオプションの情報(id、説明、見出し、ラベル)を取得します。(ISpellCheckProvider.GetOptionDescription)
| optionId | LPWSTR | in | 取得するオプションの識別子。 |
| value | IOptionDescription** | out | optionId に関する情報を格納した IOptionDescription インターフェイス。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
|
optionId が空の文字列であるか、利用可能なオプションのいずれでもありません。 |
| optionId が null ポインターです。 |
指定された単語リストを、指定された単語のみを含むように初期化します。
| wordlistType | WORDLIST_TYPE | in | 単語リストの種類。 |
| words | IEnumString* | in | 単語リストに含める単語のセット。IEnumString オブジェクトとして渡されます。 |
戻り値
このメソッドは次のいずれかの値を返します。
| リターンコード | 説明 |
|---|---|
| 成功しました。 | |
|
wordlistType が WORDLIST_TYPE 列挙型の有効なメンバーではありません。 |
解説(Remarks)
このメソッドはシステムによって呼び出されます(たとえば、クライアントが ISpellChecker::Add を呼び出したとき)。システムは、対応する単語リストの単語をプロバイダーに渡し、スペルチェック時にその単語リストを考慮できるようにします。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ISpellCheckProvider "{73E976E0-8ED4-4EB1-80D7-1BE0A16B0C38}" #usecom global ISpellCheckProvider IID_ISpellCheckProvider "{}" #comfunc global ISpellCheckProvider_get_LanguageTag 3 var #comfunc global ISpellCheckProvider_Check 4 wstr,sptr #comfunc global ISpellCheckProvider_Suggest 5 wstr,sptr #comfunc global ISpellCheckProvider_GetOptionValue 6 wstr,var #comfunc global ISpellCheckProvider_SetOptionValue 7 wstr,int #comfunc global ISpellCheckProvider_get_OptionIds 8 sptr #comfunc global ISpellCheckProvider_get_Id 9 var #comfunc global ISpellCheckProvider_get_LocalizedName 10 var #comfunc global ISpellCheckProvider_GetOptionDescription 11 wstr,sptr #comfunc global ISpellCheckProvider_InitializeWordlist 12 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ISpellCheckProvider "{73E976E0-8ED4-4EB1-80D7-1BE0A16B0C38}" #usecom global ISpellCheckProvider IID_ISpellCheckProvider "{}" #comfunc global ISpellCheckProvider_get_LanguageTag 3 sptr #comfunc global ISpellCheckProvider_Check 4 wstr,sptr #comfunc global ISpellCheckProvider_Suggest 5 wstr,sptr #comfunc global ISpellCheckProvider_GetOptionValue 6 wstr,sptr #comfunc global ISpellCheckProvider_SetOptionValue 7 wstr,int #comfunc global ISpellCheckProvider_get_OptionIds 8 sptr #comfunc global ISpellCheckProvider_get_Id 9 sptr #comfunc global ISpellCheckProvider_get_LocalizedName 10 sptr #comfunc global ISpellCheckProvider_GetOptionDescription 11 wstr,sptr #comfunc global ISpellCheckProvider_InitializeWordlist 12 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。