ホーム › System.Search › IWordBreaker
IWordBreaker
COMメソッド 4
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| fQuery | BOOL | in | クエリ処理のために初期化する場合は TRUE を、インデックス作成のために初期化する場合は FALSE を指定する。 |
| ulMaxTokenSize | DWORD | in | 生成するトークン(単語)の最大文字数を指定する。 |
| pfLicense | BOOL* | inout | ライセンス情報の取得が必要かどうかを受け取る。TRUE の場合は GetLicenseToUse でライセンス文字列を取得する必要がある。 |
vtbl 4 HRESULT BreakText(TEXT_SOURCE* pTextSource, IWordSink* pWordSink, IPhraseSink* pPhraseSink)
| pTextSource | TEXT_SOURCE* | inout | 分かち書きの対象となるテキストを供給する TEXT_SOURCE 構造体へのポインタである。 |
| pWordSink | IWordSink* | in | 抽出した単語の出力先となる単語シンク(IWordSink)へのポインタである。不要な場合は NULL を指定できる。 |
| pPhraseSink | IPhraseSink* | in | 抽出したフレーズの出力先となるフレーズシンク(IPhraseSink)へのポインタである。不要な場合は NULL を指定できる。 |
vtbl 5 HRESULT ComposePhrase(LPWSTR pwcNoun, DWORD cwcNoun, LPWSTR pwcModifier, DWORD cwcModifier, DWORD ulAttachmentType, LPWSTR pwcPhrase, DWORD* pcwcPhrase)
| pwcNoun | LPWSTR | in | フレーズの主要語(名詞)を含む文字バッファへのポインタである。 |
| cwcNoun | DWORD | in | pwcNoun 内の文字数を指定する。 |
| pwcModifier | LPWSTR | in | フレーズの修飾語を含む文字バッファへのポインタである。 |
| cwcModifier | DWORD | in | pwcModifier 内の文字数を指定する。 |
| ulAttachmentType | DWORD | in | 名詞と修飾語の結合方法(アタッチメント種別)を指定する。 |
| pwcPhrase | LPWSTR | in | 合成されたフレーズを受け取る文字バッファへのポインタである。 |
| pcwcPhrase | DWORD* | inout | 入力時は pwcPhrase バッファの容量(文字数)を指定し、出力時は実際に書き込まれた文字数を受け取る。 |
| ppwcsLicense | WORD** | 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 指定が可能。#define global IID_IWordBreaker "{D53552C8-77E3-101A-B552-08002B33B0E6}" #usecom global IWordBreaker IID_IWordBreaker "{}" #comfunc global IWordBreaker_Init 3 int,int,sptr #comfunc global IWordBreaker_BreakText 4 sptr,sptr,sptr #comfunc global IWordBreaker_ComposePhrase 5 wstr,int,wstr,int,int,wstr,sptr #comfunc global IWordBreaker_GetLicenseToUse 6 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。