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

IWordBreaker

COM
IIDd53552c8-77e3-101a-b552-08002b33b0e6継承元IUnknown自前メソッド開始 vtbl3

メソッド 4

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

vtbl 3 HRESULT Init(BOOL fQuery, DWORD ulMaxTokenSize, BOOL* pfLicense)
fQueryBOOLinクエリ処理のために初期化する場合は TRUE を、インデックス作成のために初期化する場合は FALSE を指定する。
ulMaxTokenSizeDWORDin生成するトークン(単語)の最大文字数を指定する。
pfLicenseBOOL*inoutライセンス情報の取得が必要かどうかを受け取る。TRUE の場合は GetLicenseToUse でライセンス文字列を取得する必要がある。
vtbl 4 HRESULT BreakText(TEXT_SOURCE* pTextSource, IWordSink* pWordSink, IPhraseSink* pPhraseSink)
pTextSourceTEXT_SOURCE*inout分かち書きの対象となるテキストを供給する TEXT_SOURCE 構造体へのポインタである。
pWordSinkIWordSink*in抽出した単語の出力先となる単語シンク(IWordSink)へのポインタである。不要な場合は NULL を指定できる。
pPhraseSinkIPhraseSink*in抽出したフレーズの出力先となるフレーズシンク(IPhraseSink)へのポインタである。不要な場合は NULL を指定できる。
vtbl 5 HRESULT ComposePhrase(LPWSTR pwcNoun, DWORD cwcNoun, LPWSTR pwcModifier, DWORD cwcModifier, DWORD ulAttachmentType, LPWSTR pwcPhrase, DWORD* pcwcPhrase)
pwcNounLPWSTRinフレーズの主要語(名詞)を含む文字バッファへのポインタである。
cwcNounDWORDinpwcNoun 内の文字数を指定する。
pwcModifierLPWSTRinフレーズの修飾語を含む文字バッファへのポインタである。
cwcModifierDWORDinpwcModifier 内の文字数を指定する。
ulAttachmentTypeDWORDin名詞と修飾語の結合方法(アタッチメント種別)を指定する。
pwcPhraseLPWSTRin合成されたフレーズを受け取る文字バッファへのポインタである。
pcwcPhraseDWORD*inout入力時は pwcPhrase バッファの容量(文字数)を指定し、出力時は実際に書き込まれた文字数を受け取る。
vtbl 6 HRESULT GetLicenseToUse(WORD** ppwcsLicense)
ppwcsLicenseWORD**inコンポーネントの使用に必要なライセンス文字列へのポインタを受け取る。

HSP用 COM定義

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

出力引数:
#define global IID_IWordBreaker "{D53552C8-77E3-101A-B552-08002B33B0E6}"
#usecom global IWordBreaker IID_IWordBreaker "{}"
#comfunc global IWordBreaker_Init             3 int,int,var
#comfunc global IWordBreaker_BreakText        4 var,sptr,sptr
#comfunc global IWordBreaker_ComposePhrase    5 wstr,int,wstr,int,int,wstr,var
#comfunc global IWordBreaker_GetLicenseToUse  6 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。