Remove Kozani. Change of direction making the code obsolete and if oneday it's needed it's just a get revert away (#4219)

This commit is contained in:
Howard Kapustein 2024-02-20 19:23:56 -08:00 коммит произвёл GitHub
Родитель 370476e849
Коммит 9664ff3740
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
309 изменённых файлов: 1 добавлений и 15146 удалений

Просмотреть файл

@ -67,7 +67,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Framework.Math.Multiply", "
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.WindowsAppRuntime.Framework", "test\DynamicDependency\data\Microsoft.WindowsAppRuntime.Framework\Microsoft.WindowsAppRuntime.Framework.vcxproj", "{9C1A6C58-52D6-4514-9120-5C339C5DF4BE}"
ProjectSection(ProjectDependencies) = postProject
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5} = {400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}
{4410D374-A90C-4ADF-8B15-AA2AAE2636BF} = {4410D374-A90C-4ADF-8B15-AA2AAE2636BF}
{BC5E5A3E-E733-4388-8B00-F8495DA7C778} = {BC5E5A3E-E733-4388-8B00-F8495DA7C778}
EndProjectSection
@ -447,220 +446,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "VersionInfoTests", "test\Ve
{9C1A6C58-52D6-4514-9120-5C339C5DF4BE} = {9C1A6C58-52D6-4514-9120-5C339C5DF4BE}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Kozani", "Kozani", "{84F66485-4391-41C7-89CB-D5006EDF1383}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniAppGraph", "KozaniAppGraph", "{AC000276-4BCF-4E2B-B9C2-1B2716E61CC1}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniAppGraph", "dev\Kozani\KozaniAppGraph\KozaniAppGraph.vcxproj", "{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}"
ProjectSection(ProjectDependencies) = postProject
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniPackage", "KozaniPackage", "{BCBE250A-A453-476F-BF6A-9403FD86F16F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniSendToLocal", "KozaniSendToLocal", "{4F3C06A8-051A-4A33-A21D-3B2A721EEAE4}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniSendToRemote", "KozaniSendToRemote", "{C0859005-96FD-43BC-A4A5-E484CB5695F3}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniSettings", "KozaniSettings", "{98C89C59-1E82-4DFE-8DE2-3D014A035CC1}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniManager", "KozaniManager", "{B52327AB-EF90-41F1-AC87-44B297282C2F}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniRemoteManager", "KozaniRemoteManager", "{4C7121D8-9DBB-4D95-A15A-A22AEFB88264}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniHostRuntime", "KozaniHostRuntime", "{5539D334-67EE-42C6-927F-6DB412599CA4}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MakeMSIX", "MakeMSIX", "{443FCCC6-F263-4177-ACC3-2125D400F5D6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniPackage", "dev\Kozani\KozaniPackage\KozaniPackage.vcxproj", "{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}"
ProjectSection(ProjectDependencies) = postProject
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniSendToLocal", "dev\Kozani\KozaniSendToLocal\KozaniSendToLocal.vcxproj", "{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}"
ProjectSection(ProjectDependencies) = postProject
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniSendToRemote", "dev\Kozani\KozaniSendToRemote\KozaniSendToRemote.vcxproj", "{22747850-42DE-489B-BD0D-F59DB3DE25AD}"
ProjectSection(ProjectDependencies) = postProject
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniSettings", "dev\Kozani\KozaniSettings\KozaniSettings.vcxproj", "{467A8832-DD54-4977-B98B-31EDC019D2C5}"
ProjectSection(ProjectDependencies) = postProject
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MakeMSIX", "dev\Kozani\MakeMSIX\MakeMSIX.vcxproj", "{A732DE46-BE79-42E5-AC00-116D1B6A50A3}"
ProjectSection(ProjectDependencies) = postProject
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniManager", "dev\Kozani\KozaniManager\KozaniManager.vcxproj", "{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}"
ProjectSection(ProjectDependencies) = postProject
{22747850-42DE-489B-BD0D-F59DB3DE25AD} = {22747850-42DE-489B-BD0D-F59DB3DE25AD}
{3F28C3ED-2548-4530-8B6C-832FAE0E993D} = {3F28C3ED-2548-4530-8B6C-832FAE0E993D}
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F} = {5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4} = {CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniManagerInterface", "KozaniManagerInterface", "{80627A7C-717D-48F0-95AB-160CEFC20D92}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniRemoteManager", "dev\Kozani\KozaniRemoteManager\KozaniRemoteManager.vcxproj", "{A11C6664-F26A-4E71-B440-2E4E1BA09A93}"
ProjectSection(ProjectDependencies) = postProject
{133BFD48-FD50-4B35-9E0C-C6B362E13027} = {133BFD48-FD50-4B35-9E0C-C6B362E13027}
{3F28C3ED-2548-4530-8B6C-832FAE0E993D} = {3F28C3ED-2548-4530-8B6C-832FAE0E993D}
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E} = {B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7} = {EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniManagerProxyStub", "KozaniManagerProxyStub", "{35D09BD5-8D39-46A2-8847-9157D31B64E6}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniRemoteManagerInterface", "KozaniRemoteManagerInterface", "{9AD8ACDD-2AF8-474C-88DC-4B40202669AD}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniRemoteManagerProxyStub", "KozaniRemoteManagerProxyStub", "{242E84FC-E7DA-40FE-97B8-AF1C493224CD}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniManagerInterface", "dev\Kozani\KozaniManagerInterface\KozaniManagerInterface.vcxproj", "{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniManagerProxyStub", "dev\Kozani\KozaniManagerProxyStub\KozaniManagerProxyStub.vcxproj", "{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}"
ProjectSection(ProjectDependencies) = postProject
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F} = {5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniRemoteManagerInterface", "dev\Kozani\KozaniRemoteManagerInterface\KozaniRemoteManagerInterface.vcxproj", "{133BFD48-FD50-4B35-9E0C-C6B362E13027}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniRemoteManagerProxyStub", "dev\Kozani\KozaniRemoteManagerProxyStub\KozaniRemoteManagerProxyStub.vcxproj", "{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}"
ProjectSection(ProjectDependencies) = postProject
{133BFD48-FD50-4B35-9E0C-C6B362E13027} = {133BFD48-FD50-4B35-9E0C-C6B362E13027}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniHostRuntime", "dev\Kozani\KozaniHostRuntime\KozaniHostRuntime.vcxproj", "{84CC5D23-93D1-4319-BB94-FB7801E4F113}"
ProjectSection(ProjectDependencies) = postProject
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Kozani", "Kozani", "{9164C50F-E9CA-41BD-BCA9-5F30845FA257}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniAppGraphTests", "KozaniAppGraphTests", "{FAE129D9-49CA-4452-AEF8-DD9EB7BE0623}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniAppGraphTests", "test\Kozani\KozaniAppGraphTests\KozaniAppGraphTests.vcxproj", "{6C08783E-1423-4DCA-B78F-3E6B44165EEE}"
ProjectSection(ProjectDependencies) = postProject
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B} = {77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniHostRuntimeTests", "KozaniHostRuntimeTests", "{AC49CD56-F70E-4F93-B7CD-82E6289829FC}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniHostRuntimeTests", "test\Kozani\KozaniHostRuntimeTests\KozaniHostRuntimeTests.vcxproj", "{5E04D236-62ED-4748-970B-FE4C4DB9EF18}"
ProjectSection(ProjectDependencies) = postProject
{84CC5D23-93D1-4319-BB94-FB7801E4F113} = {84CC5D23-93D1-4319-BB94-FB7801E4F113}
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniManagerTests", "KozaniManagerTests", "{222529B2-BED9-42FD-96F5-4A7983AAFA1F}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniManagerTests", "test\Kozani\KozaniManagerTests\KozaniManagerTests.vcxproj", "{093A242F-9B02-4C75-8D2F-066DAFC681CB}"
ProjectSection(ProjectDependencies) = postProject
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F} = {5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B} = {829CDB09-EEFE-4188-A045-3FC6BE7BD96B}
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4} = {CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniPackageTests", "KozaniPackageTests", "{0ADD0153-9173-4CE9-BB21-A0658E9D6EB6}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniPackageTests", "test\Kozani\KozaniPackageTests\KozaniPackageTests.vcxproj", "{728166A0-3D4B-49A6-9606-68A103A86BDE}"
ProjectSection(ProjectDependencies) = postProject
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9} = {DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniRemoteManagerTests", "KozaniRemoteManagerTests", "{7AB588BF-4113-4C36-BE6C-BD8DAC1AF91C}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniRemoteManagerTests", "test\Kozani\KozaniRemoteManagerTests\KozaniRemoteManagerTests.vcxproj", "{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}"
ProjectSection(ProjectDependencies) = postProject
{133BFD48-FD50-4B35-9E0C-C6B362E13027} = {133BFD48-FD50-4B35-9E0C-C6B362E13027}
{A11C6664-F26A-4E71-B440-2E4E1BA09A93} = {A11C6664-F26A-4E71-B440-2E4E1BA09A93}
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E} = {B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniSendToLocalTests", "KozaniSendToLocalTests", "{7C26FDC5-2BDC-4C82-B31E-6EFAFB29EE0D}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniSendToLocalTests", "test\Kozani\KozaniSendToLocalTests\KozaniSendToLocalTests.vcxproj", "{064927AF-897A-4F93-8EBB-219B8A70532C}"
ProjectSection(ProjectDependencies) = postProject
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7} = {EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniSendToRemoteTests", "KozaniSendToRemoteTests", "{A8B83E3E-DAB3-48DB-8298-20E525C40F0E}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniSendToRemoteTests", "test\Kozani\KozaniSendToRemoteTests\KozaniSendToRemoteTests.vcxproj", "{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}"
ProjectSection(ProjectDependencies) = postProject
{22747850-42DE-489B-BD0D-F59DB3DE25AD} = {22747850-42DE-489B-BD0D-F59DB3DE25AD}
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniSettingsTests", "KozaniSettingsTests", "{73A8E7CE-EBB2-4524-ADE1-4C2BF2057FCC}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniSettingsTests", "test\Kozani\KozaniSettingsTests\KozaniSettingsTests.vcxproj", "{183603F5-540B-4286-A5F9-40CF20F62660}"
ProjectSection(ProjectDependencies) = postProject
{467A8832-DD54-4977-B98B-31EDC019D2C5} = {467A8832-DD54-4977-B98B-31EDC019D2C5}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "MakeMSIXTests", "MakeMSIXTests", "{B78ACB5B-3256-486E-B6D0-510C7DA7FBB0}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "MakeMSIXTests", "test\Kozani\MakeMSIXTests\MakeMSIXTests.vcxproj", "{91FA558E-ABE3-4F36-B611-927AC041F5D2}"
ProjectSection(ProjectDependencies) = postProject
{A732DE46-BE79-42E5-AC00-116D1B6A50A3} = {A732DE46-BE79-42E5-AC00-116D1B6A50A3}
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
EndProjectSection
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.FrameworkUdk.PackageReference", "eng\PackageReference\FrameworkUdk\Microsoft.FrameworkUdk.PackageReference.csproj", "{FD0CC14A-ED4B-4936-B68B-F31E58372E32}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniManagerRuntime", "KozaniManagerRuntime", "{49CF5AB7-304F-4C78-A098-A77B2931F64E}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniManagerRuntimeTests", "KozaniManagerRuntimeTests", "{357BE857-3E5D-475A-8A03-583F44E6513B}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniManagerRuntimeTests", "test\Kozani\KozaniManagerRuntimeTests\KozaniManagerRuntimeTests.vcxproj", "{4B4667B2-94DB-4A19-8270-0FDB1676C27B}"
ProjectSection(ProjectDependencies) = postProject
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5} = {400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}
{9C1A6C58-52D6-4514-9120-5C339C5DF4BE} = {9C1A6C58-52D6-4514-9120-5C339C5DF4BE}
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
{D4D29026-C15C-49A3-BEC5-4D477028962C} = {D4D29026-C15C-49A3-BEC5-4D477028962C}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniManagerRuntime", "dev\Kozani\KozaniManagerRuntime\KozaniManagerRuntime.vcxproj", "{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}"
ProjectSection(ProjectDependencies) = postProject
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F} = {5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4} = {CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}
EndProjectSection
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "data", "data", "{9CE0ED94-078A-405F-8599-BFC2D8D6E537}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniManager.Msix", "test\Kozani\data\KozaniManager.Msix\KozaniManager.Msix.vcxproj", "{D4D29026-C15C-49A3-BEC5-4D477028962C}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Common", "Common", "{0CF759F7-A84E-4BF4-BC99-414A14E27930}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Common", "dev\Kozani\Common\Common.vcxitems", "{431F959D-6323-4C1D-8BC3-78B1EB8B3554}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniRemoteManagerLauncher", "KozaniRemoteManagerLauncher", "{C5408A09-CDB4-41C1-8766-7677757EB7F2}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniRemoteManagerLauncher", "dev\Kozani\KozaniRemoteManagerLauncher\KozaniRemoteManagerLauncher.vcxproj", "{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}"
ProjectSection(ProjectDependencies) = postProject
{B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniRemoteManager.Msix", "test\Kozani\data\KozaniRemoteManager.Msix\KozaniRemoteManager.Msix.vcxproj", "{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "KozaniProtocol", "KozaniProtocol", "{82197F64-3A88-4C48-AEF9-7E62E71D75BB}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniProtocol", "dev\Kozani\KozaniProtocol\KozaniProtocol.vcxproj", "{3F28C3ED-2548-4530-8B6C-832FAE0E993D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "PackageManager", "PackageManager", "{380C8BE1-1868-4860-BD32-ADCD8683285D}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "API", "API", "{CC969A0B-9B01-479D-A563-C9866BCC6F83}"
@ -1840,358 +1627,6 @@ Global
{442FB943-1197-48FE-B3B6-8C1BCA1E81E4}.Release|x64.Build.0 = Release|x64
{442FB943-1197-48FE-B3B6-8C1BCA1E81E4}.Release|x86.ActiveCfg = Release|Win32
{442FB943-1197-48FE-B3B6-8C1BCA1E81E4}.Release|x86.Build.0 = Release|Win32
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Debug|Any CPU.ActiveCfg = Debug|x64
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Debug|Any CPU.Build.0 = Debug|x64
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Debug|ARM64.ActiveCfg = Debug|ARM64
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Debug|ARM64.Build.0 = Debug|ARM64
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Debug|x64.ActiveCfg = Debug|x64
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Debug|x64.Build.0 = Debug|x64
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Debug|x86.ActiveCfg = Debug|Win32
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Debug|x86.Build.0 = Debug|Win32
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Release|Any CPU.ActiveCfg = Release|x64
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Release|Any CPU.Build.0 = Release|x64
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Release|ARM64.ActiveCfg = Release|ARM64
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Release|ARM64.Build.0 = Release|ARM64
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Release|x64.ActiveCfg = Release|x64
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Release|x64.Build.0 = Release|x64
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Release|x86.ActiveCfg = Release|Win32
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}.Release|x86.Build.0 = Release|Win32
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Debug|Any CPU.ActiveCfg = Debug|x64
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Debug|Any CPU.Build.0 = Debug|x64
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Debug|ARM64.ActiveCfg = Debug|ARM64
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Debug|ARM64.Build.0 = Debug|ARM64
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Debug|x64.ActiveCfg = Debug|x64
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Debug|x64.Build.0 = Debug|x64
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Debug|x86.ActiveCfg = Debug|Win32
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Debug|x86.Build.0 = Debug|Win32
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Release|Any CPU.ActiveCfg = Release|x64
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Release|Any CPU.Build.0 = Release|x64
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Release|ARM64.ActiveCfg = Release|ARM64
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Release|ARM64.Build.0 = Release|ARM64
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Release|x64.ActiveCfg = Release|x64
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Release|x64.Build.0 = Release|x64
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Release|x86.ActiveCfg = Release|Win32
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}.Release|x86.Build.0 = Release|Win32
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Debug|Any CPU.ActiveCfg = Debug|x64
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Debug|Any CPU.Build.0 = Debug|x64
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Debug|ARM64.ActiveCfg = Debug|ARM64
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Debug|ARM64.Build.0 = Debug|ARM64
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Debug|x64.ActiveCfg = Debug|x64
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Debug|x64.Build.0 = Debug|x64
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Debug|x86.ActiveCfg = Debug|Win32
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Debug|x86.Build.0 = Debug|Win32
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Release|Any CPU.ActiveCfg = Release|x64
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Release|Any CPU.Build.0 = Release|x64
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Release|ARM64.ActiveCfg = Release|ARM64
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Release|ARM64.Build.0 = Release|ARM64
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Release|x64.ActiveCfg = Release|x64
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Release|x64.Build.0 = Release|x64
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Release|x86.ActiveCfg = Release|Win32
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7}.Release|x86.Build.0 = Release|Win32
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Debug|Any CPU.ActiveCfg = Debug|x64
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Debug|Any CPU.Build.0 = Debug|x64
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Debug|ARM64.ActiveCfg = Debug|ARM64
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Debug|ARM64.Build.0 = Debug|ARM64
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Debug|x64.ActiveCfg = Debug|x64
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Debug|x64.Build.0 = Debug|x64
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Debug|x86.ActiveCfg = Debug|Win32
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Debug|x86.Build.0 = Debug|Win32
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Release|Any CPU.ActiveCfg = Release|x64
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Release|Any CPU.Build.0 = Release|x64
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Release|ARM64.ActiveCfg = Release|ARM64
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Release|ARM64.Build.0 = Release|ARM64
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Release|x64.ActiveCfg = Release|x64
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Release|x64.Build.0 = Release|x64
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Release|x86.ActiveCfg = Release|Win32
{22747850-42DE-489B-BD0D-F59DB3DE25AD}.Release|x86.Build.0 = Release|Win32
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Debug|Any CPU.ActiveCfg = Debug|x64
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Debug|Any CPU.Build.0 = Debug|x64
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Debug|ARM64.ActiveCfg = Debug|ARM64
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Debug|ARM64.Build.0 = Debug|ARM64
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Debug|x64.ActiveCfg = Debug|x64
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Debug|x64.Build.0 = Debug|x64
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Debug|x86.ActiveCfg = Debug|Win32
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Debug|x86.Build.0 = Debug|Win32
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Release|Any CPU.ActiveCfg = Release|x64
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Release|Any CPU.Build.0 = Release|x64
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Release|ARM64.ActiveCfg = Release|ARM64
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Release|ARM64.Build.0 = Release|ARM64
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Release|x64.ActiveCfg = Release|x64
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Release|x64.Build.0 = Release|x64
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Release|x86.ActiveCfg = Release|Win32
{467A8832-DD54-4977-B98B-31EDC019D2C5}.Release|x86.Build.0 = Release|Win32
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Debug|Any CPU.ActiveCfg = Debug|x64
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Debug|Any CPU.Build.0 = Debug|x64
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Debug|ARM64.ActiveCfg = Debug|ARM64
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Debug|ARM64.Build.0 = Debug|ARM64
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Debug|x64.ActiveCfg = Debug|x64
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Debug|x64.Build.0 = Debug|x64
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Debug|x86.ActiveCfg = Debug|Win32
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Debug|x86.Build.0 = Debug|Win32
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Release|Any CPU.ActiveCfg = Release|x64
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Release|Any CPU.Build.0 = Release|x64
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Release|ARM64.ActiveCfg = Release|ARM64
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Release|ARM64.Build.0 = Release|ARM64
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Release|x64.ActiveCfg = Release|x64
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Release|x64.Build.0 = Release|x64
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Release|x86.ActiveCfg = Release|Win32
{A732DE46-BE79-42E5-AC00-116D1B6A50A3}.Release|x86.Build.0 = Release|Win32
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Debug|Any CPU.ActiveCfg = Debug|x64
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Debug|Any CPU.Build.0 = Debug|x64
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Debug|ARM64.ActiveCfg = Debug|ARM64
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Debug|ARM64.Build.0 = Debug|ARM64
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Debug|x64.ActiveCfg = Debug|x64
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Debug|x64.Build.0 = Debug|x64
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Debug|x86.ActiveCfg = Debug|Win32
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Debug|x86.Build.0 = Debug|Win32
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Release|Any CPU.ActiveCfg = Release|x64
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Release|Any CPU.Build.0 = Release|x64
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Release|ARM64.ActiveCfg = Release|ARM64
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Release|ARM64.Build.0 = Release|ARM64
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Release|x64.ActiveCfg = Release|x64
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Release|x64.Build.0 = Release|x64
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Release|x86.ActiveCfg = Release|Win32
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}.Release|x86.Build.0 = Release|Win32
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Debug|Any CPU.ActiveCfg = Debug|x64
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Debug|Any CPU.Build.0 = Debug|x64
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Debug|ARM64.ActiveCfg = Debug|ARM64
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Debug|ARM64.Build.0 = Debug|ARM64
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Debug|x64.ActiveCfg = Debug|x64
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Debug|x64.Build.0 = Debug|x64
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Debug|x86.ActiveCfg = Debug|Win32
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Debug|x86.Build.0 = Debug|Win32
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Release|Any CPU.ActiveCfg = Release|x64
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Release|Any CPU.Build.0 = Release|x64
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Release|ARM64.ActiveCfg = Release|ARM64
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Release|ARM64.Build.0 = Release|ARM64
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Release|x64.ActiveCfg = Release|x64
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Release|x64.Build.0 = Release|x64
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Release|x86.ActiveCfg = Release|Win32
{A11C6664-F26A-4E71-B440-2E4E1BA09A93}.Release|x86.Build.0 = Release|Win32
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Debug|Any CPU.ActiveCfg = Debug|x64
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Debug|Any CPU.Build.0 = Debug|x64
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Debug|ARM64.ActiveCfg = Debug|ARM64
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Debug|ARM64.Build.0 = Debug|ARM64
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Debug|x64.ActiveCfg = Debug|x64
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Debug|x64.Build.0 = Debug|x64
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Debug|x86.ActiveCfg = Debug|Win32
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Debug|x86.Build.0 = Debug|Win32
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Release|Any CPU.ActiveCfg = Release|x64
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Release|Any CPU.Build.0 = Release|x64
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Release|ARM64.ActiveCfg = Release|ARM64
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Release|ARM64.Build.0 = Release|ARM64
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Release|x64.ActiveCfg = Release|x64
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Release|x64.Build.0 = Release|x64
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Release|x86.ActiveCfg = Release|Win32
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}.Release|x86.Build.0 = Release|Win32
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Debug|Any CPU.ActiveCfg = Debug|x64
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Debug|Any CPU.Build.0 = Debug|x64
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Debug|ARM64.ActiveCfg = Debug|ARM64
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Debug|ARM64.Build.0 = Debug|ARM64
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Debug|x64.ActiveCfg = Debug|x64
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Debug|x64.Build.0 = Debug|x64
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Debug|x86.ActiveCfg = Debug|Win32
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Debug|x86.Build.0 = Debug|Win32
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Release|Any CPU.ActiveCfg = Release|x64
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Release|Any CPU.Build.0 = Release|x64
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Release|ARM64.ActiveCfg = Release|ARM64
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Release|ARM64.Build.0 = Release|ARM64
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Release|x64.ActiveCfg = Release|x64
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Release|x64.Build.0 = Release|x64
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Release|x86.ActiveCfg = Release|Win32
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}.Release|x86.Build.0 = Release|Win32
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Debug|Any CPU.ActiveCfg = Debug|x64
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Debug|Any CPU.Build.0 = Debug|x64
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Debug|ARM64.ActiveCfg = Debug|ARM64
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Debug|ARM64.Build.0 = Debug|ARM64
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Debug|x64.ActiveCfg = Debug|x64
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Debug|x64.Build.0 = Debug|x64
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Debug|x86.ActiveCfg = Debug|Win32
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Debug|x86.Build.0 = Debug|Win32
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Release|Any CPU.ActiveCfg = Release|x64
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Release|Any CPU.Build.0 = Release|x64
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Release|ARM64.ActiveCfg = Release|ARM64
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Release|ARM64.Build.0 = Release|ARM64
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Release|x64.ActiveCfg = Release|x64
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Release|x64.Build.0 = Release|x64
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Release|x86.ActiveCfg = Release|Win32
{133BFD48-FD50-4B35-9E0C-C6B362E13027}.Release|x86.Build.0 = Release|Win32
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Debug|Any CPU.ActiveCfg = Debug|x64
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Debug|Any CPU.Build.0 = Debug|x64
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Debug|ARM64.ActiveCfg = Debug|ARM64
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Debug|ARM64.Build.0 = Debug|ARM64
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Debug|x64.ActiveCfg = Debug|x64
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Debug|x64.Build.0 = Debug|x64
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Debug|x86.ActiveCfg = Debug|Win32
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Debug|x86.Build.0 = Debug|Win32
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Release|Any CPU.ActiveCfg = Release|x64
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Release|Any CPU.Build.0 = Release|x64
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Release|ARM64.ActiveCfg = Release|ARM64
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Release|ARM64.Build.0 = Release|ARM64
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Release|x64.ActiveCfg = Release|x64
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Release|x64.Build.0 = Release|x64
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Release|x86.ActiveCfg = Release|Win32
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E}.Release|x86.Build.0 = Release|Win32
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Debug|Any CPU.ActiveCfg = Debug|x64
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Debug|Any CPU.Build.0 = Debug|x64
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Debug|ARM64.ActiveCfg = Debug|ARM64
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Debug|ARM64.Build.0 = Debug|ARM64
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Debug|x64.ActiveCfg = Debug|x64
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Debug|x64.Build.0 = Debug|x64
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Debug|x86.ActiveCfg = Debug|Win32
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Debug|x86.Build.0 = Debug|Win32
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Release|Any CPU.ActiveCfg = Release|x64
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Release|Any CPU.Build.0 = Release|x64
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Release|ARM64.ActiveCfg = Release|ARM64
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Release|ARM64.Build.0 = Release|ARM64
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Release|x64.ActiveCfg = Release|x64
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Release|x64.Build.0 = Release|x64
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Release|x86.ActiveCfg = Release|Win32
{84CC5D23-93D1-4319-BB94-FB7801E4F113}.Release|x86.Build.0 = Release|Win32
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Debug|Any CPU.ActiveCfg = Debug|x64
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Debug|Any CPU.Build.0 = Debug|x64
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Debug|ARM64.ActiveCfg = Debug|ARM64
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Debug|ARM64.Build.0 = Debug|ARM64
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Debug|x64.ActiveCfg = Debug|x64
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Debug|x64.Build.0 = Debug|x64
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Debug|x86.ActiveCfg = Debug|Win32
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Debug|x86.Build.0 = Debug|Win32
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Release|Any CPU.ActiveCfg = Release|x64
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Release|Any CPU.Build.0 = Release|x64
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Release|ARM64.ActiveCfg = Release|ARM64
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Release|ARM64.Build.0 = Release|ARM64
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Release|x64.ActiveCfg = Release|x64
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Release|x64.Build.0 = Release|x64
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Release|x86.ActiveCfg = Release|Win32
{6C08783E-1423-4DCA-B78F-3E6B44165EEE}.Release|x86.Build.0 = Release|Win32
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Debug|Any CPU.ActiveCfg = Debug|x64
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Debug|Any CPU.Build.0 = Debug|x64
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Debug|ARM64.ActiveCfg = Debug|ARM64
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Debug|ARM64.Build.0 = Debug|ARM64
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Debug|x64.ActiveCfg = Debug|x64
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Debug|x64.Build.0 = Debug|x64
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Debug|x86.ActiveCfg = Debug|Win32
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Debug|x86.Build.0 = Debug|Win32
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Release|Any CPU.ActiveCfg = Release|x64
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Release|Any CPU.Build.0 = Release|x64
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Release|ARM64.ActiveCfg = Release|ARM64
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Release|ARM64.Build.0 = Release|ARM64
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Release|x64.ActiveCfg = Release|x64
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Release|x64.Build.0 = Release|x64
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Release|x86.ActiveCfg = Release|Win32
{5E04D236-62ED-4748-970B-FE4C4DB9EF18}.Release|x86.Build.0 = Release|Win32
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Debug|Any CPU.ActiveCfg = Debug|x64
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Debug|Any CPU.Build.0 = Debug|x64
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Debug|ARM64.ActiveCfg = Debug|ARM64
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Debug|ARM64.Build.0 = Debug|ARM64
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Debug|x64.ActiveCfg = Debug|x64
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Debug|x64.Build.0 = Debug|x64
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Debug|x86.ActiveCfg = Debug|Win32
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Debug|x86.Build.0 = Debug|Win32
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Release|Any CPU.ActiveCfg = Release|x64
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Release|Any CPU.Build.0 = Release|x64
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Release|ARM64.ActiveCfg = Release|ARM64
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Release|ARM64.Build.0 = Release|ARM64
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Release|x64.ActiveCfg = Release|x64
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Release|x64.Build.0 = Release|x64
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Release|x86.ActiveCfg = Release|Win32
{093A242F-9B02-4C75-8D2F-066DAFC681CB}.Release|x86.Build.0 = Release|Win32
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Debug|Any CPU.ActiveCfg = Debug|x64
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Debug|Any CPU.Build.0 = Debug|x64
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Debug|ARM64.ActiveCfg = Debug|ARM64
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Debug|ARM64.Build.0 = Debug|ARM64
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Debug|x64.ActiveCfg = Debug|x64
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Debug|x64.Build.0 = Debug|x64
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Debug|x86.ActiveCfg = Debug|Win32
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Debug|x86.Build.0 = Debug|Win32
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Release|Any CPU.ActiveCfg = Release|x64
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Release|Any CPU.Build.0 = Release|x64
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Release|ARM64.ActiveCfg = Release|ARM64
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Release|ARM64.Build.0 = Release|ARM64
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Release|x64.ActiveCfg = Release|x64
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Release|x64.Build.0 = Release|x64
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Release|x86.ActiveCfg = Release|Win32
{728166A0-3D4B-49A6-9606-68A103A86BDE}.Release|x86.Build.0 = Release|Win32
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Debug|Any CPU.ActiveCfg = Debug|x64
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Debug|Any CPU.Build.0 = Debug|x64
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Debug|ARM64.ActiveCfg = Debug|ARM64
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Debug|ARM64.Build.0 = Debug|ARM64
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Debug|x64.ActiveCfg = Debug|x64
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Debug|x64.Build.0 = Debug|x64
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Debug|x86.ActiveCfg = Debug|Win32
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Debug|x86.Build.0 = Debug|Win32
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Release|Any CPU.ActiveCfg = Release|x64
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Release|Any CPU.Build.0 = Release|x64
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Release|ARM64.ActiveCfg = Release|ARM64
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Release|ARM64.Build.0 = Release|ARM64
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Release|x64.ActiveCfg = Release|x64
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Release|x64.Build.0 = Release|x64
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Release|x86.ActiveCfg = Release|Win32
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB}.Release|x86.Build.0 = Release|Win32
{064927AF-897A-4F93-8EBB-219B8A70532C}.Debug|Any CPU.ActiveCfg = Debug|x64
{064927AF-897A-4F93-8EBB-219B8A70532C}.Debug|Any CPU.Build.0 = Debug|x64
{064927AF-897A-4F93-8EBB-219B8A70532C}.Debug|ARM64.ActiveCfg = Debug|ARM64
{064927AF-897A-4F93-8EBB-219B8A70532C}.Debug|ARM64.Build.0 = Debug|ARM64
{064927AF-897A-4F93-8EBB-219B8A70532C}.Debug|x64.ActiveCfg = Debug|x64
{064927AF-897A-4F93-8EBB-219B8A70532C}.Debug|x64.Build.0 = Debug|x64
{064927AF-897A-4F93-8EBB-219B8A70532C}.Debug|x86.ActiveCfg = Debug|Win32
{064927AF-897A-4F93-8EBB-219B8A70532C}.Debug|x86.Build.0 = Debug|Win32
{064927AF-897A-4F93-8EBB-219B8A70532C}.Release|Any CPU.ActiveCfg = Release|x64
{064927AF-897A-4F93-8EBB-219B8A70532C}.Release|Any CPU.Build.0 = Release|x64
{064927AF-897A-4F93-8EBB-219B8A70532C}.Release|ARM64.ActiveCfg = Release|ARM64
{064927AF-897A-4F93-8EBB-219B8A70532C}.Release|ARM64.Build.0 = Release|ARM64
{064927AF-897A-4F93-8EBB-219B8A70532C}.Release|x64.ActiveCfg = Release|x64
{064927AF-897A-4F93-8EBB-219B8A70532C}.Release|x64.Build.0 = Release|x64
{064927AF-897A-4F93-8EBB-219B8A70532C}.Release|x86.ActiveCfg = Release|Win32
{064927AF-897A-4F93-8EBB-219B8A70532C}.Release|x86.Build.0 = Release|Win32
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Debug|Any CPU.ActiveCfg = Debug|x64
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Debug|Any CPU.Build.0 = Debug|x64
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Debug|ARM64.ActiveCfg = Debug|ARM64
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Debug|ARM64.Build.0 = Debug|ARM64
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Debug|x64.ActiveCfg = Debug|x64
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Debug|x64.Build.0 = Debug|x64
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Debug|x86.ActiveCfg = Debug|Win32
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Debug|x86.Build.0 = Debug|Win32
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Release|Any CPU.ActiveCfg = Release|x64
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Release|Any CPU.Build.0 = Release|x64
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Release|ARM64.ActiveCfg = Release|ARM64
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Release|ARM64.Build.0 = Release|ARM64
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Release|x64.ActiveCfg = Release|x64
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Release|x64.Build.0 = Release|x64
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Release|x86.ActiveCfg = Release|Win32
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F}.Release|x86.Build.0 = Release|Win32
{183603F5-540B-4286-A5F9-40CF20F62660}.Debug|Any CPU.ActiveCfg = Debug|x64
{183603F5-540B-4286-A5F9-40CF20F62660}.Debug|Any CPU.Build.0 = Debug|x64
{183603F5-540B-4286-A5F9-40CF20F62660}.Debug|ARM64.ActiveCfg = Debug|ARM64
{183603F5-540B-4286-A5F9-40CF20F62660}.Debug|ARM64.Build.0 = Debug|ARM64
{183603F5-540B-4286-A5F9-40CF20F62660}.Debug|x64.ActiveCfg = Debug|x64
{183603F5-540B-4286-A5F9-40CF20F62660}.Debug|x64.Build.0 = Debug|x64
{183603F5-540B-4286-A5F9-40CF20F62660}.Debug|x86.ActiveCfg = Debug|Win32
{183603F5-540B-4286-A5F9-40CF20F62660}.Debug|x86.Build.0 = Debug|Win32
{183603F5-540B-4286-A5F9-40CF20F62660}.Release|Any CPU.ActiveCfg = Release|x64
{183603F5-540B-4286-A5F9-40CF20F62660}.Release|Any CPU.Build.0 = Release|x64
{183603F5-540B-4286-A5F9-40CF20F62660}.Release|ARM64.ActiveCfg = Release|ARM64
{183603F5-540B-4286-A5F9-40CF20F62660}.Release|ARM64.Build.0 = Release|ARM64
{183603F5-540B-4286-A5F9-40CF20F62660}.Release|x64.ActiveCfg = Release|x64
{183603F5-540B-4286-A5F9-40CF20F62660}.Release|x64.Build.0 = Release|x64
{183603F5-540B-4286-A5F9-40CF20F62660}.Release|x86.ActiveCfg = Release|Win32
{183603F5-540B-4286-A5F9-40CF20F62660}.Release|x86.Build.0 = Release|Win32
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Debug|Any CPU.ActiveCfg = Debug|x64
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Debug|Any CPU.Build.0 = Debug|x64
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Debug|ARM64.ActiveCfg = Debug|ARM64
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Debug|ARM64.Build.0 = Debug|ARM64
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Debug|x64.ActiveCfg = Debug|x64
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Debug|x64.Build.0 = Debug|x64
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Debug|x86.ActiveCfg = Debug|Win32
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Debug|x86.Build.0 = Debug|Win32
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Release|Any CPU.ActiveCfg = Release|x64
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Release|Any CPU.Build.0 = Release|x64
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Release|ARM64.ActiveCfg = Release|ARM64
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Release|ARM64.Build.0 = Release|ARM64
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Release|x64.ActiveCfg = Release|x64
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Release|x64.Build.0 = Release|x64
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Release|x86.ActiveCfg = Release|Win32
{91FA558E-ABE3-4F36-B611-927AC041F5D2}.Release|x86.Build.0 = Release|Win32
{FD0CC14A-ED4B-4936-B68B-F31E58372E32}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FD0CC14A-ED4B-4936-B68B-F31E58372E32}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FD0CC14A-ED4B-4936-B68B-F31E58372E32}.Debug|ARM64.ActiveCfg = Debug|x64
@ -2208,100 +1643,6 @@ Global
{FD0CC14A-ED4B-4936-B68B-F31E58372E32}.Release|x64.Build.0 = Release|x64
{FD0CC14A-ED4B-4936-B68B-F31E58372E32}.Release|x86.ActiveCfg = Release|x64
{FD0CC14A-ED4B-4936-B68B-F31E58372E32}.Release|x86.Build.0 = Release|x64
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Debug|Any CPU.ActiveCfg = Debug|x64
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Debug|Any CPU.Build.0 = Debug|x64
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Debug|ARM64.ActiveCfg = Debug|ARM64
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Debug|ARM64.Build.0 = Debug|ARM64
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Debug|x64.ActiveCfg = Debug|x64
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Debug|x64.Build.0 = Debug|x64
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Debug|x86.ActiveCfg = Debug|Win32
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Debug|x86.Build.0 = Debug|Win32
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Release|Any CPU.ActiveCfg = Release|x64
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Release|Any CPU.Build.0 = Release|x64
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Release|ARM64.ActiveCfg = Release|ARM64
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Release|ARM64.Build.0 = Release|ARM64
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Release|x64.ActiveCfg = Release|x64
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Release|x64.Build.0 = Release|x64
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Release|x86.ActiveCfg = Release|Win32
{4B4667B2-94DB-4A19-8270-0FDB1676C27B}.Release|x86.Build.0 = Release|Win32
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Debug|Any CPU.ActiveCfg = Debug|x64
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Debug|Any CPU.Build.0 = Debug|x64
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Debug|ARM64.ActiveCfg = Debug|ARM64
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Debug|ARM64.Build.0 = Debug|ARM64
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Debug|x64.ActiveCfg = Debug|x64
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Debug|x64.Build.0 = Debug|x64
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Debug|x86.ActiveCfg = Debug|Win32
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Debug|x86.Build.0 = Debug|Win32
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Release|Any CPU.ActiveCfg = Release|x64
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Release|Any CPU.Build.0 = Release|x64
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Release|ARM64.ActiveCfg = Release|ARM64
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Release|ARM64.Build.0 = Release|ARM64
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Release|x64.ActiveCfg = Release|x64
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Release|x64.Build.0 = Release|x64
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Release|x86.ActiveCfg = Release|Win32
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}.Release|x86.Build.0 = Release|Win32
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Debug|Any CPU.ActiveCfg = Debug|x64
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Debug|Any CPU.Build.0 = Debug|x64
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Debug|ARM64.ActiveCfg = Debug|x64
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Debug|ARM64.Build.0 = Debug|x64
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Debug|x64.ActiveCfg = Debug|x64
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Debug|x64.Build.0 = Debug|x64
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Debug|x86.ActiveCfg = Debug|Win32
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Debug|x86.Build.0 = Debug|Win32
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Release|Any CPU.ActiveCfg = Release|x64
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Release|Any CPU.Build.0 = Release|x64
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Release|ARM64.ActiveCfg = Release|x64
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Release|x64.ActiveCfg = Release|x64
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Release|x64.Build.0 = Release|x64
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Release|x86.ActiveCfg = Release|Win32
{D4D29026-C15C-49A3-BEC5-4D477028962C}.Release|x86.Build.0 = Release|Win32
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Debug|Any CPU.ActiveCfg = Debug|x64
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Debug|Any CPU.Build.0 = Debug|x64
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Debug|ARM64.ActiveCfg = Debug|ARM64
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Debug|ARM64.Build.0 = Debug|ARM64
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Debug|x64.ActiveCfg = Debug|x64
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Debug|x64.Build.0 = Debug|x64
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Debug|x86.ActiveCfg = Debug|Win32
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Debug|x86.Build.0 = Debug|Win32
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Release|Any CPU.ActiveCfg = Release|x64
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Release|Any CPU.Build.0 = Release|x64
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Release|ARM64.ActiveCfg = Release|ARM64
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Release|ARM64.Build.0 = Release|ARM64
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Release|x64.ActiveCfg = Release|x64
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Release|x64.Build.0 = Release|x64
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Release|x86.ActiveCfg = Release|Win32
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527}.Release|x86.Build.0 = Release|Win32
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Debug|Any CPU.ActiveCfg = Debug|x64
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Debug|Any CPU.Build.0 = Debug|x64
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Debug|ARM64.ActiveCfg = Debug|x64
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Debug|ARM64.Build.0 = Debug|x64
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Debug|x64.ActiveCfg = Debug|x64
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Debug|x64.Build.0 = Debug|x64
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Debug|x86.ActiveCfg = Debug|Win32
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Debug|x86.Build.0 = Debug|Win32
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Release|Any CPU.ActiveCfg = Release|x64
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Release|Any CPU.Build.0 = Release|x64
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Release|ARM64.ActiveCfg = Release|x64
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Release|x64.ActiveCfg = Release|x64
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Release|x64.Build.0 = Release|x64
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Release|x86.ActiveCfg = Release|Win32
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF}.Release|x86.Build.0 = Release|Win32
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Debug|Any CPU.ActiveCfg = Debug|x64
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Debug|Any CPU.Build.0 = Debug|x64
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Debug|ARM64.ActiveCfg = Debug|ARM64
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Debug|ARM64.Build.0 = Debug|ARM64
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Debug|x64.ActiveCfg = Debug|x64
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Debug|x64.Build.0 = Debug|x64
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Debug|x86.ActiveCfg = Debug|Win32
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Debug|x86.Build.0 = Debug|Win32
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Release|Any CPU.ActiveCfg = Release|x64
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Release|Any CPU.Build.0 = Release|x64
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Release|ARM64.ActiveCfg = Release|ARM64
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Release|ARM64.Build.0 = Release|ARM64
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Release|x64.ActiveCfg = Release|x64
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Release|x64.Build.0 = Release|x64
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Release|x86.ActiveCfg = Release|Win32
{3F28C3ED-2548-4530-8B6C-832FAE0E993D}.Release|x86.Build.0 = Release|Win32
{4A38CB80-3580-4960-9B31-3301058B7AFE}.Debug|Any CPU.ActiveCfg = Debug|x64
{4A38CB80-3580-4960-9B31-3301058B7AFE}.Debug|Any CPU.Build.0 = Debug|x64
{4A38CB80-3580-4960-9B31-3301058B7AFE}.Debug|ARM64.ActiveCfg = Debug|ARM64
@ -2531,65 +1872,6 @@ Global
{2A2D1131-273C-4E17-BCD3-8812170A4B95} = {448ED2E5-0B37-4D97-9E6B-8C10A507976A}
{E3EDEC7F-A24E-4766-BB1D-6BDFBA157C51} = {2A2D1131-273C-4E17-BCD3-8812170A4B95}
{442FB943-1197-48FE-B3B6-8C1BCA1E81E4} = {8630F7AA-2969-4DC9-8700-9B468C1DC21D}
{84F66485-4391-41C7-89CB-D5006EDF1383} = {448ED2E5-0B37-4D97-9E6B-8C10A507976A}
{AC000276-4BCF-4E2B-B9C2-1B2716E61CC1} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B} = {AC000276-4BCF-4E2B-B9C2-1B2716E61CC1}
{BCBE250A-A453-476F-BF6A-9403FD86F16F} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{4F3C06A8-051A-4A33-A21D-3B2A721EEAE4} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{C0859005-96FD-43BC-A4A5-E484CB5695F3} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{98C89C59-1E82-4DFE-8DE2-3D014A035CC1} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{B52327AB-EF90-41F1-AC87-44B297282C2F} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{4C7121D8-9DBB-4D95-A15A-A22AEFB88264} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{5539D334-67EE-42C6-927F-6DB412599CA4} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{443FCCC6-F263-4177-ACC3-2125D400F5D6} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9} = {BCBE250A-A453-476F-BF6A-9403FD86F16F}
{EAFEF760-EB96-436D-BDD0-C00B3C8BC8E7} = {4F3C06A8-051A-4A33-A21D-3B2A721EEAE4}
{22747850-42DE-489B-BD0D-F59DB3DE25AD} = {C0859005-96FD-43BC-A4A5-E484CB5695F3}
{467A8832-DD54-4977-B98B-31EDC019D2C5} = {98C89C59-1E82-4DFE-8DE2-3D014A035CC1}
{A732DE46-BE79-42E5-AC00-116D1B6A50A3} = {443FCCC6-F263-4177-ACC3-2125D400F5D6}
{829CDB09-EEFE-4188-A045-3FC6BE7BD96B} = {B52327AB-EF90-41F1-AC87-44B297282C2F}
{80627A7C-717D-48F0-95AB-160CEFC20D92} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{A11C6664-F26A-4E71-B440-2E4E1BA09A93} = {4C7121D8-9DBB-4D95-A15A-A22AEFB88264}
{35D09BD5-8D39-46A2-8847-9157D31B64E6} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{9AD8ACDD-2AF8-474C-88DC-4B40202669AD} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{242E84FC-E7DA-40FE-97B8-AF1C493224CD} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F} = {80627A7C-717D-48F0-95AB-160CEFC20D92}
{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4} = {35D09BD5-8D39-46A2-8847-9157D31B64E6}
{133BFD48-FD50-4B35-9E0C-C6B362E13027} = {9AD8ACDD-2AF8-474C-88DC-4B40202669AD}
{B9933E40-5A7C-482E-9FF3-FC06C1A7B37E} = {242E84FC-E7DA-40FE-97B8-AF1C493224CD}
{84CC5D23-93D1-4319-BB94-FB7801E4F113} = {5539D334-67EE-42C6-927F-6DB412599CA4}
{9164C50F-E9CA-41BD-BCA9-5F30845FA257} = {8630F7AA-2969-4DC9-8700-9B468C1DC21D}
{FAE129D9-49CA-4452-AEF8-DD9EB7BE0623} = {9164C50F-E9CA-41BD-BCA9-5F30845FA257}
{6C08783E-1423-4DCA-B78F-3E6B44165EEE} = {FAE129D9-49CA-4452-AEF8-DD9EB7BE0623}
{AC49CD56-F70E-4F93-B7CD-82E6289829FC} = {9164C50F-E9CA-41BD-BCA9-5F30845FA257}
{5E04D236-62ED-4748-970B-FE4C4DB9EF18} = {AC49CD56-F70E-4F93-B7CD-82E6289829FC}
{222529B2-BED9-42FD-96F5-4A7983AAFA1F} = {9164C50F-E9CA-41BD-BCA9-5F30845FA257}
{093A242F-9B02-4C75-8D2F-066DAFC681CB} = {222529B2-BED9-42FD-96F5-4A7983AAFA1F}
{0ADD0153-9173-4CE9-BB21-A0658E9D6EB6} = {9164C50F-E9CA-41BD-BCA9-5F30845FA257}
{728166A0-3D4B-49A6-9606-68A103A86BDE} = {0ADD0153-9173-4CE9-BB21-A0658E9D6EB6}
{7AB588BF-4113-4C36-BE6C-BD8DAC1AF91C} = {9164C50F-E9CA-41BD-BCA9-5F30845FA257}
{BEBB0FDA-31FB-4230-AA05-D6CAEB40D0EB} = {7AB588BF-4113-4C36-BE6C-BD8DAC1AF91C}
{7C26FDC5-2BDC-4C82-B31E-6EFAFB29EE0D} = {9164C50F-E9CA-41BD-BCA9-5F30845FA257}
{064927AF-897A-4F93-8EBB-219B8A70532C} = {7C26FDC5-2BDC-4C82-B31E-6EFAFB29EE0D}
{A8B83E3E-DAB3-48DB-8298-20E525C40F0E} = {9164C50F-E9CA-41BD-BCA9-5F30845FA257}
{5D76E52A-EF17-48FE-9C7A-1A21D8EF041F} = {A8B83E3E-DAB3-48DB-8298-20E525C40F0E}
{73A8E7CE-EBB2-4524-ADE1-4C2BF2057FCC} = {9164C50F-E9CA-41BD-BCA9-5F30845FA257}
{183603F5-540B-4286-A5F9-40CF20F62660} = {73A8E7CE-EBB2-4524-ADE1-4C2BF2057FCC}
{B78ACB5B-3256-486E-B6D0-510C7DA7FBB0} = {9164C50F-E9CA-41BD-BCA9-5F30845FA257}
{91FA558E-ABE3-4F36-B611-927AC041F5D2} = {B78ACB5B-3256-486E-B6D0-510C7DA7FBB0}
{49CF5AB7-304F-4C78-A098-A77B2931F64E} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{357BE857-3E5D-475A-8A03-583F44E6513B} = {9164C50F-E9CA-41BD-BCA9-5F30845FA257}
{4B4667B2-94DB-4A19-8270-0FDB1676C27B} = {357BE857-3E5D-475A-8A03-583F44E6513B}
{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5} = {49CF5AB7-304F-4C78-A098-A77B2931F64E}
{9CE0ED94-078A-405F-8599-BFC2D8D6E537} = {9164C50F-E9CA-41BD-BCA9-5F30845FA257}
{D4D29026-C15C-49A3-BEC5-4D477028962C} = {9CE0ED94-078A-405F-8599-BFC2D8D6E537}
{0CF759F7-A84E-4BF4-BC99-414A14E27930} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{431F959D-6323-4C1D-8BC3-78B1EB8B3554} = {0CF759F7-A84E-4BF4-BC99-414A14E27930}
{C5408A09-CDB4-41C1-8766-7677757EB7F2} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{45C50DA4-F2C7-4A4B-8493-50E5DF17B527} = {C5408A09-CDB4-41C1-8766-7677757EB7F2}
{A18E00C4-3668-4289-ABFC-D1DF330DA6BF} = {9CE0ED94-078A-405F-8599-BFC2D8D6E537}
{82197F64-3A88-4C48-AEF9-7E62E71D75BB} = {84F66485-4391-41C7-89CB-D5006EDF1383}
{3F28C3ED-2548-4530-8B6C-832FAE0E993D} = {82197F64-3A88-4C48-AEF9-7E62E71D75BB}
{380C8BE1-1868-4860-BD32-ADCD8683285D} = {448ED2E5-0B37-4D97-9E6B-8C10A507976A}
{CC969A0B-9B01-479D-A563-C9866BCC6F83} = {380C8BE1-1868-4860-BD32-ADCD8683285D}
{8A9A0C85-65A8-4BCA-A49E-45FC4FDBC7D2} = {CC969A0B-9B01-479D-A563-C9866BCC6F83}
@ -2615,18 +1897,15 @@ Global
dev\PushNotifications\PushNotifications.vcxitems*{103c0c23-7ba8-4d44-a63c-83488e2e3a81}*SharedItemsImports = 9
dev\EnvironmentManager\API\Microsoft.Process.Environment.vcxitems*{2f3fad1b-d3df-4866-a3a3-c2c777d55638}*SharedItemsImports = 9
test\inc\inc.vcxitems*{412d023e-8635-4ad2-a0ea-e19e08d36915}*SharedItemsImports = 4
dev\Kozani\Common\Common.vcxitems*{431f959d-6323-4c1d-8bc3-78b1eb8b3554}*SharedItemsImports = 9
test\inc\inc.vcxitems*{4b30c685-8490-440f-9879-a75d45daa361}*SharedItemsImports = 4
dev\UndockedRegFreeWinRT\UndockedRegFreeWinRT.vcxitems*{56371ca6-144b-4989-a4e9-391ad4fa7651}*SharedItemsImports = 9
test\inc\inc.vcxitems*{56a1d696-feda-4333-bf37-772ebececb10}*SharedItemsImports = 4
test\inc\inc.vcxitems*{5b2d17fe-c371-417f-860c-3d32397c2404}*SharedItemsImports = 4
test\inc\inc.vcxitems*{7c502995-59c3-483b-86ba-815985353633}*SharedItemsImports = 4
dev\Kozani\Common\Common.vcxitems*{829cdb09-eefe-4188-a045-3fc6be7bd96b}*SharedItemsImports = 4
dev\Common\Common.vcxitems*{8828053c-d6ec-4744-8624-f8c676c2d4df}*SharedItemsImports = 9
dev\Licensing\Licensing.vcxitems*{885a43fa-052d-4b0d-a2dc-13ee15796435}*SharedItemsImports = 9
dev\PackageManager\API\PackageManager.vcxitems*{8a9a0c85-65a8-4bca-a49e-45fc4fdbc7d2}*SharedItemsImports = 9
test\inc\inc.vcxitems*{8e52d7ea-a200-4a6b-ba74-8efb49468caf}*SharedItemsImports = 4
dev\Kozani\Common\Common.vcxitems*{a11c6664-f26a-4e71-b440-2e4e1ba09a93}*SharedItemsImports = 4
dev\AppNotifications\AppNotifications.vcxitems*{b4824897-88e0-4927-8fb9-e60106f01ed9}*SharedItemsImports = 9
test\inc\inc.vcxitems*{b567fe2e-3a03-48d0-b2b5-760cdec35891}*SharedItemsImports = 9
dev\Common\Common.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4

