diff --git a/WindowsAppRuntime.sln b/WindowsAppRuntime.sln index 8945f64557..775f444ce2 100644 --- a/WindowsAppRuntime.sln +++ b/WindowsAppRuntime.sln @@ -67,6 +67,7 @@ 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 @@ -600,7 +601,9 @@ 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}" @@ -610,6 +613,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "KozaniManagerRuntime", "dev {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 Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -2158,6 +2165,21 @@ Global {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 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -2342,6 +2364,8 @@ Global {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} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4B3D7591-CFEC-4762-9A07-ABE99938FB77} diff --git a/dev/Kozani/KozaniManager/KozaniManager.vcxproj b/dev/Kozani/KozaniManager/KozaniManager.vcxproj index 9b4c4409e7..254921b925 100644 --- a/dev/Kozani/KozaniManager/KozaniManager.vcxproj +++ b/dev/Kozani/KozaniManager/KozaniManager.vcxproj @@ -156,6 +156,9 @@ {CFC67AC3-3DC3-4981-A9BB-BC5ED06542D4} + + {400ed5ec-4530-4adb-8dce-9d1e6708a1f5} + @@ -187,4 +190,4 @@ - + \ No newline at end of file diff --git a/dev/Kozani/KozaniManager/KozaniManager.vcxproj.filters b/dev/Kozani/KozaniManager/KozaniManager.vcxproj.filters index 6ad08a6a9c..8b12b793c9 100644 --- a/dev/Kozani/KozaniManager/KozaniManager.vcxproj.filters +++ b/dev/Kozani/KozaniManager/KozaniManager.vcxproj.filters @@ -32,9 +32,6 @@ Header Files - - Header Files - Source Files @@ -45,4 +42,9 @@ - + + + Resource Files + + + \ No newline at end of file diff --git a/dev/Kozani/KozaniManager/main.cpp b/dev/Kozani/KozaniManager/main.cpp index 312878e7a8..6f3797055b 100644 --- a/dev/Kozani/KozaniManager/main.cpp +++ b/dev/Kozani/KozaniManager/main.cpp @@ -13,6 +13,8 @@ #include +#include + using namespace Microsoft::WRL; // Implement the LifetimeManager as a classic COM Out-of-Proc server, via WRL @@ -22,13 +24,21 @@ static constexpr GUID KozaniManager_guid { PR_KOZANIMANAGER_CLSID_GUID }; struct __declspec(uuid(PR_KOZANIMANAGER_CLSID_STRING)) KozaniManagerImpl WrlFinal : RuntimeClass, IKozaniManager> { - STDMETHODIMP Initialize() + STDMETHODIMP ActivateRemoteApplication( + INT32 activationKind, + PCWSTR appUserModelId, + PCWSTR connectionRdpFilePath, + PCWSTR additionalSettingsFilePath, + ::IInspectable* activatedEventArgs, + IKozaniStatusCallback* statusCallback, + DWORD associatedLocalProcessId) { - return S_OK; - } + // TODO: https://task.ms/42882034 temporary code to enable initial testing of the in-proc WinRT API and OOP COM API. Will be replaced with real impl later. + if (statusCallback != nullptr) + { + RETURN_IF_FAILED(statusCallback->OnActivated(associatedLocalProcessId)); + } - STDMETHODIMP Shutdown() - { return S_OK; } }; diff --git a/dev/Kozani/KozaniManagerInterface/KozaniManagerInterface.idl b/dev/Kozani/KozaniManagerInterface/KozaniManagerInterface.idl index dc6c6797f3..7720c9ea98 100644 --- a/dev/Kozani/KozaniManagerInterface/KozaniManagerInterface.idl +++ b/dev/Kozani/KozaniManagerInterface/KozaniManagerInterface.idl @@ -3,13 +3,33 @@ 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); + + HRESULT OnActivationFailed( + DWORD errorCode, + [in, string] LPCWSTR errorMessage); + + HRESULT OnClosed(); +}; [object] [uuid(5882f14f-f954-4af9-bbeb-a7c1a2a6357e)] [pointer_default(unique)] interface IKozaniManager : IUnknown { - HRESULT Initialize(); - - HRESULT Shutdown(); + HRESULT ActivateRemoteApplication( + INT32 activationKind, + [in, string] LPCWSTR appUserModelId, + [in, string] LPCWSTR connectionRdpFilePath, + [in, string] LPCWSTR additionalSettingsFilePath, + [in] IInspectable* activatedEventArgs, + [in] IKozaniStatusCallback* statusCallback, + DWORD associatedLocalProcessId); }; diff --git a/dev/Kozani/KozaniManagerRuntime/KozaniManagerRuntime.idl b/dev/Kozani/KozaniManagerRuntime/KozaniManagerRuntime.idl index 56fa13e638..9f0045d36f 100644 --- a/dev/Kozani/KozaniManagerRuntime/KozaniManagerRuntime.idl +++ b/dev/Kozani/KozaniManagerRuntime/KozaniManagerRuntime.idl @@ -9,9 +9,14 @@ namespace Microsoft.Kozani.ManagerRuntime [contract(ManagerRuntimeContract, 1)] runtimeclass ManagerRuntimeManager { - /// Get a ManagerRuntime manager for the caller's context. - static ManagerRuntimeManager Open(); + static ManagerRuntimeManager Create(); - void TODO_ReplaceMeWithRealContent(); + void ActivateRemoteApplication( + Windows.ApplicationModel.Activation.ActivationKind activationKind, + String appUserModelId, + String connectionRdpFilePath, + String additionalSettingsFilePath, + Windows.ApplicationModel.Activation.IActivatedEventArgs args, // optional, can be nullptr + IInspectable statusCallback); }; } diff --git a/dev/Kozani/KozaniManagerRuntime/KozaniManagerRuntime.vcxproj b/dev/Kozani/KozaniManagerRuntime/KozaniManagerRuntime.vcxproj index 14683d372a..516c55af93 100644 --- a/dev/Kozani/KozaniManagerRuntime/KozaniManagerRuntime.vcxproj +++ b/dev/Kozani/KozaniManagerRuntime/KozaniManagerRuntime.vcxproj @@ -35,7 +35,7 @@ 16.0 Win32Proj {400ED5EC-4530-4ADB-8DCE-9D1E6708A1F5} - KozaniManagerRuntime + Microsoft.Kozani.ManagerRuntime 10.0 true true @@ -92,7 +92,7 @@ - (MSBuildThisFileDirectory);$(OutDir)\..\WindowsAppRuntime_DLL;$(RepoRoot)\dev\WindowsAppRuntime_Insights;$(RepoRoot)\dev\common;$(IntDir);%(AdditionalIncludeDirectories) + (MSBuildThisFileDirectory);$(OutDir)..\KozaniManagerProxyStub;$(OutDir)\..\WindowsAppRuntime_DLL;$(RepoRoot)\dev\WindowsAppRuntime_Insights;$(RepoRoot)\dev\common;$(IntDir);%(AdditionalIncludeDirectories) Use pch.h KOZANIMANAGERRUNTIMEDLL_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) @@ -189,6 +189,11 @@ $(RepoRoot)\dev\Common;$(RepoRoot);%(AdditionalIncludeDirectories) + + + {cfc67ac3-3dc3-4981-a9bb-bc5ed06542d4} + + @@ -218,4 +223,4 @@ - + \ No newline at end of file diff --git a/dev/Kozani/KozaniManagerRuntime/KozaniManagerRuntime.vcxproj.filters b/dev/Kozani/KozaniManagerRuntime/KozaniManagerRuntime.vcxproj.filters index 8c1495aa34..c120a9f8e2 100644 --- a/dev/Kozani/KozaniManagerRuntime/KozaniManagerRuntime.vcxproj.filters +++ b/dev/Kozani/KozaniManagerRuntime/KozaniManagerRuntime.vcxproj.filters @@ -53,6 +53,9 @@ Source Files + + Source Files + diff --git a/dev/Kozani/KozaniManagerRuntime/M.K.MR.ManagerRuntimeManager.cpp b/dev/Kozani/KozaniManagerRuntime/M.K.MR.ManagerRuntimeManager.cpp index 5ac6e01514..db5d985a01 100644 --- a/dev/Kozani/KozaniManagerRuntime/M.K.MR.ManagerRuntimeManager.cpp +++ b/dev/Kozani/KozaniManagerRuntime/M.K.MR.ManagerRuntimeManager.cpp @@ -5,16 +5,35 @@ #include "M.K.MR.ManagerRuntimeManager.h" -#include "Microsoft.Kozani.ManagerRuntime.ManagerRuntimeManager.g.cpp" +#include "ManagerRuntimeManager.g.cpp" namespace winrt::Microsoft::Kozani::ManagerRuntime::implementation { - winrt::Microsoft::Kozani::ManagerRuntime::ManagerRuntimeManager ManagerRuntimeManager::Open() + ManagerRuntimeManager::ManagerRuntimeManager() { - throw hresult_not_implemented(); + m_kozaniManager = wil::CoCreateInstance(CLSCTX_LOCAL_SERVER); } - void ManagerRuntimeManager::TODO_ReplaceMeWithRealContent() + + winrt::Microsoft::Kozani::ManagerRuntime::ManagerRuntimeManager ManagerRuntimeManager::Create() + { + return winrt::make(); + } + + void ManagerRuntimeManager::ActivateRemoteApplication( + Windows::ApplicationModel::Activation::ActivationKind activationKind, + winrt::hstring appUserModelId, + winrt::hstring connectionRdpFilePath, + winrt::hstring additionalSettingsFilePath, + Windows::ApplicationModel::Activation::IActivatedEventArgs args, + IInspectable statusCallback) { - throw hresult_not_implemented(); + winrt::check_hresult(m_kozaniManager->ActivateRemoteApplication( + static_cast(activationKind), + appUserModelId.c_str(), + connectionRdpFilePath.c_str(), + additionalSettingsFilePath.c_str(), + reinterpret_cast<::IInspectable*>(winrt::get_abi(args)), + reinterpret_cast<::IKozaniStatusCallback*>(winrt::get_abi(statusCallback)), + GetCurrentProcessId())); } } diff --git a/dev/Kozani/KozaniManagerRuntime/M.K.MR.ManagerRuntimeManager.h b/dev/Kozani/KozaniManagerRuntime/M.K.MR.ManagerRuntimeManager.h index 651a4d3d7f..900f22bb5c 100644 --- a/dev/Kozani/KozaniManagerRuntime/M.K.MR.ManagerRuntimeManager.h +++ b/dev/Kozani/KozaniManagerRuntime/M.K.MR.ManagerRuntimeManager.h @@ -3,16 +3,27 @@ #pragma once -#include "Microsoft.Kozani.ManagerRuntime.ManagerRuntimeManager.g.h" +#include +#include "ManagerRuntimeManager.g.h" namespace winrt::Microsoft::Kozani::ManagerRuntime::implementation { struct ManagerRuntimeManager : ManagerRuntimeManagerT { - ManagerRuntimeManager() = default; + ManagerRuntimeManager(); - static winrt::Microsoft::Kozani::ManagerRuntime::ManagerRuntimeManager Open(); - void TODO_ReplaceMeWithRealContent(); + static winrt::Microsoft::Kozani::ManagerRuntime::ManagerRuntimeManager Create(); + + void ActivateRemoteApplication( + Windows::ApplicationModel::Activation::ActivationKind activationKind, + winrt::hstring appUserModelId, + winrt::hstring connectionRdpFilePath, + winrt::hstring additionalSettingsFilePath, + Windows::ApplicationModel::Activation::IActivatedEventArgs args, + IInspectable statusCallback); + + private: + wil::com_ptr m_kozaniManager; }; } namespace winrt::Microsoft::Kozani::ManagerRuntime::factory_implementation diff --git a/test/DynamicDependency/data/Microsoft.WindowsAppRuntime.Framework/Microsoft.WindowsAppRuntime.Framework.vcxproj b/test/DynamicDependency/data/Microsoft.WindowsAppRuntime.Framework/Microsoft.WindowsAppRuntime.Framework.vcxproj index 1335d97d4e..bb88b8070e 100644 --- a/test/DynamicDependency/data/Microsoft.WindowsAppRuntime.Framework/Microsoft.WindowsAppRuntime.Framework.vcxproj +++ b/test/DynamicDependency/data/Microsoft.WindowsAppRuntime.Framework/Microsoft.WindowsAppRuntime.Framework.vcxproj @@ -91,6 +91,8 @@ + + $(RepoTestCertificatePFX) diff --git a/test/DynamicDependency/data/Microsoft.WindowsAppRuntime.Framework/appxmanifest.xml b/test/DynamicDependency/data/Microsoft.WindowsAppRuntime.Framework/appxmanifest.xml index fecee5598d..1d4eb4e23a 100644 --- a/test/DynamicDependency/data/Microsoft.WindowsAppRuntime.Framework/appxmanifest.xml +++ b/test/DynamicDependency/data/Microsoft.WindowsAppRuntime.Framework/appxmanifest.xml @@ -116,6 +116,12 @@ + + + KozaniManagerRuntime.dll + + + PushNotificationsLongRunningTask.ProxyStub.dll diff --git a/test/Kozani/KozaniManagerRuntimeTests/KozaniManagerRuntimeTests.cpp b/test/Kozani/KozaniManagerRuntimeTests/KozaniManagerRuntimeTests.cpp index 3a1e9c4181..4ac8d67bdc 100644 --- a/test/Kozani/KozaniManagerRuntimeTests/KozaniManagerRuntimeTests.cpp +++ b/test/Kozani/KozaniManagerRuntimeTests/KozaniManagerRuntimeTests.cpp @@ -2,12 +2,70 @@ // Licensed under the MIT License. #include "pch.h" +#include +#include "winrt/Microsoft.Kozani.ManagerRuntime.h" namespace TB = ::Test::Bootstrap; namespace TP = ::Test::Packages; +namespace KozaniManagerTestPackage +{ + constexpr PCWSTR c_PackageDirName = L"KozaniManager"; + constexpr PCWSTR c_PackageFullName = L"KozaniManager_1.0.0.0_neutral__8wekyb3d8bbwe"; +} + namespace Test::KozaniManagerRuntimeTests { + struct MyKozaniStatusCallback : winrt::implements + { +#pragma region IKozaniStatusCallback_methods + STDMETHODIMP OnActivated(DWORD pid) + { + WEX::Logging::Log::Comment(WEX::Common::String().Format(L"IKozaniStausCallback::OnActivated is called. pid = %u", pid)); + m_isActivated = true; + return S_OK; + } + + STDMETHODIMP OnActivationFailed( + DWORD errorCode, + PCWSTR errorMessage) + { + WEX::Logging::Log::Comment( + WEX::Common::String().Format(L"IKozaniStausCallback::OnActivationFailed is called. errorCode = 0x%x, errorMessage: %s", + errorCode, errorMessage)); + m_isActivationFailed = true; + return S_OK; + } + + STDMETHODIMP OnClosed() + { + WEX::Logging::Log::Comment(L"IKozaniStausCallback::OnClosed is called."); + m_isClosed = true; + return S_OK; + } +#pragma endregion IKozaniStatusCallback_methods + + bool IsActivated() + { + return m_isActivated; + } + + bool IsActivationFailed() + { + return m_isActivationFailed; + } + + bool IsClosed() + { + return m_isClosed; + } + + private: + bool m_isActivated{}; + bool m_isActivationFailed{}; + bool m_isClosed{}; + }; + class KozaniManagerRuntimeTests { public: @@ -18,18 +76,28 @@ namespace Test::KozaniManagerRuntimeTests TEST_CLASS_SETUP(ClassSetup) { ::TB::Setup(); + ::TP::AddPackage(KozaniManagerTestPackage::c_PackageDirName, KozaniManagerTestPackage::c_PackageFullName); return true; } TEST_CLASS_CLEANUP(ClassCleanup) { + ::TP::RemovePackageIfNecessary(KozaniManagerTestPackage::c_PackageFullName); ::TB::Cleanup(); return true; } - // TODO Replace this with your own tests - TEST_METHOD(JustDoIt) + TEST_METHOD(ActivateRemoteApplication_Launch) { + auto runtimeManager{ winrt::Microsoft::Kozani::ManagerRuntime::ManagerRuntimeManager::Create() }; + auto statusCallback{ winrt::make_self() }; + + runtimeManager.ActivateRemoteApplication(winrt::Windows::ApplicationModel::Activation::ActivationKind::Launch, + L"Microsoft.WindowsCalculator_8wekyb3d8bbwe!App", L"c:\\data\\connection.rdp", L"c:\\data\\additionalSettings.txt", + nullptr, // IActivatedEventArgs + statusCallback.as()); + + VERIFY_IS_TRUE(statusCallback->IsActivated(), L"IKozaniStausCallback::OnActivated() should have been called."); } }; } diff --git a/test/Kozani/KozaniManagerRuntimeTests/KozaniManagerRuntimeTests.vcxproj b/test/Kozani/KozaniManagerRuntimeTests/KozaniManagerRuntimeTests.vcxproj index 1292e1e792..164ab7d60d 100644 --- a/test/Kozani/KozaniManagerRuntimeTests/KozaniManagerRuntimeTests.vcxproj +++ b/test/Kozani/KozaniManagerRuntimeTests/KozaniManagerRuntimeTests.vcxproj @@ -80,7 +80,7 @@ Use true pch.h - $(RepoRoot)\test\inc;$(RepoRoot)\dev\common;$(VCInstallDir)UnitTest\include;$(OutDir)\..\WindowsAppRuntime_DLL;$(OutDir)\..\WindowsAppRuntime_BootstrapDLL;%(AdditionalIncludeDirectories) + $(RepoRoot)\test\inc;$(RepoRoot)\dev\common;$(VCInstallDir)UnitTest\include;$(OutDir)\..\WindowsAppRuntime_DLL;$(OutDir)\..\WindowsAppRuntime_BootstrapDLL;$(OutDir)..\KozaniManagerProxyStub;%(AdditionalIncludeDirectories) $(RepoRoot);%(AdditionalIncludeDirectories) @@ -127,6 +127,9 @@ {f76b776e-86f5-48c5-8fc7-d2795ecc9746} + + {400ed5ec-4530-4adb-8dce-9d1e6708a1f5} + @@ -152,4 +155,4 @@ - + \ No newline at end of file diff --git a/test/Kozani/KozaniManagerRuntimeTests/KozaniManagerRuntimeTests.vcxproj.filters b/test/Kozani/KozaniManagerRuntimeTests/KozaniManagerRuntimeTests.vcxproj.filters index ccb428fb94..483d29edf1 100644 --- a/test/Kozani/KozaniManagerRuntimeTests/KozaniManagerRuntimeTests.vcxproj.filters +++ b/test/Kozani/KozaniManagerRuntimeTests/KozaniManagerRuntimeTests.vcxproj.filters @@ -30,4 +30,7 @@ - + + + + \ No newline at end of file diff --git a/test/Kozani/data/KozaniManager.Msix/Assets/SplashScreen.png b/test/Kozani/data/KozaniManager.Msix/Assets/SplashScreen.png new file mode 100644 index 0000000000..1848213180 Binary files /dev/null and b/test/Kozani/data/KozaniManager.Msix/Assets/SplashScreen.png differ diff --git a/test/Kozani/data/KozaniManager.Msix/Assets/Square150x150Logo.png b/test/Kozani/data/KozaniManager.Msix/Assets/Square150x150Logo.png new file mode 100644 index 0000000000..a50c703794 Binary files /dev/null and b/test/Kozani/data/KozaniManager.Msix/Assets/Square150x150Logo.png differ diff --git a/test/Kozani/data/KozaniManager.Msix/Assets/Square44x44Logo.png b/test/Kozani/data/KozaniManager.Msix/Assets/Square44x44Logo.png new file mode 100644 index 0000000000..844b60c201 Binary files /dev/null and b/test/Kozani/data/KozaniManager.Msix/Assets/Square44x44Logo.png differ diff --git a/test/Kozani/data/KozaniManager.Msix/Assets/Wide310x150Logo.png b/test/Kozani/data/KozaniManager.Msix/Assets/Wide310x150Logo.png new file mode 100644 index 0000000000..b5d5f2c429 Binary files /dev/null and b/test/Kozani/data/KozaniManager.Msix/Assets/Wide310x150Logo.png differ diff --git a/test/Kozani/data/KozaniManager.Msix/Assets/logo.png b/test/Kozani/data/KozaniManager.Msix/Assets/logo.png new file mode 100644 index 0000000000..fd2293e7bd Binary files /dev/null and b/test/Kozani/data/KozaniManager.Msix/Assets/logo.png differ diff --git a/test/Kozani/data/KozaniManager.Msix/KozaniManager.Msix.vcxproj b/test/Kozani/data/KozaniManager.Msix/KozaniManager.Msix.vcxproj new file mode 100644 index 0000000000..c3851ba2ad --- /dev/null +++ b/test/Kozani/data/KozaniManager.Msix/KozaniManager.Msix.vcxproj @@ -0,0 +1,105 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + 16.0 + {d4d29026-c15c-49a3-bec5-4d477028962c} + Win32Proj + KozaniManager.Msix + + + + Makefile + true + v143 + + + Makefile + false + v143 + + + Makefile + true + v143 + + + Makefile + false + v143 + + + + + + + + + + + + + + + + + + + + + $(PostBuildDependsOn);MakeMSIX + REM Nothing to do! + REM TODO Clean then Build + REM TODO Clean + KozaniManager.msix + KozaniManager + $(TargetBasename) + $(OutDir)$(TargetExe) + $(TargetExeDir)\$(TargetExe).exe + $(TargetBasename)ProxyStub + $(OutDir)$(TargetExeProxyStub) + $(TargetExeProxyStubDir)\$(TargetExeProxyStub).dll + + + + + + + + + $(RepoTestCertificatePFX) + $(RepoTestCertificatePassword) + + + + + + + + {cfc67ac3-3dc3-4981-a9bb-bc5ed06542d4} + + + {829cdb09-eefe-4188-a045-3fc6be7bd96b} + + + + + + \ No newline at end of file diff --git a/test/Kozani/data/KozaniManager.Msix/KozaniManager.Msix.vcxproj.filters b/test/Kozani/data/KozaniManager.Msix/KozaniManager.Msix.vcxproj.filters new file mode 100644 index 0000000000..d6e82f795e --- /dev/null +++ b/test/Kozani/data/KozaniManager.Msix/KozaniManager.Msix.vcxproj.filters @@ -0,0 +1,20 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + + \ No newline at end of file diff --git a/test/Kozani/data/KozaniManager.Msix/appxmanifest.xml b/test/Kozani/data/KozaniManager.Msix/appxmanifest.xml new file mode 100644 index 0000000000..2d00fa8111 --- /dev/null +++ b/test/Kozani/data/KozaniManager.Msix/appxmanifest.xml @@ -0,0 +1,67 @@ + + + + + + + + KozaniManager for tests + Microsoft Corporation + Assets\logo.png + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +