ReactOS 0.4.17-dev-934-g091855f
xolehlp.c File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "transact.h"
#include "initguid.h"
#include "txdtc.h"
#include "wine/debug.h"
Include dependency graph for xolehlp.c:

Go to the source code of this file.

Classes

struct  ResourceManager
 
struct  TransactionOptions
 
struct  Transaction
 
struct  TransactionManager
 

Macros

#define COBJMACROS
 

Functions

 WINE_DEFAULT_DEBUG_CHANNEL (xolehlp)
 
static ResourceManager * impl_from_IResourceManager (IResourceManager *iface)
 
static HRESULT WINAPI ResourceManager_QueryInterface (IResourceManager *iface, REFIID iid, void **ppv)
 
static ULONG WINAPI ResourceManager_AddRef (IResourceManager *iface)
 
static ULONG WINAPI ResourceManager_Release (IResourceManager *iface)
 
static HRESULT WINAPI ResourceManager_Enlist (IResourceManager *iface, ITransaction *pTransaction, ITransactionResourceAsync *pRes, XACTUOW *pUOW, LONG *pisoLevel, ITransactionEnlistmentAsync **ppEnlist)
 
static HRESULT WINAPI ResourceManager_Reenlist (IResourceManager *iface, byte *pPrepInfo, ULONG cbPrepInfo, DWORD lTimeout, XACTSTAT *pXactStat)
 
static HRESULT WINAPI ResourceManager_ReenlistmentComplete (IResourceManager *iface)
 
static HRESULT WINAPI ResourceManager_GetDistributedTransactionManager (IResourceManager *iface, REFIID iid, void **ppvObject)
 
static HRESULT ResourceManager_Create (REFIID riid, void **ppv)
 
static TransactionOptions * impl_from_ITransactionOptions (ITransactionOptions *iface)
 
static HRESULT WINAPI TransactionOptions_QueryInterface (ITransactionOptions *iface, REFIID iid, void **ppv)
 
static ULONG WINAPI TransactionOptions_AddRef (ITransactionOptions *iface)
 
static ULONG WINAPI TransactionOptions_Release (ITransactionOptions *iface)
 
static HRESULT WINAPI TransactionOptions_SetOptions (ITransactionOptions *iface, XACTOPT *pOptions)
 
static HRESULT WINAPI TransactionOptions_GetOptions (ITransactionOptions *iface, XACTOPT *pOptions)
 
static HRESULT TransactionOptions_Create (ITransactionOptions **ppv)
 
static Transaction * impl_from_ITransaction (ITransaction *iface)
 
static HRESULT WINAPI Transaction_QueryInterface (ITransaction *iface, REFIID iid, void **ppv)
 
static ULONG WINAPI Transaction_AddRef (ITransaction *iface)
 
static ULONG WINAPI Transaction_Release (ITransaction *iface)
 
static HRESULT WINAPI Transaction_Commit (ITransaction *iface, BOOL fRetaining, DWORD grfTC, DWORD grfRM)
 
static HRESULT WINAPI Transaction_Abort (ITransaction *iface, BOID *pboidReason, BOOL fRetaining, BOOL fAsync)
 
static HRESULT WINAPI Transaction_GetTransactionInfo (ITransaction *iface, XACTTRANSINFO *pinfo)
 
static HRESULT Transaction_Create (ISOLEVEL isoLevel, ULONG isoFlags, ITransactionOptions *pOptions, ITransaction **ppv)
 
static TransactionManager * impl_from_ITransactionDispenser (ITransactionDispenser *iface)
 
static HRESULT WINAPI TransactionDispenser_QueryInterface (ITransactionDispenser *iface, REFIID iid, void **ppv)
 
static ULONG WINAPI TransactionDispenser_AddRef (ITransactionDispenser *iface)
 
static ULONG WINAPI TransactionDispenser_Release (ITransactionDispenser *iface)
 
static HRESULT WINAPI TransactionDispenser_GetOptionsObject (ITransactionDispenser *iface, ITransactionOptions **ppOptions)
 
static HRESULT WINAPI TransactionDispenser_BeginTransaction (ITransactionDispenser *iface, IUnknown *punkOuter, ISOLEVEL isoLevel, ULONG isoFlags, ITransactionOptions *pOptions, ITransaction **ppTransaction)
 
static TransactionManager * impl_from_IResourceManagerFactory2 (IResourceManagerFactory2 *iface)
 
static HRESULT WINAPI ResourceManagerFactory2_QueryInterface (IResourceManagerFactory2 *iface, REFIID iid, void **ppv)
 
static ULONG WINAPI ResourceManagerFactory2_AddRef (IResourceManagerFactory2 *iface)
 
static ULONG WINAPI ResourceManagerFactory2_Release (IResourceManagerFactory2 *iface)
 
