簡體   English   中英

顯示多個項目的Windows上下文菜單

[英]Showing a Windows context menu for multiple items

我有一個列出文件的應用程序,並且允許用戶右鍵單擊一個文件,並且我的應用程序顯示所選文件的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為多個外殼項目創建上下文菜單。 您可以在這里找到一些很好的信息:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM