Compare commits

...

29 Commits

Author SHA1 Message Date
Mike Griese
1eda70fea7 this was kinda a dead end 2023-05-11 07:02:46 -05:00
Mike Griese
5ec0f9cf58 Okay so there's no c++ markdown parser. Fine then 2023-05-10 09:50:25 -05:00
Mike Griese
82dc26f3e6 You need to keep the IExtension alive, so that we can do callbacks into it 2023-05-10 06:26:50 -05:00
Mike Griese
a5711a895e QOL: get rid of old webview button 2023-05-10 06:26:12 -05:00
Mike Griese
e230b8e2ba QOL: EchoCon should do some newlines 2023-05-10 06:25:00 -05:00
Mike Griese
561768fe39 If we add a real class to the extension API, we don't need the dummy anymore 2023-05-10 06:24:39 -05:00
Mike Griese
851cc2284c quick rename for QoL 2023-05-09 14:57:44 -05:00
Mike Griese
194ce52295 make this a little more seamless 2023-05-09 14:53:36 -05:00
Mike Griese
87c8072254 what is chromium but a javascript engine, really 2023-05-09 14:48:28 -05:00
Mike Griese
c5788de667 click the button, get called back in c++ 2023-05-09 14:42:29 -05:00
Mike Griese
de1ea6e74d what _am_ I up to 2023-05-09 14:23:34 -05:00
Mike Griese
497fea8d97 holy butts, WebView2 works again! 2023-05-09 13:13:42 -05:00
Mike Griese
99668f9023 Revert "A failed attempt to load user components from the other appx"
This reverts commit c50d90c8c6.
2023-05-09 12:17:27 -05:00
Mike Griese
c50d90c8c6 A failed attempt to load user components from the other appx 2023-05-09 10:18:29 -05:00
Mike Griese
2310a304a4 Get the extension implementation from it's manifest 2023-05-09 10:18:07 -05:00
Mike Griese
950311ce6f I wanted to add a object defined in XAML, but that seems impossible, unfortunately 2023-05-08 11:04:59 -05:00
Mike Griese
e0c8135583 Create a XAML button in code-behind, with a hander, and create it in the host app
omfg that was easy
2023-05-08 09:50:24 -05:00
Mike Griese
51d6b597ca Add some debugging support 2023-05-08 09:49:35 -05:00
Mike Griese
b1ca836918 basic bump deps, because the defaults are old 2023-05-08 09:48:50 -05:00
Mike Griese
0e45e2e4bd Merge remote-tracking branch 'origin/main' into dev/migrie/fhl/dyndep 2023-05-08 09:13:28 -05:00
Mike Griese
2f15c08d6f cleanup 2023-04-20 07:16:19 -05:00
Mike Griese
91e1bb0429 oh HELL YEA 2023-04-19 17:31:02 -05:00
Mike Griese
f29148058e holy SHIT it worked 2023-04-19 16:32:41 -05:00
Mike Griese
44f2a523f1 some dead ends 2023-04-19 16:02:02 -05:00
Mike Griese
b0e2820d27 Okay, I got to a call stack from another package. THat's something, but it's all wrong things 2023-04-19 15:07:52 -05:00
Mike Griese
722b78ae10 holy butts, dyndep to main packages works, look at that 2023-04-19 13:44:15 -05:00
Mike Griese
c2067426b3 okay I'm pointing it the other direction cause I'm p/o'd 2023-04-19 13:38:05 -05:00
Mike Griese
042e9c8ba3 boilerplate start of an extension host which will host content from SampleApp 2023-04-19 10:33:37 -05:00
Mike Griese
00f9bb8834 get the sample building again 2023-04-19 10:28:06 -05:00
89 changed files with 2619 additions and 81 deletions

View File

@@ -1,17 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<!-- Dependencies that we can turn on to force override for testing purposes before uploading. -->
<!--<add key="Static Package Dependencies" value="dep\packages" />-->
<add key="TerminalDependencies" value="https://pkgs.dev.azure.com/ms/terminal/_packaging/TerminalDependencies/nuget/v3/index.json" />
</packageSources>
<disabledPackageSources>
<clear />
</disabledPackageSources>
<config>
<!-- TODO: TEMPORARY UNTIL PGO-Helpers is updated to search both. We shouldn't need to keep the globals path here. -->
<add key="globalPackagesFolder" value=".\packages" />
<add key="repositorypath" value=".\packages" />
</config>
</configuration>

View File

