ホーム › System.DistributedTransactionCoordinator › ITransaction
ITransaction
COMメソッド 3
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| fRetaining | BOOL | in | コミット後もトランザクションオブジェクトを保持して再利用するかどうかを指定する。通常は FALSE を指定する。 |
| grfTC | DWORD | in | コミットの完了タイミングを制御する XACTTC フラグを指定する。 |
| grfRM | DWORD | in | リソースマネージャ向けに予約されたフラグである。通常は 0 を指定する。 |
| pboidReason | BOID* | in | 中止理由を示す BOID へのポインタである。理由を指定しない場合は NULL を渡せる。 |
| fRetaining | BOOL | in | 中止後もトランザクションオブジェクトを保持して再利用するかどうかを指定する。通常は FALSE を指定する。 |
| fAsync | BOOL | in | 中止処理を非同期で行うかどうかを指定する。 |
vtbl 5 HRESULT GetTransactionInfo(XACTTRANSINFO* pinfo)
| pinfo | XACTTRANSINFO* | out | トランザクションの情報を格納する XACTTRANSINFO 構造体を受け取る。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ITransaction "{0FB15084-AF41-11CE-BD2B-204C4F4F5020}" #usecom global ITransaction IID_ITransaction "{}" #comfunc global ITransaction_Commit 3 int,int,int #comfunc global ITransaction_Abort 4 var,int,int #comfunc global ITransaction_GetTransactionInfo 5 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_ITransaction "{0FB15084-AF41-11CE-BD2B-204C4F4F5020}" #usecom global ITransaction IID_ITransaction "{}" #comfunc global ITransaction_Commit 3 int,int,int #comfunc global ITransaction_Abort 4 sptr,int,int #comfunc global ITransaction_GetTransactionInfo 5 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。