Module: wine Branch: master Commit: 9fe57a8acf95f0ceaaabfab7ed516f6fa020f4be URL: http://source.winehq.org/git/wine.git/?a=commit;h=9fe57a8acf95f0ceaaabfab7ed...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Wed Jan 11 04:19:08 2012 +0300
shell32: Update to IContextMenu3.
---
dlls/shell32/shlview_cmenu.c | 99 ++++++++++++++++++++--------------------- 1 files changed, 48 insertions(+), 51 deletions(-)
diff --git a/dlls/shell32/shlview_cmenu.c b/dlls/shell32/shlview_cmenu.c index 1e1b3b0..31db01e 100644 --- a/dlls/shell32/shlview_cmenu.c +++ b/dlls/shell32/shlview_cmenu.c @@ -45,7 +45,7 @@ WINE_DEFAULT_DEBUG_CHANNEL(shell);
typedef struct { - IContextMenu2 IContextMenu2_iface; + IContextMenu3 IContextMenu3_iface; LONG ref;
IShellFolder* parent; @@ -61,22 +61,23 @@ typedef struct BOOL desktop; } ContextMenu;
-static inline ContextMenu *impl_from_IContextMenu2(IContextMenu2 *iface) +static inline ContextMenu *impl_from_IContextMenu3(IContextMenu3 *iface) { - return CONTAINING_RECORD(iface, ContextMenu, IContextMenu2_iface); + return CONTAINING_RECORD(iface, ContextMenu, IContextMenu3_iface); }
-static HRESULT WINAPI ContextMenu_QueryInterface(IContextMenu2 *iface, REFIID riid, LPVOID *ppvObj) +static HRESULT WINAPI ContextMenu_QueryInterface(IContextMenu3 *iface, REFIID riid, LPVOID *ppvObj) { - ContextMenu *This = impl_from_IContextMenu2(iface); + ContextMenu *This = impl_from_IContextMenu3(iface);
TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppvObj);
*ppvObj = NULL;
- if (IsEqualIID(riid, &IID_IUnknown) || - IsEqualIID(riid, &IID_IContextMenu) || - IsEqualIID(riid, &IID_IContextMenu2)) + if (IsEqualIID(riid, &IID_IUnknown) || + IsEqualIID(riid, &IID_IContextMenu) || + IsEqualIID(riid, &IID_IContextMenu2) || + IsEqualIID(riid, &IID_IContextMenu3)) { *ppvObj = This; } @@ -87,7 +88,7 @@ static HRESULT WINAPI ContextMenu_QueryInterface(IContextMenu2 *iface, REFIID ri
if(*ppvObj) { - IContextMenu2_AddRef(iface); + IContextMenu3_AddRef(iface); return S_OK; }
@@ -95,17 +96,17 @@ static HRESULT WINAPI ContextMenu_QueryInterface(IContextMenu2 *iface, REFIID ri return E_NOINTERFACE; }
-static ULONG WINAPI ContextMenu_AddRef(IContextMenu2 *iface) +static ULONG WINAPI ContextMenu_AddRef(IContextMenu3 *iface) { - ContextMenu *This = impl_from_IContextMenu2(iface); + ContextMenu *This = impl_from_IContextMenu3(iface); ULONG ref = InterlockedIncrement(&This->ref); TRACE("(%p)->(%u)\n", This, ref); return ref; }
-static ULONG WINAPI ContextMenu_Release(IContextMenu2 *iface) +static ULONG WINAPI ContextMenu_Release(IContextMenu3 *iface) { - ContextMenu *This = impl_from_IContextMenu2(iface); + ContextMenu *This = impl_from_IContextMenu3(iface); ULONG ref = InterlockedDecrement(&This->ref);
TRACE("(%p)->(%u)\n", This, ref); @@ -125,14 +126,14 @@ static ULONG WINAPI ContextMenu_Release(IContextMenu2 *iface) }
static HRESULT WINAPI ItemMenu_QueryContextMenu( - IContextMenu2 *iface, + IContextMenu3 *iface, HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) { - ContextMenu *This = impl_from_IContextMenu2(iface); + ContextMenu *This = impl_from_IContextMenu3(iface); INT uIDMax;
TRACE("(%p)->(%p %d 0x%x 0x%x 0x%x )\n", This, hmenu, indexMenu, idCmdFirst, idCmdLast, uFlags); @@ -400,10 +401,10 @@ static void DoOpenProperties(ContextMenu *This, HWND hwnd) }
static HRESULT WINAPI ItemMenu_InvokeCommand( - IContextMenu2 *iface, + IContextMenu3 *iface, LPCMINVOKECOMMANDINFO lpcmi) { - ContextMenu *This = impl_from_IContextMenu2(iface); + ContextMenu *This = impl_from_IContextMenu3(iface);
if (lpcmi->cbSize != sizeof(CMINVOKECOMMANDINFO)) FIXME("Is an EX structure\n"); @@ -485,14 +486,14 @@ static HRESULT WINAPI ItemMenu_InvokeCommand( }
static HRESULT WINAPI ItemMenu_GetCommandString( - IContextMenu2 *iface, + IContextMenu3 *iface, UINT_PTR idCommand, UINT uFlags, UINT* lpReserved, LPSTR lpszName, UINT uMaxNameLen) { - ContextMenu *This = impl_from_IContextMenu2(iface); + ContextMenu *This = impl_from_IContextMenu3(iface); HRESULT hr = E_INVALIDARG;
TRACE("(%p)->(%lx flags=%x %p name=%p len=%x)\n", This, idCommand, uFlags, lpReserved, lpszName, uMaxNameLen); @@ -540,18 +541,23 @@ static HRESULT WINAPI ItemMenu_GetCommandString( * should be only in IContextMenu2 and IContextMenu3 * is nevertheless called from word95 */ -static HRESULT WINAPI ItemMenu_HandleMenuMsg( - IContextMenu2 *iface, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) +static HRESULT WINAPI ContextMenu_HandleMenuMsg(IContextMenu3 *iface, UINT msg, + WPARAM wParam, LPARAM lParam) { - ContextMenu *This = impl_from_IContextMenu2(iface); - TRACE("(%p)->(0x%x 0x%lx 0x%lx)\n", This, uMsg, wParam, lParam); + ContextMenu *This = impl_from_IContextMenu3(iface); + FIXME("(%p)->(0x%x 0x%lx 0x%lx): stub\n", This, msg, wParam, lParam); return E_NOTIMPL; }
-static const IContextMenu2Vtbl ItemContextMenuVtbl = +static HRESULT WINAPI ContextMenu_HandleMenuMsg2(IContextMenu3 *iface, UINT msg, + WPARAM wParam, LPARAM lParam, LRESULT *result) +{ + ContextMenu *This = impl_from_IContextMenu3(iface); + FIXME("(%p)->(0x%x 0x%lx 0x%lx %p): stub\n", This, msg, wParam, lParam, result); + return E_NOTIMPL; +} + +static const IContextMenu3Vtbl ItemContextMenuVtbl = { ContextMenu_QueryInterface, ContextMenu_AddRef, @@ -559,7 +565,8 @@ static const IContextMenu2Vtbl ItemContextMenuVtbl = ItemMenu_QueryContextMenu, ItemMenu_InvokeCommand, ItemMenu_GetCommandString, - ItemMenu_HandleMenuMsg + ContextMenu_HandleMenuMsg, + ContextMenu_HandleMenuMsg2 };
IContextMenu2 *ItemMenu_Constructor(IShellFolder *parent, LPCITEMIDLIST pidl, const LPCITEMIDLIST *apidl, UINT cidl) @@ -568,7 +575,7 @@ IContextMenu2 *ItemMenu_Constructor(IShellFolder *parent, LPCITEMIDLIST pidl, co UINT u;
This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This)); - This->IContextMenu2_iface.lpVtbl = &ItemContextMenuVtbl; + This->IContextMenu3_iface.lpVtbl = &ItemContextMenuVtbl; This->ref = 1; This->verb_offset = 0; This->parent = parent; @@ -586,19 +593,19 @@ IContextMenu2 *ItemMenu_Constructor(IShellFolder *parent, LPCITEMIDLIST pidl, co
TRACE("(%p)\n", This);
- return &This->IContextMenu2_iface; + return (IContextMenu2*)&This->IContextMenu3_iface; }
/* Background menu implementation */ static HRESULT WINAPI BackgroundMenu_QueryContextMenu( - IContextMenu2 *iface, + IContextMenu3 *iface, HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags) { - ContextMenu *This = impl_from_IContextMenu2(iface); + ContextMenu *This = impl_from_IContextMenu3(iface); HMENU hMyMenu; UINT idMax; HRESULT hr; @@ -752,10 +759,10 @@ static BOOL DoPaste(ContextMenu *This) }
static HRESULT WINAPI BackgroundMenu_InvokeCommand( - IContextMenu2 *iface, + IContextMenu3 *iface, LPCMINVOKECOMMANDINFO lpcmi) { - ContextMenu *This = impl_from_IContextMenu2(iface); + ContextMenu *This = impl_from_IContextMenu3(iface); IShellBrowser *browser; IShellView *view = NULL; HWND hWnd = NULL; @@ -828,14 +835,14 @@ static HRESULT WINAPI BackgroundMenu_InvokeCommand( }
static HRESULT WINAPI BackgroundMenu_GetCommandString( - IContextMenu2 *iface, + IContextMenu3 *iface, UINT_PTR idCommand, UINT uFlags, UINT* lpReserved, LPSTR lpszName, UINT uMaxNameLen) { - ContextMenu *This = impl_from_IContextMenu2(iface); + ContextMenu *This = impl_from_IContextMenu3(iface);
TRACE("(%p)->(idcom=%lx flags=%x %p name=%p len=%x)\n",This, idCommand, uFlags, lpReserved, lpszName, uMaxNameLen);
@@ -858,18 +865,7 @@ static HRESULT WINAPI BackgroundMenu_GetCommandString( return E_FAIL; }
-static HRESULT WINAPI BackgroundMenu_HandleMenuMsg( - IContextMenu2 *iface, - UINT uMsg, - WPARAM wParam, - LPARAM lParam) -{ - ContextMenu *This = impl_from_IContextMenu2(iface); - FIXME("(%p)->(msg=%x wp=%lx lp=%lx)\n",This, uMsg, wParam, lParam); - return E_NOTIMPL; -} - -static const IContextMenu2Vtbl BackgroundContextMenuVtbl = +static const IContextMenu3Vtbl BackgroundContextMenuVtbl = { ContextMenu_QueryInterface, ContextMenu_AddRef, @@ -877,7 +873,8 @@ static const IContextMenu2Vtbl BackgroundContextMenuVtbl = BackgroundMenu_QueryContextMenu, BackgroundMenu_InvokeCommand, BackgroundMenu_GetCommandString, - BackgroundMenu_HandleMenuMsg + ContextMenu_HandleMenuMsg, + ContextMenu_HandleMenuMsg2 };
IContextMenu2 *BackgroundMenu_Constructor(IShellFolder *parent, BOOL desktop) @@ -885,7 +882,7 @@ IContextMenu2 *BackgroundMenu_Constructor(IShellFolder *parent, BOOL desktop) ContextMenu *This;
This = HeapAlloc(GetProcessHeap(), 0, sizeof(*This)); - This->IContextMenu2_iface.lpVtbl = &BackgroundContextMenuVtbl; + This->IContextMenu3_iface.lpVtbl = &BackgroundContextMenuVtbl; This->ref = 1; This->parent = parent; This->verb_offset = 0; @@ -899,5 +896,5 @@ IContextMenu2 *BackgroundMenu_Constructor(IShellFolder *parent, BOOL desktop) if (parent) IShellFolder_AddRef(parent);
TRACE("(%p)\n", This); - return &This->IContextMenu2_iface; + return (IContextMenu2*)&This->IContextMenu3_iface; }