From c20128aceb133c93b64d70c729ff32bbc9fbf0cb Mon Sep 17 00:00:00 2001 From: Manodasan Wignarajah Date: Wed, 27 Aug 2025 01:31:58 -0700 Subject: [PATCH 1/2] Add scenario where non projected class is returned --- test_component_derived/Nested.HierarchyC.cpp | 27 +- test_component_derived/Nested.HierarchyC.h | 2 + test_component_derived/Nested.HierarchyE.h | 12 + .../test_component_derived.idl | 2 + .../test_component_derived.vcxproj | 326 +++++++++--------- 5 files changed, 202 insertions(+), 167 deletions(-) create mode 100644 test_component_derived/Nested.HierarchyE.h diff --git a/test_component_derived/Nested.HierarchyC.cpp b/test_component_derived/Nested.HierarchyC.cpp index 1b39342..4b36755 100644 --- a/test_component_derived/Nested.HierarchyC.cpp +++ b/test_component_derived/Nested.HierarchyC.cpp @@ -1,5 +1,6 @@ #include "pch.h" #include "Nested.HierarchyC.h" +#include "Nested.HierarchyE.h" #include "Nested.HierarchyC.g.cpp" namespace winrt::test_component_derived::Nested::implementation @@ -21,25 +22,43 @@ namespace winrt::test_component_derived::Nested::implementation winrt::test_component_derived::Nested::HierarchyC HierarchyC::CreateDerivedHierarchyD() { - return HierarchyD(); + return winrt::test_component_derived::Nested::HierarchyD(); } Windows::Foundation::IInspectable HierarchyC::CreateDerivedHierarchyDAsObject() { - return HierarchyD(); + return winrt::test_component_derived::Nested::HierarchyD(); + } + + winrt::test_component_base::HierarchyB HierarchyC::CreateNonProjectedDerivedHierarchyEAsHierarchyB() + { + return make(); + } + + winrt::test_component_derived::Nested::HierarchyC HierarchyC::CreateNonProjectedDerivedHierarchyEAsHierarchyC() + { + return make(); } Windows::Foundation::Collections::IVector HierarchyC::CreateDerivedHierarchyDList() { Windows::Foundation::Collections::IVector list = - single_threaded_vector({ HierarchyD(), HierarchyD(), HierarchyD() }); + single_threaded_vector({ + winrt::test_component_derived::Nested::HierarchyD(), + winrt::test_component_derived::Nested::HierarchyD(), + winrt::test_component_derived::Nested::HierarchyD() + }); return list; } Windows::Foundation::Collections::IVector HierarchyC::CreateDerivedHierarchyDAsObjectList() { Windows::Foundation::Collections::IVector list = - single_threaded_vector({ HierarchyD(), HierarchyD(), HierarchyD() }); + single_threaded_vector({ + winrt::test_component_derived::Nested::HierarchyD(), + winrt::test_component_derived::Nested::HierarchyD(), + winrt::test_component_derived::Nested::HierarchyD() + }); return list; } } diff --git a/test_component_derived/Nested.HierarchyC.h b/test_component_derived/Nested.HierarchyC.h index 773558e..5ef8b53 100644 --- a/test_component_derived/Nested.HierarchyC.h +++ b/test_component_derived/Nested.HierarchyC.h @@ -12,6 +12,8 @@ namespace winrt::test_component_derived::Nested::implementation virtual winrt::hstring HierarchyC_Method(); static winrt::test_component_derived::Nested::HierarchyC CreateDerivedHierarchyD(); + static winrt::test_component_base::HierarchyB CreateNonProjectedDerivedHierarchyEAsHierarchyB(); + static winrt::test_component_derived::Nested::HierarchyC CreateNonProjectedDerivedHierarchyEAsHierarchyC(); static Windows::Foundation::IInspectable CreateDerivedHierarchyDAsObject(); static Windows::Foundation::Collections::IVector CreateDerivedHierarchyDList(); static Windows::Foundation::Collections::IVector CreateDerivedHierarchyDAsObjectList(); diff --git a/test_component_derived/Nested.HierarchyE.h b/test_component_derived/Nested.HierarchyE.h new file mode 100644 index 0000000..b444926 --- /dev/null +++ b/test_component_derived/Nested.HierarchyE.h @@ -0,0 +1,12 @@ +#pragma once +#include "Nested.HierarchyD.h" + +namespace winrt::test_component_derived::Nested::implementation +{ + struct HierarchyE : implements + { + HierarchyE() = default; + + hstring GetRuntimeClassName() const noexcept { return L"test_component_derived.Nested.HierarchyE"; } + }; +} diff --git a/test_component_derived/test_component_derived.idl b/test_component_derived/test_component_derived.idl index 442764c..e6996d6 100644 --- a/test_component_derived/test_component_derived.idl +++ b/test_component_derived/test_component_derived.idl @@ -10,6 +10,8 @@ namespace test_component_derived HierarchyC(String name); static HierarchyC CreateDerivedHierarchyD(); + static test_component_base.HierarchyB CreateNonProjectedDerivedHierarchyEAsHierarchyB(); + static HierarchyC CreateNonProjectedDerivedHierarchyEAsHierarchyC(); static Object CreateDerivedHierarchyDAsObject(); static Windows.Foundation.Collections.IVector CreateDerivedHierarchyDList(); static Windows.Foundation.Collections.IVector CreateDerivedHierarchyDAsObjectList(); diff --git a/test_component_derived/test_component_derived.vcxproj b/test_component_derived/test_component_derived.vcxproj index 643fcde..e2da0f6 100644 --- a/test_component_derived/test_component_derived.vcxproj +++ b/test_component_derived/test_component_derived.vcxproj @@ -1,164 +1,164 @@ - - - - - true - true - true - {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E} - test_component_derived - test_component_derived - en-US - 14.0 - 10.0.18362.0 - 10.0.17134.0 - - - - - Debug - ARM - - - Debug - Win32 - - - Debug - x64 - - - Release - ARM - - - Release - Win32 - - - Release - x64 - - - - - - - DynamicLibrary - v143 - v142 - Unicode - false - - - true - true - - - false - true - false - - - - - - - - - - - - $(SolutionDir)x64\$(Configuration)\$(ProjectName) - - - $(SolutionDir)x64\$(Configuration)\$(ProjectName) - - - $(SolutionDir)x86\$(Configuration)\$(ProjectName) - - - $(SolutionDir)x86\$(Configuration)\$(ProjectName) - - - - Use - pch.h - $(IntDir)pch.pch - Level4 - %(AdditionalOptions) /bigobj - - /DWINRT_NO_MAKE_DETECTION %(AdditionalOptions) - 28204 - _WINRT_DLL;%(PreprocessorDefinitions) - $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) - - - Console - true - exports.def - - - - - _DEBUG;%(PreprocessorDefinitions) - - - copy $(OutDir)$(ProjectName).winmd $(SolutionDir) - - - copy $(OutDir)$(ProjectName).winmd $(SolutionDir) - - - copy $(OutDir)$(ProjectName).winmd $(SolutionDir) - - - - - NDEBUG;%(PreprocessorDefinitions) - - - copy $(OutDir)$(ProjectName).winmd $(SolutionDir) - - - copy $(OutDir)$(ProjectName).winmd $(SolutionDir) - - - copy $(OutDir)$(ProjectName).winmd $(SolutionDir) - - - - - - - - - - - - Create - - - - - - ..\test_component_base - - - - - - - - - - - - - - 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}. - - - - + + + + + true + true + true + {0080F6D1-AEC3-4F89-ADE1-3D22A7EBF99E} + test_component_derived + test_component_derived + en-US + 14.0 + 10.0.18362.0 + 10.0.17134.0 + + + + + Debug + ARM + + + Debug + Win32 + + + Debug + x64 + + + Release + ARM + + + Release + Win32 + + + Release + x64 + + + + + + + DynamicLibrary + v143 + v142 + Unicode + false + + + true + true + + + false + true + false + + + + + + + + + + + + $(SolutionDir)x64\$(Configuration)\$(ProjectName) + + + $(SolutionDir)x64\$(Configuration)\$(ProjectName) + + + $(SolutionDir)x86\$(Configuration)\$(ProjectName) + + + $(SolutionDir)x86\$(Configuration)\$(ProjectName) + + + + Use + pch.h + $(IntDir)pch.pch + Level4 + %(AdditionalOptions) /bigobj + + /DWINRT_NO_MAKE_DETECTION %(AdditionalOptions) + 28204 + _WINRT_DLL;%(PreprocessorDefinitions) + $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) + + + Console + true + exports.def + + + + + _DEBUG;%(PreprocessorDefinitions) + + + copy $(OutDir)$(ProjectName).winmd $(SolutionDir) + + + copy $(OutDir)$(ProjectName).winmd $(SolutionDir) + + + copy $(OutDir)$(ProjectName).winmd $(SolutionDir) + + + + + NDEBUG;%(PreprocessorDefinitions) + + + copy $(OutDir)$(ProjectName).winmd $(SolutionDir) + + + copy $(OutDir)$(ProjectName).winmd $(SolutionDir) + + + copy $(OutDir)$(ProjectName).winmd $(SolutionDir) + + + + + + + + + + + + + Create + + + + + + ..\test_component_base + + + + + + + + + + + + + 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}. + + + + \ No newline at end of file From 55224a29d80cdc08c79e1f13db0c8dd376c701b2 Mon Sep 17 00:00:00 2001 From: Manodasan Wignarajah Date: Wed, 27 Aug 2025 01:34:31 -0700 Subject: [PATCH 2/2] Remove test files --- Console/Console_TemporaryKey.pfx | Bin 2512 -> 0 bytes TestComponent/TestComponent_TemporaryKey.pfx | Bin 2512 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) delete mode 100644 Console/Console_TemporaryKey.pfx delete mode 100644 TestComponent/TestComponent_TemporaryKey.pfx diff --git a/Console/Console_TemporaryKey.pfx b/Console/Console_TemporaryKey.pfx deleted file mode 100644 index 35bcc637319e1d5fc8676103ecc28e38a25adc73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2512 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 a!fhNfs_wFHnczd8qYU*PEZ+O|(f$n=j#?W4