@@ -1,7 +1,6 @@
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.31205.134
# Visual Studio Version 17
VisualStudioVersion = 17.3.32611.2
MinimumVisualStudioVersion = 10.0.40219.1
Project("{C7167F0D-BC9F-4E6E-AFE1-012C56B48DB5}") = "Package", "scratch\ScratchIslandApp\Package\Package.wapproj", "{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}"
EndProject
@@ -35,22 +34,53 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Types", "src\types\lib\type
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "dependencies", "dependencies", "{75AC9360-76FD-4ABC-AFEC-EF342BD2B3E9}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExtensionHost", "scratch\ExtensionHost\ExtensionHost.vcxproj", "{1A505EDB-0961-431A-8DE5-31DF1A22B892}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ExtensionComponent", "scratch\ExtensionComponent\ExtensionComponent.vcxproj", "{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}"
ProjectSection(ProjectDependencies) = postProject
{CF317032-4253-4726-B4F5-6D5CEA2E75D4} = {CF317032-4253-4726-B4F5-6D5CEA2E75D4}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SampleExtensions", "scratch\SampleExtensions\SampleExtensions.vcxproj", "{CF317032-4253-4726-B4F5-6D5CEA2E75D4}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sample Application", "Sample Application", "{4415272B-ABE7-4510-9491-67AB4F855BBF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extension App", "Extension App", "{CAD8C045-8805-4DBE-9028-994C86C60F7B}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotnetWasdkApp", "scratch\DotnetWasdkApp\DotnetWasdkApp.csproj", "{69BDA742-A592-4A02-8EE9-BA47ABFA5887}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DotnetWasdkComponent", "scratch\DotnetWasdkComponent\DotnetWasdkComponent.csproj", "{35573630-40E7-4428-89D1-E1D89DDA8787}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
AuditMode|Any CPU = AuditMode|Any CPU
AuditMode|ARM = AuditMode|ARM
AuditMode|ARM64 = AuditMode|ARM64
AuditMode|x64 = AuditMode|x64
AuditMode|x86 = AuditMode|x86
Debug|Any CPU = Debug|Any CPU
Debug|ARM = Debug|ARM
Debug|ARM64 = Debug|ARM64
Debug|x64 = Debug|x64
Debug|x86 = Debug|x86
Fuzzing|Any CPU = Fuzzing|Any CPU
Fuzzing|ARM = Fuzzing|ARM
Fuzzing|ARM64 = Fuzzing|ARM64
Fuzzing|x64 = Fuzzing|x64
Fuzzing|x86 = Fuzzing|x86
Release|Any CPU = Release|Any CPU
Release|ARM = Release|ARM
Release|ARM64 = Release|ARM64
Release|x64 = Release|x64
Release|x86 = Release|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.AuditMode|Any CPU.ActiveCfg = Debug|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.AuditMode|Any CPU.Build.0 = Debug|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.AuditMode|Any CPU.Deploy.0 = Debug|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.AuditMode|ARM.ActiveCfg = Release|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.AuditMode|ARM.Build.0 = Release|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.AuditMode|ARM.Deploy.0 = Release|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.AuditMode|ARM64.ActiveCfg = Debug|ARM64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.AuditMode|ARM64.Build.0 = Debug|ARM64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.AuditMode|ARM64.Deploy.0 = Debug|ARM64
@@ -60,6 +90,12 @@ Global
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.AuditMode|x86.ActiveCfg = Debug|x86
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.AuditMode|x86.Build.0 = Debug|x86
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.AuditMode|x86.Deploy.0 = Debug|x86
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Debug|Any CPU.ActiveCfg = Debug|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Debug|Any CPU.Build.0 = Debug|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Debug|Any CPU.Deploy.0 = Debug|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Debug|ARM.ActiveCfg = Debug|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Debug|ARM.Build.0 = Debug|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Debug|ARM.Deploy.0 = Debug|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Debug|ARM64.Build.0 = Debug|ARM64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Debug|ARM64.Deploy.0 = Debug|ARM64
@@ -69,6 +105,12 @@ Global
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Debug|x86.ActiveCfg = Debug|x86
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Debug|x86.Build.0 = Debug|x86
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Debug|x86.Deploy.0 = Debug|x86
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Fuzzing|Any CPU.ActiveCfg = Debug|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Fuzzing|Any CPU.Build.0 = Debug|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Fuzzing|Any CPU.Deploy.0 = Debug|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Fuzzing|ARM.ActiveCfg = Release|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Fuzzing|ARM.Build.0 = Release|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Fuzzing|ARM.Deploy.0 = Release|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Fuzzing|ARM64.Build.0 = Debug|ARM64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Fuzzing|ARM64.Deploy.0 = Debug|ARM64
@@ -78,6 +120,12 @@ Global
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Fuzzing|x86.ActiveCfg = Debug|x86
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Fuzzing|x86.Build.0 = Debug|x86
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Fuzzing|x86.Deploy.0 = Debug|x86
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Release|Any CPU.ActiveCfg = Release|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Release|Any CPU.Build.0 = Release|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Release|Any CPU.Deploy.0 = Release|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Release|ARM.ActiveCfg = Release|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Release|ARM.Build.0 = Release|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Release|ARM.Deploy.0 = Release|x64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Release|ARM64.ActiveCfg = Release|ARM64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Release|ARM64.Build.0 = Release|ARM64
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Release|ARM64.Deploy.0 = Release|ARM64
@@ -87,133 +135,460 @@ Global
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Release|x86.ActiveCfg = Release|x86
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Release|x86.Build.0 = Release|x86
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB}.Release|x86.Deploy.0 = Release|x86
{A4394404-37F7-41C1-802B-49788D3720E3}.AuditMode|Any CPU.ActiveCfg = AuditMode|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.AuditMode|Any CPU.Build.0 = AuditMode|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.AuditMode|ARM.ActiveCfg = AuditMode|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.AuditMode|ARM.Build.0 = AuditMode|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{A4394404-37F7-41C1-802B-49788D3720E3}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
{A4394404-37F7-41C1-802B-49788D3720E3}.AuditMode|x64.ActiveCfg = AuditMode|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.AuditMode|x64.Build.0 = AuditMode|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{A4394404-37F7-41C1-802B-49788D3720E3}.AuditMode|x86.Build.0 = AuditMode|Win32
{A4394404-37F7-41C1-802B-49788D3720E3}.Debug|Any CPU.ActiveCfg = Debug|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Debug|Any CPU.Build.0 = Debug|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Debug|ARM.ActiveCfg = Debug|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Debug|ARM.Build.0 = Debug|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Debug|ARM64.ActiveCfg = Debug|ARM64
{A4394404-37F7-41C1-802B-49788D3720E3}.Debug|ARM64.Build.0 = Debug|ARM64
{A4394404-37F7-41C1-802B-49788D3720E3}.Debug|x64.ActiveCfg = Debug|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Debug|x64.Build.0 = Debug|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Debug|x86.ActiveCfg = Debug|Win32
{A4394404-37F7-41C1-802B-49788D3720E3}.Debug|x86.Build.0 = Debug|Win32
{A4394404-37F7-41C1-802B-49788D3720E3}.Fuzzing|Any CPU.ActiveCfg = Fuzzing|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Fuzzing|Any CPU.Build.0 = Fuzzing|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Fuzzing|ARM.ActiveCfg = Fuzzing|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Fuzzing|ARM.Build.0 = Fuzzing|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Fuzzing|ARM64.ActiveCfg = Fuzzing|ARM64
{A4394404-37F7-41C1-802B-49788D3720E3}.Fuzzing|ARM64.Build.0 = Fuzzing|ARM64
{A4394404-37F7-41C1-802B-49788D3720E3}.Fuzzing|x64.ActiveCfg = Fuzzing|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Fuzzing|x64.Build.0 = Fuzzing|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Fuzzing|x86.ActiveCfg = Fuzzing|Win32
{A4394404-37F7-41C1-802B-49788D3720E3}.Fuzzing|x86.Build.0 = Fuzzing|Win32
{A4394404-37F7-41C1-802B-49788D3720E3}.Release|Any CPU.ActiveCfg = Release|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Release|Any CPU.Build.0 = Release|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Release|ARM.ActiveCfg = Release|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Release|ARM.Build.0 = Release|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Release|ARM64.ActiveCfg = Release|ARM64
{A4394404-37F7-41C1-802B-49788D3720E3}.Release|ARM64.Build.0 = Release|ARM64
{A4394404-37F7-41C1-802B-49788D3720E3}.Release|x64.ActiveCfg = Release|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Release|x64.Build.0 = Release|x64
{A4394404-37F7-41C1-802B-49788D3720E3}.Release|x86.ActiveCfg = Release|Win32
{A4394404-37F7-41C1-802B-49788D3720E3}.Release|x86.Build.0 = Release|Win32
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.AuditMode|Any CPU.ActiveCfg = AuditMode|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.AuditMode|Any CPU.Build.0 = AuditMode|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.AuditMode|ARM.ActiveCfg = AuditMode|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.AuditMode|ARM.Build.0 = AuditMode|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.AuditMode|x64.ActiveCfg = AuditMode|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.AuditMode|x64.Build.0 = AuditMode|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.AuditMode|x86.Build.0 = AuditMode|Win32
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Debug|Any CPU.ActiveCfg = Debug|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Debug|Any CPU.Build.0 = Debug|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Debug|ARM.ActiveCfg = Debug|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Debug|ARM.Build.0 = Debug|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Debug|ARM64.ActiveCfg = Debug|ARM64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Debug|ARM64.Build.0 = Debug|ARM64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Debug|x64.ActiveCfg = Debug|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Debug|x64.Build.0 = Debug|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Debug|x86.ActiveCfg = Debug|Win32
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Debug|x86.Build.0 = Debug|Win32
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Fuzzing|Any CPU.ActiveCfg = Fuzzing|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Fuzzing|Any CPU.Build.0 = Fuzzing|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Fuzzing|ARM.ActiveCfg = Fuzzing|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Fuzzing|ARM.Build.0 = Fuzzing|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Fuzzing|ARM64.ActiveCfg = Fuzzing|ARM64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Fuzzing|ARM64.Build.0 = Fuzzing|ARM64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Fuzzing|x64.ActiveCfg = Fuzzing|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Fuzzing|x64.Build.0 = Fuzzing|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Fuzzing|x86.ActiveCfg = Fuzzing|Win32
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Fuzzing|x86.Build.0 = Fuzzing|Win32
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Release|Any CPU.ActiveCfg = Release|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Release|Any CPU.Build.0 = Release|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Release|ARM.ActiveCfg = Release|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Release|ARM.Build.0 = Release|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Release|ARM64.ActiveCfg = Release|ARM64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Release|ARM64.Build.0 = Release|ARM64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Release|x64.ActiveCfg = Release|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Release|x64.Build.0 = Release|x64
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Release|x86.ActiveCfg = Release|Win32
{26C51792-41A3-4FE0-AB5E-8B69D557BF91}.Release|x86.Build.0 = Release|Win32
{B4427499-9FDE-4208-B456-5BC580637633}.AuditMode|Any CPU.ActiveCfg = AuditMode|x64
{B4427499-9FDE-4208-B456-5BC580637633}.AuditMode|Any CPU.Build.0 = AuditMode|x64
{B4427499-9FDE-4208-B456-5BC580637633}.AuditMode|ARM.ActiveCfg = AuditMode|x64
{B4427499-9FDE-4208-B456-5BC580637633}.AuditMode|ARM.Build.0 = AuditMode|x64
{B4427499-9FDE-4208-B456-5BC580637633}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{B4427499-9FDE-4208-B456-5BC580637633}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
{B4427499-9FDE-4208-B456-5BC580637633}.AuditMode|x64.ActiveCfg = AuditMode|x64
{B4427499-9FDE-4208-B456-5BC580637633}.AuditMode|x64.Build.0 = AuditMode|x64
{B4427499-9FDE-4208-B456-5BC580637633}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{B4427499-9FDE-4208-B456-5BC580637633}.AuditMode|x86.Build.0 = AuditMode|Win32
{B4427499-9FDE-4208-B456-5BC580637633}.Debug|Any CPU.ActiveCfg = Debug|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Debug|Any CPU.Build.0 = Debug|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Debug|ARM.ActiveCfg = Debug|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Debug|ARM.Build.0 = Debug|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Debug|ARM64.ActiveCfg = Debug|ARM64
{B4427499-9FDE-4208-B456-5BC580637633}.Debug|ARM64.Build.0 = Debug|ARM64
{B4427499-9FDE-4208-B456-5BC580637633}.Debug|x64.ActiveCfg = Debug|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Debug|x64.Build.0 = Debug|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Debug|x86.ActiveCfg = Debug|Win32
{B4427499-9FDE-4208-B456-5BC580637633}.Debug|x86.Build.0 = Debug|Win32
{B4427499-9FDE-4208-B456-5BC580637633}.Fuzzing|Any CPU.ActiveCfg = Fuzzing|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Fuzzing|Any CPU.Build.0 = Fuzzing|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Fuzzing|ARM.ActiveCfg = Fuzzing|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Fuzzing|ARM.Build.0 = Fuzzing|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Fuzzing|ARM64.ActiveCfg = Fuzzing|ARM64
{B4427499-9FDE-4208-B456-5BC580637633}.Fuzzing|ARM64.Build.0 = Fuzzing|ARM64
{B4427499-9FDE-4208-B456-5BC580637633}.Fuzzing|x64.ActiveCfg = Fuzzing|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Fuzzing|x64.Build.0 = Fuzzing|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Fuzzing|x86.ActiveCfg = Fuzzing|Win32
{B4427499-9FDE-4208-B456-5BC580637633}.Fuzzing|x86.Build.0 = Fuzzing|Win32
{B4427499-9FDE-4208-B456-5BC580637633}.Release|Any CPU.ActiveCfg = Release|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Release|Any CPU.Build.0 = Release|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Release|ARM.ActiveCfg = Release|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Release|ARM.Build.0 = Release|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Release|ARM64.ActiveCfg = Release|ARM64
{B4427499-9FDE-4208-B456-5BC580637633}.Release|ARM64.Build.0 = Release|ARM64
{B4427499-9FDE-4208-B456-5BC580637633}.Release|x64.ActiveCfg = Release|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Release|x64.Build.0 = Release|x64
{B4427499-9FDE-4208-B456-5BC580637633}.Release|x86.ActiveCfg = Release|Win32
{B4427499-9FDE-4208-B456-5BC580637633}.Release|x86.Build.0 = Release|Win32
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|Any CPU.ActiveCfg = AuditMode|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|Any CPU.Build.0 = AuditMode|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|ARM.ActiveCfg = AuditMode|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|ARM.Build.0 = AuditMode|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|x64.ActiveCfg = AuditMode|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|x64.Build.0 = AuditMode|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.AuditMode|x86.Build.0 = AuditMode|Win32
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|Any CPU.ActiveCfg = Debug|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|Any CPU.Build.0 = Debug|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|ARM.ActiveCfg = Debug|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|ARM.Build.0 = Debug|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|ARM64.ActiveCfg = Debug|ARM64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|ARM64.Build.0 = Debug|ARM64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|x64.ActiveCfg = Debug|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|x64.Build.0 = Debug|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|x86.ActiveCfg = Debug|Win32
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Debug|x86.Build.0 = Debug|Win32
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Fuzzing|Any CPU.ActiveCfg = Fuzzing|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Fuzzing|Any CPU.Build.0 = Fuzzing|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Fuzzing|ARM.ActiveCfg = Fuzzing|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Fuzzing|ARM.Build.0 = Fuzzing|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Fuzzing|ARM64.ActiveCfg = Fuzzing|ARM64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Fuzzing|ARM64.Build.0 = Fuzzing|ARM64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Fuzzing|x64.ActiveCfg = Fuzzing|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Fuzzing|x64.Build.0 = Fuzzing|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Fuzzing|x86.ActiveCfg = Fuzzing|Win32
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Fuzzing|x86.Build.0 = Fuzzing|Win32
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|Any CPU.ActiveCfg = Release|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|Any CPU.Build.0 = Release|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|ARM.ActiveCfg = Release|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|ARM.Build.0 = Release|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|ARM64.ActiveCfg = Release|ARM64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|ARM64.Build.0 = Release|ARM64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|x64.ActiveCfg = Release|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|x64.Build.0 = Release|x64
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|x86.ActiveCfg = Release|Win32
{6BAE5851-50D5-4934-8D5E-30361A8A40F3}.Release|x86.Build.0 = Release|Win32
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|Any CPU.ActiveCfg = AuditMode|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|Any CPU.Build.0 = AuditMode|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|ARM.ActiveCfg = AuditMode|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|ARM.Build.0 = AuditMode|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|ARM64.ActiveCfg = AuditMode|ARM64
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|ARM64.Build.0 = AuditMode|ARM64
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|x64.ActiveCfg = AuditMode|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|x64.Build.0 = AuditMode|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|x86.ActiveCfg = AuditMode|Win32
{18D09A24-8240-42D6-8CB6-236EEE820263}.AuditMode|x86.Build.0 = AuditMode|Win32
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|Any CPU.ActiveCfg = Debug|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|Any CPU.Build.0 = Debug|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|ARM.ActiveCfg = Debug|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|ARM.Build.0 = Debug|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|ARM64.ActiveCfg = Debug|ARM64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|ARM64.Build.0 = Debug|ARM64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|x64.ActiveCfg = Debug|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|x64.Build.0 = Debug|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|x86.ActiveCfg = Debug|Win32
{18D09A24-8240-42D6-8CB6-236EEE820263}.Debug|x86.Build.0 = Debug|Win32
{18D09A24-8240-42D6-8CB6-236EEE820263}.Fuzzing|Any CPU.ActiveCfg = Fuzzing|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Fuzzing|Any CPU.Build.0 = Fuzzing|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Fuzzing|ARM.ActiveCfg = Fuzzing|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Fuzzing|ARM.Build.0 = Fuzzing|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Fuzzing|ARM64.ActiveCfg = Fuzzing|ARM64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Fuzzing|ARM64.Build.0 = Fuzzing|ARM64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Fuzzing|x64.ActiveCfg = Fuzzing|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Fuzzing|x64.Build.0 = Fuzzing|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Fuzzing|x86.ActiveCfg = Fuzzing|Win32
{18D09A24-8240-42D6-8CB6-236EEE820263}.Fuzzing|x86.Build.0 = Fuzzing|Win32
{18D09A24-8240-42D6-8CB6-236EEE820263}.Release|Any CPU.ActiveCfg = Release|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Release|Any CPU.Build.0 = Release|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Release|ARM.ActiveCfg = Release|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Release|ARM.Build.0 = Release|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Release|ARM64.ActiveCfg = Release|ARM64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Release|ARM64.Build.0 = Release|ARM64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Release|x64.ActiveCfg = Release|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Release|x64.Build.0 = Release|x64
{18D09A24-8240-42D6-8CB6-236EEE820263}.Release|x86.ActiveCfg = Release|Win32
{18D09A24-8240-42D6-8CB6-236EEE820263}.Release|x86.Build.0 = Release|Win32
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|Any CPU.ActiveCfg = Release|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|Any CPU.Build.0 = Release|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|Any CPU.Deploy.0 = Release|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|ARM.ActiveCfg = Debug|ARM
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|ARM.Build.0 = Debug|ARM
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|ARM.Deploy.0 = Debug|ARM
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|ARM64.ActiveCfg = Debug|ARM64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|ARM64.Build.0 = Debug|ARM64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|ARM64.Deploy.0 = Debug|ARM64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|x64.ActiveCfg = Debug|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|x64.Build.0 = Debug|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|x64.Deploy.0 = Debug|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|x86.ActiveCfg = Debug|Win32
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|x86.Build.0 = Debug|Win32
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.AuditMode|x86.Deploy.0 = Debug|Win32
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|Any CPU.ActiveCfg = Debug|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|Any CPU.Build.0 = Debug|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|Any CPU.Deploy.0 = Debug|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|ARM.ActiveCfg = Debug|ARM
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|ARM.Build.0 = Debug|ARM
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|ARM.Deploy.0 = Debug|ARM
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|ARM64.ActiveCfg = Debug|ARM64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|ARM64.Build.0 = Debug|ARM64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|ARM64.Deploy.0 = Debug|ARM64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|x64.ActiveCfg = Debug|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|x64.Build.0 = Debug|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|x64.Deploy.0 = Debug|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|x86.ActiveCfg = Debug|Win32
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|x86.Build.0 = Debug|Win32
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Debug|x86.Deploy.0 = Debug|Win32
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|Any CPU.ActiveCfg = Release|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|Any CPU.Build.0 = Release|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|Any CPU.Deploy.0 = Release|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|ARM.ActiveCfg = Debug|ARM
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|ARM.Build.0 = Debug|ARM
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|ARM.Deploy.0 = Debug|ARM
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|ARM64.Build.0 = Debug|ARM64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|ARM64.Deploy.0 = Debug|ARM64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|x64.ActiveCfg = Debug|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|x64.Build.0 = Debug|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|x64.Deploy.0 = Debug|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|x86.ActiveCfg = Debug|Win32
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|x86.Build.0 = Debug|Win32
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Fuzzing|x86.Deploy.0 = Debug|Win32
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|Any CPU.ActiveCfg = Release|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|Any CPU.Build.0 = Release|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|Any CPU.Deploy.0 = Release|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|ARM.ActiveCfg = Release|ARM
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|ARM.Build.0 = Release|ARM
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|ARM.Deploy.0 = Release|ARM
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|ARM64.ActiveCfg = Release|ARM64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|ARM64.Build.0 = Release|ARM64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|ARM64.Deploy.0 = Release|ARM64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|x64.ActiveCfg = Release|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|x64.Build.0 = Release|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|x64.Deploy.0 = Release|x64
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|x86.ActiveCfg = Release|Win32
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|x86.Build.0 = Release|Win32
{1A505EDB-0961-431A-8DE5-31DF1A22B892}.Release|x86.Deploy.0 = Release|Win32
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.AuditMode|Any CPU.ActiveCfg = Release|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.AuditMode|Any CPU.Build.0 = Release|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.AuditMode|ARM.ActiveCfg = Debug|ARM
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.AuditMode|ARM.Build.0 = Debug|ARM
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.AuditMode|ARM64.ActiveCfg = Debug|ARM64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.AuditMode|ARM64.Build.0 = Debug|ARM64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.AuditMode|x64.ActiveCfg = Debug|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.AuditMode|x64.Build.0 = Debug|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.AuditMode|x86.ActiveCfg = Debug|Win32
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.AuditMode|x86.Build.0 = Debug|Win32
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Debug|Any CPU.ActiveCfg = Debug|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Debug|Any CPU.Build.0 = Debug|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Debug|ARM.ActiveCfg = Debug|ARM
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Debug|ARM.Build.0 = Debug|ARM
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Debug|ARM64.ActiveCfg = Debug|ARM64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Debug|ARM64.Build.0 = Debug|ARM64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Debug|x64.ActiveCfg = Debug|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Debug|x64.Build.0 = Debug|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Debug|x86.ActiveCfg = Debug|Win32
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Debug|x86.Build.0 = Debug|Win32
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Fuzzing|Any CPU.ActiveCfg = Release|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Fuzzing|Any CPU.Build.0 = Release|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Fuzzing|ARM.ActiveCfg = Debug|ARM
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Fuzzing|ARM.Build.0 = Debug|ARM
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Fuzzing|ARM64.Build.0 = Debug|ARM64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Fuzzing|x64.ActiveCfg = Debug|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Fuzzing|x64.Build.0 = Debug|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Fuzzing|x86.ActiveCfg = Debug|Win32
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Fuzzing|x86.Build.0 = Debug|Win32
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Release|Any CPU.ActiveCfg = Release|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Release|Any CPU.Build.0 = Release|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Release|ARM.ActiveCfg = Release|ARM
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Release|ARM.Build.0 = Release|ARM
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Release|ARM64.ActiveCfg = Release|ARM64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Release|ARM64.Build.0 = Release|ARM64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Release|x64.ActiveCfg = Release|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Release|x64.Build.0 = Release|x64
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Release|x86.ActiveCfg = Release|Win32
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D}.Release|x86.Build.0 = Release|Win32
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.AuditMode|Any CPU.ActiveCfg = Release|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.AuditMode|Any CPU.Build.0 = Release|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.AuditMode|ARM.ActiveCfg = Debug|ARM
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.AuditMode|ARM.Build.0 = Debug|ARM
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.AuditMode|ARM64.ActiveCfg = Debug|ARM64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.AuditMode|ARM64.Build.0 = Debug|ARM64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.AuditMode|x64.ActiveCfg = Debug|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.AuditMode|x64.Build.0 = Debug|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.AuditMode|x86.ActiveCfg = Debug|Win32
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.AuditMode|x86.Build.0 = Debug|Win32
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Debug|Any CPU.ActiveCfg = Debug|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Debug|Any CPU.Build.0 = Debug|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Debug|ARM.ActiveCfg = Debug|ARM
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Debug|ARM.Build.0 = Debug|ARM
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Debug|ARM64.Build.0 = Debug|ARM64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Debug|x64.ActiveCfg = Debug|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Debug|x64.Build.0 = Debug|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Debug|x86.ActiveCfg = Debug|Win32
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Debug|x86.Build.0 = Debug|Win32
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Fuzzing|Any CPU.ActiveCfg = Release|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Fuzzing|Any CPU.Build.0 = Release|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Fuzzing|ARM.ActiveCfg = Debug|ARM
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Fuzzing|ARM.Build.0 = Debug|ARM
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Fuzzing|ARM64.ActiveCfg = Debug|ARM64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Fuzzing|ARM64.Build.0 = Debug|ARM64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Fuzzing|x64.ActiveCfg = Debug|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Fuzzing|x64.Build.0 = Debug|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Fuzzing|x86.ActiveCfg = Debug|Win32
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Fuzzing|x86.Build.0 = Debug|Win32
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Release|Any CPU.ActiveCfg = Release|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Release|Any CPU.Build.0 = Release|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Release|ARM.ActiveCfg = Release|ARM
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Release|ARM.Build.0 = Release|ARM
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Release|ARM64.ActiveCfg = Release|ARM64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Release|ARM64.Build.0 = Release|ARM64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Release|x64.ActiveCfg = Release|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Release|x64.Build.0 = Release|x64
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Release|x86.ActiveCfg = Release|Win32
{CF317032-4253-4726-B4F5-6D5CEA2E75D4}.Release|x86.Build.0 = Release|Win32
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|Any CPU.ActiveCfg = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|Any CPU.Build.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|Any CPU.Deploy.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|ARM.ActiveCfg = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|ARM.Build.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|ARM.Deploy.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|ARM64.ActiveCfg = Debug|arm64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|ARM64.Build.0 = Debug|arm64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|ARM64.Deploy.0 = Debug|arm64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|x64.ActiveCfg = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|x64.Build.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|x64.Deploy.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|x86.ActiveCfg = Debug|x86
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|x86.Build.0 = Debug|x86
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.AuditMode|x86.Deploy.0 = Debug|x86
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|Any CPU.ActiveCfg = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|Any CPU.Build.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|Any CPU.Deploy.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|ARM.ActiveCfg = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|ARM.Build.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|ARM.Deploy.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|ARM64.ActiveCfg = Debug|arm64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|ARM64.Build.0 = Debug|arm64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|ARM64.Deploy.0 = Debug|arm64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|x64.ActiveCfg = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|x64.Build.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|x64.Deploy.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|x86.ActiveCfg = Debug|x86
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|x86.Build.0 = Debug|x86
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Debug|x86.Deploy.0 = Debug|x86
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|Any CPU.ActiveCfg = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|Any CPU.Build.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|Any CPU.Deploy.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|ARM.ActiveCfg = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|ARM.Build.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|ARM.Deploy.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|ARM64.ActiveCfg = Debug|arm64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|ARM64.Build.0 = Debug|arm64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|ARM64.Deploy.0 = Debug|arm64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|x64.ActiveCfg = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|x64.Build.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|x64.Deploy.0 = Debug|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|x86.ActiveCfg = Debug|x86
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|x86.Build.0 = Debug|x86
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Fuzzing|x86.Deploy.0 = Debug|x86
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|Any CPU.ActiveCfg = Release|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|Any CPU.Build.0 = Release|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|Any CPU.Deploy.0 = Release|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|ARM.ActiveCfg = Release|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|ARM.Build.0 = Release|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|ARM.Deploy.0 = Release|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|ARM64.ActiveCfg = Release|arm64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|ARM64.Build.0 = Release|arm64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|ARM64.Deploy.0 = Release|arm64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|x64.ActiveCfg = Release|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|x64.Build.0 = Release|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|x64.Deploy.0 = Release|x64
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|x86.ActiveCfg = Release|x86
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|x86.Build.0 = Release|x86
{69BDA742-A592-4A02-8EE9-BA47ABFA5887}.Release|x86.Deploy.0 = Release|x86
{35573630-40E7-4428-89D1-E1D89DDA8787}.AuditMode|Any CPU.ActiveCfg = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.AuditMode|Any CPU.Build.0 = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.AuditMode|ARM.ActiveCfg = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.AuditMode|ARM.Build.0 = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.AuditMode|ARM64.ActiveCfg = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.AuditMode|ARM64.Build.0 = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.AuditMode|x64.ActiveCfg = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.AuditMode|x64.Build.0 = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.AuditMode|x86.ActiveCfg = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.AuditMode|x86.Build.0 = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Debug|Any CPU.Build.0 = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Debug|ARM.ActiveCfg = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Debug|ARM.Build.0 = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Debug|ARM64.ActiveCfg = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Debug|ARM64.Build.0 = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Debug|x64.ActiveCfg = Debug|x64
{35573630-40E7-4428-89D1-E1D89DDA8787}.Debug|x64.Build.0 = Debug|x64
{35573630-40E7-4428-89D1-E1D89DDA8787}.Debug|x86.ActiveCfg = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Debug|x86.Build.0 = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Fuzzing|Any CPU.ActiveCfg = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Fuzzing|Any CPU.Build.0 = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Fuzzing|ARM.ActiveCfg = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Fuzzing|ARM.Build.0 = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Fuzzing|ARM64.ActiveCfg = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Fuzzing|ARM64.Build.0 = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Fuzzing|x64.ActiveCfg = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Fuzzing|x64.Build.0 = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Fuzzing|x86.ActiveCfg = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Fuzzing|x86.Build.0 = Debug|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Release|Any CPU.ActiveCfg = Release|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Release|Any CPU.Build.0 = Release|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Release|ARM.ActiveCfg = Release|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Release|ARM.Build.0 = Release|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Release|ARM64.ActiveCfg = Release|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Release|ARM64.Build.0 = Release|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Release|x64.ActiveCfg = Release|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Release|x64.Build.0 = Release|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Release|x86.ActiveCfg = Release|Any CPU
{35573630-40E7-4428-89D1-E1D89DDA8787}.Release|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{CF31505E-3BAE-4C0A-81D7-F1EB279F40BB} = {4415272B-ABE7-4510-9491-67AB4F855BBF}
{A4394404-37F7-41C1-802B-49788D3720E3} = {4415272B-ABE7-4510-9491-67AB4F855BBF}
{26C51792-41A3-4FE0-AB5E-8B69D557BF91} = {4415272B-ABE7-4510-9491-67AB4F855BBF}
{B4427499-9FDE-4208-B456-5BC580637633} = {4415272B-ABE7-4510-9491-67AB4F855BBF}
{6BAE5851-50D5-4934-8D5E-30361A8A40F3} = {75AC9360-76FD-4ABC-AFEC-EF342BD2B3E9}
{18D09A24-8240-42D6-8CB6-236EEE820263} = {75AC9360-76FD-4ABC-AFEC-EF342BD2B3E9}
{1A505EDB-0961-431A-8DE5-31DF1A22B892} = {CAD8C045-8805-4DBE-9028-994C86C60F7B}
{E1CF4226-B94E-4A86-B62F-02E1A2EB3A0D} = {CAD8C045-8805-4DBE-9028-994C86C60F7B}
{CF317032-4253-4726-B4F5-6D5CEA2E75D4} = {4415272B-ABE7-4510-9491-67AB4F855BBF}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {05EAE315-9188-4D7B-B889-7D5F480A8915}