static HRESULT WINAPI ResourceManagerFactory2_Create (IResourceManagerFactory2 *iface, GUID *pguidRM, CHAR *pszRMName, IResourceManagerSink *pIResMgrSink, IResourceManager **ppResMgr)
 
static HRESULT WINAPI ResourceManagerFactory2_CreateEx (IResourceManagerFactory2 *iface, GUID *pguidRM, CHAR *pszRMName, IResourceManagerSink *pIResMgrSink, REFIID riidRequested, void **ppResMgr)
 
static TransactionManager * impl_from_ITransactionImportWhereabouts (ITransactionImportWhereabouts *iface)
 
static HRESULT WINAPI TransactionImportWhereabouts_QueryInterface (ITransactionImportWhereabouts *iface, REFIID iid, void **ppv)
 
static ULONG WINAPI TransactionImportWhereabouts_AddRef (ITransactionImportWhereabouts *iface)
 
static ULONG WINAPI TransactionImportWhereabouts_Release (ITransactionImportWhereabouts *iface)
 
static HRESULT WINAPI TransactionImportWhereabouts_GetWhereaboutsSize (ITransactionImportWhereabouts *iface, ULONG *pcbWhereabouts)
 
static HRESULT WINAPI TransactionImportWhereabouts_GetWhereabouts (ITransactionImportWhereabouts *iface, ULONG cbWhereabouts, BYTE *rgbWhereabouts, ULONG *pcbUsed)
 
static TransactionManager * impl_from_ITransactionImport (ITransactionImport *iface)
 
static HRESULT WINAPI TransactionImport_QueryInterface (ITransactionImport *iface, REFIID iid, void **ppv)
 
static ULONG WINAPI TransactionImport_AddRef (ITransactionImport *iface)
 
static ULONG WINAPI TransactionImport_Release (ITransactionImport *iface)
 
static HRESULT WINAPI TransactionImport_Import (ITransactionImport *iface, ULONG cbTransactionCookie, byte *rgbTransactionCookie, IID *piid, void **ppvTransaction)
 
static HRESULT TransactionManager_Create (REFIID riid, void **ppv)
 
static BOOL is_local_machineA (const CHAR *server)
 
static BOOL is_local_machineW (const WCHAR *server)
 
HRESULT CDECL DtcGetTransactionManager (char *host, char *tm_name, REFIID riid, DWORD dwReserved1, WORD wcbReserved2, void *pvReserved2, void **ppv)
 
HRESULT CDECL DtcGetTransactionManagerExA (CHAR *host, CHAR *tm_name, REFIID riid, DWORD options, void *config, void **ppv)
 
HRESULT CDECL DtcGetTransactionManagerExW (WCHAR *host, WCHAR *tm_name, REFIID riid, DWORD options, void *config, void **ppv)
 

Variables

static const IResourceManagerVtbl ResourceManager_Vtbl
 
static const ITransactionOptionsVtbl TransactionOptions_Vtbl
 
static const ITransactionVtbl Transaction_Vtbl
 
static const ITransactionDispenserVtbl TransactionDispenser_Vtbl
 
static const IResourceManagerFactory2Vtbl ResourceManagerFactory2_Vtbl
 
static const ITransactionImportWhereaboutsVtbl TransactionImportWhereabouts_Vtbl
 
static const ITransactionImportVtbl TransactionImport_Vtbl
 

Macro Definition Documentation

◆ COBJMACROS

#define COBJMACROS

Definition at line 20 of file xolehlp.c.

Function Documentation

◆ DtcGetTransactionManager()

HRESULT CDECL DtcGetTransactionManager ( char *  host,
char *  tm_name,
REFIID  riid,
DWORD  dwReserved1,
WORD  wcbReserved2,
void *  pvReserved2,
void **  ppv 
)

Definition at line 652 of file xolehlp.c.

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}
#define FIXME(fmt,...)
Definition: precomp.h:53
#define E_NOTIMPL
Definition: ddrawi.h:99
REFIID riid
Definition: atlbase.h:39
REFIID LPVOID * ppv
Definition: atlbase.h:39
#define debugstr_guid
Definition: kernel32.h:35
#define debugstr_a
Definition: kernel32.h:31
#define TRACE(s)
Definition: solgame.cpp:4
Definition: txthost.c:37
static BOOL is_local_machineA(const CHAR *server)
Definition: xolehlp.c:632
static HRESULT TransactionManager_Create(REFIID riid, void **ppv)
Definition: xolehlp.c:611

◆ DtcGetTransactionManagerExA()

HRESULT CDECL DtcGetTransactionManagerExA ( CHAR *  host,
CHAR *  tm_name,
REFIID  riid,
DWORD  options,
void *  config,
void **  ppv 
)

Definition at line 666 of file xolehlp.c.

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}

◆ DtcGetTransactionManagerExW()

HRESULT CDECL DtcGetTransactionManagerExW ( WCHAR *  host,
WCHAR *  tm_name,
REFIID  riid,
DWORD  options,
void *  config,
void **  ppv 
)

