Mostrando un menú contextual de Windows por varios elementos,
-
18-09-2019 - |
Pregunta
Tengo una aplicación que muestra los archivos, y permitir que el usuario haga clic derecho en un archivo y mi aplicación muestra el menú contextual de Windows para el archivo seleccionado.
Yo uso SHParseDisplayName
para obtener una pidl un nombre de archivo. Entonces se unen al objeto padre:
IntPtr pidlLast = IntPtr.Zero;
SHBindToParent(pidl, typeof(IShellFolder).GUID, out oShellFolder, out pidlLast);
Después de tener el padre que puedo conseguir construir el menú de contexto:
IntPtr result = IntPtr.Zero;
IShellFolder shellFolder = (IShellFolder)oShellFolder;
shellFolder.GetUIObjectOf(windowHandle, (uint)pidls.Count,
pidls.ToArray(), typeof(IContextMenu).GUID, 0, out result);
Esto funciona perfectamente para 1 artículo o por artículos con el mismo padre, pero ¿cómo puedo mostrar un menú contextual para elementos con diferentes padres?
Solución
Para referencia futura, al parecer, se puede utilizar CDefFolderMenu_Create2
para crear un menú contextual para múltiples artículos de concha. Puede encontrar información excelentes aquí:
- [xplorer²] - avanzada menú de contexto shell