View File

@@ -0,0 +1,14 @@
<Application x:Class="DotnetWasdkApp.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:DotnetWasdkApp">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
<!-- Other merged dictionaries here -->
</ResourceDictionary.MergedDictionaries>
<!-- Other app resources here -->
</ResourceDictionary>
</Application.Resources>
</Application>

View File

@@ -0,0 +1,51 @@
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
using Microsoft.UI.Xaml.Shapes;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.ApplicationModel;
using Windows.ApplicationModel.Activation;
using Windows.Foundation;
using Windows.Foundation.Collections;
// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: http://aka.ms/winui-project-info.
namespace DotnetWasdkApp
{
/// <summary>
/// Provides application-specific behavior to supplement the default Application class.
/// </summary>
public partial class App : Application
{
/// <summary>
/// Initializes the singleton application object. This is the first line of authored code
/// executed, and as such is the logical equivalent of main() or WinMain().
/// </summary>
public App()
{
this.InitializeComponent();
}
/// <summary>
/// Invoked when the application is launched normally by the end user. Other entry points
/// will be used such as when the application is launched to open a specific file.
/// </summary>
/// <param name="args">Details about the launch request and process.</param>
protected override void OnLaunched(Microsoft.UI.Xaml.LaunchActivatedEventArgs args)
{
m_window = new MainWindow();
m_window.Activate();
}
private Window m_window;
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 432 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 637 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 456 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1,53 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows10.0.22000.0</TargetFramework>
<TargetPlatformMinVersion>10.0.22000.0</TargetPlatformMinVersion>
<RootNamespace>DotnetWasdkApp</RootNamespace>
<ApplicationManifest>app.manifest</ApplicationManifest>
<Platforms>x86;x64;arm64</Platforms>
<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
<PublishProfile>win10-$(Platform).pubxml</PublishProfile>
<UseWinUI>true</UseWinUI>
<EnableMsixTooling>true</EnableMsixTooling>
<WindowsSdkPackageVersion>10.0.22621.27</WindowsSdkPackageVersion>
</PropertyGroup>
<ItemGroup>
<Content Include="Assets\SplashScreen.scale-200.png" />
<Content Include="Assets\LockScreenLogo.scale-200.png" />
<Content Include="Assets\Square150x150Logo.scale-200.png" />
<Content Include="Assets\Square44x44Logo.scale-200.png" />
<Content Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
<Content Include="Assets\StoreLogo.png" />
<Content Include="Assets\Wide310x150Logo.scale-200.png" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.3.230331000" />
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.756" />
<Manifest Include="$(ApplicationManifest)" />
</ItemGroup>
<!--
Defining the "Msix" ProjectCapability here allows the Single-project MSIX Packaging
Tools extension to be activated for this project even if the Windows App SDK Nuget
package has not yet been restored.
-->
<ItemGroup Condition="'$(DisableMsixProjectCapabilityAddedByProject)'!='true' and '$(EnableMsixTooling)'=='true'">
<ProjectCapability Include="Msix" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\DotnetWasdkComponent\DotnetWasdkComponent.csproj" />
</ItemGroup>
<!--
Defining the "HasPackageAndPublishMenuAddedByProject" property here allows the Solution
Explorer "Package and Publish" context menu entry to be enabled for this project even if
the Windows App SDK Nuget package has not yet been restored.
-->
<PropertyGroup Condition="'$(DisableHasPackageAndPublishMenuAddedByProject)'!='true' and '$(EnableMsixTooling)'=='true'">
<HasPackageAndPublishMenu>true</HasPackageAndPublishMenu>
</PropertyGroup>
</Project>

View File

@@ -0,0 +1,17 @@
<Window x:Class="DotnetWasdkApp.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:DotnetWasdkApp"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<StackPanel HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Horizontal">
<Button x:Name="myButton"
Click="myButton_Click">
Click Me
</Button>
</StackPanel>
</Window>

View File

@@ -0,0 +1,39 @@
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Microsoft.UI.Xaml.Controls.Primitives;
using Microsoft.UI.Xaml.Data;
using Microsoft.UI.Xaml.Input;
using Microsoft.UI.Xaml.Media;
using Microsoft.UI.Xaml.Navigation;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Runtime.InteropServices.WindowsRuntime;
using Windows.Foundation;
using Windows.Foundation.Collections;
// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: http://aka.ms/winui-project-info.
namespace DotnetWasdkApp
{
/// <summary>
/// An empty window that can be used on its own or navigated to within a Frame.
/// </summary>
public sealed partial class MainWindow : Window
{
private DotnetWasdkComponent.Class1 _class1 = new DotnetWasdkComponent.Class1();
public MainWindow()
{
this.InitializeComponent();
}
private void myButton_Click(object sender, RoutedEventArgs e)
{
_class1.MySharpProperty += 1;
myButton.Content = "Clicked " + _class1.MySharpProperty;
}
}
}

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap rescap">
<Identity
Name="29d39bee-17b1-41fc-9ed7-24668c111d13"
Publisher="CN=migrie"
Version="1.0.0.0" />
<Properties>
<DisplayName>DotnetWasdkApp</DisplayName>
<PublisherDisplayName>migrie</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.17763.0" MaxVersionTested="10.0.19041.0" />
</Dependencies>
<Resources>
<Resource Language="x-generate"/>
</Resources>
<Applications>
<Application Id="App"
Executable="$targetnametoken$.exe"
EntryPoint="$targetentrypoint$">
<uap:VisualElements
DisplayName="DotnetWasdkApp"
Description="DotnetWasdkApp"
BackgroundColor="transparent"
Square150x150Logo="Assets\Square150x150Logo.png"
Square44x44Logo="Assets\Square44x44Logo.png">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png" />
<uap:SplashScreen Image="Assets\SplashScreen.png" />
</uap:VisualElements>
</Application>
</Applications>
<Capabilities>
<rescap:Capability Name="runFullTrust" />
</Capabilities>
</Package>

View File

@@ -0,0 +1,10 @@
{
"profiles": {
"DotnetWasdkApp (Package)": {
"commandName": "MsixPackage"
},
"DotnetWasdkApp (Unpackaged)": {
"commandName": "Project"
}
}
}

View File

@@ -0,0 +1,15 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1">
<assemblyIdentity version="1.0.0.0" name="DotnetWasdkApp.app"/>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<!-- The combination of below two tags have the following effect:
1) Per-Monitor for >= Windows 10 Anniversary Update
2) System < Windows 10 Anniversary Update
-->
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/PM</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2, PerMonitor</dpiAwareness>
</windowsSettings>
</application>
</assembly>