Definition at line 680 of file xolehlp.c.

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 debugstr_w
Definition: kernel32.h:32
static BOOL is_local_machineW(const WCHAR *server)
Definition: xolehlp.c:642

◆ impl_from_IResourceManager()

static ResourceManager * impl_from_IResourceManager ( IResourceManager *  iface)
inlinestatic

Definition at line 37 of file xolehlp.c.

38{
39 return CONTAINING_RECORD(iface, ResourceManager, IResourceManager_iface);
40}
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260

Referenced by ResourceManager_AddRef(), ResourceManager_QueryInterface(), and ResourceManager_Release().

◆ impl_from_IResourceManagerFactory2()

static TransactionManager * impl_from_IResourceManagerFactory2 ( IResourceManagerFactory2 *  iface)
inlinestatic

Definition at line 477 of file xolehlp.c.

478{
479 return CONTAINING_RECORD(iface, TransactionManager, IResourceManagerFactory2_iface);
480}

Referenced by ResourceManagerFactory2_AddRef(), ResourceManagerFactory2_QueryInterface(), and ResourceManagerFactory2_Release().

◆ impl_from_ITransaction()

static Transaction * impl_from_ITransaction ( ITransaction *  iface)
inlinestatic

Definition at line 264 of file xolehlp.c.

265{
266 return CONTAINING_RECORD(iface, Transaction, ITransaction_iface);
267}

Referenced by Transaction_AddRef(), Transaction_GetTransactionInfo(), Transaction_QueryInterface(), and Transaction_Release().

◆ impl_from_ITransactionDispenser()

static TransactionManager * impl_from_ITransactionDispenser ( ITransactionDispenser *  iface)
inlinestatic

Definition at line 380 of file xolehlp.c.

381{
382 return CONTAINING_RECORD(iface, TransactionManager, ITransactionDispenser_iface);
383}

Referenced by TransactionDispenser_AddRef(), TransactionDispenser_QueryInterface(), and TransactionDispenser_Release().

◆ impl_from_ITransactionImport()

static TransactionManager * impl_from_ITransactionImport ( ITransactionImport *  iface)
inlinestatic

Definition at line 573 of file xolehlp.c.

574{
575 return CONTAINING_RECORD(iface, TransactionManager, ITransactionImport_iface);
576}

Referenced by TransactionImport_AddRef(), TransactionImport_QueryInterface(), and TransactionImport_Release().

◆ impl_from_ITransactionImportWhereabouts()

static TransactionManager * impl_from_ITransactionImportWhereabouts ( ITransactionImportWhereabouts *  iface)
inlinestatic

Definition at line 523 of file xolehlp.c.

524{
525 return CONTAINING_RECORD(iface, TransactionManager, ITransactionImportWhereabouts_iface);
526}

Referenced by TransactionImportWhereabouts_AddRef(), TransactionImportWhereabouts_QueryInterface(), and TransactionImportWhereabouts_Release().

◆ impl_from_ITransactionOptions()

static TransactionOptions * impl_from_ITransactionOptions ( ITransactionOptions *  iface)
inlinestatic

◆ is_local_machineA()

static BOOL is_local_machineA ( const CHAR *  server)
static

Definition at line 632 of file xolehlp.c.

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}
#define ARRAY_SIZE(A)
Definition: main.h:20
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
int WINAPI lstrcmpiA(LPCSTR str1, LPCSTR str2)
Definition: locale.c:4133
_ACRTIMP int __cdecl strcmp(const char *, const char *)
Definition: string.c:3324
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint buffer
Definition: glext.h:5915
GLenum GLsizei len
Definition: glext.h:6722
char CHAR
Definition: pedump.c:57
BOOL WINAPI SHIM_OBJ_NAME() GetComputerNameA(LPSTR lpBuffer, LPDWORD lpnSize)
Definition: shimtest.c:21
static rfbScreenInfoPtr server
Definition: vnc.c:74
#define MAX_COMPUTERNAME_LENGTH
Definition: winbase.h:268

Referenced by DtcGetTransactionManager(), and DtcGetTransactionManagerExA().

◆ is_local_machineW()

static BOOL is_local_machineW ( const WCHAR *  server)
static

Definition at line 642 of file xolehlp.c.

643{
646
647 if (!server || !wcscmp( server, L"." )) return TRUE;
648 if (GetComputerNameW( buffer, &len ) && !wcsicmp( server, buffer )) return TRUE;
649 return FALSE;
650}
BOOL WINAPI GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize)
Definition: compname.c:446
#define wcsicmp
Definition: compat.h:15
_ACRTIMP int __cdecl wcscmp(const wchar_t *, const wchar_t *)
Definition: wcs.c:1977
#define L(x)
Definition: resources.c:13
short WCHAR
Definition: pedump.c:58

Referenced by DtcGetTransactionManagerExW().

