パッケージ アプリのレガシ コンテキスト メニューをサポートする
コンテキスト メニューは、最も一般的で便利なシェル拡張機能の 1 つです。 既にエクスプローラーまたはデスクトップを使用している場合は、別のアプリを開く場合と比較して、ファイル操作を完了する手順の数が大幅に減少します。
デスクトップ アプリに、コンテキスト メニュー ハンドラーやドラッグ アンド ドロップ ハンドラーなどのシェル拡張機能用のレガシ IContextMenu インターフェイスが実装されている場合、アプリをパッケージ化した後でシェル拡張機能が機能しない可能性があります。 シェルで拡張機能を認識して登録するには、パッケージ マニフェスト ファイルを変更する必要があります。 (この機能は、Windows 11 ビルド 22000+ で使用できます。これは現在 Windows Insider ビルドを介して使用できます)
shellex dll の com 名前空間と windows.comServer 拡張機能 を追加します
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
コード スニペットの例を次に示します。
<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>
desktop9 名前空間と windows.fileExplorerClassicContextMenuHandler または windows.fileExplorerClassicDragDropContextMenuHandler 拡張機能を追加します
xmlns:desktop9="http://schemas.microsoft.com/appx/manifest/desktop/windows10/9"
コード スニペットの例を次に示します。
<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>
MaxVersionTested を 10.0.21300.0 より大きく変更する
コード スニペットの例を次に示します。
<Dependencies> <TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.21301.0" /> </Dependencies>
Note
既存のデスクトップ アプリをレガシ IContextMenu 実装でパッケージ化する代わりにシェル拡張機能を実装する場合は、IExplorerCommand インターフェイスを実装し、代わりに desktop4:FileExplorerContextMenus を使用することをお勧めします。 詳細 については、こちら を参照してください。