Просмотреть файл

@ -1,25 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<MSBuildAllProjects Condition="'$(MSBuildVersion)' == '' Or '$(MSBuildVersion)' &lt; '16.0'">$(MSBuildAllProjects);$(MSBuildThisFileFullPath)</MSBuildAllProjects>
<HasSharedItems>true</HasSharedItems>
<ItemsProjectGuid>{431f959d-6323-4c1d-8bc3-78b1eb8b3554}</ItemsProjectGuid>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ProjectCapability Include="SourceItemsFromImports" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(MSBuildThisFileDirectory)KozaniDvcProtocol.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(MSBuildThisFileDirectory)KozaniDvc-Constants.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)KozaniDvcProtocol.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)Logging.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)wil_kozani.h" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,12 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ClCompile Include="$(MSBuildThisFileDirectory)KozaniDvcProtocol.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="$(MSBuildThisFileDirectory)Logging.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)KozaniDvcProtocol.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)KozaniDvc-Constants.h" />
<ClInclude Include="$(MSBuildThisFileDirectory)wil_kozani.h" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,9 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
namespace Microsoft::Kozani::DVC::Constants
{
const char ConnectionIdSwitch[] = "-connectionId";
}

Просмотреть файл

@ -1,128 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include <pch.h>
#include <winrt\Windows.Storage.h>
#include "KozaniDvcProtocol.h"
namespace Microsoft::Kozani::DvcProtocol
{
std::string CreatePdu(UINT64 activityId, Dvc::ProtocolDataUnit::DataType type, const std::string& payload)
{
// Do not check payload.empty() because if the payload message only contains default values, it can be empty after SerializeAsString().
Dvc::ProtocolDataUnit pdu;
pdu.set_activity_id(activityId);
pdu.set_type(type);
if (!payload.empty())
{
pdu.set_data(std::move(payload));
}
std::string rawPdu{ pdu.SerializeAsString() };
// rawPdu should never be empty as the activityId must not be default value (0).
THROW_HR_IF(KOZANI_E_PDU_SERIALIZATION, rawPdu.empty());
return rawPdu;
}
std::string CreateConnectionAckPdu(PCSTR connectionId, UINT64 activityId)
{
Dvc::ConnectionAck ackMessage;
ackMessage.set_connection_id(connectionId);
return CreatePdu(activityId, Dvc::ProtocolDataUnit::ConnectionAck, ackMessage.SerializeAsString());
}
std::string SerializeActivatedEventArgs(winrt::Windows::ApplicationModel::Activation::IActivatedEventArgs& args)
{
switch (args.Kind())
{
case winrt::Windows::ApplicationModel::Activation::ActivationKind::Launch:
{
auto specificArgs{ args.as<winrt::Windows::ApplicationModel::Activation::LaunchActivatedEventArgs>() };
if (!specificArgs.Arguments().empty())
{
const std::string argsUtf8{ ::Microsoft::Utf8::ToUtf8(specificArgs.Arguments().c_str()) };
Dvc::LaunchActivationArgs launchArgs;
launchArgs.set_arguments(std::move(argsUtf8));
return launchArgs.SerializeAsString();
}
break;
}
case winrt::Windows::ApplicationModel::Activation::ActivationKind::File:
{
auto specificArgs{ args.as<winrt::Windows::ApplicationModel::Activation::FileActivatedEventArgs>() };
const std::string verbUtf8{ ::Microsoft::Utf8::ToUtf8(specificArgs.Verb().c_str()) };
Dvc::FileActivationArgs fileArgs;
fileArgs.set_verb(std::move(verbUtf8));
auto files{ specificArgs.Files() };
for (auto const& file : specificArgs.Files())
{
const std::string filePathUtf8{ ::Microsoft::Utf8::ToUtf8(file.Path().c_str()) };
fileArgs.add_file_paths(std::move(filePathUtf8));
}
return fileArgs.SerializeAsString();
}
case winrt::Windows::ApplicationModel::Activation::ActivationKind::Protocol:
{
auto specificArgs{ args.as<winrt::Windows::ApplicationModel::Activation::ProtocolActivatedEventArgs>() };
const std::string uriUtf8{ ::Microsoft::Utf8::ToUtf8(specificArgs.Uri().AbsoluteUri().c_str())};
Dvc::ProtocolActivationArgs protocolArgs;
protocolArgs.set_uri(std::move(uriUtf8));
return protocolArgs.SerializeAsString();
}
}
return std::string();
}
std::string CreateActivateAppRequestPdu(
UINT64 activityId,
PCWSTR appUserModelId,
winrt::Windows::ApplicationModel::Activation::ActivationKind activationKind,
const std::string& serializedArgs)
{
Dvc::ActivateAppRequest activateAppRequest;
activateAppRequest.set_activation_kind(static_cast<Dvc::ActivationKind>(activationKind));
const std::string appUserModelIdUtf8{ ::Microsoft::Utf8::ToUtf8(appUserModelId) };
activateAppRequest.set_app_user_model_id(std::move(appUserModelIdUtf8));
if (!serializedArgs.empty())
{
activateAppRequest.set_arguments(serializedArgs);
}
return CreatePdu(activityId, Dvc::ProtocolDataUnit::ActivateAppRequest, activateAppRequest.SerializeAsString());
}
std::string CreateActivateAppResultPdu(
UINT64 activityId,
HRESULT hr,
DWORD appProcessId,
bool isNewInstance,
const std::string& errorMessage)
{
Dvc::ActivateAppResult activateAppResult;
activateAppResult.set_hresult(hr);
if (SUCCEEDED(hr))
{
activateAppResult.set_process_id(appProcessId);
activateAppResult.set_is_new_instance(isNewInstance);
}
else if (!errorMessage.empty())
{
activateAppResult.set_error_message(errorMessage);
}
return CreatePdu(activityId, Dvc::ProtocolDataUnit::ActivateAppResult, activateAppResult.SerializeAsString());
}
std::string CreateAppTerminationNoticePdu(UINT64 activityId)
{
return CreatePdu(activityId, Dvc::ProtocolDataUnit::AppTerminationNotice);
}
}

