home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / vc98 / include / transact.h < prev    next >
C/C++ Source or Header  |  1998-05-31  |  27KB  |  894 lines

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