transact.h 23 KB

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