◆ ResourceManager_AddRef()

static ULONG WINAPI ResourceManager_AddRef ( IResourceManager *  iface)
static

Definition at line 66 of file xolehlp.c.

67{
70
71 TRACE("(%p) refcount=%lu\n", iface, ref);
72
73 return ref;
74}
#define InterlockedIncrement
Definition: armddk.h:53
Definition: send.c:48
uint32_t ULONG
Definition: typedefs.h:59
static ResourceManager * impl_from_IResourceManager(IResourceManager *iface)
Definition: xolehlp.c:37

◆ ResourceManager_Create()

static HRESULT ResourceManager_Create ( REFIID  riid,
void **  ppv 
)
static

Definition at line 126 of file xolehlp.c.

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}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_INVALIDARG
Definition: ddrawi.h:101
#define malloc
Definition: debug_ros.c:4
return ret
Definition: mutex.c:147
static const IResourceManagerVtbl ResourceManager_Vtbl
Definition: xolehlp.c:116

Referenced by ResourceManagerFactory2_Create(), and ResourceManagerFactory2_CreateEx().

◆ ResourceManager_Enlist()

static HRESULT WINAPI ResourceManager_Enlist ( IResourceManager *  iface,
ITransaction *  pTransaction,
ITransactionResourceAsync *  pRes,
XACTUOW *  pUOW,
LONG *  pisoLevel,
ITransactionEnlistmentAsync **  ppEnlist 
)
static

Definition at line 90 of file xolehlp.c.

93{
94 FIXME("(%p, %p, %p, %p, %p, %p): stub\n", iface, pTransaction,pRes,pUOW,
95 pisoLevel,ppEnlist);
96 return E_NOTIMPL;
97}

◆ ResourceManager_GetDistributedTransactionManager()

static HRESULT WINAPI ResourceManager_GetDistributedTransactionManager ( IResourceManager *  iface,
REFIID  iid,
void **  ppvObject 
)
static

Definition at line 109 of file xolehlp.c.

111{
112 FIXME("(%p, %s, %p): stub\n", iface, debugstr_guid(iid), ppvObject);
113 return E_NOTIMPL;
114}

◆ ResourceManager_QueryInterface()

static HRESULT WINAPI ResourceManager_QueryInterface ( IResourceManager *  iface,
REFIID  iid,
void **  ppv 
)
static

Definition at line 42 of file xolehlp.c.

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}
const GUID IID_IUnknown
#define NULL
Definition: types.h:112
#define S_OK
Definition: intsafe.h:52
#define IsEqualIID(riid1, riid2)
Definition: guiddef.h:95
#define E_NOINTERFACE
Definition: winerror.h:3479

◆ ResourceManager_Reenlist()

static HRESULT WINAPI ResourceManager_Reenlist ( IResourceManager *  iface,
byte *  pPrepInfo,
ULONG  cbPrepInfo,
DWORD  lTimeout,
XACTSTAT *  pXactStat 
)
static

Definition at line 98 of file xolehlp.c.

100{
101 FIXME("(%p, %p, %lu, %lu, %p): stub\n", iface, pPrepInfo, cbPrepInfo, lTimeout, pXactStat);
102 return E_NOTIMPL;
103}

◆ ResourceManager_ReenlistmentComplete()

static HRESULT WINAPI ResourceManager_ReenlistmentComplete ( IResourceManager *  iface)
static

Definition at line 104 of file xolehlp.c.

105{
106 FIXME("(%p): stub\n", iface);
107 return S_OK;
108}

◆ ResourceManager_Release()

static ULONG WINAPI ResourceManager_Release ( IResourceManager *  iface)
static

Definition at line 76 of file xolehlp.c.

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}
#define InterlockedDecrement
Definition: armddk.h:52
#define free
Definition: debug_ros.c:5

◆ ResourceManagerFactory2_AddRef()

static ULONG WINAPI ResourceManagerFactory2_AddRef ( IResourceManagerFactory2 *  iface)
static

Definition at line 489 of file xolehlp.c.

490{
492 return TransactionDispenser_AddRef(&This->ITransactionDispenser_iface);
493}
static ULONG WINAPI TransactionDispenser_AddRef(ITransactionDispenser *iface)
Definition: xolehlp.c:422
static TransactionManager * impl_from_IResourceManagerFactory2(IResourceManagerFactory2 *iface)
Definition: xolehlp.c:477

◆ ResourceManagerFactory2_Create()

static HRESULT WINAPI ResourceManagerFactory2_Create ( IResourceManagerFactory2 *  iface,
GUID *  pguidRM,
CHAR *  pszRMName,
IResourceManagerSink *  pIResMgrSink,
IResourceManager **  ppResMgr 
)
static

Definition at line 500 of file xolehlp.c.

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}
static HRESULT ResourceManager_Create(REFIID riid, void **ppv)
Definition: xolehlp.c:126