Просмотреть файл

@ -1,37 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include <Windows.ApplicationModel.Activation.h>
#include <winrt/Windows.ApplicationModel.Activation.h>
#include <Microsoft.Utf8.h>
#include <Kozani.DVC.pb.h>
namespace Dvc = ::Microsoft::Kozani::DVC;
namespace Microsoft::Kozani::DvcProtocol
{
const char DvcChannelName[] = "KozaniDvc";
std::string CreatePdu(UINT64 activityId, Dvc::ProtocolDataUnit::DataType type, const std::string& payload = std::string());
std::string CreateConnectionAckPdu(PCSTR connectionId, UINT64 activityId);
std::string SerializeActivatedEventArgs(winrt::Windows::ApplicationModel::Activation::IActivatedEventArgs& args);
std::string CreateActivateAppRequestPdu(
UINT64 activityId,
PCWSTR appUserModelId,
winrt::Windows::ApplicationModel::Activation::ActivationKind activationKind,
const std::string& serializedArgs);
std::string CreateActivateAppResultPdu(
UINT64 activityId,
HRESULT hr,
DWORD appProcessId,
bool isNewInstance,
const std::string& errorMessage);
std::string CreateAppTerminationNoticePdu(UINT64 activityId);
}

Просмотреть файл

@ -1,68 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
// HRESULT used for logging non-error related information for tracing and debugging purpose with LOG_HR_MSG wil logging macro.
// According to https://learn.microsoft.com/en-us/windows/win32/com/codes-in-facility-itf, all the COM-defined FACILITY_ITF codes have a code value
// in the range of 0x0000-0x01FF. It is recommended that only code values in the range of 0x0200-0xFFFF be used for 3rd party FACILITY_ITF codes.
// HRESULT used for Kozani information logging purpose. Note that it does NOT mean there is an error. WIL logging requires a failure HRESULT as the input
// to the LOG_HR_MSG() macro. Passing in a successful HRESULT to the macro will cause fail fast crash in Debug build, or it will log XS_STATUS_ASSERTION_FAILURE
// in released build. So it has to be a failure HRESULT, although it does not mean failure in this case.
// 0x80040201 (-2147220991)
constexpr HRESULT KOZANI_E_INFO{ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0201) };
// Bad/malformatted PDU that cannot be parsed successfully.
// 0x80040202 (-2147220990)
constexpr HRESULT KOZANI_E_BAD_PDU{ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0202) };
// Unsupported ActivationKind enum value
// 0x80040203 (-2147220989)
constexpr HRESULT KOZANI_E_UNSUPPORTED_ACTIVATION_KIND{ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0203) };
// Bad/malformatted PDU that cannot be parsed successfully.
// 0x80040204 (-2147220988)
constexpr HRESULT KOZANI_E_PDU_SERIALIZATION{ MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x0204) };
#if RESULT_DIAGNOSTICS_LEVEL > 3
#define TRACELOGGING_FAILURE_CONTEXT(failure) \
TraceLoggingHResult(failure.hr, "HResult"), \
TraceLoggingString(failure.pszFile, "File"), \
TraceLoggingUInt32(failure.uLineNumber, "LineNumber"), \
TraceLoggingString(failure.pszFunction, "Function"), \
TraceLoggingWideString(failure.pszMessage, "Message"), \
TraceLoggingString(failure.pszCallContext, "CallingContext"), \
TraceLoggingString(failure.pszModule, "Module"), \
TraceLoggingPointer(failure.returnAddress, "Site"), \
TraceLoggingString(failure.pszCode, "Code") \
#else
#define TRACELOGGING_FAILURE_CONTEXT(failure) \
TraceLoggingHResult(failure.hr, "HResult"), \
TraceLoggingString(failure.pszFile, "File"), \
TraceLoggingUInt32(failure.uLineNumber, "LineNumber"), \
TraceLoggingWideString(failure.pszMessage, "Message") \
#endif
template<typename TProvider>
void __stdcall TraceFailureFromProvider(const wil::FailureInfo& failure) WI_NOEXCEPT
{
if (failure.hr == KOZANI_E_INFO)
{
TraceLoggingWrite(
TProvider::Provider(),
"Info",
TRACELOGGING_FAILURE_CONTEXT(failure));
}
else
{
TraceLoggingWrite(
TProvider::Provider(),
"Failure",
TRACELOGGING_FAILURE_CONTEXT(failure));
}
}

Просмотреть файл

@ -1,11 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
namespace wil
{
#if defined(_INC_WTSAPI) && !defined(__WIL_WTSAPI_WTSVIRTUALCHANNELCLOSE)
#define __WIL_WTSAPI_WTSVIRTUALCHANNELCLOSE
using unique_channel_handle = wil::unique_any_handle_null<decltype(&::WTSVirtualChannelClose), ::WTSVirtualChannelClose>;
#endif // __WIL_WTSAPI_WTSVIRTUALCHANNELCLOSE
}

Просмотреть файл

@ -1,6 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include "pch.h"
#include "KozaniAppGraph.h"

Просмотреть файл

@ -1,6 +0,0 @@
; Copyright (c) Microsoft Corporation. All rights reserved.
; Licensed under the MIT License. See LICENSE in the project root for license information.
EXPORTS
DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE
DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE

Просмотреть файл

@ -1,24 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#if !defined(KOZANIAPPGRAPH_H)
#define KOZANIAPPGRAPH_H
#include <appmodel.h>
#if defined(__cplusplus)
#define KOZANIAPPGRAPH_NOEXCEPT noexcept
#else
#define KOZANIAPPGRAPH_NOEXCEPT
#endif // defined(__cplusplus)
//TODO Flat-C API
// C++ friendly APIs
#if defined(__cplusplus)
//TODO C++ API
#endif // defined(__cplusplus)
#endif // KOZANIAPPGRAPH_H

Просмотреть файл

@ -1,17 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
namespace Microsoft.Kozani.AppGraph
{
[contractversion(1)]
apicontract AppGraphContract{};
[contract(AppGraphContract, 1)]
runtimeclass AppGraphManager
{
/// Get an AppGraph manager for the caller's context.
static AppGraphManager Open();
void TODO_ReplaceMeWithRealContent();
};
}

Просмотреть файл

@ -1,6 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include <winresrc.h>
#define VERSIONINFO_FILENAME "KozaniAppGraph.dll"
#include "eng\common\VersionInfo\AssemblyInfo.ver"

Просмотреть файл

@ -1,221 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props')" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{77D1D0EB-E4CA-4043-8CD1-72D30E19B65B}</ProjectGuid>
<RootNamespace>KozaniAppGraph</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<CppWinRTModernIDL>true</CppWinRTModernIDL>
<CppWinRTFastAbi>true</CppWinRTFastAbi>
<CppWinRTOptimized>true</CppWinRTOptimized>
<CppWinRTGenerateWindowsMetadata>true</CppWinRTGenerateWindowsMetadata>
<CppWinRTNamespaceMergeDepth>9</CppWinRTNamespaceMergeDepth>
</PropertyGroup>
<PropertyGroup>
<TargetName>KozaniAppGraph</TargetName>
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>(MSBuildThisFileDirectory);$(OutDir)\..\WindowsAppRuntime_DLL;$(RepoRoot)\dev\WindowsAppRuntime_Insights;$(RepoRoot)\dev\common;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<PreprocessorDefinitions>KOZANIAPPGRAPHDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableUAC>false</EnableUAC>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(OutDir)\..\WindowsAppRuntime_DLL</AdditionalLibraryDirectories>
<AdditionalDependencies>onecore.lib;onecoreuap.lib;Microsoft.WindowsAppRuntime.lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>Microsoft.WindowsAppRuntime.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Midl>
<AdditionalIncludeDirectories>$(RepoRoot)\dev\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</Midl>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Link>
<ModuleDefinitionFile>KozaniAppGraph.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Link>
<ModuleDefinitionFile>KozaniAppGraph.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
<ModuleDefinitionFile>KozaniAppGraph.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<ModuleDefinitionFile>KozaniAppGraph.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Link>
<ModuleDefinitionFile>KozaniAppGraph.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Link>
<ModuleDefinitionFile>KozaniAppGraph.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="framework.h" />
<ClInclude Include="KozaniAppGraph.h" />
<ClInclude Include="KozaniAppGraphActivity.h" />
<ClInclude Include="KozaniAppGraphTraceLogging.h" />
<ClInclude Include="M.K.AG.AppGraphManager.h" />
<ClInclude Include="pch.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp" />
<ClCompile Include="KozaniAppGraph.cpp" />
<ClCompile Include="KozaniAppGraphActivity.cpp" />
<ClCompile Include="KozaniAppGraphTraceLogging.cpp" />
<ClCompile Include="M.K.AG.AppGraphManager.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
</ItemGroup>
<ItemGroup>
<Midl Include="$(MSBuildThisFileDirectory)KozaniAppGraph.idl" />
</ItemGroup>
<ItemGroup>
<None Include="KozaniAppGraph.def" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="KozaniAppGraph.rc">
<AdditionalIncludeDirectories>$(RepoRoot)\dev\Common;$(RepoRoot);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets')" />
</ImportGroup>
<Target Name="MakeStrippedMetadata" AfterTargets="CppWinRTMergeProjectWinMDInputs" BeforeTargets="ClCompile">
<PropertyGroup>
<_MdMergeParameters>-v @(CppWinRTMdMergeMetadataDirectories->'-metadata_dir "%(RelativeDir)."', ' ')</_MdMergeParameters>
<_MdMergeParameters>$(_MdMergeParameters) -o "$(OutDir)StrippedWinMD" @(CppWinRTMdMergeInputs->'-i "%(Identity)"', ' ') -partial -n:9 -createPublicMetadata -transformExperimental:transform</_MdMergeParameters>
</PropertyGroup>
<Exec Command="$(MdMergePath)mdmerge $(_MdMergeParameters)" />
</Target>
<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('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,71 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="framework.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="pch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniAppGraph.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniAppGraphTraceLogging.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniAppGraphActivity.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="M.K.AG.AppGraphManager.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="pch.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KozaniAppGraph.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KozaniAppGraphActivity.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KozaniAppGraphTraceLogging.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="M.K.AG.AppGraphManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Midl Include="$(MSBuildThisFileDirectory)KozaniAppGraph.idl" />
</ItemGroup>
<ItemGroup>
<None Include="KozaniAppGraph.def">
<Filter>Source Files</Filter>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="KozaniAppGraph.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

Просмотреть файл

@ -1,8 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"
#include "KozaniAppGraphActivity.h"

Просмотреть файл

@ -1,10 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "KozaniAppGraphTraceLogging.h"
namespace Microsoft::Kozani::KozaniAppGraph::Activity
{
}

Просмотреть файл

@ -1,6 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"

Просмотреть файл

@ -1,42 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"
#include "Microsoft.TraceLogging.h"
bool __stdcall wilResultLoggingThreadCallback(const wil::FailureInfo& failure) noexcept;
GUID& GetLifetimeActivityId() noexcept;
class Microsoft_Kozani_AppGraph_TraceLogger final : public wil::TraceLoggingProvider
{
IMPLEMENT_TRACELOGGING_CLASS(
Microsoft_Kozani_AppGraph_TraceLogger,
"Microsoft.Kozani.AppGraph",
// 6b731824-91e7-47ae-ae99-e9dd6c6379dc
(0x6b731824, 0x91e7, 0x47ae, 0xae, 0x99, 0xe9, 0xdd, 0x6c, 0x63, 0x79, 0xdc));
public:
};
#define _MICROSOFT_KOZANI_APPGRAPH_WRITE_FAILURE_INFO \
TraceLoggingValue(static_cast<uint32_t>(failure.type), "Type"),\
TraceLoggingValue(failure.hr, "HResult"),\
TraceLoggingValue(failure.pszFile, "File"),\
TraceLoggingValue(failure.uLineNumber,"Line"),\
TraceLoggingValue(failure.pszModule, "Module"),\
TraceLoggingValue(failure.pszMessage,"Message")
// In the future, if the project includes multiple modules and threads, we could log that data as well from FailureInfo
// In the future and on need basis, we could log call stack as well
#define KozaniAppGraph_WriteEventWithActivity(_eventname_,_activityId_,...) \
TraceLoggingWriteActivity(\
Microsoft_Kozani_AppGraph_TraceLogger::Provider(),\
_eventname_,\
_activityId_,\
nullptr,\
_MICROSOFT_KOZANI_APPGRAPH_WRITE_FAILURE_INFO,\
__VA_ARGS__)

Просмотреть файл

@ -1,20 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.
#include "pch.h"
#include "M.K.AG.AppGraphManager.h"
#include "Microsoft.Kozani.AppGraph.AppGraphManager.g.cpp"
namespace winrt::Microsoft::Kozani::AppGraph::implementation
{
winrt::Microsoft::Kozani::AppGraph::AppGraphManager AppGraphManager::Open()
{
throw hresult_not_implemented();
}
void AppGraphManager::TODO_ReplaceMeWithRealContent()
{
throw hresult_not_implemented();
}
}

Просмотреть файл

@ -1,23 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.
#pragma once
#include "Microsoft.Kozani.AppGraph.AppGraphManager.g.h"
namespace winrt::Microsoft::Kozani::AppGraph::implementation
{
struct AppGraphManager : AppGraphManagerT<AppGraphManager>
{
AppGraphManager() = default;
static winrt::Microsoft::Kozani::AppGraph::AppGraphManager Open();
void TODO_ReplaceMeWithRealContent();
};
}
namespace winrt::Microsoft::Kozani::AppGraph::factory_implementation
{
struct AppGraphManager : AppGraphManagerT<AppGraphManager, implementation::AppGraphManager>
{
};
}

Просмотреть файл

@ -1,27 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include "pch.h"
// Including this file once per binary will automatically opt WIL error handling macros into calling RoOriginateError when they
// begin logging a new error. This greatly improves the debuggability of errors that propagate before a failfast.
#include <wil/result_originate.h>
BOOL APIENTRY DllMain(HMODULE hmodule, DWORD reason, LPVOID reserved)
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls(hmodule);
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
// Give WIL a crack at DLLMain processing
// See DLLMain() in wil/result_macros.h for why
wil::DLLMain(hmodule, reason, reserved);
return TRUE;
}

