ucrtbase: Hook up _seh_filter_exe and _seh_filter_dll.
[wine.git] / include / txdtc.idl
blob60f35a6aa84b29c4fcfd815d78f5bfd153b7443f
1 /*
2 * Copyright (C) 2013 Daniel JeliƄski
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 import "txcoord.idl";
21 interface IXATransLookup;
22 interface IXATransLookup2;
23 interface IResourceManagerSink;
24 interface IResourceManager;
25 interface ILastResourceManager;
26 interface IResourceManager2;
27 interface IXAConfig;
28 /*interface IRMHelper;
29 interface IXAObtainRMInfo;*/
30 interface IResourceManagerFactory;
31 interface IResourceManagerFactory2;
32 interface IPrepareInfo;
33 interface IPrepareInfo2;
34 interface IGetDispenser;
35 interface ITransactionVoterBallotAsync2;
36 interface ITransactionVoterNotifyAsync2;
37 interface ITransactionVoterFactory2;
38 interface ITransactionPhase0EnlistmentAsync;
39 interface ITransactionPhase0NotifyAsync;
40 interface ITransactionPhase0Factory;
41 interface ITransactionTransmitter;
42 interface ITransactionTransmitterFactory;
43 interface ITransactionReceiver;
44 interface ITransactionReceiverFactory;
45 interface IDtcLuConfigure;
46 interface IDtcLuRecovery;
47 interface IDtcLuRecoveryFactory;
48 interface IDtcLuRecoveryInitiatedByDtcTransWork;
49 interface IDtcLuRecoveryInitiatedByDtcStatusWork;
50 interface IDtcLuRecoveryInitiatedByDtc;
51 interface IDtcLuRecoveryInitiatedByLuWork;
52 interface IDtcLuRecoveryInitiatedByLu;
53 interface IDtcLuRmEnlistment;
54 interface IDtcLuRmEnlistmentSink;
55 interface IDtcLuRmEnlistmentFactory;
56 interface IDtcLuSubordinateDtc;
57 interface IDtcLuSubordinateDtcSink;
58 interface IDtcLuSubordinateDtcFactory;
60 cpp_quote("#define XACTTOMSG(dwXact) (dwXact-0x00040000+0x40000000)")
61 typedef enum XACT_DTC_CONSTANTS {
62 XACT_E_CONNECTION_REQUEST_DENIED = 0x8004d100,
63 XACT_E_TOOMANY_ENLISTMENTS = 0x8004d101,
64 XACT_E_DUPLICATE_GUID = 0x8004d102,
65 XACT_E_NOTSINGLEPHASE = 0x8004d103,
66 XACT_E_RECOVERYALREADYDONE = 0x8004d104,
67 XACT_E_PROTOCOL = 0x8004d105,
68 XACT_E_RM_FAILURE = 0x8004d106,
69 XACT_E_RECOVERY_FAILED = 0x8004d107,
70 XACT_E_LU_NOT_FOUND = 0x8004d108,
71 XACT_E_DUPLICATE_LU = 0x8004d109,
72 XACT_E_LU_NOT_CONNECTED = 0x8004d10a,
73 XACT_E_DUPLICATE_TRANSID = 0x8004d10b,
74 XACT_E_LU_BUSY = 0x8004d10c,
75 XACT_E_LU_NO_RECOVERY_PROCESS = 0x8004d10d,
76 XACT_E_LU_DOWN = 0x8004d10e,
77 XACT_E_LU_RECOVERING = 0x8004d10f,
78 XACT_E_LU_RECOVERY_MISMATCH = 0x8004d110,
79 XACT_E_RM_UNAVAILABLE = 0x8004d111,
80 XACT_E_LRMRECOVERYALREADYDONE = 0x8004d112,
81 XACT_E_NOLASTRESOURCEINTERFACE = 0x8004d113,
82 XACT_S_NONOTIFY = 0x4d100,
83 XACT_OK_NONOTIFY = 0x4d101,
84 dwUSER_MS_SQLSERVER = 0xffff
85 } XACT_DTC_CONSTANTS;
87 cpp_quote("#ifndef _XID_T_DEFINED")
88 cpp_quote("#define _XID_T_DEFINED")
89 typedef struct xid_t {
90 LONG32 formatID;
91 LONG32 gtrid_length;
92 LONG32 bqual_length;
93 char data[128 ];
94 } XID;
95 cpp_quote("#endif")
96 /* idl doesn't like this type
97 cpp_quote("#ifndef _XA_SWITCH_T_DEFINED")
98 cpp_quote("#define _XA_SWITCH_T_DEFINED")
99 typedef struct xa_switch_t {
100 char name[32 ];
101 LONG32 flags;
102 LONG32 version;
103 int (__cdecl *xa_open_entry)(char *__MIDL_0004,int __MIDL_0005,LONG32 __MIDL_0006);
104 int (__cdecl *xa_close_entry)(char *__MIDL_0008,int __MIDL_0009,LONG32 __MIDL_0010);
105 int (__cdecl *xa_start_entry)(XID *__MIDL_0012,int __MIDL_0013,LONG32 __MIDL_0014);
106 int (__cdecl *xa_end_entry)(XID *__MIDL_0016,int __MIDL_0017,LONG32 __MIDL_0018);
107 int (__cdecl *xa_rollback_entry)(XID *__MIDL_0020,int __MIDL_0021,LONG32 __MIDL_0022);
108 int (__cdecl *xa_prepare_entry)(XID *__MIDL_0024,int __MIDL_0025,LONG32 __MIDL_0026);
109 int (__cdecl *xa_commit_entry)(XID *__MIDL_0028,int __MIDL_0029,LONG32 __MIDL_0030);
110 int (__cdecl *xa_recover_entry)(XID *__MIDL_0032,LONG32 __MIDL_0033,int __MIDL_0034,LONG32 __MIDL_0035);
111 int (__cdecl *xa_forget_entry)(XID *__MIDL_0037,int __MIDL_0038,LONG32 __MIDL_0039);
112 int (__cdecl *xa_complete_entry)(int *__MIDL_0041,int *__MIDL_0042,int __MIDL_0043,LONG32 __MIDL_0044);
113 } xa_switch_t;
114 cpp_quote("#endif")
117 object,
118 uuid(f3b1f131-eeda-11ce-aed4-00aa0051e2c4)
120 interface IXATransLookup : IUnknown {
121 HRESULT Lookup([out]ITransaction **ppTransaction);
124 object,
125 uuid(bf193c85-0d1a-4290-b88f-d2cb8873d1e7)
127 interface IXATransLookup2 : IUnknown {
128 HRESULT Lookup([in]XID *pXID,[out]ITransaction **ppTransaction);
131 object,
132 uuid(0d563181-defb-11ce-aed1-00aa0051e2c4)
134 interface IResourceManagerSink : IUnknown {
135 HRESULT TMDown(void);
138 object,
139 uuid(13741d21-87eb-11ce-8081-0080c758527e)
141 interface IResourceManager : IUnknown {
142 HRESULT Enlist([in]ITransaction *pTransaction,[in]ITransactionResourceAsync *pRes,[out]XACTUOW *pUOW,[out]LONG *pisoLevel,[out]ITransactionEnlistmentAsync **ppEnlist);
143 HRESULT Reenlist([in]byte *pPrepInfo,[in]ULONG cbPrepInfo,[in]DWORD lTimeout,[out]XACTSTAT *pXactStat);
144 HRESULT ReenlistmentComplete(void);
145 HRESULT GetDistributedTransactionManager([in]REFIID iid,[out,iid_is(iid)]void **ppvObject);
148 object,
149 uuid(4d964ad4-5b33-11d3-8a91-00c04f79eb6d)
151 interface ILastResourceManager : IUnknown {
152 HRESULT TransactionCommitted([in]byte *pPrepInfo,[in]ULONG cbPrepInfo);
153 HRESULT RecoveryDone(void);
156 object,
157 uuid(d136c69a-f749-11d1-8f47-00c04f8ee57d)
159 interface IResourceManager2 : IResourceManager {
160 HRESULT Enlist2([in]ITransaction *pTransaction,[in]ITransactionResourceAsync *pResAsync,[out]XACTUOW *pUOW,[out]LONG *pisoLevel,[out]XID *pXid,[out]ITransactionEnlistmentAsync **ppEnlist);
161 HRESULT Reenlist2([in]XID *pXid,[in]DWORD dwTimeout,[out]XACTSTAT *pXactStat);
164 object,
165 uuid(c8a6e3a1-9a8c-11cf-a308-00a0c905416e)
167 interface IXAConfig : IUnknown {
168 HRESULT Initialize([in]GUID clsidHelperDll);
169 HRESULT Terminate(void);
171 /* commented out because idl doesn't accept xa_switch_t type
173 object,
174 uuid(E793F6D1-F53D-11cf-A60D-00A0C905416E)
176 interface IRMHelper : IUnknown {
177 HRESULT RMCount([in]DWORD dwcTotalNumberOfRMs);
178 HRESULT RMInfo([in]xa_switch_t *pXa_Switch,[in]BOOL fCDeclCallingConv,[in]char *pszOpenString,[in]char *pszCloseString,[in]GUID guidRMRecovery);
181 object,
182 uuid(E793F6D2-F53D-11cf-A60D-00A0C905416E)
184 interface IXAObtainRMInfo : IUnknown {
185 HRESULT ObtainRMInfo([in]IRMHelper *pIRMHelper);
186 };*/
188 object,
189 uuid(13741d20-87eb-11ce-8081-0080c758527e)
191 interface IResourceManagerFactory : IUnknown {
192 HRESULT Create([in]GUID *pguidRM,[in]CHAR *pszRMName,[in]IResourceManagerSink *pIResMgrSink,[out]IResourceManager **ppResMgr);
195 object,
196 uuid(6b369c21-fbd2-11d1-8f47-00c04f8ee57d)
198 interface IResourceManagerFactory2 : IResourceManagerFactory {
199 HRESULT CreateEx([in]GUID *pguidRM,[in]CHAR *pszRMName,[in]IResourceManagerSink *pIResMgrSink,[in]REFIID riidRequested,[out, iid_is(riidRequested)]void **ppvResMgr);
203 object,
204 uuid(80c7bfd0-87ee-11ce-8081-0080c758527e)
206 interface IPrepareInfo : IUnknown {
207 HRESULT GetPrepareInfoSize([out]ULONG *pcbPrepInfo);
208 HRESULT GetPrepareInfo([out]byte *pPrepInfo);
211 object,
212 uuid(5fab2547-9779-11d1-b886-00c04fb9618a)
214 interface IPrepareInfo2 : IUnknown {
215 HRESULT GetPrepareInfoSize([out]ULONG *pcbPrepInfo);
216 HRESULT GetPrepareInfo([in]ULONG cbPrepareInfo,[out]byte *pPrepInfo);
219 object,
220 uuid(c23cc370-87ef-11ce-8081-0080c758527e)
222 interface IGetDispenser : IUnknown {
223 HRESULT GetDispenser([in]REFIID iid,[out,iid_is(iid)]void **ppvObject);
226 object,
227 uuid(5433376c-414d-11d3-b206-00c04fc2f3ef)
229 interface ITransactionVoterBallotAsync2 : IUnknown {
230 HRESULT VoteRequestDone([in]HRESULT hr,[in]BOID *pboidReason);
233 object,
234 uuid(5433376b-414d-11d3-b206-00c04fc2f3ef)
236 interface ITransactionVoterNotifyAsync2 : ITransactionOutcomeEvents {
237 HRESULT VoteRequest(void);
240 object,
241 uuid(5433376a-414d-11d3-b206-00c04fc2f3ef)
243 interface ITransactionVoterFactory2 : IUnknown {
244 HRESULT Create([in]ITransaction *pTransaction,[in]ITransactionVoterNotifyAsync2 *pVoterNotify,[out]ITransactionVoterBallotAsync2 **ppVoterBallot);
247 object,
248 uuid(82dc88e1-a954-11d1-8f88-00600895e7d5)
250 interface ITransactionPhase0EnlistmentAsync : IUnknown {
251 HRESULT Enable(void);
252 HRESULT WaitForEnlistment(void);
253 HRESULT Phase0Done(void);
254 HRESULT Unenlist(void);
255 HRESULT GetTransaction([out]ITransaction **ppITransaction);
258 object,
259 uuid(ef081809-0c76-11d2-87a6-00c04f990f34)
261 interface ITransactionPhase0NotifyAsync : IUnknown {
262 HRESULT Phase0Request([in]BOOL fAbortingHint);
263 HRESULT EnlistCompleted([in]HRESULT status);
266 object,
267 uuid(82dc88e0-a954-11d1-8f88-00600895e7d5)
269 interface ITransactionPhase0Factory : IUnknown {
270 HRESULT Create([in]ITransactionPhase0NotifyAsync *pPhase0Notify,[out]ITransactionPhase0EnlistmentAsync **ppPhase0Enlistment);
273 object,
274 uuid(59313e01-b36c-11cf-a539-00aa006887c3)
276 interface ITransactionTransmitter : IUnknown {
277 HRESULT Set([in]ITransaction *pTransaction);
278 HRESULT GetPropagationTokenSize([out]ULONG *pcbToken);
279 HRESULT MarshalPropagationToken([in]ULONG cbToken,[out]byte *rgbToken,[out]ULONG *pcbUsed);
280 HRESULT UnmarshalReturnToken([in]ULONG cbReturnToken,[in]byte *rgbReturnToken);
281 HRESULT Reset(void);
284 object,
285 uuid(59313e00-b36c-11cf-a539-00aa006887c3)
287 interface ITransactionTransmitterFactory : IUnknown {
288 HRESULT Create([out]ITransactionTransmitter **ppTransmitter);
291 object,
292 uuid(59313e03-b36c-11cf-a539-00aa006887c3)
294 interface ITransactionReceiver : IUnknown {
295 HRESULT UnmarshalPropagationToken([in]ULONG cbToken,[in]byte *rgbToken,[out]ITransaction **ppTransaction);
296 HRESULT GetReturnTokenSize([out]ULONG *pcbReturnToken);
297 HRESULT MarshalReturnToken([in]ULONG cbReturnToken,[out]byte *rgbReturnToken,[out]ULONG *pcbUsed);
298 HRESULT Reset(void);
301 object,
302 uuid(59313e02-b36c-11cf-a539-00aa006887c3)
304 interface ITransactionReceiverFactory : IUnknown {
305 HRESULT Create([out]ITransactionReceiver **ppReceiver);
308 typedef struct _ProxyConfigParams {
309 WORD wcThreadsMax;
310 } PROXY_CONFIG_PARAMS;
313 object,
314 uuid(4131e760-1aea-11d0-944b-00a0c905416e)
316 interface IDtcLuConfigure : IUnknown {
317 HRESULT Add([in]byte *pucLuPair,[in]DWORD cbLuPair);
318 HRESULT Delete([in]byte *pucLuPair,[in]DWORD cbLuPair);
321 object,
322 uuid(ac2b8ad2-d6f0-11d0-b386-00a0c9083365)
324 interface IDtcLuRecovery : IUnknown {
327 object,
328 uuid(4131e762-1aea-11d0-944b-00a0c905416e)
330 interface IDtcLuRecoveryFactory : IUnknown {
331 HRESULT Create([in]byte *pucLuPair,[in]DWORD cbLuPair,[out]IDtcLuRecovery **ppRecovery);
334 typedef enum _DtcLu_LocalRecovery_Work {
335 DTCINITIATEDRECOVERYWORK_CHECKLUSTATUS = 1,
336 DTCINITIATEDRECOVERYWORK_TRANS,
337 DTCINITIATEDRECOVERYWORK_TMDOWN
338 } DTCINITIATEDRECOVERYWORK;
340 typedef enum _DtcLu_Xln {
341 DTCLUXLN_COLD = 1,
342 DTCLUXLN_WARM
343 } DTCLUXLN;
345 typedef enum _DtcLu_Xln_Confirmation {
346 DTCLUXLNCONFIRMATION_CONFIRM = 1,
347 DTCLUXLNCONFIRMATION_LOGNAMEMISMATCH,
348 DTCLUXLNCONFIRMATION_COLDWARMMISMATCH,
349 DTCLUXLNCONFIRMATION_OBSOLETE
350 } DTCLUXLNCONFIRMATION;
352 typedef enum _DtcLu_Xln_Response {
353 DTCLUXLNRESPONSE_OK_SENDOURXLNBACK = 1,
354 DTCLUXLNRESPONSE_OK_SENDCONFIRMATION,
355 DTCLUXLNRESPONSE_LOGNAMEMISMATCH,
356 DTCLUXLNRESPONSE_COLDWARMMISMATCH
357 } DTCLUXLNRESPONSE;
359 typedef enum _DtcLu_Xln_Error {
360 DTCLUXLNERROR_PROTOCOL = 1,
361 DTCLUXLNERROR_LOGNAMEMISMATCH,
362 DTCLUXLNERROR_COLDWARMMISMATCH
363 } DTCLUXLNERROR;
365 typedef enum _DtcLu_CompareState {
366 DTCLUCOMPARESTATE_COMMITTED = 1,
367 DTCLUCOMPARESTATE_HEURISTICCOMMITTED,
368 DTCLUCOMPARESTATE_HEURISTICMIXED,
369 DTCLUCOMPARESTATE_HEURISTICRESET,
370 DTCLUCOMPARESTATE_INDOUBT,
371 DTCLUCOMPARESTATE_RESET
372 } DTCLUCOMPARESTATE;
374 typedef enum _DtcLu_CompareStates_Confirmation {
375 DTCLUCOMPARESTATESCONFIRMATION_CONFIRM = 1,
376 DTCLUCOMPARESTATESCONFIRMATION_PROTOCOL
377 } DTCLUCOMPARESTATESCONFIRMATION;
379 typedef enum _DtcLu_CompareStates_Error {
380 DTCLUCOMPARESTATESERROR_PROTOCOL = 1
381 } DTCLUCOMPARESTATESERROR;
383 typedef enum _DtcLu_CompareStates_Response {
384 DTCLUCOMPARESTATESRESPONSE_OK = 1,
385 DTCLUCOMPARESTATESRESPONSE_PROTOCOL
386 } DTCLUCOMPARESTATESRESPONSE;
389 object,
390 uuid(4131e765-1aea-11d0-944b-00a0c905416e)
392 interface IDtcLuRecoveryInitiatedByDtcTransWork : IUnknown {
393 HRESULT GetLogNameSizes([out]DWORD *pcbOurLogName,[out]DWORD *pcbRemoteLogName);
394 HRESULT GetOurXln([out]DTCLUXLN *pXln,[in,out]unsigned char *pOurLogName,[in,out]unsigned char *pRemoteLogName,[out]DWORD *pdwProtocol);
395 HRESULT HandleConfirmationFromOurXln([in]DTCLUXLNCONFIRMATION Confirmation);
396 HRESULT HandleTheirXlnResponse([in]DTCLUXLN Xln,[in]unsigned char *pRemoteLogName,[in]DWORD cbRemoteLogName,[in]DWORD dwProtocol,[out]DTCLUXLNCONFIRMATION *pConfirmation);
397 HRESULT HandleErrorFromOurXln([in]DTCLUXLNERROR Error);
398 HRESULT CheckForCompareStates([out]BOOL *fCompareStates);
399 HRESULT GetOurTransIdSize([in,out]DWORD *pcbOurTransId);
400 HRESULT GetOurCompareStates([in,out]unsigned char *pOurTransId,[out]DTCLUCOMPARESTATE *pCompareState);
401 HRESULT HandleTheirCompareStatesResponse([in]DTCLUCOMPARESTATE CompareState,[out]DTCLUCOMPARESTATESCONFIRMATION *pConfirmation);
402 HRESULT HandleErrorFromOurCompareStates([in]DTCLUCOMPARESTATESERROR Error);
403 HRESULT ConversationLost(void);
404 HRESULT GetRecoverySeqNum([out]LONG *plRecoverySeqNum);
405 HRESULT ObsoleteRecoverySeqNum([in]LONG lNewRecoverySeqNum);
408 object,
409 uuid(4131e766-1aea-11d0-944b-00a0c905416e)
411 interface IDtcLuRecoveryInitiatedByDtcStatusWork : IUnknown {
412 HRESULT HandleCheckLuStatus([in]LONG lRecoverySeqNum);
415 object,
416 uuid(4131e764-1aea-11d0-944b-00a0c905416e)
418 [local] interface IDtcLuRecoveryInitiatedByDtc : IUnknown {
419 HRESULT GetWork([in,out]DTCINITIATEDRECOVERYWORK *pWork,[in,out]void **ppv);
422 object,
423 uuid(ac2b8ad1-d6f0-11d0-b386-00a0c9083365)
425 interface IDtcLuRecoveryInitiatedByLuWork : IUnknown {
426 HRESULT HandleTheirXln([in]LONG lRecoverySeqNum,[in]DTCLUXLN Xln,[in]unsigned char *pRemoteLogName,[in]DWORD cbRemoteLogName,[in]unsigned char *pOurLogName,[in]DWORD cbOurLogName,[in]DWORD dwProtocol,[out]DTCLUXLNRESPONSE *pResponse);
427 HRESULT GetOurLogNameSize([in,out]DWORD *pcbOurLogName);
428 HRESULT GetOurXln([out]DTCLUXLN *pXln,[in,out]unsigned char *pOurLogName,[out]DWORD *pdwProtocol);
429 HRESULT HandleConfirmationOfOurXln([in]DTCLUXLNCONFIRMATION Confirmation);
430 HRESULT HandleTheirCompareStates([in,out]unsigned char *pRemoteTransId,[in]DWORD cbRemoteTransId,[in]DTCLUCOMPARESTATE CompareState,[out]DTCLUCOMPARESTATESRESPONSE *pResponse,[out]DTCLUCOMPARESTATE *pCompareState);
431 HRESULT HandleConfirmationOfOurCompareStates([in]DTCLUCOMPARESTATESCONFIRMATION Confirmation);
432 HRESULT HandleErrorFromOurCompareStates([in]DTCLUCOMPARESTATESERROR Error);
433 HRESULT ConversationLost(void);
436 object,
437 uuid(4131e768-1aea-11d0-944b-00a0c905416e)
439 interface IDtcLuRecoveryInitiatedByLu : IUnknown {
440 HRESULT GetObjectToHandleWorkFromLu([out]IDtcLuRecoveryInitiatedByLuWork **ppWork);
443 object,
444 uuid(4131e769-1aea-11d0-944b-00a0c905416e)
446 interface IDtcLuRmEnlistment : IUnknown {
447 HRESULT Unplug([in]BOOL fConversationLost);
448 HRESULT BackedOut(void);
449 HRESULT BackOut(void);
450 HRESULT Committed(void);
451 HRESULT Forget(void);
452 HRESULT RequestCommit(void);
455 object,
456 uuid(4131e770-1aea-11d0-944b-00a0c905416e)
458 interface IDtcLuRmEnlistmentSink : IUnknown {
459 HRESULT AckUnplug(void);
460 HRESULT TmDown(void);
461 HRESULT SessionLost(void);
462 HRESULT BackedOut(void);
463 HRESULT BackOut(void);
464 HRESULT Committed(void);
465 HRESULT Forget(void);
466 HRESULT Prepare(void);
467 HRESULT RequestCommit(void);
470 object,
471 uuid(4131e771-1aea-11d0-944b-00a0c905416e)
473 interface IDtcLuRmEnlistmentFactory : IUnknown {
474 HRESULT Create([in]unsigned char *pucLuPair,[in]DWORD cbLuPair,[in]ITransaction *pITransaction,[in]unsigned char *pTransId,[in]DWORD cbTransId,[in]IDtcLuRmEnlistmentSink *pRmEnlistmentSink,[in,out]IDtcLuRmEnlistment **ppRmEnlistment);
477 object,
478 uuid(4131e773-1aea-11d0-944b-00a0c905416e)
480 interface IDtcLuSubordinateDtc : IUnknown {
481 HRESULT Unplug([in]BOOL fConversationLost);
482 HRESULT BackedOut(void);
483 HRESULT BackOut(void);
484 HRESULT Committed(void);
485 HRESULT Forget(void);
486 HRESULT Prepare(void);
487 HRESULT RequestCommit(void);
490 object,
491 uuid(4131e774-1aea-11d0-944b-00a0c905416e)
493 interface IDtcLuSubordinateDtcSink : IUnknown {
494 HRESULT AckUnplug(void);
495 HRESULT TmDown(void);
496 HRESULT SessionLost(void);
497 HRESULT BackedOut(void);
498 HRESULT BackOut(void);
499 HRESULT Committed(void);
500 HRESULT Forget(void);
501 HRESULT RequestCommit(void);
504 object,
505 uuid(4131e775-1aea-11d0-944b-00a0c905416e)
507 interface IDtcLuSubordinateDtcFactory : IUnknown {
508 HRESULT Create([in]unsigned char *pucLuPair,[in]DWORD cbLuPair,[in]IUnknown *punkTransactionOuter,[in]ISOLEVEL isoLevel,[in]ULONG isoFlags,[in]ITransactionOptions *pOptions,[out]ITransaction **ppTransaction,[in]unsigned char *pTransId,[in]DWORD cbTransId,[in]IDtcLuSubordinateDtcSink *pSubordinateDtcSink,[in,out]IDtcLuSubordinateDtc **ppSubordinateDtc);
511 /* these GUIDs were found in mingw header, but without corresponding interface definitions
512 DEFINE_GUID(IID_IXAResourceManager,0x4131e751,0x1aea,0x11d0,0x94,0x4b,0x00,0xa0,0xc9,0x05,0x41,0x6e);
513 DEFINE_GUID(IID_IXAResourceManagerFactory,0x4131e750,0x1aea,0x11d0,0x94,0x4b,0x00,0xa0,0xc9,0x05,0x41,0x6e);
514 DEFINE_GUID(IID_IXATransaction,0x4131e752,0x1aea,0x11d0,0x94,0x4b,0x00,0xa0,0xc9,0x05,0x41,0x6e);