diff --git a/OpenConsole.sln b/OpenConsole.sln
index 5515a8247..f47fc8b14 100644
--- a/OpenConsole.sln
+++ b/OpenConsole.sln
@@ -412,6 +412,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CardExtension", "src\cascad
EndProject
Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "CardExtensionPackage", "src\cascadia\CardExtensionPackage\CardExtensionPackage.wapproj", "{4F79071E-22BA-4310-9C08-68A1D31C64D5}"
EndProject
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ICardExtension", "src\cascadia\ICardExtension\ICardExtension.vcxproj", "{2418E803-264A-479C-BFDC-915182BCBF12}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
AuditMode|Any CPU = AuditMode|Any CPU
@@ -3453,6 +3455,56 @@ Global
{4F79071E-22BA-4310-9C08-68A1D31C64D5}.Release|x86.ActiveCfg = Release|x86
{4F79071E-22BA-4310-9C08-68A1D31C64D5}.Release|x86.Build.0 = Release|x86
{4F79071E-22BA-4310-9C08-68A1D31C64D5}.Release|x86.Deploy.0 = Release|x86
+ {2418E803-264A-479C-BFDC-915182BCBF12}.AuditMode|Any CPU.ActiveCfg = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.AuditMode|Any CPU.Build.0 = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.AuditMode|ARM.ActiveCfg = Debug|ARM
+ {2418E803-264A-479C-BFDC-915182BCBF12}.AuditMode|ARM.Build.0 = Debug|ARM
+ {2418E803-264A-479C-BFDC-915182BCBF12}.AuditMode|ARM64.ActiveCfg = Debug|ARM64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.AuditMode|ARM64.Build.0 = Debug|ARM64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.AuditMode|DotNet_x64Test.ActiveCfg = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.AuditMode|DotNet_x64Test.Build.0 = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.AuditMode|DotNet_x86Test.ActiveCfg = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.AuditMode|DotNet_x86Test.Build.0 = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.AuditMode|x64.ActiveCfg = Debug|x64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.AuditMode|x64.Build.0 = Debug|x64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.AuditMode|x86.ActiveCfg = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.AuditMode|x86.Build.0 = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Debug|Any CPU.ActiveCfg = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Debug|ARM.ActiveCfg = Debug|ARM
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Debug|ARM.Build.0 = Debug|ARM
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Debug|ARM64.ActiveCfg = Debug|ARM64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Debug|ARM64.Build.0 = Debug|ARM64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Debug|DotNet_x64Test.ActiveCfg = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Debug|DotNet_x86Test.ActiveCfg = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Debug|x64.ActiveCfg = Debug|x64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Debug|x64.Build.0 = Debug|x64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Debug|x86.ActiveCfg = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Debug|x86.Build.0 = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Fuzzing|Any CPU.ActiveCfg = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Fuzzing|Any CPU.Build.0 = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Fuzzing|ARM.ActiveCfg = Debug|ARM
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Fuzzing|ARM.Build.0 = Debug|ARM
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Fuzzing|ARM64.Build.0 = Debug|ARM64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Fuzzing|DotNet_x64Test.ActiveCfg = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Fuzzing|DotNet_x64Test.Build.0 = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Fuzzing|DotNet_x86Test.ActiveCfg = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Fuzzing|DotNet_x86Test.Build.0 = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Fuzzing|x64.ActiveCfg = Debug|x64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Fuzzing|x64.Build.0 = Debug|x64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Fuzzing|x86.ActiveCfg = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Fuzzing|x86.Build.0 = Debug|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Release|Any CPU.ActiveCfg = Release|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Release|ARM.ActiveCfg = Release|ARM
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Release|ARM.Build.0 = Release|ARM
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Release|ARM64.ActiveCfg = Release|ARM64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Release|ARM64.Build.0 = Release|ARM64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Release|DotNet_x64Test.ActiveCfg = Release|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Release|DotNet_x86Test.ActiveCfg = Release|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Release|x64.ActiveCfg = Release|x64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Release|x64.Build.0 = Release|x64
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Release|x86.ActiveCfg = Release|Win32
+ {2418E803-264A-479C-BFDC-915182BCBF12}.Release|x86.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -3554,6 +3606,7 @@ Global
{9CF74355-F018-4C19-81AD-9DC6B7F2C6F5} = {89CDCC5C-9F53-4054-97A4-639D99F169CD}
{CA5CAD1A-1234-4A9D-5678-857A9D17CB1B} = {2D17E75D-2DDC-42C4-AD70-704D95A937AE}
{4F79071E-22BA-4310-9C08-68A1D31C64D5} = {2D17E75D-2DDC-42C4-AD70-704D95A937AE}
+ {2418E803-264A-479C-BFDC-915182BCBF12} = {59840756-302F-44DF-AA47-441A9D673202}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {3140B1B7-C8EE-43D1-A772-D82A7061A271}
diff --git a/src/cascadia/CardExtension/CardExtension.vcxproj b/src/cascadia/CardExtension/CardExtension.vcxproj
index d0fd22961..cb62d4d0f 100644
--- a/src/cascadia/CardExtension/CardExtension.vcxproj
+++ b/src/cascadia/CardExtension/CardExtension.vcxproj
@@ -63,11 +63,12 @@
-
-
-
+
+
+
+
-
+
@@ -82,14 +83,14 @@
because the Core project is a lib not a dll, so it can't be ProjectReference'd
like everything else. It does get built into TerminalControl.dll, so we don't
need to worry about that. -->
-
+
+
diff --git a/src/cascadia/ICardExtension/Class.cpp b/src/cascadia/ICardExtension/Class.cpp
new file mode 100644
index 000000000..762a576a5
--- /dev/null
+++ b/src/cascadia/ICardExtension/Class.cpp
@@ -0,0 +1,16 @@
+#include "pch.h"
+#include "Class.h"
+#include "Class.g.cpp"
+
+namespace winrt::Microsoft::CardExtension::implementation
+{
+ int32_t Class::MyProperty()
+ {
+ throw hresult_not_implemented();
+ }
+
+ void Class::MyProperty(int32_t /* value */)
+ {
+ throw hresult_not_implemented();
+ }
+}
diff --git a/src/cascadia/ICardExtension/Class.h b/src/cascadia/ICardExtension/Class.h
new file mode 100644
index 000000000..57ad38ab8
--- /dev/null
+++ b/src/cascadia/ICardExtension/Class.h
@@ -0,0 +1,21 @@
+#pragma once
+
+#include "Class.g.h"
+
+namespace winrt::Microsoft::CardExtension::implementation
+{
+ struct Class : ClassT
+ {
+ Class() = default;
+
+ int32_t MyProperty();
+ void MyProperty(int32_t value);
+ };
+}
+
+namespace winrt::Microsoft::CardExtension::factory_implementation
+{
+ struct Class : ClassT
+ {
+ };
+}
diff --git a/src/cascadia/ICardExtension/Class.idl b/src/cascadia/ICardExtension/Class.idl
new file mode 100644
index 000000000..1ffd5abbb
--- /dev/null
+++ b/src/cascadia/ICardExtension/Class.idl
@@ -0,0 +1,9 @@
+namespace Microsoft.CardExtension
+{
+ [default_interface]
+ runtimeclass Class
+ {
+ Class();
+ Int32 MyProperty;
+ }
+}
diff --git a/src/cascadia/ICardExtension/ICardExtension.def b/src/cascadia/ICardExtension/ICardExtension.def
new file mode 100644
index 000000000..24e7c1235
--- /dev/null
+++ b/src/cascadia/ICardExtension/ICardExtension.def
@@ -0,0 +1,3 @@
+EXPORTS
+DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE
+DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE
diff --git a/src/cascadia/ICardExtension/ICardExtension.vcxproj b/src/cascadia/ICardExtension/ICardExtension.vcxproj
new file mode 100644
index 000000000..8e2c32e45
--- /dev/null
+++ b/src/cascadia/ICardExtension/ICardExtension.vcxproj
@@ -0,0 +1,158 @@
+
+
+
+
+ true
+ true
+ true
+ true
+ {2418e803-264a-479c-bfdc-915182bcbf12}
+ CardExtension
+ Microsoft.CardExtension
+ en-US
+ 14.0
+ true
+ Windows Store
+ 10.0
+ 10.0.22000.0
+ 10.0.17134.0
+
+
+
+
+ Debug
+ ARM
+
+
+ Debug
+ ARM64
+
+
+ Debug
+ Win32
+
+
+ Debug
+ x64
+
+
+ Release
+ ARM
+
+
+ Release
+ ARM64
+
+
+ Release
+ Win32
+
+
+ Release
+ x64
+
+
+
+ DynamicLibrary
+ v143
+ v142
+ v141
+ v140
+ Unicode
+ false
+
+
+ true
+ true
+
+
+ false
+ true
+ false
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Use
+ pch.h
+ $(IntDir)pch.pch
+ Level4
+ %(AdditionalOptions) /bigobj
+
+ /DWINRT_NO_MAKE_DETECTION %(AdditionalOptions)
+ _WINRT_DLL;WIN32_LEAN_AND_MEAN;WINRT_LEAN_AND_MEAN;%(PreprocessorDefinitions)
+ $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)
+
+
+ Console
+ false
+ ICardExtension.def
+
+
+
+
+ _DEBUG;%(PreprocessorDefinitions)
+
+
+
+
+ NDEBUG;%(PreprocessorDefinitions)
+
+
+ true
+ true
+
+
+
+
+
+ Class.idl
+
+
+
+
+ Create
+
+
+ Class.idl
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+ 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}.
+
+
+
+
+
diff --git a/src/cascadia/ICardExtension/ICardExtension.vcxproj.filters b/src/cascadia/ICardExtension/ICardExtension.vcxproj.filters
new file mode 100644
index 000000000..3c0fce4c3
--- /dev/null
+++ b/src/cascadia/ICardExtension/ICardExtension.vcxproj.filters
@@ -0,0 +1,34 @@
+
+
+
+
+ accd3aa8-1ba0-4223-9bbe-0c431709210b
+ rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tga;tiff;tif;png;wav;mfcribbon-ms
+
+
+ {926ab91d-31b4-48c3-b9a4-e681349f27f0}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/cascadia/ICardExtension/PropertySheet.props b/src/cascadia/ICardExtension/PropertySheet.props
new file mode 100644
index 000000000..e34141b01
--- /dev/null
+++ b/src/cascadia/ICardExtension/PropertySheet.props
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/cascadia/ICardExtension/packages.config b/src/cascadia/ICardExtension/packages.config
new file mode 100644
index 000000000..acb6d368e
--- /dev/null
+++ b/src/cascadia/ICardExtension/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/src/cascadia/ICardExtension/pch.cpp b/src/cascadia/ICardExtension/pch.cpp
new file mode 100644
index 000000000..bcb5590be
--- /dev/null
+++ b/src/cascadia/ICardExtension/pch.cpp
@@ -0,0 +1 @@
+#include "pch.h"
diff --git a/src/cascadia/ICardExtension/pch.h b/src/cascadia/ICardExtension/pch.h
new file mode 100644
index 000000000..21199686d
--- /dev/null
+++ b/src/cascadia/ICardExtension/pch.h
@@ -0,0 +1,4 @@
+#pragma once
+#include
+#include
+#include
diff --git a/src/cascadia/ICardExtension/readme.txt b/src/cascadia/ICardExtension/readme.txt
new file mode 100644
index 000000000..c37f5f544
--- /dev/null
+++ b/src/cascadia/ICardExtension/readme.txt
@@ -0,0 +1,23 @@
+========================================================================
+ C++/WinRT ICardExtension Project Overview
+========================================================================
+
+This project demonstrates how to get started authoring Windows Runtime
+classes directly with standard C++, using the C++/WinRT SDK component
+to generate implementation headers from interface (IDL) files. The
+generated Windows Runtime component binary and WinMD files should then
+be bundled with the Universal Windows Platform (UWP) app consuming them.
+
+Steps:
+1. Create an interface (IDL) file to define your Windows Runtime class,
+ its default interface, and any other interfaces it implements.
+2. Build the project once to generate module.g.cpp, module.h.cpp, and
+ implementation templates under the "Generated Files" folder, as
+ well as skeleton class definitions under "Generated Files\sources".
+3. Use the skeleton class definitions for reference to implement your
+ Windows Runtime classes.
+
+========================================================================
+Learn more about C++/WinRT here:
+http://aka.ms/cppwinrt/
+========================================================================
diff --git a/src/cascadia/TerminalApp/AppActionHandlers.cpp b/src/cascadia/TerminalApp/AppActionHandlers.cpp
index e921e2d21..ab8148879 100644
--- a/src/cascadia/TerminalApp/AppActionHandlers.cpp
+++ b/src/cascadia/TerminalApp/AppActionHandlers.cpp
@@ -1157,7 +1157,7 @@ namespace winrt::TerminalApp::implementation
};
winrt::guid g{ __uuidof(hack) };
- auto iCard = winrt::create_instance(g);
+ auto iCard = winrt::create_instance(g);
if (iCard)
{
json = iCard.GetJson();
diff --git a/src/cascadia/TerminalApp/ICardExtension.idl b/src/cascadia/TerminalApp/ICardExtension.idl
index 10849ab98..e63647a72 100644
--- a/src/cascadia/TerminalApp/ICardExtension.idl
+++ b/src/cascadia/TerminalApp/ICardExtension.idl
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
-namespace TerminalApp
+namespace Microsoft.CardExtension
{
interface ICardExtension
{
diff --git a/src/cascadia/TerminalApp/TerminalAppLib.vcxproj b/src/cascadia/TerminalApp/TerminalAppLib.vcxproj
index 574ea90cf..d1fdea684 100644
--- a/src/cascadia/TerminalApp/TerminalAppLib.vcxproj
+++ b/src/cascadia/TerminalApp/TerminalAppLib.vcxproj
@@ -267,7 +267,6 @@
-
@@ -377,6 +376,12 @@
false
false
+
+ $(SolutionDir)\$(Platform)\$(Configuration)\ICardExtension\Microsoft.CardExtension.winmd
+ true
+ false
+ false
+
@@ -392,7 +397,6 @@
-
diff --git a/src/cascadia/TerminalApp/TerminalAppLib.vcxproj.filters b/src/cascadia/TerminalApp/TerminalAppLib.vcxproj.filters
index f041b68d7..8c9d56094 100644
--- a/src/cascadia/TerminalApp/TerminalAppLib.vcxproj.filters
+++ b/src/cascadia/TerminalApp/TerminalAppLib.vcxproj.filters
@@ -21,9 +21,6 @@
-
- tab
-
tab
@@ -61,9 +58,6 @@
-
- tab
-
tab
@@ -117,6 +111,10 @@
+
+
+
+
diff --git a/src/cascadia/TerminalApp/pch.h b/src/cascadia/TerminalApp/pch.h
index b971291c7..288014255 100644
--- a/src/cascadia/TerminalApp/pch.h
+++ b/src/cascadia/TerminalApp/pch.h
@@ -56,6 +56,7 @@
#include
#include
#include
+#include
#include
#include
#include