ReactOS 0.4.15-dev-7953-g1f49173
xolehlp.c File Reference
#include <stdarg.h>
#include "windef.h"
#include "winbase.h"
#include "transact.h"
#include "initguid.h"
#include "txdtc.h"
#include "wine/unicode.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 ResourceManagerimpl_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 TransactionOptionsimpl_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 Transactionimpl_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 TransactionManagerimpl_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 TransactionManagerimpl_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 TransactionManagerimpl_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 TransactionManagerimpl_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)
 
BOOL WINAPI DllMain (HINSTANCE hinst, DWORD reason, LPVOID reserved)
 
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

◆ DllMain()

BOOL WINAPI DllMain ( HINSTANCE  hinst,
DWORD  reason,
LPVOID  reserved 
)

Definition at line 634 of file xolehlp.c.

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}
#define TRUE
Definition: types.h:120
#define FALSE
Definition: types.h:117
static WCHAR reason[MAX_STRING_RESOURCE_LEN]
Definition: object.c:1904
#define DLL_PROCESS_ATTACH
Definition: compat.h:131
BOOL WINAPI DisableThreadLibraryCalls(IN HMODULE hLibModule)
Definition: loader.c:85
r reserved
Definition: btrfs.c:3006
static HINSTANCE hinst
Definition: edit.c:551
#define TRACE(s)
Definition: solgame.cpp:4

◆ DtcGetTransactionManager()

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

Definition at line 670 of file xolehlp.c.

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}
#define FIXME(fmt,...)
Definition: debug.h:111
#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
char * host
Definition: whois.c:55
static BOOL is_local_machineA(const CHAR *server)
Definition: xolehlp.c:649
static HRESULT TransactionManager_Create(REFIID riid, void **ppv)
Definition: xolehlp.c:613

◆ DtcGetTransactionManagerExA()

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

Definition at line 684 of file xolehlp.c.

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}

◆ DtcGetTransactionManagerExW()

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

Definition at line 698 of file xolehlp.c.

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

◆ impl_from_IResourceManager()

static ResourceManager * impl_from_IResourceManager ( IResourceManager iface)
inlinestatic

Definition at line 38 of file xolehlp.c.

39{
40 return CONTAINING_RECORD(iface, ResourceManager, IResourceManager_iface);
41}
#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 479 of file xolehlp.c.

480{
481 return CONTAINING_RECORD(iface, TransactionManager, IResourceManagerFactory2_iface);
482}

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

◆ impl_from_ITransaction()

static Transaction * impl_from_ITransaction ( ITransaction iface)
inlinestatic

Definition at line 265 of file xolehlp.c.

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

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 382 of file xolehlp.c.

383{
384 return CONTAINING_RECORD(iface, TransactionManager, ITransactionDispenser_iface);
385}

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

◆ impl_from_ITransactionImport()

static TransactionManager * impl_from_ITransactionImport ( ITransactionImport iface)
inlinestatic

Definition at line 575 of file xolehlp.c.

576{
577 return CONTAINING_RECORD(iface, TransactionManager, ITransactionImport_iface);
578}

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

◆ impl_from_ITransactionImportWhereabouts()

static TransactionManager * impl_from_ITransactionImportWhereabouts ( ITransactionImportWhereabouts iface)
inlinestatic

Definition at line 525 of file xolehlp.c.

526{
527 return CONTAINING_RECORD(iface, TransactionManager, ITransactionImportWhereabouts_iface);
528}

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 649 of file xolehlp.c.

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}
int strcmp(const char *String1, const char *String2)
Definition: utclib.c:469
#define ARRAY_SIZE(A)
Definition: main.h:33
unsigned long DWORD
Definition: ntddk_ex.h:95
GLuint buffer
Definition: glext.h:5915
GLenum GLsizei len
Definition: glext.h:6722
int WINAPI lstrcmpiA(LPCSTR lpString1, LPCSTR lpString2)
Definition: lstring.c:42
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:243
char CHAR
Definition: xmlstorage.h:175

Referenced by DtcGetTransactionManager(), and DtcGetTransactionManagerExA().

◆ is_local_machineW()

static BOOL is_local_machineW ( const WCHAR server)
static

Definition at line 659 of file xolehlp.c.

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}
BOOL WINAPI GetComputerNameW(LPWSTR lpBuffer, LPDWORD lpnSize)
Definition: compname.c:446
static const WCHAR dotW[]
Definition: directory.c:80
#define strcmpW(s1, s2)
Definition: unicode.h:38
#define strcmpiW(s1, s2)
Definition: unicode.h:39
__wchar_t WCHAR
Definition: xmlstorage.h:180

