mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-04-03 09:46:54 +02:00
## Summary of the Pull Request Removes all C++/CX code, replacing it with C++/WinRT. ## Detailed Description of the Pull Request / Additional comments Removes all C++/CX code. Renames interop namespaces to be better consumed by CsWinRT. Standardizes all projects on net8.0-windows10.0.20348.0, which is a requirement for C++/WinRT usage. FileLocksmithLibInterop brought to stdcpplatest and static analysis errors were corrected. Removed now unneeded string conversion code from FileLocksmithLibInterop. Changed interop KeyboardHook to use a single hook across all instances. Required because on C++/WinRT we don't have the .NET runtime to bind a object instance to a delegate and be able to pass it to a C function pointer argument (still no idea why this worked correctly on C++/CX to be honest). This change actually makes us create less low level keyboard hooks. Changed some code that depended on arrays since WinRT/C++ returns null instead of an empty array through the interface. ## Validation Steps Performed Built and tested runtime.
185 lines
9.6 KiB
XML
185 lines
9.6 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<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>
|
|
<AssemblyTitle>PowerToys.Interop</AssemblyTitle>
|
|
</PropertyGroup>
|
|
<ItemGroup Label="ProjectConfigurations">
|
|
<ProjectConfiguration Include="Debug|ARM64">
|
|
<Configuration>Debug</Configuration>
|
|
<Platform>ARM64</Platform>
|
|
</ProjectConfiguration>
|
|
<ProjectConfiguration Include="Debug|x64">
|
|
<Configuration>Debug</Configuration>
|
|
<Platform>x64</Platform>
|
|
</ProjectConfiguration>
|
|
<ProjectConfiguration Include="Release|ARM64">
|
|
<Configuration>Release</Configuration>
|
|
<Platform>ARM64</Platform>
|
|
</ProjectConfiguration>
|
|
<ProjectConfiguration Include="Release|x64">
|
|
<Configuration>Release</Configuration>
|
|
<Platform>x64</Platform>
|
|
</ProjectConfiguration>
|
|
</ItemGroup>
|
|
<PropertyGroup Label="Globals">
|
|
<VCProjectVersion>16.0</VCProjectVersion>
|
|
<ProjectGuid>{F055103B-F80B-4D0C-BF48-057C55620033}</ProjectGuid>
|
|
<RootNamespace>PowerToys.Interop</RootNamespace>
|
|
<ProjectName>PowerToys.Interop</ProjectName>
|
|
<CppWinRTOptimized>true</CppWinRTOptimized>
|
|
<CppWinRTRootNamespaceAutoMerge>true</CppWinRTRootNamespaceAutoMerge>
|
|
<CppWinRTGenerateWindowsMetadata>true</CppWinRTGenerateWindowsMetadata>
|
|
<MinimalCoreWin>true</MinimalCoreWin>
|
|
<DefaultLanguage>en-US</DefaultLanguage>
|
|
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
|
|
<AppContainerApplication>false</AppContainerApplication>
|
|
<AppxPackage>false</AppxPackage>
|
|
<ApplicationType>Windows Store</ApplicationType>
|
|
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
|
|
</PropertyGroup>
|
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
|
|
<PropertyGroup Label="Configuration">
|
|
<ConfigurationType>DynamicLibrary</ConfigurationType>
|
|
<PlatformToolset>v143</PlatformToolset>
|
|
<CharacterSet>Unicode</CharacterSet>
|
|
<GenerateManifest>false</GenerateManifest>
|
|
</PropertyGroup>
|
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
|
|
<ImportGroup Label="ExtensionSettings">
|
|
</ImportGroup>
|
|
<ImportGroup Label="Shared">
|
|
</ImportGroup>
|
|
<ImportGroup Label="PropertySheets">
|
|
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
|
|
</ImportGroup>
|
|
<PropertyGroup Label="UserMacros" />
|
|
<PropertyGroup>
|
|
<TargetName>PowerToys.Interop</TargetName>
|
|
<OutDir>..\..\..\$(Platform)\$(Configuration)\</OutDir>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<CopyCppRuntimeToOutputDir>true</CopyCppRuntimeToOutputDir>
|
|
</PropertyGroup>
|
|
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
|
|
<ClCompile>
|
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
<UseDebugLibraries>true</UseDebugLibraries>
|
|
<LinkIncremental>true</LinkIncremental>
|
|
</ClCompile>
|
|
</ItemDefinitionGroup>
|
|
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
|
|
<ClCompile>
|
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
|
<UseDebugLibraries>false</UseDebugLibraries>
|
|
<WholeProgramOptimization>true</WholeProgramOptimization>
|
|
<LinkIncremental>false</LinkIncremental>
|
|
</ClCompile>
|
|
</ItemDefinitionGroup>
|
|
<ItemDefinitionGroup>
|
|
<ClCompile>
|
|
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
|
|
<PreprocessorDefinitions>_WINRT_DLL;WINRT_LEAN_AND_MEAN;PowerToysInterop;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<AdditionalIncludeDirectories>$(SolutionDir)src\common\interop;../../;../;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
|
|
<OmitDefaultLibName>false</OmitDefaultLibName>
|
|
<AdditionalOptions>%(AdditionalOptions) /bigobj /Zc:twoPhase- </AdditionalOptions>
|
|
</ClCompile>
|
|
<Link>
|
|
<AdditionalDependencies>WindowsApp.lib;shell32.lib;advapi32.lib;%(AdditionalDependencies)</AdditionalDependencies>
|
|
<SubSystem>Console</SubSystem>
|
|
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
|
|
<ModuleDefinitionFile>PowerToys.Interop.def</ModuleDefinitionFile>
|
|
</Link>
|
|
</ItemDefinitionGroup>
|
|
<ItemGroup>
|
|
<ClInclude Include="..\..\modules\videoconference\VideoConferenceShared\MicrophoneDevice.h" />
|
|
<ClInclude Include="..\..\modules\videoconference\VideoConferenceShared\VideoCaptureDeviceList.h" />
|
|
<ClInclude Include="async_message_queue.h" />
|
|
<ClInclude Include="CommonManaged.h">
|
|
<DependentUpon>CommonManaged.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="Constants.h">
|
|
<DependentUpon>KeyboardListener.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="HotkeyManager.h">
|
|
<DependentUpon>HotkeyManager.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="KeyboardHook.h">
|
|
<DependentUpon>KeyboardHook.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="keyboard_layout.h" />
|
|
<ClInclude Include="keyboard_layout_impl.h" />
|
|
<ClInclude Include="LayoutMapManaged.h">
|
|
<DependentUpon>LayoutMapManaged.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="pch.h" />
|
|
<ClInclude Include="resource.h" />
|
|
<ClInclude Include="shared_constants.h" />
|
|
<ClInclude Include="TwoWayPipeMessageIPCManaged.h">
|
|
<DependentUpon>TwoWayPipeMessageIPCManaged.idl</DependentUpon>
|
|
</ClInclude>
|
|
<ClInclude Include="two_way_pipe_message_ipc.h" />
|
|
<ClInclude Include="two_way_pipe_message_ipc_impl.h" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ClCompile Include="..\..\modules\videoconference\VideoConferenceShared\MicrophoneDevice.cpp" />
|
|
<ClCompile Include="..\..\modules\videoconference\VideoConferenceShared\VideoCaptureDeviceList.cpp" />
|
|
<ClCompile Include="CommonManaged.cpp">
|
|
<DependentUpon>CommonManaged.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="Constants.cpp">
|
|
<DependentUpon>KeyboardListener.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="HotkeyManager.cpp">
|
|
<DependentUpon>HotkeyManager.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="KeyboardHook.cpp">
|
|
<DependentUpon>KeyboardHook.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="keyboard_layout.cpp" />
|
|
<ClCompile Include="LayoutMapManaged.cpp">
|
|
<DependentUpon>LayoutMapManaged.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="pch.cpp">
|
|
<PrecompiledHeader>Create</PrecompiledHeader>
|
|
</ClCompile>
|
|
<ClCompile Include="TwoWayPipeMessageIPCManaged.cpp">
|
|
<DependentUpon>TwoWayPipeMessageIPCManaged.idl</DependentUpon>
|
|
</ClCompile>
|
|
<ClCompile Include="two_way_pipe_message_ipc.cpp" />
|
|
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<ResourceCompile Include="interop.rc" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<None Include="packages.config" />
|
|
<None Include="PowerToys.Interop.def" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<None Include="PropertySheet.props" />
|
|
</ItemGroup>
|
|
<ItemGroup>
|
|
<Midl Include="CommonManaged.idl" />
|
|
<Midl Include="Constants.idl" />
|
|
<Midl Include="HotkeyManager.idl" />
|
|
<Midl Include="KeyboardHook.idl" />
|
|
<Midl Include="LayoutMapManaged.idl" />
|
|
<Midl Include="TwoWayPipeMessageIPCManaged.idl" />
|
|
</ItemGroup>
|
|
<ImportGroup Label="ExtensionTargets" />
|
|
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
|
|
<ImportGroup Label="ExtensionTargets">
|
|
<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.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')" />
|
|
</ImportGroup>
|
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
|
<PropertyGroup>
|
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
|
</PropertyGroup>
|
|
<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.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'))" />
|
|
</Target>
|
|
</Project> |