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{};
};