View File

@@ -0,0 +1,35 @@
using WinRT.Interop;
using WinRT;
using SampleExtensions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Windows.Foundation;
// To learn more about WinUI, the WinUI project structure,
// and more about our project templates, see: http://aka.ms/winui-project-info.
namespace DotnetWasdkComponent
{
public sealed class Class1 : IExtension
{
public int MySharpProperty { get; set; }
public Windows.UI.Xaml.FrameworkElement PaneContent => throw new NotImplementedException();
public Class1()
{
MySharpProperty = 11;
}
public event TypedEventHandler<object, SendInputArgs> SendInputRequested;
public int DoTheThing()
{
throw new NotImplementedException();
}
}
}

View File

@@ -0,0 +1,34 @@
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0-windows10.0.22000.0</TargetFramework>
<TargetPlatformMinVersion>10.0.22000.0</TargetPlatformMinVersion>
<RootNamespace>DotnetWasdkComponent</RootNamespace>
<RuntimeIdentifiers>win10-x86;win10-x64;win10-arm64</RuntimeIdentifiers>
<UseWinUI>false</UseWinUI>
<WindowsSdkPackageVersion>10.0.22621.27</WindowsSdkPackageVersion>
<Platforms>AnyCPU;x64</Platforms>
</PropertyGroup>
<ItemGroup>
<None Remove="SampleExtensions.winmd" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Microsoft.WindowsAppSDK" Version="1.3.230331000" />
<PackageReference Include="Microsoft.Windows.SDK.BuildTools" Version="10.0.22621.756" />
<PackageReference Include="Microsoft.Windows.CsWinRT" Version="2.0.2" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\SampleExtensions\SampleExtensions.vcxproj" />
</ItemGroup>
<PropertyGroup>
<CsWinRTComponent>true</CsWinRTComponent>
<!--<CsWinRTIncludes>SampleExtensions;Windows.UI.Xaml;</CsWinRTIncludes>-->
<CsWinRTIncludes>SampleExtensions;</CsWinRTIncludes>
</PropertyGroup>
</Project>

Binary file not shown.

View File

@@ -0,0 +1,117 @@
#include "pch.h"
#include "ExtensionClass.h"
#include "ExtensionClass.g.cpp"
namespace winrt
{
namespace MUX = Microsoft::UI::Xaml;
namespace WUX = Windows::UI::Xaml;
using IInspectable = Windows::Foundation::IInspectable;
}
namespace winrt::ExtensionComponent::implementation
{
int32_t ExtensionClass::MyProperty()
{
return 99;
}
void ExtensionClass::MyProperty(int32_t /* value */)
{
throw hresult_not_implemented();
}
int32_t ExtensionClass::DoTheThing()
{
return 101;
}
void ExtensionClass::_webMessageReceived(const IInspectable& sender,
winrt::Microsoft::Web::WebView2::Core::CoreWebView2WebMessageReceivedEventArgs args)
{
auto message{ args.TryGetWebMessageAsString() };
if (!message.empty())
{
auto uri = winrt::Windows::Foundation::Uri(message);
if (uri.SchemeName() == L"sendinput")
{
//MyButtonHandler(uri);
auto query = winrt::Windows::Foundation::WwwFormUrlDecoder(uri.Query());
winrt::hstring asdf = query.First().Current().Value();
auto sendInput = winrt::SampleExtensions::SendInputArgs(asdf);
this->_SendInputRequestedHandlers(*this, sendInput);
}
}
return;
}
winrt::fire_and_forget ExtensionClass::_makeWebView(const WUX::Controls::StackPanel parent)
{
winrt::MUX::Controls::WebView2 wv{ nullptr };
wv = winrt::MUX::Controls::WebView2();
wv.HorizontalAlignment(WUX::HorizontalAlignment::Stretch);
wv.Height(300);
parent.Children().Append(wv);
co_await wv.EnsureCoreWebView2Async();
std::string page = R"_(
<html>
<body>
<h1>My First Heading</h1>
Hello world
<form id="myForm">
<label for="myInput">Enter text:</label>
<input type="text" id="myInput" name="myInput">
<button type="submit" id="myButton">Submit</button>
</form>
</body>
<script>
document.getElementById("myForm").addEventListener("submit", function(event) {
event.preventDefault();
var input = document.getElementById("myInput").value;
window.chrome.webview.postMessage("sendInput://?text=" + encodeURIComponent(input));
});
</script>
</html>
)_";
wv.WebMessageReceived({ this, &ExtensionClass::_webMessageReceived });
// wv.CoreWebView2().Navigate(L"https://www.github.com/microsoft/terminal");
wv.CoreWebView2().NavigateToString(winrt::to_hstring(page));
}
winrt::Windows::UI::Xaml::FrameworkElement ExtensionClass::PaneContent()
{
// winrt::Windows::UI::Xaml::Controls::Button myButton{};
// myButton.Content(winrt::box_value(L"This came from an extension"));
// // Add an onclick handler to the button that sets the background of the button to a random color
// myButton.Click([myButton](auto&&, auto&&) {
// winrt::Windows::UI::Xaml::Media::SolidColorBrush brush{};
// brush.Color(winrt::Windows::UI::ColorHelper::FromArgb(255, rand() % 255, rand() % 255, rand() % 255));
// myButton.Background(brush);
// });
// return myButton;
// // This may be hard to impossible, due to
// // https://github.com/microsoft/microsoft-ui-xaml/issues/6299
// winrt::ExtensionComponent::ExtensionUserControl myControl{};
// return myControl;
winrt::WUX::Controls::StackPanel sp{};
sp.Orientation(WUX::Controls::Orientation::Vertical);
sp.HorizontalAlignment(WUX::HorizontalAlignment::Stretch);
sp.VerticalAlignment(WUX::VerticalAlignment::Stretch);
_makeWebView(sp);
return sp;
}
}

View File

@@ -0,0 +1,40 @@
#pragma once
#include "ExtensionClass.g.h"
namespace winrt::ExtensionComponent::implementation
{
struct ExtensionClass : ExtensionClassT<ExtensionClass>
{
ExtensionClass() = default;
int32_t MyProperty();
void MyProperty(int32_t value);
int32_t DoTheThing();
winrt::Windows::UI::Xaml::FrameworkElement PaneContent();
// typed event handler for the SendInputRequested event
winrt::event_token SendInputRequested(winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable, winrt::SampleExtensions::SendInputArgs> const& handler)
{
return _SendInputRequestedHandlers.add(handler);
}
void SendInputRequested(winrt::event_token const& token) noexcept
{
_SendInputRequestedHandlers.remove(token);
}
private:
winrt::fire_and_forget _makeWebView(const winrt::Windows::UI::Xaml::Controls::StackPanel parent);
void _webMessageReceived(const winrt::Windows::Foundation::IInspectable& sender,
winrt::Microsoft::Web::WebView2::Core::CoreWebView2WebMessageReceivedEventArgs args);
winrt::event<winrt::Windows::Foundation::TypedEventHandler<winrt::Windows::Foundation::IInspectable, winrt::SampleExtensions::SendInputArgs>> _SendInputRequestedHandlers;
};
}
namespace winrt::ExtensionComponent::factory_implementation
{
struct ExtensionClass : ExtensionClassT<ExtensionClass, implementation::ExtensionClass>
{
};
}

View File

@@ -0,0 +1,8 @@
namespace ExtensionComponent
{
[default_interface] runtimeclass ExtensionClass : SampleExtensions.IExtension
{
ExtensionClass();
Int32 MyProperty;
}
}

View File

@@ -0,0 +1,3 @@
EXPORTS
DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE
DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE

View File

@@ -0,0 +1,216 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.props')" />
<PropertyGroup Label="Globals">
<CppWinRTOptimized>true</CppWinRTOptimized>
<CppWinRTRootNamespaceAutoMerge>true</CppWinRTRootNamespaceAutoMerge>
<CppWinRTGenerateWindowsMetadata>true</CppWinRTGenerateWindowsMetadata>
<MinimalCoreWin>true</MinimalCoreWin>
<ProjectGuid>{e1cf4226-b94e-4a86-b62f-02e1a2eb3a0d}</ProjectGuid>
<ProjectName>ExtensionComponent</ProjectName>
<RootNamespace>ExtensionComponent</RootNamespace>
<DefaultLanguage>en-US</DefaultLanguage>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.22621.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.18362.0</WindowsTargetPlatformMinVersion>
</PropertyGroup>
<Import Project="..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
<Import Project="..\..\packages\Microsoft.UI.Xaml.2.8.3\build\native\Microsoft.UI.Xaml.props" Condition="Exists('..\..\packages\Microsoft.UI.Xaml.2.8.3\build\native\Microsoft.UI.Xaml.props')" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="PropertySheet.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup />
<ItemDefinitionGroup>
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
<WarningLevel>Level4</WarningLevel>
<AdditionalOptions>%(AdditionalOptions) /bigobj</AdditionalOptions>
<PreprocessorDefinitions>_WINRT_DLL;WIN32_LEAN_AND_MEAN;WINRT_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
<ModuleDefinitionFile>ExtensionComponent.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="ExtensionUserControl.xaml.h">
<DependentUpon>ExtensionUserControl.xaml</DependentUpon>
</ClInclude>
<ClInclude Include="pch.h" />
<ClInclude Include="ExtensionClass.h">
<DependentUpon>ExtensionClass.idl</DependentUpon>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="ExtensionUserControl.xaml.cpp">
<DependentUpon>ExtensionUserControl.xaml</DependentUpon>
</ClCompile>
<ClCompile Include="pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="ExtensionClass.cpp">
<DependentUpon>ExtensionClass.idl</DependentUpon>
</ClCompile>
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
</ItemGroup>
<ItemGroup>
<Midl Include="ExtensionClass.idl" />
<Midl Include="ExtensionUserControl.idl" >
<DependentUpon>ExtensionUserControl.xaml</DependentUpon>
</Midl>
</ItemGroup>
<ItemGroup>
<None Include="ExtensionComponent.def" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
<None Include="PropertySheet.props" />
<Text Include="readme.txt">
<DeploymentContent>false</DeploymentContent>
</Text>
</ItemGroup>
<!-- ========================== Other References ========================= -->
<ItemGroup>
<!-- <Reference Include="SampleApp">
<HintPath>$(OpenConsoleCommonOutDir)\SampleAppLib\SampleApp.winmd</HintPath>
<HintPath>..\..\bin\x64\Debug\SampleAppLib\SampleApp.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference> -->
<Reference Include="SampleExtensions">
<!-- <HintPath>$(OpenConsoleCommonOutDir)\SampleAppLib\SampleApp.winmd</HintPath> -->
<!-- <HintPath>..\..\bin\x64\Debug\SampleAppLib\SampleApp.winmd</HintPath> -->
<HintPath>..\..\x64\Debug\SampleExtensions\SampleExtensions.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
<!-- <Reference Include="Microsoft.Terminal.Core">
<HintPath>$(OpenConsoleCommonOutDir)TerminalCore\Microsoft.Terminal.Core.winmd</HintPath>
<HintPath>..\..\bin\x64\debug\TerminalCore\Microsoft.Terminal.Core.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
<Reference Include="Microsoft.Terminal.TerminalConnection">
<HintPath>$(OpenConsoleCommonOutDir)TerminalConnection\Microsoft.Terminal.TerminalConnection.winmd</HintPath>
<HintPath>..\..\bin\x64\debug\TerminalConnection\Microsoft.Terminal.TerminalConnection.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference> -->
<!-- <Reference Include="Microsoft.Terminal.Control">
<HintPath>$(OpenConsoleCommonOutDir)Microsoft.Terminal.Control\Microsoft.Terminal.Control.winmd</HintPath>
<HintPath>..\..\bin\x64\debug\Microsoft.Terminal.Control\Microsoft.Terminal.Control.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference> -->
</ItemGroup>
<ItemGroup>
<Page Include="ExtensionUserControl.xaml">
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.targets')" />
<Import Project="..\..\packages\Microsoft.UI.Xaml.2.8.3\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('..\..\packages\Microsoft.UI.Xaml.2.8.3\build\native\Microsoft.UI.Xaml.targets')" />
<Import Project="..\..\packages\Microsoft.Web.WebView2.1.0.1661.34\build\native\Microsoft.Web.WebView2.targets" Condition="Exists('..\..\packages\Microsoft.Web.WebView2.1.0.1661.34\build\native\Microsoft.Web.WebView2.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>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}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.targets'))" />
</Target>
</Project>

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resources">
<UniqueIdentifier>accd3aa8-1ba0-4223-9bbe-0c431709210b</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tga;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Generated Files">
<UniqueIdentifier>{926ab91d-31b4-48c3-b9a4-e681349f27f0}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp" />
<ClCompile Include="Class.cpp" />
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
</ItemGroup>
<ItemGroup>
<Midl Include="Class.idl" />
</ItemGroup>
<ItemGroup>
<None Include="ExtensionComponent.def" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<None Include="PropertySheet.props" />
</ItemGroup>
<ItemGroup>
<Text Include="readme.txt" />
</ItemGroup>
<ItemGroup>
<Page Include="ExtensionUserControl.xaml" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,8 @@
namespace ExtensionComponent
{
[default_interface] runtimeclass ExtensionUserControl : Windows.UI.Xaml.Controls.UserControl
{
ExtensionUserControl();
Int32 MyValue;
}
}