◆ ResourceManagerFactory2_CreateEx()

static HRESULT WINAPI ResourceManagerFactory2_CreateEx ( IResourceManagerFactory2 *  iface,
GUID *  pguidRM,
CHAR *  pszRMName,
IResourceManagerSink *  pIResMgrSink,
REFIID  riidRequested,
void **  ppResMgr 
)
static

Definition at line 507 of file xolehlp.c.

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}

◆ ResourceManagerFactory2_QueryInterface()

static HRESULT WINAPI ResourceManagerFactory2_QueryInterface ( IResourceManagerFactory2 *  iface,
REFIID  iid,
void **  ppv 
)
static

Definition at line 482 of file xolehlp.c.

484{
486 return TransactionDispenser_QueryInterface(&This->ITransactionDispenser_iface, iid, ppv);
487}
static HRESULT WINAPI TransactionDispenser_QueryInterface(ITransactionDispenser *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:385

◆ ResourceManagerFactory2_Release()

static ULONG WINAPI ResourceManagerFactory2_Release ( IResourceManagerFactory2 *  iface)
static

Definition at line 495 of file xolehlp.c.

496{
498 return TransactionDispenser_Release(&This->ITransactionDispenser_iface);
499}
static ULONG WINAPI TransactionDispenser_Release(ITransactionDispenser *iface)
Definition: xolehlp.c:432

◆ Transaction_Abort()

static HRESULT WINAPI Transaction_Abort ( ITransaction *  iface,
BOID *  pboidReason,
BOOL  fRetaining,
BOOL  fAsync 
)
static

Definition at line 323 of file xolehlp.c.

325{
326 FIXME("(%p, %p, %d, %d): stub\n", iface, pboidReason, fRetaining, fAsync);
327 return E_NOTIMPL;
328}

◆ Transaction_AddRef()

static ULONG WINAPI Transaction_AddRef ( ITransaction *  iface)
static

Definition at line 293 of file xolehlp.c.

294{
297
298 TRACE("(%p) refcount=%lu\n", iface, ref);
299
300 return ref;
301}
static Transaction * impl_from_ITransaction(ITransaction *iface)
Definition: xolehlp.c:264

◆ Transaction_Commit()

static HRESULT WINAPI Transaction_Commit ( ITransaction *  iface,
BOOL  fRetaining,
DWORD  grfTC,
DWORD  grfRM 
)
static

Definition at line 317 of file xolehlp.c.

319{
320 FIXME("(%p, %d, %08lx, %08lx): stub\n", iface, fRetaining, grfTC, grfRM);
321 return E_NOTIMPL;
322}

◆ Transaction_Create()

static HRESULT Transaction_Create ( ISOLEVEL  isoLevel,
ULONG  isoFlags,
ITransactionOptions *  pOptions,
ITransaction **  ppv 
)
static

Definition at line 348 of file xolehlp.c.

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}
#define calloc
Definition: rosglue.h:14
static const ITransactionVtbl Transaction_Vtbl
Definition: xolehlp.c:339

Referenced by TransactionDispenser_BeginTransaction().

◆ Transaction_GetTransactionInfo()

static HRESULT WINAPI Transaction_GetTransactionInfo ( ITransaction *  iface,
XACTTRANSINFO *  pinfo 
)
static

Definition at line 329 of file xolehlp.c.

331{
333 TRACE("(%p, %p)\n", iface, pinfo);
334 if (!pinfo) return E_INVALIDARG;
335 *pinfo = This->info;
336 return S_OK;
337}

◆ Transaction_QueryInterface()

static HRESULT WINAPI Transaction_QueryInterface ( ITransaction *  iface,
REFIID  iid,
void **  ppv 
)
static

Definition at line 269 of file xolehlp.c.

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}

◆ Transaction_Release()

static ULONG WINAPI Transaction_Release ( ITransaction *  iface)
static

Definition at line 303 of file xolehlp.c.

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}

◆ TransactionDispenser_AddRef()

static ULONG WINAPI TransactionDispenser_AddRef ( ITransactionDispenser *  iface)
static

Definition at line 422 of file xolehlp.c.

423{
426
427 TRACE("(%p) refcount=%lu\n", iface, ref);
428
429 return ref;
430}
static TransactionManager * impl_from_ITransactionDispenser(ITransactionDispenser *iface)
Definition: xolehlp.c:380

Referenced by ResourceManagerFactory2_AddRef(), TransactionImport_AddRef(), and TransactionImportWhereabouts_AddRef().

◆ TransactionDispenser_BeginTransaction()

static HRESULT WINAPI TransactionDispenser_BeginTransaction ( ITransactionDispenser *  iface,
IUnknown *  punkOuter,
ISOLEVEL  isoLevel,
ULONG  isoFlags,
ITransactionOptions *  pOptions,
ITransaction **  ppTransaction 
)
static