Referenced by DtcGetTransactionManagerExW().

◆ ResourceManager_AddRef()

static ULONG WINAPI ResourceManager_AddRef ( IResourceManager iface)
static

Definition at line 67 of file xolehlp.c.

68{
71
72 TRACE("(%p) refcount=%u\n", iface, ref);
73
74 return ref;
75}
#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:38

◆ ResourceManager_Create()

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

Definition at line 127 of file xolehlp.c.

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}
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define E_INVALIDARG
Definition: ddrawi.h:101
#define GetProcessHeap()
Definition: compat.h:736
#define HeapAlloc
Definition: compat.h:733
int ret
static const IResourceManagerVtbl ResourceManager_Vtbl
Definition: xolehlp.c:117

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 91 of file xolehlp.c.

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

◆ ResourceManager_GetDistributedTransactionManager()

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

Definition at line 110 of file xolehlp.c.

112{
113 FIXME("(%p, %s, %p): stub\n", iface, debugstr_guid(iid), ppvObject);
114 return E_NOTIMPL;
115}
_In_ void _In_ PCCERT_CONTEXT _In_opt_ LPFILETIME _In_ DWORD _In_ DWORD _Outptr_opt_ void ** ppvObject
Definition: wincrypt.h:6082

◆ ResourceManager_QueryInterface()

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

Definition at line 43 of file xolehlp.c.

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}
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:2364

◆ ResourceManager_Reenlist()

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

Definition at line 99 of file xolehlp.c.

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

◆ ResourceManager_ReenlistmentComplete()

static HRESULT WINAPI ResourceManager_ReenlistmentComplete ( IResourceManager iface)
static

Definition at line 105 of file xolehlp.c.

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

◆ ResourceManager_Release()

static ULONG WINAPI ResourceManager_Release ( IResourceManager iface)
static

Definition at line 77 of file xolehlp.c.

78{
81
82 TRACE("(%p) refcount=%u\n", iface, ref);
83
84 if (ref == 0)
85 {
87 }
88
89 return ref;
90}
#define InterlockedDecrement
Definition: armddk.h:52
#define HeapFree(x, y, z)
Definition: compat.h:735

◆ ResourceManagerFactory2_AddRef()

static ULONG WINAPI ResourceManagerFactory2_AddRef ( IResourceManagerFactory2 iface)
static

Definition at line 491 of file xolehlp.c.

492{
494 return TransactionDispenser_AddRef(&This->ITransactionDispenser_iface);
495}
static ULONG WINAPI TransactionDispenser_AddRef(ITransactionDispenser *iface)
Definition: xolehlp.c:424
static TransactionManager * impl_from_IResourceManagerFactory2(IResourceManagerFactory2 *iface)
Definition: xolehlp.c:479

◆ ResourceManagerFactory2_Create()

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

Definition at line 502 of file xolehlp.c.

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

◆ ResourceManagerFactory2_CreateEx()

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

Definition at line 509 of file xolehlp.c.

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}

◆ ResourceManagerFactory2_QueryInterface()

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

Definition at line 484 of file xolehlp.c.

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

◆ ResourceManagerFactory2_Release()

static ULONG WINAPI ResourceManagerFactory2_Release ( IResourceManagerFactory2 iface)
static

Definition at line 497 of file xolehlp.c.

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

◆ Transaction_Abort()

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

Definition at line 324 of file xolehlp.c.

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

◆ Transaction_AddRef()

static ULONG WINAPI Transaction_AddRef ( ITransaction iface)
static

Definition at line 294 of file xolehlp.c.

295{
298
299 TRACE("(%p) refcount=%u\n", iface, ref);
300
301 return ref;
302}
static Transaction * impl_from_ITransaction(ITransaction *iface)
Definition: xolehlp.c:265

◆ Transaction_Commit()

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

Definition at line 318 of file xolehlp.c.

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

◆ Transaction_Create()

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

Definition at line 349 of file xolehlp.c.

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}
#define ZeroMemory
Definition: winbase.h:1712
static const ITransactionVtbl Transaction_Vtbl
Definition: xolehlp.c:340

Referenced by TransactionDispenser_BeginTransaction().

◆ Transaction_GetTransactionInfo()

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

Definition at line 330 of file xolehlp.c.

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

◆ Transaction_QueryInterface()

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

Definition at line 270 of file xolehlp.c.

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}

◆ Transaction_Release()

static ULONG WINAPI Transaction_Release ( ITransaction iface)
static

Definition at line 304 of file xolehlp.c.

305{
308
309 TRACE("(%p) refcount=%u\n", iface, ref);
310
311 if (ref == 0)
312 {
314 }
315
316 return ref;
317}

