IContextMenu3

"Martin Fuchs" <[email protected]> Sat, 13 Aug 2005 13:42:57 +0100
Newsgroups gmane.comp.gnu.mingw.patches
Message-ID <[email protected]>
Changelog:

2005-08-13  Martin Fuchs <[email protected]>

	* include/shlobj.h (IContextMenu3): Define.
	* include/shlguid.h (IID_IContextMenu3): Declare.
	* lib/shell32.c (IID_IContextMenu3): Define.


For documentation see
http://msdn.microsoft.com/library/default.asp?url=3D/library/en-us/shellcc/=
platform/shell/reference/ifaces/icontextmenu3/icontextmenu3.asp


Index: include/shlobj.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvs/src/src/winsup/w32api/include/shlobj.h,v
retrieving revision 1.38
diff -u -p -d -r1.38 shlobj.h
--- include/shlobj.h	29 Dec 2004 12:15:19 -0000	1.38
+++ include/shlobj.h	13 Aug 2005 12:50:10 -0000
@@ -601,6 +601,21 @@ DECLARE_INTERFACE_(IContextMenu2,IContex
 };
 typedef IContextMenu2 *LPCONTEXTMENU2;
 
+#undef INTERFACE
+#define INTERFACE IContextMenu3
+DECLARE_INTERFACE_(IContextMenu3,IContextMenu2)
+{
+	STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
+	STDMETHOD_(ULONG,AddRef)(THIS) PURE;
+	STDMETHOD_(ULONG,Release)(THIS) PURE;
+	STDMETHOD(QueryContextMenu)(THIS_ HMENU,UINT,UINT,UINT,UINT) PURE;
+	STDMETHOD(InvokeCommand)(THIS_ LPCMINVOKECOMMANDINFO) PURE;
+	STDMETHOD(GetCommandString)(THIS_ UINT,UINT,PUINT,LPSTR,UINT) PURE;
+	STDMETHOD(HandleMenuMsg)(THIS_ UINT,WPARAM,LPARAM) PURE;
+	STDMETHOD(HandleMenuMsg2)(THIS_ UINT,WPARAM,LPARAM,LRESULT*) PURE;
+};
+typedef IContextMenu3 *LPCONTEXTMENU3;
+
 #if (_WIN32_IE >=3D 0x0500)
 #pragma pack(push,8)
 typedef struct {
@@ -658,6 +673,17 @@ typedef enum {
 #define IContextMenu2_HandleMenuMsg(T,a,b,c) (T)->lpVtbl->HandleMenuMsg(T,=
a,b,c)
 #endif
 
+#ifdef COBJMACROS
+#define IContextMenu3_QueryInterface(T,a,b) (T)->lpVtbl->QueryInterface(T,=
a,b)
+#define IContextMenu3_AddRef(T) (T)->lpVtbl->AddRef(T)
+#define IContextMenu3_Release(T) (T)->lpVtbl->Release(T)
+#define IContextMenu3_QueryContextMenu(T,a,b,c,d,e) (T)->lpVtbl->QueryCont=
extMenu(T,a,b,c,d,e)
+#define IContextMenu3_InvokeCommand(T,a) (T)->lpVtbl->InvokeCommand(T,a)
+#define IContextMenu3_GetCommandString(T,a,b,c,d,e) (T)->lpVtbl->GetComman=
dString(T,a,b,c,d,e)
+#define IContextMenu3_HandleMenuMsg(T,a,b,c) (T)->lpVtbl->HandleMenuMsg(T,=
a,b,c)
+#define IContextMenu3_HandleMenuMsg2(T,a,b,c,d) (T)->lpVtbl->HandleMenuMsg=
(T,a,b,c,d)
+#endif
+
 #undef INTERFACE
 #define INTERFACE IColumnProvider
 DECLARE_INTERFACE_(IColumnProvider,IUnknown)
Index: include/shlguid.h
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvs/src/src/winsup/w32api/include/shlguid.h,v
retrieving revision 1.7
diff -u -p -d -r1.7 shlguid.h
--- include/shlguid.h	24 Dec 2004 11:14:35 -0000	1.7
+++ include/shlguid.h	13 Aug 2005 12:47:52 -0000
@@ -36,6 +36,7 @@ extern const GUID IID_ICommDlgBrowser;
 extern const GUID IID_IEnumIDList;
 extern const GUID IID_IFileViewerSite;
 extern const GUID IID_IContextMenu2;
+extern const GUID IID_IContextMenu3;
 extern const GUID IID_IShellExecuteHookA;
 extern const GUID IID_IPropSheetPage;
 extern const GUID IID_INewShortcutHookW;
Index: lib/shell32.c
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
RCS file: /cvs/src/src/winsup/w32api/lib/shell32.c,v
retrieving revision 1.6
diff -u -p -d -r1.6 shell32.c
--- lib/shell32.c	24 Dec 2004 11:14:35 -0000	1.6
+++ lib/shell32.c	13 Aug 2005 12:53:51 -0000
@@ -27,6 +27,7 @@ DEFINE_SHLGUID(IID_ICommDlgBrowser,0x000
 DEFINE_SHLGUID(IID_IEnumIDList,0x000214F2L,0,0);
 DEFINE_SHLGUID(IID_IFileViewerSite,0x000214F3L,0,0);
 DEFINE_SHLGUID(IID_IContextMenu2,0x000214F4L,0,0);
+DEFINE_GUID(IID_IContextMenu3,0xBCFCE0A0,0xEC17,0x11D0,0x8D,0x10,0x0,0xA0,=
0xC9,0xF,0x27,0x19);
 DEFINE_SHLGUID(IID_IShellExecuteHookA,0x000214F5L,0,0);
 DEFINE_SHLGUID(IID_IPropSheetPage,0x000214F6L,0,0);
 DEFINE_SHLGUID(IID_INewShortcutHookW,0x000214F7L,0,0);



-------------------------------------------------------
SF.Net email is Sponsored by the Better Software Conference & EXPO
September 19-22, 2005 * San Francisco, CA * Development Lifecycle Practices
Agile & Plan-Driven Development * Managing Projects & Teams * Testing & QA
Security * Process Improvement & Measurement * http://www.sqe.com/bsce5sf