Definition at line 455 of file xolehlp.c.

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}
#define CLASS_E_NOAGGREGATION
Definition: winerror.h:3771
static HRESULT Transaction_Create(ISOLEVEL isoLevel, ULONG isoFlags, ITransactionOptions *pOptions, ITransaction **ppv)
Definition: xolehlp.c:348

◆ TransactionDispenser_GetOptionsObject()

static HRESULT WINAPI TransactionDispenser_GetOptionsObject ( ITransactionDispenser *  iface,
ITransactionOptions **  ppOptions 
)
static

Definition at line 447 of file xolehlp.c.

449{
450 TRACE("(%p, %p)\n", iface, ppOptions);
451
452 if (!ppOptions) return E_INVALIDARG;
454}
LPAVICOMPRESSOPTIONS * ppOptions
Definition: api.c:62
static HRESULT TransactionOptions_Create(ITransactionOptions **ppv)
Definition: xolehlp.c:237

◆ TransactionDispenser_QueryInterface()

static HRESULT WINAPI TransactionDispenser_QueryInterface ( ITransactionDispenser *  iface,
REFIID  iid,
void **  ppv 
)
static

Definition at line 385 of file xolehlp.c.

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}

Referenced by ResourceManagerFactory2_QueryInterface(), TransactionImport_QueryInterface(), and TransactionImportWhereabouts_QueryInterface().

◆ TransactionDispenser_Release()

static ULONG WINAPI TransactionDispenser_Release ( ITransactionDispenser *  iface)
static

Definition at line 432 of file xolehlp.c.

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}

Referenced by ResourceManagerFactory2_Release(), TransactionImport_Release(), and TransactionImportWhereabouts_Release().

◆ TransactionImport_AddRef()

static ULONG WINAPI TransactionImport_AddRef ( ITransactionImport *  iface)
static

Definition at line 585 of file xolehlp.c.

586{
588 return TransactionDispenser_AddRef(&This->ITransactionDispenser_iface);
589}
static TransactionManager * impl_from_ITransactionImport(ITransactionImport *iface)
Definition: xolehlp.c:573

◆ TransactionImport_Import()

static HRESULT WINAPI TransactionImport_Import ( ITransactionImport *  iface,
ULONG  cbTransactionCookie,
byte *  rgbTransactionCookie,
IID *  piid,
void **  ppvTransaction 
)
static

Definition at line 596 of file xolehlp.c.

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}

◆ TransactionImport_QueryInterface()

static HRESULT WINAPI TransactionImport_QueryInterface ( ITransactionImport *  iface,
REFIID  iid,
void **  ppv 
)
static

Definition at line 578 of file xolehlp.c.

580{
582 return TransactionDispenser_QueryInterface(&This->ITransactionDispenser_iface, iid, ppv);
583}

◆ TransactionImport_Release()

static ULONG WINAPI TransactionImport_Release ( ITransactionImport *  iface)
static

Definition at line 591 of file xolehlp.c.

592{
594 return TransactionDispenser_Release(&This->ITransactionDispenser_iface);
595}

◆ TransactionImportWhereabouts_AddRef()

static ULONG WINAPI TransactionImportWhereabouts_AddRef ( ITransactionImportWhereabouts *  iface)
static

Definition at line 535 of file xolehlp.c.

536{
538 return TransactionDispenser_AddRef(&This->ITransactionDispenser_iface);
539}
static TransactionManager * impl_from_ITransactionImportWhereabouts(ITransactionImportWhereabouts *iface)
Definition: xolehlp.c:523

◆ TransactionImportWhereabouts_GetWhereabouts()

static HRESULT WINAPI TransactionImportWhereabouts_GetWhereabouts ( ITransactionImportWhereabouts *  iface,
ULONG  cbWhereabouts,
BYTE *  rgbWhereabouts,
ULONG *  pcbUsed 
)
static

Definition at line 555 of file xolehlp.c.

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}

◆ TransactionImportWhereabouts_GetWhereaboutsSize()

static HRESULT WINAPI TransactionImportWhereabouts_GetWhereaboutsSize ( ITransactionImportWhereabouts *  iface,
ULONG *  pcbWhereabouts 
)
static

Definition at line 546 of file xolehlp.c.

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}

◆ TransactionImportWhereabouts_QueryInterface()

static HRESULT WINAPI TransactionImportWhereabouts_QueryInterface ( ITransactionImportWhereabouts *  iface,
REFIID  iid,
void **  ppv 
)
static

Definition at line 528 of file xolehlp.c.

530{
532 return TransactionDispenser_QueryInterface(&This->ITransactionDispenser_iface, iid, ppv);
533}

◆ TransactionImportWhereabouts_Release()

static ULONG WINAPI TransactionImportWhereabouts_Release ( ITransactionImportWhereabouts *  iface)
static

Definition at line 541 of file xolehlp.c.

542{
544 return TransactionDispenser_Release(&This->ITransactionDispenser_iface);
545}

