Daniel Jelinski : xolehlp: Implement ITransactionImport.

Alexandre Julliard julliard at winehq.org
Wed May 29 14:47:34 CDT 2013


Module: wine
Branch: master
Commit: 9cc5cdc174f0f9a90a87228177b149b48e6e9d20
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=9cc5cdc174f0f9a90a87228177b149b48e6e9d20

Author: Daniel Jelinski <djelinski1 at gmail.com>
Date:   Sat May  4 20:09:34 2013 +0200

xolehlp: Implement ITransactionImport.

---

 dlls/xolehlp/xolehlp.c |   44 ++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 44 insertions(+), 0 deletions(-)

diff --git a/dlls/xolehlp/xolehlp.c b/dlls/xolehlp/xolehlp.c
index 595b578..70bae1c 100644
--- a/dlls/xolehlp/xolehlp.c
+++ b/dlls/xolehlp/xolehlp.c
@@ -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);




More information about the wine-cvs mailing list