View File

@@ -0,0 +1,18 @@
<UserControl x:Class="ExtensionComponent.ExtensionUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:ExtensionComponent"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
d:DesignHeight="300"
d:DesignWidth="400"
mc:Ignorable="d">
<Grid>
<Button x:Name="Button1"
Margin="10,10,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Content="{x:Bind MyValue, Mode=OneWay}" />
</Grid>
</UserControl>

View File

@@ -0,0 +1,29 @@
//
// ExtensionUserControl.xaml.cpp
// Implementation of the ExtensionUserControl class
//
#include "pch.h"
#include "ExtensionUserControl.xaml.h"
#include "ExtensionUserControl.g.cpp"
// The User Control item template is documented at https://go.microsoft.com/fwlink/?LinkId=234236
namespace winrt::ExtensionComponent::implementation
{
int32_t ExtensionUserControl::MyValue()
{
return _MyValue;
};
void ExtensionUserControl::MyValue(const int32_t& value)
{
if (_MyValue != value)
{
_MyValue = value;
_PropertyChanged(*this, winrt::Windows::UI::Xaml::Data::PropertyChangedEventArgs{ L"MyValue" });
}
};
}

View File

@@ -0,0 +1,41 @@
//
// ExtensionUserControl.xaml.h
// Declaration of the ExtensionUserControl class
//
#pragma once
#include "ExtensionUserControl.g.h"
namespace winrt::ExtensionComponent::implementation
{
struct ExtensionUserControl : ExtensionUserControlT<ExtensionUserControl>
{
ExtensionUserControl() = default;
public:
// and an observable "MyValue" property
int32_t MyValue();
void MyValue(const int32_t& value);
winrt::event_token PropertyChanged(winrt::Windows::UI::Xaml::Data::PropertyChangedEventHandler const& handler)
{
return _PropertyChanged.add(handler);
}
void PropertyChanged(winrt::event_token const& token) noexcept
{
_PropertyChanged.remove(token);
}
private:
int32_t _MyValue{ 10 };
winrt::event<winrt::Windows::UI::Xaml::Data::PropertyChangedEventHandler> _PropertyChanged;
};
}
namespace winrt::ExtensionComponent::factory_implementation
{
struct ExtensionUserControl : ExtensionUserControlT<ExtensionUserControl, implementation::ExtensionUserControl>
{
};
}

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<!--
To customize common C++/WinRT project properties:
* right-click the project node
* expand the Common Properties item
* select the C++/WinRT property page
For more advanced scenarios, and complete documentation, please see:
https://github.com/Microsoft/cppwinrt/tree/master/nuget
-->
<PropertyGroup />
<ItemDefinitionGroup />
</Project>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Windows.CppWinRT" version="2.0.230207.1" targetFramework="native" />
</packages>

View File

@@ -0,0 +1 @@
#include "pch.h"

View File

@@ -0,0 +1,16 @@
#pragma once
#include <unknwn.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.UI.Xaml.h>
#include <winrt/Windows.UI.Xaml.Data.h>
#include <winrt/Windows.UI.Xaml.Media.h>
#include <winrt/Windows.UI.Xaml.Controls.h>
#include <winrt/Windows.UI.Xaml.Controls.Primitives.h>
#include <winrt/Microsoft.UI.Xaml.Controls.h>
#include <winrt/Microsoft.UI.Xaml.Controls.Primitives.h>
#include <winrt/Microsoft.UI.Xaml.XamlTypeInfo.h>
#include <winrt/Microsoft.Web.WebView2.Core.h>
#include <winrt/SampleExtensions.h>

View File

@@ -0,0 +1,23 @@
========================================================================
C++/WinRT ExtensionComponent 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/
========================================================================

View File

@@ -0,0 +1,118 @@
#include "pch.h"
#include "App.h"
#include "MainPage.h"
using namespace winrt;
using namespace Windows::ApplicationModel;
using namespace Windows::ApplicationModel::Activation;
using namespace Windows::Foundation;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Navigation;
using namespace ExtensionHost;
using namespace ExtensionHost::implementation;
/// <summary>
/// Creates the singleton application object. This is the first line of authored code
/// executed, and as such is the logical equivalent of main() or WinMain().
/// </summary>
App::App()
{
Suspending({ this, &App::OnSuspending });
#if defined _DEBUG && !defined DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
UnhandledException([this](IInspectable const&, UnhandledExceptionEventArgs const& e)
{
if (IsDebuggerPresent())
{
auto errorMessage = e.Message();
__debugbreak();
}
});
#endif
}
/// <summary>
/// Invoked when the application is launched normally by the end user. Other entry points
/// will be used such as when the application is launched to open a specific file.
/// </summary>
/// <param name="e">Details about the launch request and process.</param>
void App::OnLaunched(LaunchActivatedEventArgs const& e)
{
Frame rootFrame{ nullptr };
auto content = Window::Current().Content();
if (content)
{
rootFrame = content.try_as<Frame>();
}
// Do not repeat app initialization when the Window already has content,
// just ensure that the window is active
if (rootFrame == nullptr)
{
// Create a Frame to act as the navigation context and associate it with
// a SuspensionManager key
rootFrame = Frame();
rootFrame.NavigationFailed({ this, &App::OnNavigationFailed });
if (e.PreviousExecutionState() == ApplicationExecutionState::Terminated)
{
// Restore the saved session state only when appropriate, scheduling the
// final launch steps after the restore is complete
}
if (e.PrelaunchActivated() == false)
{
if (rootFrame.Content() == nullptr)
{
// When the navigation stack isn't restored navigate to the first page,
// configuring the new page by passing required information as a navigation
// parameter
rootFrame.Navigate(xaml_typename<ExtensionHost::MainPage>(), box_value(e.Arguments()));
}
// Place the frame in the current Window
Window::Current().Content(rootFrame);
// Ensure the current window is active
Window::Current().Activate();
}
}
else
{
if (e.PrelaunchActivated() == false)
{
if (rootFrame.Content() == nullptr)
{
// When the navigation stack isn't restored navigate to the first page,
// configuring the new page by passing required information as a navigation
// parameter
rootFrame.Navigate(xaml_typename<ExtensionHost::MainPage>(), box_value(e.Arguments()));
}
// Ensure the current window is active
Window::Current().Activate();
}
}
}
/// <summary>
/// Invoked when application execution is being suspended. Application state is saved
/// without knowing whether the application will be terminated or resumed with the contents
/// of memory still intact.
/// </summary>
/// <param name="sender">The source of the suspend request.</param>
/// <param name="e">Details about the suspend request.</param>
void App::OnSuspending([[maybe_unused]] IInspectable const& sender, [[maybe_unused]] SuspendingEventArgs const& e)
{
// Save application state and stop any background activity
}
/// <summary>
/// Invoked when Navigation to a certain page fails
/// </summary>
/// <param name="sender">The Frame which failed navigation</param>
/// <param name="e">Details about the navigation failure</param>
void App::OnNavigationFailed(IInspectable const&, NavigationFailedEventArgs const& e)
{
throw hresult_error(E_FAIL, hstring(L"Failed to load Page ") + e.SourcePageType().Name);
}

View File

@@ -0,0 +1,13 @@
#pragma once
#include "App.xaml.g.h"
namespace winrt::ExtensionHost::implementation
{
struct App : AppT<App>
{
App();
void OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs const&);
void OnSuspending(IInspectable const&, Windows::ApplicationModel::SuspendingEventArgs const&);
void OnNavigationFailed(IInspectable const&, Windows::UI::Xaml::Navigation::NavigationFailedEventArgs const&);
};
}

View File

@@ -0,0 +1,3 @@
namespace ExtensionHost
{
}

View File

@@ -0,0 +1,4 @@
<Application x:Class="ExtensionHost.App"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:ExtensionHost" />

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

View File

@@ -0,0 +1,3 @@
EXPORTS
DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE
DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<file name="ExtensionHost.exe" hashalg="SHA1">
<activatableClass name="ExtensionHost.FooClass" threadingModel="both" xmlns="urn:schemas-microsoft-com:winrt.v1"></activatableClass>
</file>
</assembly>

View File

