Suporte a menus de contexto herdados para aplicativos empacotados
O menu de contexto é uma das extensões de shell mais populares e úteis. Se você já estiver no Explorador de Arquivos ou na Área de Trabalho, ele reduz significativamente o número de etapas para concluir uma operação de arquivo em comparação com a abertura de um aplicativo separado.
Se seu aplicativo de área de trabalho implementa a interface IContextMenu herdada para extensões de shell, como o manipulador de menu de contexto ou o manipulador de arrastar e soltar, a extensão de shell pode não funcionar depois que você empacotar seu aplicativo. Para que o shell reconheça e registre a extensão, você precisará modificar o arquivo de manifesto do pacote. (Este recurso está disponível no Windows 11 build 22000+, que está atualmente disponível via Compilações do Windows Insider)
Adicione namespace com e extensão windows.comServer para sua dll shellex
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
Abaixo está um trecho de código de exemplo:
<com:Extension Category="windows.comServer"> <com:ComServer> <com:SurrogateServer DisplayName="<display-name-for-the-com-server>"> <com:Class Id="<GUID-for-the-com-server>" Path="<path-to-the-com-server-or-dll>" ThreadingModel="STA" /> </com:SurrogateServer> </com:ComServer> </com:Extension>
Adicione o namespace desktop9 e a extensão windows.fileExplorerClassicContextMenuHandler ou windows.fileExplorerClassicDragDropContextMenuHandler
xmlns:desktop9="http://schemas.microsoft.com/appx/manifest/desktop/windows10/9"
Abaixo está um trecho de código de exemplo:
<desktop9:Extension Category="windows.fileExplorerClassicContextMenuHandler"> <desktop9:FileExplorerClassicContextMenuHandler> <desktop9:ExtensionHandler Type="*" Clsid="<GUID-for-the-com-server>" /> <desktop9:ExtensionHandler Type=".txt" Clsid="<GUID-for-the-com-server>" /> <desktop9:ExtensionHandler Type="Directory" Clsid="<GUID-for-the-com-server>" /> </desktop9:FileExplorerClassicContextMenuHandler> </desktop9:Extension> <desktop9:Extension Category="windows.fileExplorerClassicDragDropContextMenuHandler"> <desktop9:FileExplorerClassicDragDropContextMenuHandler> <desktop9:ExtensionHandler Type="Directory" Clsid="<GUID-for-the-com-server>" /> <desktop9:ExtensionHandler Type="Drive" Clsid="<GUID-for-the-com-server>" /> </desktop9:FileExplorerClassicDragDropContextMenuHandler> </desktop9:Extension>
Alterar MaxVersionTested para ser maior que 10.0.21300.0
Abaixo está um trecho de código de exemplo:
<Dependencies> <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.21301.0" /> </Dependencies>
Observação
Se você estiver implementando extensões de shell em vez de empacotar um aplicativo de área de trabalho existente com implementação IContextMenu herdada, sugerimos implementar a interface IExplorerCommand e usar desktop4:FileExplorerContextMenus. Consulte aqui para obter mais informações.