Nikolay Sivov : msdmo: Implement IEnumDMO_Clone(), fix trace messages.

Alexandre Julliard julliard at wine.codeweavers.com
Wed Oct 15 11:37:24 CDT 2014


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Wed Oct 15 08:38:55 2014 +0400

msdmo: Implement IEnumDMO_Clone(), fix trace messages.

---

 dlls/msdmo/dmoreg.c | 40 +++++++++++++++++++---------------------
 1 file changed, 19 insertions(+), 21 deletions(-)

diff --git a/dlls/msdmo/dmoreg.c b/dlls/msdmo/dmoreg.c
index f271da6..e8f67c5 100644
--- a/dlls/msdmo/dmoreg.c
+++ b/dlls/msdmo/dmoreg.c
@@ -436,43 +436,38 @@ lerr:
     return hr;
 }
 
-
 /******************************************************************************
  * IEnumDMO_fnAddRef
  */
 static ULONG WINAPI IEnumDMO_fnAddRef(IEnumDMO * iface)
 {
     IEnumDMOImpl *This = impl_from_IEnumDMO(iface);
-    return InterlockedIncrement(&This->ref);
+    ULONG refCount = InterlockedIncrement(&This->ref);
+    TRACE("(%p)->(%d)\n", This, refCount);
+    return refCount;
 }
 
-
 /**************************************************************************
  *  EnumDMO_QueryInterface
  */
-static HRESULT WINAPI IEnumDMO_fnQueryInterface(
-    IEnumDMO* iface,
-    REFIID riid,
-    LPVOID *ppvObj)
+static HRESULT WINAPI IEnumDMO_fnQueryInterface(IEnumDMO* iface, REFIID riid, void **ppvObj)
 {
+    IEnumDMOImpl *This = impl_from_IEnumDMO(iface);
+
+    TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppvObj);
+
     *ppvObj = NULL;
 
     if (IsEqualIID(riid, &IID_IEnumDMO) ||
         IsEqualIID(riid, &IID_IUnknown))
     {
         *ppvObj = iface;
+        IEnumDMO_fnAddRef(iface);
     }
 
-    if(*ppvObj)
-    {
-        IEnumDMO_fnAddRef(*ppvObj);
-        return S_OK;
-    }
-
-    return E_NOINTERFACE;
+    return *ppvObj ? S_OK : E_NOINTERFACE;
 }
 
-
 /******************************************************************************
  * IEnumDMO_fnRelease
  */
@@ -481,6 +476,8 @@ static ULONG WINAPI IEnumDMO_fnRelease(IEnumDMO * iface)
     IEnumDMOImpl *This = impl_from_IEnumDMO(iface);
     ULONG refCount = InterlockedDecrement(&This->ref);
 
+    TRACE("(%p)->(%d)\n", This, refCount);
+
     if (!refCount)
     {
         IEnumDMOImpl_Destructor(This);
@@ -512,7 +509,7 @@ static HRESULT WINAPI IEnumDMO_fnNext(
 
     IEnumDMOImpl *This = impl_from_IEnumDMO(iface);
 
-    TRACE("--> (%p) %d %p %p %p\n", iface, cItemsToFetch, pCLSID, Names, pcItemsFetched);
+    TRACE("(%p)->(%d %p %p %p)\n", This, cItemsToFetch, pCLSID, Names, pcItemsFetched);
 
     if (!pCLSID || !Names || !pcItemsFetched)
         return E_POINTER;
@@ -651,6 +648,7 @@ static HRESULT WINAPI IEnumDMO_fnSkip(IEnumDMO * iface, DWORD cItemsToSkip)
 {
     IEnumDMOImpl *This = impl_from_IEnumDMO(iface);
 
+    TRACE("(%p)->(%d)\n", This, cItemsToSkip);
     This->index += cItemsToSkip;
 
     return S_OK;
@@ -664,6 +662,7 @@ static HRESULT WINAPI IEnumDMO_fnReset(IEnumDMO * iface)
 {
     IEnumDMOImpl *This = impl_from_IEnumDMO(iface);
 
+    TRACE("(%p)\n", This);
     This->index = -1;
 
     return S_OK;
@@ -673,13 +672,12 @@ static HRESULT WINAPI IEnumDMO_fnReset(IEnumDMO * iface)
 /******************************************************************************
  * IEnumDMO_fnClone
  */
-static HRESULT WINAPI IEnumDMO_fnClone(IEnumDMO * iface, IEnumDMO **ppEnum)
+static HRESULT WINAPI IEnumDMO_fnClone(IEnumDMO *iface, IEnumDMO **ppEnum)
 {
     IEnumDMOImpl *This = impl_from_IEnumDMO(iface);
-
-    FIXME("(%p)->() to (%p)->() E_NOTIMPL\n", This, ppEnum);
-
-  return E_NOTIMPL;
+    TRACE("(%p)->(%p)\n", This, ppEnum);
+    return IEnumDMO_Constructor(This->guidCategory, This->dwFlags, This->cInTypes, This->pInTypes,
+        This->cOutTypes, This->pOutTypes, ppEnum);
 }
 
 




More information about the wine-cvs mailing list