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?

¿Fue útil?

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í:

scroll top