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