Просмотреть файл

@ -1,30 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include <unknwn.h>
#include <appmodel.h>
#include <shobjidl.h>
#include <thread>
#include <mutex>
#include <wil/cppwinrt.h>
#include <wil/token_helpers.h>
#include <wil/win32_helpers.h>
#include <wil/result.h>
#include <wil/com.h>
#include <wil/resource.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.ApplicationModel.h>
#include <winrt/Windows.ApplicationModel.AppExtensions.h>
#include <winrt/Windows.Management.Deployment.h>
#include <appmodel.identity.h>
#include <security.integritylevel.h>
#include "kozaniappgraph.h"

Просмотреть файл

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Build.Tasks.Git" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.SourceLink.Common" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.SourceLink.GitHub" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.Windows.CppWinRT" version="2.0.230706.1" targetFramework="native" />
<package id="Microsoft.Windows.ImplementationLibrary" version="1.0.220914.1" targetFramework="native" />
</packages>

Просмотреть файл

@ -1,4 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include "pch.h"

Просмотреть файл

@ -1,20 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
// pch.h: This is a precompiled header file.
// Files listed below are compiled only once, improving build performance for future builds.
// This also affects IntelliSense performance, including code completion and many code browsing features.
// However, files listed here are ALL re-compiled if any one of them is updated between builds.
// Do not add files here that you will be updating frequently as this negates the performance advantage.
#ifndef PCH_H
#define PCH_H
#include <WindowsAppRuntimeInsights.h>
// add headers that you want to pre-compile here
#include "framework.h"
#include "KozaniAppGraphActivity.h"
#include "KozaniAppGraphTraceLogging.h"
#endif //PCH_H

Просмотреть файл

@ -1,6 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include "pch.h"
#include "KozaniHostRuntime.h"

Просмотреть файл

@ -1,4 +0,0 @@
; Copyright (c) Microsoft Corporation. All rights reserved.
; Licensed under the MIT License. See LICENSE in the project root for license information.
EXPORTS

Просмотреть файл

@ -1,24 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#if !defined(KOZANIHOSTRUNTIME_H)
#define KOZANIHOSTRUNTIME_H
#include <appmodel.h>
#if defined(__cplusplus)
#define KOZANIHOSTRUNTIME_NOEXCEPT noexcept
#else
#define KOZANIHOSTRUNTIME_NOEXCEPT
#endif // defined(__cplusplus)
//TODO Flat-C API
// C++ friendly APIs
#if defined(__cplusplus)
//TODO C++ API
#endif // defined(__cplusplus)
#endif // KOZANIHOSTRUNTIME_H

Просмотреть файл

@ -1,17 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
namespace Microsoft.Kozani.HostRuntime
{
[contractversion(1)]
apicontract HostRuntimeContract{};
[contract(HostRuntimeContract, 1)]
runtimeclass HostRuntimeManager
{
/// Get a HostRuntime manager for the caller's context.
static HostRuntimeManager Open();
void TODO_ReplaceMeWithRealContent();
};
}

Просмотреть файл

@ -1,6 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include <winresrc.h>
#define VERSIONINFO_FILENAME "KozaniHostRuntime.dll"
#include "eng\common\VersionInfo\AssemblyInfo.ver"

Просмотреть файл

