ReactOS 0.4.16-dev-109-gf4cb10f
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/unicode.h"
27#include "wine/debug.h"
28
30
31/* Resource manager start */
32
33typedef struct {
37
39{
40 return CONTAINING_RECORD(iface, ResourceManager, IResourceManager_iface);
41}
42
44 void **ppv)
45{
47 TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
48
49 if (!ppv) return E_INVALIDARG;
50
51 if (IsEqualIID(&IID_IUnknown, iid) ||
52 IsEqualIID(&IID_IResourceManager, iid))
53 {
54 *ppv = &This->IResourceManager_iface;
55 }
56 else
57 {
58 FIXME("(%s): not implemented\n", debugstr_guid(iid));
59 *ppv = NULL;
60 return E_NOINTERFACE;
61 }
62
63 IUnknown_AddRef((IUnknown*)*ppv);
64 return S_OK;
65}
66
68{
71
72 TRACE("(%p) refcount=%u\n", iface, ref);
73
74 return ref;
75}
76
78{
81
82 TRACE("(%p) refcount=%u\n", iface, ref);
83
84 if (ref == 0)
85 {
87 }
88
89 return ref;
90}
92 ITransaction *pTransaction,ITransactionResourceAsync *pRes,XACTUOW *pUOW,
93 LONG *pisoLevel,ITransactionEnlistmentAsync **ppEnlist)
94{
95 FIXME("(%p, %p, %p, %p, %p, %p): stub\n", iface, pTransaction,pRes,pUOW,
96 pisoLevel,ppEnlist);
97 return E_NOTIMPL;
98}
100 byte *pPrepInfo,ULONG cbPrepInfo,DWORD lTimeout,XACTSTAT *pXactStat)
101{
102 FIXME("(%p, %p, %u, %u, %p): stub\n", iface, pPrepInfo, cbPrepInfo, lTimeout, pXactStat);
103 return E_NOTIMPL;
104}
106{
107 FIXME("(%p): stub\n", iface);
108 return S_OK;
109}
111 REFIID iid,void **ppvObject)
112{
113 FIXME("(%p, %s, %p): stub\n", iface, debugstr_guid(iid), ppvObject);
114 return E_NOTIMPL;
115}
116
117static const IResourceManagerVtbl ResourceManager_Vtbl = {
125};
126
128{
130 HRESULT ret;
131
132 if (!ppv) return E_INVALIDARG;
133
135 if (!This) return E_OUTOFMEMORY;
136
137 This->IResourceManager_iface.lpVtbl = &ResourceManager_Vtbl;
138 This->ref = 1;
139
140 ret = IResourceManager_QueryInterface(&This->IResourceManager_iface, riid, ppv);
141 IResourceManager_Release(&This->IResourceManager_iface);
142
143 return ret;
144}
145
146/* Resource manager end */
147
148/* Transaction options start */
149
150typedef struct {
155
157{
158 return CONTAINING_RECORD(iface, TransactionOptions, ITransactionOptions_iface);
159}
160
162 void **ppv)
163{
165 TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
166
167 if (!ppv) return E_INVALIDARG;
168
169 if (IsEqualIID(&IID_IUnknown, iid) ||
170 IsEqualIID(&IID_ITransactionOptions, iid))
171 {
172 *ppv = &This->ITransactionOptions_iface;
173 }
174 else
175 {
176 FIXME("(%s): not implemented\n", debugstr_guid(iid));
177 *ppv = NULL;
178 return E_NOINTERFACE;
179 }
180
181 IUnknown_AddRef((IUnknown*)*ppv);
182 return S_OK;
183}
184
186{
189
190 TRACE("(%p) refcount=%u\n", iface, ref);
191
192 return ref;
193}
194
196{
199
200 TRACE("(%p) refcount=%u\n", iface, ref);
201
202 if (ref == 0)
203 {
205 }
206
207 return ref;
208}
210 XACTOPT *pOptions)
211{
213
214 if (!pOptions) return E_INVALIDARG;
215 TRACE("(%p, %u, %s)\n", iface, pOptions->ulTimeout, debugstr_a(pOptions->szDescription));
216 This->opts = *pOptions;
217 return S_OK;
218}
220 XACTOPT *pOptions)
221{
223
224 TRACE("(%p, %p)\n", iface, pOptions);
225 if (!pOptions) return E_INVALIDARG;
226 *pOptions = This->opts;
227 return S_OK;
228}
229
230static const ITransactionOptionsVtbl TransactionOptions_Vtbl = {
236};
237
239{
241
242 if (!ppv) return E_INVALIDARG;
243
245 if (!This) return E_OUTOFMEMORY;
246
247 This->ITransactionOptions_iface.lpVtbl = &TransactionOptions_Vtbl;
248 This->ref = 1;
249
250 *ppv = &This->ITransactionOptions_iface;
251
252 return S_OK;
253}
254
255/* Transaction options end */
256
257/* Transaction start */
258
259typedef struct {
264
266{
267 return CONTAINING_RECORD(iface, Transaction, ITransaction_iface);
268}
269
271 void **ppv)
272{
274 TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
275
276 if (!ppv) return E_INVALIDARG;
277
278 if (IsEqualIID(&IID_IUnknown, iid) ||
279 IsEqualIID(&IID_ITransaction, iid))
280 {
281 *ppv = &This->ITransaction_iface;
282 }
283 else
284 {
285 FIXME("(%s): not implemented\n", debugstr_guid(iid));
286 *ppv = NULL;
287 return E_NOINTERFACE;
288 }
289
290 IUnknown_AddRef((IUnknown*)*ppv);
291 return S_OK;
292}
293
295{
298
299 TRACE("(%p) refcount=%u\n", iface, ref);
300
301 return ref;
302}
303
305{
308
309 TRACE("(%p) refcount=%u\n", iface, ref);
310
311 if (ref == 0)
312 {
314 }
315
316 return ref;
317}
319 BOOL fRetaining, DWORD grfTC, DWORD grfRM)
320{
321 FIXME("(%p, %d, %08x, %08x): stub\n", iface, fRetaining, grfTC, grfRM);
322 return E_NOTIMPL;
323}
325 BOID *pboidReason, BOOL fRetaining, BOOL fAsync)
326{
327 FIXME("(%p, %p, %d, %d): stub\n", iface, pboidReason, fRetaining, fAsync);
328 return E_NOTIMPL;
329}
331 XACTTRANSINFO *pinfo)
332{
334 TRACE("(%p, %p)\n", iface, pinfo);
335 if (!pinfo) return E_INVALIDARG;
336 *pinfo = This->info;
337 return S_OK;
338}
339
340static const ITransactionVtbl Transaction_Vtbl = {
347};
348
349static HRESULT Transaction_Create(ISOLEVEL isoLevel, ULONG isoFlags,
351{
353
354 if (!ppv) return E_INVALIDARG;
355
356 This = HeapAlloc(GetProcessHeap(), 0, sizeof(Transaction));
357 if (!This) return E_OUTOFMEMORY;
358 ZeroMemory(&This->info, sizeof(This->info));
359
360 This->ITransaction_iface.lpVtbl = &Transaction_Vtbl;
361 This->ref = 1;
362 This->info.isoLevel = isoLevel;
363 This->info.isoFlags = isoFlags;
364
365 *ppv = &This->ITransaction_iface;
366
367 return S_OK;
368}
369
370/* Transaction end */
371
372/* DTC Proxy Core Object start */
373
374typedef struct {
381
383{
384 return CONTAINING_RECORD(iface, TransactionManager, ITransactionDispenser_iface);
385}
386
388 void **ppv)
389{
391 TRACE("(%p,%s,%p)\n", iface, debugstr_guid(iid), ppv);
392
393 if (!ppv) return E_INVALIDARG;
394
395 if (IsEqualIID(&IID_IUnknown, iid) ||
396 IsEqualIID(&IID_ITransactionDispenser, iid))
397 {
398 *ppv = &This->ITransactionDispenser_iface;
399 }
400 else if (IsEqualIID(&IID_IResourceManagerFactory, iid) ||
401 IsEqualIID(&IID_IResourceManagerFactory2, iid))
402 {
403 *ppv = &This->IResourceManagerFactory2_iface;
404 }
405 else if (IsEqualIID(&IID_ITransactionImportWhereabouts, iid))
406 {
407 *ppv = &This->ITransactionImportWhereabouts_iface;
408 }
409 else if (IsEqualIID(&IID_ITransactionImport, iid))
410 {
411 *ppv = &This->ITransactionImport_iface;
412 }
413 else
414 {
415 FIXME("(%s): not implemented\n", debugstr_guid(iid));
416 *ppv = NULL;
417 return E_NOINTERFACE;
418 }
419
420 IUnknown_AddRef((IUnknown*)*ppv);
421 return S_OK;
422}
423
425{
428
429 TRACE("(%p) refcount=%u\n", iface, ref);
430
431 return ref;
432}
433
435{
438
439 TRACE("(%p) refcount=%u\n", iface, ref);
440
441 if (ref == 0)
442 {
444 }
445
446 return ref;
447}
448
451{
452 TRACE("(%p, %p)\n", iface, ppOptions);
453
454 if (!ppOptions) return E_INVALIDARG;
456}
458 IUnknown *punkOuter,
459 ISOLEVEL isoLevel,
460 ULONG isoFlags,
461 ITransactionOptions *pOptions,
462 ITransaction **ppTransaction)
463{
464 FIXME("(%p, %p, %08x, %08x, %p, %p): semi-stub\n", iface, punkOuter,
465 isoLevel, isoFlags, pOptions, ppTransaction);
466
467 if (!ppTransaction) return E_INVALIDARG;
468 if (punkOuter) return CLASS_E_NOAGGREGATION;
469 return Transaction_Create(isoLevel, isoFlags, pOptions, ppTransaction);
470}
471static const ITransactionDispenserVtbl TransactionDispenser_Vtbl = {
477};
478
480{
481 return CONTAINING_RECORD(iface, TransactionManager, IResourceManagerFactory2_iface);
482}
483
485 void **ppv)
486{
488 return TransactionDispenser_QueryInterface(&This->ITransactionDispenser_iface, iid, ppv);
489}
490
492{
494 return TransactionDispenser_AddRef(&This->ITransactionDispenser_iface);
495}
496
498{
500 return TransactionDispenser_Release(&This->ITransactionDispenser_iface);
501}
503 GUID *pguidRM, CHAR *pszRMName, IResourceManagerSink *pIResMgrSink, IResourceManager **ppResMgr)
504{
505 FIXME("(%p, %s, %s, %p, %p): semi-stub\n", iface, debugstr_guid(pguidRM),
506 debugstr_a(pszRMName), pIResMgrSink, ppResMgr);
507 return ResourceManager_Create(&IID_IResourceManager, (void**)ppResMgr);
508}
510 GUID *pguidRM, CHAR *pszRMName, IResourceManagerSink *pIResMgrSink, REFIID riidRequested, void **ppResMgr)
511{
512 FIXME("(%p, %s, %s, %p, %s, %p): semi-stub\n", iface, debugstr_guid(pguidRM),
513 debugstr_a(pszRMName), pIResMgrSink, debugstr_guid(riidRequested), ppResMgr);
514
515 return ResourceManager_Create(riidRequested, ppResMgr);
516}
517static const IResourceManagerFactory2Vtbl ResourceManagerFactory2_Vtbl = {
523};
524
526{
527 return CONTAINING_RECORD(iface, TransactionManager, ITransactionImportWhereabouts_iface);
528}
529
531 void **ppv)
532{
534 return TransactionDispenser_QueryInterface(&This->ITransactionDispenser_iface, iid, ppv);
535}
536
538{
540 return TransactionDispenser_AddRef(&This->ITransactionDispenser_iface);
541}
542
544{
546 return TransactionDispenser_Release(&This->ITransactionDispenser_iface);
547}
549 ULONG *pcbWhereabouts)
550{
551 FIXME("(%p, %p): stub returning fake value\n", iface, pcbWhereabouts);
552
553 if (!pcbWhereabouts) return E_INVALIDARG;
554 *pcbWhereabouts = 1;
555 return S_OK;
556}
558 ULONG cbWhereabouts, BYTE *rgbWhereabouts,ULONG *pcbUsed)
559{
560 FIXME("(%p, %u, %p, %p): stub returning fake value\n", iface, cbWhereabouts, rgbWhereabouts, pcbUsed);
561
562 if (!rgbWhereabouts || !pcbUsed) return E_INVALIDARG;
563 *rgbWhereabouts = 0;
564 *pcbUsed = 1;
565 return S_OK;
566}
567static const ITransactionImportWhereaboutsVtbl TransactionImportWhereabouts_Vtbl = {
573};
574
576{
577 return CONTAINING_RECORD(iface, TransactionManager, ITransactionImport_iface);
578}
579
581 void **ppv)
582{
584 return TransactionDispenser_QueryInterface(&This->ITransactionDispenser_iface, iid, ppv);
585}
586
588{
590 return TransactionDispenser_AddRef(&This->ITransactionDispenser_iface);
591}
592
594{
596 return TransactionDispenser_Release(&This->ITransactionDispenser_iface);
597}
599 ULONG cbTransactionCookie, byte *rgbTransactionCookie, IID *piid, void **ppvTransaction)
600{
601 FIXME("(%p, %u, %p, %s, %p): stub\n", iface, cbTransactionCookie, rgbTransactionCookie, debugstr_guid(piid), ppvTransaction);
602
603 if (!rgbTransactionCookie || !piid || !ppvTransaction) return E_INVALIDARG;
604 return E_NOTIMPL;
605}
606static const ITransactionImportVtbl TransactionImport_Vtbl = {
611};
612
614{
616 HRESULT ret;
617
619 if (!This) return E_OUTOFMEMORY;
620
621 This->ITransactionDispenser_iface.lpVtbl = &TransactionDispenser_Vtbl;
622 This->IResourceManagerFactory2_iface.lpVtbl = &ResourceManagerFactory2_Vtbl;
623 This->ITransactionImportWhereabouts_iface.lpVtbl = &TransactionImportWhereabouts_Vtbl;
624 This->ITransactionImport_iface.lpVtbl = &TransactionImport_Vtbl;
625 This->ref = 1;
626
627 ret = ITransactionDispenser_QueryInterface(&This->ITransactionDispenser_iface, riid, ppv);
628 ITransactionDispenser_Release(&This->ITransactionDispenser_iface);
629
630 return ret;
631}
632/* DTC Proxy Core Object end */
633
635{
636 TRACE("%p, %u, %p\n", hinst, reason, reserved);
637
638 switch (reason)
639 {
640 case DLL_WINE_PREATTACH:
641 return FALSE; /* prefer native version */
644 break;
645 }
646 return TRUE;
647}
648
650{
651 static const CHAR dot[] = ".";
654
655 if (!server || !strcmp( server, dot )) return TRUE;
656 if (GetComputerNameA( buffer, &len ) && !lstrcmpiA( server, buffer )) return TRUE;
657 return FALSE;
658}
660{
661 static const WCHAR dotW[] = {'.',0};
664
665 if (!server || !strcmpW( server, dotW )) return TRUE;
666 if (GetComputerNameW( buffer, &len ) && !strcmpiW( server, buffer )) return TRUE;
667 return FALSE;
668}
669
671 DWORD dwReserved1, WORD wcbReserved2, void *pvReserved2, void **ppv)
672{
673 TRACE("(%s, %s, %s, %d, %d, %p, %p)\n", debugstr_a(host), debugstr_a(tm_name),
674 debugstr_guid(riid), dwReserved1, wcbReserved2, pvReserved2, ppv);
675
677 {
678 FIXME("remote computer not supported\n");
679 return E_NOTIMPL;
680 }
682}
683
685 DWORD options, void *config, void **ppv)
686{
687 TRACE("(%s, %s, %s, %d, %p, %p)\n", debugstr_a(host), debugstr_a(tm_name),
689
691 {
692 FIXME("remote computer not supported\n");
693 return E_NOTIMPL;
694 }
696}
697
699 DWORD options, void *config, void **ppv)
700{
701 TRACE("(%s, %s, %s, %d, %p, %p)\n", debugstr_w(host), debugstr_w(tm_name),
703
705 {
706 FIXME("remote computer not supported\n");
707 return E_NOTIMPL;
708 }
710}
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
#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 NULL
Definition: types.h:112
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
LPAVICOMPRESSOPTIONS * ppOptions
Definition: api.c:62
static WCHAR reason[MAX_STRING_RESOURCE_LEN]
Definition: object.c:1904
#define CDECL
Definition: compat.h:29
#define GetProcessHeap()
Definition: compat.h:736
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
#define HeapAlloc
Definition: compat.h:733
#define HeapFree(x, y, z)
Definition: compat.h:735
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
Definition: loader.c:85
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
Definition: locale.c:4223
r reserved
Definition: btrfs.c:3006
unsigned int BOOL
Definition: ntddk_ex.h:94
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short WORD
Definition: ntddk_ex.h:93
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
static HINSTANCE hinst
Definition: edit.c:551
static const WCHAR dotW[]
Definition: directory.c:80
long LONG
Definition: pedump.c:60
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
#define REFIID
Definition: guiddef.h:118
#define strcmpW(s1, s2)
Definition: unicode.h:44
#define strcmpiW(s1, s2)
Definition: unicode.h:45
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:34
ITransactionImport ITransactionImport_iface
Definition: xolehlp.c:379
IResourceManagerFactory2 IResourceManagerFactory2_iface
Definition: xolehlp.c:377
ITransactionDispenser ITransactionDispenser_iface
Definition: xolehlp.c:375
ITransactionImportWhereabouts ITransactionImportWhereabouts_iface
Definition: xolehlp.c:378
ITransactionOptions ITransactionOptions_iface
Definition: xolehlp.c:151
LONG ref
Definition: xolehlp.c:261
XACTTRANSINFO info
Definition: xolehlp.c:262
ITransaction ITransaction_iface
Definition: xolehlp.c:260
ULONG ulTimeout
Definition: transact.idl:144
char szDescription[40]
Definition: transact.idl:145
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
int ret
char * host
Definition: whois.c:55
#define ZeroMemory
Definition: winbase.h:1712
#define MAX_COMPUTERNAME_LENGTH
Definition: winbase.h:243
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
Definition: wincrypt.h:6082
#define WINAPI
Definition: msvc.h:6
#define E_NOINTERFACE
Definition: winerror.h:2364
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:2662
__wchar_t WCHAR
Definition: xmlstorage.h:180
char CHAR
Definition: xmlstorage.h:175
static const IResourceManagerFactory2Vtbl ResourceManagerFactory2_Vtbl
Definition: xolehlp.c:517
static const ITransactionImportWhereaboutsVtbl TransactionImportWhereabouts_Vtbl
Definition: xolehlp.c:567
static ResourceManager * impl_from_IResourceManager(IResourceManager *iface)
Definition: xolehlp.c:38
static ULONG WINAPI TransactionDispenser_AddRef(ITransactionDispenser *iface)
Definition: xolehlp.c:424
static HRESULT WINAPI TransactionImportWhereabouts_QueryInterface(ITransactionImportWhereabouts *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:530
static HRESULT WINAPI TransactionOptions_GetOptions(ITransactionOptions *iface, XACTOPT *pOptions)
Definition: xolehlp.c:219
static HRESULT WINAPI ResourceManager_GetDistributedTransactionManager(IResourceManager *iface, REFIID iid, void **ppvObject)
Definition: xolehlp.c:110
static TransactionManager * impl_from_ITransactionImport(ITransactionImport *iface)
Definition: xolehlp.c:575
static ULONG WINAPI ResourceManager_Release(IResourceManager *iface)
Definition: xolehlp.c:77
static BOOL is_local_machineA(const CHAR *server)
Definition: xolehlp.c:649
static HRESULT WINAPI Transaction_QueryInterface(ITransaction *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:270
static HRESULT WINAPI ResourceManagerFactory2_Create(IResourceManagerFactory2 *iface, GUID *pguidRM, CHAR *pszRMName, IResourceManagerSink *pIResMgrSink, IResourceManager **ppResMgr)
Definition: xolehlp.c:502
static HRESULT WINAPI TransactionImport_QueryInterface(ITransactionImport *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:580
static HRESULT WINAPI TransactionOptions_SetOptions(ITransactionOptions *iface, XACTOPT *pOptions)
Definition: xolehlp.c:209
BOOL WINAPI DllMain(HINSTANCE hinst, DWORD reason, LPVOID reserved)
Definition: xolehlp.c:634
static HRESULT WINAPI ResourceManager_ReenlistmentComplete(IResourceManager *iface)
Definition: xolehlp.c:105
static HRESULT WINAPI TransactionImportWhereabouts_GetWhereaboutsSize(ITransactionImportWhereabouts *iface, ULONG *pcbWhereabouts)
Definition: xolehlp.c:548
HRESULT CDECL DtcGetTransactionManager(char *host, char *tm_name, REFIID riid, DWORD dwReserved1, WORD wcbReserved2, void *pvReserved2, void **ppv)
Definition: xolehlp.c:670
static ULONG WINAPI ResourceManagerFactory2_Release(IResourceManagerFactory2 *iface)
Definition: xolehlp.c:497
static ULONG WINAPI TransactionImport_AddRef(ITransactionImport *iface)
Definition: xolehlp.c:587
static ULONG WINAPI Transaction_AddRef(ITransaction *iface)
Definition: xolehlp.c:294
static const ITransactionVtbl Transaction_Vtbl
Definition: xolehlp.c:340
static HRESULT WINAPI ResourceManagerFactory2_QueryInterface(IResourceManagerFactory2 *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:484
static TransactionManager * impl_from_ITransactionDispenser(ITransactionDispenser *iface)
Definition: xolehlp.c:382
static HRESULT WINAPI TransactionImportWhereabouts_GetWhereabouts(ITransactionImportWhereabouts *iface, ULONG cbWhereabouts, BYTE *rgbWhereabouts, ULONG *pcbUsed)
Definition: xolehlp.c:557
static HRESULT TransactionManager_Create(REFIID riid, void **ppv)
Definition: xolehlp.c:613
static ULONG WINAPI Transaction_Release(ITransaction *iface)
Definition: xolehlp.c:304
static const ITransactionOptionsVtbl TransactionOptions_Vtbl
Definition: xolehlp.c:230
static HRESULT TransactionOptions_Create(ITransactionOptions **ppv)
Definition: xolehlp.c:238
static const IResourceManagerVtbl ResourceManager_Vtbl
Definition: xolehlp.c:117
static const ITransactionImportVtbl TransactionImport_Vtbl
Definition: xolehlp.c:606
static BOOL is_local_machineW(const WCHAR *server)
Definition: xolehlp.c:659
HRESULT CDECL DtcGetTransactionManagerExW(WCHAR *host, WCHAR *tm_name, REFIID riid, DWORD options, void *config, void **ppv)
Definition: xolehlp.c:698
static ULONG WINAPI TransactionDispenser_Release(ITransactionDispenser *iface)
Definition: xolehlp.c:434
static HRESULT WINAPI ResourceManager_QueryInterface(IResourceManager *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:43
static const ITransactionDispenserVtbl TransactionDispenser_Vtbl
Definition: xolehlp.c:471
static Transaction * impl_from_ITransaction(ITransaction *iface)
Definition: xolehlp.c:265
static ULONG WINAPI ResourceManager_AddRef(IResourceManager *iface)
Definition: xolehlp.c:67
static ULONG WINAPI TransactionOptions_AddRef(ITransactionOptions *iface)
Definition: xolehlp.c:185
static ULONG WINAPI TransactionImport_Release(ITransactionImport *iface)
Definition: xolehlp.c:593
static HRESULT WINAPI ResourceManager_Reenlist(IResourceManager *iface, byte *pPrepInfo, ULONG cbPrepInfo, DWORD lTimeout, XACTSTAT *pXactStat)
Definition: xolehlp.c:99
static HRESULT WINAPI ResourceManagerFactory2_CreateEx(IResourceManagerFactory2 *iface, GUID *pguidRM, CHAR *pszRMName, IResourceManagerSink *pIResMgrSink, REFIID riidRequested, void **ppResMgr)
Definition: xolehlp.c:509
static TransactionManager * impl_from_ITransactionImportWhereabouts(ITransactionImportWhereabouts *iface)
Definition: xolehlp.c:525
static HRESULT WINAPI TransactionDispenser_BeginTransaction(ITransactionDispenser *iface, IUnknown *punkOuter, ISOLEVEL isoLevel, ULONG isoFlags, ITransactionOptions *pOptions, ITransaction **ppTransaction)
Definition: xolehlp.c:457
static HRESULT WINAPI TransactionDispenser_GetOptionsObject(ITransactionDispenser *iface, ITransactionOptions **ppOptions)
Definition: xolehlp.c:449
static HRESULT WINAPI TransactionOptions_QueryInterface(ITransactionOptions *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:161
static HRESULT WINAPI Transaction_Commit(ITransaction *iface, BOOL fRetaining, DWORD grfTC, DWORD grfRM)
Definition: xolehlp.c:318
static TransactionManager * impl_from_IResourceManagerFactory2(IResourceManagerFactory2 *iface)
Definition: xolehlp.c:479
static ULONG WINAPI TransactionOptions_Release(ITransactionOptions *iface)
Definition: xolehlp.c:195
static HRESULT WINAPI ResourceManager_Enlist(IResourceManager *iface, ITransaction *pTransaction, ITransactionResourceAsync *pRes, XACTUOW *pUOW, LONG *pisoLevel, ITransactionEnlistmentAsync **ppEnlist)
Definition: xolehlp.c:91
static HRESULT WINAPI TransactionDispenser_QueryInterface(ITransactionDispenser *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:387
static ULONG WINAPI ResourceManagerFactory2_AddRef(IResourceManagerFactory2 *iface)
Definition: xolehlp.c:491
static HRESULT WINAPI Transaction_GetTransactionInfo(ITransaction *iface, XACTTRANSINFO *pinfo)
Definition: xolehlp.c:330
static TransactionOptions * impl_from_ITransactionOptions(ITransactionOptions *iface)
Definition: xolehlp.c:156
HRESULT CDECL DtcGetTransactionManagerExA(CHAR *host, CHAR *tm_name, REFIID riid, DWORD options, void *config, void **ppv)
Definition: xolehlp.c:684
static ULONG WINAPI TransactionImportWhereabouts_Release(ITransactionImportWhereabouts *iface)
Definition: xolehlp.c:543
static HRESULT WINAPI TransactionImport_Import(ITransactionImport *iface, ULONG cbTransactionCookie, byte *rgbTransactionCookie, IID *piid, void **ppvTransaction)
Definition: xolehlp.c:598
static ULONG WINAPI TransactionImportWhereabouts_AddRef(ITransactionImportWhereabouts *iface)
Definition: xolehlp.c:537
static HRESULT ResourceManager_Create(REFIID riid, void **ppv)
Definition: xolehlp.c:127
static HRESULT WINAPI Transaction_Abort(ITransaction *iface, BOID *pboidReason, BOOL fRetaining, BOOL fAsync)
Definition: xolehlp.c:324
static HRESULT Transaction_Create(ISOLEVEL isoLevel, ULONG isoFlags, ITransactionOptions *pOptions, ITransaction **ppv)
Definition: xolehlp.c:349
unsigned char BYTE
Definition: xxhash.c:193