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:
Родитель
370476e849
Коммит
9664ff3740
|
@ -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)' < '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"
|
Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше
Загрузка…
Ссылка в новой задаче