◆ TransactionManager_Create()

static HRESULT TransactionManager_Create ( REFIID  riid,
void **  ppv 
)
static

Definition at line 611 of file xolehlp.c.

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}
static const IResourceManagerFactory2Vtbl ResourceManagerFactory2_Vtbl
Definition: xolehlp.c:515
static const ITransactionImportWhereaboutsVtbl TransactionImportWhereabouts_Vtbl
Definition: xolehlp.c:565
static const ITransactionImportVtbl TransactionImport_Vtbl
Definition: xolehlp.c:604
static const ITransactionDispenserVtbl TransactionDispenser_Vtbl
Definition: xolehlp.c:469

Referenced by DtcGetTransactionManager(), DtcGetTransactionManagerExA(), and DtcGetTransactionManagerExW().

◆ TransactionOptions_AddRef()

static ULONG WINAPI TransactionOptions_AddRef ( ITransactionOptions *  iface)
static

Definition at line 184 of file xolehlp.c.

185{
188
189 TRACE("(%p) refcount=%lu\n", iface, ref);
190
191 return ref;
192}
static TransactionOptions * impl_from_ITransactionOptions(ITransactionOptions *iface)
Definition: xolehlp.c:155

◆ TransactionOptions_Create()

static HRESULT TransactionOptions_Create ( ITransactionOptions **  ppv)
static

Definition at line 237 of file xolehlp.c.

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}
static const ITransactionOptionsVtbl TransactionOptions_Vtbl
Definition: xolehlp.c:229

Referenced by TransactionDispenser_GetOptionsObject().

◆ TransactionOptions_GetOptions()

static HRESULT WINAPI TransactionOptions_GetOptions ( ITransactionOptions *  iface,
XACTOPT *  pOptions 
)
static

Definition at line 218 of file xolehlp.c.

220{
222
223 TRACE("(%p, %p)\n", iface, pOptions);
224 if (!pOptions) return E_INVALIDARG;
225 *pOptions = This->opts;
226 return S_OK;
227}

◆ TransactionOptions_QueryInterface()

static HRESULT WINAPI TransactionOptions_QueryInterface ( ITransactionOptions *  iface,
REFIID  iid,
void **  ppv 
)
static

Definition at line 160 of file xolehlp.c.

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}

◆ TransactionOptions_Release()

static ULONG WINAPI TransactionOptions_Release ( ITransactionOptions *  iface)
static

Definition at line 194 of file xolehlp.c.

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}

◆ TransactionOptions_SetOptions()

static HRESULT WINAPI TransactionOptions_SetOptions ( ITransactionOptions *  iface,
XACTOPT *  pOptions 
)
static

Definition at line 208 of file xolehlp.c.

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}
ULONG ulTimeout
Definition: transact.idl:144
char szDescription[40]
Definition: transact.idl:145

◆ WINE_DEFAULT_DEBUG_CHANNEL()

WINE_DEFAULT_DEBUG_CHANNEL ( xolehlp  )

Variable Documentation

◆ ResourceManager_Vtbl

