ホーム › System.Search › ISchemaProvider
ISchemaProvider
COMメソッド 7
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT Entities(GUID* riid, void** pEntities)
| riid | GUID* | in | 返すエンティティコレクションのインターフェイスを識別する GUID(IID)へのポインタである。 |
| pEntities | void** | out | スキーマに含まれる全エンティティの集合を受け取る出力ポインタである。 |
| pRootEntity | IEntity** | out | スキーマのルートエンティティを表す IEntity を受け取る出力ポインタである。 |
| pszEntityName | LPWSTR | in | 取得するエンティティの名前を指定する。 |
| pEntity | IEntity** | out | 指定した名前のエンティティを表す IEntity を受け取る出力ポインタである。 |
vtbl 6 HRESULT MetaData(GUID* riid, void** pMetaData)
| riid | GUID* | in | 返すメタデータコレクションのインターフェイスを識別する GUID(IID)へのポインタである。 |
| pMetaData | void** | out | スキーマに関連付けられたメタデータの集合を受け取る出力ポインタである。 |
vtbl 7 HRESULT Localize(DWORD lcid, ISchemaLocalizerSupport* pSchemaLocalizerSupport)
| lcid | DWORD | in | ローカライズに使用するロケール識別子(LCID)を指定する。 |
| pSchemaLocalizerSupport | ISchemaLocalizerSupport* | in | ローカライズ処理を支援する ISchemaLocalizerSupport へのポインタである。 |
| pszSchemaBinaryPath | LPWSTR | in | スキーマをバイナリ形式で保存する出力先ファイルのパスを指定する。 |
vtbl 9 HRESULT LookupAuthoredNamedEntity(IEntity* pEntity, LPWSTR pszInputString, ITokenCollection* pTokenCollection, DWORD cTokensBegin, DWORD* pcTokensLength, LPWSTR* ppszValue)
| pEntity | IEntity* | in | 検索対象とするエンティティを表す IEntity へのポインタである。 |
| pszInputString | LPWSTR | in | 名前付きエンティティを照合する対象の入力文字列を指定する。 |
| pTokenCollection | ITokenCollection* | in | 入力文字列のトークン集合を表す ITokenCollection へのポインタである。 |
| cTokensBegin | DWORD | in | 照合を開始するトークンのインデックスを指定する。 |
| pcTokensLength | DWORD* | out | 一致した名前付きエンティティのトークン数を受け取る出力ポインタである。 |
| ppszValue | LPWSTR* | out | 一致した名前付きエンティティの値文字列を受け取る出力ポインタである。呼び出し側が解放する。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ISchemaProvider "{8CF89BCB-394C-49B2-AE28-A59DD4ED7F68}" #usecom global ISchemaProvider IID_ISchemaProvider "{}" #comfunc global ISchemaProvider_Entities 3 var,sptr #comfunc global ISchemaProvider_RootEntity 4 sptr #comfunc global ISchemaProvider_GetEntity 5 wstr,sptr #comfunc global ISchemaProvider_MetaData 6 var,sptr #comfunc global ISchemaProvider_Localize 7 int,sptr #comfunc global ISchemaProvider_SaveBinary 8 wstr #comfunc global ISchemaProvider_LookupAuthoredNamedEntity 9 sptr,wstr,sptr,int,var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ISchemaProvider "{8CF89BCB-394C-49B2-AE28-A59DD4ED7F68}" #usecom global ISchemaProvider IID_ISchemaProvider "{}" #comfunc global ISchemaProvider_Entities 3 sptr,sptr #comfunc global ISchemaProvider_RootEntity 4 sptr #comfunc global ISchemaProvider_GetEntity 5 wstr,sptr #comfunc global ISchemaProvider_MetaData 6 sptr,sptr #comfunc global ISchemaProvider_Localize 7 int,sptr #comfunc global ISchemaProvider_SaveBinary 8 wstr #comfunc global ISchemaProvider_LookupAuthoredNamedEntity 9 sptr,wstr,sptr,int,sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。