xolehlp: Implement ITransactionImport.

This commit is contained in:
Daniel Jelinski 2013-05-04 20:09:34 +02:00 committed by Alexandre Julliard
parent 79d7e39550
commit 9cc5cdc174
1 changed files with 44 additions and 0 deletions

View File

@ -153,6 +153,7 @@ typedef struct {
LONG ref;
IResourceManagerFactory2 IResourceManagerFactory2_iface;
ITransactionImportWhereabouts ITransactionImportWhereabouts_iface;
ITransactionImport ITransactionImport_iface;
} TransactionManager;
static inline TransactionManager *impl_from_ITransactionDispenser(ITransactionDispenser *iface)
@ -182,6 +183,10 @@ static HRESULT WINAPI TransactionDispenser_QueryInterface(ITransactionDispenser
{
*ppv = &This->ITransactionImportWhereabouts_iface;
}
else if (IsEqualIID(&IID_ITransactionImport, iid))
{
*ppv = &This->ITransactionImport_iface;
}
else
{
FIXME("(%s): not implemented\n", debugstr_guid(iid));
@ -345,6 +350,44 @@ static const ITransactionImportWhereaboutsVtbl TransactionImportWhereabouts_Vtbl
TransactionImportWhereabouts_GetWhereabouts
};
static inline TransactionManager *impl_from_ITransactionImport(ITransactionImport *iface)
{
return CONTAINING_RECORD(iface, TransactionManager, ITransactionImport_iface);
}
static HRESULT WINAPI TransactionImport_QueryInterface(ITransactionImport *iface, REFIID iid,
void **ppv)
{
TransactionManager *This = impl_from_ITransactionImport(iface);
return TransactionDispenser_QueryInterface(&This->ITransactionDispenser_iface, iid, ppv);
}
static ULONG WINAPI TransactionImport_AddRef(ITransactionImport *iface)
{
TransactionManager *This = impl_from_ITransactionImport(iface);
return TransactionDispenser_AddRef(&This->ITransactionDispenser_iface);
}
static ULONG WINAPI TransactionImport_Release(ITransactionImport *iface)
{
TransactionManager *This = impl_from_ITransactionImport(iface);
return TransactionDispenser_Release(&This->ITransactionDispenser_iface);
}
static HRESULT WINAPI TransactionImport_Import(ITransactionImport *iface,
ULONG cbTransactionCookie, byte *rgbTransactionCookie, IID *piid, void **ppvTransaction)
{
FIXME("(%p, %u, %p, %s, %p): stub\n", iface, cbTransactionCookie, rgbTransactionCookie, debugstr_guid(piid), ppvTransaction);
if (!rgbTransactionCookie || !piid || !ppvTransaction) return E_INVALIDARG;
return E_NOTIMPL;
}
static const ITransactionImportVtbl TransactionImport_Vtbl = {
TransactionImport_QueryInterface,
TransactionImport_AddRef,
TransactionImport_Release,
TransactionImport_Import
};
static HRESULT TransactionManager_Create(REFIID riid, void **ppv)
{
TransactionManager *This;
@ -356,6 +399,7 @@ static HRESULT TransactionManager_Create(REFIID riid, void **ppv)
This->ITransactionDispenser_iface.lpVtbl = &TransactionDispenser_Vtbl;
This->IResourceManagerFactory2_iface.lpVtbl = &ResourceManagerFactory2_Vtbl;
This->ITransactionImportWhereabouts_iface.lpVtbl = &TransactionImportWhereabouts_Vtbl;
This->ITransactionImport_iface.lpVtbl = &TransactionImport_Vtbl;
This->ref = 1;
ret = ITransactionDispenser_QueryInterface(&This->ITransactionDispenser_iface, riid, ppv);