const IResourceManagerVtbl ResourceManager_Vtbl
static
Initial value:
= {
}
static HRESULT WINAPI ResourceManager_GetDistributedTransactionManager(IResourceManager *iface, REFIID iid, void **ppvObject)
Definition: xolehlp.c:109
static ULONG WINAPI ResourceManager_Release(IResourceManager *iface)
Definition: xolehlp.c:76
static HRESULT WINAPI ResourceManager_ReenlistmentComplete(IResourceManager *iface)
Definition: xolehlp.c:104
static HRESULT WINAPI ResourceManager_QueryInterface(IResourceManager *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:42
static ULONG WINAPI ResourceManager_AddRef(IResourceManager *iface)
Definition: xolehlp.c:66
static HRESULT WINAPI ResourceManager_Reenlist(IResourceManager *iface, byte *pPrepInfo, ULONG cbPrepInfo, DWORD lTimeout, XACTSTAT *pXactStat)
Definition: xolehlp.c:98
static HRESULT WINAPI ResourceManager_Enlist(IResourceManager *iface, ITransaction *pTransaction, ITransactionResourceAsync *pRes, XACTUOW *pUOW, LONG *pisoLevel, ITransactionEnlistmentAsync **ppEnlist)
Definition: xolehlp.c:90

Definition at line 116 of file xolehlp.c.

Referenced by ResourceManager_Create().

◆ ResourceManagerFactory2_Vtbl

const IResourceManagerFactory2Vtbl ResourceManagerFactory2_Vtbl
static
Initial value:
= {
}
static HRESULT WINAPI ResourceManagerFactory2_Create(IResourceManagerFactory2 *iface, GUID *pguidRM, CHAR *pszRMName, IResourceManagerSink *pIResMgrSink, IResourceManager **ppResMgr)
Definition: xolehlp.c:500
static ULONG WINAPI ResourceManagerFactory2_Release(IResourceManagerFactory2 *iface)
Definition: xolehlp.c:495
static HRESULT WINAPI ResourceManagerFactory2_QueryInterface(IResourceManagerFactory2 *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:482
static HRESULT WINAPI ResourceManagerFactory2_CreateEx(IResourceManagerFactory2 *iface, GUID *pguidRM, CHAR *pszRMName, IResourceManagerSink *pIResMgrSink, REFIID riidRequested, void **ppResMgr)
Definition: xolehlp.c:507
static ULONG WINAPI ResourceManagerFactory2_AddRef(IResourceManagerFactory2 *iface)
Definition: xolehlp.c:489

Definition at line 515 of file xolehlp.c.

Referenced by TransactionManager_Create().

◆ Transaction_Vtbl

const ITransactionVtbl Transaction_Vtbl
static
Initial value:
= {
}
static HRESULT WINAPI Transaction_QueryInterface(ITransaction *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:269
static ULONG WINAPI Transaction_AddRef(ITransaction *iface)
Definition: xolehlp.c:293
static ULONG WINAPI Transaction_Release(ITransaction *iface)
Definition: xolehlp.c:303
static HRESULT WINAPI Transaction_Commit(ITransaction *iface, BOOL fRetaining, DWORD grfTC, DWORD grfRM)
Definition: xolehlp.c:317
static HRESULT WINAPI Transaction_GetTransactionInfo(ITransaction *iface, XACTTRANSINFO *pinfo)
Definition: xolehlp.c:329
static HRESULT WINAPI Transaction_Abort(ITransaction *iface, BOID *pboidReason, BOOL fRetaining, BOOL fAsync)
Definition: xolehlp.c:323

Definition at line 339 of file xolehlp.c.

Referenced by Transaction_Create().

◆ TransactionDispenser_Vtbl

const ITransactionDispenserVtbl TransactionDispenser_Vtbl
static
Initial value:
= {
}
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

Definition at line 469 of file xolehlp.c.

Referenced by TransactionManager_Create().

◆ TransactionImport_Vtbl

const ITransactionImportVtbl TransactionImport_Vtbl
static
Initial value:
= {
}
static HRESULT WINAPI TransactionImport_QueryInterface(ITransactionImport *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:578
static ULONG WINAPI TransactionImport_AddRef(ITransactionImport *iface)
Definition: xolehlp.c:585
static ULONG WINAPI TransactionImport_Release(ITransactionImport *iface)
Definition: xolehlp.c:591
static HRESULT WINAPI TransactionImport_Import(ITransactionImport *iface, ULONG cbTransactionCookie, byte *rgbTransactionCookie, IID *piid, void **ppvTransaction)
Definition: xolehlp.c:596

Definition at line 604 of file xolehlp.c.

Referenced by TransactionManager_Create().

◆ TransactionImportWhereabouts_Vtbl

const ITransactionImportWhereaboutsVtbl TransactionImportWhereabouts_Vtbl
static
Initial value:
= {
}
static HRESULT WINAPI TransactionImportWhereabouts_QueryInterface(ITransactionImportWhereabouts *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:528
static HRESULT WINAPI TransactionImportWhereabouts_GetWhereaboutsSize(ITransactionImportWhereabouts *iface, ULONG *pcbWhereabouts)
Definition: xolehlp.c:546
static HRESULT WINAPI TransactionImportWhereabouts_GetWhereabouts(ITransactionImportWhereabouts *iface, ULONG cbWhereabouts, BYTE *rgbWhereabouts, ULONG *pcbUsed)
Definition: xolehlp.c:555
static ULONG WINAPI TransactionImportWhereabouts_Release(ITransactionImportWhereabouts *iface)
Definition: xolehlp.c:541
static ULONG WINAPI TransactionImportWhereabouts_AddRef(ITransactionImportWhereabouts *iface)
Definition: xolehlp.c:535

Definition at line 565 of file xolehlp.c.

Referenced by TransactionManager_Create().

◆ TransactionOptions_Vtbl

const ITransactionOptionsVtbl TransactionOptions_Vtbl
static
Initial value:
= {
}
static HRESULT WINAPI TransactionOptions_GetOptions(ITransactionOptions *iface, XACTOPT *pOptions)
Definition: xolehlp.c:218
static HRESULT WINAPI TransactionOptions_SetOptions(ITransactionOptions *iface, XACTOPT *pOptions)
Definition: xolehlp.c:208
static ULONG WINAPI TransactionOptions_AddRef(ITransactionOptions *iface)
Definition: xolehlp.c:184
static HRESULT WINAPI TransactionOptions_QueryInterface(ITransactionOptions *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:160
static ULONG WINAPI TransactionOptions_Release(ITransactionOptions *iface)
Definition: xolehlp.c:194

Definition at line 229 of file xolehlp.c.

Referenced by TransactionOptions_Create().