我有一个应用程序,列出文件,和我允许用户权击一个文件和我的申请表示窗户上下文的菜单中选择的文件。

我用 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 创建一个菜单多壳的项目。你可以找到一些优秀的信息:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top