次の方法で共有


パッケージ アプリのレガシ コンテキスト メニューをサポートする

コンテキスト メニューは、最も一般的で便利なシェル拡張機能の 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 を使用することをお勧めします。 詳細 については、こちら を参照してください。