Win32 API 日本語リファレンス
ホームSystem.ComponentServices › ICrmCompensator

ICrmCompensator

COM
IIDbbc01830-8d3b-11d1-82ec-00a0c91eede9継承元IUnknown自前メソッド開始 vtbl3

メソッド 10

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT SetLogControl(ICrmLogControl* pLogControl)
pLogControlICrmLogControl*inoptionalCRM 補償処理子がログレコードの書き込みに使用する ICrmLogControl インターフェイスへのポインタである。CRM クラークから渡される。
vtbl 4 HRESULT BeginPrepare()
vtbl 5 HRESULT PrepareRecord(CrmLogRecordRead crmLogRec, BOOL* pfForget)
crmLogRecCrmLogRecordReadin準備フェーズ中に配信される 1 件のログレコードを表す CrmLogRecordRead 構造体である。
pfForgetBOOL*outこのログレコードを以後無視してよい場合に TRUE を受け取る BOOL へのポインタである。
vtbl 6 HRESULT EndPrepare(BOOL* pfOkToPrepare)
pfOkToPrepareBOOL*out補償処理子がトランザクションの準備を許可する場合に TRUE を受け取る BOOL へのポインタである。
vtbl 7 HRESULT BeginCommit(BOOL fRecovery)
fRecoveryBOOLinコミットフェーズが障害後の回復処理として開始された場合に TRUE を指定する。
vtbl 8 HRESULT CommitRecord(CrmLogRecordRead crmLogRec, BOOL* pfForget)
crmLogRecCrmLogRecordReadinコミットフェーズ中に配信される 1 件のログレコードを表す CrmLogRecordRead 構造体である。
pfForgetBOOL*outこのログレコードを以後無視してよい場合に TRUE を受け取る BOOL へのポインタである。
vtbl 9 HRESULT EndCommit()
vtbl 10 HRESULT BeginAbort(BOOL fRecovery)
fRecoveryBOOLinアボートフェーズが障害後の回復処理として開始された場合に TRUE を指定する。
vtbl 11 HRESULT AbortRecord(CrmLogRecordRead crmLogRec, BOOL* pfForget)
crmLogRecCrmLogRecordReadinアボートフェーズ中に配信される 1 件のログレコードを表す CrmLogRecordRead 構造体である。
pfForgetBOOL*outこのログレコードを以後無視してよい場合に TRUE を受け取る BOOL へのポインタである。
vtbl 12 HRESULT EndAbort()

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ICrmCompensator "{BBC01830-8D3B-11D1-82EC-00A0C91EEDE9}"
#usecom global ICrmCompensator IID_ICrmCompensator "{}"
#comfunc global ICrmCompensator_SetLogControl  3 sptr
#comfunc global ICrmCompensator_BeginPrepare   4
#comfunc global ICrmCompensator_PrepareRecord  5 int,var
#comfunc global ICrmCompensator_EndPrepare     6 var
#comfunc global ICrmCompensator_BeginCommit    7 int
#comfunc global ICrmCompensator_CommitRecord   8 int,var
#comfunc global ICrmCompensator_EndCommit      9
#comfunc global ICrmCompensator_BeginAbort     10 int
#comfunc global ICrmCompensator_AbortRecord    11 int,var
#comfunc global ICrmCompensator_EndAbort       12
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。