IQueryParserManager
COM公式ドキュメント
IQueryParser オブジェクトの作成、初期化、およびオプションの変更を行うメソッドを提供します。
解説(Remarks)
StructuredQuerySample では、コンソールから行を読み取り、システムスキーマを使用して解析し、結果として得られる条件ツリーを表示する方法を示しています。
メソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
IQueryParser インターフェイス実装の新しいインスタンスを作成します。このクエリパーサーのインスタンスには、指定されたカタログのスキーマが読み込まれ、指定された言語にローカライズされます。その他の設定はすべて既定値に初期化されます。
| pszCatalog | LPWSTR | in | 使用するカタログの名前。指定できる値は SystemIndex と空文字列 (プロパティを持たない単純なスキーマの場合) です。 |
| langidForKeywords | WORD | in | キーワードのローカライズ言語を選択するために使用する LANGID。 |
| riid | GUID* | in | IQueryParser インターフェイス実装の IID。 |
| ppQueryParser | void** | out | 新しく作成されたパーサーへのポインターを受け取ります。呼び出し元のアプリケーションは、IUnknown::Release メソッドを呼び出して解放する必要があります。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
解説(Remarks)
%LOCALAPPDATA% が利用できない場合、このメソッドは失敗します。その場合は IQueryParserManager::SetOption を呼び出して、%ProgramData% などの別のフォルダーを指すようにしてください。
指定されたクエリパーサーに対して、Natural Query Syntax (NQS) および自動ワイルドカード文字のフラグを設定します。
| fUnderstandNQS | BOOL | in | このクエリパーサーのインスタンスで NQS をサポートするかどうかを制御する BOOL フラグ。 |
| fAutoWildCard | BOOL | in | クエリ内の各単語の後にワイルドカード文字 (*) が指定されているものと見なすかどうかを制御する BOOL フラグ (かっこ以外の句読点が後続する場合を除きます)。 |
| pQueryParser | IQueryParser* | in | クエリパーサーオブジェクトへのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
この IQueryParserManager オブジェクトの単一のオプションを変更します。たとえば、読み込むスキーマバイナリの名前や、ローカライズされたスキーマバイナリの場所を変更できます。
| option | QUERY_PARSER_MANAGER_OPTION | in | 変更する QUERY_PARSER_MANAGER_OPTION。 |
| pOptionValue | PROPVARIANT* | in | 選択したオプションに使用する値へのポインター。 |
戻り値
型: HRESULT
このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IQueryParserManager "{A879E3C4-AF77-44FB-8F37-EBD1487CF920}" #usecom global IQueryParserManager IID_IQueryParserManager "{5088B39A-29B4-4D9D-8245-4EE289222F66}" #comfunc global IQueryParserManager_CreateLoadedParser 3 wstr,int,var,sptr #comfunc global IQueryParserManager_InitializeOptions 4 int,int,sptr #comfunc global IQueryParserManager_SetOption 5 int,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IQueryParserManager "{A879E3C4-AF77-44FB-8F37-EBD1487CF920}" #usecom global IQueryParserManager IID_IQueryParserManager "{5088B39A-29B4-4D9D-8245-4EE289222F66}" #comfunc global IQueryParserManager_CreateLoadedParser 3 wstr,int,sptr,sptr #comfunc global IQueryParserManager_InitializeOptions 4 int,int,sptr #comfunc global IQueryParserManager_SetOption 5 int,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。