Win32 API 日本語リファレンス
ホームSystem.Search › IWordSink

IWordSink

COM
IIDcc907054-c058-101a-b554-08002b33b0e6継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

インデックス時とクエリ時の両方で、ワードブレークによって識別された単語を処理します。

解説(Remarks)

インデックス時とクエリ時の両方で、ワードブレークによって識別された単語を処理します。

Windows Search は IWordSink オブジェクトのインスタンスを作成して初期化します。IWordSink オブジェクトは初期化時に fQuery パラメーターを受け取り、このパラメーターを使用して、オブジェクトが使用されるワードブレークのコンテキストを判別します。

IWordBreaker の実装は、IWordBreaker::BreakText メソッドで IWordSink オブジェクトへのポインターを受け取ります。

メソッド 5

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

vtbl 3 HRESULT PutWord(DWORD cwc, LPWSTR pwcInBuf, DWORD cwcSrcLen, DWORD cwcSrcPos)

単語とその位置を IWordSink オブジェクトに格納します。

cwcDWORDinpwcInBuf 内の単語の文字数を指定する。
pwcInBufLPWSTRinインデックスへ追加する単語を含む文字バッファへのポインタである。
cwcSrcLenDWORDin元のソーステキスト内で、この単語が占める文字数(ソース長)を指定する。
cwcSrcPosDWORDin元のソーステキスト内における、この単語の開始位置(文字オフセット)を指定する。
vtbl 4 HRESULT PutAltWord(DWORD cwc, LPWSTR pwcInBuf, DWORD cwcSrcLen, DWORD cwcSrcPos)

代替語とその位置を IWordSink オブジェクトに格納します。

cwcDWORDinpwcInBuf 内の代替単語の文字数を指定する。
pwcInBufLPWSTRin正規語と同じ位置に格納する代替形(別表記)の単語を含む文字バッファへのポインタである。
cwcSrcLenDWORDin元のソーステキスト内で、この単語が占める文字数(ソース長)を指定する。
cwcSrcPosDWORDin元のソーステキスト内における、この単語の開始位置(文字オフセット)を指定する。
vtbl 5 HRESULT StartAltPhrase()

ワードブレーカーがインデックス時に生成する代替フレーズのシーケンスにおいて、フレーズ間の境界を示します。

vtbl 6 HRESULT EndAltPhrase()

ワードブレーカーがインデックス時に生成する代替フレーズのシーケンスにおいて、最後のフレーズの終わりを示します。

vtbl 7 HRESULT PutBreak(WORDREP_BREAK_TYPE breakType)

直前の単語の後にブレークを挿入します。

breakTypeWORDREP_BREAK_TYPEin単語間の区切りの種類(単語区切り、文区切り、段落区切りなど)を指定する。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

#define global IID_IWordSink "{CC907054-C058-101A-B554-08002B33B0E6}"
#usecom global IWordSink IID_IWordSink "{}"
#comfunc global IWordSink_PutWord         3 int,wstr,int,int
#comfunc global IWordSink_PutAltWord      4 int,wstr,int,int
#comfunc global IWordSink_StartAltPhrase  5
#comfunc global IWordSink_EndAltPhrase    6
#comfunc global IWordSink_PutBreak        7 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。