◆ TransactionDispenser_AddRef()

static ULONG WINAPI TransactionDispenser_AddRef ( ITransactionDispenser iface)
static

Definition at line 424 of file xolehlp.c.

425{
428
429 TRACE("(%p) refcount=%u\n", iface, ref);
430
431 return ref;
432}
static TransactionManager * impl_from_ITransactionDispenser(ITransactionDispenser *iface)
Definition: xolehlp.c:382

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 457 of file xolehlp.c.

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

◆ TransactionDispenser_GetOptionsObject()

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

Definition at line 449 of file xolehlp.c.

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

◆ TransactionDispenser_QueryInterface()

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

Definition at line 387 of file xolehlp.c.

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}

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

◆ TransactionDispenser_Release()

static ULONG WINAPI TransactionDispenser_Release ( ITransactionDispenser iface)
static

Definition at line 434 of file xolehlp.c.

435{
438
439 TRACE("(%p) refcount=%u\n", iface, ref);
440
441 if (ref == 0)
442 {
444 }
445
446 return ref;
447}

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

◆ TransactionImport_AddRef()

static ULONG WINAPI TransactionImport_AddRef ( ITransactionImport iface)
static

Definition at line 587 of file xolehlp.c.

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

◆ TransactionImport_Import()

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

Definition at line 598 of file xolehlp.c.

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}

◆ TransactionImport_QueryInterface()

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

Definition at line 580 of file xolehlp.c.

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

◆ TransactionImport_Release()

static ULONG WINAPI TransactionImport_Release ( ITransactionImport iface)
static

Definition at line 593 of file xolehlp.c.

594{
596 return TransactionDispenser_Release(&This->ITransactionDispenser_iface);
597}

◆ TransactionImportWhereabouts_AddRef()

static ULONG WINAPI TransactionImportWhereabouts_AddRef ( ITransactionImportWhereabouts iface)
static

Definition at line 537 of file xolehlp.c.

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

◆ TransactionImportWhereabouts_GetWhereabouts()

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

Definition at line 557 of file xolehlp.c.

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}

◆ TransactionImportWhereabouts_GetWhereaboutsSize()

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

Definition at line 548 of file xolehlp.c.

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}

◆ TransactionImportWhereabouts_QueryInterface()

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

Definition at line 530 of file xolehlp.c.

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

◆ TransactionImportWhereabouts_Release()

static ULONG WINAPI TransactionImportWhereabouts_Release ( ITransactionImportWhereabouts iface)
static

Definition at line 543 of file xolehlp.c.

544{
546 return TransactionDispenser_Release(&This->ITransactionDispenser_iface);
547}

◆ TransactionManager_Create()

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

Definition at line 613 of file xolehlp.c.

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}
static const IResourceManagerFactory2Vtbl ResourceManagerFactory2_Vtbl
Definition: xolehlp.c:517
static const ITransactionImportWhereaboutsVtbl TransactionImportWhereabouts_Vtbl
Definition: xolehlp.c:567
static const ITransactionImportVtbl TransactionImport_Vtbl
Definition: xolehlp.c:606
static const ITransactionDispenserVtbl TransactionDispenser_Vtbl
Definition: xolehlp.c:471

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

◆ TransactionOptions_AddRef()

static ULONG WINAPI TransactionOptions_AddRef ( ITransactionOptions iface)
static

Definition at line 185 of file xolehlp.c.

186{
189
190 TRACE("(%p) refcount=%u\n", iface, ref);
191
192 return ref;
193}
static TransactionOptions * impl_from_ITransactionOptions(ITransactionOptions *iface)
Definition: xolehlp.c:156

◆ TransactionOptions_Create()

static HRESULT TransactionOptions_Create ( ITransactionOptions **  ppv)
static

Definition at line 238 of file xolehlp.c.

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

Referenced by TransactionDispenser_GetOptionsObject().

◆ TransactionOptions_GetOptions()

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

Definition at line 219 of file xolehlp.c.

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

◆ TransactionOptions_QueryInterface()

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

Definition at line 161 of file xolehlp.c.

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}

◆ TransactionOptions_Release()

static ULONG WINAPI TransactionOptions_Release ( ITransactionOptions iface)
static

Definition at line 195 of file xolehlp.c.

196{
199
200 TRACE("(%p) refcount=%u\n", iface, ref);
201
202 if (ref == 0)
203 {
205 }
206
207 return ref;
208}

◆ TransactionOptions_SetOptions()

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

