mirror of
https://github.com/microsoft/PowerToys
synced 2025-08-22 01:58:04 +00:00
Added basic support for Windows App Actions. (#39927)
## Summary of the Pull Request Adds basic support for finding, listing, and executing Windows App Actions on files found by the Microsoft.CmdPal.Ext.Indexer extension. ## PR Checklist - [X] **Closes:** #39926 - [X] **Communication:** I've discussed this with core contributors already. If work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [X] **Localization:** All end user facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx ## Detailed Description of the Pull Request / Additional comments We also update cswin32 to stable version. <!-- Describe how you validated the behavior. Add automated tests wherever possible, but list manual validation steps taken as well --> ## Validation Steps Performed Validated that it doesn't show on older versions of Windows (<26100 insiders) and that it does work on newer version that have the App Actions runtime. --------- Co-authored-by: Gordon Lam (SH) <yeelam@microsoft.com> Co-authored-by: Mike Griese <migrie@microsoft.com> Co-authored-by: Leilei Zhang <leilzh@microsoft.com>
This commit is contained in:
parent
c83be3e74c
commit
4737ec987e
2
.github/actions/spell-check/expect.txt
vendored
2
.github/actions/spell-check/expect.txt
vendored
@ -204,6 +204,7 @@ CLIPSIBLINGS
|
|||||||
closesocket
|
closesocket
|
||||||
clp
|
clp
|
||||||
CLSCTX
|
CLSCTX
|
||||||
|
CLSCTXLOCALSERVER
|
||||||
clsids
|
clsids
|
||||||
Clusion
|
Clusion
|
||||||
cmder
|
cmder
|
||||||
@ -826,6 +827,7 @@ LOCALDISPLAY
|
|||||||
localpackage
|
localpackage
|
||||||
LOCALSYSTEM
|
LOCALSYSTEM
|
||||||
LOCATIONCHANGE
|
LOCATIONCHANGE
|
||||||
|
LOCKTYPE
|
||||||
LOGFONT
|
LOGFONT
|
||||||
LOGFONTW
|
LOGFONTW
|
||||||
logon
|
logon
|
||||||
|
@ -102,7 +102,7 @@ jobs:
|
|||||||
${{ else }}:
|
${{ else }}:
|
||||||
OutputBuildPlatform: ${{ platform }}
|
OutputBuildPlatform: ${{ platform }}
|
||||||
variables:
|
variables:
|
||||||
MakeAppxPath: 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.22621.0\x86\MakeAppx.exe'
|
MakeAppxPath: 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.26100.0\x86\MakeAppx.exe'
|
||||||
# Azure DevOps abhors a vacuum
|
# Azure DevOps abhors a vacuum
|
||||||
# If these are blank, expansion will fail later on... which will result in direct substitution of the variable *names*
|
# If these are blank, expansion will fail later on... which will result in direct substitution of the variable *names*
|
||||||
# later on. We'll just... set them to a single space and if we need to, check IsNullOrWhiteSpace.
|
# later on. We'll just... set them to a single space and if we need to, check IsNullOrWhiteSpace.
|
||||||
@ -335,6 +335,7 @@ jobs:
|
|||||||
/p:VCRTForwarders-IncludeDebugCRT=false
|
/p:VCRTForwarders-IncludeDebugCRT=false
|
||||||
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
/p:PowerToysRoot=$(Build.SourcesDirectory)
|
||||||
/p:PublishProfile=InstallationPublishProfile.pubxml
|
/p:PublishProfile=InstallationPublishProfile.pubxml
|
||||||
|
/p:TargetFramework=net9.0-windows10.0.26100.0
|
||||||
/bl:$(LogOutputDirectory)\publish-${{ join('_',split(project, '/')) }}.binlog
|
/bl:$(LogOutputDirectory)\publish-${{ join('_',split(project, '/')) }}.binlog
|
||||||
$(RestoreAdditionalProjectSourcesArg)
|
$(RestoreAdditionalProjectSourcesArg)
|
||||||
platform: $(BuildPlatform)
|
platform: $(BuildPlatform)
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
|
"Microsoft.VisualStudio.Component.Windows10SDK.19041",
|
||||||
"Microsoft.VisualStudio.Component.Windows10SDK.20348",
|
"Microsoft.VisualStudio.Component.Windows10SDK.20348",
|
||||||
"Microsoft.VisualStudio.Component.Windows10SDK.22621",
|
"Microsoft.VisualStudio.Component.Windows10SDK.22621",
|
||||||
|
"Microsoft.VisualStudio.Component.Windows10SDK.26100",
|
||||||
"Microsoft.VisualStudio.ComponentGroup.UWP.VC",
|
"Microsoft.VisualStudio.ComponentGroup.UWP.VC",
|
||||||
"Microsoft.VisualStudio.Component.UWP.VC.ARM64",
|
"Microsoft.VisualStudio.Component.UWP.VC.ARM64",
|
||||||
"Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre",
|
"Microsoft.VisualStudio.Component.VC.Runtimes.ARM64.Spectre",
|
||||||
|
@ -96,8 +96,8 @@
|
|||||||
|
|
||||||
<!-- Global props OverrideWindowsTargetPlatformVersion-->
|
<!-- Global props OverrideWindowsTargetPlatformVersion-->
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion>
|
<WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
|
||||||
<TargetPlatformVersion>10.0.22621.0</TargetPlatformVersion>
|
<TargetPlatformVersion>10.0.26100.0</TargetPlatformVersion>
|
||||||
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
|
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
@ -47,14 +47,14 @@
|
|||||||
<PackageVersion Include="Microsoft.Win32.SystemEvents" Version="9.0.6" />
|
<PackageVersion Include="Microsoft.Win32.SystemEvents" Version="9.0.6" />
|
||||||
<PackageVersion Include="Microsoft.WindowsPackageManager.ComInterop" Version="1.10.340" />
|
<PackageVersion Include="Microsoft.WindowsPackageManager.ComInterop" Version="1.10.340" />
|
||||||
<PackageVersion Include="Microsoft.Windows.Compatibility" Version="9.0.6" />
|
<PackageVersion Include="Microsoft.Windows.Compatibility" Version="9.0.6" />
|
||||||
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="0.2.46-beta" />
|
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="0.3.183" />
|
||||||
<!-- CsWinRT version needs to be set to have a WinRT.Runtime.dll at the same version contained inside the NET SDK we're currently building on CI. -->
|
<!-- CsWinRT version needs to be set to have a WinRT.Runtime.dll at the same version contained inside the NET SDK we're currently building on CI. -->
|
||||||
<!--
|
<!--
|
||||||
TODO: in Common.Dotnet.CsWinRT.props, on upgrade, verify RemoveCsWinRTPackageAnalyzer is no longer needed.
|
TODO: in Common.Dotnet.CsWinRT.props, on upgrade, verify RemoveCsWinRTPackageAnalyzer is no longer needed.
|
||||||
This is present due to a bug in CsWinRT where WPF projects cause the analyzer to fail.
|
This is present due to a bug in CsWinRT where WPF projects cause the analyzer to fail.
|
||||||
-->
|
-->
|
||||||
<PackageVersion Include="Microsoft.Windows.CsWinRT" Version="2.2.0" />
|
<PackageVersion Include="Microsoft.Windows.CsWinRT" Version="2.2.0" />
|
||||||
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.2428" />
|
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.26100.4188" />
|
||||||
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.7.250513003" />
|
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.7.250513003" />
|
||||||
<PackageVersion Include="Microsoft.Xaml.Behaviors.WinUI.Managed" Version="2.0.9" />
|
<PackageVersion Include="Microsoft.Xaml.Behaviors.WinUI.Managed" Version="2.0.9" />
|
||||||
<PackageVersion Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" />
|
<PackageVersion Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.39" />
|
||||||
|
@ -1533,9 +1533,9 @@ SOFTWARE.
|
|||||||
- Microsoft.Web.WebView2 1.0.2903.40
|
- Microsoft.Web.WebView2 1.0.2903.40
|
||||||
- Microsoft.Win32.SystemEvents 9.0.6
|
- Microsoft.Win32.SystemEvents 9.0.6
|
||||||
- Microsoft.Windows.Compatibility 9.0.6
|
- Microsoft.Windows.Compatibility 9.0.6
|
||||||
- Microsoft.Windows.CsWin32 0.2.46-beta
|
- Microsoft.Windows.CsWin32 0.3.183
|
||||||
- Microsoft.Windows.CsWinRT 2.2.0
|
- Microsoft.Windows.CsWinRT 2.2.0
|
||||||
- Microsoft.Windows.SDK.BuildTools 10.0.22621.2428
|
- Microsoft.Windows.SDK.BuildTools 10.0.26100.4188
|
||||||
- Microsoft.WindowsAppSDK 1.7.250513003
|
- Microsoft.WindowsAppSDK 1.7.250513003
|
||||||
- Microsoft.WindowsPackageManager.ComInterop 1.10.340
|
- Microsoft.WindowsPackageManager.ComInterop 1.10.340
|
||||||
- Microsoft.Xaml.Behaviors.WinUI.Managed 2.0.9
|
- Microsoft.Xaml.Behaviors.WinUI.Managed 2.0.9
|
||||||
|
@ -8,10 +8,10 @@ SET VCToolsVersion=!VCToolsVersion!
|
|||||||
SET ClearDevCommandPromptEnvVars=false
|
SET ClearDevCommandPromptEnvVars=false
|
||||||
|
|
||||||
rem In case of Release we should not use Debug CRT in VCRT forwarders
|
rem In case of Release we should not use Debug CRT in VCRT forwarders
|
||||||
msbuild !PTRoot!\src\modules\previewpane\MonacoPreviewHandler\MonacoPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
msbuild !PTRoot!\src\modules\previewpane\MonacoPreviewHandler\MonacoPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml -p:TargetFramework=net9.0-windows10.0.26100.0
|
||||||
|
|
||||||
msbuild !PTRoot!\src\modules\previewpane\MarkdownPreviewHandler\MarkdownPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
msbuild !PTRoot!\src\modules\previewpane\MarkdownPreviewHandler\MarkdownPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml -p:TargetFramework=net9.0-windows10.0.26100.0
|
||||||
|
|
||||||
msbuild !PTRoot!\src\modules\previewpane\SvgPreviewHandler\SvgPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
msbuild !PTRoot!\src\modules\previewpane\SvgPreviewHandler\SvgPreviewHandler.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml -p:TargetFramework=net9.0-windows10.0.26100.0
|
||||||
|
|
||||||
msbuild !PTRoot!\src\modules\previewpane\SvgThumbnailProvider\SvgThumbnailProvider.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml
|
msbuild !PTRoot!\src\modules\previewpane\SvgThumbnailProvider\SvgThumbnailProvider.csproj -t:Publish -p:Configuration="Release" -p:Platform="!PlatformArg!" -p:AppxBundle=Never -p:PowerToysRoot=!PTRoot! -p:VCRTForwarders-IncludeDebugCRT=false -p:PublishProfile=InstallationPublishProfile.pubxml -p:TargetFramework=net9.0-windows10.0.26100.0
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
<Import Project=".\Common.Dotnet.PrepareGeneratedFolder.targets" />
|
<Import Project=".\Common.Dotnet.PrepareGeneratedFolder.targets" />
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<WindowsSdkPackageVersion>10.0.22621.57</WindowsSdkPackageVersion>
|
<WindowsSdkPackageVersion>10.0.26100.68-preview</WindowsSdkPackageVersion>
|
||||||
<TargetFramework>net9.0-windows10.0.22621.0</TargetFramework>
|
<TargetFramework>net9.0-windows10.0.26100.0</TargetFramework>
|
||||||
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
||||||
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
||||||
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
||||||
|
@ -10,7 +10,7 @@
|
|||||||
<ProjectGuid>{f5e1146e-b7b3-4e11-85fd-270a500bd78c}</ProjectGuid>
|
<ProjectGuid>{f5e1146e-b7b3-4e11-85fd-270a500bd78c}</ProjectGuid>
|
||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<RootNamespace>CropAndLock</RootNamespace>
|
<RootNamespace>CropAndLock</RootNamespace>
|
||||||
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.22621.0</WindowsTargetPlatformVersion>
|
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.26100.0</WindowsTargetPlatformVersion>
|
||||||
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
|
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
@ -5,7 +5,7 @@ https://go.microsoft.com/fwlink/?LinkID=208121.
|
|||||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PublishProtocol>FileSystem</PublishProtocol>
|
<PublishProtocol>FileSystem</PublishProtocol>
|
||||||
<TargetFramework>net9.0-windows10.0.22621.0</TargetFramework>
|
<TargetFramework>net9.0-windows10.0.26100.0</TargetFramework>
|
||||||
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
||||||
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
||||||
<PublishDir>$(PowerToysRoot)\$(Platform)\$(Configuration)\WinUI3Apps</PublishDir>
|
<PublishDir>$(PowerToysRoot)\$(Platform)\$(Configuration)\WinUI3Apps</PublishDir>
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props" Condition="Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props')" />
|
<Import Project="..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props" Condition="Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.props')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.props')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props')" />
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<CppWinRTOptimized>true</CppWinRTOptimized>
|
<CppWinRTOptimized>true</CppWinRTOptimized>
|
||||||
@ -139,7 +139,7 @@
|
|||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.targets')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.targets')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets" Condition="Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets')" />
|
<Import Project="..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets" Condition="Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets')" />
|
||||||
</ImportGroup>
|
</ImportGroup>
|
||||||
@ -150,8 +150,8 @@
|
|||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.props'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.props'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.targets'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.targets'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets'))" />
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
<package id="Microsoft.Web.WebView2" version="1.0.2903.40" targetFramework="native" />
|
<package id="Microsoft.Web.WebView2" version="1.0.2903.40" targetFramework="native" />
|
||||||
<package id="Microsoft.Windows.CppWinRT" version="2.0.240111.5" targetFramework="native" />
|
<package id="Microsoft.Windows.CppWinRT" version="2.0.240111.5" targetFramework="native" />
|
||||||
<package id="Microsoft.Windows.ImplementationLibrary" version="1.0.231216.1" targetFramework="native" />
|
<package id="Microsoft.Windows.ImplementationLibrary" version="1.0.231216.1" targetFramework="native" />
|
||||||
<package id="Microsoft.Windows.SDK.BuildTools" version="10.0.22621.2428" targetFramework="native" />
|
<package id="Microsoft.Windows.SDK.BuildTools" version="10.0.26100.4188" targetFramework="native" />
|
||||||
<package id="Microsoft.WindowsAppSDK" version="1.7.250513003" targetFramework="native" />
|
<package id="Microsoft.WindowsAppSDK" version="1.7.250513003" targetFramework="native" />
|
||||||
</packages>
|
</packages>
|
@ -9,7 +9,7 @@
|
|||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<ProjectGuid>{0db0f63a-d2f8-4da3-a650-2d0b8724218e}</ProjectGuid>
|
<ProjectGuid>{0db0f63a-d2f8-4da3-a650-2d0b8724218e}</ProjectGuid>
|
||||||
<RootNamespace>NewPlusShellExtensionWin10</RootNamespace>
|
<RootNamespace>NewPlusShellExtensionWin10</RootNamespace>
|
||||||
<WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion>
|
<WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<PropertyGroup Label="Configuration">
|
<PropertyGroup Label="Configuration">
|
||||||
|
@ -6,9 +6,9 @@
|
|||||||
<PackageVersion Include="Microsoft.CommandPalette.Extensions" Version="0.2.0" />
|
<PackageVersion Include="Microsoft.CommandPalette.Extensions" Version="0.2.0" />
|
||||||
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="9.0.0-preview.24508.2" />
|
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="9.0.0-preview.24508.2" />
|
||||||
<PackageVersion Include="Microsoft.Web.WebView2" Version="1.0.2903.40" />
|
<PackageVersion Include="Microsoft.Web.WebView2" Version="1.0.2903.40" />
|
||||||
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="0.2.46-beta" />
|
<PackageVersion Include="Microsoft.Windows.CsWin32" Version="0.3.183" />
|
||||||
<PackageVersion Include="Microsoft.Windows.CsWinRT" Version="2.2.0" />
|
<PackageVersion Include="Microsoft.Windows.CsWinRT" Version="2.2.0" />
|
||||||
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.2428" />
|
<PackageVersion Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.26100.4188" />
|
||||||
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.7.250513003" />
|
<PackageVersion Include="Microsoft.WindowsAppSDK" Version="1.7.250513003" />
|
||||||
<PackageVersion Include="Shmuelie.WinRTServer" Version="2.1.1" />
|
<PackageVersion Include="Shmuelie.WinRTServer" Version="2.1.1" />
|
||||||
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.556" />
|
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.556" />
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
<RootNamespace>TemplateCmdPalExtension</RootNamespace>
|
<RootNamespace>TemplateCmdPalExtension</RootNamespace>
|
||||||
<ApplicationManifest>app.manifest</ApplicationManifest>
|
<ApplicationManifest>app.manifest</ApplicationManifest>
|
||||||
|
|
||||||
<WindowsSdkPackageVersion>10.0.22621.57</WindowsSdkPackageVersion>
|
<WindowsSdkPackageVersion>10.0.26100.68-preview</WindowsSdkPackageVersion>
|
||||||
<TargetFramework>net9.0-windows10.0.22621.0</TargetFramework>
|
<TargetFramework>net9.0-windows10.0.26100.0</TargetFramework>
|
||||||
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
<TargetPlatformMinVersion>10.0.19041.0</TargetPlatformMinVersion>
|
||||||
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
<SupportedOSPlatformVersion>10.0.19041.0</SupportedOSPlatformVersion>
|
||||||
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
<RuntimeIdentifiers>win-x64;win-arm64</RuntimeIdentifiers>
|
||||||
|
@ -57,7 +57,11 @@ public sealed partial class MainWindow : WindowEx,
|
|||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
_hwnd = new HWND(WinRT.Interop.WindowNative.GetWindowHandle(this).ToInt32());
|
_hwnd = new HWND(WinRT.Interop.WindowNative.GetWindowHandle(this).ToInt32());
|
||||||
CommandPaletteHost.SetHostHwnd((ulong)_hwnd.Value);
|
|
||||||
|
unsafe
|
||||||
|
{
|
||||||
|
CommandPaletteHost.SetHostHwnd((ulong)_hwnd.Value);
|
||||||
|
}
|
||||||
|
|
||||||
_keyboardListener = new KeyboardListener();
|
_keyboardListener = new KeyboardListener();
|
||||||
_keyboardListener.Start();
|
_keyboardListener.Start();
|
||||||
|
@ -19,7 +19,7 @@
|
|||||||
<AppContainerApplication>false</AppContainerApplication>
|
<AppContainerApplication>false</AppContainerApplication>
|
||||||
<ApplicationType>Windows Store</ApplicationType>
|
<ApplicationType>Windows Store</ApplicationType>
|
||||||
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
|
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
|
||||||
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.22621.0</WindowsTargetPlatformVersion>
|
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.26100.0</WindowsTargetPlatformVersion>
|
||||||
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
|
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
@ -221,11 +221,10 @@ public class UWPApplication : IProgram
|
|||||||
var capacity = 1024U;
|
var capacity = 1024U;
|
||||||
PWSTR outBuffer = new PWSTR((char*)(void*)Marshal.AllocHGlobal((int)capacity * sizeof(char)));
|
PWSTR outBuffer = new PWSTR((char*)(void*)Marshal.AllocHGlobal((int)capacity * sizeof(char)));
|
||||||
var source = $"@{{{packageFullName}? {parsed}}}";
|
var source = $"@{{{packageFullName}? {parsed}}}";
|
||||||
void* reserved = null;
|
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
PInvoke.SHLoadIndirectString(source, outBuffer, capacity, ref reserved).ThrowOnFailure();
|
PInvoke.SHLoadIndirectString(source, outBuffer.AsSpan()).ThrowOnFailure();
|
||||||
|
|
||||||
var loaded = outBuffer.ToString();
|
var loaded = outBuffer.ToString();
|
||||||
return string.IsNullOrEmpty(loaded) ? string.Empty : loaded;
|
return string.IsNullOrEmpty(loaded) ? string.Empty : loaded;
|
||||||
@ -235,7 +234,7 @@ public class UWPApplication : IProgram
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var sourceFallback = $"@{{{packageFullName}?{parsedFallback}}}";
|
var sourceFallback = $"@{{{packageFullName}?{parsedFallback}}}";
|
||||||
PInvoke.SHLoadIndirectString(sourceFallback, outBuffer, capacity, ref reserved).ThrowOnFailure();
|
PInvoke.SHLoadIndirectString(sourceFallback, outBuffer.AsSpan()).ThrowOnFailure();
|
||||||
var loaded = outBuffer.ToString();
|
var loaded = outBuffer.ToString();
|
||||||
return string.IsNullOrEmpty(loaded) ? string.Empty : loaded;
|
return string.IsNullOrEmpty(loaded) ? string.Empty : loaded;
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,42 @@
|
|||||||
|
// Copyright (c) Microsoft Corporation
|
||||||
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
||||||
|
// See the LICENSE file in the project root for more information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using Microsoft.CmdPal.Ext.Indexer.Native;
|
||||||
|
using Windows.Win32;
|
||||||
|
using Windows.Win32.Foundation;
|
||||||
|
using Windows.Win32.System.Com;
|
||||||
|
using WinRT;
|
||||||
|
using WinRT.Interop;
|
||||||
|
|
||||||
|
namespace Microsoft.CmdPal.Ext.Indexer.Data;
|
||||||
|
|
||||||
|
internal static class ActionRuntimeFactory
|
||||||
|
{
|
||||||
|
private const string ActionRuntimeClsidStr = "C36FEF7E-35F3-4192-9F2C-AF1FD425FB85";
|
||||||
|
|
||||||
|
// typeof(Windows.AI.Actions.IActionRuntime).GUID
|
||||||
|
private static readonly Guid IActionRuntimeIID = Guid.Parse("206EFA2C-C909-508A-B4B0-9482BE96DB9C");
|
||||||
|
|
||||||
|
public static unsafe global::Windows.AI.Actions.ActionRuntime CreateActionRuntime()
|
||||||
|
{
|
||||||
|
IntPtr abiPtr = default;
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Guid classId = Guid.Parse(ActionRuntimeClsidStr);
|
||||||
|
Guid iid = IActionRuntimeIID;
|
||||||
|
|
||||||
|
var hresult = NativeMethods.CoCreateInstance(ref Unsafe.AsRef(in classId), IntPtr.Zero, NativeHelpers.CLSCTXLOCALSERVER, ref iid, out abiPtr);
|
||||||
|
Marshal.ThrowExceptionForHR((int)hresult);
|
||||||
|
|
||||||
|
return MarshalInterface<global::Windows.AI.Actions.ActionRuntime>.FromAbi(abiPtr);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
MarshalInspectable<object>.DisposeAbi(abiPtr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Binary file not shown.
After Width: | Height: | Size: 4.3 KiB |
@ -0,0 +1,43 @@
|
|||||||
|
// Copyright (c) Microsoft Corporation
|
||||||
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
||||||
|
// See the LICENSE file in the project root for more information.
|
||||||
|
|
||||||
|
using System;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.CommandPalette.Extensions.Toolkit;
|
||||||
|
using Windows.AI.Actions.Hosting;
|
||||||
|
|
||||||
|
namespace Microsoft.CmdPal.Ext.Indexer.Commands;
|
||||||
|
|
||||||
|
internal sealed partial class ExecuteActionCommand : InvokableCommand
|
||||||
|
{
|
||||||
|
private readonly ActionInstance actionInstance;
|
||||||
|
|
||||||
|
internal ExecuteActionCommand(ActionInstance actionInstance)
|
||||||
|
{
|
||||||
|
this.actionInstance = actionInstance;
|
||||||
|
this.Name = actionInstance.DisplayInfo.Description;
|
||||||
|
this.Icon = new IconInfo(actionInstance.Definition.IconFullPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
public override CommandResult Invoke()
|
||||||
|
{
|
||||||
|
var task = Task.Run(InvokeAsync);
|
||||||
|
task.Wait();
|
||||||
|
|
||||||
|
return task.Result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private async Task<CommandResult> InvokeAsync()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
await actionInstance.InvokeAsync();
|
||||||
|
return CommandResult.GoHome();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
return CommandResult.ShowToast("Failed to invoke action " + actionInstance.Definition.Id + ": " + ex.Message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -4,8 +4,11 @@
|
|||||||
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using Microsoft.CmdPal.Ext.Indexer.Commands;
|
using Microsoft.CmdPal.Ext.Indexer.Commands;
|
||||||
|
using Microsoft.CmdPal.Ext.Indexer.Pages;
|
||||||
using Microsoft.CmdPal.Ext.Indexer.Properties;
|
using Microsoft.CmdPal.Ext.Indexer.Properties;
|
||||||
|
using Microsoft.CommandPalette.Extensions;
|
||||||
using Microsoft.CommandPalette.Extensions.Toolkit;
|
using Microsoft.CommandPalette.Extensions.Toolkit;
|
||||||
|
using Windows.Foundation.Metadata;
|
||||||
|
|
||||||
namespace Microsoft.CmdPal.Ext.Indexer.Data;
|
namespace Microsoft.CmdPal.Ext.Indexer.Data;
|
||||||
|
|
||||||
@ -38,9 +41,24 @@ internal sealed partial class IndexerListItem : ListItem
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
MoreCommands = [
|
IContextItem[] moreCommands = [
|
||||||
..context,
|
..context,
|
||||||
new CommandContextItem(new OpenWithCommand(indexerItem)),
|
new CommandContextItem(new OpenWithCommand(indexerItem))];
|
||||||
|
|
||||||
|
if (ApiInformation.IsApiContractPresent("Windows.AI.Actions.ActionsContract", 4))
|
||||||
|
{
|
||||||
|
var actionsListContextItem = new ActionsListContextItem(indexerItem.FullPath);
|
||||||
|
if (actionsListContextItem.AnyActions())
|
||||||
|
{
|
||||||
|
moreCommands = [
|
||||||
|
.. moreCommands,
|
||||||
|
actionsListContextItem
|
||||||
|
];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
MoreCommands = [
|
||||||
|
.. moreCommands,
|
||||||
new CommandContextItem(new ShowFileInFolderCommand(indexerItem.FullPath) { Name = Resources.Indexer_Command_ShowInFolder }),
|
new CommandContextItem(new ShowFileInFolderCommand(indexerItem.FullPath) { Name = Resources.Indexer_Command_ShowInFolder }),
|
||||||
new CommandContextItem(new CopyPathCommand(indexerItem)),
|
new CommandContextItem(new CopyPathCommand(indexerItem)),
|
||||||
new CommandContextItem(new OpenInConsoleCommand(indexerItem)),
|
new CommandContextItem(new OpenInConsoleCommand(indexerItem)),
|
||||||
|
@ -34,6 +34,9 @@
|
|||||||
<Content Update="Assets\FileExplorer.png">
|
<Content Update="Assets\FileExplorer.png">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
<Content Update="Assets\Actions.png">
|
||||||
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
|
</Content>
|
||||||
<Content Update="Assets\FileExplorer.svg">
|
<Content Update="Assets\FileExplorer.svg">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</Content>
|
</Content>
|
||||||
|
@ -11,6 +11,7 @@ public sealed partial class NativeHelpers
|
|||||||
public const uint SEEMASKINVOKEIDLIST = 12;
|
public const uint SEEMASKINVOKEIDLIST = 12;
|
||||||
|
|
||||||
public const uint CLSCTXINPROCALL = 0x17;
|
public const uint CLSCTXINPROCALL = 0x17;
|
||||||
|
public const uint CLSCTXLOCALSERVER = 0x4;
|
||||||
|
|
||||||
public struct PropertyKeys
|
public struct PropertyKeys
|
||||||
{
|
{
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://aka.ms/CsWin32.schema.json",
|
"$schema": "https://aka.ms/CsWin32.schema.json",
|
||||||
"allowMarshaling": false,
|
"allowMarshaling": false,
|
||||||
"emitSingleFile": false,
|
"comInterop": {
|
||||||
"public": true
|
"preserveSigMethods": [ "*" ]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -0,0 +1,93 @@
|
|||||||
|
// Copyright (c) Microsoft Corporation
|
||||||
|
// The Microsoft Corporation licenses this file to you under the MIT license.
|
||||||
|
// See the LICENSE file in the project root for more information.
|
||||||
|
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Globalization;
|
||||||
|
using System.Threading;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using Microsoft.CmdPal.Ext.Indexer.Commands;
|
||||||
|
using Microsoft.CmdPal.Ext.Indexer.Data;
|
||||||
|
using Microsoft.CmdPal.Ext.Indexer.Properties;
|
||||||
|
using Microsoft.CommandPalette.Extensions.Toolkit;
|
||||||
|
using Windows.AI.Actions;
|
||||||
|
using Windows.System;
|
||||||
|
|
||||||
|
namespace Microsoft.CmdPal.Ext.Indexer.Pages;
|
||||||
|
|
||||||
|
internal sealed partial class ActionsListContextItem : CommandContextItem
|
||||||
|
{
|
||||||
|
private readonly string fullPath;
|
||||||
|
private readonly List<CommandContextItem> actions = [];
|
||||||
|
private static readonly Lock UpdateMoreCommandsLock = new();
|
||||||
|
private static ActionRuntime actionRuntime;
|
||||||
|
|
||||||
|
public ActionsListContextItem(string fullPath)
|
||||||
|
: base(new NoOpCommand())
|
||||||
|
{
|
||||||
|
Title = Resources.Indexer_Command_Actions;
|
||||||
|
Icon = Icons.Actions;
|
||||||
|
RequestedShortcut = KeyChordHelpers.FromModifiers(alt: true, vkey: VirtualKey.A);
|
||||||
|
this.fullPath = fullPath;
|
||||||
|
UpdateMoreCommands();
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool AnyActions() => actions.Count != 0;
|
||||||
|
|
||||||
|
private void ActionCatalog_Changed(global::Windows.AI.Actions.Hosting.ActionCatalog sender, object args)
|
||||||
|
{
|
||||||
|
UpdateMoreCommands();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UpdateMoreCommands()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
lock (UpdateMoreCommandsLock)
|
||||||
|
{
|
||||||
|
if (actionRuntime == null)
|
||||||
|
{
|
||||||
|
actionRuntime = ActionRuntimeFactory.CreateActionRuntime();
|
||||||
|
Task.Delay(500).Wait();
|
||||||
|
}
|
||||||
|
|
||||||
|
actionRuntime.ActionCatalog.Changed -= ActionCatalog_Changed;
|
||||||
|
actionRuntime.ActionCatalog.Changed += ActionCatalog_Changed;
|
||||||
|
}
|
||||||
|
|
||||||
|
var extension = System.IO.Path.GetExtension(fullPath).ToLower(CultureInfo.InvariantCulture);
|
||||||
|
ActionEntity entity = null;
|
||||||
|
if (extension != null)
|
||||||
|
{
|
||||||
|
if (extension == ".jpg" || extension == ".jpeg" || extension == ".png")
|
||||||
|
{
|
||||||
|
entity = actionRuntime.EntityFactory.CreatePhotoEntity(fullPath);
|
||||||
|
}
|
||||||
|
else if (extension == ".docx" || extension == ".doc" || extension == ".pdf" || extension == ".txt")
|
||||||
|
{
|
||||||
|
entity = actionRuntime.EntityFactory.CreateDocumentEntity(fullPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (entity == null)
|
||||||
|
{
|
||||||
|
entity = actionRuntime.EntityFactory.CreateFileEntity(fullPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
lock (actions)
|
||||||
|
{
|
||||||
|
actions.Clear();
|
||||||
|
foreach (var actionInstance in actionRuntime.ActionCatalog.GetActionsForInputs([entity]))
|
||||||
|
{
|
||||||
|
actions.Add(new CommandContextItem(new ExecuteActionCommand(actionInstance)));
|
||||||
|
}
|
||||||
|
|
||||||
|
MoreCommands = [.. actions];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
actionRuntime = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -12,6 +12,8 @@ internal sealed class Icons
|
|||||||
|
|
||||||
internal static IconInfo FileExplorer { get; } = IconHelpers.FromRelativePath("Assets\\FileExplorer.png");
|
internal static IconInfo FileExplorer { get; } = IconHelpers.FromRelativePath("Assets\\FileExplorer.png");
|
||||||
|
|
||||||
|
internal static IconInfo Actions { get; } = IconHelpers.FromRelativePath("Assets\\Actions.png");
|
||||||
|
|
||||||
internal static IconInfo OpenFile { get; } = new("\uE8E5"); // OpenFile
|
internal static IconInfo OpenFile { get; } = new("\uE8E5"); // OpenFile
|
||||||
|
|
||||||
internal static IconInfo Document { get; } = new("\uE8A5"); // Document
|
internal static IconInfo Document { get; } = new("\uE8A5"); // Document
|
||||||
|
@ -60,6 +60,15 @@ namespace Microsoft.CmdPal.Ext.Indexer.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Actions.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Indexer_Command_Actions {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Indexer_Command_Actions", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Browse.
|
/// Looks up a localized string similar to Browse.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -138,6 +138,9 @@
|
|||||||
<data name="Indexer_Command_OpenWith" xml:space="preserve">
|
<data name="Indexer_Command_OpenWith" xml:space="preserve">
|
||||||
<value>Open with</value>
|
<value>Open with</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Indexer_Command_Actions" xml:space="preserve">
|
||||||
|
<value>Actions...</value>
|
||||||
|
</data>
|
||||||
<data name="Indexer_Command_ShowInFolder" xml:space="preserve">
|
<data name="Indexer_Command_ShowInFolder" xml:space="preserve">
|
||||||
<value>Show in folder</value>
|
<value>Show in folder</value>
|
||||||
</data>
|
</data>
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
// See the LICENSE file in the project root for more information.
|
// See the LICENSE file in the project root for more information.
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Threading;
|
using System.Threading;
|
||||||
using ManagedCommon;
|
using ManagedCommon;
|
||||||
@ -188,17 +189,20 @@ public static class DefaultBrowserInfo
|
|||||||
{
|
{
|
||||||
var buffer = stackalloc char[128];
|
var buffer = stackalloc char[128];
|
||||||
var capacity = 128;
|
var capacity = 128;
|
||||||
void* reserved = null;
|
var firstChar = str[0];
|
||||||
|
var strPtr = &firstChar;
|
||||||
|
|
||||||
// S_OK == 0
|
// S_OK == 0
|
||||||
if (global::Windows.Win32.PInvoke.SHLoadIndirectString(
|
fixed (char* pszSourceLocal = str)
|
||||||
str,
|
{
|
||||||
|
if (global::Windows.Win32.PInvoke.SHLoadIndirectString(
|
||||||
|
pszSourceLocal,
|
||||||
buffer,
|
buffer,
|
||||||
(uint)capacity,
|
(uint)capacity,
|
||||||
ref reserved)
|
default) == 0)
|
||||||
== 0)
|
{
|
||||||
{
|
return new string(buffer);
|
||||||
return new string(buffer);
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ public class Utilities
|
|||||||
var FOLDERID_LocalAppData = new Guid("F1B32785-6FBA-4FCF-9D55-7B8E7F157091");
|
var FOLDERID_LocalAppData = new Guid("F1B32785-6FBA-4FCF-9D55-7B8E7F157091");
|
||||||
var hr = PInvoke.SHGetKnownFolderPath(
|
var hr = PInvoke.SHGetKnownFolderPath(
|
||||||
FOLDERID_LocalAppData,
|
FOLDERID_LocalAppData,
|
||||||
(uint)KNOWN_FOLDER_FLAG.KF_FLAG_FORCE_APP_DATA_REDIRECTION,
|
KNOWN_FOLDER_FLAG.KF_FLAG_FORCE_APP_DATA_REDIRECTION,
|
||||||
null,
|
null,
|
||||||
out var localAppDataFolder);
|
out var localAppDataFolder);
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<PathToRoot>..\..\..\..\..\</PathToRoot>
|
<PathToRoot>..\..\..\..\..\</PathToRoot>
|
||||||
<WasdkNuget>$(PathToRoot)packages\Microsoft.WindowsAppSDK.1.7.250513003</WasdkNuget>
|
<WasdkNuget>$(PathToRoot)packages\Microsoft.WindowsAppSDK.1.7.250513003</WasdkNuget>
|
||||||
<CppWinRTNuget>$(PathToRoot)packages\Microsoft.Windows.CppWinRT.2.0.240111.5</CppWinRTNuget>
|
<CppWinRTNuget>$(PathToRoot)packages\Microsoft.Windows.CppWinRT.2.0.240111.5</CppWinRTNuget>
|
||||||
<WindowsSdkBuildToolsNuget>$(PathToRoot)packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428</WindowsSdkBuildToolsNuget>
|
<WindowsSdkBuildToolsNuget>$(PathToRoot)packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188</WindowsSdkBuildToolsNuget>
|
||||||
<WebView2Nuget>$(PathToRoot)packages\Microsoft.Web.WebView2.1.0.2903.40</WebView2Nuget>
|
<WebView2Nuget>$(PathToRoot)packages\Microsoft.Web.WebView2.1.0.2903.40</WebView2Nuget>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(WasdkNuget)\build\native\Microsoft.WindowsAppSDK.props" Condition="Exists('$(WasdkNuget)\build\native\Microsoft.WindowsAppSDK.props')" />
|
<Import Project="$(WasdkNuget)\build\native\Microsoft.WindowsAppSDK.props" Condition="Exists('$(WasdkNuget)\build\native\Microsoft.WindowsAppSDK.props')" />
|
||||||
@ -24,7 +24,7 @@
|
|||||||
<ApplicationType>Windows Store</ApplicationType>
|
<ApplicationType>Windows Store</ApplicationType>
|
||||||
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
|
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
|
||||||
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
|
<WindowsTargetPlatformMinVersion>10.0.19041.0</WindowsTargetPlatformMinVersion>
|
||||||
<WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion>
|
<WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
<ItemGroup Label="ProjectConfigurations">
|
<ItemGroup Label="ProjectConfigurations">
|
||||||
|
@ -2,6 +2,6 @@
|
|||||||
<packages>
|
<packages>
|
||||||
<package id="Microsoft.Web.WebView2" version="1.0.2903.40" targetFramework="native" />
|
<package id="Microsoft.Web.WebView2" version="1.0.2903.40" targetFramework="native" />
|
||||||
<package id="Microsoft.Windows.CppWinRT" version="2.0.240111.5" targetFramework="native" />
|
<package id="Microsoft.Windows.CppWinRT" version="2.0.240111.5" targetFramework="native" />
|
||||||
<package id="Microsoft.Windows.SDK.BuildTools" version="10.0.22621.2428" targetFramework="native" />
|
<package id="Microsoft.Windows.SDK.BuildTools" version="10.0.26100.4188" targetFramework="native" />
|
||||||
<package id="Microsoft.WindowsAppSDK" version="1.7.250513003" targetFramework="native" />
|
<package id="Microsoft.WindowsAppSDK" version="1.7.250513003" targetFramework="native" />
|
||||||
</packages>
|
</packages>
|
@ -4,7 +4,6 @@
|
|||||||
|
|
||||||
using System;
|
using System;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
|
|
||||||
using CommunityToolkit.Mvvm.ComponentModel;
|
using CommunityToolkit.Mvvm.ComponentModel;
|
||||||
using Microsoft.UI;
|
using Microsoft.UI;
|
||||||
using Microsoft.UI.Xaml;
|
using Microsoft.UI.Xaml;
|
||||||
@ -24,8 +23,8 @@ namespace Peek.FilePreviewer.Controls
|
|||||||
private static readonly COLORREF LightThemeBgColor = new(0x00f3f3f3);
|
private static readonly COLORREF LightThemeBgColor = new(0x00f3f3f3);
|
||||||
private static readonly COLORREF DarkThemeBgColor = new(0x00202020);
|
private static readonly COLORREF DarkThemeBgColor = new(0x00202020);
|
||||||
|
|
||||||
private static readonly HBRUSH LightThemeBgBrush = PInvoke.CreateSolidBrush(LightThemeBgColor);
|
private static readonly HBRUSH LightThemeBgBrush = PInvoke_FilePreviewer.CreateSolidBrush(LightThemeBgColor);
|
||||||
private static readonly HBRUSH DarkThemeBgBrush = PInvoke.CreateSolidBrush(DarkThemeBgColor);
|
private static readonly HBRUSH DarkThemeBgBrush = PInvoke_FilePreviewer.CreateSolidBrush(DarkThemeBgColor);
|
||||||
|
|
||||||
[ObservableProperty]
|
[ObservableProperty]
|
||||||
private IPreviewHandler? source;
|
private IPreviewHandler? source;
|
||||||
@ -88,19 +87,19 @@ namespace Peek.FilePreviewer.Controls
|
|||||||
|
|
||||||
if (HandlerVisibility == Visibility.Visible)
|
if (HandlerVisibility == Visibility.Visible)
|
||||||
{
|
{
|
||||||
PInvoke.ShowWindow(containerHwnd, SHOW_WINDOW_CMD.SW_SHOW);
|
PInvoke_FilePreviewer.ShowWindow(containerHwnd, SHOW_WINDOW_CMD.SW_SHOW);
|
||||||
IsEnabled = true;
|
IsEnabled = true;
|
||||||
|
|
||||||
// Clears the background from the last previewer
|
// Clears the background from the last previewer
|
||||||
// The brush can only be drawn here because flashes will occur during resize
|
// The brush can only be drawn here because flashes will occur during resize
|
||||||
PInvoke.SetClassLongPtr(containerHwnd, GET_CLASS_LONG_INDEX.GCLP_HBRBACKGROUND, containerBgBrush);
|
PInvoke_FilePreviewer.SetClassLongPtr(containerHwnd, GET_CLASS_LONG_INDEX.GCLP_HBRBACKGROUND, containerBgBrush);
|
||||||
PInvoke.UpdateWindow(containerHwnd);
|
PInvoke_FilePreviewer.UpdateWindow(containerHwnd);
|
||||||
PInvoke.SetClassLongPtr(containerHwnd, GET_CLASS_LONG_INDEX.GCLP_HBRBACKGROUND, IntPtr.Zero);
|
PInvoke_FilePreviewer.SetClassLongPtr(containerHwnd, GET_CLASS_LONG_INDEX.GCLP_HBRBACKGROUND, IntPtr.Zero);
|
||||||
PInvoke.InvalidateRect(containerHwnd, (RECT*)null, true);
|
PInvoke_FilePreviewer.InvalidateRect(containerHwnd, (RECT*)null, true);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
PInvoke.ShowWindow(containerHwnd, SHOW_WINDOW_CMD.SW_HIDE);
|
PInvoke_FilePreviewer.ShowWindow(containerHwnd, SHOW_WINDOW_CMD.SW_HIDE);
|
||||||
IsEnabled = false;
|
IsEnabled = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -132,14 +131,14 @@ namespace Peek.FilePreviewer.Controls
|
|||||||
visuals.SetTextColor(fgColor);
|
visuals.SetTextColor(fgColor);
|
||||||
|
|
||||||
// Changing the previewer colors might not always redraw itself
|
// Changing the previewer colors might not always redraw itself
|
||||||
PInvoke.InvalidateRect(containerHwnd, (RECT*)null, true);
|
PInvoke_FilePreviewer.InvalidateRect(containerHwnd, (RECT*)null, true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private LRESULT ContainerWndProc(HWND hWnd, uint msg, WPARAM wParam, LPARAM lParam)
|
private LRESULT ContainerWndProc(HWND hWnd, uint msg, WPARAM wParam, LPARAM lParam)
|
||||||
{
|
{
|
||||||
// Here for future use :)
|
// Here for future use :)
|
||||||
return PInvoke.DefWindowProc(hWnd, msg, wParam, lParam);
|
return PInvoke_FilePreviewer.DefWindowProc(hWnd, msg, wParam, lParam);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void EnsureContainerHwndCreated()
|
private void EnsureContainerHwndCreated()
|
||||||
@ -157,14 +156,14 @@ namespace Peek.FilePreviewer.Controls
|
|||||||
|
|
||||||
fixed (char* pContainerClassName = "PeekShellPreviewHandlerContainer")
|
fixed (char* pContainerClassName = "PeekShellPreviewHandlerContainer")
|
||||||
{
|
{
|
||||||
PInvoke.RegisterClass(new WNDCLASSW()
|
PInvoke_FilePreviewer.RegisterClass(new WNDCLASSW()
|
||||||
{
|
{
|
||||||
lpfnWndProc = containerWndProc,
|
lpfnWndProc = containerWndProc,
|
||||||
lpszClassName = pContainerClassName,
|
lpszClassName = pContainerClassName,
|
||||||
});
|
});
|
||||||
|
|
||||||
// Create the container window to host the preview handler
|
// Create the container window to host the preview handler
|
||||||
containerHwnd = PInvoke.CreateWindowEx(
|
containerHwnd = PInvoke_FilePreviewer.CreateWindowEx(
|
||||||
WINDOW_EX_STYLE.WS_EX_LAYERED,
|
WINDOW_EX_STYLE.WS_EX_LAYERED,
|
||||||
pContainerClassName,
|
pContainerClassName,
|
||||||
null,
|
null,
|
||||||
@ -178,7 +177,7 @@ namespace Peek.FilePreviewer.Controls
|
|||||||
HINSTANCE.Null);
|
HINSTANCE.Null);
|
||||||
|
|
||||||
// Allows the preview handlers to display properly
|
// Allows the preview handlers to display properly
|
||||||
PInvoke.SetLayeredWindowAttributes(containerHwnd, default, byte.MaxValue, LAYERED_WINDOW_ATTRIBUTES_FLAGS.LWA_ALPHA);
|
PInvoke_FilePreviewer.SetLayeredWindowAttributes(containerHwnd, default, byte.MaxValue, LAYERED_WINDOW_ATTRIBUTES_FLAGS.LWA_ALPHA);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -186,12 +185,12 @@ namespace Peek.FilePreviewer.Controls
|
|||||||
{
|
{
|
||||||
EnsureContainerHwndCreated();
|
EnsureContainerHwndCreated();
|
||||||
|
|
||||||
var dpi = (float)PInvoke.GetDpiForWindow(containerHwnd) / 96;
|
var dpi = (float)PInvoke_FilePreviewer.GetDpiForWindow(containerHwnd) / 96;
|
||||||
|
|
||||||
// Resize the container window
|
// Resize the container window
|
||||||
PInvoke.SetWindowPos(
|
PInvoke_FilePreviewer.SetWindowPos(
|
||||||
containerHwnd,
|
containerHwnd,
|
||||||
(HWND)0, // HWND_TOP
|
(HWND)(nint)0, // HWND_TOP
|
||||||
(int)(Math.Abs(args.EffectiveViewport.X) * dpi),
|
(int)(Math.Abs(args.EffectiveViewport.X) * dpi),
|
||||||
(int)(Math.Abs(args.EffectiveViewport.Y) * dpi),
|
(int)(Math.Abs(args.EffectiveViewport.Y) * dpi),
|
||||||
(int)(ActualWidth * dpi),
|
(int)(ActualWidth * dpi),
|
||||||
@ -210,7 +209,7 @@ namespace Peek.FilePreviewer.Controls
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Resizing the previewer might not always redraw itself
|
// Resizing the previewer might not always redraw itself
|
||||||
PInvoke.InvalidateRect(containerHwnd, (RECT*)null, false);
|
PInvoke_FilePreviewer.InvalidateRect(containerHwnd, (RECT*)null, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void UserControl_GotFocus(object sender, RoutedEventArgs e)
|
private void UserControl_GotFocus(object sender, RoutedEventArgs e)
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://aka.ms/CsWin32.schema.json",
|
"$schema": "https://aka.ms/CsWin32.schema.json",
|
||||||
"public": false
|
"public": false,
|
||||||
|
"className": "PInvoke_FilePreviewer"
|
||||||
}
|
}
|
@ -53,9 +53,9 @@ namespace Peek.FilePreviewer.Previewers.Helpers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Seek(long dlibMove, STREAM_SEEK dwOrigin, [Optional] ulong* plibNewPosition)
|
public void Seek(long dlibMove, SeekOrigin dwOrigin, [Optional] ulong* plibNewPosition)
|
||||||
{
|
{
|
||||||
long position = Stream.Seek(dlibMove, (SeekOrigin)dwOrigin);
|
long position = Stream.Seek(dlibMove, dwOrigin);
|
||||||
if (plibNewPosition != null)
|
if (plibNewPosition != null)
|
||||||
{
|
{
|
||||||
*plibNewPosition = (ulong)position;
|
*plibNewPosition = (ulong)position;
|
||||||
@ -82,7 +82,7 @@ namespace Peek.FilePreviewer.Previewers.Helpers
|
|||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void LockRegion(ulong libOffset, ulong cb, uint dwLockType)
|
public void LockRegion(ulong libOffset, ulong cb, LOCKTYPE dwLockType)
|
||||||
{
|
{
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
}
|
}
|
||||||
@ -92,7 +92,7 @@ namespace Peek.FilePreviewer.Previewers.Helpers
|
|||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Stat(STATSTG* pstatstg, uint grfStatFlag)
|
public void Stat(STATSTG* pstatstg, STATFLAG grfStatFlag)
|
||||||
{
|
{
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
}
|
}
|
||||||
|
@ -93,7 +93,7 @@ namespace Peek.FilePreviewer.Previewers
|
|||||||
// TODO: Figure out how to get it to run in a low integrity level
|
// TODO: Figure out how to get it to run in a low integrity level
|
||||||
if (!HandlerFactories.TryGetValue(clsid, out var factory))
|
if (!HandlerFactories.TryGetValue(clsid, out var factory))
|
||||||
{
|
{
|
||||||
var hr = PInvoke.CoGetClassObject(clsid, CLSCTX.CLSCTX_LOCAL_SERVER, null, typeof(IClassFactory).GUID, out var pFactory);
|
var hr = PInvoke_FilePreviewer.CoGetClassObject(clsid, CLSCTX.CLSCTX_LOCAL_SERVER, null, typeof(IClassFactory).GUID, out var pFactory);
|
||||||
Marshal.ThrowExceptionForHR(hr);
|
Marshal.ThrowExceptionForHR(hr);
|
||||||
|
|
||||||
// Storing the factory in memory helps makes the handlers load faster
|
// Storing the factory in memory helps makes the handlers load faster
|
||||||
@ -149,7 +149,7 @@ namespace Peek.FilePreviewer.Previewers
|
|||||||
}
|
}
|
||||||
else if (previewHandler is IInitializeWithItem initWithItem)
|
else if (previewHandler is IInitializeWithItem initWithItem)
|
||||||
{
|
{
|
||||||
var hr = PInvoke.SHCreateItemFromParsingName(FileItem.Path, null, typeof(IShellItem).GUID, out var item);
|
var hr = PInvoke_FilePreviewer.SHCreateItemFromParsingName(FileItem.Path, null, typeof(IShellItem).GUID, out var item);
|
||||||
Marshal.ThrowExceptionForHR(hr);
|
Marshal.ThrowExceptionForHR(hr);
|
||||||
|
|
||||||
initWithItem.Initialize((IShellItem)item, STGM_READ);
|
initWithItem.Initialize((IShellItem)item, STGM_READ);
|
||||||
|
@ -48,21 +48,21 @@ namespace Peek.UI.Extensions
|
|||||||
|
|
||||||
internal static HWND FindChildWindow(this HWND windowHandle, string className)
|
internal static HWND FindChildWindow(this HWND windowHandle, string className)
|
||||||
{
|
{
|
||||||
return PInvoke.FindWindowEx(windowHandle, HWND.Null, className, null);
|
return PInvoke_PeekUI.FindWindowEx(windowHandle, HWND.Null, className, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static Size GetMonitorSize(this HWND hwnd)
|
internal static Size GetMonitorSize(this HWND hwnd)
|
||||||
{
|
{
|
||||||
var monitor = PInvoke.MonitorFromWindow(hwnd, MONITOR_FROM_FLAGS.MONITOR_DEFAULTTONEAREST);
|
var monitor = PInvoke_PeekUI.MonitorFromWindow(hwnd, MONITOR_FROM_FLAGS.MONITOR_DEFAULTTONEAREST);
|
||||||
MONITORINFO info = default(MONITORINFO);
|
MONITORINFO info = default(MONITORINFO);
|
||||||
info.cbSize = 40;
|
info.cbSize = 40;
|
||||||
PInvoke.GetMonitorInfo(monitor, ref info);
|
PInvoke_PeekUI.GetMonitorInfo(monitor, ref info);
|
||||||
return new Size(info.rcMonitor.Size.Width, info.rcMonitor.Size.Height);
|
return new Size(info.rcMonitor.Size.Width, info.rcMonitor.Size.Height);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static double GetMonitorScale(this HWND hwnd)
|
internal static double GetMonitorScale(this HWND hwnd)
|
||||||
{
|
{
|
||||||
var dpi = PInvoke.GetDpiForWindow(hwnd);
|
var dpi = PInvoke_PeekUI.GetDpiForWindow(hwnd);
|
||||||
var scalingFactor = dpi / 96d;
|
var scalingFactor = dpi / 96d;
|
||||||
return scalingFactor;
|
return scalingFactor;
|
||||||
}
|
}
|
||||||
|
@ -28,12 +28,12 @@ namespace Peek.UI.Extensions
|
|||||||
|
|
||||||
// If the window is maximized, restore to normal state before change its size
|
// If the window is maximized, restore to normal state before change its size
|
||||||
var placement = default(WINDOWPLACEMENT);
|
var placement = default(WINDOWPLACEMENT);
|
||||||
if (PInvoke.GetWindowPlacement(hwndToCenter, ref placement))
|
if (PInvoke_PeekUI.GetWindowPlacement(hwndToCenter, ref placement))
|
||||||
{
|
{
|
||||||
if (placement.showCmd == SHOW_WINDOW_CMD.SW_MAXIMIZE)
|
if (placement.showCmd == SHOW_WINDOW_CMD.SW_MAXIMIZE)
|
||||||
{
|
{
|
||||||
placement.showCmd = SHOW_WINDOW_CMD.SW_SHOWNORMAL;
|
placement.showCmd = SHOW_WINDOW_CMD.SW_SHOWNORMAL;
|
||||||
if (!PInvoke.SetWindowPlacement(hwndToCenter, in placement))
|
if (!PInvoke_PeekUI.SetWindowPlacement(hwndToCenter, in placement))
|
||||||
{
|
{
|
||||||
Logger.LogError($"SetWindowPlacement failed with error {Marshal.GetLastWin32Error()}");
|
Logger.LogError($"SetWindowPlacement failed with error {Marshal.GetLastWin32Error()}");
|
||||||
}
|
}
|
||||||
@ -44,12 +44,12 @@ namespace Peek.UI.Extensions
|
|||||||
Logger.LogError($"GetWindowPlacement failed with error {Marshal.GetLastWin32Error()}");
|
Logger.LogError($"GetWindowPlacement failed with error {Marshal.GetLastWin32Error()}");
|
||||||
}
|
}
|
||||||
|
|
||||||
var monitor = PInvoke.MonitorFromWindow(hwndDesktop, MONITOR_FROM_FLAGS.MONITOR_DEFAULTTONEAREST);
|
var monitor = PInvoke_PeekUI.MonitorFromWindow(hwndDesktop, MONITOR_FROM_FLAGS.MONITOR_DEFAULTTONEAREST);
|
||||||
MONITORINFO info = default(MONITORINFO);
|
MONITORINFO info = default(MONITORINFO);
|
||||||
info.cbSize = 40;
|
info.cbSize = 40;
|
||||||
PInvoke.GetMonitorInfo(monitor, ref info);
|
PInvoke_PeekUI.GetMonitorInfo(monitor, ref info);
|
||||||
var dpi = PInvoke.GetDpiForWindow(new HWND(hwndDesktop));
|
var dpi = PInvoke_PeekUI.GetDpiForWindow(new HWND((nint)hwndDesktop));
|
||||||
PInvoke.GetWindowRect(hwndToCenter, out RECT windowRect);
|
PInvoke_PeekUI.GetWindowRect(hwndToCenter, out RECT windowRect);
|
||||||
var scalingFactor = dpi / 96d;
|
var scalingFactor = dpi / 96d;
|
||||||
var w = width.HasValue ? (int)(width * scalingFactor) : windowRect.right - windowRect.left;
|
var w = width.HasValue ? (int)(width * scalingFactor) : windowRect.right - windowRect.left;
|
||||||
var h = height.HasValue ? (int)(height * scalingFactor) : windowRect.bottom - windowRect.top;
|
var h = height.HasValue ? (int)(height * scalingFactor) : windowRect.bottom - windowRect.top;
|
||||||
@ -63,7 +63,7 @@ namespace Peek.UI.Extensions
|
|||||||
|
|
||||||
private static void SetWindowPosOrThrow(HWND hWnd, HWND hWndInsertAfter, int x, int y, int cx, int cy, SET_WINDOW_POS_FLAGS uFlags)
|
private static void SetWindowPosOrThrow(HWND hWnd, HWND hWndInsertAfter, int x, int y, int cx, int cy, SET_WINDOW_POS_FLAGS uFlags)
|
||||||
{
|
{
|
||||||
bool result = PInvoke.SetWindowPos(hWnd, hWndInsertAfter, x, y, cx, cy, uFlags);
|
bool result = PInvoke_PeekUI.SetWindowPos(hWnd, hWndInsertAfter, x, y, cx, cy, uFlags);
|
||||||
if (!result)
|
if (!result)
|
||||||
{
|
{
|
||||||
Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error());
|
Marshal.ThrowExceptionForHR(Marshal.GetLastWin32Error());
|
||||||
|
@ -58,7 +58,7 @@ namespace Peek.UI.Helpers
|
|||||||
object? oNull2 = null;
|
object? oNull2 = null;
|
||||||
|
|
||||||
var serviceProvider = (IServiceProvider)shellWindows.FindWindowSW(ref oNull1, ref oNull2, SWC_DESKTOP, out int pHWND, SWFO_NEEDDISPATCH);
|
var serviceProvider = (IServiceProvider)shellWindows.FindWindowSW(ref oNull1, ref oNull2, SWC_DESKTOP, out int pHWND, SWFO_NEEDDISPATCH);
|
||||||
var shellBrowser = (IShellBrowser)serviceProvider.QueryService(PInvoke.SID_STopLevelBrowser, typeof(IShellBrowser).GUID);
|
var shellBrowser = (IShellBrowser)serviceProvider.QueryService(PInvoke_PeekUI.SID_STopLevelBrowser, typeof(IShellBrowser).GUID);
|
||||||
|
|
||||||
IShellItemArray? shellItemArray = GetShellItemArray(shellBrowser, onlySelectedFiles);
|
IShellItemArray? shellItemArray = GetShellItemArray(shellBrowser, onlySelectedFiles);
|
||||||
return shellItemArray;
|
return shellItemArray;
|
||||||
@ -81,7 +81,7 @@ namespace Peek.UI.Helpers
|
|||||||
if (webBrowserApp.HWND == foregroundWindowHandle)
|
if (webBrowserApp.HWND == foregroundWindowHandle)
|
||||||
{
|
{
|
||||||
var serviceProvider = (IServiceProvider)webBrowserApp;
|
var serviceProvider = (IServiceProvider)webBrowserApp;
|
||||||
var shellBrowser = (IShellBrowser)serviceProvider.QueryService(PInvoke.SID_STopLevelBrowser, typeof(IShellBrowser).GUID);
|
var shellBrowser = (IShellBrowser)serviceProvider.QueryService(PInvoke_PeekUI.SID_STopLevelBrowser, typeof(IShellBrowser).GUID);
|
||||||
shellBrowser.GetWindow(out IntPtr shellBrowserHandle);
|
shellBrowser.GetWindow(out IntPtr shellBrowserHandle);
|
||||||
|
|
||||||
if (activeTab == shellBrowserHandle)
|
if (activeTab == shellBrowserHandle)
|
||||||
@ -122,7 +122,7 @@ namespace Peek.UI.Helpers
|
|||||||
GUITHREADINFO guiThreadInfo = new() { cbSize = (uint)Marshal.SizeOf<GUITHREADINFO>() };
|
GUITHREADINFO guiThreadInfo = new() { cbSize = (uint)Marshal.SizeOf<GUITHREADINFO>() };
|
||||||
|
|
||||||
// Get information for the foreground thread
|
// Get information for the foreground thread
|
||||||
if (PInvoke.GetGUIThreadInfo(0, ref guiThreadInfo))
|
if (PInvoke_PeekUI.GetGUIThreadInfo(0, ref guiThreadInfo))
|
||||||
{
|
{
|
||||||
return guiThreadInfo.hwndActive == hwnd && (guiThreadInfo.flags & GUITHREADINFO_FLAGS.GUI_CARETBLINKING) != 0;
|
return guiThreadInfo.hwndActive == hwnd && (guiThreadInfo.flags & GUITHREADINFO_FLAGS.GUI_CARETBLINKING) != 0;
|
||||||
}
|
}
|
||||||
|
5
src/modules/peek/Peek.UI/NativeMethods.json
Normal file
5
src/modules/peek/Peek.UI/NativeMethods.json
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://aka.ms/CsWin32.schema.json",
|
||||||
|
"public": false,
|
||||||
|
"className": "PInvoke_PeekUI"
|
||||||
|
}
|
@ -128,7 +128,7 @@ namespace Peek.UI
|
|||||||
{
|
{
|
||||||
// Need to read the foreground HWND before activating Peek to avoid focus stealing
|
// Need to read the foreground HWND before activating Peek to avoid focus stealing
|
||||||
// Foreground HWND must always be Explorer or Desktop
|
// Foreground HWND must always be Explorer or Desktop
|
||||||
var foregroundWindowHandle = Windows.Win32.PInvoke.GetForegroundWindow();
|
var foregroundWindowHandle = Windows.Win32.PInvoke_PeekUI.GetForegroundWindow();
|
||||||
|
|
||||||
bool firstActivation = false;
|
bool firstActivation = false;
|
||||||
|
|
||||||
|
@ -213,7 +213,7 @@ namespace Peek.UI
|
|||||||
/// <param name="e">PreviewSizeChangedArgs</param>
|
/// <param name="e">PreviewSizeChangedArgs</param>
|
||||||
private void FilePreviewer_PreviewSizeChanged(object sender, PreviewSizeChangedArgs e)
|
private void FilePreviewer_PreviewSizeChanged(object sender, PreviewSizeChangedArgs e)
|
||||||
{
|
{
|
||||||
var foregroundWindowHandle = Windows.Win32.PInvoke.GetForegroundWindow();
|
var foregroundWindowHandle = Windows.Win32.PInvoke_PeekUI.GetForegroundWindow();
|
||||||
|
|
||||||
var monitorSize = foregroundWindowHandle.GetMonitorSize();
|
var monitorSize = foregroundWindowHandle.GetMonitorSize();
|
||||||
var monitorScale = foregroundWindowHandle.GetMonitorScale();
|
var monitorScale = foregroundWindowHandle.GetMonitorScale();
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
<Keyword>Win32Proj</Keyword>
|
<Keyword>Win32Proj</Keyword>
|
||||||
<ProjectGuid>{2694e2fb-dcd5-4bff-a418-b6c3c7ce3b8e}</ProjectGuid>
|
<ProjectGuid>{2694e2fb-dcd5-4bff-a418-b6c3c7ce3b8e}</ProjectGuid>
|
||||||
<RootNamespace>Test</RootNamespace>
|
<RootNamespace>Test</RootNamespace>
|
||||||
<WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion>
|
<WindowsTargetPlatformVersion>10.0.26100.0</WindowsTargetPlatformVersion>
|
||||||
<ProjectName>PowerRename.FuzzingTest</ProjectName>
|
<ProjectName>PowerRename.FuzzingTest</ProjectName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props" Condition="Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props')" />
|
<Import Project="..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props" Condition="Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.props')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.props')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props')" />
|
||||||
<PropertyGroup Label="Globals">
|
<PropertyGroup Label="Globals">
|
||||||
<CppWinRTOptimized>true</CppWinRTOptimized>
|
<CppWinRTOptimized>true</CppWinRTOptimized>
|
||||||
@ -205,7 +205,7 @@
|
|||||||
<ImportGroup Label="ExtensionTargets">
|
<ImportGroup Label="ExtensionTargets">
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.targets')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.targets')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets')" />
|
<Import Project="..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets" Condition="Exists('..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets')" />
|
||||||
<Import Project="..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets" Condition="Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets')" />
|
<Import Project="..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets" Condition="Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets')" />
|
||||||
<Import Project="..\..\..\..\packages\boost.1.87.0\build\boost.targets" Condition="Exists('..\..\..\..\packages\boost.1.87.0\build\boost.targets')" />
|
<Import Project="..\..\..\..\packages\boost.1.87.0\build\boost.targets" Condition="Exists('..\..\..\..\packages\boost.1.87.0\build\boost.targets')" />
|
||||||
@ -218,8 +218,8 @@
|
|||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.props'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.240111.5\build\native\Microsoft.Windows.CppWinRT.targets'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.ImplementationLibrary.1.0.231216.1\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.props'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.props'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.22621.2428\build\Microsoft.Windows.SDK.BuildTools.targets'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.SDK.BuildTools.10.0.26100.4188\build\Microsoft.Windows.SDK.BuildTools.targets'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Web.WebView2.1.0.2903.40\build\native\Microsoft.Web.WebView2.targets'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.props'))" />
|
||||||
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets'))" />
|
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.WindowsAppSDK.1.7.250513003\build\native\Microsoft.WindowsAppSDK.targets'))" />
|
||||||
|
@ -5,6 +5,6 @@
|
|||||||
<package id="Microsoft.Web.WebView2" version="1.0.2903.40" targetFramework="native" />
|
<package id="Microsoft.Web.WebView2" version="1.0.2903.40" targetFramework="native" />
|
||||||
<package id="Microsoft.Windows.CppWinRT" version="2.0.240111.5" targetFramework="native" />
|
<package id="Microsoft.Windows.CppWinRT" version="2.0.240111.5" targetFramework="native" />
|
||||||
<package id="Microsoft.Windows.ImplementationLibrary" version="1.0.231216.1" targetFramework="native" />
|
<package id="Microsoft.Windows.ImplementationLibrary" version="1.0.231216.1" targetFramework="native" />
|
||||||
<package id="Microsoft.Windows.SDK.BuildTools" version="10.0.22621.2428" targetFramework="native" />
|
<package id="Microsoft.Windows.SDK.BuildTools" version="10.0.26100.4188" targetFramework="native" />
|
||||||
<package id="Microsoft.WindowsAppSDK" version="1.7.250513003" targetFramework="native" />
|
<package id="Microsoft.WindowsAppSDK" version="1.7.250513003" targetFramework="native" />
|
||||||
</packages>
|
</packages>
|
Loading…
x
Reference in New Issue
Block a user