| /* |
| * Copyright (C) 2013 Daniel JeliĆski |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA |
| */ |
| |
| import "txcoord.idl"; |
| |
| interface IXATransLookup; |
| interface IXATransLookup2; |
| interface IResourceManagerSink; |
| interface IResourceManager; |
| interface ILastResourceManager; |
| interface IResourceManager2; |
| interface IXAConfig; |
| /*interface IRMHelper; |
| interface IXAObtainRMInfo;*/ |
| interface IResourceManagerFactory; |
| interface IResourceManagerFactory2; |
| interface IPrepareInfo; |
| interface IPrepareInfo2; |
| interface IGetDispenser; |
| interface ITransactionVoterBallotAsync2; |
| interface ITransactionVoterNotifyAsync2; |
| interface ITransactionVoterFactory2; |
| interface ITransactionPhase0EnlistmentAsync; |
| interface ITransactionPhase0NotifyAsync; |
| interface ITransactionPhase0Factory; |
| interface ITransactionTransmitter; |
| interface ITransactionTransmitterFactory; |
| interface ITransactionReceiver; |
| interface ITransactionReceiverFactory; |
| interface IDtcLuConfigure; |
| interface IDtcLuRecovery; |
| interface IDtcLuRecoveryFactory; |
| interface IDtcLuRecoveryInitiatedByDtcTransWork; |
| interface IDtcLuRecoveryInitiatedByDtcStatusWork; |
| interface IDtcLuRecoveryInitiatedByDtc; |
| interface IDtcLuRecoveryInitiatedByLuWork; |
| interface IDtcLuRecoveryInitiatedByLu; |
| interface IDtcLuRmEnlistment; |
| interface IDtcLuRmEnlistmentSink; |
| interface IDtcLuRmEnlistmentFactory; |
| interface IDtcLuSubordinateDtc; |
| interface IDtcLuSubordinateDtcSink; |
| interface IDtcLuSubordinateDtcFactory; |
| |
| cpp_quote("#define XACTTOMSG(dwXact) (dwXact-0x00040000+0x40000000)") |
| typedef enum XACT_DTC_CONSTANTS { |
| XACT_E_CONNECTION_REQUEST_DENIED = 0x8004d100, |
| XACT_E_TOOMANY_ENLISTMENTS = 0x8004d101, |
| XACT_E_DUPLICATE_GUID = 0x8004d102, |
| XACT_E_NOTSINGLEPHASE = 0x8004d103, |
| XACT_E_RECOVERYALREADYDONE = 0x8004d104, |
| XACT_E_PROTOCOL = 0x8004d105, |
| XACT_E_RM_FAILURE = 0x8004d106, |
| XACT_E_RECOVERY_FAILED = 0x8004d107, |
| XACT_E_LU_NOT_FOUND = 0x8004d108, |
| XACT_E_DUPLICATE_LU = 0x8004d109, |
| XACT_E_LU_NOT_CONNECTED = 0x8004d10a, |
| XACT_E_DUPLICATE_TRANSID = 0x8004d10b, |
| XACT_E_LU_BUSY = 0x8004d10c, |
| XACT_E_LU_NO_RECOVERY_PROCESS = 0x8004d10d, |
| XACT_E_LU_DOWN = 0x8004d10e, |
| XACT_E_LU_RECOVERING = 0x8004d10f, |
| XACT_E_LU_RECOVERY_MISMATCH = 0x8004d110, |
| XACT_E_RM_UNAVAILABLE = 0x8004d111, |
| XACT_E_LRMRECOVERYALREADYDONE = 0x8004d112, |
| XACT_E_NOLASTRESOURCEINTERFACE = 0x8004d113, |
| XACT_S_NONOTIFY = 0x4d100, |
| XACT_OK_NONOTIFY = 0x4d101, |
| dwUSER_MS_SQLSERVER = 0xffff |
| } XACT_DTC_CONSTANTS; |
| |
| cpp_quote("#ifndef _XID_T_DEFINED") |
| cpp_quote("#define _XID_T_DEFINED") |
| typedef struct xid_t { |
| LONG32 formatID; |
| LONG32 gtrid_length; |
| LONG32 bqual_length; |
| char data[128 ]; |
| } XID; |
| cpp_quote("#endif") |
| /* idl doesn't like this type |
| cpp_quote("#ifndef _XA_SWITCH_T_DEFINED") |
| cpp_quote("#define _XA_SWITCH_T_DEFINED") |
| typedef struct xa_switch_t { |
| char name[32 ]; |
| LONG32 flags; |
| LONG32 version; |
| int (__cdecl *xa_open_entry)(char *__MIDL_0004,int __MIDL_0005,LONG32 __MIDL_0006); |
| int (__cdecl *xa_close_entry)(char *__MIDL_0008,int __MIDL_0009,LONG32 __MIDL_0010); |
| int (__cdecl *xa_start_entry)(XID *__MIDL_0012,int __MIDL_0013,LONG32 __MIDL_0014); |
| int (__cdecl *xa_end_entry)(XID *__MIDL_0016,int __MIDL_0017,LONG32 __MIDL_0018); |
| int (__cdecl *xa_rollback_entry)(XID *__MIDL_0020,int __MIDL_0021,LONG32 __MIDL_0022); |
| int (__cdecl *xa_prepare_entry)(XID *__MIDL_0024,int __MIDL_0025,LONG32 __MIDL_0026); |
| int (__cdecl *xa_commit_entry)(XID *__MIDL_0028,int __MIDL_0029,LONG32 __MIDL_0030); |
| int (__cdecl *xa_recover_entry)(XID *__MIDL_0032,LONG32 __MIDL_0033,int __MIDL_0034,LONG32 __MIDL_0035); |
| int (__cdecl *xa_forget_entry)(XID *__MIDL_0037,int __MIDL_0038,LONG32 __MIDL_0039); |
| int (__cdecl *xa_complete_entry)(int *__MIDL_0041,int *__MIDL_0042,int __MIDL_0043,LONG32 __MIDL_0044); |
| } xa_switch_t; |
| cpp_quote("#endif") |
| */ |
| [ |
| object, |
| uuid(f3b1f131-eeda-11ce-aed4-00aa0051e2c4) |
| ] |
| interface IXATransLookup : IUnknown { |
| HRESULT Lookup([out]ITransaction **ppTransaction); |
| }; |
| [ |
| object, |
| uuid(bf193c85-0d1a-4290-b88f-d2cb8873d1e7) |
| ] |
| interface IXATransLookup2 : IUnknown { |
| HRESULT Lookup([in]XID *pXID,[out]ITransaction **ppTransaction); |
| }; |
| [ |
| object, |
| uuid(0d563181-defb-11ce-aed1-00aa0051e2c4) |
| ] |
| interface IResourceManagerSink : IUnknown { |
| HRESULT TMDown(void); |
| }; |
| [ |
| object, |
| uuid(13741d21-87eb-11ce-8081-0080c758527e) |
| ] |
| interface IResourceManager : IUnknown { |
| HRESULT Enlist([in]ITransaction *pTransaction,[in]ITransactionResourceAsync *pRes,[out]XACTUOW *pUOW,[out]LONG *pisoLevel,[out]ITransactionEnlistmentAsync **ppEnlist); |
| HRESULT Reenlist([in]byte *pPrepInfo,[in]ULONG cbPrepInfo,[in]DWORD lTimeout,[out]XACTSTAT *pXactStat); |
| HRESULT ReenlistmentComplete(void); |
| HRESULT GetDistributedTransactionManager([in]REFIID iid,[out,iid_is(iid)]void **ppvObject); |
| }; |
| [ |
| object, |
| uuid(4d964ad4-5b33-11d3-8a91-00c04f79eb6d) |
| ] |
| interface ILastResourceManager : IUnknown { |
| HRESULT TransactionCommitted([in]byte *pPrepInfo,[in]ULONG cbPrepInfo); |
| HRESULT RecoveryDone(void); |
| }; |
| [ |
| object, |
| uuid(d136c69a-f749-11d1-8f47-00c04f8ee57d) |
| ] |
| interface IResourceManager2 : IResourceManager { |
| HRESULT Enlist2([in]ITransaction *pTransaction,[in]ITransactionResourceAsync *pResAsync,[out]XACTUOW *pUOW,[out]LONG *pisoLevel,[out]XID *pXid,[out]ITransactionEnlistmentAsync **ppEnlist); |
| HRESULT Reenlist2([in]XID *pXid,[in]DWORD dwTimeout,[out]XACTSTAT *pXactStat); |
| }; |
| [ |
| object, |
| uuid(c8a6e3a1-9a8c-11cf-a308-00a0c905416e) |
| ] |
| interface IXAConfig : IUnknown { |
| HRESULT Initialize([in]GUID clsidHelperDll); |
| HRESULT Terminate(void); |
| }; |
| /* commented out because idl doesn't accept xa_switch_t type |
| [ |
| object, |
| uuid(E793F6D1-F53D-11cf-A60D-00A0C905416E) |
| ] |
| interface IRMHelper : IUnknown { |
| HRESULT RMCount([in]DWORD dwcTotalNumberOfRMs); |
| HRESULT RMInfo([in]xa_switch_t *pXa_Switch,[in]BOOL fCDeclCallingConv,[in]char *pszOpenString,[in]char *pszCloseString,[in]GUID guidRMRecovery); |
| }; |
| [ |
| object, |
| uuid(E793F6D2-F53D-11cf-A60D-00A0C905416E) |
| ] |
| interface IXAObtainRMInfo : IUnknown { |
| HRESULT ObtainRMInfo([in]IRMHelper *pIRMHelper); |
| };*/ |
| [ |
| object, |
| uuid(13741d20-87eb-11ce-8081-0080c758527e) |
| ] |
| interface IResourceManagerFactory : IUnknown { |
| HRESULT Create([in]GUID *pguidRM,[in]CHAR *pszRMName,[in]IResourceManagerSink *pIResMgrSink,[out]IResourceManager **ppResMgr); |
| }; |
| [ |
| object, |
| uuid(6b369c21-fbd2-11d1-8f47-00c04f8ee57d) |
| ] |
| interface IResourceManagerFactory2 : IResourceManagerFactory { |
| HRESULT CreateEx([in]GUID *pguidRM,[in]CHAR *pszRMName,[in]IResourceManagerSink *pIResMgrSink,[in]REFIID riidRequested,[out, iid_is(riidRequested)]void **ppvResMgr); |
| }; |
| |
| [ |
| object, |
| uuid(80c7bfd0-87ee-11ce-8081-0080c758527e) |
| ] |
| interface IPrepareInfo : IUnknown { |
| HRESULT GetPrepareInfoSize([out]ULONG *pcbPrepInfo); |
| HRESULT GetPrepareInfo([out]byte *pPrepInfo); |
| }; |
| [ |
| object, |
| uuid(5fab2547-9779-11d1-b886-00c04fb9618a) |
| ] |
| interface IPrepareInfo2 : IUnknown { |
| HRESULT GetPrepareInfoSize([out]ULONG *pcbPrepInfo); |
| HRESULT GetPrepareInfo([in]ULONG cbPrepareInfo,[out]byte *pPrepInfo); |
| }; |
| [ |
| object, |
| uuid(c23cc370-87ef-11ce-8081-0080c758527e) |
| ] |
| interface IGetDispenser : IUnknown { |
| HRESULT GetDispenser([in]REFIID iid,[out,iid_is(iid)]void **ppvObject); |
| }; |
| [ |
| object, |
| uuid(5433376c-414d-11d3-b206-00c04fc2f3ef) |
| ] |
| interface ITransactionVoterBallotAsync2 : IUnknown { |
| HRESULT VoteRequestDone([in]HRESULT hr,[in]BOID *pboidReason); |
| }; |
| [ |
| object, |
| uuid(5433376b-414d-11d3-b206-00c04fc2f3ef) |
| ] |
| interface ITransactionVoterNotifyAsync2 : ITransactionOutcomeEvents { |
| HRESULT VoteRequest(void); |
| }; |
| [ |
| object, |
| uuid(5433376a-414d-11d3-b206-00c04fc2f3ef) |
| ] |
| interface ITransactionVoterFactory2 : IUnknown { |
| HRESULT Create([in]ITransaction *pTransaction,[in]ITransactionVoterNotifyAsync2 *pVoterNotify,[out]ITransactionVoterBallotAsync2 **ppVoterBallot); |
| }; |
| [ |
| object, |
| uuid(82dc88e1-a954-11d1-8f88-00600895e7d5) |
| ] |
| interface ITransactionPhase0EnlistmentAsync : IUnknown { |
| HRESULT Enable(void); |
| HRESULT WaitForEnlistment(void); |
| HRESULT Phase0Done(void); |
| HRESULT Unenlist(void); |
| HRESULT GetTransaction([out]ITransaction **ppITransaction); |
| }; |
| [ |
| object, |
| uuid(ef081809-0c76-11d2-87a6-00c04f990f34) |
| ] |
| interface ITransactionPhase0NotifyAsync : IUnknown { |
| HRESULT Phase0Request([in]BOOL fAbortingHint); |
| HRESULT EnlistCompleted([in]HRESULT status); |
| }; |
| [ |
| object, |
| uuid(82dc88e0-a954-11d1-8f88-00600895e7d5) |
| ] |
| interface ITransactionPhase0Factory : IUnknown { |
| HRESULT Create([in]ITransactionPhase0NotifyAsync *pPhase0Notify,[out]ITransactionPhase0EnlistmentAsync **ppPhase0Enlistment); |
| }; |
| [ |
| object, |
| uuid(59313e01-b36c-11cf-a539-00aa006887c3) |
| ] |
| interface ITransactionTransmitter : IUnknown { |
| HRESULT Set([in]ITransaction *pTransaction); |
| HRESULT GetPropagationTokenSize([out]ULONG *pcbToken); |
| HRESULT MarshalPropagationToken([in]ULONG cbToken,[out]byte *rgbToken,[out]ULONG *pcbUsed); |
| HRESULT UnmarshalReturnToken([in]ULONG cbReturnToken,[in]byte *rgbReturnToken); |
| HRESULT Reset(void); |
| }; |
| [ |
| object, |
| uuid(59313e00-b36c-11cf-a539-00aa006887c3) |
| ] |
| interface ITransactionTransmitterFactory : IUnknown { |
| HRESULT Create([out]ITransactionTransmitter **ppTransmitter); |
| }; |
| [ |
| object, |
| uuid(59313e03-b36c-11cf-a539-00aa006887c3) |
| ] |
| interface ITransactionReceiver : IUnknown { |
| HRESULT UnmarshalPropagationToken([in]ULONG cbToken,[in]byte *rgbToken,[out]ITransaction **ppTransaction); |
| HRESULT GetReturnTokenSize([out]ULONG *pcbReturnToken); |
| HRESULT MarshalReturnToken([in]ULONG cbReturnToken,[out]byte *rgbReturnToken,[out]ULONG *pcbUsed); |
| HRESULT Reset(void); |
| }; |
| [ |
| object, |
| uuid(59313e02-b36c-11cf-a539-00aa006887c3) |
| ] |
| interface ITransactionReceiverFactory : IUnknown { |
| HRESULT Create([out]ITransactionReceiver **ppReceiver); |
| }; |
| |
| typedef struct _ProxyConfigParams { |
| WORD wcThreadsMax; |
| } PROXY_CONFIG_PARAMS; |
| |
| [ |
| object, |
| uuid(4131e760-1aea-11d0-944b-00a0c905416e) |
| ] |
| interface IDtcLuConfigure : IUnknown { |
| HRESULT Add([in]byte *pucLuPair,[in]DWORD cbLuPair); |
| HRESULT Delete([in]byte *pucLuPair,[in]DWORD cbLuPair); |
| }; |
| [ |
| object, |
| uuid(ac2b8ad2-d6f0-11d0-b386-00a0c9083365) |
| ] |
| interface IDtcLuRecovery : IUnknown { |
| }; |
| [ |
| object, |
| uuid(4131e762-1aea-11d0-944b-00a0c905416e) |
| ] |
| interface IDtcLuRecoveryFactory : IUnknown { |
| HRESULT Create([in]byte *pucLuPair,[in]DWORD cbLuPair,[out]IDtcLuRecovery **ppRecovery); |
| }; |
| |
| typedef enum _DtcLu_LocalRecovery_Work { |
| DTCINITIATEDRECOVERYWORK_CHECKLUSTATUS = 1, |
| DTCINITIATEDRECOVERYWORK_TRANS, |
| DTCINITIATEDRECOVERYWORK_TMDOWN |
| } DTCINITIATEDRECOVERYWORK; |
| |
| typedef enum _DtcLu_Xln { |
| DTCLUXLN_COLD = 1, |
| DTCLUXLN_WARM |
| } DTCLUXLN; |
| |
| typedef enum _DtcLu_Xln_Confirmation { |
| DTCLUXLNCONFIRMATION_CONFIRM = 1, |
| DTCLUXLNCONFIRMATION_LOGNAMEMISMATCH, |
| DTCLUXLNCONFIRMATION_COLDWARMMISMATCH, |
| DTCLUXLNCONFIRMATION_OBSOLETE |
| } DTCLUXLNCONFIRMATION; |
| |
| typedef enum _DtcLu_Xln_Response { |
| DTCLUXLNRESPONSE_OK_SENDOURXLNBACK = 1, |
| DTCLUXLNRESPONSE_OK_SENDCONFIRMATION, |
| DTCLUXLNRESPONSE_LOGNAMEMISMATCH, |
| DTCLUXLNRESPONSE_COLDWARMMISMATCH |
| } DTCLUXLNRESPONSE; |
| |
| typedef enum _DtcLu_Xln_Error { |
| DTCLUXLNERROR_PROTOCOL = 1, |
| DTCLUXLNERROR_LOGNAMEMISMATCH, |
| DTCLUXLNERROR_COLDWARMMISMATCH |
| } DTCLUXLNERROR; |
| |
| typedef enum _DtcLu_CompareState { |
| DTCLUCOMPARESTATE_COMMITTED = 1, |
| DTCLUCOMPARESTATE_HEURISTICCOMMITTED, |
| DTCLUCOMPARESTATE_HEURISTICMIXED, |
| DTCLUCOMPARESTATE_HEURISTICRESET, |
| DTCLUCOMPARESTATE_INDOUBT, |
| DTCLUCOMPARESTATE_RESET |
| } DTCLUCOMPARESTATE; |
| |
| typedef enum _DtcLu_CompareStates_Confirmation { |
| DTCLUCOMPARESTATESCONFIRMATION_CONFIRM = 1, |
| DTCLUCOMPARESTATESCONFIRMATION_PROTOCOL |
| } DTCLUCOMPARESTATESCONFIRMATION; |
| |
| typedef enum _DtcLu_CompareStates_Error { |
| DTCLUCOMPARESTATESERROR_PROTOCOL = 1 |
| } DTCLUCOMPARESTATESERROR; |
| |
| typedef enum _DtcLu_CompareStates_Response { |
| DTCLUCOMPARESTATESRESPONSE_OK = 1, |
| DTCLUCOMPARESTATESRESPONSE_PROTOCOL |
| } DTCLUCOMPARESTATESRESPONSE; |
| |
| [ |
| object, |
| uuid(4131e765-1aea-11d0-944b-00a0c905416e) |
| ] |
| interface IDtcLuRecoveryInitiatedByDtcTransWork : IUnknown { |
| HRESULT GetLogNameSizes([out]DWORD *pcbOurLogName,[out]DWORD *pcbRemoteLogName); |
| HRESULT GetOurXln([out]DTCLUXLN *pXln,[in,out]unsigned char *pOurLogName,[in,out]unsigned char *pRemoteLogName,[out]DWORD *pdwProtocol); |
| HRESULT HandleConfirmationFromOurXln([in]DTCLUXLNCONFIRMATION Confirmation); |
| HRESULT HandleTheirXlnResponse([in]DTCLUXLN Xln,[in]unsigned char *pRemoteLogName,[in]DWORD cbRemoteLogName,[in]DWORD dwProtocol,[out]DTCLUXLNCONFIRMATION *pConfirmation); |
| HRESULT HandleErrorFromOurXln([in]DTCLUXLNERROR Error); |
| HRESULT CheckForCompareStates([out]BOOL *fCompareStates); |
| HRESULT GetOurTransIdSize([in,out]DWORD *pcbOurTransId); |
| HRESULT GetOurCompareStates([in,out]unsigned char *pOurTransId,[out]DTCLUCOMPARESTATE *pCompareState); |
| HRESULT HandleTheirCompareStatesResponse([in]DTCLUCOMPARESTATE CompareState,[out]DTCLUCOMPARESTATESCONFIRMATION *pConfirmation); |
| HRESULT HandleErrorFromOurCompareStates([in]DTCLUCOMPARESTATESERROR Error); |
| HRESULT ConversationLost(void); |
| HRESULT GetRecoverySeqNum([out]LONG *plRecoverySeqNum); |
| HRESULT ObsoleteRecoverySeqNum([in]LONG lNewRecoverySeqNum); |
| }; |
| [ |
| object, |
| uuid(4131e766-1aea-11d0-944b-00a0c905416e) |
| ] |
| interface IDtcLuRecoveryInitiatedByDtcStatusWork : IUnknown { |
| HRESULT HandleCheckLuStatus([in]LONG lRecoverySeqNum); |
| }; |
| [ |
| object, |
| uuid(4131e764-1aea-11d0-944b-00a0c905416e) |
| ] |
| [local] interface IDtcLuRecoveryInitiatedByDtc : IUnknown { |
| HRESULT GetWork([in,out]DTCINITIATEDRECOVERYWORK *pWork,[in,out]void **ppv); |
| }; |
| [ |
| object, |
| uuid(ac2b8ad1-d6f0-11d0-b386-00a0c9083365) |
| ] |
| interface IDtcLuRecoveryInitiatedByLuWork : IUnknown { |
| HRESULT HandleTheirXln([in]LONG lRecoverySeqNum,[in]DTCLUXLN Xln,[in]unsigned char *pRemoteLogName,[in]DWORD cbRemoteLogName,[in]unsigned char *pOurLogName,[in]DWORD cbOurLogName,[in]DWORD dwProtocol,[out]DTCLUXLNRESPONSE *pResponse); |
| HRESULT GetOurLogNameSize([in,out]DWORD *pcbOurLogName); |
| HRESULT GetOurXln([out]DTCLUXLN *pXln,[in,out]unsigned char *pOurLogName,[out]DWORD *pdwProtocol); |
| HRESULT HandleConfirmationOfOurXln([in]DTCLUXLNCONFIRMATION Confirmation); |
| HRESULT HandleTheirCompareStates([in,out]unsigned char *pRemoteTransId,[in]DWORD cbRemoteTransId,[in]DTCLUCOMPARESTATE CompareState,[out]DTCLUCOMPARESTATESRESPONSE *pResponse,[out]DTCLUCOMPARESTATE *pCompareState); |
| HRESULT HandleConfirmationOfOurCompareStates([in]DTCLUCOMPARESTATESCONFIRMATION Confirmation); |
| HRESULT HandleErrorFromOurCompareStates([in]DTCLUCOMPARESTATESERROR Error); |
| HRESULT ConversationLost(void); |
| }; |
| [ |
| object, |
| uuid(4131e768-1aea-11d0-944b-00a0c905416e) |
| ] |
| interface IDtcLuRecoveryInitiatedByLu : IUnknown { |
| HRESULT GetObjectToHandleWorkFromLu([out]IDtcLuRecoveryInitiatedByLuWork **ppWork); |
| }; |
| [ |
| object, |
| uuid(4131e769-1aea-11d0-944b-00a0c905416e) |
| ] |
| interface IDtcLuRmEnlistment : IUnknown { |
| HRESULT Unplug([in]BOOL fConversationLost); |
| HRESULT BackedOut(void); |
| HRESULT BackOut(void); |
| HRESULT Committed(void); |
| HRESULT Forget(void); |
| HRESULT RequestCommit(void); |
| }; |
| [ |
| object, |
| uuid(4131e770-1aea-11d0-944b-00a0c905416e) |
| ] |
| interface IDtcLuRmEnlistmentSink : IUnknown { |
| HRESULT AckUnplug(void); |
| HRESULT TmDown(void); |
| HRESULT SessionLost(void); |
| HRESULT BackedOut(void); |
| HRESULT BackOut(void); |
| HRESULT Committed(void); |
| HRESULT Forget(void); |
| HRESULT Prepare(void); |
| HRESULT RequestCommit(void); |
| }; |
| [ |
| object, |
| uuid(4131e771-1aea-11d0-944b-00a0c905416e) |
| ] |
| interface IDtcLuRmEnlistmentFactory : IUnknown { |
| HRESULT Create([in]unsigned char *pucLuPair,[in]DWORD cbLuPair,[in]ITransaction *pITransaction,[in]unsigned char *pTransId,[in]DWORD cbTransId,[in]IDtcLuRmEnlistmentSink *pRmEnlistmentSink,[in,out]IDtcLuRmEnlistment **ppRmEnlistment); |
| }; |
| [ |
| object, |
| uuid(4131e773-1aea-11d0-944b-00a0c905416e) |
| ] |
| interface IDtcLuSubordinateDtc : IUnknown { |
| HRESULT Unplug([in]BOOL fConversationLost); |
| HRESULT BackedOut(void); |
| HRESULT BackOut(void); |
| HRESULT Committed(void); |
| HRESULT Forget(void); |
| HRESULT Prepare(void); |
| HRESULT RequestCommit(void); |
| }; |
| [ |
| object, |
| uuid(4131e774-1aea-11d0-944b-00a0c905416e) |
| ] |
| interface IDtcLuSubordinateDtcSink : IUnknown { |
| HRESULT AckUnplug(void); |
| HRESULT TmDown(void); |
| HRESULT SessionLost(void); |
| HRESULT BackedOut(void); |
| HRESULT BackOut(void); |
| HRESULT Committed(void); |
| HRESULT Forget(void); |
| HRESULT RequestCommit(void); |
| }; |
| [ |
| object, |
| uuid(4131e775-1aea-11d0-944b-00a0c905416e) |
| ] |
| interface IDtcLuSubordinateDtcFactory : IUnknown { |
| HRESULT Create([in]unsigned char *pucLuPair,[in]DWORD cbLuPair,[in]IUnknown *punkTransactionOuter,[in]ISOLEVEL isoLevel,[in]ULONG isoFlags,[in]ITransactionOptions *pOptions,[out]ITransaction **ppTransaction,[in]unsigned char *pTransId,[in]DWORD cbTransId,[in]IDtcLuSubordinateDtcSink *pSubordinateDtcSink,[in,out]IDtcLuSubordinateDtc **ppSubordinateDtc); |
| }; |
| |
| /* these GUIDs were found in mingw header, but without corresponding interface definitions |
| DEFINE_GUID(IID_IXAResourceManager,0x4131e751,0x1aea,0x11d0,0x94,0x4b,0x00,0xa0,0xc9,0x05,0x41,0x6e); |
| DEFINE_GUID(IID_IXAResourceManagerFactory,0x4131e750,0x1aea,0x11d0,0x94,0x4b,0x00,0xa0,0xc9,0x05,0x41,0x6e); |
| DEFINE_GUID(IID_IXATransaction,0x4131e752,0x1aea,0x11d0,0x94,0x4b,0x00,0xa0,0xc9,0x05,0x41,0x6e); |
| */ |