Skip to content

Commit aa4edcd

Browse files
authored
Add more derived class scenarios (#76)
1 parent 00fdd7b commit aa4edcd

File tree

7 files changed

+202
-167
lines changed

7 files changed

+202
-167
lines changed

Console/Console_TemporaryKey.pfx

-2.45 KB
Binary file not shown.
-2.45 KB
Binary file not shown.

test_component_derived/Nested.HierarchyC.cpp

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "pch.h"
22
#include "Nested.HierarchyC.h"
3+
#include "Nested.HierarchyE.h"
34
#include "Nested.HierarchyC.g.cpp"
45

56
namespace winrt::test_component_derived::Nested::implementation
@@ -21,25 +22,43 @@ namespace winrt::test_component_derived::Nested::implementation
2122

2223
winrt::test_component_derived::Nested::HierarchyC HierarchyC::CreateDerivedHierarchyD()
2324
{
24-
return HierarchyD();
25+
return winrt::test_component_derived::Nested::HierarchyD();
2526
}
2627

2728
Windows::Foundation::IInspectable HierarchyC::CreateDerivedHierarchyDAsObject()
2829
{
29-
return HierarchyD();
30+
return winrt::test_component_derived::Nested::HierarchyD();
31+
}
32+
33+
winrt::test_component_base::HierarchyB HierarchyC::CreateNonProjectedDerivedHierarchyEAsHierarchyB()
34+
{
35+
return make<test_component_derived::Nested::implementation::HierarchyE>();
36+
}
37+
38+
winrt::test_component_derived::Nested::HierarchyC HierarchyC::CreateNonProjectedDerivedHierarchyEAsHierarchyC()
39+
{
40+
return make<test_component_derived::Nested::implementation::HierarchyE>();
3041
}
3142

3243
Windows::Foundation::Collections::IVector<winrt::test_component_derived::Nested::HierarchyC> HierarchyC::CreateDerivedHierarchyDList()
3344
{
3445
Windows::Foundation::Collections::IVector<winrt::test_component_derived::Nested::HierarchyC> list =
35-
single_threaded_vector<winrt::test_component_derived::Nested::HierarchyC>({ HierarchyD(), HierarchyD(), HierarchyD() });
46+
single_threaded_vector<winrt::test_component_derived::Nested::HierarchyC>({
47+
winrt::test_component_derived::Nested::HierarchyD(),
48+
winrt::test_component_derived::Nested::HierarchyD(),
49+
winrt::test_component_derived::Nested::HierarchyD()
50+
});
3651
return list;
3752
}
3853

3954
Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> HierarchyC::CreateDerivedHierarchyDAsObjectList()
4055
{
4156
Windows::Foundation::Collections::IVector<Windows::Foundation::IInspectable> list =
42-
single_threaded_vector<Windows::Foundation::IInspectable>({ HierarchyD(), HierarchyD(), HierarchyD() });
57+
single_threaded_vector<Windows::Foundation::IInspectable>({
58+
winrt::test_component_derived::Nested::HierarchyD(),
59+
winrt::test_component_derived::Nested::HierarchyD(),
60+
winrt::test_component_derived::Nested::HierarchyD()
61+
});
4362
return list;
4463
}
4564
}

test_component_derived/Nested.HierarchyC.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ namespace winrt::test_component_derived::Nested::implementation
1212
virtual winrt::hstring HierarchyC_Method();
1313

1414
static winrt::test_component_derived::Nested::HierarchyC CreateDerivedHierarchyD();
15+
static winrt::test_component_base::HierarchyB CreateNonProjectedDerivedHierarchyEAsHierarchyB();
16+
static winrt::test_component_derived::Nested::HierarchyC CreateNonProjectedDerivedHierarchyEAsHierarchyC();
1517
static Windows::Foundation::IInspectable CreateDerivedHierarchyDAsObject();
1618
static Windows::Foundation::Collections::IVector<winrt::test_component_derived::Nested::HierarchyC> CreateDerivedHierarchyDList();
1719
static Windows::Foundation::Collections::IVector <Windows::Foundation::IInspectable> CreateDerivedHierarchyDAsObjectList();
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
#pragma once
2+
#include "Nested.HierarchyD.h"
3+
4+
namespace winrt::test_component_derived::Nested::implementation
5+
{
6+
struct HierarchyE : implements<HierarchyE, test_component_derived::Nested::implementation::HierarchyD>
7+
{
8+
HierarchyE() = default;
9+
10+
hstring GetRuntimeClassName() const noexcept { return L"test_component_derived.Nested.HierarchyE"; }
11+
};
12+
}

test_component_derived/test_component_derived.idl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ namespace test_component_derived
1010
HierarchyC(String name);
1111

1212
static HierarchyC CreateDerivedHierarchyD();
13+
static test_component_base.HierarchyB CreateNonProjectedDerivedHierarchyEAsHierarchyB();
14+
static HierarchyC CreateNonProjectedDerivedHierarchyEAsHierarchyC();
1315
static Object CreateDerivedHierarchyDAsObject();
1416
static Windows.Foundation.Collections.IVector<HierarchyC> CreateDerivedHierarchyDList();
1517
static Windows.Foundation.Collections.IVector<Object> CreateDerivedHierarchyDAsObjectList();

0 commit comments

Comments
 (0)