显示多个项目的 Windows 上下文菜单

2023-12-11

我有一个列出文件的应用程序,我允许用户右键单击文件,我的应用程序会显示所选文件的 Windows 上下文菜单。

I use 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为多个 shell 项目创建上下文菜单。您可以在这里找到一些优秀的信息:

  • [xplorer²] — Advanced shell context menu ????
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

显示多个项目的 Windows 上下文菜单 的相关文章

随机推荐