本文介绍了显示多个项目的Windows上下文菜单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个列出文件的应用程序,我允许用户右击文件,我的应用程序将显示所选文件的Windows上下文菜单。
我使用SHParseDisplayName
获取文件名的PIDL。然后我绑定到父对象:
IntPtr pidlLast = IntPtr.Zero;
SHBindToParent(pidl, typeof(IShellFolder).GUID, out oShellFolder, out pidlLast);
在我拥有父级之后,我可以获得构建上下文菜单:
IntPtr result = IntPtr.Zero;
IShellFolder shellFolder = (IShellFolder)oShellFolder;
shellFolder.GetUIObjectOf(windowHandle, (uint)pidls.Count,
pidls.ToArray(), typeof(IContextMenu).GUID, 0, out result);
这适用于1个项目或具有相同父项的项目,但如何显示具有不同父项的项目的上下文菜单?
推荐答案
为了将来参考,显然可以使用CDefFolderMenu_Create2
为多个外壳项创建上下文菜单。你可以在这里找到一些很棒的信息:
- [Xplorer?]-Advanced shell context menu
这篇关于显示多个项目的Windows上下文菜单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!