home *** CD-ROM | disk | FTP | other *** search
/ PC Format (South-Africa) 2001 June / PCFJune.iso / Xenon / C++ / FreeCommandLineTools.exe / Include / transact.h < prev    next >
Encoding:
C/C++ Source or Header  |  2000-01-31  |  33.9 KB  |  1,148 lines

  1. #pragma option push -b -a8 -pc -A- /*P_O_Push*/
  2.  
  3. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  4.  
  5. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  6.  
  7.  
  8.  /* File created by MIDL compiler version 5.03.0268 */
  9. /* at Sun Jul 11 03:15:27 1999
  10.  */
  11. /* Compiler settings for transact.idl:
  12.     Oicf (OptLev=i2), W1, Zp8, env=Win32 (32b run), ms_ext, c_ext
  13.     error checks: allocation ref bounds_check enum stub_data 
  14.     VC __declspec() decoration level: 
  15.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  16.          DECLSPEC_UUID(), MIDL_INTERFACE()
  17. */
  18. //@@MIDL_FILE_HEADING(  )
  19.  
  20.  
  21. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  22. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  23. #define __REQUIRED_RPCNDR_H_VERSION__ 440
  24. #endif
  25.  
  26. #include "rpc.h"
  27. #include "rpcndr.h"
  28.  
  29. #ifndef __RPCNDR_H_VERSION__
  30. #error this stub requires an updated version of <rpcndr.h>
  31. #endif // __RPCNDR_H_VERSION__
  32.  
  33. #ifndef COM_NO_WINDOWS_H
  34. #include "windows.h"
  35. #include "ole2.h"
  36. #endif /*COM_NO_WINDOWS_H*/
  37.  
  38. #ifndef __transact_h__
  39. #define __transact_h__
  40.  
  41. /* Forward Declarations */ 
  42.  
  43. #ifndef __ITransaction_FWD_DEFINED__
  44. #define __ITransaction_FWD_DEFINED__
  45. typedef interface ITransaction ITransaction;
  46. #endif     /* __ITransaction_FWD_DEFINED__ */
  47.  
  48.  
  49. #ifndef __ITransactionCloner_FWD_DEFINED__
  50. #define __ITransactionCloner_FWD_DEFINED__
  51. typedef interface ITransactionCloner ITransactionCloner;
  52. #endif     /* __ITransactionCloner_FWD_DEFINED__ */
  53.  
  54.  
  55. #ifndef __ITransaction2_FWD_DEFINED__
  56. #define __ITransaction2_FWD_DEFINED__
  57. typedef interface ITransaction2 ITransaction2;
  58. #endif     /* __ITransaction2_FWD_DEFINED__ */
  59.  
  60.  
  61. #ifndef __ITransactionDispenser_FWD_DEFINED__
  62. #define __ITransactionDispenser_FWD_DEFINED__
  63. typedef interface ITransactionDispenser ITransactionDispenser;
  64. #endif     /* __ITransactionDispenser_FWD_DEFINED__ */
  65.  
  66.  
  67. #ifndef __ITransactionOptions_FWD_DEFINED__
  68. #define __ITransactionOptions_FWD_DEFINED__
  69. typedef interface ITransactionOptions ITransactionOptions;
  70. #endif     /* __ITransactionOptions_FWD_DEFINED__ */
  71.  
  72.  
  73. #ifndef __ITransactionOutcomeEvents_FWD_DEFINED__
  74. #define __ITransactionOutcomeEvents_FWD_DEFINED__
  75. typedef interface ITransactionOutcomeEvents ITransactionOutcomeEvents;
  76. #endif     /* __ITransactionOutcomeEvents_FWD_DEFINED__ */
  77.  
  78.  
  79. /* header files for imported files */
  80. #include "unknwn.h"
  81.  
  82. #ifdef __cplusplus
  83. extern "C"{
  84. #endif 
  85.  
  86. void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
  87. void __RPC_USER MIDL_user_free( void __RPC_FAR * ); 
  88.  
  89. /* interface __MIDL_itf_transact_0000 */
  90. /* [local] */ 
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97. #ifndef DECLSPEC_UUID
  98. #if _MSC_VER >= 1100
  99. #define DECLSPEC_UUID(x)    __declspec(uuid(x))
  100. #else
  101. #define DECLSPEC_UUID(x)
  102. #endif
  103. #endif
  104.  
  105.  
  106. extern RPC_IF_HANDLE __MIDL_itf_transact_0000_v0_0_c_ifspec;
  107. extern RPC_IF_HANDLE __MIDL_itf_transact_0000_v0_0_s_ifspec;
  108.  
  109. #ifndef __BasicTransactionTypes_INTERFACE_DEFINED__
  110. #define __BasicTransactionTypes_INTERFACE_DEFINED__
  111.  
  112. /* interface BasicTransactionTypes */
  113. /* [unique][local] */ 
  114.  
  115. typedef struct BOID
  116.     {
  117.     byte rgb[ 16 ];
  118.     }    BOID;
  119.  
  120. #define BOID_NULL (*((BOID*)(&IID_NULL)))
  121. #ifndef MAX_TRAN_DESC_DEFINED
  122. #define MAX_TRAN_DESC_DEFINED
  123. typedef 
  124. enum TX_MISC_CONSTANTS
  125.     {    MAX_TRAN_DESC    = 40
  126.     }    TX_MISC_CONSTANTS;
  127.  
  128. #endif
  129. typedef BOID XACTUOW;
  130.  
  131. typedef LONG ISOLEVEL;
  132.  
  133. typedef 
  134. enum ISOLATIONLEVEL
  135.     {    ISOLATIONLEVEL_UNSPECIFIED    = 0xffffffff,
  136.     ISOLATIONLEVEL_CHAOS    = 0x10,
  137.     ISOLATIONLEVEL_READUNCOMMITTED    = 0x100,
  138.     ISOLATIONLEVEL_BROWSE    = 0x100,
  139.     ISOLATIONLEVEL_CURSORSTABILITY    = 0x1000,
  140.     ISOLATIONLEVEL_READCOMMITTED    = 0x1000,
  141.     ISOLATIONLEVEL_REPEATABLEREAD    = 0x10000,
  142.     ISOLATIONLEVEL_SERIALIZABLE    = 0x100000,
  143.     ISOLATIONLEVEL_ISOLATED    = 0x100000
  144.     }    ISOLATIONLEVEL;
  145.  
  146. typedef struct XACTTRANSINFO
  147.     {
  148.     XACTUOW uow;
  149.     ISOLEVEL isoLevel;
  150.     ULONG isoFlags;
  151.     DWORD grfTCSupported;
  152.     DWORD grfRMSupported;
  153.     DWORD grfTCSupportedRetaining;
  154.     DWORD grfRMSupportedRetaining;
  155.     }    XACTTRANSINFO;
  156.  
  157. typedef struct XACTSTATS
  158.     {
  159.     ULONG cOpen;
  160.     ULONG cCommitting;
  161.     ULONG cCommitted;
  162.     ULONG cAborting;
  163.     ULONG cAborted;
  164.     ULONG cInDoubt;
  165.     ULONG cHeuristicDecision;
  166.     FILETIME timeTransactionsUp;
  167.     }    XACTSTATS;
  168.  
  169. typedef 
  170. enum ISOFLAG
  171.     {    ISOFLAG_RETAIN_COMMIT_DC    = 1,
  172.     ISOFLAG_RETAIN_COMMIT    = 2,
  173.     ISOFLAG_RETAIN_COMMIT_NO    = 3,
  174.     ISOFLAG_RETAIN_ABORT_DC    = 4,
  175.     ISOFLAG_RETAIN_ABORT    = 8,
  176.     ISOFLAG_RETAIN_ABORT_NO    = 12,
  177.     ISOFLAG_RETAIN_DONTCARE    = ISOFLAG_RETAIN_COMMIT_DC | ISOFLAG_RETAIN_ABORT_DC,
  178.     ISOFLAG_RETAIN_BOTH    = ISOFLAG_RETAIN_COMMIT | ISOFLAG_RETAIN_ABORT,
  179.     ISOFLAG_RETAIN_NONE    = ISOFLAG_RETAIN_COMMIT_NO | ISOFLAG_RETAIN_ABORT_NO,
  180.     ISOFLAG_OPTIMISTIC    = 16,
  181.     ISOFLAG_READONLY    = 32
  182.     }    ISOFLAG;
  183.  
  184. typedef 
  185. enum XACTTC
  186.     {    XACTTC_SYNC_PHASEONE    = 1,
  187.     XACTTC_SYNC_PHASETWO    = 2,
  188.     XACTTC_SYNC    = 2,
  189.     XACTTC_ASYNC_PHASEONE    = 4,
  190.     XACTTC_ASYNC    = 4
  191.     }    XACTTC;
  192.  
  193. typedef 
  194. enum XACTRM
  195.     {    XACTRM_OPTIMISTICLASTWINS    = 1,
  196.     XACTRM_NOREADONLYPREPARES    = 2
  197.     }    XACTRM;
  198.  
  199. typedef 
  200. enum XACTCONST
  201.     {    XACTCONST_TIMEOUTINFINITE    = 0
  202.     }    XACTCONST;
  203.  
  204. typedef 
  205. enum XACTHEURISTIC
  206.     {    XACTHEURISTIC_ABORT    = 1,
  207.     XACTHEURISTIC_COMMIT    = 2,
  208.     XACTHEURISTIC_DAMAGE    = 3,
  209.     XACTHEURISTIC_DANGER    = 4
  210.     }    XACTHEURISTIC;
  211.  
  212. typedef 
  213. enum XACTSTAT
  214.     {    XACTSTAT_NONE    = 0,
  215.     XACTSTAT_OPENNORMAL    = 0x1,
  216.     XACTSTAT_OPENREFUSED    = 0x2,
  217.     XACTSTAT_PREPARING    = 0x4,
  218.     XACTSTAT_PREPARED    = 0x8,
  219.     XACTSTAT_PREPARERETAINING    = 0x10,
  220.     XACTSTAT_PREPARERETAINED    = 0x20,
  221.     XACTSTAT_COMMITTING    = 0x40,
  222.     XACTSTAT_COMMITRETAINING    = 0x80,
  223.     XACTSTAT_ABORTING    = 0x100,
  224.     XACTSTAT_ABORTED    = 0x200,
  225.     XACTSTAT_COMMITTED    = 0x400,
  226.     XACTSTAT_HEURISTIC_ABORT    = 0x800,
  227.     XACTSTAT_HEURISTIC_COMMIT    = 0x1000,
  228.     XACTSTAT_HEURISTIC_DAMAGE    = 0x2000,
  229.     XACTSTAT_HEURISTIC_DANGER    = 0x4000,
  230.     XACTSTAT_FORCED_ABORT    = 0x8000,
  231.     XACTSTAT_FORCED_COMMIT    = 0x10000,
  232.     XACTSTAT_INDOUBT    = 0x20000,
  233.     XACTSTAT_CLOSED    = 0x40000,
  234.     XACTSTAT_OPEN    = 0x3,
  235.     XACTSTAT_NOTPREPARED    = 0x7ffc3,
  236.     XACTSTAT_ALL    = 0x7ffff
  237.     }    XACTSTAT;
  238.  
  239. typedef struct XACTOPT
  240.     {
  241.     ULONG ulTimeout;
  242.     char szDescription[ 40 ];
  243.     }    XACTOPT;
  244.  
  245. typedef 
  246. enum XACT_E
  247.     {    XACT_E_FIRST    = 0x8004d000,
  248.     XACT_E_LAST    = 0x8004d022,
  249.     XACT_S_FIRST    = 0x4d000,
  250.     XACT_S_LAST    = 0x4d009,
  251.     XACT_E_ALREADYOTHERSINGLEPHASE    = 0x8004d000,
  252.     XACT_E_CANTRETAIN    = 0x8004d001,
  253.     XACT_E_COMMITFAILED    = 0x8004d002,
  254.     XACT_E_COMMITPREVENTED    = 0x8004d003,
  255.     XACT_E_HEURISTICABORT    = 0x8004d004,
  256.     XACT_E_HEURISTICCOMMIT    = 0x8004d005,
  257.     XACT_E_HEURISTICDAMAGE    = 0x8004d006,
  258.     XACT_E_HEURISTICDANGER    = 0x8004d007,
  259.     XACT_E_ISOLATIONLEVEL    = 0x8004d008,
  260.     XACT_E_NOASYNC    = 0x8004d009,
  261.     XACT_E_NOENLIST    = 0x8004d00a,
  262.     XACT_E_NOISORETAIN    = 0x8004d00b,
  263.     XACT_E_NORESOURCE    = 0x8004d00c,
  264.     XACT_E_NOTCURRENT    = 0x8004d00d,
  265.     XACT_E_NOTRANSACTION    = 0x8004d00e,
  266.     XACT_E_NOTSUPPORTED    = 0x8004d00f,
  267.     XACT_E_UNKNOWNRMGRID    = 0x8004d010,
  268.     XACT_E_WRONGSTATE    = 0x8004d011,
  269.     XACT_E_WRONGUOW    = 0x8004d012,
  270.     XACT_E_XTIONEXISTS    = 0x8004d013,
  271.     XACT_E_NOIMPORTOBJECT    = 0x8004d014,
  272.     XACT_E_INVALIDCOOKIE    = 0x8004d015,
  273.     XACT_E_INDOUBT    = 0x8004d016,
  274.     XACT_E_NOTIMEOUT    = 0x8004d017,
  275.     XACT_E_ALREADYINPROGRESS    = 0x8004d018,
  276.     XACT_E_ABORTED    = 0x8004d019,
  277.     XACT_E_LOGFULL    = 0x8004d01a,
  278.     XACT_E_TMNOTAVAILABLE    = 0x8004d01b,
  279.     XACT_E_CONNECTION_DOWN    = 0x8004d01c,
  280.     XACT_E_CONNECTION_DENIED    = 0x8004d01d,
  281.     XACT_E_REENLISTTIMEOUT    = 0x8004d01e,
  282.     XACT_E_TIP_CONNECT_FAILED    = 0x8004d01f,
  283.     XACT_E_TIP_PROTOCOL_ERROR    = 0x8004d020,
  284.     XACT_E_TIP_PULL_FAILED    = 0x8004d021,
  285.     XACT_E_DEST_TMNOTAVAILABLE    = 0x8004d022,
  286.     XACT_E_CLERKNOTFOUND    = 0x8004d080,
  287.     XACT_E_CLERKEXISTS    = 0x8004d081,
  288.     XACT_E_RECOVERYINPROGRESS    = 0x8004d082,
  289.     XACT_E_TRANSACTIONCLOSED    = 0x8004d083,
  290.     XACT_E_INVALIDLSN    = 0x8004d084,
  291.     XACT_E_REPLAYREQUEST    = 0x8004d085,
  292.     XACT_S_ASYNC    = 0x4d000,
  293.     XACT_S_DEFECT    = 0x4d001,
  294.     XACT_S_READONLY    = 0x4d002,
  295.     XACT_S_SOMENORETAIN    = 0x4d003,
  296.     XACT_S_OKINFORM    = 0x4d004,
  297.     XACT_S_MADECHANGESCONTENT    = 0x4d005,
  298.     XACT_S_MADECHANGESINFORM    = 0x4d006,
  299.     XACT_S_ALLNORETAIN    = 0x4d007,
  300.     XACT_S_ABORTING    = 0x4d008,
  301.     XACT_S_SINGLEPHASE    = 0x4d009
  302.     }    XACT_E;
  303.  
  304.  
  305.  
  306. extern RPC_IF_HANDLE BasicTransactionTypes_v0_0_c_ifspec;
  307. extern RPC_IF_HANDLE BasicTransactionTypes_v0_0_s_ifspec;
  308. #endif /* __BasicTransactionTypes_INTERFACE_DEFINED__ */
  309.  
  310. #ifndef __ITransaction_INTERFACE_DEFINED__
  311. #define __ITransaction_INTERFACE_DEFINED__
  312.  
  313. /* interface ITransaction */
  314. /* [unique][uuid][object] */ 
  315.  
  316.  
  317. EXTERN_C const IID IID_ITransaction;
  318.  
  319. #if defined(__cplusplus) && !defined(CINTERFACE)
  320.     
  321.     MIDL_INTERFACE("0fb15084-af41-11ce-bd2b-204c4f4f5020")
  322.     ITransaction : public IUnknown
  323.     {
  324.     public:
  325.         virtual HRESULT STDMETHODCALLTYPE Commit( 
  326.             /* [in] */ BOOL fRetaining,
  327.             /* [in] */ DWORD grfTC,
  328.             /* [in] */ DWORD grfRM) = 0;
  329.         
  330.         virtual HRESULT STDMETHODCALLTYPE Abort( 
  331.             /* [unique][in] */ BOID __RPC_FAR *pboidReason,
  332.             /* [in] */ BOOL fRetaining,
  333.             /* [in] */ BOOL fAsync) = 0;
  334.         
  335.         virtual HRESULT STDMETHODCALLTYPE GetTransactionInfo( 
  336.             /* [out] */ XACTTRANSINFO __RPC_FAR *pinfo) = 0;
  337.         
  338.     };
  339.     
  340. #else     /* C style interface */
  341.  
  342.     typedef struct ITransactionVtbl
  343.     {
  344.         BEGIN_INTERFACE
  345.         
  346.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  347.             ITransaction __RPC_FAR * This,
  348.             /* [in] */ REFIID riid,
  349.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  350.         
  351.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  352.             ITransaction __RPC_FAR * This);
  353.         
  354.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  355.             ITransaction __RPC_FAR * This);
  356.         
  357.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Commit )( 
  358.             ITransaction __RPC_FAR * This,
  359.             /* [in] */ BOOL fRetaining,
  360.             /* [in] */ DWORD grfTC,
  361.             /* [in] */ DWORD grfRM);
  362.         
  363.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Abort )( 
  364.             ITransaction __RPC_FAR * This,
  365.             /* [unique][in] */ BOID __RPC_FAR *pboidReason,
  366.             /* [in] */ BOOL fRetaining,
  367.             /* [in] */ BOOL fAsync);
  368.         
  369.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTransactionInfo )( 
  370.             ITransaction __RPC_FAR * This,
  371.             /* [out] */ XACTTRANSINFO __RPC_FAR *pinfo);
  372.         
  373.         END_INTERFACE
  374.     } ITransactionVtbl;
  375.  
  376.     interface ITransaction
  377.     {
  378.         CONST_VTBL struct ITransactionVtbl __RPC_FAR *lpVtbl;
  379.     };
  380.  
  381.     
  382.  
  383. #ifdef COBJMACROS
  384.  
  385.  
  386. #define ITransaction_QueryInterface(This,riid,ppvObject)    \
  387.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  388.  
  389. #define ITransaction_AddRef(This)    \
  390.     (This)->lpVtbl -> AddRef(This)
  391.  
  392. #define ITransaction_Release(This)    \
  393.     (This)->lpVtbl -> Release(This)
  394.  
  395.  
  396. #define ITransaction_Commit(This,fRetaining,grfTC,grfRM)    \
  397.     (This)->lpVtbl -> Commit(This,fRetaining,grfTC,grfRM)
  398.  
  399. #define ITransaction_Abort(This,pboidReason,fRetaining,fAsync)    \
  400.     (This)->lpVtbl -> Abort(This,pboidReason,fRetaining,fAsync)
  401.  
  402. #define ITransaction_GetTransactionInfo(This,pinfo)    \
  403.     (This)->lpVtbl -> GetTransactionInfo(This,pinfo)
  404.  
  405. #endif /* COBJMACROS */
  406.  
  407.  
  408. #endif     /* C style interface */
  409.  
  410.  
  411.  
  412. HRESULT STDMETHODCALLTYPE ITransaction_Commit_Proxy( 
  413.     ITransaction __RPC_FAR * This,
  414.     /* [in] */ BOOL fRetaining,
  415.     /* [in] */ DWORD grfTC,
  416.     /* [in] */ DWORD grfRM);
  417.  
  418.  
  419. void __RPC_STUB ITransaction_Commit_Stub(
  420.     IRpcStubBuffer *This,
  421.     IRpcChannelBuffer *_pRpcChannelBuffer,
  422.     PRPC_MESSAGE _pRpcMessage,
  423.     DWORD *_pdwStubPhase);
  424.  
  425.  
  426. HRESULT STDMETHODCALLTYPE ITransaction_Abort_Proxy( 
  427.     ITransaction __RPC_FAR * This,
  428.     /* [unique][in] */ BOID __RPC_FAR *pboidReason,
  429.     /* [in] */ BOOL fRetaining,
  430.     /* [in] */ BOOL fAsync);
  431.  
  432.  
  433. void __RPC_STUB ITransaction_Abort_Stub(
  434.     IRpcStubBuffer *This,
  435.     IRpcChannelBuffer *_pRpcChannelBuffer,
  436.     PRPC_MESSAGE _pRpcMessage,
  437.     DWORD *_pdwStubPhase);
  438.  
  439.  
  440. HRESULT STDMETHODCALLTYPE ITransaction_GetTransactionInfo_Proxy( 
  441.     ITransaction __RPC_FAR * This,
  442.     /* [out] */ XACTTRANSINFO __RPC_FAR *pinfo);
  443.  
  444.  
  445. void __RPC_STUB ITransaction_GetTransactionInfo_Stub(
  446.     IRpcStubBuffer *This,
  447.     IRpcChannelBuffer *_pRpcChannelBuffer,
  448.     PRPC_MESSAGE _pRpcMessage,
  449.     DWORD *_pdwStubPhase);
  450.  
  451.  
  452.  
  453. #endif     /* __ITransaction_INTERFACE_DEFINED__ */
  454.  
  455.  
  456. #ifndef __ITransactionCloner_INTERFACE_DEFINED__
  457. #define __ITransactionCloner_INTERFACE_DEFINED__
  458.  
  459. /* interface ITransactionCloner */
  460. /* [unique][uuid][object] */ 
  461.  
  462.  
  463. EXTERN_C const IID IID_ITransactionCloner;
  464.  
  465. #if defined(__cplusplus) && !defined(CINTERFACE)
  466.     
  467.     MIDL_INTERFACE("02656950-2152-11d0-944C-00A0C905416E")
  468.     ITransactionCloner : public ITransaction
  469.     {
  470.     public:
  471.         virtual HRESULT STDMETHODCALLTYPE CloneWithCommitDisabled( 
  472.             /* [out] */ ITransaction __RPC_FAR *__RPC_FAR *ppITransaction) = 0;
  473.         
  474.     };
  475.     
  476. #else     /* C style interface */
  477.  
  478.     typedef struct ITransactionClonerVtbl
  479.     {
  480.         BEGIN_INTERFACE
  481.         
  482.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  483.             ITransactionCloner __RPC_FAR * This,
  484.             /* [in] */ REFIID riid,
  485.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  486.         
  487.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  488.             ITransactionCloner __RPC_FAR * This);
  489.         
  490.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  491.             ITransactionCloner __RPC_FAR * This);
  492.         
  493.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Commit )( 
  494.             ITransactionCloner __RPC_FAR * This,
  495.             /* [in] */ BOOL fRetaining,
  496.             /* [in] */ DWORD grfTC,
  497.             /* [in] */ DWORD grfRM);
  498.         
  499.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Abort )( 
  500.             ITransactionCloner __RPC_FAR * This,
  501.             /* [unique][in] */ BOID __RPC_FAR *pboidReason,
  502.             /* [in] */ BOOL fRetaining,
  503.             /* [in] */ BOOL fAsync);
  504.         
  505.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTransactionInfo )( 
  506.             ITransactionCloner __RPC_FAR * This,
  507.             /* [out] */ XACTTRANSINFO __RPC_FAR *pinfo);
  508.         
  509.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CloneWithCommitDisabled )( 
  510.             ITransactionCloner __RPC_FAR * This,
  511.             /* [out] */ ITransaction __RPC_FAR *__RPC_FAR *ppITransaction);
  512.         
  513.         END_INTERFACE
  514.     } ITransactionClonerVtbl;
  515.  
  516.     interface ITransactionCloner
  517.     {
  518.         CONST_VTBL struct ITransactionClonerVtbl __RPC_FAR *lpVtbl;
  519.     };
  520.  
  521.     
  522.  
  523. #ifdef COBJMACROS
  524.  
  525.  
  526. #define ITransactionCloner_QueryInterface(This,riid,ppvObject)    \
  527.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  528.  
  529. #define ITransactionCloner_AddRef(This)    \
  530.     (This)->lpVtbl -> AddRef(This)
  531.  
  532. #define ITransactionCloner_Release(This)    \
  533.     (This)->lpVtbl -> Release(This)
  534.  
  535.  
  536. #define ITransactionCloner_Commit(This,fRetaining,grfTC,grfRM)    \
  537.     (This)->lpVtbl -> Commit(This,fRetaining,grfTC,grfRM)
  538.  
  539. #define ITransactionCloner_Abort(This,pboidReason,fRetaining,fAsync)    \
  540.     (This)->lpVtbl -> Abort(This,pboidReason,fRetaining,fAsync)
  541.  
  542. #define ITransactionCloner_GetTransactionInfo(This,pinfo)    \
  543.     (This)->lpVtbl -> GetTransactionInfo(This,pinfo)
  544.  
  545.  
  546. #define ITransactionCloner_CloneWithCommitDisabled(This,ppITransaction)    \
  547.     (This)->lpVtbl -> CloneWithCommitDisabled(This,ppITransaction)
  548.  
  549. #endif /* COBJMACROS */
  550.  
  551.  
  552. #endif     /* C style interface */
  553.  
  554.  
  555.  
  556. HRESULT STDMETHODCALLTYPE ITransactionCloner_CloneWithCommitDisabled_Proxy( 
  557.     ITransactionCloner __RPC_FAR * This,
  558.     /* [out] */ ITransaction __RPC_FAR *__RPC_FAR *ppITransaction);
  559.  
  560.  
  561. void __RPC_STUB ITransactionCloner_CloneWithCommitDisabled_Stub(
  562.     IRpcStubBuffer *This,
  563.     IRpcChannelBuffer *_pRpcChannelBuffer,
  564.     PRPC_MESSAGE _pRpcMessage,
  565.     DWORD *_pdwStubPhase);
  566.  
  567.  
  568.  
  569. #endif     /* __ITransactionCloner_INTERFACE_DEFINED__ */
  570.  
  571.  
  572. #ifndef __ITransaction2_INTERFACE_DEFINED__
  573. #define __ITransaction2_INTERFACE_DEFINED__
  574.  
  575. /* interface ITransaction2 */
  576. /* [unique][uuid][object] */ 
  577.  
  578.  
  579. EXTERN_C const IID IID_ITransaction2;
  580.  
  581. #if defined(__cplusplus) && !defined(CINTERFACE)
  582.     
  583.     MIDL_INTERFACE("34021548-0065-11d3-bac1-00c04f797be2")
  584.     ITransaction2 : public ITransactionCloner
  585.     {
  586.     public:
  587.         virtual HRESULT STDMETHODCALLTYPE GetTransactionInfo2( 
  588.             /* [out] */ XACTTRANSINFO __RPC_FAR *pinfo) = 0;
  589.         
  590.     };
  591.     
  592. #else     /* C style interface */
  593.  
  594.     typedef struct ITransaction2Vtbl
  595.     {
  596.         BEGIN_INTERFACE
  597.         
  598.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  599.             ITransaction2 __RPC_FAR * This,
  600.             /* [in] */ REFIID riid,
  601.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  602.         
  603.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  604.             ITransaction2 __RPC_FAR * This);
  605.         
  606.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  607.             ITransaction2 __RPC_FAR * This);
  608.         
  609.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Commit )( 
  610.             ITransaction2 __RPC_FAR * This,
  611.             /* [in] */ BOOL fRetaining,
  612.             /* [in] */ DWORD grfTC,
  613.             /* [in] */ DWORD grfRM);
  614.         
  615.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Abort )( 
  616.             ITransaction2 __RPC_FAR * This,
  617.             /* [unique][in] */ BOID __RPC_FAR *pboidReason,
  618.             /* [in] */ BOOL fRetaining,
  619.             /* [in] */ BOOL fAsync);
  620.         
  621.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTransactionInfo )( 
  622.             ITransaction2 __RPC_FAR * This,
  623.             /* [out] */ XACTTRANSINFO __RPC_FAR *pinfo);
  624.         
  625.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *CloneWithCommitDisabled )( 
  626.             ITransaction2 __RPC_FAR * This,
  627.             /* [out] */ ITransaction __RPC_FAR *__RPC_FAR *ppITransaction);
  628.         
  629.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetTransactionInfo2 )( 
  630.             ITransaction2 __RPC_FAR * This,
  631.             /* [out] */ XACTTRANSINFO __RPC_FAR *pinfo);
  632.         
  633.         END_INTERFACE
  634.     } ITransaction2Vtbl;
  635.  
  636.     interface ITransaction2
  637.     {
  638.         CONST_VTBL struct ITransaction2Vtbl __RPC_FAR *lpVtbl;
  639.     };
  640.  
  641.     
  642.  
  643. #ifdef COBJMACROS
  644.  
  645.  
  646. #define ITransaction2_QueryInterface(This,riid,ppvObject)    \
  647.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  648.  
  649. #define ITransaction2_AddRef(This)    \
  650.     (This)->lpVtbl -> AddRef(This)
  651.  
  652. #define ITransaction2_Release(This)    \
  653.     (This)->lpVtbl -> Release(This)
  654.  
  655.  
  656. #define ITransaction2_Commit(This,fRetaining,grfTC,grfRM)    \
  657.     (This)->lpVtbl -> Commit(This,fRetaining,grfTC,grfRM)
  658.  
  659. #define ITransaction2_Abort(This,pboidReason,fRetaining,fAsync)    \
  660.     (This)->lpVtbl -> Abort(This,pboidReason,fRetaining,fAsync)
  661.  
  662. #define ITransaction2_GetTransactionInfo(This,pinfo)    \
  663.     (This)->lpVtbl -> GetTransactionInfo(This,pinfo)
  664.  
  665.  
  666. #define ITransaction2_CloneWithCommitDisabled(This,ppITransaction)    \
  667.     (This)->lpVtbl -> CloneWithCommitDisabled(This,ppITransaction)
  668.  
  669.  
  670. #define ITransaction2_GetTransactionInfo2(This,pinfo)    \
  671.     (This)->lpVtbl -> GetTransactionInfo2(This,pinfo)
  672.  
  673. #endif /* COBJMACROS */
  674.  
  675.  
  676. #endif     /* C style interface */
  677.  
  678.  
  679.  
  680. HRESULT STDMETHODCALLTYPE ITransaction2_GetTransactionInfo2_Proxy( 
  681.     ITransaction2 __RPC_FAR * This,
  682.     /* [out] */ XACTTRANSINFO __RPC_FAR *pinfo);
  683.  
  684.  
  685. void __RPC_STUB ITransaction2_GetTransactionInfo2_Stub(
  686.     IRpcStubBuffer *This,
  687.     IRpcChannelBuffer *_pRpcChannelBuffer,
  688.     PRPC_MESSAGE _pRpcMessage,
  689.     DWORD *_pdwStubPhase);
  690.  
  691.  
  692.  
  693. #endif     /* __ITransaction2_INTERFACE_DEFINED__ */
  694.  
  695.  
  696. #ifndef __ITransactionDispenser_INTERFACE_DEFINED__
  697. #define __ITransactionDispenser_INTERFACE_DEFINED__
  698.  
  699. /* interface ITransactionDispenser */
  700. /* [unique][uuid][object] */ 
  701.  
  702.  
  703. EXTERN_C const IID IID_ITransactionDispenser;
  704.  
  705. #if defined(__cplusplus) && !defined(CINTERFACE)
  706.     
  707.     MIDL_INTERFACE("3A6AD9E1-23B9-11cf-AD60-00AA00A74CCD")
  708.     ITransactionDispenser : public IUnknown
  709.     {
  710.     public:
  711.         virtual HRESULT STDMETHODCALLTYPE GetOptionsObject( 
  712.             /* [out] */ ITransactionOptions __RPC_FAR *__RPC_FAR *ppOptions) = 0;
  713.         
  714.         virtual HRESULT STDMETHODCALLTYPE BeginTransaction( 
  715.             /* [unique][in] */ IUnknown __RPC_FAR *punkOuter,
  716.             /* [in] */ ISOLEVEL isoLevel,
  717.             /* [in] */ ULONG isoFlags,
  718.             /* [unique][in] */ ITransactionOptions __RPC_FAR *pOptions,
  719.             /* [out] */ ITransaction __RPC_FAR *__RPC_FAR *ppTransaction) = 0;
  720.         
  721.     };
  722.     
  723. #else     /* C style interface */
  724.  
  725.     typedef struct ITransactionDispenserVtbl
  726.     {
  727.         BEGIN_INTERFACE
  728.         
  729.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  730.             ITransactionDispenser __RPC_FAR * This,
  731.             /* [in] */ REFIID riid,
  732.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  733.         
  734.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  735.             ITransactionDispenser __RPC_FAR * This);
  736.         
  737.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  738.             ITransactionDispenser __RPC_FAR * This);
  739.         
  740.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetOptionsObject )( 
  741.             ITransactionDispenser __RPC_FAR * This,
  742.             /* [out] */ ITransactionOptions __RPC_FAR *__RPC_FAR *ppOptions);
  743.         
  744.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *BeginTransaction )( 
  745.             ITransactionDispenser __RPC_FAR * This,
  746.             /* [unique][in] */ IUnknown __RPC_FAR *punkOuter,
  747.             /* [in] */ ISOLEVEL isoLevel,
  748.             /* [in] */ ULONG isoFlags,
  749.             /* [unique][in] */ ITransactionOptions __RPC_FAR *pOptions,
  750.             /* [out] */ ITransaction __RPC_FAR *__RPC_FAR *ppTransaction);
  751.         
  752.         END_INTERFACE
  753.     } ITransactionDispenserVtbl;
  754.  
  755.     interface ITransactionDispenser
  756.     {
  757.         CONST_VTBL struct ITransactionDispenserVtbl __RPC_FAR *lpVtbl;
  758.     };
  759.  
  760.     
  761.  
  762. #ifdef COBJMACROS
  763.  
  764.  
  765. #define ITransactionDispenser_QueryInterface(This,riid,ppvObject)    \
  766.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  767.  
  768. #define ITransactionDispenser_AddRef(This)    \
  769.     (This)->lpVtbl -> AddRef(This)
  770.  
  771. #define ITransactionDispenser_Release(This)    \
  772.     (This)->lpVtbl -> Release(This)
  773.  
  774.  
  775. #define ITransactionDispenser_GetOptionsObject(This,ppOptions)    \
  776.     (This)->lpVtbl -> GetOptionsObject(This,ppOptions)
  777.  
  778. #define ITransactionDispenser_BeginTransaction(This,punkOuter,isoLevel,isoFlags,pOptions,ppTransaction)    \
  779.     (This)->lpVtbl -> BeginTransaction(This,punkOuter,isoLevel,isoFlags,pOptions,ppTransaction)
  780.  
  781. #endif /* COBJMACROS */
  782.  
  783.  
  784. #endif     /* C style interface */
  785.  
  786.  
  787.  
  788. HRESULT STDMETHODCALLTYPE ITransactionDispenser_GetOptionsObject_Proxy( 
  789.     ITransactionDispenser __RPC_FAR * This,
  790.     /* [out] */ ITransactionOptions __RPC_FAR *__RPC_FAR *ppOptions);
  791.  
  792.  
  793. void __RPC_STUB ITransactionDispenser_GetOptionsObject_Stub(
  794.     IRpcStubBuffer *This,
  795.     IRpcChannelBuffer *_pRpcChannelBuffer,
  796.     PRPC_MESSAGE _pRpcMessage,
  797.     DWORD *_pdwStubPhase);
  798.  
  799.  
  800. HRESULT STDMETHODCALLTYPE ITransactionDispenser_BeginTransaction_Proxy( 
  801.     ITransactionDispenser __RPC_FAR * This,
  802.     /* [unique][in] */ IUnknown __RPC_FAR *punkOuter,
  803.     /* [in] */ ISOLEVEL isoLevel,
  804.     /* [in] */ ULONG isoFlags,
  805.     /* [unique][in] */ ITransactionOptions __RPC_FAR *pOptions,
  806.     /* [out] */ ITransaction __RPC_FAR *__RPC_FAR *ppTransaction);
  807.  
  808.  
  809. void __RPC_STUB ITransactionDispenser_BeginTransaction_Stub(
  810.     IRpcStubBuffer *This,
  811.     IRpcChannelBuffer *_pRpcChannelBuffer,
  812.     PRPC_MESSAGE _pRpcMessage,
  813.     DWORD *_pdwStubPhase);
  814.  
  815.  
  816.  
  817. #endif     /* __ITransactionDispenser_INTERFACE_DEFINED__ */
  818.  
  819.  
  820. #ifndef __ITransactionOptions_INTERFACE_DEFINED__
  821. #define __ITransactionOptions_INTERFACE_DEFINED__
  822.  
  823. /* interface ITransactionOptions */
  824. /* [unique][uuid][object] */ 
  825.  
  826.  
  827. EXTERN_C const IID IID_ITransactionOptions;
  828.  
  829. #if defined(__cplusplus) && !defined(CINTERFACE)
  830.     
  831.     MIDL_INTERFACE("3A6AD9E0-23B9-11cf-AD60-00AA00A74CCD")
  832.     ITransactionOptions : public IUnknown
  833.     {
  834.     public:
  835.         virtual HRESULT STDMETHODCALLTYPE SetOptions( 
  836.             /* [in] */ XACTOPT __RPC_FAR *pOptions) = 0;
  837.         
  838.         virtual HRESULT STDMETHODCALLTYPE GetOptions( 
  839.             /* [out][in] */ XACTOPT __RPC_FAR *pOptions) = 0;
  840.         
  841.     };
  842.     
  843. #else     /* C style interface */
  844.  
  845.     typedef struct ITransactionOptionsVtbl
  846.     {
  847.         BEGIN_INTERFACE
  848.         
  849.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  850.             ITransactionOptions __RPC_FAR * This,
  851.             /* [in] */ REFIID riid,
  852.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  853.         
  854.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  855.             ITransactionOptions __RPC_FAR * This);
  856.         
  857.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  858.             ITransactionOptions __RPC_FAR * This);
  859.         
  860.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *SetOptions )( 
  861.             ITransactionOptions __RPC_FAR * This,
  862.             /* [in] */ XACTOPT __RPC_FAR *pOptions);
  863.         
  864.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *GetOptions )( 
  865.             ITransactionOptions __RPC_FAR * This,
  866.             /* [out][in] */ XACTOPT __RPC_FAR *pOptions);
  867.         
  868.         END_INTERFACE
  869.     } ITransactionOptionsVtbl;
  870.  
  871.     interface ITransactionOptions
  872.     {
  873.         CONST_VTBL struct ITransactionOptionsVtbl __RPC_FAR *lpVtbl;
  874.     };
  875.  
  876.     
  877.  
  878. #ifdef COBJMACROS
  879.  
  880.  
  881. #define ITransactionOptions_QueryInterface(This,riid,ppvObject)    \
  882.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  883.  
  884. #define ITransactionOptions_AddRef(This)    \
  885.     (This)->lpVtbl -> AddRef(This)
  886.  
  887. #define ITransactionOptions_Release(This)    \
  888.     (This)->lpVtbl -> Release(This)
  889.  
  890.  
  891. #define ITransactionOptions_SetOptions(This,pOptions)    \
  892.     (This)->lpVtbl -> SetOptions(This,pOptions)
  893.  
  894. #define ITransactionOptions_GetOptions(This,pOptions)    \
  895.     (This)->lpVtbl -> GetOptions(This,pOptions)
  896.  
  897. #endif /* COBJMACROS */
  898.  
  899.  
  900. #endif     /* C style interface */
  901.  
  902.  
  903.  
  904. HRESULT STDMETHODCALLTYPE ITransactionOptions_SetOptions_Proxy( 
  905.     ITransactionOptions __RPC_FAR * This,
  906.     /* [in] */ XACTOPT __RPC_FAR *pOptions);
  907.  
  908.  
  909. void __RPC_STUB ITransactionOptions_SetOptions_Stub(
  910.     IRpcStubBuffer *This,
  911.     IRpcChannelBuffer *_pRpcChannelBuffer,
  912.     PRPC_MESSAGE _pRpcMessage,
  913.     DWORD *_pdwStubPhase);
  914.  
  915.  
  916. HRESULT STDMETHODCALLTYPE ITransactionOptions_GetOptions_Proxy( 
  917.     ITransactionOptions __RPC_FAR * This,
  918.     /* [out][in] */ XACTOPT __RPC_FAR *pOptions);
  919.  
  920.  
  921. void __RPC_STUB ITransactionOptions_GetOptions_Stub(
  922.     IRpcStubBuffer *This,
  923.     IRpcChannelBuffer *_pRpcChannelBuffer,
  924.     PRPC_MESSAGE _pRpcMessage,
  925.     DWORD *_pdwStubPhase);
  926.  
  927.  
  928.  
  929. #endif     /* __ITransactionOptions_INTERFACE_DEFINED__ */
  930.  
  931.  
  932. #ifndef __ITransactionOutcomeEvents_INTERFACE_DEFINED__
  933. #define __ITransactionOutcomeEvents_INTERFACE_DEFINED__
  934.  
  935. /* interface ITransactionOutcomeEvents */
  936. /* [unique][uuid][object] */ 
  937.  
  938.  
  939. EXTERN_C const IID IID_ITransactionOutcomeEvents;
  940.  
  941. #if defined(__cplusplus) && !defined(CINTERFACE)
  942.     
  943.     MIDL_INTERFACE("3A6AD9E2-23B9-11cf-AD60-00AA00A74CCD")
  944.     ITransactionOutcomeEvents : public IUnknown
  945.     {
  946.     public:
  947.         virtual HRESULT STDMETHODCALLTYPE Committed( 
  948.             /* [in] */ BOOL fRetaining,
  949.             /* [unique][in] */ XACTUOW __RPC_FAR *pNewUOW,
  950.             /* [in] */ HRESULT hr) = 0;
  951.         
  952.         virtual HRESULT STDMETHODCALLTYPE Aborted( 
  953.             /* [unique][in] */ BOID __RPC_FAR *pboidReason,
  954.             /* [in] */ BOOL fRetaining,
  955.             /* [unique][in] */ XACTUOW __RPC_FAR *pNewUOW,
  956.             /* [in] */ HRESULT hr) = 0;
  957.         
  958.         virtual HRESULT STDMETHODCALLTYPE HeuristicDecision( 
  959.             /* [in] */ DWORD dwDecision,
  960.             /* [unique][in] */ BOID __RPC_FAR *pboidReason,
  961.             /* [in] */ HRESULT hr) = 0;
  962.         
  963.         virtual HRESULT STDMETHODCALLTYPE Indoubt( void) = 0;
  964.         
  965.     };
  966.     
  967. #else     /* C style interface */
  968.  
  969.     typedef struct ITransactionOutcomeEventsVtbl
  970.     {
  971.         BEGIN_INTERFACE
  972.         
  973.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *QueryInterface )( 
  974.             ITransactionOutcomeEvents __RPC_FAR * This,
  975.             /* [in] */ REFIID riid,
  976.             /* [iid_is][out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  977.         
  978.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *AddRef )( 
  979.             ITransactionOutcomeEvents __RPC_FAR * This);
  980.         
  981.         ULONG ( STDMETHODCALLTYPE __RPC_FAR *Release )( 
  982.             ITransactionOutcomeEvents __RPC_FAR * This);
  983.         
  984.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Committed )( 
  985.             ITransactionOutcomeEvents __RPC_FAR * This,
  986.             /* [in] */ BOOL fRetaining,
  987.             /* [unique][in] */ XACTUOW __RPC_FAR *pNewUOW,
  988.             /* [in] */ HRESULT hr);
  989.         
  990.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Aborted )( 
  991.             ITransactionOutcomeEvents __RPC_FAR * This,
  992.             /* [unique][in] */ BOID __RPC_FAR *pboidReason,
  993.             /* [in] */ BOOL fRetaining,
  994.             /* [unique][in] */ XACTUOW __RPC_FAR *pNewUOW,
  995.             /* [in] */ HRESULT hr);
  996.         
  997.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *HeuristicDecision )( 
  998.             ITransactionOutcomeEvents __RPC_FAR * This,
  999.             /* [in] */ DWORD dwDecision,
  1000.             /* [unique][in] */ BOID __RPC_FAR *pboidReason,
  1001.             /* [in] */ HRESULT hr);
  1002.         
  1003.         HRESULT ( STDMETHODCALLTYPE __RPC_FAR *Indoubt )( 
  1004.             ITransactionOutcomeEvents __RPC_FAR * This);
  1005.         
  1006.         END_INTERFACE
  1007.     } ITransactionOutcomeEventsVtbl;
  1008.  
  1009.     interface ITransactionOutcomeEvents
  1010.     {
  1011.         CONST_VTBL struct ITransactionOutcomeEventsVtbl __RPC_FAR *lpVtbl;
  1012.     };
  1013.  
  1014.     
  1015.  
  1016. #ifdef COBJMACROS
  1017.  
  1018.  
  1019. #define ITransactionOutcomeEvents_QueryInterface(This,riid,ppvObject)    \
  1020.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  1021.  
  1022. #define ITransactionOutcomeEvents_AddRef(This)    \
  1023.     (This)->lpVtbl -> AddRef(This)
  1024.  
  1025. #define ITransactionOutcomeEvents_Release(This)    \
  1026.     (This)->lpVtbl -> Release(This)
  1027.  
  1028.  
  1029. #define ITransactionOutcomeEvents_Committed(This,fRetaining,pNewUOW,hr)    \
  1030.     (This)->lpVtbl -> Committed(This,fRetaining,pNewUOW,hr)
  1031.  
  1032. #define ITransactionOutcomeEvents_Aborted(This,pboidReason,fRetaining,pNewUOW,hr)    \
  1033.     (This)->lpVtbl -> Aborted(This,pboidReason,fRetaining,pNewUOW,hr)
  1034.  
  1035. #define ITransactionOutcomeEvents_HeuristicDecision(This,dwDecision,pboidReason,hr)    \
  1036.     (This)->lpVtbl -> HeuristicDecision(This,dwDecision,pboidReason,hr)
  1037.  
  1038. #define ITransactionOutcomeEvents_Indoubt(This)    \
  1039.     (This)->lpVtbl -> Indoubt(This)
  1040.  
  1041. #endif /* COBJMACROS */
  1042.  
  1043.  
  1044. #endif     /* C style interface */
  1045.  
  1046.  
  1047.  
  1048. HRESULT STDMETHODCALLTYPE ITransactionOutcomeEvents_Committed_Proxy( 
  1049.     ITransactionOutcomeEvents __RPC_FAR * This,
  1050.     /* [in] */ BOOL fRetaining,
  1051.     /* [unique][in] */ XACTUOW __RPC_FAR *pNewUOW,
  1052.     /* [in] */ HRESULT hr);
  1053.  
  1054.  
  1055. void __RPC_STUB ITransactionOutcomeEvents_Committed_Stub(
  1056.     IRpcStubBuffer *This,
  1057.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1058.     PRPC_MESSAGE _pRpcMessage,
  1059.     DWORD *_pdwStubPhase);
  1060.  
  1061.  
  1062. HRESULT STDMETHODCALLTYPE ITransactionOutcomeEvents_Aborted_Proxy( 
  1063.     ITransactionOutcomeEvents __RPC_FAR * This,
  1064.     /* [unique][in] */ BOID __RPC_FAR *pboidReason,
  1065.     /* [in] */ BOOL fRetaining,
  1066.     /* [unique][in] */ XACTUOW __RPC_FAR *pNewUOW,
  1067.     /* [in] */ HRESULT hr);
  1068.  
  1069.  
  1070. void __RPC_STUB ITransactionOutcomeEvents_Aborted_Stub(
  1071.     IRpcStubBuffer *This,
  1072.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1073.     PRPC_MESSAGE _pRpcMessage,
  1074.     DWORD *_pdwStubPhase);
  1075.  
  1076.  
  1077. HRESULT STDMETHODCALLTYPE ITransactionOutcomeEvents_HeuristicDecision_Proxy( 
  1078.     ITransactionOutcomeEvents __RPC_FAR * This,
  1079.     /* [in] */ DWORD dwDecision,
  1080.     /* [unique][in] */ BOID __RPC_FAR *pboidReason,
  1081.     /* [in] */ HRESULT hr);
  1082.  
  1083.  
  1084. void __RPC_STUB ITransactionOutcomeEvents_HeuristicDecision_Stub(
  1085.     IRpcStubBuffer *This,
  1086.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1087.     PRPC_MESSAGE _pRpcMessage,
  1088.     DWORD *_pdwStubPhase);
  1089.  
  1090.  
  1091. HRESULT STDMETHODCALLTYPE ITransactionOutcomeEvents_Indoubt_Proxy( 
  1092.     ITransactionOutcomeEvents __RPC_FAR * This);
  1093.  
  1094.  
  1095. void __RPC_STUB ITransactionOutcomeEvents_Indoubt_Stub(
  1096.     IRpcStubBuffer *This,
  1097.     IRpcChannelBuffer *_pRpcChannelBuffer,
  1098.     PRPC_MESSAGE _pRpcMessage,
  1099.     DWORD *_pdwStubPhase);
  1100.  
  1101.  
  1102.  
  1103. #endif     /* __ITransactionOutcomeEvents_INTERFACE_DEFINED__ */
  1104.  
  1105.  
  1106. /* interface __MIDL_itf_transact_0015 */
  1107. /* [local] */ 
  1108.  
  1109.  
  1110.  
  1111. #if _MSC_VER < 1100 || !defined(__cplusplus)
  1112.  
  1113. DEFINE_GUID(IID_ITransaction,                0x0fb15084, 0xaf41, 0x11ce, 0xbd, 0x2b, 0x20, 0x4c, 0x4f, 0x4f, 0x50, 0x20);
  1114. DEFINE_GUID(IID_ITransactionCloner,          0x02656950, 0x2152, 0x11d0, 0x94, 0x4C, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x6E);
  1115. DEFINE_GUID(IID_ITransaction2,               0x34021548, 0x0065, 0x11d3, 0xba, 0xc1, 0x00, 0xc0, 0x4f, 0x79, 0x7b, 0xe2);
  1116. DEFINE_GUID(IID_ITransactionDispenser,       0x3A6AD9E1, 0x23B9, 0x11cf, 0xAD, 0x60, 0x00, 0xAA, 0x00, 0xA7, 0x4C, 0xCD);
  1117. DEFINE_GUID(IID_ITransactionOptions,         0x3A6AD9E0, 0x23B9, 0x11cf, 0xAD, 0x60, 0x00, 0xAA, 0x00, 0xA7, 0x4C, 0xCD);
  1118. DEFINE_GUID(IID_ITransactionOutcomeEvents,   0x3A6AD9E2, 0x23B9, 0x11cf, 0xAD, 0x60, 0x00, 0xAA, 0x00, 0xA7, 0x4C, 0xCD);
  1119.  
  1120. #else // #if _MSC_VER < 1100 || !defined(__cplusplus)
  1121.  
  1122. #define  IID_ITransaction                    __uuidof(ITransaction)
  1123. #define  IID_ITransactionCloner              __uuidof(ITransactionCloner)
  1124. #define  IID_ITransaction2                   __uuidof(ITransaction2)
  1125. #define  IID_ITransactionDispenser           __uuidof(ITransactionDispenser)
  1126. #define  IID_ITransactionOptions             __uuidof(ITransactionOptions)
  1127. #define  IID_ITransactionOutcomeEvents       __uuidof(ITransactionOutcomeEvents)
  1128.  
  1129. #endif // #if _MSC_VER < 1100 || !defined(__cplusplus)
  1130.  
  1131.  
  1132.  
  1133. extern RPC_IF_HANDLE __MIDL_itf_transact_0015_v0_0_c_ifspec;
  1134. extern RPC_IF_HANDLE __MIDL_itf_transact_0015_v0_0_s_ifspec;
  1135.  
  1136. /* Additional Prototypes for ALL interfaces */
  1137.  
  1138. /* end of Additional Prototypes */
  1139.  
  1140. #ifdef __cplusplus
  1141. }
  1142. #endif
  1143.  
  1144. #endif
  1145.  
  1146.  
  1147. #pragma option pop /*P_O_Pop*/
  1148.