Commit 70d4604a authored by Martin Fuchs's avatar Martin Fuchs Committed by Alexandre Julliard

- ISF_Desktop_fnGetUIObjectOf(): allow context menu on the desktop

without any selected item; preserve return error codes. - ISF_Desktop_fnGetDisplayNameOf(): don't initialize whole character array with zero.
parent 0e35be60
...@@ -75,8 +75,6 @@ typedef struct { ...@@ -75,8 +75,6 @@ typedef struct {
#define _IUnknown_(This) (IShellFolder*)&(This->lpVtbl) #define _IUnknown_(This) (IShellFolder*)&(This->lpVtbl)
#define _IShellFolder_(This) (IShellFolder*)&(This->lpVtbl) #define _IShellFolder_(This) (IShellFolder*)&(This->lpVtbl)
HRESULT WINAPI ISF_MyComputer_Constructor (IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv);
static struct ICOM_VTABLE (IShellFolder2) vt_MCFldr_ShellFolder2; static struct ICOM_VTABLE (IShellFolder2) vt_MCFldr_ShellFolder2;
static shvheader DesktopSFHeader[] = { static shvheader DesktopSFHeader[] = {
...@@ -417,7 +415,7 @@ static HRESULT WINAPI ISF_Desktop_fnGetUIObjectOf (IShellFolder2 * iface, ...@@ -417,7 +415,7 @@ static HRESULT WINAPI ISF_Desktop_fnGetUIObjectOf (IShellFolder2 * iface,
if (ppvOut) { if (ppvOut) {
*ppvOut = NULL; *ppvOut = NULL;
if (IsEqualIID (riid, &IID_IContextMenu) && (cidl >= 1)) { if (IsEqualIID (riid, &IID_IContextMenu)) {
pObj = (LPUNKNOWN) ISvItemCm_Constructor ((IShellFolder *) iface, This->pidlRoot, apidl, cidl); pObj = (LPUNKNOWN) ISvItemCm_Constructor ((IShellFolder *) iface, This->pidlRoot, apidl, cidl);
hr = S_OK; hr = S_OK;
} else if (IsEqualIID (riid, &IID_IDataObject) && (cidl >= 1)) { } else if (IsEqualIID (riid, &IID_IDataObject) && (cidl >= 1)) {
...@@ -444,7 +442,7 @@ static HRESULT WINAPI ISF_Desktop_fnGetUIObjectOf (IShellFolder2 * iface, ...@@ -444,7 +442,7 @@ static HRESULT WINAPI ISF_Desktop_fnGetUIObjectOf (IShellFolder2 * iface,
hr = E_NOINTERFACE; hr = E_NOINTERFACE;
} }
if (!pObj) if (SUCCEEDED(hr) && !pObj)
hr = E_OUTOFMEMORY; hr = E_OUTOFMEMORY;
*ppvOut = pObj; *ppvOut = pObj;
...@@ -464,10 +462,12 @@ static HRESULT WINAPI ISF_Desktop_fnGetDisplayNameOf (IShellFolder2 * iface, ...@@ -464,10 +462,12 @@ static HRESULT WINAPI ISF_Desktop_fnGetDisplayNameOf (IShellFolder2 * iface,
{ {
ICOM_THIS (IGenericSFImpl, iface); ICOM_THIS (IGenericSFImpl, iface);
CHAR szPath[MAX_PATH] = ""; CHAR szPath[MAX_PATH];
GUID const *clsid; GUID const *clsid;
HRESULT hr = S_OK; HRESULT hr = S_OK;
*szPath = '\0';
TRACE ("(%p)->(pidl=%p,0x%08lx,%p)\n", This, pidl, dwFlags, strRet); TRACE ("(%p)->(pidl=%p,0x%08lx,%p)\n", This, pidl, dwFlags, strRet);
pdump (pidl); pdump (pidl);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment