Nikolay Sivov : shell32: Move QueryInterface to IShellLinkW.

Alexandre Julliard julliard at winehq.org
Fri Aug 16 14:23:47 CDT 2013


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Fri Aug 16 11:37:35 2013 +0400

shell32: Move QueryInterface to IShellLinkW.

---

 dlls/shell32/shelllink.c |  123 ++++++++++++++++++++++------------------------
 1 files changed, 58 insertions(+), 65 deletions(-)

diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c
index 5fd4820..4000a1d 100644
--- a/dlls/shell32/shelllink.c
+++ b/dlls/shell32/shelllink.c
@@ -229,58 +229,6 @@ static inline LPWSTR strdupW( LPCWSTR src )
 }
 
 /**************************************************************************
- *  ShellLink::QueryInterface implementation
- */
-static HRESULT ShellLink_QueryInterface( IShellLinkImpl *This, REFIID riid,  LPVOID *ppvObj)
-{
-    TRACE("(%p)->(\n\tIID:\t%s)\n",This,debugstr_guid(riid));
-
-    *ppvObj = NULL;
-
-    if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IShellLinkA))
-    {
-        *ppvObj = &This->IShellLinkA_iface;
-    }
-    else if(IsEqualIID(riid, &IID_IShellLinkW))
-    {
-        *ppvObj = &This->IShellLinkW_iface;
-    }
-    else if(IsEqualIID(riid, &IID_IPersistFile))
-    {
-        *ppvObj = &This->IPersistFile_iface;
-    }
-    else if(IsEqualIID(riid, &IID_IPersistStream))
-    {
-        *ppvObj = &This->IPersistStream_iface;
-    }
-    else if(IsEqualIID(riid, &IID_IShellLinkDataList))
-    {
-        *ppvObj = &This->IShellLinkDataList_iface;
-    }
-    else if(IsEqualIID(riid, &IID_IShellExtInit))
-    {
-        *ppvObj = &This->IShellExtInit_iface;
-    }
-    else if(IsEqualIID(riid, &IID_IContextMenu))
-    {
-        *ppvObj = &This->IContextMenu_iface;
-    }
-    else if(IsEqualIID(riid, &IID_IObjectWithSite))
-    {
-        *ppvObj = &This->IObjectWithSite_iface;
-    }
-
-    if(*ppvObj)
-    {
-        IUnknown_AddRef((IUnknown*)(*ppvObj));
-        TRACE("-- Interface: (%p)->(%p)\n",ppvObj,*ppvObj);
-        return S_OK;
-    }
-    ERR("-- Interface: E_NOINTERFACE\n");
-    return E_NOINTERFACE;
-}
-
-/**************************************************************************
  *  IPersistFile_QueryInterface
  */
 static HRESULT WINAPI IPersistFile_fnQueryInterface(
@@ -289,7 +237,7 @@ static HRESULT WINAPI IPersistFile_fnQueryInterface(
 	LPVOID *ppvObj)
 {
     IShellLinkImpl *This = impl_from_IPersistFile(iface);
-    return ShellLink_QueryInterface( This, riid, ppvObj );
+    return IShellLinkW_QueryInterface(&This->IShellLinkW_iface, riid, ppvObj);
 }
 
 /******************************************************************************
@@ -307,7 +255,7 @@ static ULONG WINAPI IPersistFile_fnAddRef(IPersistFile* iface)
 static ULONG WINAPI IPersistFile_fnRelease(IPersistFile* iface)
 {
     IShellLinkImpl *This = impl_from_IPersistFile(iface);
-    return IShellLinkA_Release(&This->IShellLinkA_iface);
+    return IShellLinkW_Release(&This->IShellLinkW_iface);
 }
 
 static HRESULT WINAPI IPersistFile_fnGetClassID(IPersistFile* iface, CLSID *pClassID)
@@ -510,7 +458,7 @@ static HRESULT WINAPI IPersistStream_fnQueryInterface(
 	VOID**     ppvObj)
 {
     IShellLinkImpl *This = impl_from_IPersistStream(iface);
-    return ShellLink_QueryInterface( This, riid, ppvObj );
+    return IShellLinkW_QueryInterface(&This->IShellLinkW_iface, riid, ppvObj);
 }
 
 /************************************************************************
@@ -520,7 +468,7 @@ static ULONG WINAPI IPersistStream_fnRelease(
 	IPersistStream* iface)
 {
     IShellLinkImpl *This = impl_from_IPersistStream(iface);
-    return IShellLinkA_Release(&This->IShellLinkA_iface);
+    return IShellLinkW_Release(&This->IShellLinkW_iface);
 }
 
 /************************************************************************
@@ -1336,7 +1284,7 @@ HRESULT IShellLink_ConstructFromFile( IUnknown* pUnkOuter, REFIID riid,
 static HRESULT WINAPI IShellLinkA_fnQueryInterface(IShellLinkA *iface, REFIID riid, void **ppvObj)
 {
     IShellLinkImpl *This = impl_from_IShellLinkA(iface);
-    return ShellLink_QueryInterface( This, riid, ppvObj );
+    return IShellLinkW_QueryInterface(&This->IShellLinkW_iface, riid, ppvObj);
 }
 
 /******************************************************************************
@@ -1642,7 +1590,52 @@ static HRESULT WINAPI IShellLinkW_fnQueryInterface(
   IShellLinkW * iface, REFIID riid, LPVOID *ppvObj)
 {
     IShellLinkImpl *This = impl_from_IShellLinkW(iface);
-    return ShellLink_QueryInterface( This, riid, ppvObj );
+
+    TRACE("(%p)->(%s)\n", This, debugstr_guid(riid));
+
+    *ppvObj = NULL;
+
+    if(IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IShellLinkA))
+    {
+        *ppvObj = &This->IShellLinkA_iface;
+    }
+    else if(IsEqualIID(riid, &IID_IShellLinkW))
+    {
+        *ppvObj = &This->IShellLinkW_iface;
+    }
+    else if(IsEqualIID(riid, &IID_IPersistFile))
+    {
+        *ppvObj = &This->IPersistFile_iface;
+    }
+    else if(IsEqualIID(riid, &IID_IPersistStream))
+    {
+        *ppvObj = &This->IPersistStream_iface;
+    }
+    else if(IsEqualIID(riid, &IID_IShellLinkDataList))
+    {
+        *ppvObj = &This->IShellLinkDataList_iface;
+    }
+    else if(IsEqualIID(riid, &IID_IShellExtInit))
+    {
+        *ppvObj = &This->IShellExtInit_iface;
+    }
+    else if(IsEqualIID(riid, &IID_IContextMenu))
+    {
+        *ppvObj = &This->IContextMenu_iface;
+    }
+    else if(IsEqualIID(riid, &IID_IObjectWithSite))
+    {
+        *ppvObj = &This->IObjectWithSite_iface;
+    }
+
+    if(*ppvObj)
+    {
+        IUnknown_AddRef((IUnknown*)*ppvObj);
+        TRACE("-- Interface: (%p)->(%p)\n", ppvObj, *ppvObj);
+        return S_OK;
+    }
+    ERR("-- Interface: E_NOINTERFACE\n");
+    return E_NOINTERFACE;
 }
 
 /******************************************************************************
@@ -2186,14 +2179,14 @@ static HRESULT WINAPI
 ShellLink_DataList_QueryInterface( IShellLinkDataList* iface, REFIID riid, void** ppvObject)
 {
     IShellLinkImpl *This = impl_from_IShellLinkDataList(iface);
-    return IShellLinkA_QueryInterface(&This->IShellLinkA_iface, riid, ppvObject);
+    return IShellLinkW_QueryInterface(&This->IShellLinkW_iface, riid, ppvObject);
 }
 
 static ULONG WINAPI
 ShellLink_DataList_AddRef( IShellLinkDataList* iface )
 {
     IShellLinkImpl *This = impl_from_IShellLinkDataList(iface);
-    return IShellLinkA_AddRef(&This->IShellLinkA_iface);
+    return IShellLinkW_AddRef(&This->IShellLinkW_iface);
 }
 
 static ULONG WINAPI
@@ -2296,14 +2289,14 @@ static HRESULT WINAPI
 ShellLink_ExtInit_QueryInterface( IShellExtInit* iface, REFIID riid, void** ppvObject )
 {
     IShellLinkImpl *This = impl_from_IShellExtInit(iface);
-    return IShellLinkA_QueryInterface(&This->IShellLinkA_iface, riid, ppvObject);
+    return IShellLinkW_QueryInterface(&This->IShellLinkW_iface, riid, ppvObject);
 }
 
 static ULONG WINAPI
 ShellLink_ExtInit_AddRef( IShellExtInit* iface )
 {
     IShellLinkImpl *This = impl_from_IShellExtInit(iface);
-    return IShellLinkA_AddRef(&This->IShellLinkA_iface);
+    return IShellLinkW_AddRef(&This->IShellLinkW_iface);
 }
 
 static ULONG WINAPI
@@ -2376,14 +2369,14 @@ static HRESULT WINAPI
 ShellLink_ContextMenu_QueryInterface( IContextMenu* iface, REFIID riid, void** ppvObject )
 {
     IShellLinkImpl *This = impl_from_IContextMenu(iface);
-    return IShellLinkA_QueryInterface(&This->IShellLinkA_iface, riid, ppvObject);
+    return IShellLinkW_QueryInterface(&This->IShellLinkW_iface, riid, ppvObject);
 }
 
 static ULONG WINAPI
 ShellLink_ContextMenu_AddRef( IContextMenu* iface )
 {
     IShellLinkImpl *This = impl_from_IContextMenu(iface);
-    return IShellLinkA_AddRef(&This->IShellLinkA_iface);
+    return IShellLinkW_AddRef(&This->IShellLinkW_iface);
 }
 
 static ULONG WINAPI
@@ -2552,7 +2545,7 @@ static HRESULT WINAPI
 ShellLink_ObjectWithSite_QueryInterface( IObjectWithSite* iface, REFIID riid, void** ppvObject )
 {
     IShellLinkImpl *This = impl_from_IObjectWithSite(iface);
-    return ShellLink_QueryInterface( This, riid, ppvObject );
+    return IShellLinkW_QueryInterface(&This->IShellLinkW_iface, riid, ppvObject );
 }
 
 static ULONG WINAPI




More information about the wine-cvs mailing list