Definition at line 209 of file xolehlp.c.

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}
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:110
static ULONG WINAPI ResourceManager_Release(IResourceManager *iface)
Definition: xolehlp.c:77
static HRESULT WINAPI ResourceManager_ReenlistmentComplete(IResourceManager *iface)
Definition: xolehlp.c:105
static HRESULT WINAPI ResourceManager_QueryInterface(IResourceManager *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:43
static ULONG WINAPI ResourceManager_AddRef(IResourceManager *iface)
Definition: xolehlp.c:67
static HRESULT WINAPI ResourceManager_Reenlist(IResourceManager *iface, byte *pPrepInfo, ULONG cbPrepInfo, DWORD lTimeout, XACTSTAT *pXactStat)
Definition: xolehlp.c:99
static HRESULT WINAPI ResourceManager_Enlist(IResourceManager *iface, ITransaction *pTransaction, ITransactionResourceAsync *pRes, XACTUOW *pUOW, LONG *pisoLevel, ITransactionEnlistmentAsync **ppEnlist)
Definition: xolehlp.c:91

Definition at line 117 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:502
static ULONG WINAPI ResourceManagerFactory2_Release(IResourceManagerFactory2 *iface)
Definition: xolehlp.c:497
static HRESULT WINAPI ResourceManagerFactory2_QueryInterface(IResourceManagerFactory2 *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:484
static HRESULT WINAPI ResourceManagerFactory2_CreateEx(IResourceManagerFactory2 *iface, GUID *pguidRM, CHAR *pszRMName, IResourceManagerSink *pIResMgrSink, REFIID riidRequested, void **ppResMgr)
Definition: xolehlp.c:509
static ULONG WINAPI ResourceManagerFactory2_AddRef(IResourceManagerFactory2 *iface)
Definition: xolehlp.c:491

Definition at line 517 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:270
static ULONG WINAPI Transaction_AddRef(ITransaction *iface)
Definition: xolehlp.c:294
static ULONG WINAPI Transaction_Release(ITransaction *iface)
Definition: xolehlp.c:304
static HRESULT WINAPI Transaction_Commit(ITransaction *iface, BOOL fRetaining, DWORD grfTC, DWORD grfRM)
Definition: xolehlp.c:318
static HRESULT WINAPI Transaction_GetTransactionInfo(ITransaction *iface, XACTTRANSINFO *pinfo)
Definition: xolehlp.c:330
static HRESULT WINAPI Transaction_Abort(ITransaction *iface, BOID *pboidReason, BOOL fRetaining, BOOL fAsync)
Definition: xolehlp.c:324

Definition at line 340 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:457
static HRESULT WINAPI TransactionDispenser_GetOptionsObject(ITransactionDispenser *iface, ITransactionOptions **ppOptions)
Definition: xolehlp.c:449

Definition at line 471 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:580
static ULONG WINAPI TransactionImport_AddRef(ITransactionImport *iface)
Definition: xolehlp.c:587
static ULONG WINAPI TransactionImport_Release(ITransactionImport *iface)
Definition: xolehlp.c:593
static HRESULT WINAPI TransactionImport_Import(ITransactionImport *iface, ULONG cbTransactionCookie, byte *rgbTransactionCookie, IID *piid, void **ppvTransaction)
Definition: xolehlp.c:598

Definition at line 606 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:530
static HRESULT WINAPI TransactionImportWhereabouts_GetWhereaboutsSize(ITransactionImportWhereabouts *iface, ULONG *pcbWhereabouts)
Definition: xolehlp.c:548
static HRESULT WINAPI TransactionImportWhereabouts_GetWhereabouts(ITransactionImportWhereabouts *iface, ULONG cbWhereabouts, BYTE *rgbWhereabouts, ULONG *pcbUsed)
Definition: xolehlp.c:557
static ULONG WINAPI TransactionImportWhereabouts_Release(ITransactionImportWhereabouts *iface)
Definition: xolehlp.c:543
static ULONG WINAPI TransactionImportWhereabouts_AddRef(ITransactionImportWhereabouts *iface)
Definition: xolehlp.c:537

Definition at line 567 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:219
static HRESULT WINAPI TransactionOptions_SetOptions(ITransactionOptions *iface, XACTOPT *pOptions)
Definition: xolehlp.c:209
static ULONG WINAPI TransactionOptions_AddRef(ITransactionOptions *iface)
Definition: xolehlp.c:185
static HRESULT WINAPI TransactionOptions_QueryInterface(ITransactionOptions *iface, REFIID iid, void **ppv)
Definition: xolehlp.c:161
static ULONG WINAPI TransactionOptions_Release(ITransactionOptions *iface)
Definition: xolehlp.c:195

Definition at line 230 of file xolehlp.c.

Referenced by TransactionOptions_Create().