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

ITransactionProxy

COM
IID02558374-df2e-4dae-bd6b-1d5c994f9bdc継承元IUnknown自前メソッド開始 vtbl3

公式ドキュメント

COM+ トランザクションコンテキストが非 DTC トランザクションと連携するための手段を提供します。

メソッド 7

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

vtbl 3 HRESULT Commit(GUID guid)

トランザクションをコミットします。

guidGUIDinコミットするトランザクションを識別する GUID。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTED に加えて、次の値を返すことがあります。

戻り値 説明
S_OK
トランザクションがコミットされました。
CONTEXT_E_ABORTED
トランザクションが中止されました。

解説(Remarks)

ITransactionProxy::Commit を呼び出すと、トランザクションのコミットが試みられます。ただし、次の条件下ではトランザクションが中止されます。

メソッドが戻るとき、トランザクションがコミットされるか中止されるかにかかわらず、トランザクションは終了します。
vtbl 4 HRESULT Abort()

トランザクションを中止します。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTED、および S_OK を返すことがあります。

解説(Remarks)

ITransactionProxy::Abort を呼び出すと、メソッドの戻り時にトランザクションが終了し、すべての参加オブジェクトが自動的に非アクティブ化されます。トランザクションに参加している各リソースマネージャーは、それらのオブジェクトに代わって実行された操作をロールバックします。

vtbl 5 HRESULT Promote(ITransaction** pTransaction)

非 DTC トランザクションを DTC トランザクションに昇格させます。

pTransactionITransaction**outDTC トランザクションを表す ITransaction の実装。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTED、および S_OK を返すことがあります。

解説(Remarks)

非 DTC トランザクションを DTC トランザクションに昇格させる理由には、トランザクションのエクスポートや Queued Moniker Recorder との連携などがあります。

vtbl 6 HRESULT CreateVoter(ITransactionVoterNotifyAsync2* pTxAsync, ITransactionVoterBallotAsync2** ppBallot)

COM+ トランザクションコンテキストがトランザクションに対して投票できるように投票権 (ballot) を提供します。

pTxAsyncITransactionVoterNotifyAsync2*in投票要求を投票者に通知する ITransactionVoterNotifyAsync2 の実装。
ppBallotITransactionVoterBallotAsync2**out投票者が非 DTC トランザクションを承認または拒否できるようにする ITransactionVoterBallotAsync2 の実装。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTED、および S_OK を返すことがあります。

vtbl 7 HRESULT GetIsolationLevel(INT* __MIDL__ITransactionProxy0000)

非 DTC トランザクションの分離レベルを取得します。

__MIDL__ITransactionProxy0000INT*inout非 DTC トランザクションの分離レベルを指定する ISOLATIONLEVEL 値へのポインター。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTED、および S_OK を返すことがあります。

vtbl 8 HRESULT GetIdentifier(GUID* pbstrIdentifier)

非 DTC トランザクションの識別子を取得します。

pbstrIdentifierGUID*inout非 DTC トランザクションを識別する GUID。

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTED、および S_OK を返すことがあります。

vtbl 9 HRESULT IsReusable(BOOL* pfIsReusable)

非 DTC トランザクションコンテキストを複数のトランザクションで再利用できるかどうかを示します。

pfIsReusableBOOL*inout非 DTC トランザクションコンテキストを複数のトランザクションで再利用できる場合は TRUE、それ以外の場合は FALSE

戻り値

このメソッドは、標準の戻り値 E_INVALIDARGE_OUTOFMEMORYE_UNEXPECTED、および S_OK を返すことがあります。

出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

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

出力引数:
#define global IID_ITransactionProxy "{02558374-DF2E-4DAE-BD6B-1D5C994F9BDC}"
#usecom global ITransactionProxy IID_ITransactionProxy "{}"
#comfunc global ITransactionProxy_Commit             3 int
#comfunc global ITransactionProxy_Abort              4
#comfunc global ITransactionProxy_Promote            5 sptr
#comfunc global ITransactionProxy_CreateVoter        6 sptr,sptr
#comfunc global ITransactionProxy_GetIsolationLevel  7 var
#comfunc global ITransactionProxy_GetIdentifier      8 var
#comfunc global ITransactionProxy_IsReusable         9 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。