Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1106 lines
33 KiB

  1. //.-------------------------------------------------------------------------
  2. //.
  3. //. Microsoft Windows
  4. //. Copyright (C) Microsoft Corporation, 1995.
  5. //.
  6. //. File: transact.idl
  7. //.
  8. //. Contents: The basic transaction interfaces and types.
  9. //.
  10. //.--------------------------------------------------------------------------
  11. /* File created by MIDL compiler version 2.00.0102 */
  12. /* at Tue Nov 21 16:54:32 1995
  13. */
  14. //@@MIDL_FILE_HEADING( )
  15. #include "rpc.h"
  16. #include "rpcndr.h"
  17. #ifndef COM_NO_WINDOWS_H
  18. #include "windows.h"
  19. #include "ole2.h"
  20. #endif /*COM_NO_WINDOWS_H*/
  21. #ifndef __transact_h__
  22. #define __transact_h__
  23. #ifdef __cplusplus
  24. extern "C"{
  25. #endif
  26. /* Forward Declarations */
  27. #ifndef __ITransaction_FWD_DEFINED__
  28. #define __ITransaction_FWD_DEFINED__
  29. typedef interface ITransaction ITransaction;
  30. #endif /* __ITransaction_FWD_DEFINED__ */
  31. #ifndef __ITransactionDispenser_FWD_DEFINED__
  32. #define __ITransactionDispenser_FWD_DEFINED__
  33. typedef interface ITransactionDispenser ITransactionDispenser;
  34. #endif /* __ITransactionDispenser_FWD_DEFINED__ */
  35. #ifndef __ITransactionOptions_FWD_DEFINED__
  36. #define __ITransactionOptions_FWD_DEFINED__
  37. typedef interface ITransactionOptions ITransactionOptions;
  38. #endif /* __ITransactionOptions_FWD_DEFINED__ */
  39. #ifndef __ITransactionOutcomeEvents_FWD_DEFINED__
  40. #define __ITransactionOutcomeEvents_FWD_DEFINED__
  41. typedef interface ITransactionOutcomeEvents ITransactionOutcomeEvents;
  42. #endif /* __ITransactionOutcomeEvents_FWD_DEFINED__ */
  43. #ifndef __ITransactionCompletionEvents_FWD_DEFINED__
  44. #define __ITransactionCompletionEvents_FWD_DEFINED__
  45. typedef interface ITransactionCompletionEvents ITransactionCompletionEvents;
  46. #endif /* __ITransactionCompletionEvents_FWD_DEFINED__ */
  47. /* header files for imported files */
  48. void __RPC_FAR * __RPC_USER MIDL_user_allocate(size_t);
  49. void __RPC_USER MIDL_user_free( void __RPC_FAR * );
  50. /****************************************
  51. * Generated header for interface: __MIDL__intf_0000
  52. * at Tue Nov 21 16:54:32 1995
  53. * using MIDL 2.00.0102
  54. ****************************************/
  55. /* [local] */
  56. /* size is 0 */
  57. /* size is 0 */
  58. /* size is 0 */
  59. /* size is 0 */
  60. /* size is 0 */
  61. extern RPC_IF_HANDLE __MIDL__intf_0000_v0_0_c_ifspec;
  62. extern RPC_IF_HANDLE __MIDL__intf_0000_v0_0_s_ifspec;
  63. #ifndef __BasicTransactionTypes_INTERFACE_DEFINED__
  64. #define __BasicTransactionTypes_INTERFACE_DEFINED__
  65. /****************************************
  66. * Generated header for interface: BasicTransactionTypes
  67. * at Tue Nov 21 16:54:32 1995
  68. * using MIDL 2.00.0102
  69. ****************************************/
  70. /* [unique][local] */
  71. /* size is 16 */
  72. typedef struct BOID
  73. {
  74. BYTE rgb[ 16 ];
  75. } BOID;
  76. #define BOID_NULL (*((BOID*)(&IID_NULL)))
  77. #define MAX_TRAN_DESC 40 // used by XACTOPT via midl - see transact.idl
  78. /* size is 16 */
  79. typedef BOID XACTUOW;
  80. /* size is 4 */
  81. typedef LONG ISOLEVEL;
  82. #if defined(_WIN32)
  83. /* size is 2 */
  84. typedef
  85. enum ISOLATIONLEVEL
  86. { ISOLATIONLEVEL_UNSPECIFIED = 0xffffffff,
  87. ISOLATIONLEVEL_CHAOS = 0x10,
  88. ISOLATIONLEVEL_READUNCOMMITTED = 0x100,
  89. ISOLATIONLEVEL_BROWSE = 0x100,
  90. ISOLATIONLEVEL_CURSORSTABILITY = 0x1000,
  91. ISOLATIONLEVEL_READCOMMITTED = 0x1000,
  92. ISOLATIONLEVEL_REPEATABLEREAD = 0x10000,
  93. ISOLATIONLEVEL_SERIALIZABLE = 0x100000,
  94. ISOLATIONLEVEL_ISOLATED = 0x100000
  95. } ISOLATIONLEVEL;
  96. #else
  97. #define ISOLATIONLEVEL_UNSPECIFIED 0xFFFFFFFF
  98. #define ISOLATIONLEVEL_CHAOS 0x00000010
  99. #define ISOLATIONLEVEL_READUNCOMMITTED 0x00000100
  100. #define ISOLATIONLEVEL_BROWSE 0x00000100
  101. #define ISOLATIONLEVEL_CURSORSTABILITY 0x00001000
  102. #define ISOLATIONLEVEL_READCOMMITTED 0x00001000
  103. #define ISOLATIONLEVEL_REPEATABLEREAD 0x00010000
  104. #define ISOLATIONLEVEL_SERIALIZABLE 0x00100000
  105. #define ISOLATIONLEVEL_ISOLATED 0x00100000
  106. #endif
  107. /* size is 40 */
  108. typedef struct XACTTRANSINFO
  109. {
  110. XACTUOW uow;
  111. ISOLEVEL isoLevel;
  112. ULONG isoFlags;
  113. DWORD grfTCSupported;
  114. DWORD grfRMSupported;
  115. DWORD grfTCSupportedRetaining;
  116. DWORD grfRMSupportedRetaining;
  117. } XACTTRANSINFO;
  118. /* size is 36 */
  119. typedef struct XACTSTATS
  120. {
  121. ULONG cOpen;
  122. ULONG cCommitting;
  123. ULONG cCommitted;
  124. ULONG cAborting;
  125. ULONG cAborted;
  126. ULONG cInDoubt;
  127. ULONG cHeuristicDecision;
  128. FILETIME timeTransactionsUp;
  129. } XACTSTATS;
  130. /* size is 2 */
  131. typedef
  132. enum ISOFLAG
  133. { ISOFLAG_RETAIN_COMMIT_DC = 1,
  134. ISOFLAG_RETAIN_COMMIT = 2,
  135. ISOFLAG_RETAIN_COMMIT_NO = 3,
  136. ISOFLAG_RETAIN_ABORT_DC = 4,
  137. ISOFLAG_RETAIN_ABORT = 8,
  138. ISOFLAG_RETAIN_ABORT_NO = 12,
  139. ISOFLAG_RETAIN_DONTCARE = ISOFLAG_RETAIN_COMMIT_DC | ISOFLAG_RETAIN_ABORT_DC,
  140. ISOFLAG_RETAIN_BOTH = ISOFLAG_RETAIN_COMMIT | ISOFLAG_RETAIN_ABORT,
  141. ISOFLAG_RETAIN_NONE = ISOFLAG_RETAIN_COMMIT_NO | ISOFLAG_RETAIN_ABORT_NO,
  142. ISOFLAG_OPTIMISTIC = 16
  143. } ISOFLAG;
  144. /* size is 2 */
  145. typedef
  146. enum XACTTC
  147. { XACTTC_SYNC_PHASEONE = 1,
  148. XACTTC_SYNC_PHASETWO = 2,
  149. XACTTC_SYNC = 2,
  150. XACTTC_ASYNC_PHASEONE = 4
  151. } XACTTC;
  152. /* size is 2 */
  153. typedef
  154. enum XACTRM
  155. { XACTRM_OPTIMISTICLASTWINS = 1,
  156. XACTRM_NOREADONLYPREPARES = 2
  157. } XACTRM;
  158. /* size is 2 */
  159. typedef
  160. enum XACTCONST
  161. { XACTCONST_TIMEOUTINFINITE = 0
  162. } XACTCONST;
  163. /* size is 2 */
  164. typedef
  165. enum XACTHEURISTIC
  166. { XACTHEURISTIC_ABORT = 1,
  167. XACTHEURISTIC_COMMIT = 2,
  168. XACTHEURISTIC_DAMAGE = 3,
  169. XACTHEURISTIC_DANGER = 4
  170. } XACTHEURISTIC;
  171. #if defined(_WIN32)
  172. /* size is 2 */
  173. typedef
  174. enum XACTSTAT
  175. { XACTSTAT_NONE = 0,
  176. XACTSTAT_OPENNORMAL = 0x1,
  177. XACTSTAT_OPENREFUSED = 0x2,
  178. XACTSTAT_PREPARING = 0x4,
  179. XACTSTAT_PREPARED = 0x8,
  180. XACTSTAT_PREPARERETAINING = 0x10,
  181. XACTSTAT_PREPARERETAINED = 0x20,
  182. XACTSTAT_COMMITTING = 0x40,
  183. XACTSTAT_COMMITRETAINING = 0x80,
  184. XACTSTAT_ABORTING = 0x100,
  185. XACTSTAT_ABORTED = 0x200,
  186. XACTSTAT_COMMITTED = 0x400,
  187. XACTSTAT_HEURISTIC_ABORT = 0x800,
  188. XACTSTAT_HEURISTIC_COMMIT = 0x1000,
  189. XACTSTAT_HEURISTIC_DAMAGE = 0x2000,
  190. XACTSTAT_HEURISTIC_DANGER = 0x4000,
  191. XACTSTAT_FORCED_ABORT = 0x8000,
  192. XACTSTAT_FORCED_COMMIT = 0x10000,
  193. XACTSTAT_INDOUBT = 0x20000,
  194. XACTSTAT_CLOSED = 0x40000,
  195. XACTSTAT_OPEN = 0x3,
  196. XACTSTAT_NOTPREPARED = 0x7ffc3,
  197. XACTSTAT_ALL = 0x7ffff
  198. } XACTSTAT;
  199. #else
  200. #define XACTSTAT_NONE 0x00000000
  201. #define XACTSTAT_OPENNORMAL 0x00000001
  202. #define XACTSTAT_OPENREFUSED 0x00000002
  203. #define XACTSTAT_PREPARING 0x00000004
  204. #define XACTSTAT_PREPARED 0x00000008
  205. #define XACTSTAT_PREPARERETAINING 0x00000010
  206. #define XACTSTAT_PREPARERETAINED 0x00000020
  207. #define XACTSTAT_COMMITTING 0x00000040
  208. #define XACTSTAT_COMMITRETAINING 0x00000080
  209. #define XACTSTAT_ABORTING 0x00000100
  210. #define XACTSTAT_ABORTED 0x00000200
  211. #define XACTSTAT_COMMITTED 0x00000400
  212. #define XACTSTAT_HEURISTIC_ABORT 0x00000800
  213. #define XACTSTAT_HEURISTIC_COMMIT 0x00001000
  214. #define XACTSTAT_HEURISTIC_DAMAGE 0x00002000
  215. #define XACTSTAT_HEURISTIC_DANGER 0x00004000
  216. #define XACTSTAT_FORCED_ABORT 0x00008000
  217. #define XACTSTAT_FORCED_COMMIT 0x00010000
  218. #define XACTSTAT_INDOUBT 0x00020000
  219. #define XACTSTAT_CLOSED 0x00040000
  220. #define XACTSTAT_OPEN 0x00000003
  221. #define XACTSTAT_NOTPREPARED 0x0007FFC3
  222. #define XACTSTAT_ALL 0x0007FFFF
  223. #endif
  224. /* size is 44 */
  225. typedef struct XACTOPT
  226. {
  227. ULONG ulTimeout;
  228. unsigned char szDescription[ 40 ];
  229. } XACTOPT;
  230. extern RPC_IF_HANDLE BasicTransactionTypes_v0_0_c_ifspec;
  231. extern RPC_IF_HANDLE BasicTransactionTypes_v0_0_s_ifspec;
  232. #endif /* __BasicTransactionTypes_INTERFACE_DEFINED__ */
  233. #ifndef __ITransaction_INTERFACE_DEFINED__
  234. #define __ITransaction_INTERFACE_DEFINED__
  235. /****************************************
  236. * Generated header for interface: ITransaction
  237. * at Tue Nov 21 16:54:32 1995
  238. * using MIDL 2.00.0102
  239. ****************************************/
  240. /* [unique][uuid][object] */
  241. EXTERN_C const IID IID_ITransaction;
  242. #if defined(__cplusplus) && !defined(CINTERFACE)
  243. interface ITransaction : public IUnknown
  244. {
  245. public:
  246. virtual HRESULT __stdcall Commit(
  247. /* [in] */ BOOL fRetaining,
  248. /* [in] */ DWORD grfTC,
  249. /* [in] */ DWORD grfRM) = 0;
  250. virtual HRESULT __stdcall Abort(
  251. /* [in] */ BOID __RPC_FAR *pboidReason,
  252. /* [in] */ BOOL fRetaining,
  253. /* [in] */ BOOL fAsync) = 0;
  254. virtual HRESULT __stdcall GetTransactionInfo(
  255. /* [out] */ XACTTRANSINFO __RPC_FAR *pinfo) = 0;
  256. };
  257. #else /* C style interface */
  258. typedef struct ITransactionVtbl
  259. {
  260. HRESULT ( __stdcall __RPC_FAR *QueryInterface )(
  261. ITransaction __RPC_FAR * This,
  262. /* [in] */ REFIID riid,
  263. /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  264. ULONG ( __stdcall __RPC_FAR *AddRef )(
  265. ITransaction __RPC_FAR * This);
  266. ULONG ( __stdcall __RPC_FAR *Release )(
  267. ITransaction __RPC_FAR * This);
  268. HRESULT ( __stdcall __RPC_FAR *Commit )(
  269. ITransaction __RPC_FAR * This,
  270. /* [in] */ BOOL fRetaining,
  271. /* [in] */ DWORD grfTC,
  272. /* [in] */ DWORD grfRM);
  273. HRESULT ( __stdcall __RPC_FAR *Abort )(
  274. ITransaction __RPC_FAR * This,
  275. /* [in] */ BOID __RPC_FAR *pboidReason,
  276. /* [in] */ BOOL fRetaining,
  277. /* [in] */ BOOL fAsync);
  278. HRESULT ( __stdcall __RPC_FAR *GetTransactionInfo )(
  279. ITransaction __RPC_FAR * This,
  280. /* [out] */ XACTTRANSINFO __RPC_FAR *pinfo);
  281. } ITransactionVtbl;
  282. interface ITransaction
  283. {
  284. CONST_VTBL struct ITransactionVtbl __RPC_FAR *lpVtbl;
  285. };
  286. #ifdef COBJMACROS
  287. #define ITransaction_QueryInterface(This,riid,ppvObject) \
  288. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  289. #define ITransaction_AddRef(This) \
  290. (This)->lpVtbl -> AddRef(This)
  291. #define ITransaction_Release(This) \
  292. (This)->lpVtbl -> Release(This)
  293. #define ITransaction_Commit(This,fRetaining,grfTC,grfRM) \
  294. (This)->lpVtbl -> Commit(This,fRetaining,grfTC,grfRM)
  295. #define ITransaction_Abort(This,pboidReason,fRetaining,fAsync) \
  296. (This)->lpVtbl -> Abort(This,pboidReason,fRetaining,fAsync)
  297. #define ITransaction_GetTransactionInfo(This,pinfo) \
  298. (This)->lpVtbl -> GetTransactionInfo(This,pinfo)
  299. #endif /* COBJMACROS */
  300. #endif /* C style interface */
  301. HRESULT __stdcall ITransaction_Commit_Proxy(
  302. ITransaction __RPC_FAR * This,
  303. /* [in] */ BOOL fRetaining,
  304. /* [in] */ DWORD grfTC,
  305. /* [in] */ DWORD grfRM);
  306. void __RPC_STUB ITransaction_Commit_Stub(
  307. IRpcStubBuffer *This,
  308. IRpcChannelBuffer *_pRpcChannelBuffer,
  309. PRPC_MESSAGE _pRpcMessage,
  310. DWORD *_pdwStubPhase);
  311. HRESULT __stdcall ITransaction_Abort_Proxy(
  312. ITransaction __RPC_FAR * This,
  313. /* [in] */ BOID __RPC_FAR *pboidReason,
  314. /* [in] */ BOOL fRetaining,
  315. /* [in] */ BOOL fAsync);
  316. void __RPC_STUB ITransaction_Abort_Stub(
  317. IRpcStubBuffer *This,
  318. IRpcChannelBuffer *_pRpcChannelBuffer,
  319. PRPC_MESSAGE _pRpcMessage,
  320. DWORD *_pdwStubPhase);
  321. HRESULT __stdcall ITransaction_GetTransactionInfo_Proxy(
  322. ITransaction __RPC_FAR * This,
  323. /* [out] */ XACTTRANSINFO __RPC_FAR *pinfo);
  324. void __RPC_STUB ITransaction_GetTransactionInfo_Stub(
  325. IRpcStubBuffer *This,
  326. IRpcChannelBuffer *_pRpcChannelBuffer,
  327. PRPC_MESSAGE _pRpcMessage,
  328. DWORD *_pdwStubPhase);
  329. #endif /* __ITransaction_INTERFACE_DEFINED__ */
  330. #ifndef __ITransactionDispenser_INTERFACE_DEFINED__
  331. #define __ITransactionDispenser_INTERFACE_DEFINED__
  332. /****************************************
  333. * Generated header for interface: ITransactionDispenser
  334. * at Tue Nov 21 16:54:32 1995
  335. * using MIDL 2.00.0102
  336. ****************************************/
  337. /* [unique][uuid][object] */
  338. EXTERN_C const IID IID_ITransactionDispenser;
  339. #if defined(__cplusplus) && !defined(CINTERFACE)
  340. interface ITransactionDispenser : public IUnknown
  341. {
  342. public:
  343. virtual HRESULT __stdcall GetOptionsObject(
  344. /* [out] */ ITransactionOptions __RPC_FAR *__RPC_FAR *ppOptions) = 0;
  345. virtual HRESULT __stdcall BeginTransaction(
  346. /* [in] */ IUnknown __RPC_FAR *punkOuter,
  347. /* [in] */ ISOLEVEL isoLevel,
  348. /* [in] */ ULONG isoFlags,
  349. /* [in] */ ITransactionOptions __RPC_FAR *pOptions,
  350. /* [out] */ ITransaction __RPC_FAR *__RPC_FAR *ppTransaction) = 0;
  351. };
  352. #else /* C style interface */
  353. typedef struct ITransactionDispenserVtbl
  354. {
  355. HRESULT ( __stdcall __RPC_FAR *QueryInterface )(
  356. ITransactionDispenser __RPC_FAR * This,
  357. /* [in] */ REFIID riid,
  358. /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  359. ULONG ( __stdcall __RPC_FAR *AddRef )(
  360. ITransactionDispenser __RPC_FAR * This);
  361. ULONG ( __stdcall __RPC_FAR *Release )(
  362. ITransactionDispenser __RPC_FAR * This);
  363. HRESULT ( __stdcall __RPC_FAR *GetOptionsObject )(
  364. ITransactionDispenser __RPC_FAR * This,
  365. /* [out] */ ITransactionOptions __RPC_FAR *__RPC_FAR *ppOptions);
  366. HRESULT ( __stdcall __RPC_FAR *BeginTransaction )(
  367. ITransactionDispenser __RPC_FAR * This,
  368. /* [in] */ IUnknown __RPC_FAR *punkOuter,
  369. /* [in] */ ISOLEVEL isoLevel,
  370. /* [in] */ ULONG isoFlags,
  371. /* [in] */ ITransactionOptions __RPC_FAR *pOptions,
  372. /* [out] */ ITransaction __RPC_FAR *__RPC_FAR *ppTransaction);
  373. } ITransactionDispenserVtbl;
  374. interface ITransactionDispenser
  375. {
  376. CONST_VTBL struct ITransactionDispenserVtbl __RPC_FAR *lpVtbl;
  377. };
  378. #ifdef COBJMACROS
  379. #define ITransactionDispenser_QueryInterface(This,riid,ppvObject) \
  380. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  381. #define ITransactionDispenser_AddRef(This) \
  382. (This)->lpVtbl -> AddRef(This)
  383. #define ITransactionDispenser_Release(This) \
  384. (This)->lpVtbl -> Release(This)
  385. #define ITransactionDispenser_GetOptionsObject(This,ppOptions) \
  386. (This)->lpVtbl -> GetOptionsObject(This,ppOptions)
  387. #define ITransactionDispenser_BeginTransaction(This,punkOuter,isoLevel,isoFlags,pOptions,ppTransaction) \
  388. (This)->lpVtbl -> BeginTransaction(This,punkOuter,isoLevel,isoFlags,pOptions,ppTransaction)
  389. #endif /* COBJMACROS */
  390. #endif /* C style interface */
  391. HRESULT __stdcall ITransactionDispenser_GetOptionsObject_Proxy(
  392. ITransactionDispenser __RPC_FAR * This,
  393. /* [out] */ ITransactionOptions __RPC_FAR *__RPC_FAR *ppOptions);
  394. void __RPC_STUB ITransactionDispenser_GetOptionsObject_Stub(
  395. IRpcStubBuffer *This,
  396. IRpcChannelBuffer *_pRpcChannelBuffer,
  397. PRPC_MESSAGE _pRpcMessage,
  398. DWORD *_pdwStubPhase);
  399. HRESULT __stdcall ITransactionDispenser_BeginTransaction_Proxy(
  400. ITransactionDispenser __RPC_FAR * This,
  401. /* [in] */ IUnknown __RPC_FAR *punkOuter,
  402. /* [in] */ ISOLEVEL isoLevel,
  403. /* [in] */ ULONG isoFlags,
  404. /* [in] */ ITransactionOptions __RPC_FAR *pOptions,
  405. /* [out] */ ITransaction __RPC_FAR *__RPC_FAR *ppTransaction);
  406. void __RPC_STUB ITransactionDispenser_BeginTransaction_Stub(
  407. IRpcStubBuffer *This,
  408. IRpcChannelBuffer *_pRpcChannelBuffer,
  409. PRPC_MESSAGE _pRpcMessage,
  410. DWORD *_pdwStubPhase);
  411. #endif /* __ITransactionDispenser_INTERFACE_DEFINED__ */
  412. #ifndef __ITransactionOptions_INTERFACE_DEFINED__
  413. #define __ITransactionOptions_INTERFACE_DEFINED__
  414. /****************************************
  415. * Generated header for interface: ITransactionOptions
  416. * at Tue Nov 21 16:54:32 1995
  417. * using MIDL 2.00.0102
  418. ****************************************/
  419. /* [unique][uuid][object] */
  420. EXTERN_C const IID IID_ITransactionOptions;
  421. #if defined(__cplusplus) && !defined(CINTERFACE)
  422. interface ITransactionOptions : public IUnknown
  423. {
  424. public:
  425. virtual HRESULT __stdcall SetOptions(
  426. /* [in] */ XACTOPT __RPC_FAR *pOptions) = 0;
  427. virtual HRESULT __stdcall GetOptions(
  428. /* [out][in] */ XACTOPT __RPC_FAR *pOptions) = 0;
  429. };
  430. #else /* C style interface */
  431. typedef struct ITransactionOptionsVtbl
  432. {
  433. HRESULT ( __stdcall __RPC_FAR *QueryInterface )(
  434. ITransactionOptions __RPC_FAR * This,
  435. /* [in] */ REFIID riid,
  436. /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  437. ULONG ( __stdcall __RPC_FAR *AddRef )(
  438. ITransactionOptions __RPC_FAR * This);
  439. ULONG ( __stdcall __RPC_FAR *Release )(
  440. ITransactionOptions __RPC_FAR * This);
  441. HRESULT ( __stdcall __RPC_FAR *SetOptions )(
  442. ITransactionOptions __RPC_FAR * This,
  443. /* [in] */ XACTOPT __RPC_FAR *pOptions);
  444. HRESULT ( __stdcall __RPC_FAR *GetOptions )(
  445. ITransactionOptions __RPC_FAR * This,
  446. /* [out][in] */ XACTOPT __RPC_FAR *pOptions);
  447. } ITransactionOptionsVtbl;
  448. interface ITransactionOptions
  449. {
  450. CONST_VTBL struct ITransactionOptionsVtbl __RPC_FAR *lpVtbl;
  451. };
  452. #ifdef COBJMACROS
  453. #define ITransactionOptions_QueryInterface(This,riid,ppvObject) \
  454. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  455. #define ITransactionOptions_AddRef(This) \
  456. (This)->lpVtbl -> AddRef(This)
  457. #define ITransactionOptions_Release(This) \
  458. (This)->lpVtbl -> Release(This)
  459. #define ITransactionOptions_SetOptions(This,pOptions) \
  460. (This)->lpVtbl -> SetOptions(This,pOptions)
  461. #define ITransactionOptions_GetOptions(This,pOptions) \
  462. (This)->lpVtbl -> GetOptions(This,pOptions)
  463. #endif /* COBJMACROS */
  464. #endif /* C style interface */
  465. HRESULT __stdcall ITransactionOptions_SetOptions_Proxy(
  466. ITransactionOptions __RPC_FAR * This,
  467. /* [in] */ XACTOPT __RPC_FAR *pOptions);
  468. void __RPC_STUB ITransactionOptions_SetOptions_Stub(
  469. IRpcStubBuffer *This,
  470. IRpcChannelBuffer *_pRpcChannelBuffer,
  471. PRPC_MESSAGE _pRpcMessage,
  472. DWORD *_pdwStubPhase);
  473. HRESULT __stdcall ITransactionOptions_GetOptions_Proxy(
  474. ITransactionOptions __RPC_FAR * This,
  475. /* [out][in] */ XACTOPT __RPC_FAR *pOptions);
  476. void __RPC_STUB ITransactionOptions_GetOptions_Stub(
  477. IRpcStubBuffer *This,
  478. IRpcChannelBuffer *_pRpcChannelBuffer,
  479. PRPC_MESSAGE _pRpcMessage,
  480. DWORD *_pdwStubPhase);
  481. #endif /* __ITransactionOptions_INTERFACE_DEFINED__ */
  482. #ifndef __ITransactionOutcomeEvents_INTERFACE_DEFINED__
  483. #define __ITransactionOutcomeEvents_INTERFACE_DEFINED__
  484. /****************************************
  485. * Generated header for interface: ITransactionOutcomeEvents
  486. * at Tue Nov 21 16:54:32 1995
  487. * using MIDL 2.00.0102
  488. ****************************************/
  489. /* [unique][uuid][object] */
  490. EXTERN_C const IID IID_ITransactionOutcomeEvents;
  491. #if defined(__cplusplus) && !defined(CINTERFACE)
  492. interface ITransactionOutcomeEvents : public IUnknown
  493. {
  494. public:
  495. virtual HRESULT __stdcall Committed(
  496. /* [in] */ BOOL fRetaining,
  497. /* [in] */ XACTUOW __RPC_FAR *pNewUOW,
  498. /* [in] */ HRESULT hr) = 0;
  499. virtual HRESULT __stdcall Aborted(
  500. /* [in] */ BOID __RPC_FAR *pboidReason,
  501. /* [in] */ BOOL fRetaining,
  502. /* [in] */ XACTUOW __RPC_FAR *pNewUOW,
  503. /* [in] */ HRESULT hr) = 0;
  504. virtual HRESULT __stdcall HeuristicDecision(
  505. /* [in] */ DWORD dwDecision,
  506. /* [in] */ BOID __RPC_FAR *pboidReason,
  507. /* [in] */ HRESULT hr) = 0;
  508. virtual HRESULT __stdcall Indoubt( void) = 0;
  509. };
  510. #else /* C style interface */
  511. typedef struct ITransactionOutcomeEventsVtbl
  512. {
  513. HRESULT ( __stdcall __RPC_FAR *QueryInterface )(
  514. ITransactionOutcomeEvents __RPC_FAR * This,
  515. /* [in] */ REFIID riid,
  516. /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  517. ULONG ( __stdcall __RPC_FAR *AddRef )(
  518. ITransactionOutcomeEvents __RPC_FAR * This);
  519. ULONG ( __stdcall __RPC_FAR *Release )(
  520. ITransactionOutcomeEvents __RPC_FAR * This);
  521. HRESULT ( __stdcall __RPC_FAR *Committed )(
  522. ITransactionOutcomeEvents __RPC_FAR * This,
  523. /* [in] */ BOOL fRetaining,
  524. /* [in] */ XACTUOW __RPC_FAR *pNewUOW,
  525. /* [in] */ HRESULT hr);
  526. HRESULT ( __stdcall __RPC_FAR *Aborted )(
  527. ITransactionOutcomeEvents __RPC_FAR * This,
  528. /* [in] */ BOID __RPC_FAR *pboidReason,
  529. /* [in] */ BOOL fRetaining,
  530. /* [in] */ XACTUOW __RPC_FAR *pNewUOW,
  531. /* [in] */ HRESULT hr);
  532. HRESULT ( __stdcall __RPC_FAR *HeuristicDecision )(
  533. ITransactionOutcomeEvents __RPC_FAR * This,
  534. /* [in] */ DWORD dwDecision,
  535. /* [in] */ BOID __RPC_FAR *pboidReason,
  536. /* [in] */ HRESULT hr);
  537. HRESULT ( __stdcall __RPC_FAR *Indoubt )(
  538. ITransactionOutcomeEvents __RPC_FAR * This);
  539. } ITransactionOutcomeEventsVtbl;
  540. interface ITransactionOutcomeEvents
  541. {
  542. CONST_VTBL struct ITransactionOutcomeEventsVtbl __RPC_FAR *lpVtbl;
  543. };
  544. #ifdef COBJMACROS
  545. #define ITransactionOutcomeEvents_QueryInterface(This,riid,ppvObject) \
  546. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  547. #define ITransactionOutcomeEvents_AddRef(This) \
  548. (This)->lpVtbl -> AddRef(This)
  549. #define ITransactionOutcomeEvents_Release(This) \
  550. (This)->lpVtbl -> Release(This)
  551. #define ITransactionOutcomeEvents_Committed(This,fRetaining,pNewUOW,hr) \
  552. (This)->lpVtbl -> Committed(This,fRetaining,pNewUOW,hr)
  553. #define ITransactionOutcomeEvents_Aborted(This,pboidReason,fRetaining,pNewUOW,hr) \
  554. (This)->lpVtbl -> Aborted(This,pboidReason,fRetaining,pNewUOW,hr)
  555. #define ITransactionOutcomeEvents_HeuristicDecision(This,dwDecision,pboidReason,hr) \
  556. (This)->lpVtbl -> HeuristicDecision(This,dwDecision,pboidReason,hr)
  557. #define ITransactionOutcomeEvents_Indoubt(This) \
  558. (This)->lpVtbl -> Indoubt(This)
  559. #endif /* COBJMACROS */
  560. #endif /* C style interface */
  561. HRESULT __stdcall ITransactionOutcomeEvents_Committed_Proxy(
  562. ITransactionOutcomeEvents __RPC_FAR * This,
  563. /* [in] */ BOOL fRetaining,
  564. /* [in] */ XACTUOW __RPC_FAR *pNewUOW,
  565. /* [in] */ HRESULT hr);
  566. void __RPC_STUB ITransactionOutcomeEvents_Committed_Stub(
  567. IRpcStubBuffer *This,
  568. IRpcChannelBuffer *_pRpcChannelBuffer,
  569. PRPC_MESSAGE _pRpcMessage,
  570. DWORD *_pdwStubPhase);
  571. HRESULT __stdcall ITransactionOutcomeEvents_Aborted_Proxy(
  572. ITransactionOutcomeEvents __RPC_FAR * This,
  573. /* [in] */ BOID __RPC_FAR *pboidReason,
  574. /* [in] */ BOOL fRetaining,
  575. /* [in] */ XACTUOW __RPC_FAR *pNewUOW,
  576. /* [in] */ HRESULT hr);
  577. void __RPC_STUB ITransactionOutcomeEvents_Aborted_Stub(
  578. IRpcStubBuffer *This,
  579. IRpcChannelBuffer *_pRpcChannelBuffer,
  580. PRPC_MESSAGE _pRpcMessage,
  581. DWORD *_pdwStubPhase);
  582. HRESULT __stdcall ITransactionOutcomeEvents_HeuristicDecision_Proxy(
  583. ITransactionOutcomeEvents __RPC_FAR * This,
  584. /* [in] */ DWORD dwDecision,
  585. /* [in] */ BOID __RPC_FAR *pboidReason,
  586. /* [in] */ HRESULT hr);
  587. void __RPC_STUB ITransactionOutcomeEvents_HeuristicDecision_Stub(
  588. IRpcStubBuffer *This,
  589. IRpcChannelBuffer *_pRpcChannelBuffer,
  590. PRPC_MESSAGE _pRpcMessage,
  591. DWORD *_pdwStubPhase);
  592. HRESULT __stdcall ITransactionOutcomeEvents_Indoubt_Proxy(
  593. ITransactionOutcomeEvents __RPC_FAR * This);
  594. void __RPC_STUB ITransactionOutcomeEvents_Indoubt_Stub(
  595. IRpcStubBuffer *This,
  596. IRpcChannelBuffer *_pRpcChannelBuffer,
  597. PRPC_MESSAGE _pRpcMessage,
  598. DWORD *_pdwStubPhase);
  599. #endif /* __ITransactionOutcomeEvents_INTERFACE_DEFINED__ */
  600. #ifndef __ITransactionCompletionEvents_INTERFACE_DEFINED__
  601. #define __ITransactionCompletionEvents_INTERFACE_DEFINED__
  602. /****************************************
  603. * Generated header for interface: ITransactionCompletionEvents
  604. * at Tue Nov 21 16:54:32 1995
  605. * using MIDL 2.00.0102
  606. ****************************************/
  607. /* [unique][uuid][object] */
  608. EXTERN_C const IID IID_ITransactionCompletionEvents;
  609. #if defined(__cplusplus) && !defined(CINTERFACE)
  610. interface ITransactionCompletionEvents : public IUnknown
  611. {
  612. public:
  613. virtual HRESULT __stdcall Committed(
  614. /* [in] */ BOOL fRetaining,
  615. /* [in] */ XACTUOW __RPC_FAR *pNewUOW,
  616. /* [in] */ HRESULT hr) = 0;
  617. virtual HRESULT __stdcall Aborted(
  618. /* [in] */ BOID __RPC_FAR *pboidReason,
  619. /* [in] */ BOOL fRetaining,
  620. /* [in] */ XACTUOW __RPC_FAR *pNewUOW,
  621. /* [in] */ HRESULT hr) = 0;
  622. virtual HRESULT __stdcall HeuristicDecision(
  623. /* [in] */ DWORD dwDecision,
  624. /* [in] */ BOID __RPC_FAR *pboidReason,
  625. /* [in] */ HRESULT hr) = 0;
  626. virtual HRESULT __stdcall Indoubt( void) = 0;
  627. };
  628. #else /* C style interface */
  629. typedef struct ITransactionCompletionEventsVtbl
  630. {
  631. HRESULT ( __stdcall __RPC_FAR *QueryInterface )(
  632. ITransactionCompletionEvents __RPC_FAR * This,
  633. /* [in] */ REFIID riid,
  634. /* [out] */ void __RPC_FAR *__RPC_FAR *ppvObject);
  635. ULONG ( __stdcall __RPC_FAR *AddRef )(
  636. ITransactionCompletionEvents __RPC_FAR * This);
  637. ULONG ( __stdcall __RPC_FAR *Release )(
  638. ITransactionCompletionEvents __RPC_FAR * This);
  639. HRESULT ( __stdcall __RPC_FAR *Committed )(
  640. ITransactionCompletionEvents __RPC_FAR * This,
  641. /* [in] */ BOOL fRetaining,
  642. /* [in] */ XACTUOW __RPC_FAR *pNewUOW,
  643. /* [in] */ HRESULT hr);
  644. HRESULT ( __stdcall __RPC_FAR *Aborted )(
  645. ITransactionCompletionEvents __RPC_FAR * This,
  646. /* [in] */ BOID __RPC_FAR *pboidReason,
  647. /* [in] */ BOOL fRetaining,
  648. /* [in] */ XACTUOW __RPC_FAR *pNewUOW,
  649. /* [in] */ HRESULT hr);
  650. HRESULT ( __stdcall __RPC_FAR *HeuristicDecision )(
  651. ITransactionCompletionEvents __RPC_FAR * This,
  652. /* [in] */ DWORD dwDecision,
  653. /* [in] */ BOID __RPC_FAR *pboidReason,
  654. /* [in] */ HRESULT hr);
  655. HRESULT ( __stdcall __RPC_FAR *Indoubt )(
  656. ITransactionCompletionEvents __RPC_FAR * This);
  657. } ITransactionCompletionEventsVtbl;
  658. interface ITransactionCompletionEvents
  659. {
  660. CONST_VTBL struct ITransactionCompletionEventsVtbl __RPC_FAR *lpVtbl;
  661. };
  662. #ifdef COBJMACROS
  663. #define ITransactionCompletionEvents_QueryInterface(This,riid,ppvObject) \
  664. (This)->lpVtbl -> QueryInterface(This,riid,ppvObject)
  665. #define ITransactionCompletionEvents_AddRef(This) \
  666. (This)->lpVtbl -> AddRef(This)
  667. #define ITransactionCompletionEvents_Release(This) \
  668. (This)->lpVtbl -> Release(This)
  669. #define ITransactionCompletionEvents_Committed(This,fRetaining,pNewUOW,hr) \
  670. (This)->lpVtbl -> Committed(This,fRetaining,pNewUOW,hr)
  671. #define ITransactionCompletionEvents_Aborted(This,pboidReason,fRetaining,pNewUOW,hr) \
  672. (This)->lpVtbl -> Aborted(This,pboidReason,fRetaining,pNewUOW,hr)
  673. #define ITransactionCompletionEvents_HeuristicDecision(This,dwDecision,pboidReason,hr) \
  674. (This)->lpVtbl -> HeuristicDecision(This,dwDecision,pboidReason,hr)
  675. #define ITransactionCompletionEvents_Indoubt(This) \
  676. (This)->lpVtbl -> Indoubt(This)
  677. #endif /* COBJMACROS */
  678. #endif /* C style interface */
  679. HRESULT __stdcall ITransactionCompletionEvents_Committed_Proxy(
  680. ITransactionCompletionEvents __RPC_FAR * This,
  681. /* [in] */ BOOL fRetaining,
  682. /* [in] */ XACTUOW __RPC_FAR *pNewUOW,
  683. /* [in] */ HRESULT hr);
  684. void __RPC_STUB ITransactionCompletionEvents_Committed_Stub(
  685. IRpcStubBuffer *This,
  686. IRpcChannelBuffer *_pRpcChannelBuffer,
  687. PRPC_MESSAGE _pRpcMessage,
  688. DWORD *_pdwStubPhase);
  689. HRESULT __stdcall ITransactionCompletionEvents_Aborted_Proxy(
  690. ITransactionCompletionEvents __RPC_FAR * This,
  691. /* [in] */ BOID __RPC_FAR *pboidReason,
  692. /* [in] */ BOOL fRetaining,
  693. /* [in] */ XACTUOW __RPC_FAR *pNewUOW,
  694. /* [in] */ HRESULT hr);
  695. void __RPC_STUB ITransactionCompletionEvents_Aborted_Stub(
  696. IRpcStubBuffer *This,
  697. IRpcChannelBuffer *_pRpcChannelBuffer,
  698. PRPC_MESSAGE _pRpcMessage,
  699. DWORD *_pdwStubPhase);
  700. HRESULT __stdcall ITransactionCompletionEvents_HeuristicDecision_Proxy(
  701. ITransactionCompletionEvents __RPC_FAR * This,
  702. /* [in] */ DWORD dwDecision,
  703. /* [in] */ BOID __RPC_FAR *pboidReason,
  704. /* [in] */ HRESULT hr);
  705. void __RPC_STUB ITransactionCompletionEvents_HeuristicDecision_Stub(
  706. IRpcStubBuffer *This,
  707. IRpcChannelBuffer *_pRpcChannelBuffer,
  708. PRPC_MESSAGE _pRpcMessage,
  709. DWORD *_pdwStubPhase);
  710. HRESULT __stdcall ITransactionCompletionEvents_Indoubt_Proxy(
  711. ITransactionCompletionEvents __RPC_FAR * This);
  712. void __RPC_STUB ITransactionCompletionEvents_Indoubt_Stub(
  713. IRpcStubBuffer *This,
  714. IRpcChannelBuffer *_pRpcChannelBuffer,
  715. PRPC_MESSAGE _pRpcMessage,
  716. DWORD *_pdwStubPhase);
  717. #endif /* __ITransactionCompletionEvents_INTERFACE_DEFINED__ */
  718. /****************************************
  719. * Generated header for interface: __MIDL__intf_0011
  720. * at Tue Nov 21 16:54:32 1995
  721. * using MIDL 2.00.0102
  722. ****************************************/
  723. /* [local] */
  724. #define XACT_E_FIRST 0x8004D000
  725. #define XACT_E_LAST 0x8004D01E
  726. #define XACT_S_FIRST 0x0004D000
  727. #define XACT_S_LAST 0x0004D009
  728. #define XACT_E_ABORTED 0x8004D019
  729. #define XACT_E_ALREADYOTHERSINGLEPHASE 0x8004D000
  730. #define XACT_E_ALREADYINPROGRESS 0x8004D018
  731. #define XACT_E_CANTRETAIN 0x8004D001
  732. #define XACT_E_COMMITFAILED 0x8004D002
  733. #define XACT_E_COMMITPREVENTED 0x8004D003
  734. #define XACT_E_CONNECTION_DENIED 0x8004D01D
  735. #define XACT_E_CONNECTION_DOWN 0x8004D01C
  736. #define XACT_E_HEURISTICABORT 0x8004D004
  737. #define XACT_E_HEURISTICCOMMIT 0x8004D005
  738. #define XACT_E_HEURISTICDAMAGE 0x8004D006
  739. #define XACT_E_HEURISTICDANGER 0x8004D007
  740. #define XACT_E_INDOUBT 0x8004D016
  741. #define XACT_E_INVALIDCOOKIE 0x8004D015
  742. #define XACT_E_ISOLATIONLEVEL 0x8004D008
  743. #define XACT_E_LOGFULL 0x8004D01A
  744. #define XACT_E_NOASYNC 0x8004D009
  745. #define XACT_E_NOENLIST 0x8004D00A
  746. #define XACT_E_NOIMPORTOBJECT 0x8004D014
  747. #define XACT_E_NOISORETAIN 0x8004D00B
  748. #define XACT_E_NORESOURCE 0x8004D00C
  749. #define XACT_E_NOTCURRENT 0x8004D00D
  750. #define XACT_E_NOTIMEOUT 0x8004D017
  751. #define XACT_E_NOTRANSACTION 0x8004D00E
  752. #define XACT_E_NOTSUPPORTED 0x8004D00F
  753. #define XACT_E_REENLISTTIMEOUT 0x8004D01E
  754. #define XACT_E_TMNOTAVAILABLE 0x8004D01B
  755. #define XACT_E_UNKNOWNRMGRID 0x8004D010
  756. #define XACT_E_WRONGSTATE 0x8004D011
  757. #define XACT_E_WRONGUOW 0x8004D012
  758. #define XACT_E_XTIONEXISTS 0x8004D013
  759. #define XACT_S_ABORTING 0x0004D008
  760. #define XACT_S_ALLNORETAIN 0x0004D007
  761. #define XACT_S_ASYNC 0x0004D000
  762. #define XACT_S_DEFECT 0x0004D001
  763. #define XACT_S_OKINFORM 0x0004D004
  764. #define XACT_S_MADECHANGESCONTENT 0x0004D005
  765. #define XACT_S_MADECHANGESINFORM 0x0004D006
  766. #define XACT_S_READONLY 0x0004D002
  767. #define XACT_S_SINGLEPHASE 0x0004D009
  768. #define XACT_S_SOMENORETAIN 0x0004D003
  769. extern RPC_IF_HANDLE __MIDL__intf_0011_v0_0_c_ifspec;
  770. extern RPC_IF_HANDLE __MIDL__intf_0011_v0_0_s_ifspec;
  771. /* Additional Prototypes for ALL interfaces */
  772. /* end of Additional Prototypes */
  773. #ifdef __cplusplus
  774. }
  775. #endif
  776. #endif
  777. ///////////////////////////////////////////////////////////////////////
  778. //
  779. // IID definitions for interfaces defined in this header file
  780. //
  781. #if !defined(_transact_iid_) && defined(INITGUID)
  782. #define _transact_iid_
  783. const IID IID_ITransaction = {0x0fb15084,0xaf41,0x11ce,{0xbd,0x2b,0x20,0x4c,0x4f,0x4f,0x50,0x20}};
  784. const IID IID_ITransactionDispenser = {0x3A6AD9E1,0x23B9,0x11cf,{0xAD,0x60,0x00,0xAA,0x00,0xA7,0x4C,0xCD}};
  785. const IID IID_ITransactionOptions = {0x3A6AD9E0,0x23B9,0x11cf,{0xAD,0x60,0x00,0xAA,0x00,0xA7,0x4C,0xCD}};
  786. const IID IID_ITransactionOutcomeEvents = {0x3A6AD9E2,0x23B9,0x11cf,{0xAD,0x60,0x00,0xAA,0x00,0xA7,0x4C,0xCD}};
  787. const IID IID_ITransactionCompletionEvents = {0xB38D5220,0x23CE,0x11cf,{0xAD,0x60,0x00,0xAA,0x00,0xA7,0x4C,0xCD}};
  788. #endif
  789. ///////////////////////////////////////////////////////////////////////