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

IQueryParserManager

COM
IIDa879e3c4-af77-44fb-8f37-ebd1487cf920継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

IQueryParser オブジェクトの作成、初期化、およびオプションの変更を行うメソッドを提供します。

解説(Remarks)

StructuredQuerySample では、コンソールから行を読み取り、システムスキーマを使用して解析し、結果として得られる条件ツリーを表示する方法を示しています。

メソッド 3

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

vtbl 3 HRESULT CreateLoadedParser(LPWSTR pszCatalog, WORD langidForKeywords, GUID* riid, void** ppQueryParser)

IQueryParser インターフェイス実装の新しいインスタンスを作成します。このクエリパーサーのインスタンスには、指定されたカタログのスキーマが読み込まれ、指定された言語にローカライズされます。その他の設定はすべて既定値に初期化されます。

pszCatalogLPWSTRin使用するカタログの名前。指定できる値は SystemIndex と空文字列 (プロパティを持たない単純なスキーマの場合) です。
langidForKeywordsWORDinキーワードのローカライズ言語を選択するために使用する LANGID
riidGUID*inIQueryParser インターフェイス実装の IID。
ppQueryParservoid**out新しく作成されたパーサーへのポインターを受け取ります。呼び出し元のアプリケーションは、IUnknown::Release メソッドを呼び出して解放する必要があります。

戻り値

型: HRESULT

このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

%LOCALAPPDATA% が利用できない場合、このメソッドは失敗します。その場合は IQueryParserManager::SetOption を呼び出して、%ProgramData% などの別のフォルダーを指すようにしてください。

vtbl 4 HRESULT InitializeOptions(BOOL fUnderstandNQS, BOOL fAutoWildCard, IQueryParser* pQueryParser)

指定されたクエリパーサーに対して、Natural Query Syntax (NQS) および自動ワイルドカード文字のフラグを設定します。

fUnderstandNQSBOOLinこのクエリパーサーのインスタンスで NQS をサポートするかどうかを制御する BOOL フラグ。
fAutoWildCardBOOLinクエリ内の各単語の後にワイルドカード文字 (*) が指定されているものと見なすかどうかを制御する BOOL フラグ (かっこ以外の句読点が後続する場合を除きます)。
pQueryParserIQueryParser*inクエリパーサーオブジェクトへのポインター。

戻り値

型: HRESULT

このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 5 HRESULT SetOption(QUERY_PARSER_MANAGER_OPTION option, PROPVARIANT* pOptionValue)

この IQueryParserManager オブジェクトの単一のオプションを変更します。たとえば、読み込むスキーマバイナリの名前や、ローカライズされたスキーマバイナリの場所を変更できます。

optionQUERY_PARSER_MANAGER_OPTIONin変更する QUERY_PARSER_MANAGER_OPTION
pOptionValuePROPVARIANT*in選択したオプションに使用する値へのポインター。

戻り値

型: HRESULT

このメソッドが成功すると S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
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 指定が可能。