ホーム › System.Search › IDataInitialize
IDataInitialize
COMメソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetDataSource(IUnknown* pUnkOuter, DWORD dwClsCtx, LPWSTR pwszInitializationString, GUID* riid, IUnknown** ppDataSource)
| pUnkOuter | IUnknown* | inoptional | 集約(アグリゲーション)を行う場合の外側のIUnknownへのポインタである。集約しない場合はNULLを指定する。 |
| dwClsCtx | DWORD | in | オブジェクトを実行するコンテキストを表すCLSCTX値を指定する。 |
| pwszInitializationString | LPWSTR | inoptional | データソースの初期化に用いる初期化文字列を指定する。 |
| riid | GUID* | in | 取得するデータソースのインターフェイス識別子(IID)へのポインタである。 |
| ppDataSource | IUnknown** | inout | 初期化されたデータソースのインターフェイスポインタを受け取るポインタである。 |
vtbl 4 HRESULT GetInitializationString(IUnknown* pDataSource, BYTE fIncludePassword, LPWSTR* ppwszInitString)
| pDataSource | IUnknown* | inoptional | 初期化文字列を生成する対象のデータソースのIUnknownへのポインタである。 |
| fIncludePassword | BYTE | in | 初期化文字列にパスワードを含めるかどうかを指定する。0以外で含める。 |
| ppwszInitString | LPWSTR* | out | 生成された初期化文字列を受け取るポインタである。呼び出し側が解放する。 |
vtbl 5 HRESULT CreateDBInstance(GUID* clsidProvider, IUnknown* pUnkOuter, DWORD dwClsCtx, LPWSTR pwszReserved, GUID* riid, IUnknown** ppDataSource)
| clsidProvider | GUID* | in | 生成するデータプロバイダーのクラスID(CLSID)へのポインタである。 |
| pUnkOuter | IUnknown* | inoptional | 集約(アグリゲーション)を行う場合の外側のIUnknownへのポインタである。集約しない場合はNULLを指定する。 |
| dwClsCtx | DWORD | in | オブジェクトを実行するコンテキストを表すCLSCTX値を指定する。 |
| pwszReserved | LPWSTR | inoptional | 予約済みのパラメーターであり、NULLを指定する。 |
| riid | GUID* | in | 取得するデータソースのインターフェイス識別子(IID)へのポインタである。 |
| ppDataSource | IUnknown** | out | 生成されたデータソースのインターフェイスポインタを受け取るポインタである。 |
vtbl 6 HRESULT CreateDBInstanceEx(GUID* clsidProvider, IUnknown* pUnkOuter, DWORD dwClsCtx, LPWSTR pwszReserved, COSERVERINFO* pServerInfo, DWORD cmq, MULTI_QI* rgmqResults)
| clsidProvider | GUID* | in | 生成するデータプロバイダーのクラスID(CLSID)へのポインタである。 |
| pUnkOuter | IUnknown* | inoptional | 集約(アグリゲーション)を行う場合の外側のIUnknownへのポインタである。集約しない場合はNULLを指定する。 |
| dwClsCtx | DWORD | in | オブジェクトを実行するコンテキストを表すCLSCTX値を指定する。 |
| pwszReserved | LPWSTR | inoptional | 予約済みのパラメーターであり、NULLを指定する。 |
| pServerInfo | COSERVERINFO* | in | オブジェクトを生成するリモートサーバーの情報を表すCOSERVERINFO構造体へのポインタである。 |
| cmq | DWORD | in | rgmqResults配列の要素数(取得するインターフェイス数)を指定する。 |
| rgmqResults | MULTI_QI* | out | 取得するインターフェイスと結果を格納するMULTI_QI構造体の配列へのポインタである。 |
| pwszFileName | LPWSTR | inoptional | 初期化文字列を読み込むファイルの名前を指定する。 |
| ppwszInitializationString | LPWSTR* | out | ファイルから読み込まれた初期化文字列を受け取るポインタである。呼び出し側が解放する。 |
vtbl 8 HRESULT WriteStringToStorage(LPWSTR pwszFileName, LPWSTR pwszInitializationString, DWORD dwCreationDisposition)
| pwszFileName | LPWSTR | inoptional | 初期化文字列を書き込むファイルの名前を指定する。 |
| pwszInitializationString | LPWSTR | inoptional | ファイルに書き込む初期化文字列を指定する。 |
| dwCreationDisposition | DWORD | in | ファイルが存在する場合などの作成方法を指定する。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IDataInitialize "{2206CCB1-19C1-11D1-89E0-00C04FD7A829}" #usecom global IDataInitialize IID_IDataInitialize "{}" #comfunc global IDataInitialize_GetDataSource 3 sptr,int,wstr,var,sptr #comfunc global IDataInitialize_GetInitializationString 4 sptr,int,var #comfunc global IDataInitialize_CreateDBInstance 5 var,sptr,int,wstr,var,sptr #comfunc global IDataInitialize_CreateDBInstanceEx 6 var,sptr,int,wstr,var,int,var #comfunc global IDataInitialize_LoadStringFromStorage 7 wstr,var #comfunc global IDataInitialize_WriteStringToStorage 8 wstr,wstr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IDataInitialize "{2206CCB1-19C1-11D1-89E0-00C04FD7A829}" #usecom global IDataInitialize IID_IDataInitialize "{}" #comfunc global IDataInitialize_GetDataSource 3 sptr,int,wstr,sptr,sptr #comfunc global IDataInitialize_GetInitializationString 4 sptr,int,sptr #comfunc global IDataInitialize_CreateDBInstance 5 sptr,sptr,int,wstr,sptr,sptr #comfunc global IDataInitialize_CreateDBInstanceEx 6 sptr,sptr,int,wstr,sptr,int,sptr #comfunc global IDataInitialize_LoadStringFromStorage 7 wstr,sptr #comfunc global IDataInitialize_WriteStringToStorage 8 wstr,wstr,int ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。