Michael Stefaniuc : shell32: Pass the object instead of the iface to helper functions.

Alexandre Julliard julliard at winehq.org
Mon Sep 26 16:15:09 CDT 2011


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

Author: Michael Stefaniuc <mstefani at redhat.de>
Date:   Mon Sep 26 11:58:35 2011 +0200

shell32: Pass the object instead of the iface to helper functions.

---

 dlls/shell32/shellpath.c |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index b35cbbf..25ba4be 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -3333,10 +3333,9 @@ static HRESULT WINAPI knownfolder_QueryInterface(
 }
 
 static HRESULT knownfolder_set_id(
-    IKnownFolder *iface,
+    struct knownfolder *knownfolder,
     const KNOWNFOLDERID *kfid)
 {
-    struct knownfolder *knownfolder = impl_from_IKnownFolder( iface );
     HKEY hKey;
     HRESULT hr;
 
@@ -3636,7 +3635,7 @@ static const struct IKnownFolderVtbl knownfolder_vtbl =
     knownfolder_GetFolderDefinition
 };
 
-static HRESULT knownfolder_create( void **ppv )
+static HRESULT knownfolder_create( struct knownfolder **knownfolder )
 {
     struct knownfolder *kf;
 
@@ -3648,9 +3647,9 @@ static HRESULT knownfolder_create( void **ppv )
     memset( &kf->id, 0, sizeof(kf->id) );
     kf->registryPath = NULL;
 
-    *ppv = &kf->IKnownFolder_iface.lpVtbl;
+    *knownfolder = kf;
 
-    TRACE("returning iface %p\n", *ppv);
+    TRACE("returning iface %p\n", &kf->IKnownFolder_iface);
     return S_OK;
 }
 
@@ -3783,6 +3782,7 @@ static HRESULT WINAPI foldermanager_GetFolder(
     IKnownFolder **ppkf)
 {
     struct foldermanager *fm = impl_from_IKnownFolderManager( iface );
+    struct knownfolder *kf;
     HRESULT hr;
 
     TRACE("%s, %p\n", debugstr_guid(rfid), ppkf);
@@ -3792,9 +3792,14 @@ static HRESULT WINAPI foldermanager_GetFolder(
         WARN("unknown folder\n");
         return E_INVALIDARG;
     }
-    hr = knownfolder_create( (void **)ppkf );
+    hr = knownfolder_create( &kf );
     if (SUCCEEDED( hr ))
-        hr = knownfolder_set_id( *ppkf, rfid );
+    {
+        hr = knownfolder_set_id( kf, rfid );
+        *ppkf = &kf->IKnownFolder_iface;
+    }
+    else
+        *ppkf = NULL;
 
     return hr;
 }




More information about the wine-cvs mailing list