Home | History | Annotate | Download | only in include
      1 /**
      2  * This file has no copyright assigned and is placed in the Public Domain.
      3  * This file is part of the mingw-w64 runtime package.
      4  * No warranty is given; refer to the file DISCLAIMER.PD within this package.
      5  */
      6 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      7 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      8 #endif
      9 
     10 #include "rpc.h"
     11 #include "rpcndr.h"
     12 
     13 #ifndef __RPCNDR_H_VERSION__
     14 #error This stub requires an updated version of <rpcndr.h>
     15 #endif
     16 
     17 #ifndef COM_NO_WINDOWS_H
     18 #include "windows.h"
     19 #include "ole2.h"
     20 #endif
     21 
     22 #ifndef __transact_h__
     23 #define __transact_h__
     24 
     25 #ifndef __ITransaction_FWD_DEFINED__
     26 #define __ITransaction_FWD_DEFINED__
     27 typedef struct ITransaction ITransaction;
     28 #endif
     29 
     30 #ifndef __ITransactionCloner_FWD_DEFINED__
     31 #define __ITransactionCloner_FWD_DEFINED__
     32 typedef struct ITransactionCloner ITransactionCloner;
     33 #endif
     34 
     35 #ifndef __ITransaction2_FWD_DEFINED__
     36 #define __ITransaction2_FWD_DEFINED__
     37 typedef struct ITransaction2 ITransaction2;
     38 #endif
     39 
     40 #ifndef __ITransactionDispenser_FWD_DEFINED__
     41 #define __ITransactionDispenser_FWD_DEFINED__
     42 typedef struct ITransactionDispenser ITransactionDispenser;
     43 #endif
     44 
     45 #ifndef __ITransactionOptions_FWD_DEFINED__
     46 #define __ITransactionOptions_FWD_DEFINED__
     47 typedef struct ITransactionOptions ITransactionOptions;
     48 #endif
     49 
     50 #ifndef __ITransactionOutcomeEvents_FWD_DEFINED__
     51 #define __ITransactionOutcomeEvents_FWD_DEFINED__
     52 typedef struct ITransactionOutcomeEvents ITransactionOutcomeEvents;
     53 #endif
     54 
     55 #ifndef __ITmNodeName_FWD_DEFINED__
     56 #define __ITmNodeName_FWD_DEFINED__
     57 typedef struct ITmNodeName ITmNodeName;
     58 #endif
     59 
     60 #include "unknwn.h"
     61 
     62 #ifdef __cplusplus
     63 extern "C" {
     64 #endif
     65 
     66 #ifndef __MIDL_user_allocate_free_DEFINED__
     67 #define __MIDL_user_allocate_free_DEFINED__
     68   void *__RPC_API MIDL_user_allocate(size_t);
     69   void __RPC_API MIDL_user_free(void *);
     70 #endif
     71 
     72 #include "winerror.h"
     73 
     74   extern RPC_IF_HANDLE __MIDL_itf_transact_0000_v0_0_c_ifspec;
     75   extern RPC_IF_HANDLE __MIDL_itf_transact_0000_v0_0_s_ifspec;
     76 
     77 #ifndef __BasicTransactionTypes_INTERFACE_DEFINED__
     78 #define __BasicTransactionTypes_INTERFACE_DEFINED__
     79 
     80   typedef struct BOID {
     81     byte rgb[16 ];
     82   } BOID;
     83 
     84 #define BOID_NULL (*((BOID*)(&IID_NULL)))
     85 #ifndef MAX_TRAN_DESC_DEFINED
     86 #define MAX_TRAN_DESC_DEFINED
     87   typedef enum TX_MISC_CONSTANTS {
     88     MAX_TRAN_DESC = 40
     89   } TX_MISC_CONSTANTS;
     90 #endif
     91   typedef BOID XACTUOW;
     92   typedef LONG ISOLEVEL;
     93 
     94   typedef enum ISOLATIONLEVEL {
     95     ISOLATIONLEVEL_UNSPECIFIED = 0xffffffff,ISOLATIONLEVEL_CHAOS = 0x10,ISOLATIONLEVEL_READUNCOMMITTED = 0x100,ISOLATIONLEVEL_BROWSE = 0x100,
     96     ISOLATIONLEVEL_CURSORSTABILITY = 0x1000,ISOLATIONLEVEL_READCOMMITTED = 0x1000,ISOLATIONLEVEL_REPEATABLEREAD = 0x10000,
     97     ISOLATIONLEVEL_SERIALIZABLE = 0x100000,ISOLATIONLEVEL_ISOLATED = 0x100000
     98   } ISOLATIONLEVEL;
     99 
    100   typedef struct XACTTRANSINFO {
    101     XACTUOW uow;
    102     ISOLEVEL isoLevel;
    103     ULONG isoFlags;
    104     DWORD grfTCSupported;
    105     DWORD grfRMSupported;
    106     DWORD grfTCSupportedRetaining;
    107     DWORD grfRMSupportedRetaining;
    108   } XACTTRANSINFO;
    109 
    110   typedef struct XACTSTATS {
    111     ULONG cOpen;
    112     ULONG cCommitting;
    113     ULONG cCommitted;
    114     ULONG cAborting;
    115     ULONG cAborted;
    116     ULONG cInDoubt;
    117     ULONG cHeuristicDecision;
    118     FILETIME timeTransactionsUp;
    119   } XACTSTATS;
    120 
    121   typedef enum ISOFLAG {
    122     ISOFLAG_RETAIN_COMMIT_DC = 1,ISOFLAG_RETAIN_COMMIT = 2,ISOFLAG_RETAIN_COMMIT_NO = 3,ISOFLAG_RETAIN_ABORT_DC = 4,ISOFLAG_RETAIN_ABORT = 8,
    123     ISOFLAG_RETAIN_ABORT_NO = 12,ISOFLAG_RETAIN_DONTCARE = ISOFLAG_RETAIN_COMMIT_DC | ISOFLAG_RETAIN_ABORT_DC,
    124     ISOFLAG_RETAIN_BOTH = ISOFLAG_RETAIN_COMMIT | ISOFLAG_RETAIN_ABORT,ISOFLAG_RETAIN_NONE = ISOFLAG_RETAIN_COMMIT_NO | ISOFLAG_RETAIN_ABORT_NO,ISOFLAG_OPTIMISTIC = 16,ISOFLAG_READONLY = 32
    125   } ISOFLAG;
    126 
    127   typedef enum XACTTC {
    128     XACTTC_NONE = 0,XACTTC_SYNC_PHASEONE = 1,XACTTC_SYNC_PHASETWO = 2,XACTTC_SYNC = 2,XACTTC_ASYNC_PHASEONE = 4,XACTTC_ASYNC = 4
    129   } XACTTC;
    130 
    131   typedef enum XACTRM {
    132     XACTRM_OPTIMISTICLASTWINS = 1,XACTRM_NOREADONLYPREPARES = 2
    133   } XACTRM;
    134 
    135   typedef enum XACTCONST {
    136     XACTCONST_TIMEOUTINFINITE = 0
    137   } XACTCONST;
    138 
    139   typedef enum XACTHEURISTIC {
    140     XACTHEURISTIC_ABORT = 1,XACTHEURISTIC_COMMIT = 2,XACTHEURISTIC_DAMAGE = 3,XACTHEURISTIC_DANGER = 4
    141   } XACTHEURISTIC;
    142 
    143   typedef enum XACTSTAT {
    144     XACTSTAT_NONE = 0,XACTSTAT_OPENNORMAL = 0x1,XACTSTAT_OPENREFUSED = 0x2,XACTSTAT_PREPARING = 0x4,XACTSTAT_PREPARED = 0x8,XACTSTAT_PREPARERETAINING = 0x10,XACTSTAT_PREPARERETAINED = 0x20,XACTSTAT_COMMITTING = 0x40,XACTSTAT_COMMITRETAINING = 0x80,XACTSTAT_ABORTING = 0x100,XACTSTAT_ABORTED = 0x200,XACTSTAT_COMMITTED = 0x400,XACTSTAT_HEURISTIC_ABORT = 0x800,XACTSTAT_HEURISTIC_COMMIT = 0x1000,XACTSTAT_HEURISTIC_DAMAGE = 0x2000,XACTSTAT_HEURISTIC_DANGER = 0x4000,XACTSTAT_FORCED_ABORT = 0x8000,XACTSTAT_FORCED_COMMIT = 0x10000,XACTSTAT_INDOUBT = 0x20000,XACTSTAT_CLOSED = 0x40000,XACTSTAT_OPEN = 0x3,XACTSTAT_NOTPREPARED = 0x7ffc3,XACTSTAT_ALL = 0x7ffff
    145   } XACTSTAT;
    146 
    147   typedef struct XACTOPT {
    148     ULONG ulTimeout;
    149     char szDescription[40 ];
    150   } XACTOPT;
    151 
    152   extern RPC_IF_HANDLE BasicTransactionTypes_v0_0_c_ifspec;
    153   extern RPC_IF_HANDLE BasicTransactionTypes_v0_0_s_ifspec;
    154 #endif
    155 
    156 #ifndef __ITransaction_INTERFACE_DEFINED__
    157 #define __ITransaction_INTERFACE_DEFINED__
    158   EXTERN_C const IID IID_ITransaction;
    159 #if defined(__cplusplus) && !defined(CINTERFACE)
    160   struct ITransaction : public IUnknown {
    161   public:
    162     virtual HRESULT WINAPI Commit(WINBOOL fRetaining,DWORD grfTC,DWORD grfRM) = 0;
    163     virtual HRESULT WINAPI Abort(BOID *pboidReason,WINBOOL fRetaining,WINBOOL fAsync) = 0;
    164     virtual HRESULT WINAPI GetTransactionInfo(XACTTRANSINFO *pinfo) = 0;
    165   };
    166 #else
    167   typedef struct ITransactionVtbl {
    168     BEGIN_INTERFACE
    169       HRESULT (WINAPI *QueryInterface)(ITransaction *This,REFIID riid,void **ppvObject);
    170       ULONG (WINAPI *AddRef)(ITransaction *This);
    171       ULONG (WINAPI *Release)(ITransaction *This);
    172       HRESULT (WINAPI *Commit)(ITransaction *This,WINBOOL fRetaining,DWORD grfTC,DWORD grfRM);
    173       HRESULT (WINAPI *Abort)(ITransaction *This,BOID *pboidReason,WINBOOL fRetaining,WINBOOL fAsync);
    174       HRESULT (WINAPI *GetTransactionInfo)(ITransaction *This,XACTTRANSINFO *pinfo);
    175     END_INTERFACE
    176   } ITransactionVtbl;
    177   struct ITransaction {
    178     CONST_VTBL struct ITransactionVtbl *lpVtbl;
    179   };
    180 #ifdef COBJMACROS
    181 #define ITransaction_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    182 #define ITransaction_AddRef(This) (This)->lpVtbl->AddRef(This)
    183 #define ITransaction_Release(This) (This)->lpVtbl->Release(This)
    184 #define ITransaction_Commit(This,fRetaining,grfTC,grfRM) (This)->lpVtbl->Commit(This,fRetaining,grfTC,grfRM)
    185 #define ITransaction_Abort(This,pboidReason,fRetaining,fAsync) (This)->lpVtbl->Abort(This,pboidReason,fRetaining,fAsync)
    186 #define ITransaction_GetTransactionInfo(This,pinfo) (This)->lpVtbl->GetTransactionInfo(This,pinfo)
    187 #endif
    188 #endif
    189   HRESULT WINAPI ITransaction_Commit_Proxy(ITransaction *This,WINBOOL fRetaining,DWORD grfTC,DWORD grfRM);
    190   void __RPC_STUB ITransaction_Commit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    191   HRESULT WINAPI ITransaction_Abort_Proxy(ITransaction *This,BOID *pboidReason,WINBOOL fRetaining,WINBOOL fAsync);
    192   void __RPC_STUB ITransaction_Abort_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    193   HRESULT WINAPI ITransaction_GetTransactionInfo_Proxy(ITransaction *This,XACTTRANSINFO *pinfo);
    194   void __RPC_STUB ITransaction_GetTransactionInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    195 #endif
    196 
    197 #ifndef __ITransactionCloner_INTERFACE_DEFINED__
    198 #define __ITransactionCloner_INTERFACE_DEFINED__
    199   EXTERN_C const IID IID_ITransactionCloner;
    200 #if defined(__cplusplus) && !defined(CINTERFACE)
    201   struct ITransactionCloner : public ITransaction {
    202   public:
    203     virtual HRESULT WINAPI CloneWithCommitDisabled(ITransaction **ppITransaction) = 0;
    204   };
    205 #else
    206   typedef struct ITransactionClonerVtbl {
    207     BEGIN_INTERFACE
    208       HRESULT (WINAPI *QueryInterface)(ITransactionCloner *This,REFIID riid,void **ppvObject);
    209       ULONG (WINAPI *AddRef)(ITransactionCloner *This);
    210       ULONG (WINAPI *Release)(ITransactionCloner *This);
    211       HRESULT (WINAPI *Commit)(ITransactionCloner *This,WINBOOL fRetaining,DWORD grfTC,DWORD grfRM);
    212       HRESULT (WINAPI *Abort)(ITransactionCloner *This,BOID *pboidReason,WINBOOL fRetaining,WINBOOL fAsync);
    213       HRESULT (WINAPI *GetTransactionInfo)(ITransactionCloner *This,XACTTRANSINFO *pinfo);
    214       HRESULT (WINAPI *CloneWithCommitDisabled)(ITransactionCloner *This,ITransaction **ppITransaction);
    215     END_INTERFACE
    216   } ITransactionClonerVtbl;
    217   struct ITransactionCloner {
    218     CONST_VTBL struct ITransactionClonerVtbl *lpVtbl;
    219   };
    220 #ifdef COBJMACROS
    221 #define ITransactionCloner_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    222 #define ITransactionCloner_AddRef(This) (This)->lpVtbl->AddRef(This)
    223 #define ITransactionCloner_Release(This) (This)->lpVtbl->Release(This)
    224 #define ITransactionCloner_Commit(This,fRetaining,grfTC,grfRM) (This)->lpVtbl->Commit(This,fRetaining,grfTC,grfRM)
    225 #define ITransactionCloner_Abort(This,pboidReason,fRetaining,fAsync) (This)->lpVtbl->Abort(This,pboidReason,fRetaining,fAsync)
    226 #define ITransactionCloner_GetTransactionInfo(This,pinfo) (This)->lpVtbl->GetTransactionInfo(This,pinfo)
    227 #define ITransactionCloner_CloneWithCommitDisabled(This,ppITransaction) (This)->lpVtbl->CloneWithCommitDisabled(This,ppITransaction)
    228 #endif
    229 #endif
    230   HRESULT WINAPI ITransactionCloner_CloneWithCommitDisabled_Proxy(ITransactionCloner *This,ITransaction **ppITransaction);
    231   void __RPC_STUB ITransactionCloner_CloneWithCommitDisabled_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    232 #endif
    233 
    234 #ifndef __ITransaction2_INTERFACE_DEFINED__
    235 #define __ITransaction2_INTERFACE_DEFINED__
    236   EXTERN_C const IID IID_ITransaction2;
    237 #if defined(__cplusplus) && !defined(CINTERFACE)
    238   struct ITransaction2 : public ITransactionCloner {
    239   public:
    240     virtual HRESULT WINAPI GetTransactionInfo2(XACTTRANSINFO *pinfo) = 0;
    241   };
    242 #else
    243   typedef struct ITransaction2Vtbl {
    244     BEGIN_INTERFACE
    245       HRESULT (WINAPI *QueryInterface)(ITransaction2 *This,REFIID riid,void **ppvObject);
    246       ULONG (WINAPI *AddRef)(ITransaction2 *This);
    247       ULONG (WINAPI *Release)(ITransaction2 *This);
    248       HRESULT (WINAPI *Commit)(ITransaction2 *This,WINBOOL fRetaining,DWORD grfTC,DWORD grfRM);
    249       HRESULT (WINAPI *Abort)(ITransaction2 *This,BOID *pboidReason,WINBOOL fRetaining,WINBOOL fAsync);
    250       HRESULT (WINAPI *GetTransactionInfo)(ITransaction2 *This,XACTTRANSINFO *pinfo);
    251       HRESULT (WINAPI *CloneWithCommitDisabled)(ITransaction2 *This,ITransaction **ppITransaction);
    252       HRESULT (WINAPI *GetTransactionInfo2)(ITransaction2 *This,XACTTRANSINFO *pinfo);
    253     END_INTERFACE
    254   } ITransaction2Vtbl;
    255   struct ITransaction2 {
    256     CONST_VTBL struct ITransaction2Vtbl *lpVtbl;
    257   };
    258 #ifdef COBJMACROS
    259 #define ITransaction2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    260 #define ITransaction2_AddRef(This) (This)->lpVtbl->AddRef(This)
    261 #define ITransaction2_Release(This) (This)->lpVtbl->Release(This)
    262 #define ITransaction2_Commit(This,fRetaining,grfTC,grfRM) (This)->lpVtbl->Commit(This,fRetaining,grfTC,grfRM)
    263 #define ITransaction2_Abort(This,pboidReason,fRetaining,fAsync) (This)->lpVtbl->Abort(This,pboidReason,fRetaining,fAsync)
    264 #define ITransaction2_GetTransactionInfo(This,pinfo) (This)->lpVtbl->GetTransactionInfo(This,pinfo)
    265 #define ITransaction2_CloneWithCommitDisabled(This,ppITransaction) (This)->lpVtbl->CloneWithCommitDisabled(This,ppITransaction)
    266 #define ITransaction2_GetTransactionInfo2(This,pinfo) (This)->lpVtbl->GetTransactionInfo2(This,pinfo)
    267 #endif
    268 #endif
    269   HRESULT WINAPI ITransaction2_GetTransactionInfo2_Proxy(ITransaction2 *This,XACTTRANSINFO *pinfo);
    270   void __RPC_STUB ITransaction2_GetTransactionInfo2_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    271 #endif
    272 
    273 #ifndef __ITransactionDispenser_INTERFACE_DEFINED__
    274 #define __ITransactionDispenser_INTERFACE_DEFINED__
    275   EXTERN_C const IID IID_ITransactionDispenser;
    276 #if defined(__cplusplus) && !defined(CINTERFACE)
    277   struct ITransactionDispenser : public IUnknown {
    278   public:
    279     virtual HRESULT WINAPI GetOptionsObject(ITransactionOptions **ppOptions) = 0;
    280     virtual HRESULT WINAPI BeginTransaction(IUnknown *punkOuter,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOptions,ITransaction **ppTransaction) = 0;
    281   };
    282 #else
    283   typedef struct ITransactionDispenserVtbl {
    284     BEGIN_INTERFACE
    285       HRESULT (WINAPI *QueryInterface)(ITransactionDispenser *This,REFIID riid,void **ppvObject);
    286       ULONG (WINAPI *AddRef)(ITransactionDispenser *This);
    287       ULONG (WINAPI *Release)(ITransactionDispenser *This);
    288       HRESULT (WINAPI *GetOptionsObject)(ITransactionDispenser *This,ITransactionOptions **ppOptions);
    289       HRESULT (WINAPI *BeginTransaction)(ITransactionDispenser *This,IUnknown *punkOuter,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOptions,ITransaction **ppTransaction);
    290     END_INTERFACE
    291   } ITransactionDispenserVtbl;
    292   struct ITransactionDispenser {
    293     CONST_VTBL struct ITransactionDispenserVtbl *lpVtbl;
    294   };
    295 #ifdef COBJMACROS
    296 #define ITransactionDispenser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    297 #define ITransactionDispenser_AddRef(This) (This)->lpVtbl->AddRef(This)
    298 #define ITransactionDispenser_Release(This) (This)->lpVtbl->Release(This)
    299 #define ITransactionDispenser_GetOptionsObject(This,ppOptions) (This)->lpVtbl->GetOptionsObject(This,ppOptions)
    300 #define ITransactionDispenser_BeginTransaction(This,punkOuter,isoLevel,isoFlags,pOptions,ppTransaction) (This)->lpVtbl->BeginTransaction(This,punkOuter,isoLevel,isoFlags,pOptions,ppTransaction)
    301 #endif
    302 #endif
    303   HRESULT WINAPI ITransactionDispenser_GetOptionsObject_Proxy(ITransactionDispenser *This,ITransactionOptions **ppOptions);
    304   void __RPC_STUB ITransactionDispenser_GetOptionsObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    305   HRESULT WINAPI ITransactionDispenser_BeginTransaction_Proxy(ITransactionDispenser *This,IUnknown *punkOuter,ISOLEVEL isoLevel,ULONG isoFlags,ITransactionOptions *pOptions,ITransaction **ppTransaction);
    306   void __RPC_STUB ITransactionDispenser_BeginTransaction_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    307 #endif
    308 
    309 #ifndef __ITransactionOptions_INTERFACE_DEFINED__
    310 #define __ITransactionOptions_INTERFACE_DEFINED__
    311   EXTERN_C const IID IID_ITransactionOptions;
    312 #if defined(__cplusplus) && !defined(CINTERFACE)
    313   struct ITransactionOptions : public IUnknown {
    314   public:
    315     virtual HRESULT WINAPI SetOptions(XACTOPT *pOptions) = 0;
    316     virtual HRESULT WINAPI GetOptions(XACTOPT *pOptions) = 0;
    317   };
    318 #else
    319   typedef struct ITransactionOptionsVtbl {
    320     BEGIN_INTERFACE
    321       HRESULT (WINAPI *QueryInterface)(ITransactionOptions *This,REFIID riid,void **ppvObject);
    322       ULONG (WINAPI *AddRef)(ITransactionOptions *This);
    323       ULONG (WINAPI *Release)(ITransactionOptions *This);
    324       HRESULT (WINAPI *SetOptions)(ITransactionOptions *This,XACTOPT *pOptions);
    325       HRESULT (WINAPI *GetOptions)(ITransactionOptions *This,XACTOPT *pOptions);
    326     END_INTERFACE
    327   } ITransactionOptionsVtbl;
    328   struct ITransactionOptions {
    329     CONST_VTBL struct ITransactionOptionsVtbl *lpVtbl;
    330   };
    331 #ifdef COBJMACROS
    332 #define ITransactionOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    333 #define ITransactionOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
    334 #define ITransactionOptions_Release(This) (This)->lpVtbl->Release(This)
    335 #define ITransactionOptions_SetOptions(This,pOptions) (This)->lpVtbl->SetOptions(This,pOptions)
    336 #define ITransactionOptions_GetOptions(This,pOptions) (This)->lpVtbl->GetOptions(This,pOptions)
    337 #endif
    338 #endif
    339   HRESULT WINAPI ITransactionOptions_SetOptions_Proxy(ITransactionOptions *This,XACTOPT *pOptions);
    340   void __RPC_STUB ITransactionOptions_SetOptions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    341   HRESULT WINAPI ITransactionOptions_GetOptions_Proxy(ITransactionOptions *This,XACTOPT *pOptions);
    342   void __RPC_STUB ITransactionOptions_GetOptions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    343 #endif
    344 
    345 #ifndef __ITransactionOutcomeEvents_INTERFACE_DEFINED__
    346 #define __ITransactionOutcomeEvents_INTERFACE_DEFINED__
    347   EXTERN_C const IID IID_ITransactionOutcomeEvents;
    348 #if defined(__cplusplus) && !defined(CINTERFACE)
    349   struct ITransactionOutcomeEvents : public IUnknown {
    350   public:
    351     virtual HRESULT WINAPI Committed(WINBOOL fRetaining,XACTUOW *pNewUOW,HRESULT hr) = 0;
    352     virtual HRESULT WINAPI Aborted(BOID *pboidReason,WINBOOL fRetaining,XACTUOW *pNewUOW,HRESULT hr) = 0;
    353     virtual HRESULT WINAPI HeuristicDecision(DWORD dwDecision,BOID *pboidReason,HRESULT hr) = 0;
    354     virtual HRESULT WINAPI Indoubt(void) = 0;
    355   };
    356 #else
    357   typedef struct ITransactionOutcomeEventsVtbl {
    358     BEGIN_INTERFACE
    359       HRESULT (WINAPI *QueryInterface)(ITransactionOutcomeEvents *This,REFIID riid,void **ppvObject);
    360       ULONG (WINAPI *AddRef)(ITransactionOutcomeEvents *This);
    361       ULONG (WINAPI *Release)(ITransactionOutcomeEvents *This);
    362       HRESULT (WINAPI *Committed)(ITransactionOutcomeEvents *This,WINBOOL fRetaining,XACTUOW *pNewUOW,HRESULT hr);
    363       HRESULT (WINAPI *Aborted)(ITransactionOutcomeEvents *This,BOID *pboidReason,WINBOOL fRetaining,XACTUOW *pNewUOW,HRESULT hr);
    364       HRESULT (WINAPI *HeuristicDecision)(ITransactionOutcomeEvents *This,DWORD dwDecision,BOID *pboidReason,HRESULT hr);
    365       HRESULT (WINAPI *Indoubt)(ITransactionOutcomeEvents *This);
    366     END_INTERFACE
    367   } ITransactionOutcomeEventsVtbl;
    368   struct ITransactionOutcomeEvents {
    369     CONST_VTBL struct ITransactionOutcomeEventsVtbl *lpVtbl;
    370   };
    371 #ifdef COBJMACROS
    372 #define ITransactionOutcomeEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    373 #define ITransactionOutcomeEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
    374 #define ITransactionOutcomeEvents_Release(This) (This)->lpVtbl->Release(This)
    375 #define ITransactionOutcomeEvents_Committed(This,fRetaining,pNewUOW,hr) (This)->lpVtbl->Committed(This,fRetaining,pNewUOW,hr)
    376 #define ITransactionOutcomeEvents_Aborted(This,pboidReason,fRetaining,pNewUOW,hr) (This)->lpVtbl->Aborted(This,pboidReason,fRetaining,pNewUOW,hr)
    377 #define ITransactionOutcomeEvents_HeuristicDecision(This,dwDecision,pboidReason,hr) (This)->lpVtbl->HeuristicDecision(This,dwDecision,pboidReason,hr)
    378 #define ITransactionOutcomeEvents_Indoubt(This) (This)->lpVtbl->Indoubt(This)
    379 #endif
    380 #endif
    381   HRESULT WINAPI ITransactionOutcomeEvents_Committed_Proxy(ITransactionOutcomeEvents *This,WINBOOL fRetaining,XACTUOW *pNewUOW,HRESULT hr);
    382   void __RPC_STUB ITransactionOutcomeEvents_Committed_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    383   HRESULT WINAPI ITransactionOutcomeEvents_Aborted_Proxy(ITransactionOutcomeEvents *This,BOID *pboidReason,WINBOOL fRetaining,XACTUOW *pNewUOW,HRESULT hr);
    384   void __RPC_STUB ITransactionOutcomeEvents_Aborted_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    385   HRESULT WINAPI ITransactionOutcomeEvents_HeuristicDecision_Proxy(ITransactionOutcomeEvents *This,DWORD dwDecision,BOID *pboidReason,HRESULT hr);
    386   void __RPC_STUB ITransactionOutcomeEvents_HeuristicDecision_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    387   HRESULT WINAPI ITransactionOutcomeEvents_Indoubt_Proxy(ITransactionOutcomeEvents *This);
    388   void __RPC_STUB ITransactionOutcomeEvents_Indoubt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    389 #endif
    390 
    391 #ifndef __ITmNodeName_INTERFACE_DEFINED__
    392 #define __ITmNodeName_INTERFACE_DEFINED__
    393   EXTERN_C const IID IID_ITmNodeName;
    394 #if defined(__cplusplus) && !defined(CINTERFACE)
    395   struct ITmNodeName : public IUnknown {
    396   public:
    397     virtual HRESULT WINAPI GetNodeNameSize(ULONG *pcbNodeNameSize) = 0;
    398     virtual HRESULT WINAPI GetNodeName(ULONG cbNodeNameBufferSize,LPWSTR pNodeNameBuffer) = 0;
    399   };
    400 #else
    401   typedef struct ITmNodeNameVtbl {
    402     BEGIN_INTERFACE
    403       HRESULT (WINAPI *QueryInterface)(ITmNodeName *This,REFIID riid,void **ppvObject);
    404       ULONG (WINAPI *AddRef)(ITmNodeName *This);
    405       ULONG (WINAPI *Release)(ITmNodeName *This);
    406       HRESULT (WINAPI *GetNodeNameSize)(ITmNodeName *This,ULONG *pcbNodeNameSize);
    407       HRESULT (WINAPI *GetNodeName)(ITmNodeName *This,ULONG cbNodeNameBufferSize,LPWSTR pNodeNameBuffer);
    408     END_INTERFACE
    409   } ITmNodeNameVtbl;
    410   struct ITmNodeName {
    411     CONST_VTBL struct ITmNodeNameVtbl *lpVtbl;
    412   };
    413 #ifdef COBJMACROS
    414 #define ITmNodeName_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    415 #define ITmNodeName_AddRef(This) (This)->lpVtbl->AddRef(This)
    416 #define ITmNodeName_Release(This) (This)->lpVtbl->Release(This)
    417 #define ITmNodeName_GetNodeNameSize(This,pcbNodeNameSize) (This)->lpVtbl->GetNodeNameSize(This,pcbNodeNameSize)
    418 #define ITmNodeName_GetNodeName(This,cbNodeNameBufferSize,pNodeNameBuffer) (This)->lpVtbl->GetNodeName(This,cbNodeNameBufferSize,pNodeNameBuffer)
    419 #endif
    420 #endif
    421   HRESULT WINAPI ITmNodeName_GetNodeNameSize_Proxy(ITmNodeName *This,ULONG *pcbNodeNameSize);
    422   void __RPC_STUB ITmNodeName_GetNodeNameSize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    423   HRESULT WINAPI ITmNodeName_GetNodeName_Proxy(ITmNodeName *This,ULONG cbNodeNameBufferSize,LPWSTR pNodeNameBuffer);
    424   void __RPC_STUB ITmNodeName_GetNodeName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    425 #endif
    426 
    427   DEFINE_GUID(IID_ITransaction,0x0fb15084,0xaf41,0x11ce,0xbd,0x2b,0x20,0x4c,0x4f,0x4f,0x50,0x20);
    428   DEFINE_GUID(IID_ITransactionCloner,0x02656950,0x2152,0x11d0,0x94,0x4C,0x00,0xA0,0xC9,0x05,0x41,0x6E);
    429   DEFINE_GUID(IID_ITransaction2,0x34021548,0x0065,0x11d3,0xba,0xc1,0x00,0xc0,0x4f,0x79,0x7b,0xe2);
    430   DEFINE_GUID(IID_ITransactionDispenser,0x3A6AD9E1,0x23B9,0x11cf,0xAD,0x60,0x00,0xAA,0x00,0xA7,0x4C,0xCD);
    431   DEFINE_GUID(IID_ITransactionOptions,0x3A6AD9E0,0x23B9,0x11cf,0xAD,0x60,0x00,0xAA,0x00,0xA7,0x4C,0xCD);
    432   DEFINE_GUID(IID_ITransactionOutcomeEvents,0x3A6AD9E2,0x23B9,0x11cf,0xAD,0x60,0x00,0xAA,0x00,0xA7,0x4C,0xCD);
    433   DEFINE_GUID(IID_ITmNodeName,0x30274F88,0x6EE4,0x474e,0x9B,0x95,0x78,0x07,0xBC,0x9E,0xF8,0xCF);
    434 
    435   extern RPC_IF_HANDLE __MIDL_itf_transact_0016_v0_0_c_ifspec;
    436   extern RPC_IF_HANDLE __MIDL_itf_transact_0016_v0_0_s_ifspec;
    437 
    438 #ifdef __cplusplus
    439 }
    440 #endif
    441 #endif
    442