@ -1,216 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props')" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{84CC5D23-93D1-4319-BB94-FB7801E4F113}</ProjectGuid>
<RootNamespace>KozaniHostRuntime</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<CppWinRTModernIDL>true</CppWinRTModernIDL>
<CppWinRTFastAbi>true</CppWinRTFastAbi>
<CppWinRTOptimized>true</CppWinRTOptimized>
<CppWinRTGenerateWindowsMetadata>false</CppWinRTGenerateWindowsMetadata>
<CppWinRTNamespaceMergeDepth>9</CppWinRTNamespaceMergeDepth>
</PropertyGroup>
<PropertyGroup>
<TargetName>KozaniHostRuntime</TargetName>
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>(MSBuildThisFileDirectory);$(OutDir)\..\WindowsAppRuntime_DLL;$(RepoRoot)\dev\WindowsAppRuntime_Insights;$(RepoRoot)\dev\common;$(IntDir);$(OutDir)..\KozaniManagerProxyStub;$(RepoRoot)\dev\Kozani\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<PreprocessorDefinitions>KOZANIHOSTRUNTIMEDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableUAC>false</EnableUAC>
<AdditionalDependencies>onecore.lib;onecoreuap.lib;Microsoft.WindowsAppRuntime.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(OutDir)\..\WindowsAppRuntime_DLL</AdditionalLibraryDirectories>
<DelayLoadDLLs>Microsoft.WindowsAppRuntime.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Midl>
<AdditionalIncludeDirectories>$(RepoRoot)\dev\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</Midl>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Link>
<ModuleDefinitionFile>KozaniHostRuntime.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Link>
<ModuleDefinitionFile>KozaniHostRuntime.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
<ModuleDefinitionFile>KozaniHostRuntime.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<ModuleDefinitionFile>KozaniHostRuntime.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Link>
<ModuleDefinitionFile>KozaniHostRuntime.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Link>
<ModuleDefinitionFile>KozaniHostRuntime.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="framework.h" />
<ClInclude Include="KozaniHostRuntime.h" />
<ClInclude Include="KozaniHostRuntimeActivity.h" />
<ClInclude Include="KozaniHostRuntimeTraceLogging.h" />
<ClInclude Include="pch.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp" />
<ClCompile Include="KozaniHostRuntime.cpp" />
<ClCompile Include="KozaniHostRuntimeActivity.cpp" />
<ClCompile Include="KozaniHostRuntimeTraceLogging.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Midl Include="$(MSBuildThisFileDirectory)KozaniHostRuntime.idl" />
</ItemGroup>
<ItemGroup>
<None Include="KozaniHostRuntime.def" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="KozaniHostRuntime.rc">
<AdditionalIncludeDirectories>$(RepoRoot)\dev\Common;$(RepoRoot);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\KozaniManagerRuntime\KozaniManagerRuntime.vcxproj">
<Project>{400ed5ec-4530-4adb-8dce-9d1e6708a1f5}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.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('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,68 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="framework.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="pch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniHostRuntime.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniHostRuntimeTraceLogging.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniHostRuntimeActivity.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="pch.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KozaniHostRuntime.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KozaniHostRuntimeTraceLogging.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KozaniHostRuntimeActivity.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Midl Include="$(MSBuildThisFileDirectory)KozaniHostRuntime.idl" />
</ItemGroup>
<ItemGroup>
<None Include="KozaniHostRuntime.def">
<Filter>Source Files</Filter>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="KozaniHostRuntime.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<Natvis Include="$(MSBuildThisFileDirectory)..\..\natvis\wil.natvis" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,8 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"
#include "KozaniHostRuntimeActivity.h"

Просмотреть файл

@ -1,10 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "KozaniHostRuntimeTraceLogging.h"
namespace Microsoft::Kozani::KozaniHostRuntime::Activity
{
}

Просмотреть файл

@ -1,6 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"

Просмотреть файл

@ -1,42 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"
#include "Microsoft.TraceLogging.h"
bool __stdcall wilResultLoggingThreadCallback(const wil::FailureInfo& failure) noexcept;
GUID& GetLifetimeActivityId() noexcept;
class Microsoft_Kozani_HostRuntime_TraceLogger final : public wil::TraceLoggingProvider
{
IMPLEMENT_TRACELOGGING_CLASS(
Microsoft_Kozani_HostRuntime_TraceLogger,
"Microsoft.Kozani.HostRuntime",
// 7896ccbc-b8cd-41fe-a506-5f4e7c60a97f
(0x7896ccbc, 0xb8cd, 0x41fe, 0xa5, 0x06, 0x5f, 0x4e, 0x7c, 0x60, 0xa9, 0x7f));
public:
};
#define _MICROSOFT_KOZANI_HOSTRUNTIME_WRITE_FAILURE_INFO \
TraceLoggingValue(static_cast<uint32_t>(failure.type), "Type"),\
TraceLoggingValue(failure.hr, "HResult"),\
TraceLoggingValue(failure.pszFile, "File"),\
TraceLoggingValue(failure.uLineNumber,"Line"),\
TraceLoggingValue(failure.pszModule, "Module"),\
TraceLoggingValue(failure.pszMessage,"Message")
// In the future, if the project includes multiple modules and threads, we could log that data as well from FailureInfo
// In the future and on need basis, we could log call stack as well
#define KozaniHostRuntime_WriteEventWithActivity(_eventname_,_activityId_,...) \
TraceLoggingWriteActivity(\
Microsoft_Kozani_HostRuntime_TraceLogger::Provider(),\
_eventname_,\
_activityId_,\
nullptr,\
_MICROSOFT_KOZANI_HOSTRUNTIME_WRITE_FAILURE_INFO,\
__VA_ARGS__)

Просмотреть файл

@ -1,32 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include <unknwn.h>
#include <appmodel.h>
#include <shobjidl.h>
#include <thread>
#include <mutex>
#include <wil/cppwinrt.h>
#include <wil/token_helpers.h>
#include <wil/win32_helpers.h>
#include <wil/result.h>
#include <wil/com.h>
#include <wil/resource.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.ApplicationModel.h>
#include <winrt/Windows.ApplicationModel.Activation.h>
#include <winrt/Windows.ApplicationModel.AppExtensions.h>
#include <winrt/Windows.Management.Deployment.h>
#include <winrt/Windows.Storage.h>
#include <appmodel.identity.h>
#include <security.integritylevel.h>
#include "kozanihostruntime.h"

Просмотреть файл

@ -1,256 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include "pch.h"
#include <winrt/Windows.Data.Xml.Dom.h>
// Including this file once per binary will automatically opt WIL error handling macros into calling RoOriginateError when they
// begin logging a new error. This greatly improves the debuggability of errors that propagate before a failfast.
#include <wil/result_originate.h>
#include <KozaniManager_h.h>
#include "winrt/Microsoft.Kozani.ManagerRuntime.h"
#include "Logging.h"
// Uncomment to enable wait for debugger when the local variant app is launched. We can attach debugger to the KozaniHostRuntime.exe while it is waiting.
//#define WAIT_FOR_DEBUGGER
using namespace winrt;
using namespace winrt::Windows::Foundation;
using namespace winrt::Windows::Foundation::Collections;
using namespace winrt::Windows::Storage;
using namespace winrt::Windows::ApplicationModel;
using namespace winrt::Windows::ApplicationModel::Activation;
using namespace winrt::Windows::Data::Xml::Dom;
constexpr PCWSTR c_kozaniSettingsFolderName{ L"KozaniSettings" };
constexpr PCWSTR c_rdpFileName{ L"connection.rdp" };
constexpr PCWSTR c_additionalSettingsFileName{ L"AdditionalSettings.txt" };
constexpr PCWSTR c_manifestFileName{ L"AppxManifest.xml" };
enum KozaniStatus
{
None = 0,
Activated = 1,
Failed = 2,
Closed = 3
};
struct KozaniStatusCallbackHandler : winrt::implements<KozaniStatusCallbackHandler, IKozaniStatusCallback, winrt::Windows::Foundation::IInspectable>
{
KozaniStatusCallbackHandler(PCWSTR aumid) : m_aumid(aumid)
{
m_eventExitProcess.create();
}
#pragma region IKozaniStatusCallback_methods
STDMETHODIMP OnActivated(DWORD pid, boolean isNewInstance)
{
LOG_HR_MSG(KOZANI_E_INFO, "[ActivationSuccess] IKozaniStausCallback::OnActivated is called. Remote app aumid = %ls, pid = %u, isNewInstance = %u",
m_aumid.c_str(), pid, isNewInstance);
m_remoteAppProcessId = pid;
m_status = KozaniStatus::Activated;
if (!isNewInstance)
{
// This activation does not launch a new app process. Exit this process as there is already another one tracking the remote process.
// Example: Calculator app has single process for multiple app windows.
m_eventExitProcess.SetEvent();
}
return S_OK;
}
STDMETHODIMP OnActivationFailed(
DWORD errorCode,
PCWSTR errorMessage)
{
LOG_HR_MSG(KOZANI_E_INFO, "[ActivationFailed] IKozaniStausCallback::OnActivationFailed is called. Remote app aumid = %ls, errorCode = 0x%x, errorMessage: %s",
m_aumid.c_str(), errorCode, errorMessage);
m_status = KozaniStatus::Failed;
m_eventExitProcess.SetEvent();
return S_OK;
}
STDMETHODIMP OnClosed()
{
LOG_HR_MSG(KOZANI_E_INFO, "[App Terminated] IKozaniStausCallback::OnClosed is called. Remote app aumid = %ls, pid=%u",
m_aumid.c_str(), m_remoteAppProcessId);
m_status = KozaniStatus::Closed;
m_eventExitProcess.SetEvent();
return S_OK;
}
#pragma endregion IKozaniStatusCallback_methods
bool WaitForExitProcessEvent(DWORD timeout)
{
return m_eventExitProcess.wait(timeout);
}
KozaniStatus GetStatus()
{
return m_status;
}
private:
std::wstring m_aumid;
DWORD m_remoteAppProcessId{};
KozaniStatus m_status{};
wil::unique_event m_eventExitProcess;
};
void LogArgs(int argc, PWSTR* argv)
{
TraceLoggingWrite(Microsoft_Kozani_HostRuntime_TraceLogger::Provider(), "argc",
TraceLoggingValue(argc, "argc"));
for (int i = 0; i < argc; i++)
{
TraceLoggingWrite(Microsoft_Kozani_HostRuntime_TraceLogger::Provider(), "argv",
TraceLoggingValue(i, "index"),
TraceLoggingValue(argv[i], "argv"));
}
}
// Remote app AUMID is stored in an app extension of the local variant package (LVP). The app extension name is formatted as:
// com.microsoft.kozani.localvariant.remoteapp.<Converted LVP package family name>
// and the app extension Id is the package-relative application identifier (PRAID) of the LVP app being activated.
// <Converted LVP package family name>: we replace the '_' character in the package family name with '-' as '_' is not allowed in the app extension name.
//
// For example:
// <uap3:Extension Category="windows.appExtension">
// <uap3:AppExtension Name = "com.microsoft.kozani.localvariant.remoteapp.Calculator-fy70fzsv57rkp"
// Id = "App"
// DisplayName = "Remote app AUMID"
// Description = "The App User Mode ID of the remote app this local variant app represents">
// <uap3:Properties>
// <RemoteAppAumid>Microsoft.WindowsCalculator_8wekyb3d8bbwe!App</RemoteAppAumid>
// </uap3:Properties>
// </uap3:AppExtension>
// </uap3:Extension>
winrt::hstring GetRemoteAumid()
{
WCHAR lvpAumid[APPLICATION_USER_MODEL_ID_MAX_LENGTH + 1]{};
UINT32 lvpAumidLength{ ARRAYSIZE(lvpAumid) };
THROW_IF_WIN32_ERROR(GetCurrentApplicationUserModelId(&lvpAumidLength, lvpAumid));
WCHAR lvpFamilyName[PACKAGE_FAMILY_NAME_MAX_LENGTH + 1]{};
WCHAR lvpPraid[PACKAGE_RELATIVE_APPLICATION_ID_MAX_LENGTH + 1]{};
UINT32 lvpFamilyNameLength{ ARRAYSIZE(lvpFamilyName) };
UINT32 lvpPraidLength{ ARRAYSIZE(lvpPraid) };
THROW_IF_WIN32_ERROR(ParseApplicationUserModelId(lvpAumid, &lvpFamilyNameLength, lvpFamilyName, &lvpPraidLength, lvpPraid));
// Replace '_' in the family name with '-' as '_' cannot be used in the app extension name.
for (UINT32 i = 0; i < lvpFamilyNameLength; i++)
{
if (lvpFamilyName[i] == L'_')
{
lvpFamilyName[i] = L'-';
break;
}
}
std::wstring appExtensionName{ L"com.microsoft.kozani.localvariant.remoteapp." };
appExtensionName += lvpFamilyName;
auto catalog{ AppExtensions::AppExtensionCatalog::Open(appExtensionName.c_str()) };
IVectorView<AppExtensions::AppExtension> appExtensions{ catalog.FindAllAsync().get() };
for (const auto appExtension : appExtensions)
{
if (appExtension.Id() == lvpPraid)
{
const auto properties{ appExtension.GetExtensionPropertiesAsync().get() };
const auto property{ properties.Lookup(L"RemoteAppAumid").as<IMap<winrt::hstring, winrt::Windows::Foundation::IInspectable>>() };
const auto remoteAumid{ winrt::unbox_value<winrt::hstring>(property.Lookup(L"#text")) };
return remoteAumid;
}
}
THROW_WIN32_MSG(ERROR_NOT_FOUND, "Cannot find remote app aumid from app extension with name: %ls, Id: %ls", appExtensionName.c_str(), lvpPraid);
}
void GetConfigurationFiles(std::wstring& rdpFilePath, std::wstring& additionalSettingsFilePath)
{
StorageFolder localFolder{ ApplicationData::Current().LocalFolder() };
// This hostRuntime exe should run with the identity of the hosted app (localvariant) package that activated
// Logging the AppData local folder path thus indicates the identity of the hosted app.
TraceLoggingWrite(Microsoft_Kozani_HostRuntime_TraceLogger::Provider(), "localFolder",
TraceLoggingValue(localFolder.Path().c_str(), "path"));
auto settingsFolder{ localFolder.GetFolderAsync(c_kozaniSettingsFolderName).get() };
auto rdpFile{ settingsFolder.GetFileAsync(c_rdpFileName).get() };
THROW_HR_IF(HRESULT_FROM_WIN32(ERROR_INVALID_DATA), !rdpFile.IsOfType(StorageItemTypes::File));
rdpFilePath = rdpFile.Path();
auto additionalSettingsFile{ settingsFolder.TryGetItemAsync(c_additionalSettingsFileName).get() };
if (additionalSettingsFile)
{
THROW_HR_IF(HRESULT_FROM_WIN32(ERROR_INVALID_DATA), !additionalSettingsFile.IsOfType(StorageItemTypes::File));
additionalSettingsFilePath = additionalSettingsFile.Path();
}
else
{
additionalSettingsFilePath.clear();
}
}
#ifdef WAIT_FOR_DEBUGGER
void WaitForDebugger()
{
while (!IsDebuggerPresent())
{
Sleep(3000);
}
}
#endif
int APIENTRY wWinMain(
HINSTANCE /*hInstance*/,
HINSTANCE /*hPrevInstance*/,
PWSTR /*pCmdLine*/,
int /*nCmdShow*/) try
{
wil::SetResultLoggingCallback(&TraceFailureFromProvider<Microsoft_Kozani_HostRuntime_TraceLogger>);
winrt::init_apartment();
#ifdef WAIT_FOR_DEBUGGER
WaitForDebugger();
#endif
winrt::hstring remoteAumid{ GetRemoteAumid() };
LOG_HR_MSG(KOZANI_E_INFO, "remoteAumid=%ls", remoteAumid.c_str());
std::wstring rdpFilePath;
std::wstring additionalSettingsFilePath;
GetConfigurationFiles(rdpFilePath, additionalSettingsFilePath);
LOG_HR_MSG(KOZANI_E_INFO, "rdpFilePath=%ls, additionalSettingsFilePath=%ls", rdpFilePath.c_str(), additionalSettingsFilePath.c_str());
auto activatedEventArgs{ AppInstance::GetActivatedEventArgs() };
auto runtimeManager{ winrt::Microsoft::Kozani::ManagerRuntime::ManagerRuntimeManager::Create() };
auto statusCallback{ winrt::make_self<KozaniStatusCallbackHandler>(remoteAumid.c_str()) };
runtimeManager.ActivateRemoteApplication(
activatedEventArgs.Kind(),
remoteAumid.c_str(),
rdpFilePath.c_str(),
GetCurrentProcessId(),
activatedEventArgs,
statusCallback.as<winrt::Windows::Foundation::IInspectable>(),
additionalSettingsFilePath.c_str());
// Release the IManagerRuntimeManager object so the host runtime does not hold on to it while waiting for process termination event.
// In case this process is killed by the user (i.e., from Task Manager), holding the IManagerRuntimeManager object will leak the ref count
// and prevent KozaniManager.exe from exiting after all remote apps are closed.
runtimeManager = nullptr;
statusCallback->WaitForExitProcessEvent(INFINITE);
TraceLoggingWrite(Microsoft_Kozani_HostRuntime_TraceLogger::Provider(), "Exiting instance");
winrt::uninit_apartment();
return S_OK;
}
CATCH_RETURN()

Просмотреть файл

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Build.Tasks.Git" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.SourceLink.Common" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.SourceLink.GitHub" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.Windows.CppWinRT" version="2.0.230706.1" targetFramework="native" />
<package id="Microsoft.Windows.ImplementationLibrary" version="1.0.220914.1" targetFramework="native" />
</packages>

Просмотреть файл

@ -1,4 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include "pch.h"

Просмотреть файл

@ -1,20 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
// pch.h: This is a precompiled header file.
// Files listed below are compiled only once, improving build performance for future builds.
// This also affects IntelliSense performance, including code completion and many code browsing features.
// However, files listed here are ALL re-compiled if any one of them is updated between builds.
// Do not add files here that you will be updating frequently as this negates the performance advantage.
#ifndef PCH_H
#define PCH_H
#include <WindowsAppRuntimeInsights.h>
// add headers that you want to pre-compile here
#include "framework.h"
#include "KozaniHostRuntimeActivity.h"
#include "KozaniHostRuntimeTraceLogging.h"
#endif //PCH_H

Просмотреть файл

@ -1,679 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"
#include <KozaniManager_h.h>
#include "ConnectionManager.h"
namespace DvcProtocol = Microsoft::Kozani::DvcProtocol;
namespace Microsoft::Kozani::Manager
{
void CALLBACK ConnectionManager::ProcessTerminationCallback(_In_ PVOID parameter, _In_ BOOLEAN timerOrWaitFired) noexcept try
{
if (timerOrWaitFired)
{
// Timer timed out. This shouldn't happen as we wait infinite time.
LOG_HR_MSG(E_UNEXPECTED, "Wait timed out tracking process lifetime.");
return;
}
ActivationRequestInfo* requestInfo{ reinterpret_cast<ActivationRequestInfo*>(parameter) };
ConnectionManager* connectionManager{ requestInfo->connectionManager };
auto lock{ connectionManager->m_requestsLock.lock_exclusive() };
if (connectionManager->m_closing || requestInfo->processLifetimeTrackerDisabled)
{
// We are closing down or the tracker is disabled. No more processing should be done.
return;
}
// Unregister the process lifetime tracker wait handle in a non-blocking way as we no longer need to track the process lifetime.
requestInfo->processLifetimeTrackerHandle.reset();
if (requestInfo->statusCallback)
{
// The following call can fail with RPC_E_SERVER_UNAVAILABLE (0x800706BA) if the statusCallback client is hosted in the
// process that has been terminated. Ignore the failure - best effort to deliver the status update.
(void)requestInfo->statusCallback->OnClosed();
requestInfo->statusCallback.reset();
}
switch (requestInfo->status)
{
case RequestStatus::Connecting:
connectionManager->RemoveRequestFromPendingConnectionList(requestInfo);
break;
case RequestStatus::Connected:
__fallthrough;
case RequestStatus::AppActivationRequestMade:
__fallthrough;
case RequestStatus::AppActivationSucceeded:
connectionManager->SendAppTerminationNotice(requestInfo);
break;
case RequestStatus::Failed:
__fallthrough;
case RequestStatus::Closed:
// Nothing to do.
break;
default:
FAIL_FAST_MSG("Unhandled RequestStatus: %u", requestInfo->status);
}
requestInfo->status = RequestStatus::Closed;
requestInfo->statusReporter->SetStatus(RequestStatus::Closed);
connectionManager->RemoveRequest(requestInfo, true /* removeFromMainList */);
}
CATCH_LOG_RETURN()
void ConnectionManager::Close()
{
// Setting m_closing to true will cancel all other operations, which means no changes to member variables protected by the lock in other threads.
{
auto lock{ m_requestsLock.lock_exclusive() };
m_closing = true;
}
// Do not hold the m_requestsLock while making blocking call to UnregisterWaitEx (with INVALID_HANDLE_VALUE as the CompletionEvent parameter),
// as it will deadlock if there is a callback waiting for the m_requestsLock in another thread. We are safe without locking as setting m_closing
// to true above will prevent any other threads from changing member variables of this class.
for (auto& request : m_activationRequests)
{
if (request.processLifetimeTrackerHandle)
{
// Unregister the process lifetime tracker as we know we are closing and will no longer track any associated local processes.
// This will also avoid triggering unnecessary processing once those processes are terminated when IKozaniStatusCallback::OnClose() is received.
// Call UnregisterWaitEx with INVALID_HANDLE_VALUE so it will wait for any pending callback to finish before returning
// to avoid AV issues when a callback function is using the objects that are going to be released. Since we set m_closing to true already,
// ProcessTerminationCallback should return right away.
LOG_IF_WIN32_BOOL_FALSE(UnregisterWaitEx(request.processLifetimeTrackerHandle.get(), INVALID_HANDLE_VALUE));
request.processLifetimeTrackerHandle.release();
}
if (request.statusCallback)
{
(void)request.statusCallback->OnClosed();
request.statusCallback.reset();
}
}
m_requestsPendingConnection.clear();
m_activationRequests.clear();
}
std::shared_ptr<ActivationRequestStatusReporter> ConnectionManager::AddNewActivationRequest(
std::string& connectionId,
winrt::Windows::ApplicationModel::Activation::ActivationKind activationKind,
PCWSTR appUserModelId,
winrt::Windows::ApplicationModel::Activation::IActivatedEventArgs activatedEventArgs,
_In_ IKozaniStatusCallback* statusCallback,
DWORD associatedLocalProcessId)
{
wil::unique_handle associatedLocalProcessHandle;
if (associatedLocalProcessId != 0)
{
associatedLocalProcessHandle.reset(OpenProcess(SYNCHRONIZE, FALSE, associatedLocalProcessId));
THROW_LAST_ERROR_IF_NULL_MSG(associatedLocalProcessHandle,
"Failed to open associated local process to track its lifetime. pid=%u", associatedLocalProcessId);
}
auto lock{ m_requestsLock.lock_exclusive() };
THROW_HR_IF(HRESULT_FROM_WIN32(ERROR_INVALID_STATE), m_closing);
// Allocate new ActivationRequestInfo object and append to the end of the m_activationRequests list.
m_activationRequests.emplace_back();
// If failure happened after this point, we will automatically remove the new requestInfo object added to m_activationRequests list.
auto removeRequestOnFailure = wil::scope_exit([&]()
{
m_activationRequests.pop_back();
});
// Retrive the pointer of the new ActivationRequestInfo object to be added to maps later. The object is owned by the
// m_activationRequests list and other references are by the pointer.
ActivationRequestInfo* requestInfo{ &m_activationRequests.back() };
// Record the iterator of the new ActivationRequestInfo list entry for quick removal (O(1)) from the list if needed.
requestInfo->listPosition = m_activationRequests.end();
requestInfo->listPosition--;
requestInfo->associatedLocalProcessId = associatedLocalProcessId;
requestInfo->connectionId = std::move(connectionId);
requestInfo->activationKind = activationKind;
requestInfo->appUserModelId.assign(appUserModelId);
if (activatedEventArgs)
{
requestInfo->serializedActivationArgs = DvcProtocol::SerializeActivatedEventArgs(activatedEventArgs);
}
requestInfo->statusCallback = statusCallback;
requestInfo->statusReporter = std::make_shared<ActivationRequestStatusReporter>();
requestInfo->connectionManager = this;
if (associatedLocalProcessHandle)
{
if (!RegisterWaitForSingleObject(
&requestInfo->processLifetimeTrackerHandle, associatedLocalProcessHandle.get(), ProcessTerminationCallback, requestInfo, INFINITE, WT_EXECUTEONLYONCE))
{
THROW_LAST_ERROR_MSG("RegisterWaitForSingleObject failed. Cannot track lifetime of the associated local proess pid=%u", associatedLocalProcessId);
}
}
m_requestsPendingConnection.push_back(requestInfo);
// Now that we are successful, disable removeRequestOnFailure to keep the newly added requestInfo in m_activationRequests list.
removeRequestOnFailure.release();
return requestInfo->statusReporter;
}
void ConnectionManager::CleanupActivationRequest(_In_ const ActivationRequestStatusReporter* statusReporter)
{
auto lock{ m_requestsLock.lock_exclusive() };
for (auto& request : m_activationRequests)
{
// Locate the request object based on its statusReporter pointer.
if (request.statusReporter.get() == statusReporter)
{
bool localProcessTerminationCallbackPending{};
const HRESULT hrDisableProcessLifetimeTracker{ LOG_IF_FAILED(DisableProcessLifetimeTracker(&request, localProcessTerminationCallbackPending)) };
RemoveRequest(&request, SUCCEEDED(hrDisableProcessLifetimeTracker) && !localProcessTerminationCallbackPending);
break;
}
}
}
void ConnectionManager::ProcessProtocolDataUnit(
_In_reads_(size) BYTE* data,
UINT32 size,
_In_ IWTSVirtualChannelManager* channelManager,
_In_ IWTSVirtualChannel* channel)
{
Dvc::ProtocolDataUnit pdu;
if (!pdu.ParseFromArray(data, size))
{
LOG_HR_MSG(KOZANI_E_BAD_PDU, "Failed to parse PDU. size: %u. Ignore failure.", size);
return;
}
const Dvc::ProtocolDataUnit::DataType type{ pdu.type() };
switch (type)
{
case Dvc::ProtocolDataUnit::ConnectionAck:
ProcessConnectionAck(pdu, channelManager, channel);
break;
case Dvc::ProtocolDataUnit::ActivateAppResult:
ProcessActivateAppResult(pdu);
break;
case Dvc::ProtocolDataUnit::AppTerminationNotice:
ProcessAppTerminationNotice(pdu);
break;
default:
// ToDo: https://task.ms/43963854 Unknown PDU type. Return GenericResult message with failure code to server side.
break;
}
}
// Must be called with m_requestsLock.lock_exclusive() done from the caller.
HRESULT ConnectionManager::OnDvcServerConnected(
uint64_t activityId,
ActivationRequestInfo* requestInfo,
_In_ IWTSVirtualChannelManager* channelManager,
_In_ IWTSVirtualChannel* channel,
_Out_ std::wstring& errorMessage) noexcept try
{
requestInfo->activityId = activityId;
requestInfo->dvcChannelManager = channelManager;
requestInfo->dvcChannel = channel;
requestInfo->status = RequestStatus::Connected;
requestInfo->statusReporter->SetStatus(RequestStatus::Connected);
auto result{ m_activityMap.insert({ activityId , requestInfo }) };
// activityId only increments. It will take hundreds of billion years for it to wrap around if it increments once every 1 second.
// So if there is a duplicate, there must be logical error in this code and we want to find out.
FAIL_FAST_IF_MSG(!result.second, "Non-unique Activity ID: %llu", activityId);
// Now that we have connected to the DVC channel, send ActivateAppRequest PDU to the server to activate remote app.
// Failure to send the request should be reported to IKozaniStatusCallback interface of the caller tracking the activation request.
const HRESULT hrSendRequest{ LOG_IF_FAILED(SendActivateAppRequest(requestInfo)) };
if (FAILED(hrSendRequest))
{
errorMessage = L"Failed to send activate app request through DVC";
RETURN_HR(hrSendRequest);
}
else
{
requestInfo->status = RequestStatus::AppActivationRequestMade;
requestInfo->statusReporter->SetStatus(RequestStatus::AppActivationRequestMade);
}
return S_OK;
}
CATCH_RETURN()
void ConnectionManager::ProcessConnectionAck(
_In_ const Dvc::ProtocolDataUnit& pdu,
_In_ IWTSVirtualChannelManager* channelManager,
_In_ IWTSVirtualChannel* channel)
{
Dvc::ConnectionAck ackMessage;
if (!ackMessage.ParseFromString(pdu.data()))
{
LOG_HR_MSG(KOZANI_E_BAD_PDU, "Failed to parse connection ACK message. Ignore failure.");
return;
}
auto lock{ m_requestsLock.lock_exclusive() };
if (m_closing)
{
// We are closing, no more processing.
return;
}
for (auto it = m_requestsPendingConnection.begin(); it != m_requestsPendingConnection.end(); it++)
{
ActivationRequestInfo* requestInfo{ *it };
if (requestInfo->connectionId == ackMessage.connection_id())
{
m_requestsPendingConnection.erase(it);
if (pdu.activity_id() > m_nextActivityId)
{
// Reconciliation between server and client side activity ID. Either one can crash or reboot and restart with new activity ID
// smaller than the other one. Always set to the larger of the two to reconcile.
m_nextActivityId = pdu.activity_id();
}
const uint64_t activityId{ m_nextActivityId };
m_nextActivityId++;
std::wstring errorMessage;
HRESULT hrOnDvcServerConnected{ LOG_IF_FAILED(OnDvcServerConnected(activityId, requestInfo, channelManager, channel, errorMessage)) };
if (FAILED(hrOnDvcServerConnected))
{
if (requestInfo->status != RequestStatus::AppActivationRequestMade)
{
if (errorMessage.empty())
{
errorMessage = L"Failed to process DVC server connection.";
}
ProcessAppActivationFailure(hrOnDvcServerConnected, requestInfo, errorMessage.c_str());
}
THROW_HR(hrOnDvcServerConnected);
}
break;
}
}
}
void ConnectionManager::ProcessActivateAppResult(_In_ const Dvc::ProtocolDataUnit& pdu)
{
auto lock{ m_requestsLock.lock_exclusive() };
THROW_HR_IF(HRESULT_FROM_WIN32(ERROR_INVALID_STATE), m_closing);
auto iter{ m_activityMap.find(pdu.activity_id()) };
if (iter == m_activityMap.end())
{
LOG_HR_MSG(E_UNEXPECTED, "ActivateAppResult from DVC server has unknown activity ID %I64u. Ignoring the PDU.", pdu.activity_id());
return;
}
Dvc::ActivateAppResult activateAppResult;
if (!activateAppResult.ParseFromString(pdu.data()))
{
LOG_HR_MSG(HRESULT_FROM_WIN32(ERROR_INVALID_DATA), "Unable to parse ActivateAppResult PDU. Ignoring the PDU.");
return;
}
ActivationRequestInfo* requestInfo{ iter->second };
if (SUCCEEDED(activateAppResult.hresult()))
{
if (activateAppResult.is_new_instance())
{
requestInfo->status = RequestStatus::AppActivationSucceeded;
requestInfo->statusReporter->SetStatus(RequestStatus::AppActivationSucceeded);
if (requestInfo->statusCallback != nullptr)
{
LOG_IF_FAILED(requestInfo->statusCallback->OnActivated(activateAppResult.process_id(), activateAppResult.is_new_instance()));
}
}
else
{
// We no longer need to track the associated local process as the remote app activation does not create a new remote process.
bool localProcessTerminationCallbackPending{};
const HRESULT hrDisableProcessLifetimeTracker{ LOG_IF_FAILED(DisableProcessLifetimeTracker(requestInfo, localProcessTerminationCallbackPending)) };
requestInfo->status = RequestStatus::Closed;
requestInfo->statusReporter->SetStatus(RequestStatus::Closed);
if (requestInfo->statusCallback != nullptr)
{
LOG_IF_FAILED(requestInfo->statusCallback->OnActivated(activateAppResult.process_id(), activateAppResult.is_new_instance()));
requestInfo->statusCallback.reset();
}
// No longer need to track the request so remove it from the tracking mechanism. We only remove the requestInfo object from
// main list (owning storage) if it is safe to do so: after the process lifetime tracker is successfully disabled and there
// are no pending process termination callbacks. Otherwise, the callbacks will need to access the object. We will delay the
// cleanup later in the next remote app termination with MinCleanupDelay, or during the local process termination callback.
RemoveRequest(requestInfo, SUCCEEDED(hrDisableProcessLifetimeTracker) && !localProcessTerminationCallbackPending);
}
}
else
{
std::wstring errorMessage{ ::Microsoft::Utf8::ToUtf16(activateAppResult.error_message()) };
ProcessAppActivationFailure(activateAppResult.hresult(), requestInfo, errorMessage.c_str());
}
}
// Must be called with m_requestsLock.lock_exclusive() done in caller.
void ConnectionManager::ProcessAppActivationFailure(
HRESULT hrActivation,
_In_ ActivationRequestInfo* requestInfo,
_In_ PCWSTR errorMessage)
{
// We no longer need to track the associated local process as remote app activation failed.
// Disabling the associated local process tracker also prevents unnecessary handling if the associated local process
// is terminated due to us calling IKozaniStatusCallback::OnActivationFailed() to report the failure to our client,
// which may cause it to terminate the associated local process.
bool localProcessTerminationCallbackPending{};
const HRESULT hrDisableProcessLifetimeTracker{ LOG_IF_FAILED(DisableProcessLifetimeTracker(requestInfo, localProcessTerminationCallbackPending)) };
// Change status to Failed AFTER disabling local process lifetime tracker to avoid triggering the local process to exit
// before the tracker is disabled.
requestInfo->status = RequestStatus::Failed;
requestInfo->statusReporter->SetStatus(RequestStatus::Failed);
if (requestInfo->statusCallback != nullptr)
{
LOG_IF_FAILED(requestInfo->statusCallback->OnActivationFailed(hrActivation, errorMessage));
requestInfo->statusCallback.reset();
}
// Remove the request from all tracking mechanism. We only remove the requestInfo object from
// main list (owning storage) if it is safe to do so: after the process lifetime tracker is successfully disabled and there
// are no pending process termination callbacks. Otherwise, the callbacks will need to access the object. We will delay the
// cleanup later in the next remote app termination with MinCleanupDelay, or during the local process termination callback.
RemoveRequest(requestInfo, SUCCEEDED(hrDisableProcessLifetimeTracker) && !localProcessTerminationCallbackPending);
}
// Must be called with m_requestsLock.lock_exclusive() done in caller.
HRESULT ConnectionManager::DisableProcessLifetimeTracker(ActivationRequestInfo* requestInfo, _Out_ bool& callbackPending) noexcept try
{
callbackPending = false;
if (requestInfo->processLifetimeTrackerHandle)
{
BOOL unregisterWaitSuccess{ UnregisterWait(requestInfo->processLifetimeTrackerHandle.get()) };
if (!unregisterWaitSuccess)
{
DWORD error{ GetLastError() };
if (error == ERROR_IO_PENDING)
{
// If there are outstanding callbacks when UnregisterWait is called, UnregisterWait unregisters the wait on the callback functions
// and fails with the ERROR_IO_PENDING error code. The error code does not indicate that the function has failed, and the function
// does not need to be called again.
callbackPending = true;
}
else
{
RETURN_WIN32_MSG(error, "UnregisterWait failed");
}
}
requestInfo->processLifetimeTrackerDisabled = true;
requestInfo->processLifetimeTrackerDisabledTime = GetTickCount64();
requestInfo->processLifetimeTrackerHandle.release();
}
return S_OK;
}
CATCH_RETURN()
void ConnectionManager::ProcessAppTerminationNotice(_In_ const Dvc::ProtocolDataUnit& pdu)
{
auto lock{ m_requestsLock.lock_exclusive() };
if (m_closing)
{
// We are closing, no more processing.
return;
}
auto iter{ m_activityMap.find(pdu.activity_id()) };
if (iter == m_activityMap.end())
{
LOG_WIN32_MSG(ERROR_NO_MATCH,
"AppTerminationNotice from DVC server has unknown activity ID %I64u. The associated local process may have already been terminated. Ignoring the PDU.",
pdu.activity_id());
return;
}
ActivationRequestInfo* requestInfo{ iter->second };
// We no longer need to track the associated local process as we know the remote process has been terminated.
// Disabling the associated local process tracker also prevents unnecessary handling if the associated local process
// is terminated due to us calling IKozaniStatusCallback::OnClosed() to report the remote app termination to our client,
// which may cause it to terminate the associated local process.
bool localProcessTerminationCallbackPending{};
const HRESULT hrDisableProcessLifetimeTracker{ LOG_IF_FAILED(DisableProcessLifetimeTracker(requestInfo, localProcessTerminationCallbackPending)) };
requestInfo->status = RequestStatus::Closed;
requestInfo->statusReporter->SetStatus(RequestStatus::Closed);
if (requestInfo->statusCallback != nullptr)
{
(void)requestInfo->statusCallback->OnClosed();
requestInfo->statusCallback.reset();
}
// Remove the request from the tracking mechanism. We only remove the requestInfo object from
// main list (owning storage) if it is safe to do so: after the process lifetime tracker is successfully disabled and there
// are no pending process termination callbacks. Otherwise, the callbacks will need to access the object. We will delay the
// cleanup later in the next remote app termination with MinCleanupDelay, or during the local process termination callback.
RemoveRequest(requestInfo, SUCCEEDED(hrDisableProcessLifetimeTracker) && !localProcessTerminationCallbackPending);
CleanupOutdatedRequests();
}
HRESULT ConnectionManager::SendActivateAppRequest(_In_ ActivationRequestInfo* requestInfo) noexcept try
{
std::string pdu{ DvcProtocol::CreateActivateAppRequestPdu(
requestInfo->activityId, requestInfo->appUserModelId.c_str(), requestInfo->activationKind, requestInfo->serializedActivationArgs) };
RETURN_IF_FAILED(requestInfo->dvcChannel->Write(
static_cast<ULONG>(pdu.size()), reinterpret_cast<BYTE*>(pdu.data()), nullptr /* pReserved - must be nullptr */));
return S_OK;
}
CATCH_RETURN()
HRESULT ConnectionManager::SendAppTerminationNotice(_In_ ActivationRequestInfo* requestInfo) noexcept try
{
std::string pdu{ DvcProtocol::CreateAppTerminationNoticePdu(requestInfo->activityId) };
RETURN_IF_FAILED(requestInfo->dvcChannel->Write(
static_cast<ULONG>(pdu.size()), reinterpret_cast<BYTE*>(pdu.data()), nullptr /* pReserved - must be nullptr */));
return S_OK;
}
CATCH_RETURN()
void ConnectionManager::OnDvcChannelClose(_In_ IWTSVirtualChannel* channel)
{
auto lock{ m_requestsLock.lock_exclusive() };
if (m_closing)
{
// We are closing, no more processing.
return;
}
for (auto it = m_activationRequests.begin(); it != m_activationRequests.end();)
{
if (it->dvcChannel == channel)
{
CloseRequest(it);
}
else
{
it++;
}
}
CleanupOutdatedRequests();
}
void ConnectionManager::OnRemoteDesktopInitializeConnection(_In_ IWTSVirtualChannelManager* channelManager)
{
auto lock{ m_requestsLock.lock_exclusive() };
if (m_closing)
{
// We are closing, no more processing.
return;
}
if (m_requestsPendingConnection.empty())
{
// This can happen when the DVC is loaded in non-Kozani scenario, like launching remote desktop client to connect to full
// remote desktop session.
return;
}
// The latest request added to the m_requestsPendingConnection is associated with the new connection.
auto request{ m_requestsPendingConnection.back() };
if (request->dvcChannelManager == nullptr)
{
request->dvcChannelManager = channelManager;
}
}
void ConnectionManager::OnRemoteDesktopDisconnect(_In_ IWTSVirtualChannelManager* channelManager)
{
auto lock{ m_requestsLock.lock_exclusive() };
if (m_closing)
{
// We are closing, no more processing.
return;
}
for (auto it = m_activationRequests.begin(); it != m_activationRequests.end();)
{
if (it->dvcChannelManager == channelManager)
{
CloseRequest(it);
}
else
{
it++;
}
}
CleanupOutdatedRequests();
}
// Caller must have m_requestsLock in lock_exclusive() state.
void ConnectionManager::CloseRequest(std::list<ActivationRequestInfo>::iterator& it)
{
// We no longer need to track the associated local process as the request is closed.
// Disabling the associated local process tracker also prevents unnecessary handling if the associated local process
// is terminated due to us calling IKozaniStatusCallback::OnClosed() to report the activation request is closed,
// which may cause it to terminate the associated local process.
bool localProcessTerminationCallbackPending{};
const HRESULT hrDisableProcessLifetimeTracker{ LOG_IF_FAILED(DisableProcessLifetimeTracker(&(*it), localProcessTerminationCallbackPending)) };
if (it->status == RequestStatus::Connecting)
{
RemoveRequestFromPendingConnectionList(&(*it));
}
// Report status change AFTER disabling the local process tracker to avoid triggering the local process to exit before the
// tracker is disabled.
it->status = RequestStatus::Closed;
it->statusReporter->SetStatus(RequestStatus::Closed);
if (it->statusCallback != nullptr)
{
LOG_IF_FAILED(it->statusCallback->OnClosed());
it->statusCallback.reset();
}
if (it->activityId != ActivationRequestInfo::ActivityId_Unknown)
{
m_activityMap.erase(it->activityId);
}
if (SUCCEEDED(hrDisableProcessLifetimeTracker) && !localProcessTerminationCallbackPending)
{
it = m_activationRequests.erase(it);
}
else
{
it++;
}
}
// Caller must have m_requestsLock in lock_exclusive() state.
void ConnectionManager::RemoveRequestFromPendingConnectionList(_In_ const ActivationRequestInfo* request)
{
for (auto it = m_requestsPendingConnection.begin(); it != m_requestsPendingConnection.end(); it++)
{
if (request == *it)
{
m_requestsPendingConnection.erase(it);
break;
}
}
}
// Caller must have m_requestsLock in lock_exclusive() state.
void ConnectionManager::RemoveRequest(_In_ const ActivationRequestInfo* request, bool removeFromMainList)
{
if (request->status == RequestStatus::Connecting)
{
RemoveRequestFromPendingConnectionList(request);
}
// ActivityId_Unknown (0) is reserved for uninitialized state (ConnectionAck has not been received from DVC server yet) and will not be in m_activityMap.
if (request->activityId != ActivationRequestInfo::ActivityId_Unknown)
{
m_activityMap.erase(request->activityId);
}
if (removeFromMainList)
{
m_activationRequests.erase(request->listPosition);
}
}
// Caller must have m_requestsLock in lock_exclusive() state.
void ConnectionManager::CleanupOutdatedRequests()
{
uint64_t currentTickCount{ GetTickCount64() };
for (auto it = m_activationRequests.begin(); it != m_activationRequests.end();)
{
if (it->processLifetimeTrackerDisabled && (it->status == RequestStatus::Closed || it->status == RequestStatus::Failed))
{
uint64_t timePassed{ currentTickCount - it->processLifetimeTrackerDisabledTime };
if (timePassed > ActivationRequestInfo::MinCleanupDelay)
{
it = m_activationRequests.erase(it);
continue;
}
}
it++;
}
}
}

Просмотреть файл

@ -1,172 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include <windows.applicationmodel.activation.h>
namespace Microsoft::Kozani::Manager
{
// Max amount of time we will wait for the DVC plugin to be loaded by the remote desktop client (RDC) since we launches it.
// RDC will load DVC plugins for any new connections that are not already established, by activating the plugin's COM server and
// calling IWTSPlugin::Initialize() method. It should happen right away before making any network connections.
// 5 seconds.
const UINT32 MaxDvcPluginLoadingTime = 5 * 1000;
// Max amount of time we will wait for DVC initial connection acknowlegement to come in from server side, if there is already an
// existing remote desktop connection.
// 30 seconds - give enough time for user to respond to pop-up message dialog warning first time connection to remote app.
const UINT32 MaxConnectionWaitTime = 30 * 1000;
enum RequestStatus
{
Connecting = 0,
Connected,
AppActivationRequestMade,
AppActivationSucceeded,
Failed,
Closed
};
class ActivationRequestStatusReporter
{
public:
ActivationRequestStatusReporter()
{
m_eventStatusChanged.create();
}
void SetStatus(RequestStatus status)
{
auto lock{ m_accessLock.lock_exclusive() };
if (m_status != status)
{
m_status = status;
m_eventStatusChanged.SetEvent();
}
}
RequestStatus GetStatus()
{
auto lock{ m_accessLock.lock_shared() };
return m_status;
}
bool WaitForStatusChange(DWORD milliseconds = INFINITE)
{
return m_eventStatusChanged.wait(milliseconds);
}
private:
RequestStatus m_status{};
wil::srwlock m_accessLock;
wil::unique_event m_eventStatusChanged;
};
typedef wil::unique_any_handle_null<decltype(&::UnregisterWait), ::UnregisterWait> unique_wait_handle;
class ConnectionManager;
struct ActivationRequestInfo
{
static const uint64_t ActivityId_Unknown{};
// Minimum cleanup delay after the associated local process lifetime tracker is disabled: 60 seconds.
// When the request status becomes Closed or Failed, we want to unregister the wait handle for tracking the associated local process.
// However, the unregistration can fail with ERROR_IO_PENDING if there is an outstanding callback to be made. In such a case, we cannot
// clean up the ActivationRequestInfo object as it will be accessed from the callback function. We will clean up the object later with
// this minimum delay to allow the callbak to finish.
static const int MinCleanupDelay{ 60 * 1000 };
uint64_t activityId{};
RequestStatus status{};
std::string connectionId;
std::wstring appUserModelId;
winrt::Windows::ApplicationModel::Activation::ActivationKind activationKind{};
std::string serializedActivationArgs;
wil::com_ptr<IKozaniStatusCallback> statusCallback;
wil::com_ptr<IWTSVirtualChannelManager> dvcChannelManager;
wil::com_ptr<IWTSVirtualChannel> dvcChannel;
std::list<ActivationRequestInfo>::iterator listPosition;
std::shared_ptr<ActivationRequestStatusReporter> statusReporter;
ConnectionManager* connectionManager{};
DWORD associatedLocalProcessId{};
unique_wait_handle processLifetimeTrackerHandle;
bool processLifetimeTrackerDisabled{};
uint64_t processLifetimeTrackerDisabledTime{};
};
class ConnectionManager
{
public:
std::shared_ptr<ActivationRequestStatusReporter> AddNewActivationRequest(
std::string& connectionId,
winrt::Windows::ApplicationModel::Activation::ActivationKind activationKind,
PCWSTR appUserModelId,
winrt::Windows::ApplicationModel::Activation::IActivatedEventArgs activatedEventArgs,
_In_ IKozaniStatusCallback* statusCallback,
DWORD associatedLocalProcessId);
void CleanupActivationRequest(_In_ const ActivationRequestStatusReporter* statusReporter);
void Close();
void ProcessProtocolDataUnit(
_In_reads_(size) BYTE* data,
UINT32 size,
_In_ IWTSVirtualChannelManager* channelManager,
_In_ IWTSVirtualChannel* channel);
void OnDvcChannelClose(IWTSVirtualChannel* channel);
void OnRemoteDesktopInitializeConnection(_In_ IWTSVirtualChannelManager* channelManager);
void OnRemoteDesktopDisconnect(_In_ IWTSVirtualChannelManager* channelManager);
private:
static void CALLBACK ProcessTerminationCallback(_In_ PVOID parameter, _In_ BOOLEAN timerOrWaitFired) noexcept;
HRESULT OnDvcServerConnected(
uint64_t activityId,
ActivationRequestInfo* requestInfo,
_In_ IWTSVirtualChannelManager* channelManager,
_In_ IWTSVirtualChannel* channel,
_Out_ std::wstring& errorMessage) noexcept;
void ProcessConnectionAck(
_In_ const Dvc::ProtocolDataUnit& pdu,
_In_ IWTSVirtualChannelManager* channelManager,
_In_ IWTSVirtualChannel* channel);
void ProcessActivateAppResult(_In_ const Dvc::ProtocolDataUnit& pdu);
void ProcessAppActivationFailure(
HRESULT hrActivation,
_In_ ActivationRequestInfo* requestInfo,
_In_ PCWSTR errorMessage);
HRESULT DisableProcessLifetimeTracker(ActivationRequestInfo* requestInfo, _Out_ bool& callbackPending) noexcept;
void ProcessAppTerminationNotice(_In_ const Dvc::ProtocolDataUnit& pdu);
HRESULT SendActivateAppRequest(_In_ ActivationRequestInfo* requestInfo) noexcept;
HRESULT SendAppTerminationNotice(_In_ ActivationRequestInfo* requestInfo) noexcept;
void CloseRequest(std::list<ActivationRequestInfo>::iterator& it);
void RemoveRequestFromPendingConnectionList(_In_ const ActivationRequestInfo* request);
void RemoveRequest(_In_ const ActivationRequestInfo* request, bool removeFromMainList);
void CleanupOutdatedRequests();
private:
std::list<ActivationRequestInfo> m_activationRequests;
std::list<ActivationRequestInfo*> m_requestsPendingConnection;
wil::srwlock m_requestsLock;
// New activity Id starts from 1. 0 means the activity Id is not set.
static const uint64_t c_activityId_Unknown{};
uint64_t m_nextActivityId{ 1 };
std::map<uint64_t, ActivationRequestInfo*> m_activityMap;
bool m_closing{};
};
}

Просмотреть файл

@ -1,22 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
// Rely on _STRINGIZE(x) in yvals_core.h
#ifndef _STRINGIZE
#define _STRINGIZEX(x) #x
#define _STRINGIZE(x) _STRINGIZEX(x)
#endif
#define PR_KOZANIMANAGER_LIBID_UUID 29acee21-e36b-4bd5-bf7d-ad54ba28c954
#define PR_KOZANIMANAGER_CLSID_UUID b7034343-8d78-4d21-81ca-7a6c1c961c17
#define PR_KOZANIMANAGER_CLSID_STRING _STRINGIZE(PR_KOZANIMANAGER_CLSID_UUID)
#define PR_KOZANIMANAGER_CLSID_GUID 0xb7034343, 0x8d78, 0x4d21, { 0x81, 0xca, 0x7a, 0x6c, 0x1c, 0x96, 0x1c, 0x17 }
#define PR_KOZANIDVC_CLSID_UUID ed202fc8-ee21-4bf2-9681-23a8e97be9f3
#define PR_KOZANIDVC_CLSID_STRING _STRINGIZE(PR_KOZANIDVC_CLSID_UUID)
//#define PR_KOZANIDVC_CLSID_GUID 0xb7034343, 0x8d78, 0x4d21, { 0x81, 0xca, 0x7a, 0x6c, 0x1c, 0x96, 0x1c, 0x17 }
#if defined(WINDOWSAPPSDK_BUILD_PIPELINE) && (WINDOWSAPPSDK_BUILD_PIPELINE == 1)
#include "KozaniManager-Override.h"
#endif

Просмотреть файл

@ -1,22 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.
#ifdef PR_KOZANIMANAGER_LIBID_UUID
#undef PR_KOZANIMANAGER_LIBID_UUID
#define PR_KOZANIMANAGER_LIBID_UUID fb7410ad-2b1b-4b38-a714-c6b4cee0877d
#endif
#ifdef PR_KOZANIMANAGER_CLSID_UUID
#undef PR_KOZANIMANAGER_CLSID_UUID
#define PR_KOZANIMANAGER_CLSID_UUID 5d15855d-c951-411e-b3fb-dd5ba8c94cbf
#endif
#ifdef PR_KOZANIMANAGER_CLSID_STRING
#undef PR_KOZANIMANAGER_CLSID_STRING
#define PR_KOZANIMANAGER_CLSID_STRING _STRINGIZE(PR_KOZANIMANAGER_CLSID_UUID)
#endif
#ifdef PR_KOZANIMANAGER_CLSID_GUID
#undef PR_KOZANIMANAGER_CLSID_GUID
#define PR_KOZANIMANAGER_CLSID_GUID 0x5d15855d, 0xc951, 0x411e, { 0xb3, 0xfb, 0xdd, 0x5b, 0xa8, 0xc9, 0x4c, 0xbf }
#endif

Просмотреть файл

@ -1,7 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include <winresrc.h>
#define VERSIONINFO_FILENAME "KozaniManager.exe"
#define VERSIONINFO_FILETYPE VFT_APP
#include "eng\common\VersionInfo\AssemblyInfo.ver"

Просмотреть файл

@ -1,211 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.WindowsAppSDK.Protobuf.$(MicrosoftWindowsAppSDKProtobufVersion)\build\native\Microsoft.WindowsAppSDK.Protobuf.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.WindowsAppSDK.Protobuf.$(MicrosoftWindowsAppSDKProtobufVersion)\build\native\Microsoft.WindowsAppSDK.Protobuf.props')" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{829CDB09-EEFE-4188-A045-3FC6BE7BD96B}</ProjectGuid>
<RootNamespace>KozaniManager</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<ProjectName>KozaniManager</ProjectName>
</PropertyGroup>
<PropertyGroup>
<TargetName>KozaniManager</TargetName>
<ConfigurationType>Application</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<UseDebugLibraries>true</UseDebugLibraries>
<!-- We only use protobuf Release builds so make sure HybridCRT uses the Release CRT if you use protobufs (for now) -->
<HybridCrtConfiguration>Release</HybridCrtConfiguration>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
<Import Project="..\Common\Common.vcxitems" Label="Shared" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>(MSBuildThisFileDirectory);$(OutDir)..\KozaniProtocol;$(OutDir)..\KozaniManagerProxyStub;$(OutDir)\..\WindowsAppRuntime_DLL;$(RepoRoot)\dev\WindowsAppRuntime_Insights;$(RepoRoot)\dev\common;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<PreprocessorDefinitions>_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<AdditionalDependencies>KozaniProtocol.lib;onecore.lib;onecoreuap.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(OutDir)..\KozaniProtocol;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<DelayLoadDLLs>Microsoft.WindowsAppRuntime.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Midl>
<!-- DO NOT REMOVE! Even though this item should be unnecessary as we have no *.idl in the project
we need this item or C++/WinRT won't work its magic (no IntDir\Generated Files etc) -->
<AdditionalIncludeDirectories>$(RepoRoot)\dev\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</Midl>
<ProjectReference>
<LinkLibraryDependencies>false</LinkLibraryDependencies>
</ProjectReference>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<!-- We only use protobuf Release builds so don't define _DEBUG if you use protobufs (for now) -->
<!-- <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions> -->
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="ConnectionManager.h" />
<ClInclude Include="pch.h" />
<ClInclude Include="KozaniManager-Constants.h" />
<ClInclude Include="KozaniManager-Override.h" />
<ClInclude Include="KozaniManagerActivity.h" />
<ClInclude Include="KozaniManagerTraceLogging.h" />
<ClInclude Include="KozaniProtobufMessages.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="ConnectionManager.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="main.cpp" />
<ClCompile Include="KozaniManagerActivity.cpp" />
<ClCompile Include="KozaniManagerTraceLogging.cpp" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\KozaniManagerProxyStub\KozaniManagerProxyStub.vcxproj">
<Project>{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}</Project>
</ProjectReference>
<ProjectReference Include="..\KozaniManagerRuntime\KozaniManagerRuntime.vcxproj">
<Project>{400ed5ec-4530-4adb-8dce-9d1e6708a1f5}</Project>
</ProjectReference>
<ProjectReference Include="..\KozaniProtocol\KozaniProtocol.vcxproj">
<Project>{3f28c3ed-2548-4530-8b6c-832fae0e993d}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="KozaniManager.rc">
<AdditionalIncludeDirectories>$(RepoRoot)\dev\Common;$(RepoRoot);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.WindowsAppSDK.Protobuf.$(MicrosoftWindowsAppSDKProtobufVersion)\build\native\Microsoft.WindowsAppSDK.Protobuf.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.WindowsAppSDK.Protobuf.$(MicrosoftWindowsAppSDKProtobufVersion)\build\native\Microsoft.WindowsAppSDK.Protobuf.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('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.WindowsAppSDK.Protobuf.$(MicrosoftWindowsAppSDKProtobufVersion)\build\native\Microsoft.WindowsAppSDK.Protobuf.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.WindowsAppSDK.Protobuf.$(MicrosoftWindowsAppSDKProtobufVersion)\build\native\Microsoft.WindowsAppSDK.Protobuf.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.WindowsAppSDK.Protobuf.$(MicrosoftWindowsAppSDKProtobufVersion)\build\native\Microsoft.WindowsAppSDK.Protobuf.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.WindowsAppSDK.Protobuf.$(MicrosoftWindowsAppSDKProtobufVersion)\build\native\Microsoft.WindowsAppSDK.Protobuf.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,68 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="main.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KozaniManagerActivity.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KozaniManagerTraceLogging.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="ConnectionManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="pch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniManager-Constants.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniManager-Override.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniManagerActivity.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniManagerTraceLogging.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniProtobufMessages.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniManager-Constants.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="ConnectionManager.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="KozaniManager.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

Просмотреть файл

@ -1,131 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"
#include <wrl\module.h>
#include <KozaniManager_h.h>
#include "ConnectionManager.h"
#include "..\KozaniManager\KozaniManager-Constants.h"
#include "KozaniManagerActivity.h"
using namespace Microsoft::WRL;
using namespace Microsoft::Kozani::DvcProtocol;
extern volatile LONG g_newConnectionCount;
extern Microsoft::Kozani::Manager::ConnectionManager g_connectionManager;
class KozaniDvcCallback : public Microsoft::WRL::RuntimeClass<
Microsoft::WRL::RuntimeClassFlags<Microsoft::WRL::ClassicCom>,
IWTSVirtualChannelCallback>
{
public:
KozaniDvcCallback(IWTSVirtualChannel* pChannel, IWTSVirtualChannelManager* pChannelMgr)
: m_channel(pChannel), m_channelManager(pChannelMgr)
{
}
//
// IWTSVirtualChannelCallback
//
HRESULT STDMETHODCALLTYPE OnDataReceived(ULONG size, _In_reads_(size) BYTE* data) override try
{
LOG_HR_MSG(KOZANI_E_INFO, "IWTSVirtualChannelCallback::OnDataReceived(), cbSize = %u, pChannelMgr=0x%p, pChannel=0x%p",
size, m_channelManager.get(), m_channel.get());
g_connectionManager.ProcessProtocolDataUnit(data, size, m_channelManager.get(), m_channel.get());
return S_OK;
}
CATCH_RETURN()
HRESULT STDMETHODCALLTYPE OnClose() override try
{
LOG_HR_MSG(KOZANI_E_INFO, "IWTSVirtualChannelCallback::OnClose() - pChannelMgr=0x%p, pChannel=0x%p",
m_channelManager.get(), m_channel.get());
g_connectionManager.OnDvcChannelClose(m_channel.get());
return S_OK;
}
CATCH_RETURN()
private:
wil::com_ptr<IWTSVirtualChannelManager> m_channelManager;
wil::com_ptr<IWTSVirtualChannel> m_channel;
};
struct __declspec(uuid(PR_KOZANIDVC_CLSID_STRING)) KozaniDvcImpl WrlFinal : RuntimeClass<RuntimeClassFlags<ClassicCom>, IWTSPlugin, IWTSListenerCallback>
{
//
// IWTSPlugin
//
STDMETHODIMP Initialize(IWTSVirtualChannelManager* pChannelMgr) override try
{
// Called early in MSRDC launch, before a connection to a new remote session.
LOG_HR_MSG(KOZANI_E_INFO, "IWTSPlugin::Initialize() - pChannelMgr=0x%p", pChannelMgr);
m_channelManager = pChannelMgr;
wil::com_ptr<IWTSListener> listener;
// Attach the callback to the "KozaniDvc" endpoint.
RETURN_IF_FAILED(m_channelManager->CreateListener(
DvcChannelName,
0, // uFlags - reserved and must be set to zero
this,
&listener));
g_connectionManager.OnRemoteDesktopInitializeConnection(pChannelMgr);
InterlockedIncrement(&g_newConnectionCount);
return S_OK;
}
CATCH_RETURN()
STDMETHODIMP Connected() override try
{
LOG_HR_MSG(KOZANI_E_INFO, "IWTSPlugin::Connected() - pChannelMgr=0x%p", m_channelManager.get());
return S_OK;
}
CATCH_RETURN()
STDMETHODIMP Disconnected(DWORD dwDisconnectCode) override try
{
LOG_HR_MSG(KOZANI_E_INFO, "IWTSPlugin::Disconnected() - pChannelMgr=0x%p, dwDisconnectCode = %u", m_channelManager.get(), dwDisconnectCode);
g_connectionManager.OnRemoteDesktopDisconnect(m_channelManager.get());
return S_OK;
}
CATCH_RETURN()
STDMETHODIMP Terminated() override try
{
LOG_HR_MSG(KOZANI_E_INFO, "IWTSPlugin::Terminated() - pChannelMgr=0x%p", m_channelManager.get());
g_connectionManager.OnRemoteDesktopDisconnect(m_channelManager.get());
return S_OK;
}
CATCH_RETURN()
//
// IWTSListenerCallback
//
STDMETHODIMP OnNewChannelConnection(
IWTSVirtualChannel* pChannel,
_In_opt_ BSTR /* data */, // Per MSDN, the data parameter "is not implemented and is reserved for future use".
_Out_ BOOL* pbAccept,
_Out_ IWTSVirtualChannelCallback** ppCallback) override try
{
LOG_HR_MSG(KOZANI_E_INFO, "IWTSListenerCallback::OnNewChannelConnection is called! pChannelMgr=0x%p, pChannel=0x%p",
m_channelManager.get(), pChannel);
auto pConnection = Make<KozaniDvcCallback>(pChannel, m_channelManager.get());
*ppCallback = pConnection.Detach();
*pbAccept = TRUE;
return S_OK;
}
CATCH_RETURN()
private:
wil::com_ptr<IWTSVirtualChannelManager> m_channelManager;
};
CoCreatableClass(KozaniDvcImpl);

Просмотреть файл

@ -1,10 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "KozaniManagerTraceLogging.h"
namespace Microsoft::Kozani::KozaniManager::Activity
{
}

Просмотреть файл

@ -1,6 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"

Просмотреть файл

@ -1,42 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"
#include "Microsoft.TraceLogging.h"
bool __stdcall wilResultLoggingThreadCallback(const wil::FailureInfo& failure) noexcept;
GUID& GetLifetimeActivityId() noexcept;
class Microsoft_Kozani_Manager_TraceLogger final : public wil::TraceLoggingProvider
{
IMPLEMENT_TRACELOGGING_CLASS(
Microsoft_Kozani_Manager_TraceLogger,
"Microsoft.Kozani.Manager",
// 43d44131-26c8-471e-b9d6-fba649e59cfa
(0x43d44131, 0x26c8, 0x471e, 0xb9, 0xd6, 0xfb, 0xa6, 0x49, 0xe5, 0x9c, 0xfa));
public:
};
#define _MICROSOFT_KOZANI_MANAGER_WRITE_FAILURE_INFO \
TraceLoggingValue(static_cast<uint32_t>(failure.type), "Type"),\
TraceLoggingValue(failure.hr, "HResult"),\
TraceLoggingValue(failure.pszFile, "File"),\
TraceLoggingValue(failure.uLineNumber,"Line"),\
TraceLoggingValue(failure.pszModule, "Module"),\
TraceLoggingValue(failure.pszMessage,"Message")
// In the future, if the project includes multiple modules and threads, we could log that data as well from FailureInfo
// In the future and on need basis, we could log call stack as well
#define KozaniManager_WriteEventWithActivity(_eventname_,_activityId_,...) \
TraceLoggingWriteActivity(\
Microsoft_Kozani_Manager_TraceLogger::Provider(),\
_eventname_,\
_activityId_,\
nullptr,\
_MICROSOFT_KOZANI_MANAGER_WRITE_FAILURE_INFO,\
__VA_ARGS__)

Просмотреть файл

@ -1,14 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include "pch.h"
// Include all protobuf files here so we can disable any warnings they contain
#pragma warning(push)
#pragma warning(disable : 4244) // 'conversion' conversion from 'type1' to 'type2', possible loss of data
#pragma warning(disable : 4127) // conditional expression is constant
#pragma warning(disable : 5054) // operator '*': deprecated between enumerations of different types
#include <Kozani.DVC.pb.h>
#pragma warning(pop)

Просмотреть файл

@ -1,243 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include "pch.h"
#include <fstream>
#include <filesystem>
#include "..\KozaniManager\KozaniManager-Constants.h"
#include <KozaniManager_h.h>
// Including this file once per binary will automatically opt WIL error handling macros into calling RoOriginateError when they
// begin logging a new error. This greatly improves the debuggability of errors that propagate before a failfast.
#include <wil/result_originate.h>
#include <wrl\module.h>
#include <winrt_WindowsAppRuntime.h>
#include <windows.applicationmodel.activation.h>
#include "KozaniDvc-Constants.h"
#include "ConnectionManager.h"
using namespace Microsoft::WRL;
using namespace Microsoft::Kozani::Manager;
namespace Dvc = Microsoft::Kozani::DVC;
// Implement the LifetimeManager as a classic COM Out-of-Proc server, via WRL
// See https://docs.microsoft.com/cpp/cppcx/wrl/how-to-create-a-classic-com-component-using-wrl?redirectedfrom=MSDN&view=vs-2019 for more details
static constexpr GUID KozaniManager_guid { PR_KOZANIMANAGER_CLSID_GUID };
Microsoft::Kozani::Manager::ConnectionManager g_connectionManager;
// Accumulated number of connections to remote server. Used to keep track of whether a new connection is made between remote desktop client is
// launched and connection wait time out.
volatile LONG g_newConnectionCount{};
static std::string GetConnectionId(PCWSTR connectionRdpFilePath)
{
std::fstream rdpFile;
// Set exception behavior - will throw exception if the file stream operation hits error. Will NOT throw if read has reached end-of-file
rdpFile.exceptions(std::fstream::failbit | std::fstream::badbit);
try
{
rdpFile.open(connectionRdpFilePath, std::fstream::in);
}
catch (...)
{
// Failing to open the file may be caused by non-existing file or file path is a folder instead of a file. Check these 2 conditions and
// throw with meaningful error code if it matches either condition.
THROW_HR_IF_MSG(HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND), !std::filesystem::exists(connectionRdpFilePath), "File %ls does not exist", connectionRdpFilePath);
THROW_HR_IF_MSG(E_INVALIDARG, !std::filesystem::is_regular_file(connectionRdpFilePath), "File %ls is not a regular file. Maybe it is a folder?", connectionRdpFilePath);
}
std::string connectionId;
bool readNextLine{ true };
std::string line;
while (readNextLine)
{
std::getline(rdpFile, line);
size_t switchOffset{ line.find(Dvc::Constants::ConnectionIdSwitch) };
if (switchOffset != std::string::npos)
{
size_t idOffset{ line.find_first_not_of(" \t", switchOffset + ARRAYSIZE(Dvc::Constants::ConnectionIdSwitch) - 1) };
if (idOffset != std::string::npos)
{
while (idOffset < line.length() && !isspace(line[idOffset]))
{
connectionId.push_back(line[idOffset]);
idOffset++;
}
}
break;
}
readNextLine = !rdpFile.eof();
}
return std::move(connectionId);
}
struct __declspec(uuid(PR_KOZANIMANAGER_CLSID_STRING)) KozaniManagerImpl WrlFinal : RuntimeClass<RuntimeClassFlags<ClassicCom>, IKozaniManager>
{
STDMETHODIMP ActivateRemoteApplication(
INT32 activationKind,
_In_ PCWSTR appUserModelId,
_In_ PCWSTR connectionRdpFilePath,
_In_ IKozaniRemoteDesktopClientLauncher* rdcLauncher,
DWORD associatedLocalProcessId,
_In_opt_::IInspectable* activatedEventArgs,
_In_opt_ IKozaniStatusCallback* statusCallback,
_In_opt_ PCWSTR /*additionalSettingsFilePath*/ ) noexcept try
{
RETURN_HR_IF_NULL(E_INVALIDARG, appUserModelId);
RETURN_HR_IF_NULL(E_INVALIDARG, connectionRdpFilePath);
RETURN_HR_IF_NULL(E_INVALIDARG, rdcLauncher);
const auto activationKindLocal{ static_cast<winrt::Windows::ApplicationModel::Activation::ActivationKind>(activationKind) };
RETURN_HR_IF_MSG(KOZANI_E_UNSUPPORTED_ACTIVATION_KIND,
!IsActivationKindSupported(activationKindLocal),
"Activation kind: %d", activationKind);
winrt::Windows::ApplicationModel::Activation::IActivatedEventArgs args;
if (activatedEventArgs)
{
args = winrt::convert_from_abi<winrt::Windows::ApplicationModel::Activation::IActivatedEventArgs>(activatedEventArgs);
}
std::string connectionId{ GetConnectionId(connectionRdpFilePath) };
RETURN_HR_IF_MSG(E_INVALIDARG, connectionId.empty(), "Invalid connection RDP file - connectionId switch not found or the ID string is empty");
std::shared_ptr<ActivationRequestStatusReporter> requestStatusReporter{
g_connectionManager.AddNewActivationRequest(connectionId, activationKindLocal, appUserModelId, args, statusCallback, associatedLocalProcessId) };
// If failure happens after this point, we will automatically cleanup the new request from tracking mechanism.
auto cleanupRequestOnFailure = wil::scope_exit([&]()
{
g_connectionManager.CleanupActivationRequest(requestStatusReporter.get());
});
const LONG connectionCountBeforeRDCLaunch{ InterlockedAdd(&g_newConnectionCount, 0) };
RETURN_IF_FAILED(rdcLauncher->Launch(connectionRdpFilePath, nullptr));
// Wait for request status change or time out to ensure this module is alive for RDC to load the DVC plugin hosted by the module.
// If the module is exiting while RDC is loading the DVC plugin, the DVC loading will fail and RDC will ignore the failure and
// continue without the DVC. MaxDvcPluginLoadingTime gives enough time for DVC loading.
bool waitSucceeded{ requestStatusReporter->WaitForStatusChange(MaxDvcPluginLoadingTime) };
if (!waitSucceeded)
{
// Wait timed out before request stauts changes.
const LONG connectionCountAfterRDCLaunch{ InterlockedAdd(&g_newConnectionCount, 0) };
if (connectionCountAfterRDCLaunch == connectionCountBeforeRDCLaunch)
{
// There are no new connections detected during the wait time (MaxDvcPluginLoadingTime).
// RDC must be reusig an existing connection. Continue to wait for acknowledgment of the connection from DVC server side.
waitSucceeded = requestStatusReporter->WaitForStatusChange(MaxConnectionWaitTime);
}
else
{
// New connection detected during the wait time. We will return success here as the wait time for a new connection to
// finish cannot be determined. The user may take some time to enter the password to login and the login can take time
// to finish depending on the server's workload. The IKozaniStatusCallback object will be used by the DVC to communicate
// any issues in this longer process.
cleanupRequestOnFailure.release();
return S_OK;
}
}
if (waitSucceeded)
{
auto status{ requestStatusReporter->GetStatus() };
if (status == RequestStatus::Failed)
{
RETURN_HR(E_APPLICATION_ACTIVATION_EXEC_FAILURE);
}
}
else
{
// Wait timed out.
RETURN_HR(E_APPLICATION_ACTIVATION_TIMED_OUT);
}
// No failures before returning - disable the auto cleanup on failure logic.
cleanupRequestOnFailure.release();
return S_OK;
} CATCH_RETURN()
private:
bool IsActivationKindSupported(winrt::Windows::ApplicationModel::Activation::ActivationKind kind)
{
switch (kind)
{
case winrt::Windows::ApplicationModel::Activation::ActivationKind::Launch:
[[fallthrough]];
case winrt::Windows::ApplicationModel::Activation::ActivationKind::File:
[[fallthrough]];
case winrt::Windows::ApplicationModel::Activation::ActivationKind::Protocol:
return true;
}
return false;
}
};
CoCreatableClass(KozaniManagerImpl);
wil::unique_event g_endOfTheLine;
void EndOfTheLine()
{
g_endOfTheLine.SetEvent();
}
int WINAPI WinMain(HINSTANCE /*hInstance*/, HINSTANCE /*hPrevInstance*/, PSTR /*lpCmdLine*/, int /*nCmdShow*/)
{
// Hook up wil logging MACROs to trace provider.
wil::SetResultLoggingCallback(&TraceFailureFromProvider<Microsoft_Kozani_Manager_TraceLogger>);
// Verify that the version of the library that we linked against is
// compatible with the version of the headers we compiled against.
GOOGLE_PROTOBUF_VERIFY_VERSION;
RETURN_IF_FAILED(::CoInitializeEx(nullptr, COINITBASE_MULTITHREADED));
wil::unique_event endOfTheLine(::CreateEventW(nullptr, TRUE, FALSE, nullptr));
RETURN_LAST_ERROR_IF_NULL(endOfTheLine);
g_endOfTheLine = std::move(endOfTheLine);
auto& module = Module<OutOfProc>::Create(EndOfTheLine);
RETURN_IF_FAILED(module.RegisterObjects());
g_endOfTheLine.wait();
// Release any COM related stuffs before calling CoUninitialize().
g_connectionManager.Close();
(void)LOG_IF_FAILED(module.UnregisterObjects());
module.Terminate();
::CoUninitialize();
google::protobuf::ShutdownProtobufLibrary();
return 0;
}
STDAPI_(BOOL) DllMain(_In_opt_ HINSTANCE hinst, DWORD reason, _In_opt_ void* reserved)
{
if (reason == DLL_PROCESS_ATTACH)
{
DisableThreadLibraryCalls(hinst);
}
// Give WIL a crack at DLLMain processing
// See DLLMain() in wil/result_macros.h for why
wil::DLLMain(hinst, reason, reserved);
return TRUE;
}

Просмотреть файл

@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Build.Tasks.Git" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.SourceLink.Common" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.SourceLink.GitHub" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.Windows.CppWinRT" version="2.0.230706.1" targetFramework="native" />
<package id="Microsoft.Windows.ImplementationLibrary" version="1.0.220914.1" targetFramework="native" />
<package id="Microsoft.WindowsAppSDK.Protobuf" version="3.21.12" targetFramework="native" />
</packages>

Просмотреть файл

@ -1,4 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include "pch.h"

Просмотреть файл

@ -1,42 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include <unknwn.h>
#include <appmodel.h>
#include <thread>
#include <mutex>
// Temporarily disable C4324 because WRL generates a false (well, irrelevant) warning
// 'Microsoft::WRL::Details::StaticStorage<Microsoft::WRL::Details::OutOfProcModuleBase<ModuleT>::GenericReleaseNotifier<T>,Microsoft::WRL::Details::StorageInstance::OutOfProcCallbackBuffer1,ModuleT>': structure was padded due to alignment specifier
#pragma warning(push)
#pragma warning(disable:4324)
#include <wrl.h>
#pragma warning(pop)
#include <wil/cppwinrt.h>
#include <wil/token_helpers.h>
// Needed to get std::wstring specialization for wil::str_printf<std::wstring>
#include <wil/stl.h>
#include <wil/resource.h>
#include <wil/result_macros.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.ApplicationModel.Activation.h>
#include <wil/com.h>
#include <WindowsAppRuntimeInsights.h>
#include <Microsoft.Utf8.h>
#include "KozaniManagerTracelogging.h"
#include "KozaniProtobufMessages.h"
#include "KozaniDvcProtocol.h"
#include "Logging.h"

Просмотреть файл

@ -1,47 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
import "oaidl.idl";
import "ocidl.idl";
import "inspectable.idl";
[object]
[uuid(5239c3b0-9e90-11ed-87cd-0800200c9a66)]
[pointer_default(unique)]
interface IKozaniStatusCallback : IInspectable
{
HRESULT OnActivated(DWORD pid, boolean isNewInstance);
HRESULT OnActivationFailed(
DWORD errorCode,
[in, string] LPCWSTR errorMessage);
HRESULT OnClosed();
};
[object]
[uuid(43665c78-faf6-4534-9411-321147fc80ea)]
[pointer_default(unique)]
interface IKozaniRemoteDesktopClientLauncher : IUnknown
{
HRESULT Launch(
[in, string] LPCWSTR connectionRdpFilePath,
[in, string, unique] LPCWSTR userName);
};
[object]
[uuid(5882f14f-f954-4af9-bbeb-a7c1a2a6357e)]
[pointer_default(unique)]
interface IKozaniManager : IUnknown
{
HRESULT ActivateRemoteApplication(
INT32 activationKind,
[in, string] LPCWSTR appUserModelId,
[in, string] LPCWSTR connectionRdpFilePath,
[in] IKozaniRemoteDesktopClientLauncher* rdcLauncher,
DWORD associatedLocalProcessId, // Use 0 if the remote app is not associated with a local process (no tracking local process for lifetime management).
[in, unique] IInspectable* activatedEventArgs, // optional - can be nullptr if there are no activatedEventArgs
[in, unique] IKozaniStatusCallback* statusCallback, // optional - can be nullptr if the caller does not need status update callbacks
[in, string, unique] LPCWSTR additionalSettingsFilePath // optional - can be nullptr if the additional settings file does not exist
);
};

Просмотреть файл

@ -1,173 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props')" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<ProjectGuid>{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<ProjectName>KozaniManagerInterface</ProjectName>
</PropertyGroup>
<PropertyGroup>
<ConfigurationType>Makefile</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<NMakeBuildCommandLine>nmake /C /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) </NMakeBuildCommandLine>
<NMakeOutput>$(IntDir)KozaniManagerInterface.h</NMakeOutput>
<NMakeCleanCommandLine>nmake /C /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) clean</NMakeCleanCommandLine>
<NMakeReBuildCommandLine>nmake /C /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) rebuild</NMakeReBuildCommandLine>
<NMakePreprocessorDefinitions>WIN32;_DEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<OutDir>$(OutDir)</OutDir>
<IntDir>$(IntDir)</IntDir>
<NMakeIncludeSearchPath>$(SolutionDir)tools</NMakeIncludeSearchPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<NMakeBuildCommandLine>nmake /C /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) </NMakeBuildCommandLine>
<NMakeOutput>$(IntDir)KozaniManagerInterface.h</NMakeOutput>
<NMakeCleanCommandLine>nmake /C /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) clean</NMakeCleanCommandLine>
<NMakeReBuildCommandLine>nmake /C /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) rebuild</NMakeReBuildCommandLine>
<NMakePreprocessorDefinitions>WIN32;NDEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<OutDir>$(OutDir)</OutDir>
<IntDir>$(IntDir)</IntDir>
<NMakeIncludeSearchPath>$(SolutionDir)tools</NMakeIncludeSearchPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<NMakeBuildCommandLine>nmake /C /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) </NMakeBuildCommandLine>
<NMakeOutput>$(IntDir)KozaniManagerInterface.h</NMakeOutput>
<NMakeCleanCommandLine>nmake /C /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) clean</NMakeCleanCommandLine>
<NMakeReBuildCommandLine>nmake /C /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) rebuild</NMakeReBuildCommandLine>
<NMakePreprocessorDefinitions>_DEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<OutDir>$(OutDir)</OutDir>
<IntDir>$(IntDir)</IntDir>
<NMakeIncludeSearchPath>$(SolutionDir)tools</NMakeIncludeSearchPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<NMakeBuildCommandLine>nmake /C /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) </NMakeBuildCommandLine>
<NMakeOutput>$(IntDir)KozaniManagerInterface.h</NMakeOutput>
<NMakeCleanCommandLine>nmake /C /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) clean</NMakeCleanCommandLine>
<NMakeReBuildCommandLine>nmake /C /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) rebuild</NMakeReBuildCommandLine>
<NMakePreprocessorDefinitions>NDEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<OutDir>$(OutDir)</OutDir>
<IntDir>$(IntDir)</IntDir>
<NMakeIncludeSearchPath>$(SolutionDir)tools</NMakeIncludeSearchPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<NMakeBuildCommandLine>nmake /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) </NMakeBuildCommandLine>
<NMakeOutput>$(IntDir)KozaniManagerInterface.h</NMakeOutput>
<NMakeCleanCommandLine>nmake /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) clean</NMakeCleanCommandLine>
<NMakeReBuildCommandLine>nmake /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) rebuild</NMakeReBuildCommandLine>
<NMakePreprocessorDefinitions>_DEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<OutDir>$(OutDir)</OutDir>
<IntDir>$(IntDir)</IntDir>
<NMakeIncludeSearchPath>$(SolutionDir)tools</NMakeIncludeSearchPath>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<NMakeBuildCommandLine>nmake /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) </NMakeBuildCommandLine>
<NMakeOutput>$(IntDir)KozaniManagerInterface.h</NMakeOutput>
<NMakeCleanCommandLine>nmake /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) clean</NMakeCleanCommandLine>
<NMakeReBuildCommandLine>nmake /f makefile.mak ProjectDir=$(ProjectDir) SolutionDir=$(SolutionDir) OutDir=$(OutDir) IntDir=$(IntDir) TargetName=$(TargetName) Configuration=$(Configuration) Platform=$(Platform) rebuild</NMakeReBuildCommandLine>
<NMakePreprocessorDefinitions>WIN32;NDEBUG;$(NMakePreprocessorDefinitions)</NMakePreprocessorDefinitions>
<OutDir>$(OutDir)</OutDir>
<IntDir>$(IntDir)</IntDir>
<NMakeIncludeSearchPath>$(SolutionDir)tools</NMakeIncludeSearchPath>
</PropertyGroup>
<ItemDefinitionGroup>
</ItemDefinitionGroup>
<ItemGroup>
<Xml Include="appxmanifest.xml" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets')" />
</ImportGroup>
<ItemGroup>
<Midl Include="KozaniManagerInterface.idl" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<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('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,28 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<Xml Include="appxmanifest.xml" />
</ItemGroup>
<ItemGroup>
<Midl Include="KozaniManagerInterface.idl">
<Filter>Source Files</Filter>
</Midl>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,45 +0,0 @@
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See LICENSE in the project root for license information.
!IFDEF VERBOSE
!MESSAGE SolutionDir =$(SolutionDir)
!MESSAGE ProjectDir =$(ProjectDir)
!MESSAGE IntDir =$(IntDir)
!MESSAGE OutDir =$(OutDir)
!MESSAGE TargetName =$(TargetName)
!MESSAGE Configuration =$(Configuration)
!MESSAGE Platform =$(Platform)
!ENDIF
!IF "$(Platform)" == "Win32" || "$(Platform)" == "x86" || "$(Platform)" == "X86"
ENV=win32
!ELSEIF "$(Platform)" == "x64" || "$(Platform)" == "X64"
ENV=x64
!ELSEIF "$(Platform)" == "arm" || "$(Platform)" == "arm32" || "$(Platform)" == "ARM" || "$(Platform)" == "ARM32"
ENV=arm32
!ELSEIF "$(Platform)" == "arm64" || "$(Platform)" == "ARM64"
ENV=arm64
!ELSE
!ERROR "Unknown platform $(Platform)"
!endif
OutHeader=$(OutDir)$(TargetName)\KozaniManagerInterface.h
all: build
$(OutHeader): $(ProjectDir)KozaniManagerInterface.idl
@if not exist $(IntDir) md $(IntDir)
midl.exe /env $(ENV) /out $(IntDir) /h "KozaniManagerInterface.h" /W1 /char signed /target "NT60" /notlb /nologo /dlldata "dlldata.c" "$(ProjectDir)KozaniManagerInterface.idl"
@copy $(IntDir)KozaniManagerInterface.h $(OutDir)$(TargetName)\KozaniManagerInterface.h
@copy $(ProjectDir)KozaniManagerInterface.idl $(OutDir)$(TargetName)\KozaniManagerInterface.idl
build: $(OutHeader)
clean:
@if exist $(IntDir)dlldata.c del $(IntDir)dlldata.c /q
@if exist $(IntDir)KozaniManagerInterface_i.c del $(IntDir)KozaniManagerInterface_i.c /q
@if exist $(IntDir)KozaniManagerInterface_p.c del $(IntDir)KozaniManagerInterface_p.c /q
@if exist $(IntDir)KozaniManagerInterface.h del $(IntDir)KozaniManagerInterface.h /q
@if exist $(OutDir)$(TargetName)\KozaniManagerInterface.h del $(OutDir)$(TargetName)\KozaniManagerInterface.h /q
rebuild: clean build

Просмотреть файл

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Build.Tasks.Git" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.SourceLink.Common" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.SourceLink.GitHub" version="1.1.1" targetFramework="native" developmentDependency="true" />
</packages>

Просмотреть файл

@ -1,27 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
import "oaidl.idl";
import "ocidl.idl";
import "tsvirtualchannels.idl";
#include "..\KozaniManager\KozaniManager-Constants.h"
#include "KozaniManagerInterface.idl"
[uuid(PR_KOZANIMANAGER_LIBID_UUID)]
[version(1.0)]
library KozaniManager
{
[uuid(PR_KOZANIMANAGER_CLSID_UUID)]
coclass KozaniManager
{
[default] interface IKozaniManager;
};
[uuid(PR_KOZANIDVC_CLSID_UUID)]
coclass KozaniManagerDvc
{
[default] interface IWTSPlugin;
};
};

Просмотреть файл

@ -1,3 +0,0 @@
EXPORTS
DllCanUnloadNow PRIVATE
DllGetClassObject PRIVATE

Просмотреть файл

@ -1,6 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include <winresrc.h>
#define VERSIONINFO_FILENAME "KozaniManagerProxyStub.dll"
#include "eng\common\VersionInfo\AssemblyInfo.ver"

Просмотреть файл

@ -1,259 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props')" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4}</ProjectGuid>
<RootNamespace>KozaniManagerProxyStub</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<ProjectName>KozaniManagerProxyStub</ProjectName>
</PropertyGroup>
<PropertyGroup>
<TargetName>KozaniManagerProxyStub</TargetName>
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared" />
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<CustomBuildAfterTargets>PostBuildEvent</CustomBuildAfterTargets>
<IntDir>$(Platform)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<CustomBuildAfterTargets>PostBuildEvent</CustomBuildAfterTargets>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<CustomBuildAfterTargets>PostBuildEvent</CustomBuildAfterTargets>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<CustomBuildAfterTargets>PostBuildEvent</CustomBuildAfterTargets>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<CustomBuildAfterTargets>PostBuildEvent</CustomBuildAfterTargets>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<CustomBuildAfterTargets>PostBuildEvent</CustomBuildAfterTargets>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions>_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<AdditionalIncludeDirectories>(MSBuildThisFileDirectory);$(OutDir)\..\WindowsAppRuntime_DLL;$(RepoRoot)\dev\WindowsAppRuntime_Insights;$(RepoRoot)\dev\common;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<AdditionalDependencies>onecore.lib;onecoreuap.lib;%(AdditionalDependencies)</AdditionalDependencies>
<ModuleDefinitionFile>KozaniManagerProxyStub.def</ModuleDefinitionFile>
</Link>
<Midl>
<AdditionalIncludeDirectories>$(OutDir)\..\KozaniManagerInterface;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<DllDataFileName>dlldata.c</DllDataFileName>
<GenerateTypeLibrary>false</GenerateTypeLibrary>
<OutputDirectory>$(IntDir)</OutputDirectory>
</Midl>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="framework.h" />
<ClInclude Include="pch.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="$(IntDir)\dlldata.c">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
<!-- ARM64 builds of MIDL generated files require #define WIN32 or else build error
dlldata.c(24,1): error C2061: syntax error: identifier 'PROXYFILE_LIST_START'
"This only happens for ARM64. This lead to investigating why dlldata.c was written certain ways
and why was this failing. Turns out almost the entire file of rpcproxy.h is excluded if you don't
have WIN32 or _M_AMD64 defined. The fact WIN32 has 32 seems just a relic of the old 16bit -> 32bit
subsystem shift, and these days really just means the Win32 subsystem and not a specific architecture."
TL;DR make sure ARM64 builds #define WIN32 or MIDL-generated dlldata.c won't compile
-->
<PreprocessorDefinitions Condition="'$(Platform)'=='ARM64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="$(IntDir)\KozaniManager_i.c">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
<!-- ARM64 builds of MIDL generated files require #define WIN32 or else build error
dlldata.c(24,1): error C2061: syntax error: identifier 'PROXYFILE_LIST_START'
"This only happens for ARM64. This lead to investigating why dlldata.c was written certain ways
and why was this failing. Turns out almost the entire file of rpcproxy.h is excluded if you don't
have WIN32 or _M_AMD64 defined. The fact WIN32 has 32 seems just a relic of the old 16bit -> 32bit
subsystem shift, and these days really just means the Win32 subsystem and not a specific architecture."
TL;DR make sure ARM64 builds #define WIN32 or MIDL-generated dlldata.c won't compile
-->
<PreprocessorDefinitions Condition="'$(Platform)'=='ARM64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="$(IntDir)\KozaniManager_p.c">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">NotUsing</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">NotUsing</PrecompiledHeader>
<!-- ARM64 builds of MIDL generated files require #define WIN32 or else build error
dlldata.c(24,1): error C2061: syntax error: identifier 'PROXYFILE_LIST_START'
"This only happens for ARM64. This lead to investigating why dlldata.c was written certain ways
and why was this failing. Turns out almost the entire file of rpcproxy.h is excluded if you don't
have WIN32 or _M_AMD64 defined. The fact WIN32 has 32 seems just a relic of the old 16bit -> 32bit
subsystem shift, and these days really just means the Win32 subsystem and not a specific architecture."
TL;DR make sure ARM64 builds #define WIN32 or MIDL-generated dlldata.c won't compile
-->
<PreprocessorDefinitions Condition="'$(Platform)'=='ARM64'">WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="KozaniManagerProxyStub.rc">
<AdditionalIncludeDirectories>$(RepoRoot)\dev\Common;$(RepoRoot);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<Midl Include="KozaniManager.idl" />
</ItemGroup>
<ItemGroup>
<None Include="KozaniManagerProxyStub.def" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets')" />
</ImportGroup>
<ItemGroup>
<PublicHeaders Include="$(IntDir)\KozaniManager_h.h" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\KozaniManagerInterface\KozaniManagerInterface.vcxproj">
<Project>{5C0E77FA-B6F4-4B3F-AAE5-AB85CF97816F}</Project>
</ProjectReference>
</ItemGroup>
<!-- Include header files from the dev chunks -->
<Target Name="CopyFiles" AfterTargets="AfterBuild">
<Copy SourceFiles="@(PublicHeaders)" DestinationFolder="$(OutDir)" />
</Target>
<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('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,50 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="framework.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="pch.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="pch.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(IntDir)\dlldata.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(IntDir)\KozaniManager_i.c">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(IntDir)\KozaniManager_p.c">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Midl Include="KozaniManager.idl">
<Filter>Source Files</Filter>
</Midl>
</ItemGroup>
<ItemGroup>
<None Include="KozaniManagerProxyStub.def">
<Filter>Source Files</Filter>
</None>
<None Include="packages.config" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,7 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
#include <windows.h>

Просмотреть файл

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Build.Tasks.Git" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.SourceLink.Common" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.SourceLink.GitHub" version="1.1.1" targetFramework="native" developmentDependency="true" />
</packages>

Просмотреть файл

@ -1,4 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include "pch.h"

Просмотреть файл

@ -1,9 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#ifndef PCH_H
#define PCH_H
#include "framework.h"
#endif //PCH_H

Просмотреть файл

@ -1,6 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include "pch.h"
#include "KozaniManagerRuntime.h"

Просмотреть файл

@ -1,6 +0,0 @@
; Copyright (c) Microsoft Corporation. All rights reserved.
; Licensed under the MIT License. See LICENSE in the project root for license information.
EXPORTS
DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE
DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE

Просмотреть файл

@ -1,24 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#if !defined(KOZANIMANAGERRUNTIME_H)
#define KOZANIMANAGERRUNTIME_H
#include <appmodel.h>
#if defined(__cplusplus)
#define KOZANIMANAGERRUNTIME_NOEXCEPT noexcept
#else
#define KOZANIMANAGERRUNTIME_NOEXCEPT
#endif // defined(__cplusplus)
//TODO Flat-C API
// C++ friendly APIs
#if defined(__cplusplus)
//TODO C++ API
#endif // defined(__cplusplus)
#endif // KOZANIMANAGERRUNTIME_H

Просмотреть файл

@ -1,24 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
namespace Microsoft.Kozani.ManagerRuntime
{
[contractversion(1)]
apicontract ManagerRuntimeContract{};
[contract(ManagerRuntimeContract, 1)]
runtimeclass ManagerRuntimeManager
{
static ManagerRuntimeManager Create();
void ActivateRemoteApplication(
Windows.ApplicationModel.Activation.ActivationKind activationKind,
String appUserModelId,
String connectionRdpFilePath,
UInt32 associatedLocalProcessId, // optional, use 0 if you don't want the remote app lifetime to be tied to the lifetime of an associated local process
Windows.ApplicationModel.Activation.IActivatedEventArgs args, // optional - can be nullptr if there are no activatedEventArgs for Launch ActivationKind
IInspectable statusCallback, // optional - can be nullptr if the caller does not need status update callbacks
String additionalSettingsFilePath // optional - can be empty String if the additional settings file does not exist
);
};
}

Просмотреть файл

@ -1,6 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include <winresrc.h>
#define VERSIONINFO_FILENAME "KozaniManagerRuntime.dll"
#include "eng\common\VersionInfo\AssemblyInfo.ver"

Просмотреть файл

@ -1,226 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props')" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5}</ProjectGuid>
<RootNamespace>Microsoft.Kozani.ManagerRuntime</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<CppWinRTModernIDL>true</CppWinRTModernIDL>
<CppWinRTFastAbi>true</CppWinRTFastAbi>
<CppWinRTOptimized>true</CppWinRTOptimized>
<CppWinRTGenerateWindowsMetadata>true</CppWinRTGenerateWindowsMetadata>
<CppWinRTNamespaceMergeDepth>9</CppWinRTNamespaceMergeDepth>
</PropertyGroup>
<PropertyGroup>
<TargetName>KozaniManagerRuntime</TargetName>
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>(MSBuildThisFileDirectory);$(OutDir)..\KozaniManagerProxyStub;$(OutDir)\..\WindowsAppRuntime_DLL;$(RepoRoot)\dev\WindowsAppRuntime_Insights;$(RepoRoot)\dev\common;$(IntDir);$(RepoRoot)\dev\Kozani\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<PreprocessorDefinitions>KOZANIMANAGERRUNTIMEDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableUAC>false</EnableUAC>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(OutDir)\..\WindowsAppRuntime_DLL</AdditionalLibraryDirectories>
<AdditionalDependencies>onecore.lib;onecoreuap.lib;Microsoft.WindowsAppRuntime.lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>Microsoft.WindowsAppRuntime.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Midl>
<AdditionalIncludeDirectories>$(RepoRoot)\dev\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</Midl>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Link>
<ModuleDefinitionFile>KozaniManagerRuntime.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Link>
<ModuleDefinitionFile>KozaniManagerRuntime.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
<ModuleDefinitionFile>KozaniManagerRuntime.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<ModuleDefinitionFile>KozaniManagerRuntime.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Link>
<ModuleDefinitionFile>KozaniManagerRuntime.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Link>
<ModuleDefinitionFile>KozaniManagerRuntime.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="framework.h" />
<ClInclude Include="KozaniManagerRuntime.h" />
<ClInclude Include="KozaniManagerRuntimeActivity.h" />
<ClInclude Include="KozaniManagerRuntimeTraceLogging.h" />
<ClInclude Include="M.K.MR.ManagerRuntimeManager.h" />
<ClInclude Include="pch.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp" />
<ClCompile Include="KozaniManagerRuntime.cpp" />
<ClCompile Include="KozaniManagerRuntimeActivity.cpp" />
<ClCompile Include="KozaniManagerRuntimeTraceLogging.cpp" />
<ClCompile Include="M.K.MR.ManagerRuntimeManager.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
</ItemGroup>
<ItemGroup>
<Midl Include="$(MSBuildThisFileDirectory)KozaniManagerRuntime.idl" />
</ItemGroup>
<ItemGroup>
<None Include="KozaniManagerRuntime.def" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="KozaniManagerRuntime.rc">
<AdditionalIncludeDirectories>$(RepoRoot)\dev\Common;$(RepoRoot);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\KozaniManagerProxyStub\KozaniManagerProxyStub.vcxproj">
<Project>{cfc67ac3-3dc3-4981-a9bb-bc5ed06542d4}</Project>
</ProjectReference>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets')" />
</ImportGroup>
<Target Name="MakeStrippedMetadata" AfterTargets="CppWinRTMergeProjectWinMDInputs" BeforeTargets="ClCompile">
<PropertyGroup>
<_MdMergeParameters>-v @(CppWinRTMdMergeMetadataDirectories->'-metadata_dir "%(RelativeDir)."', ' ')</_MdMergeParameters>
<_MdMergeParameters>$(_MdMergeParameters) -o "$(OutDir)StrippedWinMD" @(CppWinRTMdMergeInputs->'-i "%(Identity)"', ' ') -partial -n:9 -createPublicMetadata -transformExperimental:transform</_MdMergeParameters>
</PropertyGroup>
<Exec Command="$(MdMergePath)mdmerge $(_MdMergeParameters)" />
</Target>
<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('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,77 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="framework.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="pch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniManagerRuntime.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniManagerRuntimeTraceLogging.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniManagerRuntimeActivity.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="M.K.MR.ManagerRuntimeManager.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="pch.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KozaniManagerRuntime.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KozaniManagerRuntimeActivity.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KozaniManagerRuntimeTraceLogging.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="M.K.MR.ManagerRuntimeManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Midl Include="$(MSBuildThisFileDirectory)KozaniManagerRuntime.idl" />
</ItemGroup>
<ItemGroup>
<None Include="KozaniManagerRuntime.def">
<Filter>Source Files</Filter>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="KozaniManagerRuntime.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
<ItemGroup>
<Natvis Include="$(MSBuildThisFileDirectory)..\..\natvis\wil.natvis" />
</ItemGroup>
</Project>

Просмотреть файл

@ -1,8 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"
#include "KozaniManagerRuntimeActivity.h"

Просмотреть файл

@ -1,10 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "KozaniManagerRuntimeTraceLogging.h"
namespace Microsoft::Kozani::KozaniManagerRuntime::Activity
{
}

Просмотреть файл

@ -1,6 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"

Просмотреть файл

@ -1,42 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"
#include "Microsoft.TraceLogging.h"
bool __stdcall wilResultLoggingThreadCallback(const wil::FailureInfo& failure) noexcept;
GUID& GetLifetimeActivityId() noexcept;
class Microsoft_Kozani_ManagerRuntime_TraceLogger final : public wil::TraceLoggingProvider
{
IMPLEMENT_TRACELOGGING_CLASS(
Microsoft_Kozani_ManagerRuntime_TraceLogger,
"Microsoft.Kozani.ManagerRuntime",
// 24ccf6d3-5878-4a9f-82e3-fadbac2515e7
(0x24ccf6d3, 0x5878, 0x4a9f, 0x82, 0xe3, 0xfa, 0xdb, 0xac, 0x25, 0x15, 0xe7));
public:
};
#define _MICROSOFT_KOZANI_MANAGERRUNTIME_WRITE_FAILURE_INFO \
TraceLoggingValue(static_cast<uint32_t>(failure.type), "Type"),\
TraceLoggingValue(failure.hr, "HResult"),\
TraceLoggingValue(failure.pszFile, "File"),\
TraceLoggingValue(failure.uLineNumber,"Line"),\
TraceLoggingValue(failure.pszModule, "Module"),\
TraceLoggingValue(failure.pszMessage,"Message")
// In the future, if the project includes multiple modules and threads, we could log that data as well from FailureInfo
// In the future and on need basis, we could log call stack as well
#define KozaniManagerRuntime_WriteEventWithActivity(_eventname_,_activityId_,...) \
TraceLoggingWriteActivity(\
Microsoft_Kozani_ManagerRuntime_TraceLogger::Provider(),\
_eventname_,\
_activityId_,\
nullptr,\
_MICROSOFT_KOZANI_MANAGERRUNTIME_WRITE_FAILURE_INFO,\
__VA_ARGS__)

Просмотреть файл

@ -1,67 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.
#include "pch.h"
#include "M.K.MR.ManagerRuntimeManager.h"
#include "ManagerRuntimeManager.g.cpp"
namespace winrt::Microsoft::Kozani::ManagerRuntime::implementation
{
constexpr PCWSTR c_remoteDesktopClientExe = L"mstsc.exe";
struct KozaniRemoteDesktopClientLauncher : winrt::implements<KozaniRemoteDesktopClientLauncher, IKozaniRemoteDesktopClientLauncher, IUnknown>
{
STDMETHODIMP Launch(_In_ PCWSTR connectionRdpFilePath, _In_opt_ PCWSTR /* userName */)
{
RETURN_HR_IF_NULL(E_INVALIDARG, connectionRdpFilePath);
SHELLEXECUTEINFO shellExecuteInfo{};
shellExecuteInfo.cbSize = sizeof(shellExecuteInfo);
shellExecuteInfo.fMask = SEE_MASK_NOASYNC; // Will wait for ShellExecuteEx to finish launching the remote desktop client.
shellExecuteInfo.lpFile = c_remoteDesktopClientExe;
shellExecuteInfo.lpParameters = connectionRdpFilePath;
shellExecuteInfo.nShow = SW_NORMAL;
RETURN_IF_WIN32_BOOL_FALSE_MSG(ShellExecuteEx(&shellExecuteInfo), "ShellExecuteEx failed to launch %ls", c_remoteDesktopClientExe);
return S_OK;
}
};
ManagerRuntimeManager::ManagerRuntimeManager()
{
m_kozaniManager = wil::CoCreateInstance<KozaniManager, IKozaniManager>(CLSCTX_LOCAL_SERVER);
}
winrt::Microsoft::Kozani::ManagerRuntime::ManagerRuntimeManager ManagerRuntimeManager::Create()
{
return winrt::make<winrt::Microsoft::Kozani::ManagerRuntime::implementation::ManagerRuntimeManager>();
}
void ManagerRuntimeManager::ActivateRemoteApplication(
Windows::ApplicationModel::Activation::ActivationKind activationKind,
winrt::hstring appUserModelId,
winrt::hstring connectionRdpFilePath,
UINT32 associatedLocalProcessId,
Windows::ApplicationModel::Activation::IActivatedEventArgs args,
IInspectable statusCallback,
winrt::hstring additionalSettingsFilePath)
{
// The purpose of IKozaniRemoteDesktopClientLauncher is to allow the caller of the IKozaniManager::ActivateRemoteApplication API
// to launch remote desktop client (RDC) in its process. The COM server hosting the IKozaniManager APIs is a background process,
// which may not be able to launch the RDC to desktop foreground. From experiments we've found that if the caller process is a
// foregrounddoes process (e.g., just got activated from Start Menu) but does not display a window (process with no UIs), launching
// RDC from its process will show the RDC in foreground, while launching RDC in the IKozaniManager APIs COM server process will
// have the RDC window in background with flashing icon on the taskbar.
auto rdcLauncher{ winrt::make_self<KozaniRemoteDesktopClientLauncher>() };
winrt::check_hresult(m_kozaniManager->ActivateRemoteApplication(
static_cast<INT32>(activationKind),
appUserModelId.c_str(),
connectionRdpFilePath.c_str(),
reinterpret_cast<::IKozaniRemoteDesktopClientLauncher*>(winrt::get_abi(rdcLauncher)),
associatedLocalProcessId,
args.as<::IInspectable>().get(),
statusCallback.as<::IKozaniStatusCallback>().get(),
additionalSettingsFilePath.c_str()));
}
}

Просмотреть файл

@ -1,35 +0,0 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License. See LICENSE in the project root for license information.
#pragma once
#include <KozaniManager_h.h>
#include "ManagerRuntimeManager.g.h"
namespace winrt::Microsoft::Kozani::ManagerRuntime::implementation
{
struct ManagerRuntimeManager : ManagerRuntimeManagerT<ManagerRuntimeManager>
{
ManagerRuntimeManager();
static winrt::Microsoft::Kozani::ManagerRuntime::ManagerRuntimeManager Create();
void ActivateRemoteApplication(
Windows::ApplicationModel::Activation::ActivationKind activationKind,
winrt::hstring appUserModelId,
winrt::hstring connectionRdpFilePath,
UINT32 associatedLocalProcessId,
Windows::ApplicationModel::Activation::IActivatedEventArgs args,
IInspectable statusCallback,
winrt::hstring additionalSettingsFilePath);
private:
wil::com_ptr<IKozaniManager> m_kozaniManager;
};
}
namespace winrt::Microsoft::Kozani::ManagerRuntime::factory_implementation
{
struct ManagerRuntimeManager : ManagerRuntimeManagerT<ManagerRuntimeManager, implementation::ManagerRuntimeManager>
{
};
}

Просмотреть файл

@ -1,29 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include "pch.h"
// Including this file once per binary will automatically opt WIL error handling macros into calling RoOriginateError when they
// begin logging a new error. This greatly improves the debuggability of errors that propagate before a failfast.
#include <wil/result_originate.h>
BOOL APIENTRY DllMain(HMODULE hmodule, DWORD reason, LPVOID reserved)
{
switch (reason)
{
case DLL_PROCESS_ATTACH:
// Hook up wil logging MACROs to trace provider.
wil::SetResultLoggingCallback(&TraceFailureFromProvider<Microsoft_Kozani_ManagerRuntime_TraceLogger>);
DisableThreadLibraryCalls(hmodule);
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
// Give WIL a crack at DLLMain processing
// See DLLMain() in wil/result_macros.h for why
wil::DLLMain(hmodule, reason, reserved);
return TRUE;
}

Просмотреть файл

@ -1,30 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include <unknwn.h>
#include <appmodel.h>
#include <shobjidl.h>
#include <thread>
#include <mutex>
#include <wil/cppwinrt.h>
#include <wil/token_helpers.h>
#include <wil/win32_helpers.h>
#include <wil/result.h>
#include <wil/com.h>
#include <wil/resource.h>
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Collections.h>
#include <winrt/Windows.ApplicationModel.h>
#include <winrt/Windows.ApplicationModel.AppExtensions.h>
#include <winrt/Windows.Management.Deployment.h>
#include <appmodel.identity.h>
#include <security.integritylevel.h>
#include "kozanimanagerruntime.h"

Просмотреть файл

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Build.Tasks.Git" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.SourceLink.Common" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.SourceLink.GitHub" version="1.1.1" targetFramework="native" developmentDependency="true" />
<package id="Microsoft.Windows.CppWinRT" version="2.0.230706.1" targetFramework="native" />
<package id="Microsoft.Windows.ImplementationLibrary" version="1.0.220914.1" targetFramework="native" />
</packages>

Просмотреть файл

@ -1,4 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include "pch.h"

Просмотреть файл

@ -1,21 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
// pch.h: This is a precompiled header file.
// Files listed below are compiled only once, improving build performance for future builds.
// This also affects IntelliSense performance, including code completion and many code browsing features.
// However, files listed here are ALL re-compiled if any one of them is updated between builds.
// Do not add files here that you will be updating frequently as this negates the performance advantage.
#ifndef PCH_H
#define PCH_H
#include <WindowsAppRuntimeInsights.h>
// add headers that you want to pre-compile here
#include "framework.h"
#include "KozaniManagerRuntimeActivity.h"
#include "KozaniManagerRuntimeTraceLogging.h"
#include "Logging.h"
#endif //PCH_H

Просмотреть файл

@ -1,6 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include "pch.h"
#include "KozaniPackage.h"

Просмотреть файл

@ -1,6 +0,0 @@
; Copyright (c) Microsoft Corporation. All rights reserved.
; Licensed under the MIT License. See LICENSE in the project root for license information.
EXPORTS
DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE
DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE

Просмотреть файл

@ -1,24 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#if !defined(KOZANIPACKAGE_H)
#define KOZANIPACKAGE_H
#include <appmodel.h>
#if defined(__cplusplus)
#define KOZANIPACKAGE_NOEXCEPT noexcept
#else
#define KOZANIPACKAGE_NOEXCEPT
#endif // defined(__cplusplus)
//TODO Flat-C API
// C++ friendly APIs
#if defined(__cplusplus)
//TODO C++ API
#endif // defined(__cplusplus)
#endif // KOZANIPACKAGE_H

Просмотреть файл

@ -1,17 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
namespace Microsoft.Kozani.Package
{
[contractversion(1)]
apicontract PackageContract{};
[contract(PackageContract, 1)]
runtimeclass PackageManager
{
/// Get a Package manager for the caller's context.
static PackageManager Open();
void TODO_ReplaceMeWithRealContent();
};
}

Просмотреть файл

@ -1,6 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#include <winresrc.h>
#define VERSIONINFO_FILENAME "KozaniPackage.dll"
#include "eng\common\VersionInfo\AssemblyInfo.ver"

Просмотреть файл

@ -1,221 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props')" />
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|ARM64">
<Configuration>Debug</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|ARM64">
<Configuration>Release</Configuration>
<Platform>ARM64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<Keyword>Win32Proj</Keyword>
<ProjectGuid>{DDBF2C30-2ED9-4C39-9289-CBB762B83AE9}</ProjectGuid>
<RootNamespace>KozaniPackage</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<CppWinRTModernIDL>true</CppWinRTModernIDL>
<CppWinRTFastAbi>true</CppWinRTFastAbi>
<CppWinRTOptimized>true</CppWinRTOptimized>
<CppWinRTGenerateWindowsMetadata>true</CppWinRTGenerateWindowsMetadata>
<CppWinRTNamespaceMergeDepth>9</CppWinRTNamespaceMergeDepth>
</PropertyGroup>
<PropertyGroup>
<TargetName>KozaniPackage</TargetName>
<ConfigurationType>DynamicLibrary</ConfigurationType>
<PlatformToolset>v143</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Debug'">
<UseDebugLibraries>true</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<UseDebugLibraries>false</UseDebugLibraries>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="Configuration">
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="Configuration">
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared" />
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<ItemDefinitionGroup>
<ClCompile>
<AdditionalIncludeDirectories>(MSBuildThisFileDirectory);$(OutDir)\..\WindowsAppRuntime_DLL;$(RepoRoot)\dev\WindowsAppRuntime_Insights;$(RepoRoot)\dev\common;$(IntDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<PrecompiledHeader>Use</PrecompiledHeader>
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<PreprocessorDefinitions>KOZANIPACKAGEDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableUAC>false</EnableUAC>
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);$(OutDir)\..\WindowsAppRuntime_DLL</AdditionalLibraryDirectories>
<AdditionalDependencies>onecore.lib;onecoreuap.lib;Microsoft.WindowsAppRuntime.lib;%(AdditionalDependencies)</AdditionalDependencies>
<DelayLoadDLLs>Microsoft.WindowsAppRuntime.dll;%(DelayLoadDLLs)</DelayLoadDLLs>
</Link>
<Midl>
<AdditionalIncludeDirectories>$(RepoRoot)\dev\common;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</Midl>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Debug'">
<ClCompile>
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Platform)'=='Win32'">
<ClCompile>
<PreprocessorDefinitions>WIN32;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<Link>
<ModuleDefinitionFile>KozaniPackage.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
<Link>
<ModuleDefinitionFile>KozaniPackage.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Link>
<ModuleDefinitionFile>KozaniPackage.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Link>
<ModuleDefinitionFile>KozaniPackage.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">
<Link>
<ModuleDefinitionFile>KozaniPackage.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">
<Link>
<ModuleDefinitionFile>KozaniPackage.def</ModuleDefinitionFile>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="framework.h" />
<ClInclude Include="KozaniPackage.h" />
<ClInclude Include="KozaniPackageActivity.h" />
<ClInclude Include="KozaniPackageTraceLogging.h" />
<ClInclude Include="M.K.P.PackageManager.h" />
<ClInclude Include="pch.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp" />
<ClCompile Include="KozaniPackage.cpp" />
<ClCompile Include="KozaniPackageActivity.cpp" />
<ClCompile Include="KozaniPackageTraceLogging.cpp" />
<ClCompile Include="M.K.P.PackageManager.cpp" />
<ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|ARM64'">Create</PrecompiledHeader>
<PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|ARM64'">Create</PrecompiledHeader>
</ClCompile>
<ClCompile Include="$(GeneratedFilesDir)module.g.cpp" />
</ItemGroup>
<ItemGroup>
<Midl Include="$(MSBuildThisFileDirectory)KozaniPackage.idl" />
</ItemGroup>
<ItemGroup>
<None Include="KozaniPackage.def" />
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="KozaniPackage.rc">
<AdditionalIncludeDirectories>$(RepoRoot)\dev\Common;$(RepoRoot);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ResourceCompile>
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets')" />
<Import Project="$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets" Condition="Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets')" />
</ImportGroup>
<Target Name="MakeStrippedMetadata" AfterTargets="CppWinRTMergeProjectWinMDInputs" BeforeTargets="ClCompile">
<PropertyGroup>
<_MdMergeParameters>-v @(CppWinRTMdMergeMetadataDirectories->'-metadata_dir "%(RelativeDir)."', ' ')</_MdMergeParameters>
<_MdMergeParameters>$(_MdMergeParameters) -o "$(OutDir)StrippedWinMD" @(CppWinRTMdMergeInputs->'-i "%(Identity)"', ' ') -partial -n:9 -createPublicMetadata -transformExperimental:transform</_MdMergeParameters>
</PropertyGroup>
<Exec Command="$(MdMergePath)mdmerge $(_MdMergeParameters)" />
</Target>
<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('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.CppWinRT.$(MicrosoftWindowsCppWinRTVersion)\build\native\Microsoft.Windows.CppWinRT.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Windows.ImplementationLibrary.$(MicrosoftWindowsImplementationLibraryVersion)\build\native\Microsoft.Windows.ImplementationLibrary.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.Common.$(MicrosoftSourceLinkCommonVersion)\build\Microsoft.SourceLink.Common.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.Build.Tasks.Git.$(MicrosoftBuildTasksGitVersion)\build\Microsoft.Build.Tasks.Git.targets'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.props'))" />
<Error Condition="!Exists('$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(NugetPackageDirectory)\Microsoft.SourceLink.GitHub.$(MicrosoftSourceLinkGitHubVersion)\build\Microsoft.SourceLink.GitHub.targets'))" />
</Target>
</Project>

Просмотреть файл

@ -1,71 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="framework.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="pch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniPackage.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniPackageTraceLogging.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="KozaniPackageActivity.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="M.K.P.PackageManager.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="pch.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KozaniPackage.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KozaniPackageActivity.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="KozaniPackageTraceLogging.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="M.K.P.PackageManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<Midl Include="$(MSBuildThisFileDirectory)KozaniPackage.idl" />
</ItemGroup>
<ItemGroup>
<None Include="KozaniPackage.def">
<Filter>Source Files</Filter>
</None>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="KozaniPackage.rc">
<Filter>Resource Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

Просмотреть файл

@ -1,8 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"
#include "KozaniPackageActivity.h"

Просмотреть файл

@ -1,10 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "KozaniPackageTraceLogging.h"
namespace Microsoft::Kozani::KozaniPackage::Activity
{
}

Просмотреть файл

@ -1,6 +0,0 @@
// Copyright (c) Microsoft Corporation and Contributors.
// Licensed under the MIT License.
#pragma once
#include "pch.h"

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше