ホーム › System.Search › IRowsetIndex
IRowsetIndex
COMメソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetIndexInfo(UINT_PTR* pcKeyColumns, DBINDEXCOLUMNDESC** prgIndexColumnDesc, DWORD* pcIndexPropertySets, DBPROPSET** prgIndexPropertySets)
| pcKeyColumns | UINT_PTR* | inout | インデックスを構成するキー列の個数を受け取る。 |
| prgIndexColumnDesc | DBINDEXCOLUMNDESC** | out | インデックスの各キー列を記述する DBINDEXCOLUMNDESC 構造体配列へのポインタを受け取る。配列はプロバイダーが割り当てる。 |
| pcIndexPropertySets | DWORD* | inout | 返されるインデックスプロパティセットの個数を受け取る。 |
| prgIndexPropertySets | DBPROPSET** | out | インデックスのプロパティを含む DBPROPSET 構造体配列へのポインタを受け取る。配列はプロバイダーが割り当てる。 |
| hAccessor | HACCESSOR | in | キー値の構成を記述するアクセサーのハンドルを指定する。 |
| cKeyValues | UINT_PTR | in | pData に含まれるキー値の個数を指定する。 |
| pData | void* | in | シーク対象のキー値を格納したバッファへのポインタである。 |
| dwSeekOptions | DWORD | in | シーク動作を制御するオプション(完全一致、以上、以下など)を指定するフラグである。 |
vtbl 5 HRESULT SetRange(HACCESSOR hAccessor, UINT_PTR cStartKeyColumns, void* pStartData, UINT_PTR cEndKeyColumns, void* pEndData, DWORD dwRangeOptions)
| hAccessor | HACCESSOR | in | キー値の構成を記述するアクセサーのハンドルを指定する。 |
| cStartKeyColumns | UINT_PTR | in | pStartData に含まれる範囲開始キー列の個数を指定する。 |
| pStartData | void* | in | 範囲の開始境界となるキー値を格納したバッファへのポインタである。 |
| cEndKeyColumns | UINT_PTR | in | pEndData に含まれる範囲終了キー列の個数を指定する。 |
| pEndData | void* | in | 範囲の終了境界となるキー値を格納したバッファへのポインタである。 |
| dwRangeOptions | DWORD | in | 範囲設定の動作を制御するオプション(境界を含むか除くかなど)を指定するフラグである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IRowsetIndex "{0C733A82-2A1C-11CE-ADE5-00AA0044773D}" #usecom global IRowsetIndex IID_IRowsetIndex "{}" #comfunc global IRowsetIndex_GetIndexInfo 3 var,var,var,var #comfunc global IRowsetIndex_Seek 4 sptr,sptr,sptr,int #comfunc global IRowsetIndex_SetRange 5 sptr,sptr,sptr,sptr,sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IRowsetIndex "{0C733A82-2A1C-11CE-ADE5-00AA0044773D}" #usecom global IRowsetIndex IID_IRowsetIndex "{}" #comfunc global IRowsetIndex_GetIndexInfo 3 sptr,sptr,sptr,sptr #comfunc global IRowsetIndex_Seek 4 sptr,sptr,sptr,int #comfunc global IRowsetIndex_SetRange 5 sptr,sptr,sptr,sptr,sptr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。