File tree Expand file tree Collapse file tree 5 files changed +101
-0
lines changed Expand file tree Collapse file tree 5 files changed +101
-0
lines changed Original file line number Diff line number Diff line change 1+ #include " pch.h"
2+ #include " Override.h"
3+ #include " Override.g.cpp"
4+
5+ using namespace winrt ;
6+ using namespace Windows ::Foundation;
7+
8+ namespace winrt ::TestComponent::implementation
9+ {
10+ void Override::CallProtected ()
11+ {
12+ OnProtected ();
13+ }
14+
15+ void Override::OnProtected ()
16+ {
17+ m_protected_called_event (*this , nullptr );
18+ }
19+
20+ event_token Override::ProtectedCalled (EventHandler<IInspectable> const & handler)
21+ {
22+ return m_protected_called_event.add (handler);
23+ }
24+
25+ void Override::ProtectedCalled (event_token token) noexcept
26+ {
27+ m_protected_called_event.remove (token);
28+ }
29+
30+ void Override::CallOverridable ()
31+ {
32+ overridable ().OnOverridable ();
33+ }
34+
35+ void Override::OnOverridable ()
36+ {
37+ m_overridable_called_event (*this , nullptr );
38+ }
39+
40+ event_token Override::OverridableCalled (EventHandler<IInspectable> const & handler)
41+ {
42+ return m_overridable_called_event.add (handler);
43+ }
44+
45+ void Override::OverridableCalled (event_token token) noexcept
46+ {
47+ m_overridable_called_event.remove (token);
48+ }
49+ }
Original file line number Diff line number Diff line change 1+ #pragma once
2+ #include " Override.g.h"
3+
4+ using namespace winrt ;
5+ using namespace Windows ::Foundation;
6+
7+ namespace winrt ::TestComponent::implementation
8+ {
9+ struct Override : OverrideT<Override>
10+ {
11+ private:
12+ event<EventHandler<IInspectable>> m_protected_called_event;
13+ event<EventHandler<IInspectable>> m_overridable_called_event;
14+
15+ public:
16+ Override () = default ;
17+
18+ void CallProtected ();
19+ void OnProtected ();
20+ event_token ProtectedCalled (EventHandler<IInspectable> const & handler);
21+ void ProtectedCalled (event_token token) noexcept ;
22+
23+ void CallOverridable ();
24+ virtual void OnOverridable ();
25+ event_token OverridableCalled (EventHandler<IInspectable> const & handler);
26+ void OverridableCalled (event_token token) noexcept ;
27+ };
28+ }
29+
30+ namespace winrt ::TestComponent::factory_implementation
31+ {
32+ struct Override : OverrideT<Override, implementation::Override>
33+ {
34+ };
35+ }
Original file line number Diff line number Diff line change @@ -339,4 +339,17 @@ namespace TestComponent
339339 [overridable] interface TestComponent.IOverloadClassOverrides;
340340 [overridable] interface TestComponent.IOverloadClassOverrides2;
341341 }
342+
343+ unsealed runtimeclass Override
344+ {
345+ Override();
346+
347+ void CallProtected();
348+ protected void OnProtected();
349+ event Windows.Foundation.EventHandler<Object> ProtectedCalled;
350+
351+ void CallOverridable();
352+ overridable void OnOverridable();
353+ event Windows.Foundation.EventHandler<Object> OverridableCalled;
354+ }
342355}
Original file line number Diff line number Diff line change 151151 <ClInclude Include =" Composable.h" />
152152 <ClInclude Include =" Derived.h" />
153153 <ClInclude Include =" OverloadClass.h" />
154+ <ClInclude Include =" Override.h" />
154155 <ClInclude Include =" pch.h" />
155156 <ClInclude Include =" TestRunner.h" />
156157 </ItemGroup >
159160 <ClCompile Include =" Composable.cpp" />
160161 <ClCompile Include =" Derived.cpp" />
161162 <ClCompile Include =" OverloadClass.cpp" />
163+ <ClCompile Include =" Override.cpp" />
162164 <ClCompile Include =" pch.cpp" >
163165 <PrecompiledHeader >Create</PrecompiledHeader >
164166 </ClCompile >
Original file line number Diff line number Diff line change 1717 <ClCompile Include =" Derived.cpp" />
1818 <ClCompile Include =" Class.cpp" />
1919 <ClCompile Include =" OverloadClass.cpp" />
20+ <ClCompile Include =" Override.cpp" />
2021 </ItemGroup >
2122 <ItemGroup >
2223 <ClInclude Include =" pch.h" />
2526 <ClInclude Include =" Derived.h" />
2627 <ClInclude Include =" Class.h" />
2728 <ClInclude Include =" OverloadClass.h" />
29+ <ClInclude Include =" Override.h" />
2830 </ItemGroup >
2931 <ItemGroup >
3032 <Midl Include =" TestComponent.idl" />
You can’t perform that action at this time.
0 commit comments