diff --git a/TestComponent/OverloadClass.cpp b/TestComponent/OverloadClass.cpp new file mode 100644 index 0000000..38c9b6a --- /dev/null +++ b/TestComponent/OverloadClass.cpp @@ -0,0 +1,23 @@ +#include "pch.h" +#include "OverloadClass.h" +#include "OverloadClass.g.cpp" + +namespace winrt::TestComponent::implementation +{ + void OverloadClass::Overload() + { + throw hresult_not_implemented(); + } + void OverloadClass::Overload(int a) + { + throw hresult_not_implemented(); + } + void OverloadClass::Overload(int a, int b) + { + throw hresult_not_implemented(); + } + void OverloadClass::Overload(int a, int b, int c) + { + throw hresult_not_implemented(); + } +} diff --git a/TestComponent/OverloadClass.h b/TestComponent/OverloadClass.h new file mode 100644 index 0000000..d07ad61 --- /dev/null +++ b/TestComponent/OverloadClass.h @@ -0,0 +1,21 @@ +#pragma once +#include "OverloadClass.g.h" + +namespace winrt::TestComponent::implementation +{ + struct OverloadClass : OverloadClassT + { + OverloadClass() = default; + + void Overload(); + void Overload(int a); + void Overload(int a, int b); + void Overload(int a, int b, int c); + }; +} +namespace winrt::TestComponent::factory_implementation +{ + struct OverloadClass : OverloadClassT + { + }; +} diff --git a/TestComponent/TestComponent.idl b/TestComponent/TestComponent.idl index e921930..3a2ace0 100644 --- a/TestComponent/TestComponent.idl +++ b/TestComponent/TestComponent.idl @@ -292,4 +292,51 @@ namespace TestComponent { Derived(); } + + [exclusiveto(TestComponent.OverloadClass)] + [version(1), uuid(EF902013-00F3-4549-9032-49E86D536C07)] + interface IOverloadClass : IInspectable + { + HRESULT Overload(); + } + + [exclusiveto(TestComponent.OverloadClass)] + [version(1), uuid(DFDFFB61-EA72-4977-B1A7-3F0D2C32BB58)] + interface IOverloadClassFactory : IInspectable + { + HRESULT CreateInstance([in] IInspectable* baseInterface, [out] IInspectable** innerInterface, [out][retval] TestComponent.OverloadClass** value); + } + + [exclusiveto(TestComponent.OverloadClass)] + [version(1), uuid(32510F72-9229-4C69-95BD-DE7B8189C85C)] + interface IOverloadClassOverrides : IInspectable + { + [overload("Overload")] HRESULT OverloadWithOne(int a); + } + + [exclusiveto(TestComponent.OverloadClass)] + [version(1), uuid(50205BCE-FAD3-4C66-801F-17AAD007B26C)] + interface IOverloadClassOverrides2 : IInspectable + { + [overload("Overload")] HRESULT OverloadWithTwo(int a, int b); + } + + [exclusiveto(TestComponent.OverloadClass)] + [version(1), uuid(6EDD1A3F-2616-45B7-9731-F84DA9CCECA1)] + interface IOverloadClassProtected : IInspectable + { + [overload("Overload")] HRESULT OverloadWithThree(int a, int b, int c); + } + + [composable(TestComponent.IOverloadClassFactory, public, 1)] + [marshaling_behavior(agile)] + [threading(both)] + [version(1)] + runtimeclass OverloadClass + { + [default] interface TestComponent.IOverloadClass; + [protected] interface TestComponent.IOverloadClassProtected; + [overridable] interface TestComponent.IOverloadClassOverrides; + [overridable] interface TestComponent.IOverloadClassOverrides2; + } } diff --git a/TestComponent/TestComponent.nuspec b/TestComponent/TestComponent.nuspec index 6760d76..be44b3a 100644 --- a/TestComponent/TestComponent.nuspec +++ b/TestComponent/TestComponent.nuspec @@ -2,7 +2,7 @@ PyWinRT.TestWinRT - 1.0.0 + 1.1.0 TestWinRT Microsoft MIT diff --git a/TestComponent/TestComponent.vcxproj b/TestComponent/TestComponent.vcxproj index 4144a25..7ac57e7 100644 --- a/TestComponent/TestComponent.vcxproj +++ b/TestComponent/TestComponent.vcxproj @@ -1,6 +1,6 @@ - + true true @@ -150,6 +150,7 @@ + @@ -157,6 +158,7 @@ + Create @@ -172,13 +174,13 @@ - + 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 diff --git a/TestComponent/TestComponent.vcxproj.filters b/TestComponent/TestComponent.vcxproj.filters index c6c60a8..84420ed 100644 --- a/TestComponent/TestComponent.vcxproj.filters +++ b/TestComponent/TestComponent.vcxproj.filters @@ -16,6 +16,7 @@ + @@ -23,6 +24,7 @@ + diff --git a/TestComponent/packages.config b/TestComponent/packages.config index 9b945bc..52e3782 100644 --- a/TestComponent/packages.config +++ b/TestComponent/packages.config @@ -1,4 +1,4 @@  - + \ No newline at end of file