@@ -0,0 +1,242 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.props')" />
<PropertyGroup Label="Globals">
<CppWinRTOptimized>true</CppWinRTOptimized>
<CppWinRTRootNamespaceAutoMerge>true</CppWinRTRootNamespaceAutoMerge>
<CppWinRTGenerateWindowsMetadata>true</CppWinRTGenerateWindowsMetadata>
<MinimalCoreWin>true</MinimalCoreWin>
<ProjectGuid>{1a505edb-0961-431a-8de5-31df1a22b892}</ProjectGuid>
<ProjectName>ExtensionHost</ProjectName>
<RootNamespace>ExtensionHost</RootNamespace>
<DefaultLanguage>en-US</DefaultLanguage>
<MinimumVisualStudioVersion>15.0</MinimumVisualStudioVersion>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.22621.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.18362.0</WindowsTargetPlatformMinVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="..\..\packages\Microsoft.UI.Xaml.2.8.3\build\native\Microsoft.UI.Xaml.props" Condition="Exists('..\..\packages\Microsoft.UI.Xaml.2.8.3\build\native\Microsoft.UI.Xaml.props')" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="PropertySheet.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
<WarningLevel>Level4</WarningLevel>
<AdditionalOptions>%(AdditionalOptions) /bigobj</AdditionalOptions>
<PreprocessorDefinitions>WIN32_LEAN_AND_MEAN;WINRT_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
<ClInclude Include="App.h">
<DependentUpon>App.xaml</DependentUpon>
</ClInclude>
<ClInclude Include="FooClass.h">
<DependentUpon>FooClass.idl</DependentUpon>
</ClInclude>
<ClInclude Include="MainPage.h">
<DependentUpon>MainPage.xaml</DependentUpon>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ApplicationDefinition Include="App.xaml">
<SubType>Designer</SubType>
</ApplicationDefinition>
<Page Include="MainPage.xaml">
<SubType>Designer</SubType>
</Page>
</ItemGroup>
<ItemGroup>
<AppxManifest Include="Package.appxmanifest">
<SubType>Designer</SubType>
</AppxManifest>
</ItemGroup>
<ItemGroup>
<Image Include="Assets\LockScreenLogo.scale-200.png" />
<Image Include="Assets\SplashScreen.scale-200.png" />
<Image Include="Assets\Square150x150Logo.scale-200.png" />
<Image Include="Assets\Square44x44Logo.scale-200.png" />
<Image Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png" />
<Image Include="Assets\StoreLogo.png" />
<Image Include="Assets\Wide310x150Logo.scale-200.png" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="App.cpp">
<DependentUpon>App.xaml</DependentUpon>
</ClCompile>
<ClCompile Include="MainPage.cpp">
<DependentUpon>MainPage.xaml</DependentUpon>
</ClCompile>
<ClCompile Include="FooClass.cpp">
<DependentUpon>FooClass.idl</DependentUpon>
</ClCompile>
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
</ItemGroup>
<ItemGroup>
<Midl Include="App.idl">
<DependentUpon>App.xaml</DependentUpon>
</Midl>
<Midl Include="MainPage.idl">
<DependentUpon>MainPage.xaml</DependentUpon>
</Midl>
<Midl Include="FooClass.idl">
</Midl>
</ItemGroup>
<ItemGroup>
<None Include="ExtensionHost.def" />
<None Include="packages.config" />
<None Include="PropertySheet.props" />
<Text Include="readme.txt">
<DeploymentContent>false</DeploymentContent>
</Text>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ExtensionComponent\ExtensionComponent.vcxproj">
<Project>{e1cf4226-b94e-4a86-b62f-02e1a2eb3a0d}</Project>
</ProjectReference>
</ItemGroup>
<!-- ========================== Other References ========================= -->
<ItemGroup>
<Reference Include="SampleExtensions">
<!-- <HintPath>$(OpenConsoleCommonOutDir)\SampleAppLib\SampleApp.winmd</HintPath> -->
<!-- <HintPath>..\..\bin\x64\Debug\SampleAppLib\SampleApp.winmd</HintPath> -->
<HintPath>..\..\x64\Debug\SampleExtensions\SampleExtensions.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
<!-- <Reference Include="Microsoft.Terminal.Core">
<HintPath>$(OpenConsoleCommonOutDir)TerminalCore\Microsoft.Terminal.Core.winmd</HintPath>
<HintPath>..\..\bin\x64\debug\TerminalCore\Microsoft.Terminal.Core.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
<Reference Include="Microsoft.Terminal.TerminalConnection">
<HintPath>$(OpenConsoleCommonOutDir)TerminalConnection\Microsoft.Terminal.TerminalConnection.winmd</HintPath>
<HintPath>..\..\bin\x64\debug\TerminalConnection\Microsoft.Terminal.TerminalConnection.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference> -->
<!-- <Reference Include="Microsoft.Terminal.Control">
<HintPath>$(OpenConsoleCommonOutDir)Microsoft.Terminal.Control\Microsoft.Terminal.Control.winmd</HintPath>
<HintPath>..\..\bin\x64\debug\Microsoft.Terminal.Control\Microsoft.Terminal.Control.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference> -->
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.targets')" />
<Import Project="..\..\packages\Microsoft.UI.Xaml.2.8.3\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('..\..\packages\Microsoft.UI.Xaml.2.8.3\build\native\Microsoft.UI.Xaml.targets')" />
<Import Project="..\..\packages\Microsoft.Web.WebView2.1.0.1661.34\build\native\Microsoft.Web.WebView2.targets" Condition="Exists('..\..\packages\Microsoft.Web.WebView2.1.0.1661.34\build\native\Microsoft.Web.WebView2.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>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}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.targets'))" />
</Target>
<ItemDefinitionGroup>
<!-- Definition the program database type has to come after Microsoft.Cpp.props or it will be
rewritten to /ZI (edit-and-continue) type every time. -->
<ClCompile>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<AdditionalDependencies>onecoreuap_apiset.lib;d3dcompiler.lib;dwmapi.lib;uxtheme.lib;shlwapi.lib;ntdll.lib;%(AdditionalDependencies)</AdditionalDependencies>
</Link>
</ItemDefinitionGroup>
</Project>

View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ApplicationDefinition Include="App.xaml" />
</ItemGroup>
<ItemGroup>
<Page Include="MainPage.xaml" />
</ItemGroup>
<ItemGroup>
<Midl Include="App.idl" />
<Midl Include="MainPage.idl" />
<Midl Include="FooClass.idl" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp" />
<ClCompile Include="App.cpp" />
<ClCompile Include="MainPage.cpp" />
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
</ItemGroup>
<ItemGroup>
<Image Include="Assets\Wide310x150Logo.scale-200.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\StoreLogo.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\Square150x150Logo.scale-200.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\Square44x44Logo.targetsize-24_altform-unplated.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\Square44x44Logo.scale-200.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\SplashScreen.scale-200.png">
<Filter>Assets</Filter>
</Image>
<Image Include="Assets\LockScreenLogo.scale-200.png">
<Filter>Assets</Filter>
</Image>
</ItemGroup>
<ItemGroup>
<AppxManifest Include="Package.appxmanifest" />
</ItemGroup>
<ItemGroup>
<Filter Include="Assets">
<UniqueIdentifier>{e48dc53e-40b1-40cb-970a-f89935452892}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<None Include="PropertySheet.props" />
<None Include="packages.config" />
<None Include="ExtensionHost.def" />
</ItemGroup>
<ItemGroup>
<Text Include="readme.txt" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,19 @@
#include "pch.h"
#include "FooClass.h"
#include "FooClass.g.cpp"
using namespace winrt;
using namespace Windows::UI::Xaml;
namespace winrt::ExtensionHost::implementation
{
int32_t FooClass::MyProperty()
{
return _MyProperty;
}
void FooClass::MyProperty(int32_t value)
{
_MyProperty = value;
}
}

View File

@@ -0,0 +1,24 @@
#pragma once
#include "FooClass.g.h"
namespace winrt::ExtensionHost::implementation
{
struct FooClass : FooClassT<FooClass>
{
FooClass() = default;
int32_t MyProperty();
void MyProperty(int32_t value);
private:
int32_t _MyProperty{ 42 };
};
}
namespace winrt::ExtensionHost::factory_implementation
{
struct FooClass : FooClassT<FooClass, implementation::FooClass>
{
};
}

View File

@@ -0,0 +1,9 @@
namespace ExtensionHost
{
[default_interface]
runtimeclass FooClass
{
FooClass();
Int32 MyProperty;
}
}

View File

@@ -0,0 +1,98 @@
#include "pch.h"
#include "MainPage.h"
#include "MainPage.g.cpp"
#include "../../packages/Microsoft.Windows.ImplementationLibrary.1.0.220201.1/include/wil/win32_helpers.h"
#include <appmodel.h>
#include <Windows.ApplicationModel.AppExtensions.h>
#include <winrt/ExtensionHost.h>
#include "FooClass.h"
#include <winrt/ExtensionComponent.h>
using namespace winrt;
using namespace Windows::UI::Xaml;
namespace winrt::ExtensionHost::implementation
{
int32_t MainPage::MyProperty()
{
throw hresult_not_implemented();
}
void MainPage::MyProperty(int32_t /* value */)
{
throw hresult_not_implemented();
}
static winrt::fire_and_forget _lookupCatalog() noexcept
{
co_await winrt::resume_background();
try
{
auto cat = winrt::Windows::ApplicationModel::AppExtensions::AppExtensionCatalog::Open(winrt::hstring{ L"microsoft.terminal.scratch" });
auto findOperation{ cat.FindAllAsync() };
auto extnList = findOperation.get();
for (const auto& extn : extnList)
{
extn;
}
}
catch (...)
{
// LOG_CAUGHT_EXCEPTION();
co_return;
}
/*ComPtr<IAppExtensionCatalogStatics> catalogStatics;
RETURN_IF_FAILED(Windows::Foundation::GetActivationFactory(HStringReference(RuntimeClass_Windows_ApplicationModel_AppExtensions_AppExtensionCatalog).Get(), &catalogStatics));
ComPtr<IAppExtensionCatalog> catalog;
RETURN_IF_FAILED(catalogStatics->Open(HStringReference(extensionName).Get(), &catalog));
ComPtr<IAsyncOperation<IVectorView<AppExtension*>*>> findOperation;
RETURN_IF_FAILED(catalog->FindAllAsync(&findOperation));
ComPtr<IVectorView<AppExtension*>> extensionList;
RETURN_IF_FAILED(wil::wait_for_completion_nothrow(findOperation.Get(), &extensionList));
UINT extensionCount;
RETURN_IF_FAILED(extensionList->get_Size(&extensionCount));
for (UINT index = 0; index < extensionCount; index++)
{
}*/
co_return;
}
void MainPage::ClickHandler(IInspectable const&, RoutedEventArgs const&)
{
myButton().Content(box_value(L"Clicked"));
auto hr = S_OK;
_lookupCatalog();
LOG_IF_FAILED(hr);
if (FAILED(hr))
return;
PWSTR id;
hr = TryCreatePackageDependency(nullptr, L"pfn", PACKAGE_VERSION{}, PackageDependencyProcessorArchitectures_None, PackageDependencyLifetimeKind_Process, nullptr, CreatePackageDependencyOptions_None, &id);
LOG_IF_FAILED(hr);
if (FAILED(hr))
return;
PACKAGEDEPENDENCY_CONTEXT ctx;
PWSTR packageFullName;
hr = AddPackageDependency(id, 1, AddPackageDependencyOptions_None, &ctx, &packageFullName);
LOG_IF_FAILED(hr);
if (FAILED(hr))
return;
winrt::ExtensionHost::FooClass myFoo{};
winrt::ExtensionComponent::ExtensionClass bar;
auto wat = bar.MyProperty();
wat *= 2;
myFoo.MyProperty(wat);
}
}

View File

@@ -0,0 +1,27 @@
#pragma once
#include "MainPage.g.h"
namespace winrt::ExtensionHost::implementation
{
struct MainPage : MainPageT<MainPage>
{
MainPage()
{
// Xaml objects should not call InitializeComponent during construction.
// See https://github.com/microsoft/cppwinrt/tree/master/nuget#initializecomponent
}
int32_t MyProperty();
void MyProperty(int32_t value);
void ClickHandler(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args);
};
}
namespace winrt::ExtensionHost::factory_implementation
{
struct MainPage : MainPageT<MainPage, implementation::MainPage>
{
};
}

View File

@@ -0,0 +1,9 @@
namespace ExtensionHost
{
[default_interface]
runtimeclass MainPage : Windows.UI.Xaml.Controls.Page
{
MainPage();
Int32 MyProperty;
}
}

View File

@@ -0,0 +1,17 @@
<Page x:Class="ExtensionHost.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="using:ExtensionHost"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<StackPanel HorizontalAlignment="Center"
VerticalAlignment="Center"
Orientation="Horizontal">
<Button x:Name="myButton"
Click="ClickHandler">
Click Me
</Button>
</StackPanel>
</Page>

View File

@@ -0,0 +1,77 @@
<?xml version="1.0" encoding="utf-8"?>
<Package
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:com="http://schemas.microsoft.com/appx/manifest/com/windows10"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4"
xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
xmlns:uap7="http://schemas.microsoft.com/appx/manifest/uap/windows10/7"
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
xmlns:uap15="http://schemas.microsoft.com/appx/manifest/uap/windows10/15"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
xmlns:desktop4="http://schemas.microsoft.com/appx/manifest/desktop/windows10/4"
xmlns:desktop5="http://schemas.microsoft.com/appx/manifest/desktop/windows10/5"
xmlns:desktop6="http://schemas.microsoft.com/appx/manifest/desktop/windows10/6"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
xmlns:virtualization="http://schemas.microsoft.com/appx/manifest/virtualization/windows10"
IgnorableNamespaces="uap mp rescap uap3 uap10 uap15 desktop6 virtualization">
<Identity
Name="b04bb6c4-61d6-4fc2-993f-b17d846d8e64"
Publisher="CN=migrie"
Version="1.0.0.0" />
<mp:PhoneIdentity PhoneProductId="b04bb6c4-61d6-4fc2-993f-b17d846d8e64" PhonePublisherId="00000000-0000-0000-0000-000000000000"/>
<Properties>
<DisplayName>ExtensionHost</DisplayName>
<PublisherDisplayName>migrie</PublisherDisplayName>
<Logo>Assets\StoreLogo.png</Logo>
<uap15:DependencyTarget>true</uap15:DependencyTarget>
</Properties>
<Dependencies>
<TargetDeviceFamily Name="Windows.Desktop" MinVersion="10.0.19041.0" MaxVersionTested="10.0.22621.0" />
</Dependencies>
<Resources>
<Resource Language="x-generate" />
</Resources>
<Applications>
<!-- <Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="ExtensionHost.App" uap10:TrustLevel="mediumIL"> -->
<Application Id="App" Executable="$targetnametoken$.exe" EntryPoint="ExtensionHost.App">
<uap:VisualElements DisplayName="ExtensionHost" Description="Project for a single page C++/WinRT Universal Windows Platform (UWP) app with no predefined layout"
Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" BackgroundColor="transparent">
<uap:DefaultTile Wide310x150Logo="Assets\Wide310x150Logo.png">
</uap:DefaultTile>
<uap:SplashScreen Image="Assets\SplashScreen.png" />
</uap:VisualElements>
<Extensions>
<uap3:Extension Category="windows.appExtension">
<uap3:AppExtension Name="com.terminal.scratch"
Id="ScratchIslandApp"
DisplayName="Scratch Island App"
Description="This is my test extension"
PublicFolder="Public">
<uap3:Properties>
<Implementation>ExtensionComponent.ExtensionClass</Implementation>
</uap3:Properties>
</uap3:AppExtension>
</uap3:Extension>
</Extensions>
</Application>
</Applications>
<Capabilities>
<Capability Name="internetClient" />
<rescap:Capability Name="runFullTrust" />
</Capabilities>
</Package>

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<!--
To customize common C++/WinRT project properties:
* right-click the project node
* expand the Common Properties item
* select the C++/WinRT property page
For more advanced scenarios, and complete documentation, please see:
https://github.com/Microsoft/cppwinrt/tree/master/nuget
-->
<PropertyGroup />
<ItemDefinitionGroup />
</Project>

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Windows.CppWinRT" version="2.0.230207.1" targetFramework="native" />
</packages>

