IServicePoolConfig
COM公式ドキュメント
オブジェクトプールを構成するために使用します。
メソッド 10
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
プール内のオブジェクトの最大数を設定します。
| dwMaxPool | DWORD | in | オブジェクトの最大数。 |
戻り値
このメソッドは、標準的な戻り値 E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL、および S_OK を返すことがあります。
プール内のオブジェクトの最大数を取得します。
| pdwMaxPool | DWORD* | inout | オブジェクトの最大数。 |
戻り値
このメソッドは、標準的な戻り値 E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL、および S_OK を返すことがあります。
プール内のオブジェクトの最小数を設定します。
| dwMinPool | DWORD | in | オブジェクトの最小数。 |
戻り値
このメソッドは、標準的な戻り値 E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL、および S_OK を返すことがあります。
プール内のオブジェクトの最小数を取得します。
| pdwMinPool | DWORD* | inout | オブジェクトの最小数。 |
戻り値
このメソッドは、標準的な戻り値 E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL、および S_OK を返すことがあります。
プールされたオブジェクトをアクティブ化する際のタイムアウト間隔を設定します。
| dwCreationTimeout | DWORD | in | タイムアウト間隔。 |
戻り値
このメソッドは、標準的な戻り値 E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL、および S_OK を返すことがあります。
プールされたオブジェクトをアクティブ化する際のタイムアウト間隔を取得します。
| pdwCreationTimeout | DWORD* | inout | タイムアウト間隔。 |
戻り値
このメソッドは、標準的な戻り値 E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL、および S_OK を返すことがあります。
トランザクションに関与しているオブジェクトを、トランザクションが完了するまで保持するかどうかを設定します。
| fTxAffinity | BOOL | in | オブジェクトを保持する場合は TRUE、それ以外の場合は FALSE。 |
戻り値
このメソッドは、標準的な戻り値 E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL、および S_OK を返すことがあります。
トランザクションに関与しているオブジェクトを、トランザクションが完了するまで保持するかどうかを判定します。
| pfTxAffinity | BOOL* | inout | オブジェクトが保持される場合は TRUE、それ以外の場合は FALSE。 |
戻り値
このメソッドは、標準的な戻り値 E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL、および S_OK を返すことがあります。
プールされたオブジェクトのクラスファクトリを設定します。
| pFactory | IClassFactory* | in | IClassFactory インターフェイスポインター。 |
戻り値
このメソッドは、標準的な戻り値 E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL、および S_OK を返すことがあります。
プールされたオブジェクトのクラスファクトリを取得します。
| pFactory | IClassFactory** | out | IClassFactory インターフェイスポインターへのポインター。 |
戻り値
このメソッドは、標準的な戻り値 E_INVALIDARG、E_OUTOFMEMORY、E_UNEXPECTED、E_FAIL、および S_OK を返すことがあります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IServicePoolConfig "{A9690656-5BCA-470C-8451-250C1F43A33E}" #usecom global IServicePoolConfig IID_IServicePoolConfig "{ECABB0CA-7F19-11D2-978E-0000F8757E2A}" #comfunc global IServicePoolConfig_put_MaxPoolSize 3 int #comfunc global IServicePoolConfig_get_MaxPoolSize 4 var #comfunc global IServicePoolConfig_put_MinPoolSize 5 int #comfunc global IServicePoolConfig_get_MinPoolSize 6 var #comfunc global IServicePoolConfig_put_CreationTimeout 7 int #comfunc global IServicePoolConfig_get_CreationTimeout 8 var #comfunc global IServicePoolConfig_put_TransactionAffinity 9 int #comfunc global IServicePoolConfig_get_TransactionAffinity 10 var #comfunc global IServicePoolConfig_put_ClassFactory 11 sptr #comfunc global IServicePoolConfig_get_ClassFactory 12 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_IServicePoolConfig "{A9690656-5BCA-470C-8451-250C1F43A33E}" #usecom global IServicePoolConfig IID_IServicePoolConfig "{ECABB0CA-7F19-11D2-978E-0000F8757E2A}" #comfunc global IServicePoolConfig_put_MaxPoolSize 3 int #comfunc global IServicePoolConfig_get_MaxPoolSize 4 sptr #comfunc global IServicePoolConfig_put_MinPoolSize 5 int #comfunc global IServicePoolConfig_get_MinPoolSize 6 sptr #comfunc global IServicePoolConfig_put_CreationTimeout 7 int #comfunc global IServicePoolConfig_get_CreationTimeout 8 sptr #comfunc global IServicePoolConfig_put_TransactionAffinity 9 int #comfunc global IServicePoolConfig_get_TransactionAffinity 10 sptr #comfunc global IServicePoolConfig_put_ClassFactory 11 sptr #comfunc global IServicePoolConfig_get_ClassFactory 12 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。