diff --git a/nuget/Microsoft.Windows.CsWinRT.targets b/nuget/Microsoft.Windows.CsWinRT.targets index 876338f3c..88c7366fd 100644 --- a/nuget/Microsoft.Windows.CsWinRT.targets +++ b/nuget/Microsoft.Windows.CsWinRT.targets @@ -243,6 +243,7 @@ Copyright (C) Microsoft Corporation. All rights reserved. -embedded -public_enums -public_exclusiveto + -abstract_class -idic_exclusiveto @@ -256,6 +257,7 @@ $(CsWinRTIncludeWinRTInterop) $(CsWinRTEmbeddedProjection) $(CsWinRTEmbeddedEnums) $(CsWinRTPublicExclusiveTo) +$(CsWinRTAbstract) $(CsWinRTDynamicallyInterfaceCastableExclusiveTo) diff --git a/src/cswinrt/main.cpp b/src/cswinrt/main.cpp index 6496ce1d3..bce9f2f62 100644 --- a/src/cswinrt/main.cpp +++ b/src/cswinrt/main.cpp @@ -41,6 +41,7 @@ namespace cswinrt { "embedded", 0, 0, {}, "Generates an embedded projection."}, { "public_enums", 0, 0, {}, "Used with embedded option to generate enums as public"}, { "public_exclusiveto", 0, 0, {}, "Make exclusiveto interfaces public in the projection (default is internal)"}, + { "abstract_class", 0, 0, {}, "Enable an abstract version of a component's class"}, { "idic_exclusiveto", 0, 0, {}, "Make exclusiveto interfaces support IDynamicInterfaceCastable (IDIC) for RCW scenarios (default is false)"}, { "help", 0, option::no_max, {}, "Show detailed help" }, { "?", 0, option::no_max, {}, {} }, @@ -105,8 +106,11 @@ Where is one or more of: settings.embedded = args.exists("embedded"); settings.public_enums = args.exists("public_enums"); settings.public_exclusiveto = args.exists("public_exclusiveto"); + settings.abstract_class = args.exists("abstract_class"); settings.idic_exclusiveto = args.exists("idic_exclusiveto"); settings.input = args.files("input", database::is_database); + + printf("abstract_class value: %d\n", settings.abstract_class); //TODO: remove this line later, it's just for testing for (auto && include : args.values("include")) { diff --git a/src/cswinrt/settings.h b/src/cswinrt/settings.h index 5b944955a..25dd8457e 100644 --- a/src/cswinrt/settings.h +++ b/src/cswinrt/settings.h @@ -19,6 +19,7 @@ namespace cswinrt bool embedded{}; bool public_enums{}; bool public_exclusiveto{}; + bool abstract_class{}; bool idic_exclusiveto{}; };