View File

@@ -0,0 +1 @@
#include "pch.h"

View File

@@ -0,0 +1,27 @@
#pragma once
#include <windows.h>
#include <unknwn.h>
#include <restrictederrorinfo.h>
#include <hstring.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.ApplicationModel.Activation.h>
#include <winrt/Windows.UI.Xaml.h>
#include <winrt/Windows.UI.Xaml.Controls.h>
#include <winrt/Windows.UI.Xaml.Controls.Primitives.h>
#include <winrt/Windows.UI.Xaml.Data.h>
#include <winrt/Windows.UI.Xaml.Interop.h>
#include <winrt/Windows.UI.Xaml.Markup.h>
#include <winrt/Windows.UI.Xaml.Navigation.h>
#include <winrt/Windows.ApplicationModel.h>
#include <winrt/Windows.ApplicationModel.AppExtensions.h>
#include <appmodel.h>
#include <winrt/Microsoft.UI.Xaml.Controls.h>
#include <winrt/Microsoft.UI.Xaml.Controls.Primitives.h>
#include <winrt/Microsoft.UI.Xaml.XamlTypeInfo.h>
#include <winrt/Microsoft.Web.WebView2.Core.h>
#include <winrt/ExtensionComponent.h>

View File

@@ -0,0 +1,23 @@
========================================================================
C++/WinRT ExtensionHost Project Overview
========================================================================
This project demonstrates how to get started writing XAML apps directly
with standard C++, using the C++/WinRT SDK component and XAML compiler
support to generate implementation headers from interface (IDL) files.
These headers can then be used to implement the local Windows Runtime
classes referenced in the app's XAML pages.
Steps:
1. Create an interface (IDL) file to define any local Windows Runtime
classes referenced in the app's XAML pages.
2. Build the project once to generate 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/
========================================================================

View File

@@ -0,0 +1,19 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
namespace SampleExtensions
{
[default_interface]
runtimeclass SendInputArgs {
SendInputArgs(String input);
String Input { get; };
};
interface IExtension
{
Int32 DoTheThing();
Windows.UI.Xaml.FrameworkElement PaneContent { get; };
event Windows.Foundation.TypedEventHandler<Object, SendInputArgs> SendInputRequested;
};
}

View File

@@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ImportGroup Label="PropertySheets" />
<PropertyGroup Label="UserMacros" />
<!--
To customize common C++/WinRT project properties:
* right-click the project node
* expand the Common Properties item
* select the C++/WinRT property page
For more advanced scenarios, and complete documentation, please see:
https://github.com/Microsoft/cppwinrt/tree/master/nuget
-->
<PropertyGroup />
<ItemDefinitionGroup />
</Project>

View File

@@ -0,0 +1,3 @@
EXPORTS
DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE
DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE

View File

@@ -0,0 +1,158 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.props')" />
<PropertyGroup Label="Globals">
<CppWinRTOptimized>true</CppWinRTOptimized>
<CppWinRTRootNamespaceAutoMerge>true</CppWinRTRootNamespaceAutoMerge>
<CppWinRTGenerateWindowsMetadata>true</CppWinRTGenerateWindowsMetadata>
<MinimalCoreWin>true</MinimalCoreWin>
<ProjectGuid>{cf317032-4253-4726-b4f5-6d5cea2e75d4}</ProjectGuid>
<ProjectName>SampleExtensions</ProjectName>
<RootNamespace>SampleExtensions</RootNamespace>
<DefaultLanguage>en-US</DefaultLanguage>
<MinimumVisualStudioVersion>14.0</MinimumVisualStudioVersion>
<AppContainerApplication>true</AppContainerApplication>
<ApplicationType>Windows Store</ApplicationType>
<ApplicationTypeRevision>10.0</ApplicationTypeRevision>
<WindowsTargetPlatformVersion Condition=" '$(WindowsTargetPlatformVersion)' == '' ">10.0.22000.0</WindowsTargetPlatformVersion>
<WindowsTargetPlatformMinVersion>10.0.22000.0</WindowsTargetPlatformMinVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|ARM">
<Configuration>Debug</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM">
<Configuration>Release</Configuration>
<Platform>ARM</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '16.0'">v142</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '15.0'">v141</PlatformToolset>
<PlatformToolset Condition="'$(VisualStudioVersion)' == '14.0'">v140</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'" Label="Configuration">
<UseDebugLibraries>true</UseDebugLibraries>
<LinkIncremental>true</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'" Label="Configuration">
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<DesktopCompatible>true</DesktopCompatible>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets">
<Import Project="PropertySheet.props" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup />
<ItemDefinitionGroup>
<ClCompile>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<PrecompiledHeaderOutputFile>$(IntDir)pch.pch</PrecompiledHeaderOutputFile>
<WarningLevel>Level4</WarningLevel>
<AdditionalOptions>%(AdditionalOptions) /bigobj</AdditionalOptions>
<PreprocessorDefinitions>_WINRT_DLL;WIN32_LEAN_AND_MEAN;WINRT_LEAN_AND_MEAN;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalUsingDirectories>$(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories)</AdditionalUsingDirectories>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
<GenerateWindowsMetadata>false</GenerateWindowsMetadata>
<ModuleDefinitionFile>SampleExtensions.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
<ClInclude Include="SendInputArgs.h">
<DependentUpon>IExtension.idl</DependentUpon>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp">
<PrecompiledHeader>Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="SendInputArgs.cpp">
<DependentUpon>IExtension.idl</DependentUpon>
</ClCompile>
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
</ItemGroup>
<ItemGroup>
<Midl Include="IExtension.idl" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
<None Include="SampleExtensions.def" />
</ItemGroup>
<ItemGroup>
<None Include="PropertySheet.props" />
<Text Include="readme.txt">
<DeploymentContent>false</DeploymentContent>
</Text>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.targets')" />
</ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>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}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Windows.CppWinRT.2.0.230207.1\build\native\Microsoft.Windows.CppWinRT.targets'))" />
</Target>
</Project>

View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Resources">
<UniqueIdentifier>accd3aa8-1ba0-4223-9bbe-0c431709210b</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tga;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
<Filter Include="Generated Files">
<UniqueIdentifier>{926ab91d-31b4-48c3-b9a4-e681349f27f0}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp" />
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h" />
</ItemGroup>
<ItemGroup>
<Midl Include="IExtension.idl" />
</ItemGroup>
<ItemGroup>
<None Include="SampleExtensions.def" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<None Include="PropertySheet.props" />
</ItemGroup>
<ItemGroup>
<Text Include="readme.txt" />
</ItemGroup>
</Project>

View File

@@ -0,0 +1,7 @@
#include "pch.h"
#include "SendInputArgs.h"
#include "SendInputArgs.g.cpp"
namespace winrt::SampleExtensions::implementation
{
}

View File

@@ -0,0 +1,24 @@
#pragma once
#include "SendInputArgs.g.h"
namespace winrt::SampleExtensions::implementation
{
struct SendInputArgs : SendInputArgsT<SendInputArgs>
{
SendInputArgs() = default;
SendInputArgs(winrt::hstring input) :
_Input{ input } {};
winrt::hstring Input() { return _Input; }
private:
winrt::hstring _Input;
};
}
namespace winrt::SampleExtensions::factory_implementation
{
struct SendInputArgs : SendInputArgsT<SendInputArgs, implementation::SendInputArgs>
{
};
}

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Windows.CppWinRT" version="2.0.230207.1" targetFramework="native" />
</packages>

View File

@@ -0,0 +1 @@
#include "pch.h"

View File

@@ -0,0 +1,4 @@
#pragma once
#include <unknwn.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>

View File

@@ -0,0 +1,23 @@
========================================================================
C++/WinRT SampleExtensions 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/
========================================================================

View File

@@ -9,11 +9,13 @@
xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4"
xmlns:uap5="http://schemas.microsoft.com/appx/manifest/uap/windows10/5"
xmlns:uap7="http://schemas.microsoft.com/appx/manifest/uap/windows10/7"
xmlns:uap10="http://schemas.microsoft.com/appx/manifest/uap/windows10/10"
xmlns:uap15="http://schemas.microsoft.com/appx/manifest/foundation/windows10/15"
xmlns:desktop="http://schemas.microsoft.com/appx/manifest/desktop/windows10"
xmlns:desktop4="http://schemas.microsoft.com/appx/manifest/desktop/windows10/4"
xmlns:desktop5="http://schemas.microsoft.com/appx/manifest/desktop/windows10/5"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap mp rescap uap3">
IgnorableNamespaces="uap mp rescap uap3 uap10 uap15">
<Identity
Name="ScratchApplication"
@@ -24,6 +26,7 @@
<DisplayName>Sample App</DisplayName>
<PublisherDisplayName>A Lone Developer</PublisherDisplayName>
<Logo>Images\StoreLogo.png</Logo>
<uap15:DependencyTarget>true</uap15:DependencyTarget>
</Properties>
<Dependencies>
@@ -57,6 +60,15 @@
</uap:DefaultTile>
</uap:VisualElements>
<Extensions>
<uap3:Extension Category="windows.appExtensionHost">
<uap3:AppExtensionHost>
<uap3:Name>com.terminal.scratch</uap3:Name>
</uap3:AppExtensionHost>
</uap3:Extension>
</Extensions>
</Application>
</Applications>

View File

@@ -1,7 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
<PropertyGroup Label="NuGet Dependencies">
<TerminalMUX>true</TerminalMUX>
</PropertyGroup>
<Import Project="$(OpenConsoleDir)src\wap-common.build.pre.props" />
<Import Project="$(OpenConsoleDir)src\common.nugetversions.props" />
<PropertyGroup Label="Configuration">
<!--
These two properties are very important!
@@ -46,6 +51,7 @@
<Import Project="$(OpenConsoleDir)src\wap-common.build.post.props" />
<ItemGroup>
<ProjectReference Include="..\WindowExe\WindowExe.vcxproj" />
<ProjectReference Include="..\..\SampleExtensions\SampleExtensions.vcxproj" />
</ItemGroup>
<ItemGroup>
@@ -136,16 +142,6 @@
<!-- **END VC LIBS HACK** -->
<!-- This is required to get the package dependency in the AppXManifest. -->
<Import Project="..\..\..\packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('..\..\..\packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>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}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\..\packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets'))" />
</Target>
<Import Project="$(OpenConsoleDir)src\common.nugetversions.targets" />
<Import Project="$(SolutionDir)build\rules\CollectWildcardResources.targets" />
</Project>

View File

@@ -19,7 +19,8 @@
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<!-- Include the MUX Controls resources -->
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls" />
<XamlControlsResources xmlns="using:Microsoft.UI.Xaml.Controls"
ControlsResourcesVersion="Version2" />
<ResourceDictionary>
<!--

View File

@@ -0,0 +1,10 @@
// Copyright (c) Microsoft Corporation.
// Licensed under the MIT license.
namespace SampleApp
{
interface IExtension
{
Int32 DoTheThing();
};
}

View File

