Nikolay Sivov : shell32: Update to IContextMenu3.
Alexandre Julliard
julliard at winehq.org
Wed Jan 11 13:39:59 CST 2012
Module: wine
Branch: master
Commit: 9fe57a8acf95f0ceaaabfab7ed516f6fa020f4be
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9fe57a8acf95f0ceaaabfab7ed516f6fa020f4be
Author: Nikolay Sivov <nsivov at 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;
}
More information about the wine-cvs
mailing list