ReactOS 0.4.17-dev-966-gf06eace
xolehlp.c
Go to the documentation of this file.
1/*
2 * Copyright 2011 Hans Leidekker for CodeWeavers
3 *
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.
8 *
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.
13 *
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
17 */
18
19#include <stdarg.h>
20#define COBJMACROS
21#include "windef.h"
22#include "winbase.h"
23#include "transact.h"
24#include "initguid.h"
25#include "txdtc.h"
26#include "wine/debug.h"
27
29
30/* Resource manager start */
31
32typedef struct {
36
38{
39 return CONTAINING_RECORD(iface, ResourceManager, IResourceManager_iface);
40}
41
43 void **ppv)
44{
46 TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
47
48 if (!ppv) return E_INVALIDARG;
49
50 if (IsEqualIID(&IID_IUnknown, iid) ||
51 IsEqualIID(&IID_IResourceManager, iid))
52 {
53 *ppv = &This->IResourceManager_iface;
54 }
55 else
56 {
57 FIXME("(%s): not implemented\n", debugstr_guid(iid));
58 *ppv = NULL;
59 return E_NOINTERFACE;
60 }
61
62 IUnknown_AddRef((IUnknown*)*ppv);
63 return S_OK;
64}
65
67{
70
71 TRACE("(%p) refcount=%lu\n", iface, ref);
72
73 return ref;
74}
75
77{
80
81 TRACE("(%p) refcount=%lu\n", iface, ref);
82
83 if (ref == 0)
84 {
85 free(This);
86 }
87
88 return ref;
89}
91 ITransaction *pTransaction,ITransactionResourceAsync *pRes,XACTUOW *pUOW,
92 LONG *pisoLevel,ITransactionEnlistmentAsync **ppEnlist)
93{
94 FIXME("(%p, %p, %p, %p, %p, %p): stub\n", iface, pTransaction,pRes,pUOW,
95 pisoLevel,ppEnlist);
96 return E_NOTIMPL;
97}
99 byte *pPrepInfo,ULONG cbPrepInfo,DWORD lTimeout,XACTSTAT *pXactStat)
100{
101 FIXME("(%p, %p, %lu, %lu, %p): stub\n", iface, pPrepInfo, cbPrepInfo, lTimeout, pXactStat);
102 return E_NOTIMPL;
103}
105{
106 FIXME("(%p): stub\n", iface);
107 return S_OK;
108}
110 REFIID iid,void **ppvObject)
111{
112 FIXME("(%p, %s, %p): stub\n", iface, debugstr_guid(iid), ppvObject);
113 return E_NOTIMPL;
114}
115
116static const IResourceManagerVtbl ResourceManager_Vtbl = {
124};
125
127{
129 HRESULT ret;
130
131 if (!ppv) return E_INVALIDARG;
132
133 This = malloc(sizeof(*This));
134 if (!This) return E_OUTOFMEMORY;
135
136 This->IResourceManager_iface.lpVtbl = &ResourceManager_Vtbl;
137 This->ref = 1;
138
139 ret = IResourceManager_QueryInterface(&This->IResourceManager_iface, riid, ppv);
140 IResourceManager_Release(&This->IResourceManager_iface);
141
142 return ret;
143}
144
145/* Resource manager end */
146
147/* Transaction options start */
148
149typedef struct {
154
156{
157 return CONTAINING_RECORD(iface, TransactionOptions, ITransactionOptions_iface);
158}
159
161 void **ppv)
162{
164 TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
165
166 if (!ppv) return E_INVALIDARG;
167
168 if (IsEqualIID(&IID_IUnknown, iid) ||
169 IsEqualIID(&IID_ITransactionOptions, iid))
170 {
171 *ppv = &This->ITransactionOptions_iface;
172 }
173 else
174 {
175 FIXME("(%s): not implemented\n", debugstr_guid(iid));
176 *ppv = NULL;
177 return E_NOINTERFACE;
178 }
179
180 IUnknown_AddRef((IUnknown*)*ppv);
181 return S_OK;
182}
183
185{
188
189 TRACE("(%p) refcount=%lu\n", iface, ref);
190
191 return ref;
192}
193
195{
198
199 TRACE("(%p) refcount=%lu\n", iface, ref);
200
201 if (ref == 0)
202 {
203 free(This);
204 }
205
206 return ref;
207}
209 XACTOPT *pOptions)
210{
212
213 if (!pOptions) return E_INVALIDARG;
214 TRACE("(%p, %lu, %s)\n", iface, pOptions->ulTimeout, debugstr_a(pOptions->szDescription));
215 This->opts = *pOptions;
216 return S_OK;
217}
219 XACTOPT *pOptions)
220{
222
223 TRACE("(%p, %p)\n", iface, pOptions);
224 if (!pOptions) return E_INVALIDARG;
225 *pOptions = This->opts;
226 return S_OK;
227}
228
229static const ITransactionOptionsVtbl TransactionOptions_Vtbl = {
235};
236
238{
240
241 if (!ppv) return E_INVALIDARG;
242
243 This = malloc(sizeof(*This));
244 if (!This) return E_OUTOFMEMORY;
245
246 This->ITransactionOptions_iface.lpVtbl = &TransactionOptions_Vtbl;
247 This->ref = 1;
248
249 *ppv = &This->ITransactionOptions_iface;
250
251 return S_OK;
252}
253
254/* Transaction options end */
255
256/* Transaction start */
257
258typedef struct {
263
265{
266 return CONTAINING_RECORD(iface, Transaction, ITransaction_iface);
267}
268
270 void **ppv)
271{
273 TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
274
275 if (!ppv) return E_INVALIDARG;
276
277 if (IsEqualIID(&IID_IUnknown, iid) ||
278 IsEqualIID(&IID_ITransaction, iid))
279 {
280 *ppv = &This->ITransaction_iface;
281 }
282 else
283 {
284 FIXME("(%s): not implemented\n", debugstr_guid(iid));
285 *ppv = NULL;
286 return E_NOINTERFACE;
287 }
288
289 IUnknown_AddRef((IUnknown*)*ppv);
290 return S_OK;
291}
292
294{
297
298 TRACE("(%p) refcount=%lu\n", iface, ref);
299
300 return ref;
301}
302
304{
307
308 TRACE("(%p) refcount=%lu\n", iface, ref);
309
310 if (ref == 0)
311 {
312 free(This);
313 }
314
315 return ref;
316}
318 BOOL fRetaining, DWORD grfTC, DWORD grfRM)
319{
320 FIXME("(%p, %d, %08lx, %08lx): stub\n", iface, fRetaining, grfTC, grfRM);
321 return E_NOTIMPL;
322}
324 BOID *pboidReason, BOOL fRetaining, BOOL fAsync)
325{
326 FIXME("(%p, %p, %d, %d): stub\n", iface, pboidReason, fRetaining, fAsync);
327 return E_NOTIMPL;
328}
330 XACTTRANSINFO *pinfo)
331{
333 TRACE("(%p, %p)\n", iface, pinfo);
334 if (!pinfo) return E_INVALIDARG;
335 *pinfo = This->info;
336 return S_OK;
337}
338
339static const ITransactionVtbl Transaction_Vtbl = {
346};
347
348static HRESULT Transaction_Create(ISOLEVEL isoLevel, ULONG isoFlags,
350{
352
353 if (!ppv) return E_INVALIDARG;
354
355 This = calloc(1, sizeof(*This));
356 if (!This) return E_OUTOFMEMORY;
357
358 This->ITransaction_iface.lpVtbl = &Transaction_Vtbl;
359 This->ref = 1;
360 This->info.isoLevel = isoLevel;
361 This->info.isoFlags = isoFlags;
362
363 *ppv = &This->ITransaction_iface;
364
365 return S_OK;
366}
367
368/* Transaction end */
369
370/* DTC Proxy Core Object start */
371
372typedef struct {
379
381{
382 return CONTAINING_RECORD(iface, TransactionManager, ITransactionDispenser_iface);
383}
384
386 void **ppv)
387{
389 TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
390
391 if (!ppv) return E_INVALIDARG;
392
393 if (IsEqualIID(&IID_IUnknown, iid) ||
394 IsEqualIID(&IID_ITransactionDispenser, iid))
395 {
396 *ppv = &This->ITransactionDispenser_iface;
397 }
398 else if (IsEqualIID(&IID_IResourceManagerFactory, iid) ||
399 IsEqualIID(&IID_IResourceManagerFactory2, iid))
400 {
401 *ppv = &This->IResourceManagerFactory2_iface;
402 }
403 else if (IsEqualIID(&IID_ITransactionImportWhereabouts, iid))
404 {
405 *ppv = &This->ITransactionImportWhereabouts_iface;
406 }
407 else if (IsEqualIID(&IID_ITransactionImport, iid))
408 {
409 *ppv = &This->ITransactionImport_iface;
410 }
411 else
412 {
413 FIXME("(%s): not implemented\n", debugstr_guid(iid));
414 *ppv = NULL;
415 return E_NOINTERFACE;
416 }
417
418 IUnknown_AddRef((IUnknown*)*ppv);
419 return S_OK;
420}
421
423{
426
427 TRACE("(%p) refcount=%lu\n", iface, ref);
428
429 return ref;
430}
431
433{
436
437 TRACE("(%p) refcount=%lu\n", iface, ref);
438
439 if (ref == 0)
440 {
441 free(This);
442 }
443
444 return ref;
445}
446
449{
450 TRACE("(%p, %p)\n", iface, ppOptions);
451
452 if (!ppOptions) return E_INVALIDARG;
454}
456 IUnknown *punkOuter,
457 ISOLEVEL isoLevel,
458 ULONG isoFlags,
459 ITransactionOptions *pOptions,
460 ITransaction **ppTransaction)
461{
462 FIXME("(%p, %p, %08lx, %08lx, %p, %p): semi-stub\n", iface, punkOuter,
463 isoLevel, isoFlags, pOptions, ppTransaction);
464
465 if (!ppTransaction) return E_INVALIDARG;
466 if (punkOuter) return CLASS_E_NOAGGREGATION;
467 return Transaction_Create(isoLevel, isoFlags, pOptions, ppTransaction);
468}
469static const ITransactionDispenserVtbl TransactionDispenser_Vtbl = {
475};
476
478{
479 return CONTAINING_RECORD(iface, TransactionManager, IResourceManagerFactory2_iface);
480}
481
483 void **ppv)
484{
486 return TransactionDispenser_QueryInterface(&This->ITransactionDispenser_iface, iid, ppv);
487}
488
490{
492 return TransactionDispenser_AddRef(&This->ITransactionDispenser_iface);
493}
494
496{
498 return TransactionDispenser_Release(&This->ITransactionDispenser_iface);
499}
501 GUID *pguidRM, CHAR *pszRMName, IResourceManagerSink *pIResMgrSink, IResourceManager **ppResMgr)
502{
503 FIXME("(%p, %s, %s, %p, %p): semi-stub\n", iface, debugstr_guid(pguidRM),
504 debugstr_a(pszRMName), pIResMgrSink, ppResMgr);
505 return ResourceManager_Create(&IID_IResourceManager, (void**)ppResMgr);
506}
508 GUID *pguidRM, CHAR *pszRMName, IResourceManagerSink *pIResMgrSink, REFIID riidRequested, void **ppResMgr)
509{
510 FIXME("(%p, %s, %s, %p, %s, %p): semi-stub\n", iface, debugstr_guid(pguidRM),
511 debugstr_a(pszRMName), pIResMgrSink, debugstr_guid(riidRequested), ppResMgr);
512
513 return ResourceManager_Create(riidRequested, ppResMgr);
514}
515static const IResourceManagerFactory2Vtbl ResourceManagerFactory2_Vtbl = {
521};
522
524{
525 return CONTAINING_RECORD(iface, TransactionManager, ITransactionImportWhereabouts_iface);
526}
527
529 void **ppv)
530{
532 return TransactionDispenser_QueryInterface(&This->ITransactionDispenser_iface, iid, ppv);
533}
534
536{
538 return TransactionDispenser_AddRef(&This->ITransactionDispenser_iface);
539}
540
542{
544 return TransactionDispenser_Release(&This->ITransactionDispenser_iface);
545}
547 ULONG *pcbWhereabouts)
548{
549 FIXME("(%p, %p): stub returning fake value\n", iface, pcbWhereabouts);
550
551 if (!pcbWhereabouts) return E_INVALIDARG;
552 *pcbWhereabouts = 1;
553 return S_OK;
554}
556 ULONG cbWhereabouts, BYTE *rgbWhereabouts,ULONG *pcbUsed)
557{
558 FIXME("(%p, %lu, %p, %p): stub returning fake value\n", iface, cbWhereabouts, rgbWhereabouts, pcbUsed);
559
560 if (!rgbWhereabouts || !pcbUsed) return E_INVALIDARG;
561 *rgbWhereabouts = 0;
562 *pcbUsed = 1;
563 return S_OK;
564}
565static const ITransactionImportWhereaboutsVtbl TransactionImportWhereabouts_Vtbl = {
571};
572
574{
575 return CONTAINING_RECORD(iface, TransactionManager, ITransactionImport_iface);
576}
577
579 void **ppv)
580{
582 return TransactionDispenser_QueryInterface(&This->ITransactionDispenser_iface, iid, ppv);
583}
584
586{
588 return TransactionDispenser_AddRef(&This->ITransactionDispenser_iface);
589}
590
592{
594 return TransactionDispenser_Release(&This->ITransactionDispenser_iface);
595}
597 ULONG cbTransactionCookie, byte *rgbTransactionCookie, IID *piid, void **ppvTransaction)
598{
599 FIXME("(%p, %lu, %p, %s, %p): stub\n", iface, cbTransactionCookie, rgbTransactionCookie, debugstr_guid(piid), ppvTransaction);
600
601 if (!rgbTransactionCookie || !piid || !ppvTransaction) return E_INVALIDARG;
602 return E_NOTIMPL;
603}
604static const ITransactionImportVtbl TransactionImport_Vtbl = {
609};
610
612{
614 HRESULT ret;
615
616 This = malloc(sizeof(*This));
617 if (!This) return E_OUTOFMEMORY;
618
619 This->ITransactionDispenser_iface.lpVtbl = &TransactionDispenser_Vtbl;
620 This->IResourceManagerFactory2_iface.lpVtbl = &ResourceManagerFactory2_Vtbl;
621 This->ITransactionImportWhereabouts_iface.lpVtbl = &TransactionImportWhereabouts_Vtbl;
622 This->ITransactionImport_iface.lpVtbl = &TransactionImport_Vtbl;
623 This->ref = 1;
624
625 ret = ITransactionDispenser_QueryInterface(&This->ITransactionDispenser_iface, riid, ppv);
626 ITransactionDispenser_Release(&This->ITransactionDispenser_iface);
627
628 return ret;
629}
630/* DTC Proxy Core Object end */
631
633{
634 static const CHAR dot[] = ".";
637
638 if (!server || !strcmp( server, dot )) return TRUE;
639 if (GetComputerNameA( buffer, &len ) && !lstrcmpiA( server, buffer )) return TRUE;
640 return FALSE;
641}
643{
646
647 if (!server || !wcscmp( server, L"." )) return TRUE;
648 if (GetComputerNameW( buffer, &len ) && !wcsicmp( server, buffer )) return TRUE;
649 return FALSE;
650}
651
653 DWORD dwReserved1, WORD wcbReserved2, void *pvReserved2, void **ppv)
654{
655 TRACE("(%s, %s, %s, %ld, %d, %p, %p)\n", debugstr_a(host), debugstr_a(tm_name),
656 debugstr_guid(riid), dwReserved1, wcbReserved2, pvReserved2, ppv);
657
659 {
660 FIXME("remote computer not supported\n");
661 return E_NOTIMPL;
662 }
664}
665
667 DWORD options, void *config, void **ppv)
668{
669 TRACE("(%s, %s, %s, %ld, %p, %p)\n", debugstr_a(host), debugstr_a(tm_name),
671
673 {
674 FIXME("remote computer not supported\n");
675 return E_NOTIMPL;
676 }
678}
679
681 DWORD options, void *config, void **ppv)
682{
683 TRACE("(%s, %s, %s, %ld, %p, %p)\n", debugstr_w(host), debugstr_w(tm_name),
685
687 {
688 FIXME("remote computer not supported\n");
689 return E_NOTIMPL;
690 }
692}
#define InterlockedIncrement
Definition: armddk.h:53
#define InterlockedDecrement
Definition: armddk.h:52
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
#define ARRAY_SIZE(A)
Definition: main.h:20
#define FIXME(fmt,...)
Definition: precomp.h:53
const GUID IID_IUnknown
BOOL WINAPI GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize)
Definition: compname.c:446
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_INVALIDARG
Definition: ddrawi.h:101
#define E_NOTIMPL
Definition: ddrawi.h:99
#define free
Definition: debug_ros.c:5
#define malloc
Definition: debug_ros.c:4
#define NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
LPAVICOMPRESSOPTIONS * ppOptions
Definition: api.c:62
#define CDECL
Definition: compat.h:29
#define wcsicmp
Definition: compat.h:15
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
Definition: locale.c:4133
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
Definition: wcs.c:1977
_ACRTIMP int __cdecl strcmp(const char *, const char *)
Definition: string.c:3324
return ret
Definition: mutex.c:147
#define L(x)
Definition: resources.c:13
unsigned short WORD
Definition: ntddk_ex.h:93
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint buffer
Definition: glext.h:5915
GLenum GLsizei len
Definition: glext.h:6722
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define S_OK
Definition: intsafe.h:52
#define debugstr_guid
Definition: kernel32.h:35
#define debugstr_a
Definition: kernel32.h:31
#define debugstr_w
Definition: kernel32.h:32
short WCHAR
Definition: pedump.c:58
long LONG
Definition: pedump.c:60
char CHAR
Definition: pedump.c:57
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
#define REFIID
Definition: guiddef.h:118
#define calloc
Definition: rosglue.h:14
BOOL WINAPI SHIM_OBJ_NAME() GetComputerNameA(LPSTR lpBuffer, LPDWORD lpnSize)
Definition: shimtest.c:21
#define TRACE(s)
Definition: solgame.cpp:4
IResourceManager IResourceManager_iface
Definition: xolehlp.c:33
ITransactionImport ITransactionImport_iface
Definition: xolehlp.c:377
IResourceManagerFactory2 IResourceManagerFactory2_iface
Definition: xolehlp.c:375
ITransactionDispenser ITransactionDispenser_iface
Definition: xolehlp.c:373
ITransactionImportWhereabouts ITransactionImportWhereabouts_iface
Definition: xolehlp.c:376
ITransactionOptions ITransactionOptions_iface
Definition: xolehlp.c:150
LONG ref
Definition: xolehlp.c:260
XACTTRANSINFO info
Definition: xolehlp.c:261
ITransaction ITransaction_iface
Definition: xolehlp.c:259
ULONG ulTimeout
Definition: transact.idl:144
char szDescription[40]
Definition: transact.idl:145
Definition: txthost.c:37
Definition: send.c:48
XACTSTAT
Definition: transact.idl:117
LONG ISOLEVEL
Definition: transact.idl:43
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
uint32_t ULONG
Definition: typedefs.h:59
static rfbScreenInfoPtr server
Definition: vnc.c:74
#define MAX_COMPUTERNAME_LENGTH
Definition: winbase.h:268
#define WINAPI
Definition: msvc.h:6
#define E_NOINTERFACE
Definition: winerror.h:3479
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:3771
static const IResourceManagerFactory2Vtbl ResourceManagerFactory2_Vtbl
Definition: xolehlp.c:515
static const ITransactionImportWhereaboutsVtbl TransactionImportWhereabouts_Vtbl
Definition: xolehlp.c:565
static ResourceManager * impl_from_IResourceManager(IResourceManager *iface)
Definition: xolehlp.c:37
static ULONG WINAPI TransactionDispenser_AddRef(ITransactionDispenser *iface)
Definition: xolehlp.c:422
static HRESULT WINAPI TransactionImportWhereabouts_QueryInterface(ITransactionImportWhereabouts *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:528
static HRESULT WINAPI TransactionOptions_GetOptions(ITransactionOptions *iface, XACTOPT *pOptions)
Definition: xolehlp.c:218
static HRESULT WINAPI ResourceManager_GetDistributedTransactionManager(IResourceManager *iface, REFIID iid, void **ppvObject)
Definition: xolehlp.c:109
static TransactionManager * impl_from_ITransactionImport(ITransactionImport *iface)
Definition: xolehlp.c:573
static ULONG WINAPI ResourceManager_Release(IResourceManager *iface)
Definition: xolehlp.c:76
static BOOL is_local_machineA(const CHAR *server)
Definition: xolehlp.c:632
static HRESULT WINAPI Transaction_QueryInterface(ITransaction *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:269
static HRESULT WINAPI ResourceManagerFactory2_Create(IResourceManagerFactory2 *iface, GUID *pguidRM, CHAR *pszRMName, IResourceManagerSink *pIResMgrSink, IResourceManager **ppResMgr)
Definition: xolehlp.c:500
static HRESULT WINAPI TransactionImport_QueryInterface(ITransactionImport *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:578
static HRESULT WINAPI TransactionOptions_SetOptions(ITransactionOptions *iface, XACTOPT *pOptions)
Definition: xolehlp.c:208
static HRESULT WINAPI ResourceManager_ReenlistmentComplete(IResourceManager *iface)
Definition: xolehlp.c:104
static HRESULT WINAPI TransactionImportWhereabouts_GetWhereaboutsSize(ITransactionImportWhereabouts *iface, ULONG *pcbWhereabouts)
Definition: xolehlp.c:546
HRESULT CDECL DtcGetTransactionManager(char *host, char *tm_name, REFIID riid, DWORD dwReserved1, WORD wcbReserved2, void *pvReserved2, void **ppv)
Definition: xolehlp.c:652
static ULONG WINAPI ResourceManagerFactory2_Release(IResourceManagerFactory2 *iface)
Definition: xolehlp.c:495
static ULONG WINAPI TransactionImport_AddRef(ITransactionImport *iface)
Definition: xolehlp.c:585
static ULONG WINAPI Transaction_AddRef(ITransaction *iface)
Definition: xolehlp.c:293
static const ITransactionVtbl Transaction_Vtbl
Definition: xolehlp.c:339
static HRESULT WINAPI ResourceManagerFactory2_QueryInterface(IResourceManagerFactory2 *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:482
static TransactionManager * impl_from_ITransactionDispenser(ITransactionDispenser *iface)
Definition: xolehlp.c:380
static HRESULT WINAPI TransactionImportWhereabouts_GetWhereabouts(ITransactionImportWhereabouts *iface, ULONG cbWhereabouts, BYTE *rgbWhereabouts, ULONG *pcbUsed)
Definition: xolehlp.c:555
static HRESULT TransactionManager_Create(REFIID riid, void **ppv)
Definition: xolehlp.c:611
static ULONG WINAPI Transaction_Release(ITransaction *iface)
Definition: xolehlp.c:303
static const ITransactionOptionsVtbl TransactionOptions_Vtbl
Definition: xolehlp.c:229
static HRESULT TransactionOptions_Create(ITransactionOptions **ppv)
Definition: xolehlp.c:237
static const IResourceManagerVtbl ResourceManager_Vtbl
Definition: xolehlp.c:116
static const ITransactionImportVtbl TransactionImport_Vtbl
Definition: xolehlp.c:604
static BOOL is_local_machineW(const WCHAR *server)
Definition: xolehlp.c:642
HRESULT CDECL DtcGetTransactionManagerExW(WCHAR *host, WCHAR *tm_name, REFIID riid, DWORD options, void *config, void **ppv)
Definition: xolehlp.c:680
static ULONG WINAPI TransactionDispenser_Release(ITransactionDispenser *iface)
Definition: xolehlp.c:432
static HRESULT WINAPI ResourceManager_QueryInterface(IResourceManager *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:42
static const ITransactionDispenserVtbl TransactionDispenser_Vtbl
Definition: xolehlp.c:469
static Transaction * impl_from_ITransaction(ITransaction *iface)
Definition: xolehlp.c:264
static ULONG WINAPI ResourceManager_AddRef(IResourceManager *iface)
Definition: xolehlp.c:66
static ULONG WINAPI TransactionOptions_AddRef(ITransactionOptions *iface)
Definition: xolehlp.c:184
static ULONG WINAPI TransactionImport_Release(ITransactionImport *iface)
Definition: xolehlp.c:591
static HRESULT WINAPI ResourceManager_Reenlist(IResourceManager *iface, byte *pPrepInfo, ULONG cbPrepInfo, DWORD lTimeout, XACTSTAT *pXactStat)
Definition: xolehlp.c:98
static HRESULT WINAPI ResourceManagerFactory2_CreateEx(IResourceManagerFactory2 *iface, GUID *pguidRM, CHAR *pszRMName, IResourceManagerSink *pIResMgrSink, REFIID riidRequested, void **ppResMgr)
Definition: xolehlp.c:507
static TransactionManager * impl_from_ITransactionImportWhereabouts(ITransactionImportWhereabouts *iface)
Definition: xolehlp.c:523
static HRESULT WINAPI TransactionDispenser_BeginTransaction(ITransactionDispenser *iface, IUnknown *punkOuter, ISOLEVEL isoLevel, ULONG isoFlags, ITransactionOptions *pOptions, ITransaction **ppTransaction)
Definition: xolehlp.c:455
static HRESULT WINAPI TransactionDispenser_GetOptionsObject(ITransactionDispenser *iface, ITransactionOptions **ppOptions)
Definition: xolehlp.c:447
static HRESULT WINAPI TransactionOptions_QueryInterface(ITransactionOptions *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:160
static HRESULT WINAPI Transaction_Commit(ITransaction *iface, BOOL fRetaining, DWORD grfTC, DWORD grfRM)
Definition: xolehlp.c:317
static TransactionManager * impl_from_IResourceManagerFactory2(IResourceManagerFactory2 *iface)
Definition: xolehlp.c:477
static ULONG WINAPI TransactionOptions_Release(ITransactionOptions *iface)
Definition: xolehlp.c:194
static HRESULT WINAPI ResourceManager_Enlist(IResourceManager *iface, ITransaction *pTransaction, ITransactionResourceAsync *pRes, XACTUOW *pUOW, LONG *pisoLevel, ITransactionEnlistmentAsync **ppEnlist)
Definition: xolehlp.c:90
static HRESULT WINAPI TransactionDispenser_QueryInterface(ITransactionDispenser *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:385
static ULONG WINAPI ResourceManagerFactory2_AddRef(IResourceManagerFactory2 *iface)
Definition: xolehlp.c:489
static HRESULT WINAPI Transaction_GetTransactionInfo(ITransaction *iface, XACTTRANSINFO *pinfo)
Definition: xolehlp.c:329
static TransactionOptions * impl_from_ITransactionOptions(ITransactionOptions *iface)
Definition: xolehlp.c:155
HRESULT CDECL DtcGetTransactionManagerExA(CHAR *host, CHAR *tm_name, REFIID riid, DWORD options, void *config, void **ppv)
Definition: xolehlp.c:666
static ULONG WINAPI TransactionImportWhereabouts_Release(ITransactionImportWhereabouts *iface)
Definition: xolehlp.c:541
static HRESULT WINAPI TransactionImport_Import(ITransactionImport *iface, ULONG cbTransactionCookie, byte *rgbTransactionCookie, IID *piid, void **ppvTransaction)
Definition: xolehlp.c:596
static ULONG WINAPI TransactionImportWhereabouts_AddRef(ITransactionImportWhereabouts *iface)
Definition: xolehlp.c:535
static HRESULT ResourceManager_Create(REFIID riid, void **ppv)
Definition: xolehlp.c:126
static HRESULT WINAPI Transaction_Abort(ITransaction *iface, BOID *pboidReason, BOOL fRetaining, BOOL fAsync)
Definition: xolehlp.c:323
static HRESULT Transaction_Create(ISOLEVEL isoLevel, ULONG isoFlags, ITransactionOptions *pOptions, ITransaction **ppv)
Definition: xolehlp.c:348
unsigned char BYTE
Definition: xxhash.c:193