@@ -28,20 +28,23 @@ namespace winrt::SampleApp::implementation
{
auto settings = winrt::make_self<implementation::MySettings>();
auto connectionSettings{ TerminalConnection::ConptyConnection::CreateSettings(L"cmd.exe /k echo This TermControl is hosted in-proc...",
winrt::hstring{},
L"",
nullptr,
32,
80,
winrt::guid()) };
// auto connectionSettings{ TerminalConnection::ConptyConnection::CreateSettings(L"cmd.exe /k echo This TermControl is hosted in-proc...",
// winrt::hstring{},
// L"",
// nullptr,
// 32,
// 80,
// winrt::guid(),
// winrt::guid()) };
// "Microsoft.Terminal.TerminalConnection.ConptyConnection"
winrt::hstring myClass{ winrt::name_of<TerminalConnection::ConptyConnection>() };
TerminalConnection::ConnectionInformation connectInfo{ myClass, connectionSettings };
winrt::hstring myClass{ winrt::name_of<TerminalConnection::EchoConnection>() };
TerminalConnection::ConnectionInformation connectInfo{ myClass, nullptr };
TerminalConnection::ITerminalConnection conn{ TerminalConnection::ConnectionInformation::CreateConnection(connectInfo) };
Control::TermControl control{ *settings, *settings, conn };
_connection = TerminalConnection::ConnectionInformation::CreateConnection(connectInfo);
Control::TermControl control{ *settings, *settings, _connection };
// _connection.WriteInput(L"This is an in-proc echo connection!\r\n");
InProcContent().Children().Append(control);
}
@@ -58,4 +61,101 @@ namespace winrt::SampleApp::implementation
return { L"Sample Application" };
}
winrt::Windows::Foundation::IAsyncAction MyPage::_lookupCatalog() noexcept
{
co_await winrt::resume_background();
try
{
auto cat = winrt::Windows::ApplicationModel::AppExtensions::AppExtensionCatalog::Open(winrt::hstring{ L"com.terminal.scratch" });
auto findOperation{ cat.FindAllAsync() };
auto extnList = co_await findOperation;
for (const auto& extn : extnList)
{
DynamicDependency dynDep{};
auto hr = dynDep.Create(extn);
LOG_IF_FAILED(hr);
if (FAILED(hr))
{
_connection.WriteInput(L"Failed to create extension dependency\r\n");
continue;
}
auto f = dynDep.ResolveProperties();
bool result = co_await f;
if (result)
{
_connection.WriteInput(L"Successfully added package dependency to ");
_connection.WriteInput(dynDep._pfn);
_connection.WriteInput(L"\r\n");
this->_extensions.emplace_back(std::move(dynDep), nullptr);
}
else
{
_connection.WriteInput(L"Didnt find impelentation for ");
_connection.WriteInput(dynDep._pfn);
_connection.WriteInput(L"\r\n");
}
}
}
catch (...)
{
// LOG_CAUGHT_EXCEPTION();
co_return;
}
co_return;
}
void MyPage::ClickHandler(Windows::Foundation::IInspectable const&, Windows::UI::Xaml::RoutedEventArgs const&)
{
_lookupCatalog();
}
winrt::fire_and_forget MyPage::SendInputHandler(Windows::Foundation::IInspectable const&, winrt::SampleExtensions::SendInputArgs args)
{
co_await winrt::resume_foreground(Dispatcher());
_connection.WriteInput(args.Input());
_connection.WriteInput(L"\r\n");
}
winrt::fire_and_forget MyPage::ActivateInstanceButtonHandler(Windows::Foundation::IInspectable const&, Windows::UI::Xaml::RoutedEventArgs const&)
{
if (_extensions.size() == 0)
{
co_await _lookupCatalog();
}
co_await winrt::resume_foreground(Dispatcher());
auto hr = S_OK;
Windows::Foundation::IInspectable foo{ nullptr };
auto& extension = _extensions.at(0);
// auto className = winrt::hstring{ L"ExtensionComponent.Class" };
auto className = extension.app._implementationClassName;
const auto nameForAbi = static_cast<HSTRING>(winrt::get_abi(className));
hr = RoActivateInstance(nameForAbi, (::IInspectable**)winrt::put_abi(foo));
if (foo)
{
if (const auto& ext{ foo.try_as<winrt::SampleExtensions::IExtension>() })
{
extension.instance = ext;
auto oneOhOne = extension.instance.DoTheThing();
oneOhOne++;
auto fwe = extension.instance.PaneContent();
OutOfProcContent().Children().Append(fwe);
extension.instance.SendInputRequested({ get_weak(), &MyPage::SendInputHandler });
}
}
else
{
_connection.WriteInput(L"Failed to activate instance \r\n");
}
}
}

View File

@@ -8,6 +8,65 @@
namespace winrt::SampleApp::implementation
{
struct DynamicDependency
{
winrt::Windows::ApplicationModel::AppExtensions::AppExtension _extension{ nullptr };
PWSTR _dependencyId{ nullptr };
PACKAGEDEPENDENCY_CONTEXT _dependencyContext;
winrt::hstring _implementationClassName;
winrt::hstring _pfn;
HRESULT Create(const winrt::Windows::ApplicationModel::AppExtensions::AppExtension& extn)
{
_extension = extn;
_pfn = extn.Package().Id().FamilyName();
RETURN_IF_FAILED(TryCreatePackageDependency(nullptr,
_pfn.c_str(),
PACKAGE_VERSION{},
PackageDependencyProcessorArchitectures_None,
PackageDependencyLifetimeKind_Process,
nullptr,
CreatePackageDependencyOptions_None,
&_dependencyId));
RETURN_IF_FAILED(AddPackageDependency(_dependencyId,
1,
AddPackageDependencyOptions_None,
&_dependencyContext,
nullptr));
return S_OK;
}
winrt::Windows::Foundation::IAsyncOperation<bool> ResolveProperties()
{
auto properties = co_await _extension.GetExtensionPropertiesAsync();
if (properties)
{
if (const auto& s{ properties.TryLookup(L"Implementation") })
{
// s is another property set, so look it up in that instead
if (const auto& asSet{ s.try_as<winrt::Windows::Foundation::Collections::IPropertySet>() })
{
_implementationClassName = asSet.TryLookup(L"#text").as<winrt::hstring>();
co_return true;
}
}
}
co_return false;
}
~DynamicDependency() noexcept
{
//if (_dependencyContext)
//{
// RemovePackageDependency(_dependencyContext);
//}
}
};
struct Extension
{
DynamicDependency app;
winrt::SampleExtensions::IExtension instance{ nullptr };
};
struct MyPage : MyPageT<MyPage>
{
public:
@@ -17,8 +76,17 @@ namespace winrt::SampleApp::implementation
hstring Title();
void ClickHandler(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args);
winrt::fire_and_forget ActivateInstanceButtonHandler(Windows::Foundation::IInspectable const& sender, Windows::UI::Xaml::RoutedEventArgs const& args);
winrt::fire_and_forget SendInputHandler(Windows::Foundation::IInspectable const& sender, winrt::SampleExtensions::SendInputArgs args);
private:
friend struct MyPageT<MyPage>; // for Xaml to bind events
winrt::Windows::Foundation::IAsyncAction _lookupCatalog() noexcept;
winrt::Microsoft::Terminal::TerminalConnection::ITerminalConnection _connection{ nullptr };
std::vector<Extension> _extensions;
};
}

View File

@@ -23,8 +23,13 @@
<TextBox x:Name="GuidInput"
Width="400"
PlaceholderText="{}{guid here}" />
<Button Grid.Row="0">
Create
<Button Grid.Row="0"
Click="ClickHandler">
Do the thing
</Button>
<Button Grid.Row="0"
Click="ActivateInstanceButtonHandler">
RoActivateInstance
</Button>
</StackPanel>
@@ -46,13 +51,13 @@
VerticalAlignment="Stretch"
Background="#ff0000" />
<Grid x:Name="OutOfProcContent"
Grid.Column="1"
Padding="16"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="#0000ff" />
<StackPanel x:Name="OutOfProcContent"
Grid.Column="1"
Padding="16"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Background="#0000ff"
Orientation="Vertical" />
</Grid>

View File

@@ -20,6 +20,7 @@
<PropertyGroup Label="NuGet Dependencies">
<TerminalCppWinrt>true</TerminalCppWinrt>
<TerminalMUX>true</TerminalMUX>
</PropertyGroup>
<Import Project="..\..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
<Import Project="$(OpenConsoleDir)src\common.nugetversions.props" />
@@ -85,6 +86,7 @@
</Midl>
<Midl Include="SampleAppLogic.idl" />
<Midl Include="MySettings.idl" />
<Midl Include="IExtension.idl" />
<Midl Include="MyPage.idl">
<DependentUpon>MyPage.xaml</DependentUpon>
<SubType>Code</SubType>
@@ -137,6 +139,15 @@
<IsSystemReference>True</IsSystemReference>
</Reference>
<Reference Include="SampleExtensions">
<!-- <HintPath>$(OpenConsoleCommonOutDir)\SampleAppLib\SampleApp.winmd</HintPath> -->
<!-- <HintPath>..\..\bin\x64\Debug\SampleAppLib\SampleApp.winmd</HintPath> -->
<HintPath>..\..\..\x64\Debug\SampleExtensions\SampleExtensions.winmd</HintPath>
<IsWinMDFile>true</IsWinMDFile>
<Private>false</Private>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
</Reference>
</ItemGroup>
<!-- ====================== Compiler & Linker Flags ===================== -->
<ItemDefinitionGroup>
@@ -156,14 +167,6 @@
<!-- This -must- go after cppwinrt.build.post.props because that includes many VS-provided props including appcontainer.common.props, which stomps on what cppwinrt.targets did. -->
<Import Project="$(OpenConsoleDir)src\common.nugetversions.targets" />
<Import Project="$(OpenConsoleDir)packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('$(OpenConsoleDir)packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>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}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(OpenConsoleDir)packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(OpenConsoleDir)\packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets'))" />
</Target>
<!--
By default, the PRI file will contain resource paths beginning with the
project name. Since we enabled XBF embedding, this *also* includes App.xbf.

View File

@@ -13,6 +13,7 @@
</PropertyGroup>
<PropertyGroup Label="NuGet Dependencies">
<TerminalCppWinrt>true</TerminalCppWinrt>
<TerminalMUX>true</TerminalMUX>
</PropertyGroup>
<Import Project="..\..\..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
<Import Project="$(OpenConsoleDir)src\common.nugetversions.props" />
@@ -90,14 +91,6 @@
</Link>
</ItemDefinitionGroup>
<Import Project="$(OpenConsoleDir)packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('$(OpenConsoleDir)packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>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}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('$(OpenConsoleDir)\packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(OpenConsoleDir)\packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets'))" />
</Target>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>$(OpenConsoleDir)\dep\jsoncpp\json;%(AdditionalIncludeDirectories);</AdditionalIncludeDirectories>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Toolkit.Win32.UI.XamlApplication" version="6.1.3" targetFramework="native" />
<package id="Microsoft.UI.Xaml" version="2.7.3" targetFramework="native" />
<package id="Microsoft.UI.Xaml" version="2.8.3" targetFramework="native" />
<package id="Microsoft.Windows.CppWinRT" version="2.0.230207.1" targetFramework="native" />
</packages>

View File

@@ -50,6 +50,8 @@
#include <winrt/Microsoft.UI.Xaml.Controls.Primitives.h>
#include <winrt/Microsoft.UI.Xaml.XamlTypeInfo.h>
#include <winrt/Microsoft.Web.WebView2.Core.h>
#include <winrt/Windows.System.h>
// Including TraceLogging essentials for the binary
@@ -66,5 +68,11 @@ TRACELOGGING_DECLARE_PROVIDER(g_hSampleAppProvider);
#include <winrt/Microsoft.Terminal.Control.h>
#include <winrt/Microsoft.Terminal.TerminalConnection.h>
#include <winrt/Windows.ApplicationModel.h>
#include <winrt/Windows.ApplicationModel.AppExtensions.h>
#include <appmodel.h>
#include <winrt/SampleExtensions.h>
// Manually include til after we include Windows.Foundation to give it winrt superpowers
#include "til.h"

View File

@@ -18,6 +18,7 @@
<PropertyGroup Label="NuGet Dependencies">
<TerminalCppWinrt>true</TerminalCppWinrt>
<TerminalThemeHelpers>true</TerminalThemeHelpers>
<TerminalMUX>true</TerminalMUX>
</PropertyGroup>
<Import Project="..\..\..\common.openconsole.props" Condition="'$(OpenConsoleDir)'==''" />
@@ -142,14 +143,6 @@
<Import Project="$(OpenConsoleDir)src\cppwinrt.build.post.props" />
<Import Project="..\..\..\packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets" Condition="Exists('..\..\..\packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>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}.</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\..\..\packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\packages\Microsoft.UI.Xaml.2.7.3\build\native\Microsoft.UI.Xaml.targets'))" />
</Target>
<!-- Override GetPackagingOutputs to roll up all our dependencies.
This ensures that when the WAP packaging project asks what files go into
the package, we tell it.

View File

@@ -2,5 +2,5 @@
<packages>
<package id="Microsoft.Windows.CppWinRT" version="2.0.230207.1" targetFramework="native" />
<package id="Microsoft.Toolkit.Win32.UI.XamlApplication" version="6.1.3" targetFramework="native" />
<package id="Microsoft.UI.Xaml" version="2.7.3" targetFramework="native" />
<package id="Microsoft.UI.Xaml" version="2.8.3" targetFramework="native" />
</packages>

View File

@@ -23,6 +23,11 @@ namespace winrt::Microsoft::Terminal::TerminalConnection::implementation
if (wch < 0x20)
{
prettyPrint << L"^" << gsl::narrow_cast<wchar_t>(wch + 0x40);
if (wch == L'\n')
{
prettyPrint << L"\n";
}
}
else if (wch == 0x7f)
{

View File

@@ -3,7 +3,7 @@
<!--===============================================================================================================
SPECIAL SAUCE
===================================================================================================================
===================================================================================================================
This section contains any special sauce needed to implement Global NuGet Management.-->
<!--Since Global NuGet Management requires having a single [packages.config] file that's located in a special
@@ -58,7 +58,8 @@
See Microsoft.UI.Xaml.Additional.targets for more info.
Make sure to update WebView2PackageRoot above to match the WebView2 dependency version.
-->
<Import Project="$(MSBuildThisFileDirectory)..\build\rules\Microsoft.UI.Xaml.Additional.targets" Condition="'$(TerminalMUX)' == 'true'" />
<!-- <Import Project="$(MSBuildThisFileDirectory)..\build\rules\Microsoft.UI.Xaml.Additional.targets" Condition="'$(TerminalMUX)' == 'true'" /> -->
<Import Project="$(MSBuildThisFileDirectory)..\packages\Microsoft.Web.WebView2.1.0.1661.34\build\native\Microsoft.Web.WebView2.targets" Condition="'$(TerminalMUX)' == 'true' and Exists('$(MSBuildThisFileDirectory)..\packages\Microsoft.Web.WebView2.1.0.1661.34\build\native\Microsoft.Web.WebView2.targets')" />
<!-- WIL (so widely used that this one does not have a TerminalWIL opt-in property; it is automatic) -->
<Import Project="$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.ImplementationLibrary.1.0.220201.1\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('$(MSBuildThisFileDirectory)..\packages\Microsoft.Windows.ImplementationLibrary.1.0.220201.1\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />