Transact.h
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:30k
源码类别:

模拟服务器

开发平台:

C/C++

  1. #pragma warning( disable: 4049 )  /* more than 64k source lines */
  2. /* this ALWAYS GENERATED file contains the definitions for the interfaces */
  3.  /* File created by MIDL compiler version 6.00.0347 */
  4. /* Compiler settings for transact.idl:
  5.     Oicf, W1, Zp8, env=Win32 (32b run)
  6.     protocol : dce , ms_ext, c_ext, robust
  7.     error checks: allocation ref bounds_check enum stub_data 
  8.     VC __declspec() decoration level: 
  9.          __declspec(uuid()), __declspec(selectany), __declspec(novtable)
  10.          DECLSPEC_UUID(), MIDL_INTERFACE()
  11. */
  12. //@@MIDL_FILE_HEADING(  )
  13. /* verify that the <rpcndr.h> version is high enough to compile this file*/
  14. #ifndef __REQUIRED_RPCNDR_H_VERSION__
  15. #define __REQUIRED_RPCNDR_H_VERSION__ 475
  16. #endif
  17. #include "rpc.h"
  18. #include "rpcndr.h"
  19. #ifndef __RPCNDR_H_VERSION__
  20. #error this stub requires an updated version of <rpcndr.h>
  21. #endif // __RPCNDR_H_VERSION__
  22. #ifndef COM_NO_WINDOWS_H
  23. #include "windows.h"
  24. #include "ole2.h"
  25. #endif /*COM_NO_WINDOWS_H*/
  26. #ifndef __transact_h__
  27. #define __transact_h__
  28. #if defined(_MSC_VER) && (_MSC_VER >= 1020)
  29. #pragma once
  30. #endif
  31. /* Forward Declarations */ 
  32. #ifndef __ITransaction_FWD_DEFINED__
  33. #define __ITransaction_FWD_DEFINED__
  34. typedef interface ITransaction ITransaction;
  35. #endif  /* __ITransaction_FWD_DEFINED__ */
  36. #ifndef __ITransactionCloner_FWD_DEFINED__
  37. #define __ITransactionCloner_FWD_DEFINED__
  38. typedef interface ITransactionCloner ITransactionCloner;
  39. #endif  /* __ITransactionCloner_FWD_DEFINED__ */
  40. #ifndef __ITransaction2_FWD_DEFINED__
  41. #define __ITransaction2_FWD_DEFINED__
  42. typedef interface ITransaction2 ITransaction2;
  43. #endif  /* __ITransaction2_FWD_DEFINED__ */
  44. #ifndef __ITransactionDispenser_FWD_DEFINED__
  45. #define __ITransactionDispenser_FWD_DEFINED__
  46. typedef interface ITransactionDispenser ITransactionDispenser;
  47. #endif  /* __ITransactionDispenser_FWD_DEFINED__ */
  48. #ifndef __ITransactionOptions_FWD_DEFINED__
  49. #define __ITransactionOptions_FWD_DEFINED__
  50. typedef interface ITransactionOptions ITransactionOptions;
  51. #endif  /* __ITransactionOptions_FWD_DEFINED__ */
  52. #ifndef __ITransactionOutcomeEvents_FWD_DEFINED__
  53. #define __ITransactionOutcomeEvents_FWD_DEFINED__
  54. typedef interface ITransactionOutcomeEvents ITransactionOutcomeEvents;
  55. #endif  /* __ITransactionOutcomeEvents_FWD_DEFINED__ */
  56. /* header files for imported files */
  57. #include "unknwn.h"
  58. #ifdef __cplusplus
  59. extern "C"{
  60. #endif 
  61. void * __RPC_USER MIDL_user_allocate(size_t);
  62. void __RPC_USER MIDL_user_free( void * ); 
  63. /* interface __MIDL_itf_transact_0000 */
  64. /* [local] */ 
  65. #include "winerror.h"
  66. #ifndef DECLSPEC_UUID
  67. #if _MSC_VER >= 1100
  68. #define DECLSPEC_UUID(x)    __declspec(uuid(x))
  69. #else
  70. #define DECLSPEC_UUID(x)
  71. #endif
  72. #endif
  73. extern RPC_IF_HANDLE __MIDL_itf_transact_0000_v0_0_c_ifspec;
  74. extern RPC_IF_HANDLE __MIDL_itf_transact_0000_v0_0_s_ifspec;
  75. #ifndef __BasicTransactionTypes_INTERFACE_DEFINED__
  76. #define __BasicTransactionTypes_INTERFACE_DEFINED__
  77. /* interface BasicTransactionTypes */
  78. /* [unique][local] */ 
  79. typedef struct BOID
  80.     {
  81.     byte rgb[ 16 ];
  82.     }  BOID;
  83. #define BOID_NULL (*((BOID*)(&IID_NULL)))
  84. #ifndef MAX_TRAN_DESC_DEFINED
  85. #define MAX_TRAN_DESC_DEFINED
  86. typedef 
  87. enum TX_MISC_CONSTANTS
  88.     { MAX_TRAN_DESC = 40
  89.     }  TX_MISC_CONSTANTS;
  90. #endif
  91. typedef BOID XACTUOW;
  92. typedef LONG ISOLEVEL;
  93. typedef 
  94. enum ISOLATIONLEVEL
  95.     { ISOLATIONLEVEL_UNSPECIFIED = 0xffffffff,
  96. ISOLATIONLEVEL_CHAOS = 0x10,
  97. ISOLATIONLEVEL_READUNCOMMITTED = 0x100,
  98. ISOLATIONLEVEL_BROWSE = 0x100,
  99. ISOLATIONLEVEL_CURSORSTABILITY = 0x1000,
  100. ISOLATIONLEVEL_READCOMMITTED = 0x1000,
  101. ISOLATIONLEVEL_REPEATABLEREAD = 0x10000,
  102. ISOLATIONLEVEL_SERIALIZABLE = 0x100000,
  103. ISOLATIONLEVEL_ISOLATED = 0x100000
  104.     }  ISOLATIONLEVEL;
  105. typedef struct XACTTRANSINFO
  106.     {
  107.     XACTUOW uow;
  108.     ISOLEVEL isoLevel;
  109.     ULONG isoFlags;
  110.     DWORD grfTCSupported;
  111.     DWORD grfRMSupported;
  112.     DWORD grfTCSupportedRetaining;
  113.     DWORD grfRMSupportedRetaining;
  114.     }  XACTTRANSINFO;
  115. typedef struct XACTSTATS
  116.     {
  117.     ULONG cOpen;
  118.     ULONG cCommitting;
  119.     ULONG cCommitted;
  120.     ULONG cAborting;
  121.     ULONG cAborted;
  122.     ULONG cInDoubt;
  123.     ULONG cHeuristicDecision;
  124.     FILETIME timeTransactionsUp;
  125.     }  XACTSTATS;
  126. typedef 
  127. enum ISOFLAG
  128.     { ISOFLAG_RETAIN_COMMIT_DC = 1,
  129. ISOFLAG_RETAIN_COMMIT = 2,
  130. ISOFLAG_RETAIN_COMMIT_NO = 3,
  131. ISOFLAG_RETAIN_ABORT_DC = 4,
  132. ISOFLAG_RETAIN_ABORT = 8,
  133. ISOFLAG_RETAIN_ABORT_NO = 12,
  134. ISOFLAG_RETAIN_DONTCARE = ISOFLAG_RETAIN_COMMIT_DC | ISOFLAG_RETAIN_ABORT_DC,
  135. ISOFLAG_RETAIN_BOTH = ISOFLAG_RETAIN_COMMIT | ISOFLAG_RETAIN_ABORT,
  136. ISOFLAG_RETAIN_NONE = ISOFLAG_RETAIN_COMMIT_NO | ISOFLAG_RETAIN_ABORT_NO,
  137. ISOFLAG_OPTIMISTIC = 16,
  138. ISOFLAG_READONLY = 32
  139.     }  ISOFLAG;
  140. typedef 
  141. enum XACTTC
  142.     { XACTTC_NONE = 0,
  143. XACTTC_SYNC_PHASEONE = 1,
  144. XACTTC_SYNC_PHASETWO = 2,
  145. XACTTC_SYNC = 2,
  146. XACTTC_ASYNC_PHASEONE = 4,
  147. XACTTC_ASYNC = 4
  148.     }  XACTTC;
  149. typedef 
  150. enum XACTRM
  151.     { XACTRM_OPTIMISTICLASTWINS = 1,
  152. XACTRM_NOREADONLYPREPARES = 2
  153.     }  XACTRM;
  154. typedef 
  155. enum XACTCONST
  156.     { XACTCONST_TIMEOUTINFINITE = 0
  157.     }  XACTCONST;
  158. typedef 
  159. enum XACTHEURISTIC
  160.     { XACTHEURISTIC_ABORT = 1,
  161. XACTHEURISTIC_COMMIT = 2,
  162. XACTHEURISTIC_DAMAGE = 3,
  163. XACTHEURISTIC_DANGER = 4
  164.     }  XACTHEURISTIC;
  165. typedef 
  166. enum XACTSTAT
  167.     { XACTSTAT_NONE = 0,
  168. XACTSTAT_OPENNORMAL = 0x1,
  169. XACTSTAT_OPENREFUSED = 0x2,
  170. XACTSTAT_PREPARING = 0x4,
  171. XACTSTAT_PREPARED = 0x8,
  172. XACTSTAT_PREPARERETAINING = 0x10,
  173. XACTSTAT_PREPARERETAINED = 0x20,
  174. XACTSTAT_COMMITTING = 0x40,
  175. XACTSTAT_COMMITRETAINING = 0x80,
  176. XACTSTAT_ABORTING = 0x100,
  177. XACTSTAT_ABORTED = 0x200,
  178. XACTSTAT_COMMITTED = 0x400,
  179. XACTSTAT_HEURISTIC_ABORT = 0x800,
  180. XACTSTAT_HEURISTIC_COMMIT = 0x1000,
  181. XACTSTAT_HEURISTIC_DAMAGE = 0x2000,
  182. XACTSTAT_HEURISTIC_DANGER = 0x4000,
  183. XACTSTAT_FORCED_ABORT = 0x8000,
  184. XACTSTAT_FORCED_COMMIT = 0x10000,
  185. XACTSTAT_INDOUBT = 0x20000,
  186. XACTSTAT_CLOSED = 0x40000,
  187. XACTSTAT_OPEN = 0x3,
  188. XACTSTAT_NOTPREPARED = 0x7ffc3,
  189. XACTSTAT_ALL = 0x7ffff
  190.     }  XACTSTAT;
  191. typedef struct XACTOPT
  192.     {
  193.     ULONG ulTimeout;
  194.     char szDescription[ 40 ];
  195.     }  XACTOPT;
  196. extern RPC_IF_HANDLE BasicTransactionTypes_v0_0_c_ifspec;
  197. extern RPC_IF_HANDLE BasicTransactionTypes_v0_0_s_ifspec;
  198. #endif /* __BasicTransactionTypes_INTERFACE_DEFINED__ */
  199. #ifndef __ITransaction_INTERFACE_DEFINED__
  200. #define __ITransaction_INTERFACE_DEFINED__
  201. /* interface ITransaction */
  202. /* [unique][uuid][object] */ 
  203. EXTERN_C const IID IID_ITransaction;
  204. #if defined(__cplusplus) && !defined(CINTERFACE)
  205.     
  206.     MIDL_INTERFACE("0fb15084-af41-11ce-bd2b-204c4f4f5020")
  207.     ITransaction : public IUnknown
  208.     {
  209.     public:
  210.         virtual HRESULT STDMETHODCALLTYPE Commit( 
  211.             /* [in] */ BOOL fRetaining,
  212.             /* [in] */ DWORD grfTC,
  213.             /* [in] */ DWORD grfRM) = 0;
  214.         
  215.         virtual HRESULT STDMETHODCALLTYPE Abort( 
  216.             /* [unique][in] */ BOID *pboidReason,
  217.             /* [in] */ BOOL fRetaining,
  218.             /* [in] */ BOOL fAsync) = 0;
  219.         
  220.         virtual HRESULT STDMETHODCALLTYPE GetTransactionInfo( 
  221.             /* [out] */ XACTTRANSINFO *pinfo) = 0;
  222.         
  223.     };
  224.     
  225. #else  /* C style interface */
  226.     typedef struct ITransactionVtbl
  227.     {
  228.         BEGIN_INTERFACE
  229.         
  230.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  231.             ITransaction * This,
  232.             /* [in] */ REFIID riid,
  233.             /* [iid_is][out] */ void **ppvObject);
  234.         
  235.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  236.             ITransaction * This);
  237.         
  238.         ULONG ( STDMETHODCALLTYPE *Release )( 
  239.             ITransaction * This);
  240.         
  241.         HRESULT ( STDMETHODCALLTYPE *Commit )( 
  242.             ITransaction * This,
  243.             /* [in] */ BOOL fRetaining,
  244.             /* [in] */ DWORD grfTC,
  245.             /* [in] */ DWORD grfRM);
  246.         
  247.         HRESULT ( STDMETHODCALLTYPE *Abort )( 
  248.             ITransaction * This,
  249.             /* [unique][in] */ BOID *pboidReason,
  250.             /* [in] */ BOOL fRetaining,
  251.             /* [in] */ BOOL fAsync);
  252.         
  253.         HRESULT ( STDMETHODCALLTYPE *GetTransactionInfo )( 
  254.             ITransaction * This,
  255.             /* [out] */ XACTTRANSINFO *pinfo);
  256.         
  257.         END_INTERFACE
  258.     } ITransactionVtbl;
  259.     interface ITransaction
  260.     {
  261.         CONST_VTBL struct ITransactionVtbl *lpVtbl;
  262.     };
  263.     
  264. #ifdef COBJMACROS
  265. #define ITransaction_QueryInterface(This,riid,ppvObject)
  266.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  267. #define ITransaction_AddRef(This)
  268.     (This)->lpVtbl -> AddRef(This)
  269. #define ITransaction_Release(This)
  270.     (This)->lpVtbl -> Release(This)
  271. #define ITransaction_Commit(This,fRetaining,grfTC,grfRM)
  272.     (This)->lpVtbl -> Commit(This,fRetaining,grfTC,grfRM)
  273. #define ITransaction_Abort(This,pboidReason,fRetaining,fAsync)
  274.     (This)->lpVtbl -> Abort(This,pboidReason,fRetaining,fAsync)
  275. #define ITransaction_GetTransactionInfo(This,pinfo)
  276.     (This)->lpVtbl -> GetTransactionInfo(This,pinfo)
  277. #endif /* COBJMACROS */
  278. #endif  /* C style interface */
  279. HRESULT STDMETHODCALLTYPE ITransaction_Commit_Proxy( 
  280.     ITransaction * This,
  281.     /* [in] */ BOOL fRetaining,
  282.     /* [in] */ DWORD grfTC,
  283.     /* [in] */ DWORD grfRM);
  284. void __RPC_STUB ITransaction_Commit_Stub(
  285.     IRpcStubBuffer *This,
  286.     IRpcChannelBuffer *_pRpcChannelBuffer,
  287.     PRPC_MESSAGE _pRpcMessage,
  288.     DWORD *_pdwStubPhase);
  289. HRESULT STDMETHODCALLTYPE ITransaction_Abort_Proxy( 
  290.     ITransaction * This,
  291.     /* [unique][in] */ BOID *pboidReason,
  292.     /* [in] */ BOOL fRetaining,
  293.     /* [in] */ BOOL fAsync);
  294. void __RPC_STUB ITransaction_Abort_Stub(
  295.     IRpcStubBuffer *This,
  296.     IRpcChannelBuffer *_pRpcChannelBuffer,
  297.     PRPC_MESSAGE _pRpcMessage,
  298.     DWORD *_pdwStubPhase);
  299. HRESULT STDMETHODCALLTYPE ITransaction_GetTransactionInfo_Proxy( 
  300.     ITransaction * This,
  301.     /* [out] */ XACTTRANSINFO *pinfo);
  302. void __RPC_STUB ITransaction_GetTransactionInfo_Stub(
  303.     IRpcStubBuffer *This,
  304.     IRpcChannelBuffer *_pRpcChannelBuffer,
  305.     PRPC_MESSAGE _pRpcMessage,
  306.     DWORD *_pdwStubPhase);
  307. #endif  /* __ITransaction_INTERFACE_DEFINED__ */
  308. #ifndef __ITransactionCloner_INTERFACE_DEFINED__
  309. #define __ITransactionCloner_INTERFACE_DEFINED__
  310. /* interface ITransactionCloner */
  311. /* [unique][uuid][object] */ 
  312. EXTERN_C const IID IID_ITransactionCloner;
  313. #if defined(__cplusplus) && !defined(CINTERFACE)
  314.     
  315.     MIDL_INTERFACE("02656950-2152-11d0-944C-00A0C905416E")
  316.     ITransactionCloner : public ITransaction
  317.     {
  318.     public:
  319.         virtual HRESULT STDMETHODCALLTYPE CloneWithCommitDisabled( 
  320.             /* [out] */ ITransaction **ppITransaction) = 0;
  321.         
  322.     };
  323.     
  324. #else  /* C style interface */
  325.     typedef struct ITransactionClonerVtbl
  326.     {
  327.         BEGIN_INTERFACE
  328.         
  329.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  330.             ITransactionCloner * This,
  331.             /* [in] */ REFIID riid,
  332.             /* [iid_is][out] */ void **ppvObject);
  333.         
  334.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  335.             ITransactionCloner * This);
  336.         
  337.         ULONG ( STDMETHODCALLTYPE *Release )( 
  338.             ITransactionCloner * This);
  339.         
  340.         HRESULT ( STDMETHODCALLTYPE *Commit )( 
  341.             ITransactionCloner * This,
  342.             /* [in] */ BOOL fRetaining,
  343.             /* [in] */ DWORD grfTC,
  344.             /* [in] */ DWORD grfRM);
  345.         
  346.         HRESULT ( STDMETHODCALLTYPE *Abort )( 
  347.             ITransactionCloner * This,
  348.             /* [unique][in] */ BOID *pboidReason,
  349.             /* [in] */ BOOL fRetaining,
  350.             /* [in] */ BOOL fAsync);
  351.         
  352.         HRESULT ( STDMETHODCALLTYPE *GetTransactionInfo )( 
  353.             ITransactionCloner * This,
  354.             /* [out] */ XACTTRANSINFO *pinfo);
  355.         
  356.         HRESULT ( STDMETHODCALLTYPE *CloneWithCommitDisabled )( 
  357.             ITransactionCloner * This,
  358.             /* [out] */ ITransaction **ppITransaction);
  359.         
  360.         END_INTERFACE
  361.     } ITransactionClonerVtbl;
  362.     interface ITransactionCloner
  363.     {
  364.         CONST_VTBL struct ITransactionClonerVtbl *lpVtbl;
  365.     };
  366.     
  367. #ifdef COBJMACROS
  368. #define ITransactionCloner_QueryInterface(This,riid,ppvObject)
  369.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  370. #define ITransactionCloner_AddRef(This)
  371.     (This)->lpVtbl -> AddRef(This)
  372. #define ITransactionCloner_Release(This)
  373.     (This)->lpVtbl -> Release(This)
  374. #define ITransactionCloner_Commit(This,fRetaining,grfTC,grfRM)
  375.     (This)->lpVtbl -> Commit(This,fRetaining,grfTC,grfRM)
  376. #define ITransactionCloner_Abort(This,pboidReason,fRetaining,fAsync)
  377.     (This)->lpVtbl -> Abort(This,pboidReason,fRetaining,fAsync)
  378. #define ITransactionCloner_GetTransactionInfo(This,pinfo)
  379.     (This)->lpVtbl -> GetTransactionInfo(This,pinfo)
  380. #define ITransactionCloner_CloneWithCommitDisabled(This,ppITransaction)
  381.     (This)->lpVtbl -> CloneWithCommitDisabled(This,ppITransaction)
  382. #endif /* COBJMACROS */
  383. #endif  /* C style interface */
  384. HRESULT STDMETHODCALLTYPE ITransactionCloner_CloneWithCommitDisabled_Proxy( 
  385.     ITransactionCloner * This,
  386.     /* [out] */ ITransaction **ppITransaction);
  387. void __RPC_STUB ITransactionCloner_CloneWithCommitDisabled_Stub(
  388.     IRpcStubBuffer *This,
  389.     IRpcChannelBuffer *_pRpcChannelBuffer,
  390.     PRPC_MESSAGE _pRpcMessage,
  391.     DWORD *_pdwStubPhase);
  392. #endif  /* __ITransactionCloner_INTERFACE_DEFINED__ */
  393. #ifndef __ITransaction2_INTERFACE_DEFINED__
  394. #define __ITransaction2_INTERFACE_DEFINED__
  395. /* interface ITransaction2 */
  396. /* [unique][uuid][object] */ 
  397. EXTERN_C const IID IID_ITransaction2;
  398. #if defined(__cplusplus) && !defined(CINTERFACE)
  399.     
  400.     MIDL_INTERFACE("34021548-0065-11d3-bac1-00c04f797be2")
  401.     ITransaction2 : public ITransactionCloner
  402.     {
  403.     public:
  404.         virtual HRESULT STDMETHODCALLTYPE GetTransactionInfo2( 
  405.             /* [out] */ XACTTRANSINFO *pinfo) = 0;
  406.         
  407.     };
  408.     
  409. #else  /* C style interface */
  410.     typedef struct ITransaction2Vtbl
  411.     {
  412.         BEGIN_INTERFACE
  413.         
  414.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  415.             ITransaction2 * This,
  416.             /* [in] */ REFIID riid,
  417.             /* [iid_is][out] */ void **ppvObject);
  418.         
  419.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  420.             ITransaction2 * This);
  421.         
  422.         ULONG ( STDMETHODCALLTYPE *Release )( 
  423.             ITransaction2 * This);
  424.         
  425.         HRESULT ( STDMETHODCALLTYPE *Commit )( 
  426.             ITransaction2 * This,
  427.             /* [in] */ BOOL fRetaining,
  428.             /* [in] */ DWORD grfTC,
  429.             /* [in] */ DWORD grfRM);
  430.         
  431.         HRESULT ( STDMETHODCALLTYPE *Abort )( 
  432.             ITransaction2 * This,
  433.             /* [unique][in] */ BOID *pboidReason,
  434.             /* [in] */ BOOL fRetaining,
  435.             /* [in] */ BOOL fAsync);
  436.         
  437.         HRESULT ( STDMETHODCALLTYPE *GetTransactionInfo )( 
  438.             ITransaction2 * This,
  439.             /* [out] */ XACTTRANSINFO *pinfo);
  440.         
  441.         HRESULT ( STDMETHODCALLTYPE *CloneWithCommitDisabled )( 
  442.             ITransaction2 * This,
  443.             /* [out] */ ITransaction **ppITransaction);
  444.         
  445.         HRESULT ( STDMETHODCALLTYPE *GetTransactionInfo2 )( 
  446.             ITransaction2 * This,
  447.             /* [out] */ XACTTRANSINFO *pinfo);
  448.         
  449.         END_INTERFACE
  450.     } ITransaction2Vtbl;
  451.     interface ITransaction2
  452.     {
  453.         CONST_VTBL struct ITransaction2Vtbl *lpVtbl;
  454.     };
  455.     
  456. #ifdef COBJMACROS
  457. #define ITransaction2_QueryInterface(This,riid,ppvObject)
  458.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  459. #define ITransaction2_AddRef(This)
  460.     (This)->lpVtbl -> AddRef(This)
  461. #define ITransaction2_Release(This)
  462.     (This)->lpVtbl -> Release(This)
  463. #define ITransaction2_Commit(This,fRetaining,grfTC,grfRM)
  464.     (This)->lpVtbl -> Commit(This,fRetaining,grfTC,grfRM)
  465. #define ITransaction2_Abort(This,pboidReason,fRetaining,fAsync)
  466.     (This)->lpVtbl -> Abort(This,pboidReason,fRetaining,fAsync)
  467. #define ITransaction2_GetTransactionInfo(This,pinfo)
  468.     (This)->lpVtbl -> GetTransactionInfo(This,pinfo)
  469. #define ITransaction2_CloneWithCommitDisabled(This,ppITransaction)
  470.     (This)->lpVtbl -> CloneWithCommitDisabled(This,ppITransaction)
  471. #define ITransaction2_GetTransactionInfo2(This,pinfo)
  472.     (This)->lpVtbl -> GetTransactionInfo2(This,pinfo)
  473. #endif /* COBJMACROS */
  474. #endif  /* C style interface */
  475. HRESULT STDMETHODCALLTYPE ITransaction2_GetTransactionInfo2_Proxy( 
  476.     ITransaction2 * This,
  477.     /* [out] */ XACTTRANSINFO *pinfo);
  478. void __RPC_STUB ITransaction2_GetTransactionInfo2_Stub(
  479.     IRpcStubBuffer *This,
  480.     IRpcChannelBuffer *_pRpcChannelBuffer,
  481.     PRPC_MESSAGE _pRpcMessage,
  482.     DWORD *_pdwStubPhase);
  483. #endif  /* __ITransaction2_INTERFACE_DEFINED__ */
  484. #ifndef __ITransactionDispenser_INTERFACE_DEFINED__
  485. #define __ITransactionDispenser_INTERFACE_DEFINED__
  486. /* interface ITransactionDispenser */
  487. /* [unique][uuid][object] */ 
  488. EXTERN_C const IID IID_ITransactionDispenser;
  489. #if defined(__cplusplus) && !defined(CINTERFACE)
  490.     
  491.     MIDL_INTERFACE("3A6AD9E1-23B9-11cf-AD60-00AA00A74CCD")
  492.     ITransactionDispenser : public IUnknown
  493.     {
  494.     public:
  495.         virtual HRESULT STDMETHODCALLTYPE GetOptionsObject( 
  496.             /* [out] */ ITransactionOptions **ppOptions) = 0;
  497.         
  498.         virtual HRESULT STDMETHODCALLTYPE BeginTransaction( 
  499.             /* [unique][in] */ IUnknown *punkOuter,
  500.             /* [in] */ ISOLEVEL isoLevel,
  501.             /* [in] */ ULONG isoFlags,
  502.             /* [unique][in] */ ITransactionOptions *pOptions,
  503.             /* [out] */ ITransaction **ppTransaction) = 0;
  504.         
  505.     };
  506.     
  507. #else  /* C style interface */
  508.     typedef struct ITransactionDispenserVtbl
  509.     {
  510.         BEGIN_INTERFACE
  511.         
  512.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  513.             ITransactionDispenser * This,
  514.             /* [in] */ REFIID riid,
  515.             /* [iid_is][out] */ void **ppvObject);
  516.         
  517.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  518.             ITransactionDispenser * This);
  519.         
  520.         ULONG ( STDMETHODCALLTYPE *Release )( 
  521.             ITransactionDispenser * This);
  522.         
  523.         HRESULT ( STDMETHODCALLTYPE *GetOptionsObject )( 
  524.             ITransactionDispenser * This,
  525.             /* [out] */ ITransactionOptions **ppOptions);
  526.         
  527.         HRESULT ( STDMETHODCALLTYPE *BeginTransaction )( 
  528.             ITransactionDispenser * This,
  529.             /* [unique][in] */ IUnknown *punkOuter,
  530.             /* [in] */ ISOLEVEL isoLevel,
  531.             /* [in] */ ULONG isoFlags,
  532.             /* [unique][in] */ ITransactionOptions *pOptions,
  533.             /* [out] */ ITransaction **ppTransaction);
  534.         
  535.         END_INTERFACE
  536.     } ITransactionDispenserVtbl;
  537.     interface ITransactionDispenser
  538.     {
  539.         CONST_VTBL struct ITransactionDispenserVtbl *lpVtbl;
  540.     };
  541.     
  542. #ifdef COBJMACROS
  543. #define ITransactionDispenser_QueryInterface(This,riid,ppvObject)
  544.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  545. #define ITransactionDispenser_AddRef(This)
  546.     (This)->lpVtbl -> AddRef(This)
  547. #define ITransactionDispenser_Release(This)
  548.     (This)->lpVtbl -> Release(This)
  549. #define ITransactionDispenser_GetOptionsObject(This,ppOptions)
  550.     (This)->lpVtbl -> GetOptionsObject(This,ppOptions)
  551. #define ITransactionDispenser_BeginTransaction(This,punkOuter,isoLevel,isoFlags,pOptions,ppTransaction)
  552.     (This)->lpVtbl -> BeginTransaction(This,punkOuter,isoLevel,isoFlags,pOptions,ppTransaction)
  553. #endif /* COBJMACROS */
  554. #endif  /* C style interface */
  555. HRESULT STDMETHODCALLTYPE ITransactionDispenser_GetOptionsObject_Proxy( 
  556.     ITransactionDispenser * This,
  557.     /* [out] */ ITransactionOptions **ppOptions);
  558. void __RPC_STUB ITransactionDispenser_GetOptionsObject_Stub(
  559.     IRpcStubBuffer *This,
  560.     IRpcChannelBuffer *_pRpcChannelBuffer,
  561.     PRPC_MESSAGE _pRpcMessage,
  562.     DWORD *_pdwStubPhase);
  563. HRESULT STDMETHODCALLTYPE ITransactionDispenser_BeginTransaction_Proxy( 
  564.     ITransactionDispenser * This,
  565.     /* [unique][in] */ IUnknown *punkOuter,
  566.     /* [in] */ ISOLEVEL isoLevel,
  567.     /* [in] */ ULONG isoFlags,
  568.     /* [unique][in] */ ITransactionOptions *pOptions,
  569.     /* [out] */ ITransaction **ppTransaction);
  570. void __RPC_STUB ITransactionDispenser_BeginTransaction_Stub(
  571.     IRpcStubBuffer *This,
  572.     IRpcChannelBuffer *_pRpcChannelBuffer,
  573.     PRPC_MESSAGE _pRpcMessage,
  574.     DWORD *_pdwStubPhase);
  575. #endif  /* __ITransactionDispenser_INTERFACE_DEFINED__ */
  576. #ifndef __ITransactionOptions_INTERFACE_DEFINED__
  577. #define __ITransactionOptions_INTERFACE_DEFINED__
  578. /* interface ITransactionOptions */
  579. /* [unique][uuid][object] */ 
  580. EXTERN_C const IID IID_ITransactionOptions;
  581. #if defined(__cplusplus) && !defined(CINTERFACE)
  582.     
  583.     MIDL_INTERFACE("3A6AD9E0-23B9-11cf-AD60-00AA00A74CCD")
  584.     ITransactionOptions : public IUnknown
  585.     {
  586.     public:
  587.         virtual HRESULT STDMETHODCALLTYPE SetOptions( 
  588.             /* [in] */ XACTOPT *pOptions) = 0;
  589.         
  590.         virtual HRESULT STDMETHODCALLTYPE GetOptions( 
  591.             /* [out][in] */ XACTOPT *pOptions) = 0;
  592.         
  593.     };
  594.     
  595. #else  /* C style interface */
  596.     typedef struct ITransactionOptionsVtbl
  597.     {
  598.         BEGIN_INTERFACE
  599.         
  600.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  601.             ITransactionOptions * This,
  602.             /* [in] */ REFIID riid,
  603.             /* [iid_is][out] */ void **ppvObject);
  604.         
  605.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  606.             ITransactionOptions * This);
  607.         
  608.         ULONG ( STDMETHODCALLTYPE *Release )( 
  609.             ITransactionOptions * This);
  610.         
  611.         HRESULT ( STDMETHODCALLTYPE *SetOptions )( 
  612.             ITransactionOptions * This,
  613.             /* [in] */ XACTOPT *pOptions);
  614.         
  615.         HRESULT ( STDMETHODCALLTYPE *GetOptions )( 
  616.             ITransactionOptions * This,
  617.             /* [out][in] */ XACTOPT *pOptions);
  618.         
  619.         END_INTERFACE
  620.     } ITransactionOptionsVtbl;
  621.     interface ITransactionOptions
  622.     {
  623.         CONST_VTBL struct ITransactionOptionsVtbl *lpVtbl;
  624.     };
  625.     
  626. #ifdef COBJMACROS
  627. #define ITransactionOptions_QueryInterface(This,riid,ppvObject)
  628.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  629. #define ITransactionOptions_AddRef(This)
  630.     (This)->lpVtbl -> AddRef(This)
  631. #define ITransactionOptions_Release(This)
  632.     (This)->lpVtbl -> Release(This)
  633. #define ITransactionOptions_SetOptions(This,pOptions)
  634.     (This)->lpVtbl -> SetOptions(This,pOptions)
  635. #define ITransactionOptions_GetOptions(This,pOptions)
  636.     (This)->lpVtbl -> GetOptions(This,pOptions)
  637. #endif /* COBJMACROS */
  638. #endif  /* C style interface */
  639. HRESULT STDMETHODCALLTYPE ITransactionOptions_SetOptions_Proxy( 
  640.     ITransactionOptions * This,
  641.     /* [in] */ XACTOPT *pOptions);
  642. void __RPC_STUB ITransactionOptions_SetOptions_Stub(
  643.     IRpcStubBuffer *This,
  644.     IRpcChannelBuffer *_pRpcChannelBuffer,
  645.     PRPC_MESSAGE _pRpcMessage,
  646.     DWORD *_pdwStubPhase);
  647. HRESULT STDMETHODCALLTYPE ITransactionOptions_GetOptions_Proxy( 
  648.     ITransactionOptions * This,
  649.     /* [out][in] */ XACTOPT *pOptions);
  650. void __RPC_STUB ITransactionOptions_GetOptions_Stub(
  651.     IRpcStubBuffer *This,
  652.     IRpcChannelBuffer *_pRpcChannelBuffer,
  653.     PRPC_MESSAGE _pRpcMessage,
  654.     DWORD *_pdwStubPhase);
  655. #endif  /* __ITransactionOptions_INTERFACE_DEFINED__ */
  656. #ifndef __ITransactionOutcomeEvents_INTERFACE_DEFINED__
  657. #define __ITransactionOutcomeEvents_INTERFACE_DEFINED__
  658. /* interface ITransactionOutcomeEvents */
  659. /* [unique][uuid][object] */ 
  660. EXTERN_C const IID IID_ITransactionOutcomeEvents;
  661. #if defined(__cplusplus) && !defined(CINTERFACE)
  662.     
  663.     MIDL_INTERFACE("3A6AD9E2-23B9-11cf-AD60-00AA00A74CCD")
  664.     ITransactionOutcomeEvents : public IUnknown
  665.     {
  666.     public:
  667.         virtual HRESULT STDMETHODCALLTYPE Committed( 
  668.             /* [in] */ BOOL fRetaining,
  669.             /* [unique][in] */ XACTUOW *pNewUOW,
  670.             /* [in] */ HRESULT hr) = 0;
  671.         
  672.         virtual HRESULT STDMETHODCALLTYPE Aborted( 
  673.             /* [unique][in] */ BOID *pboidReason,
  674.             /* [in] */ BOOL fRetaining,
  675.             /* [unique][in] */ XACTUOW *pNewUOW,
  676.             /* [in] */ HRESULT hr) = 0;
  677.         
  678.         virtual HRESULT STDMETHODCALLTYPE HeuristicDecision( 
  679.             /* [in] */ DWORD dwDecision,
  680.             /* [unique][in] */ BOID *pboidReason,
  681.             /* [in] */ HRESULT hr) = 0;
  682.         
  683.         virtual HRESULT STDMETHODCALLTYPE Indoubt( void) = 0;
  684.         
  685.     };
  686.     
  687. #else  /* C style interface */
  688.     typedef struct ITransactionOutcomeEventsVtbl
  689.     {
  690.         BEGIN_INTERFACE
  691.         
  692.         HRESULT ( STDMETHODCALLTYPE *QueryInterface )( 
  693.             ITransactionOutcomeEvents * This,
  694.             /* [in] */ REFIID riid,
  695.             /* [iid_is][out] */ void **ppvObject);
  696.         
  697.         ULONG ( STDMETHODCALLTYPE *AddRef )( 
  698.             ITransactionOutcomeEvents * This);
  699.         
  700.         ULONG ( STDMETHODCALLTYPE *Release )( 
  701.             ITransactionOutcomeEvents * This);
  702.         
  703.         HRESULT ( STDMETHODCALLTYPE *Committed )( 
  704.             ITransactionOutcomeEvents * This,
  705.             /* [in] */ BOOL fRetaining,
  706.             /* [unique][in] */ XACTUOW *pNewUOW,
  707.             /* [in] */ HRESULT hr);
  708.         
  709.         HRESULT ( STDMETHODCALLTYPE *Aborted )( 
  710.             ITransactionOutcomeEvents * This,
  711.             /* [unique][in] */ BOID *pboidReason,
  712.             /* [in] */ BOOL fRetaining,
  713.             /* [unique][in] */ XACTUOW *pNewUOW,
  714.             /* [in] */ HRESULT hr);
  715.         
  716.         HRESULT ( STDMETHODCALLTYPE *HeuristicDecision )( 
  717.             ITransactionOutcomeEvents * This,
  718.             /* [in] */ DWORD dwDecision,
  719.             /* [unique][in] */ BOID *pboidReason,
  720.             /* [in] */ HRESULT hr);
  721.         
  722.         HRESULT ( STDMETHODCALLTYPE *Indoubt )( 
  723.             ITransactionOutcomeEvents * This);
  724.         
  725.         END_INTERFACE
  726.     } ITransactionOutcomeEventsVtbl;
  727.     interface ITransactionOutcomeEvents
  728.     {
  729.         CONST_VTBL struct ITransactionOutcomeEventsVtbl *lpVtbl;
  730.     };
  731.     
  732. #ifdef COBJMACROS
  733. #define ITransactionOutcomeEvents_QueryInterface(This,riid,ppvObject)
  734.     (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  735. #define ITransactionOutcomeEvents_AddRef(This)
  736.     (This)->lpVtbl -> AddRef(This)
  737. #define ITransactionOutcomeEvents_Release(This)
  738.     (This)->lpVtbl -> Release(This)
  739. #define ITransactionOutcomeEvents_Committed(This,fRetaining,pNewUOW,hr)
  740.     (This)->lpVtbl -> Committed(This,fRetaining,pNewUOW,hr)
  741. #define ITransactionOutcomeEvents_Aborted(This,pboidReason,fRetaining,pNewUOW,hr)
  742.     (This)->lpVtbl -> Aborted(This,pboidReason,fRetaining,pNewUOW,hr)
  743. #define ITransactionOutcomeEvents_HeuristicDecision(This,dwDecision,pboidReason,hr)
  744.     (This)->lpVtbl -> HeuristicDecision(This,dwDecision,pboidReason,hr)
  745. #define ITransactionOutcomeEvents_Indoubt(This)
  746.     (This)->lpVtbl -> Indoubt(This)
  747. #endif /* COBJMACROS */
  748. #endif  /* C style interface */
  749. HRESULT STDMETHODCALLTYPE ITransactionOutcomeEvents_Committed_Proxy( 
  750.     ITransactionOutcomeEvents * This,
  751.     /* [in] */ BOOL fRetaining,
  752.     /* [unique][in] */ XACTUOW *pNewUOW,
  753.     /* [in] */ HRESULT hr);
  754. void __RPC_STUB ITransactionOutcomeEvents_Committed_Stub(
  755.     IRpcStubBuffer *This,
  756.     IRpcChannelBuffer *_pRpcChannelBuffer,
  757.     PRPC_MESSAGE _pRpcMessage,
  758.     DWORD *_pdwStubPhase);
  759. HRESULT STDMETHODCALLTYPE ITransactionOutcomeEvents_Aborted_Proxy( 
  760.     ITransactionOutcomeEvents * This,
  761.     /* [unique][in] */ BOID *pboidReason,
  762.     /* [in] */ BOOL fRetaining,
  763.     /* [unique][in] */ XACTUOW *pNewUOW,
  764.     /* [in] */ HRESULT hr);
  765. void __RPC_STUB ITransactionOutcomeEvents_Aborted_Stub(
  766.     IRpcStubBuffer *This,
  767.     IRpcChannelBuffer *_pRpcChannelBuffer,
  768.     PRPC_MESSAGE _pRpcMessage,
  769.     DWORD *_pdwStubPhase);
  770. HRESULT STDMETHODCALLTYPE ITransactionOutcomeEvents_HeuristicDecision_Proxy( 
  771.     ITransactionOutcomeEvents * This,
  772.     /* [in] */ DWORD dwDecision,
  773.     /* [unique][in] */ BOID *pboidReason,
  774.     /* [in] */ HRESULT hr);
  775. void __RPC_STUB ITransactionOutcomeEvents_HeuristicDecision_Stub(
  776.     IRpcStubBuffer *This,
  777.     IRpcChannelBuffer *_pRpcChannelBuffer,
  778.     PRPC_MESSAGE _pRpcMessage,
  779.     DWORD *_pdwStubPhase);
  780. HRESULT STDMETHODCALLTYPE ITransactionOutcomeEvents_Indoubt_Proxy( 
  781.     ITransactionOutcomeEvents * This);
  782. void __RPC_STUB ITransactionOutcomeEvents_Indoubt_Stub(
  783.     IRpcStubBuffer *This,
  784.     IRpcChannelBuffer *_pRpcChannelBuffer,
  785.     PRPC_MESSAGE _pRpcMessage,
  786.     DWORD *_pdwStubPhase);
  787. #endif  /* __ITransactionOutcomeEvents_INTERFACE_DEFINED__ */
  788. /* interface __MIDL_itf_transact_0015 */
  789. /* [local] */ 
  790. #if _MSC_VER < 1100 || !defined(__cplusplus)
  791. DEFINE_GUID(IID_ITransaction,                0x0fb15084, 0xaf41, 0x11ce, 0xbd, 0x2b, 0x20, 0x4c, 0x4f, 0x4f, 0x50, 0x20);
  792. DEFINE_GUID(IID_ITransactionCloner,          0x02656950, 0x2152, 0x11d0, 0x94, 0x4C, 0x00, 0xA0, 0xC9, 0x05, 0x41, 0x6E);
  793. DEFINE_GUID(IID_ITransaction2,               0x34021548, 0x0065, 0x11d3, 0xba, 0xc1, 0x00, 0xc0, 0x4f, 0x79, 0x7b, 0xe2);
  794. DEFINE_GUID(IID_ITransactionDispenser,       0x3A6AD9E1, 0x23B9, 0x11cf, 0xAD, 0x60, 0x00, 0xAA, 0x00, 0xA7, 0x4C, 0xCD);
  795. DEFINE_GUID(IID_ITransactionOptions,         0x3A6AD9E0, 0x23B9, 0x11cf, 0xAD, 0x60, 0x00, 0xAA, 0x00, 0xA7, 0x4C, 0xCD);
  796. DEFINE_GUID(IID_ITransactionOutcomeEvents,   0x3A6AD9E2, 0x23B9, 0x11cf, 0xAD, 0x60, 0x00, 0xAA, 0x00, 0xA7, 0x4C, 0xCD);
  797. #else // #if _MSC_VER < 1100 || !defined(__cplusplus)
  798. #define  IID_ITransaction                    __uuidof(ITransaction)
  799. #define  IID_ITransactionCloner              __uuidof(ITransactionCloner)
  800. #define  IID_ITransaction2                   __uuidof(ITransaction2)
  801. #define  IID_ITransactionDispenser           __uuidof(ITransactionDispenser)
  802. #define  IID_ITransactionOptions             __uuidof(ITransactionOptions)
  803. #define  IID_ITransactionOutcomeEvents       __uuidof(ITransactionOutcomeEvents)
  804. #endif // #if _MSC_VER < 1100 || !defined(__cplusplus)
  805. extern RPC_IF_HANDLE __MIDL_itf_transact_0015_v0_0_c_ifspec;
  806. extern RPC_IF_HANDLE __MIDL_itf_transact_0015_v0_0_s_ifspec;
  807. /* Additional Prototypes for ALL interfaces */
  808. /* end of Additional Prototypes */
  809. #ifdef __cplusplus
  810. }
  811. #endif
  812. #endif