From 074376a9ed3816b22f0db90bfd0099cb107ba45a Mon Sep 17 00:00:00 2001 From: godlytalias Date: Fri, 25 Oct 2024 22:01:15 +0530 Subject: [PATCH 1/5] BackgroundTaskBuilder Implementation Signed-off-by: godlytalias --- WindowsAppRuntime.sln | 27 +++ build/CopyFilesToStagingDir.ps1 | 10 ++ build/NuSpecs/AppxManifest.xml | 9 + .../WindowsAppSDK-Nuget-Native.WinRt.props | 10 ++ .../WindowsAppSDK-Nuget-Native.targets | 15 ++ .../BackgroundTaskBuilder.cpp | 55 ++++++ .../BackgroundTaskBuilder.h | 39 ++++ .../BackgroundTaskBuilder.idl | 28 +++ .../BackgroundTaskBuilder.vcxitems | 25 +++ ...nModel.WindowsAppRuntime.Projection.csproj | 4 + .../WindowsAppRuntime_DLL.vcxproj | 1 + .../Task.cpp | 29 +++ .../Task.h | 23 +++ .../Task.idl | 14 ++ .../WindowsAppRuntime_UniversalBGTaskDLL.def | 3 + ...ndowsAppRuntime_UniversalBGTaskDLL.vcxproj | 167 ++++++++++++++++++ ...Runtime_UniversalBGTaskDLL.vcxproj.filters | 30 ++++ .../packages.config | 7 + .../pch.cpp | 4 + .../pch.h | 30 ++++ .../readme.txt | 27 +++ 21 files changed, 557 insertions(+) create mode 100644 dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.cpp create mode 100644 dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.h create mode 100644 dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.idl create mode 100644 dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.vcxitems create mode 100644 dev/WindowsAppRuntime_UniversalBGTaskDLL/Task.cpp create mode 100644 dev/WindowsAppRuntime_UniversalBGTaskDLL/Task.h create mode 100644 dev/WindowsAppRuntime_UniversalBGTaskDLL/Task.idl create mode 100644 dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.def create mode 100644 dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.vcxproj create mode 100644 dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.vcxproj.filters create mode 100644 dev/WindowsAppRuntime_UniversalBGTaskDLL/packages.config create mode 100644 dev/WindowsAppRuntime_UniversalBGTaskDLL/pch.cpp create mode 100644 dev/WindowsAppRuntime_UniversalBGTaskDLL/pch.h create mode 100644 dev/WindowsAppRuntime_UniversalBGTaskDLL/readme.txt diff --git a/WindowsAppRuntime.sln b/WindowsAppRuntime.sln index afe7629998..fe4b9b9717 100644 --- a/WindowsAppRuntime.sln +++ b/WindowsAppRuntime.sln @@ -529,6 +529,12 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PackageManager.Test.M.White EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PackageManager.Test.M.White.msix", "test\PackageManager\data\PackageManager.Test.M.White.msix\PackageManager.Test.M.White.msix.vcxproj", "{28DCF9CE-D9F4-4A7D-8AD1-F2EFC0D3B4DF}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "BackgroundTaskBuilder", "BackgroundTaskBuilder", "{F425452A-3597-4A7A-BA0A-0C3C76A9F5CD}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BackgroundTaskBuilder", "dev\BackgroundTask\BackgroundTaskBuilder\BackgroundTaskBuilder.vcxitems", "{858FA9A9-F822-4B98-84A1-FE44E2C00A5D}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WindowsAppRuntime_UniversalBGTaskDLL", "dev\WindowsAppRuntime_UniversalBGTaskDLL\WindowsAppRuntime_UniversalBGTaskDLL.vcxproj", "{0C4405E6-029E-4363-8273-A9E1FCF057DE}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1871,6 +1877,22 @@ Global {28DCF9CE-D9F4-4A7D-8AD1-F2EFC0D3B4DF}.Release|x64.Build.0 = Release|x64 {28DCF9CE-D9F4-4A7D-8AD1-F2EFC0D3B4DF}.Release|x86.ActiveCfg = Release|Win32 {28DCF9CE-D9F4-4A7D-8AD1-F2EFC0D3B4DF}.Release|x86.Build.0 = Release|Win32 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Debug|Any CPU.ActiveCfg = Debug|x64 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Debug|Any CPU.Build.0 = Debug|x64 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Debug|ARM64.Build.0 = Debug|ARM64 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Debug|x64.ActiveCfg = Debug|x64 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Debug|x64.Build.0 = Debug|x64 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Debug|x86.ActiveCfg = Debug|Win32 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Debug|x86.Build.0 = Debug|Win32 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Release|Any CPU.ActiveCfg = Release|x64 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Release|Any CPU.Build.0 = Release|x64 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Release|ARM64.ActiveCfg = Release|ARM64 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Release|ARM64.Build.0 = Release|ARM64 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Release|x64.ActiveCfg = Release|x64 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Release|x64.Build.0 = Release|x64 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Release|x86.ActiveCfg = Release|Win32 + {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -2033,6 +2055,9 @@ Global {7C240089-0F22-4247-9C91-51255C8DC18B} = {6213B1A3-E854-498F-AAFA-4CFC1E71023E} {AC79B8FF-4C27-4326-AD20-BBC70059FF51} = {7C240089-0F22-4247-9C91-51255C8DC18B} {28DCF9CE-D9F4-4A7D-8AD1-F2EFC0D3B4DF} = {6759ECC6-9381-4172-89E6-853F81A03D28} + {F425452A-3597-4A7A-BA0A-0C3C76A9F5CD} = {448ED2E5-0B37-4D97-9E6B-8C10A507976A} + {858FA9A9-F822-4B98-84A1-FE44E2C00A5D} = {F425452A-3597-4A7A-BA0A-0C3C76A9F5CD} + {0C4405E6-029E-4363-8273-A9E1FCF057DE} = {448ED2E5-0B37-4D97-9E6B-8C10A507976A} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4B3D7591-CFEC-4762-9A07-ABE99938FB77} @@ -2048,6 +2073,7 @@ Global test\inc\inc.vcxitems*{5b2d17fe-c371-417f-860c-3d32397c2404}*SharedItemsImports = 4 test\inc\inc.vcxitems*{7c502995-59c3-483b-86ba-815985353633}*SharedItemsImports = 4 dev\ApplicationData\ApplicationData.vcxitems*{7cf52890-56fa-47e2-84fb-68ee274324b6}*SharedItemsImports = 9 + dev\BackgroundTask\BackgroundTaskBuilder\BackgroundTaskBuilder.vcxitems*{858fa9a9-f822-4b98-84a1-fe44e2c00a5d}*SharedItemsImports = 9 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 @@ -2055,6 +2081,7 @@ Global dev\AppNotifications\AppNotifications.vcxitems*{b4824897-88e0-4927-8fb9-e60106f01ed9}*SharedItemsImports = 9 test\inc\inc.vcxitems*{b567fe2e-3a03-48d0-b2b5-760cdec35891}*SharedItemsImports = 9 dev\ApplicationData\ApplicationData.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4 + dev\BackgroundTask\BackgroundTaskBuilder\BackgroundTaskBuilder.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4 dev\Common\Common.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4 dev\DynamicDependency\API\DynamicDependency.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4 dev\Licensing\Licensing.vcxitems*{b73ad907-6164-4294-88fb-f3c9c10da1f1}*SharedItemsImports = 4 diff --git a/build/CopyFilesToStagingDir.ps1 b/build/CopyFilesToStagingDir.ps1 index c56a9f79be..1f4ecc05c0 100644 --- a/build/CopyFilesToStagingDir.ps1 +++ b/build/CopyFilesToStagingDir.ps1 @@ -42,6 +42,12 @@ PublishFile $OverrideDir\PushNotifications-Override.json $FullPublishDir\ PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\Microsoft.WindowsAppRuntime.dll $FullPublishDir\Microsoft.WindowsAppRuntime\ PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\Microsoft.WindowsAppRuntime.pdb $FullPublishDir\Microsoft.WindowsAppRuntime\ PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\Microsoft.WindowsAppRuntime.lib $FullPublishDir\Microsoft.WindowsAppRuntime\ +PublishFile $FullBuildOutput\WindowsAppRuntime_UniversalBGTaskDLL\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll $FullPublishDir\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask\ +PublishFile $FullBuildOutput\WindowsAppRuntime_UniversalBGTaskDLL\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.pdb $FullPublishDir\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask\ +PublishFile $FullBuildOutput\WindowsAppRuntime_UniversalBGTaskDLL\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.lib $FullPublishDir\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask\ +PublishFile $FullBuildOutput\WindowsAppRuntime_UniversalBGTaskDLL\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.winmd $FullPublishDir\WindowsAppRuntime_UniversalBGTaskDLL\ + +PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.ApplicationModel.Background.winmd $FullPublishDir\Microsoft.WindowsAppRuntime\ PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.ApplicationModel.DynamicDependency.winmd $FullPublishDir\Microsoft.WindowsAppRuntime\ PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.ApplicationModel.WindowsAppRuntime.winmd $FullPublishDir\Microsoft.WindowsAppRuntime\ PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.AppLifecycle.winmd $FullPublishDir\Microsoft.WindowsAppRuntime\ @@ -176,10 +182,13 @@ PublishFile $FullBuildOutput\DynamicDependencyLifetimeManager.ProxyStub\DynamicD # Native (not managed, AppLocal / no MSIX) PublishFile $FullBuildOutput\WindowsAppRuntime_BootstrapDLL\Microsoft.WindowsAppRuntime.Bootstrap.dll $NugetDir\runtimes\win-$Platform\native PublishFile $FullBuildOutput\WindowsAppRuntime_BootstrapDLL\Microsoft.WindowsAppRuntime.Bootstrap.pdb $NugetDir\runtimes\win-$Platform\native +PublishFile $FullBuildOutput\WindowsAppRuntime_UniversalBGTaskDLL\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll $NugetDir\runtimes\win-$Platform\native +PublishFile $FullBuildOutput\WindowsAppRuntime_UniversalBGTaskDLL\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.pdb $NugetDir\runtimes\win-$Platform\native # # WinMD for UWP apps PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.ApplicationModel.DynamicDependency.winmd $NugetDir\lib\uap10.0 PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.ApplicationModel.WindowsAppRuntime.winmd $NugetDir\lib\uap10.0 +PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.ApplicationModel.Background.winmd $NugetDir\lib\uap10.0 PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.AppLifecycle.winmd $NugetDir\lib\uap10.0 PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.AppNotifications.Builder.winmd $NugetDir\lib\uap10.0 PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.AppNotifications.winmd $NugetDir\lib\uap10.0 @@ -189,6 +198,7 @@ PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windo PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.Storage.winmd $NugetDir\lib\uap10.0 PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.System.Power.winmd $NugetDir\lib\uap10.0 PublishFile $FullBuildOutput\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.System.winmd $NugetDir\lib\uap10.0 +PublishFile $FullBuildOutput\WindowsAppRuntime_UniversalBGTaskDLL\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.winmd $NugetDir\lib\uap10.0 # # Bootstrap Auto-Initializer Files PublishFile $FullBuildOutput\WindowsAppRuntime_BootstrapDLL\MddBootstrapAutoInitializer.cpp $NugetDir\include diff --git a/build/NuSpecs/AppxManifest.xml b/build/NuSpecs/AppxManifest.xml index c6bcba8167..d32386487c 100644 --- a/build/NuSpecs/AppxManifest.xml +++ b/build/NuSpecs/AppxManifest.xml @@ -25,11 +25,20 @@ + + + Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll + + + Microsoft.WindowsAppRuntime.dll + + + diff --git a/build/NuSpecs/WindowsAppSDK-Nuget-Native.WinRt.props b/build/NuSpecs/WindowsAppSDK-Nuget-Native.WinRt.props index 86ac93e096..b89223b8e6 100644 --- a/build/NuSpecs/WindowsAppSDK-Nuget-Native.WinRt.props +++ b/build/NuSpecs/WindowsAppSDK-Nuget-Native.WinRt.props @@ -20,6 +20,16 @@ $(MSBuildThisFileDirectory)..\..\runtimes\win10-$(_WindowsAppSDKFoundationPlatform)\native\Microsoft.WindowsAppRuntime.dll true + + $(MSBuildThisFileDirectory)..\..\lib\uap10.0\Microsoft.Windows.ApplicationModel.Background.winmd + $(MSBuildThisFileDirectory)..\..\runtimes\win10-$(_WindowsAppSDKFoundationPlatform)\native\Microsoft.WindowsAppRuntime.dll + true + + + $(MSBuildThisFileDirectory)..\..\lib\uap10.0\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.winmd + $(MSBuildThisFileDirectory)..\..\runtimes\win-$(_WindowsAppSDKFoundationPlatform)\native\Microsoft.Windows.ApplicationModel.UniversalBGTask.dll + true + $(MSBuildThisFileDirectory)..\..\lib\uap10.0\Microsoft.Windows.AppLifecycle.winmd $(MSBuildThisFileDirectory)..\..\runtimes\win10-$(_WindowsAppSDKFoundationPlatform)\native\Microsoft.WindowsAppRuntime.dll diff --git a/build/NuSpecs/WindowsAppSDK-Nuget-Native.targets b/build/NuSpecs/WindowsAppSDK-Nuget-Native.targets index 904986af27..583c9cb4ba 100644 --- a/build/NuSpecs/WindowsAppSDK-Nuget-Native.targets +++ b/build/NuSpecs/WindowsAppSDK-Nuget-Native.targets @@ -23,6 +23,21 @@ + + + false + Microsoft.WindowsAppRuntime.dll + + + + + + true + false + $(MSBuildThisFileDirectory)..\..\runtimes\win-$(Platform)\native\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll + + + false diff --git a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.cpp b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.cpp new file mode 100644 index 0000000000..ec74ded5b9 --- /dev/null +++ b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.cpp @@ -0,0 +1,55 @@ +// Copyright (c) Microsoft Corporation and Contributors. +// Licensed under the MIT License. + +#include "pch.h" +#include "BackgroundTaskBuilder.h" +#include "Microsoft.Windows.ApplicationModel.Background.BackgroundTaskBuilder.g.cpp" +#include + +namespace winrt +{ + using namespace winrt::Windows::ApplicationModel::Background; + using namespace Windows::Storage; +} + +namespace winrt::Microsoft::Windows::ApplicationModel::Background::implementation +{ + void BackgroundTaskBuilder::SetTaskEntryPointClsId(winrt::guid clsId) + { + m_taskEntryPointClsId = clsId; + } + + void BackgroundTaskBuilder::Name(winrt::hstring name) + { + m_name = name; + } + + void BackgroundTaskBuilder::SetTrigger(winrt::IBackgroundTrigger trigger) + { + m_trigger = trigger; + } + + winrt::BackgroundTaskRegistration BackgroundTaskBuilder::Register() + { + winrt::BackgroundTaskBuilder builder; + builder.Name(m_name); + builder.SetTrigger(m_trigger); + builder.TaskEntryPoint(L"Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.Task"); + winrt::BackgroundTaskRegistration taskRegistration = builder.Register(); + + winrt::ApplicationDataContainer localSettings = winrt::ApplicationData::Current().LocalSettings(); + auto values = localSettings.Values(); + winrt::hstring lookupId = winrt::to_hstring(taskRegistration.TaskId()); + IInspectable obj = winrt::box_value(m_taskEntryPointClsId); + values.Insert(lookupId, obj); + + return taskRegistration; + } + + winrt::BackgroundTaskRegistration BackgroundTaskBuilder::Register(winrt::hstring taskName) + { + Name(taskName); + return Register(); + } + +} diff --git a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.h b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.h new file mode 100644 index 0000000000..577e819f8b --- /dev/null +++ b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.h @@ -0,0 +1,39 @@ +// Copyright (c) Microsoft Corporation and Contributors. +// Licensed under the MIT License. + +#pragma once +#include +#include "Microsoft.Windows.ApplicationModel.Background.BackgroundTaskBuilder.g.h" + +namespace winrt::Microsoft::Windows::ApplicationModel::Background::implementation +{ + struct BackgroundTaskBuilder : BackgroundTaskBuilderT + { + BackgroundTaskBuilder() = default; + void SetTaskEntryPointClsId(winrt::guid clsId); + + void + SetTrigger( + winrt::Windows::ApplicationModel::Background::IBackgroundTrigger trigger + ); + + + void Name(winrt::hstring Name); + winrt::hstring Name() { return m_name; } + + winrt::Windows::ApplicationModel::Background::BackgroundTaskRegistration Register(); + winrt::Windows::ApplicationModel::Background::BackgroundTaskRegistration Register(winrt::hstring taskName); + + private: + winrt::guid m_taskEntryPointClsId; + winrt::hstring m_name; + winrt::Windows::ApplicationModel::Background::IBackgroundTrigger m_trigger; + }; +} + +namespace winrt::Microsoft::Windows::ApplicationModel::Background::factory_implementation +{ + struct BackgroundTaskBuilder : BackgroundTaskBuilderT + { + }; +} diff --git a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.idl b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.idl new file mode 100644 index 0000000000..a220cef8e8 --- /dev/null +++ b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.idl @@ -0,0 +1,28 @@ +// Copyright (c) Microsoft Corporation and Contributors. +// Licensed under the MIT License. + +namespace Microsoft.Windows.ApplicationModel.Background +{ + [contractversion(1)] + apicontract BackgroundTaskContract{}; + + [contract(BackgroundTaskContract, 1)] + runtimeclass BackgroundTaskBuilder + { + BackgroundTaskBuilder(); + + void SetTrigger( + Windows.ApplicationModel.Background.IBackgroundTrigger trigger + ); + void SetTaskEntryPointClsId( + GUID clsId + ); + + String Name{ set; get; }; + + [return_name("task")] + Windows.ApplicationModel.Background.BackgroundTaskRegistration Register(); + [return_name("task")] + Windows.ApplicationModel.Background.BackgroundTaskRegistration Register(String name); + } +} diff --git a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.vcxitems b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.vcxitems new file mode 100644 index 0000000000..e9dd6717f1 --- /dev/null +++ b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.vcxitems @@ -0,0 +1,25 @@ + + + + $(MSBuildAllProjects);$(MSBuildThisFileFullPath) + true + {858fa9a9-f822-4b98-84a1-fe44e2c00a5d} + + + + %(AdditionalIncludeDirectories);$(MSBuildThisFileDirectory) + + + + + + + + + + + + + + + diff --git a/dev/Projections/CS/Microsoft.Windows.ApplicationModel.WindowsAppRuntime/Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.csproj b/dev/Projections/CS/Microsoft.Windows.ApplicationModel.WindowsAppRuntime/Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.csproj index 7458f8185e..8dce990078 100644 --- a/dev/Projections/CS/Microsoft.Windows.ApplicationModel.WindowsAppRuntime/Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.csproj +++ b/dev/Projections/CS/Microsoft.Windows.ApplicationModel.WindowsAppRuntime/Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.csproj @@ -49,6 +49,10 @@ $(OutDir)..\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.ApplicationModel.WindowsAppRuntime.winmd true + + $(OutDir)..\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.ApplicationModel.Background.winmd + true + diff --git a/dev/WindowsAppRuntime_DLL/WindowsAppRuntime_DLL.vcxproj b/dev/WindowsAppRuntime_DLL/WindowsAppRuntime_DLL.vcxproj index 32307249d1..13477f8a20 100644 --- a/dev/WindowsAppRuntime_DLL/WindowsAppRuntime_DLL.vcxproj +++ b/dev/WindowsAppRuntime_DLL/WindowsAppRuntime_DLL.vcxproj @@ -99,6 +99,7 @@ + diff --git a/dev/WindowsAppRuntime_UniversalBGTaskDLL/Task.cpp b/dev/WindowsAppRuntime_UniversalBGTaskDLL/Task.cpp new file mode 100644 index 0000000000..72b235117d --- /dev/null +++ b/dev/WindowsAppRuntime_UniversalBGTaskDLL/Task.cpp @@ -0,0 +1,29 @@ +// Copyright (c) Microsoft Corporation and Contributors. +// Licensed under the MIT License. + +#include "pch.h" +#include "Task.h" +#if __has_include("Task.g.cpp") +#include "Task.g.cpp" +#endif + +using namespace winrt; +using namespace winrt::Windows::ApplicationModel::Background; +using namespace winrt::Windows::Storage; + +namespace winrt::Microsoft::Windows::ApplicationModel::Background::UniversalBGTask::implementation +{ + inline constexpr CLSID IID_IBackgroundTask = { 2098451764, 64786, 17358, 140, 34, 234, 31, 241, 60, 6, 223 }; + void Task::Run(winrt::Windows::ApplicationModel::Background::IBackgroundTaskInstance taskInstance) + { + winrt::hstring lookupStr = winrt::to_hstring(taskInstance.Task().TaskId()); + ApplicationDataContainer localSettings = ApplicationData::Current().LocalSettings(); + auto values = localSettings.Values(); + auto lookupobj = values.Lookup(lookupStr); + winrt::guid comClsId = winrt::unbox_value(lookupobj); + + winrt::Windows::ApplicationModel::Background::IBackgroundTask bgTask = nullptr; + winrt::hresult hr = CoCreateInstance(comClsId, nullptr, CLSCTX_LOCAL_SERVER, IID_IBackgroundTask, reinterpret_cast(&bgTask)); + bgTask.Run(taskInstance); + } +} diff --git a/dev/WindowsAppRuntime_UniversalBGTaskDLL/Task.h b/dev/WindowsAppRuntime_UniversalBGTaskDLL/Task.h new file mode 100644 index 0000000000..632de00cd1 --- /dev/null +++ b/dev/WindowsAppRuntime_UniversalBGTaskDLL/Task.h @@ -0,0 +1,23 @@ +// Copyright (c) Microsoft Corporation and Contributors. +// Licensed under the MIT License. + +#pragma once + +#include "Task.g.h" + +namespace winrt::Microsoft::Windows::ApplicationModel::Background::UniversalBGTask::implementation +{ + struct Task : TaskT + { + Task() = default; + + void Run(winrt::Windows::ApplicationModel::Background::IBackgroundTaskInstance taskInstance); + }; +} + +namespace winrt::Microsoft::Windows::ApplicationModel::Background::UniversalBGTask::factory_implementation +{ + struct Task : TaskT + { + }; +} diff --git a/dev/WindowsAppRuntime_UniversalBGTaskDLL/Task.idl b/dev/WindowsAppRuntime_UniversalBGTaskDLL/Task.idl new file mode 100644 index 0000000000..bcc31e8c74 --- /dev/null +++ b/dev/WindowsAppRuntime_UniversalBGTaskDLL/Task.idl @@ -0,0 +1,14 @@ +// Copyright (c) Microsoft Corporation and Contributors. +// Licensed under the MIT License. + + + +namespace Microsoft.Windows.ApplicationModel.Background.UniversalBGTask +{ + [default_interface] + runtimeclass Task : Windows.ApplicationModel.Background.IBackgroundTask + { + Task(); + void Run(Windows.ApplicationModel.Background.IBackgroundTaskInstance taskInstance); + } +} diff --git a/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.def b/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.def new file mode 100644 index 0000000000..ad4041035f --- /dev/null +++ b/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.def @@ -0,0 +1,3 @@ +EXPORTS +DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE +DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE diff --git a/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.vcxproj b/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.vcxproj new file mode 100644 index 0000000000..b8203d6a99 --- /dev/null +++ b/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.vcxproj @@ -0,0 +1,167 @@ + + + + + + + true + true + true + {0c4405e6-029e-4363-8273-a9e1fcf057de} + Microsoft.Windows.ApplicationModel.Background.UniversalBGTask + en-US + 16.0 + false + 10.0 + 10.0 + true + true + + + + + Debug + Win32 + + + Debug + x64 + + + Debug + ARM64 + + + Release + Win32 + + + Release + x64 + + + Release + ARM64 + + + + DynamicLibrary + v143 + Unicode + false + true + + + true + true + + + false + true + false + + + + + + + + + + + + Microsoft.Windows.ApplicationModel.Background.UniversalBGTask + + + Microsoft.Windows.ApplicationModel.Background.UniversalBGTask + + + Microsoft.Windows.ApplicationModel.Background.UniversalBGTask + + + Microsoft.Windows.ApplicationModel.Background.UniversalBGTask + + + Microsoft.Windows.ApplicationModel.Background.UniversalBGTask + + + Microsoft.Windows.ApplicationModel.Background.UniversalBGTask + + + + Use + pch.h + $(IntDir)pch.pch + Level4 + %(AdditionalOptions) /bigobj + _WINRT_DLL;%(PreprocessorDefinitions) + $(WindowsSDK_WindowsMetadata);$(AdditionalUsingDirectories) + + + Console + true + WindowsAppRuntime_UniversalBGTaskDLL.def + + + + + _DEBUG;%(PreprocessorDefinitions) + + + + + NDEBUG;%(PreprocessorDefinitions) + + + true + true + + + + + + Task.cpp + + + + + Create + + + + + + + Code + Task.cpp + + + + + + + + + false + + + + + + + + + + + + This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}. + + + + + + + + + + \ No newline at end of file diff --git a/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.vcxproj.filters b/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.vcxproj.filters new file mode 100644 index 0000000000..e5f909f8b0 --- /dev/null +++ b/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.vcxproj.filters @@ -0,0 +1,30 @@ + + + + + accd3aa8-1ba0-4223-9bbe-0c431709210b + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tga;tiff;tif;png;wav;mfcribbon-ms + + + {926ab91d-31b4-48c3-b9a4-e681349f27f0} + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/dev/WindowsAppRuntime_UniversalBGTaskDLL/packages.config b/dev/WindowsAppRuntime_UniversalBGTaskDLL/packages.config new file mode 100644 index 0000000000..e79d82e883 --- /dev/null +++ b/dev/WindowsAppRuntime_UniversalBGTaskDLL/packages.config @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/dev/WindowsAppRuntime_UniversalBGTaskDLL/pch.cpp b/dev/WindowsAppRuntime_UniversalBGTaskDLL/pch.cpp new file mode 100644 index 0000000000..0850baca11 --- /dev/null +++ b/dev/WindowsAppRuntime_UniversalBGTaskDLL/pch.cpp @@ -0,0 +1,4 @@ +// Copyright (c) Microsoft Corporation and Contributors. +// Licensed under the MIT License. + +#include "pch.h" diff --git a/dev/WindowsAppRuntime_UniversalBGTaskDLL/pch.h b/dev/WindowsAppRuntime_UniversalBGTaskDLL/pch.h new file mode 100644 index 0000000000..5a962aa2dc --- /dev/null +++ b/dev/WindowsAppRuntime_UniversalBGTaskDLL/pch.h @@ -0,0 +1,30 @@ +// Copyright (c) Microsoft Corporation and Contributors. +// Licensed under the MIT License. + +#pragma once +#include +#include +#include +#include + +// Undefine GetCurrentTime macro to prevent +// conflict with Storyboard::GetCurrentTime +#undef GetCurrentTime + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include diff --git a/dev/WindowsAppRuntime_UniversalBGTaskDLL/readme.txt b/dev/WindowsAppRuntime_UniversalBGTaskDLL/readme.txt new file mode 100644 index 0000000000..312359a40d --- /dev/null +++ b/dev/WindowsAppRuntime_UniversalBGTaskDLL/readme.txt @@ -0,0 +1,27 @@ +======================================================================== + WindowsAppRuntime_UniversalBGTaskDLL Project Overview +======================================================================== + +This project demonstrates how to get started authoring Windows Runtime +classes directly with standard C++, using the Windows App SDK and +C++/WinRT packages to generate implementation headers from interface +(IDL) files. The generated Windows Runtime component binary and WinMD +files should then be bundled with the app consuming them. + +Steps: +1. Create an interface (IDL) file to define your Windows Runtime class, + its default interface, and any other interfaces it implements. +2. Build the project once to generate module.g.cpp, module.h.cpp, and + implementation templates under the "Generated Files" folder, as + well as skeleton class definitions under "Generated Files\sources". +3. Use the skeleton class definitions for reference to implement your + Windows Runtime classes. + +======================================================================== +Learn more about Windows App SDK here: +https://docs.microsoft.com/windows/apps/windows-app-sdk/ +Learn more about WinUI3 here: +https://docs.microsoft.com/windows/apps/winui/winui3/ +Learn more about C++/WinRT here: +http://aka.ms/cppwinrt/ +======================================================================== From 429f99249d618a631750308c93a3401a5a4c6eb5 Mon Sep 17 00:00:00 2001 From: godlytalias Date: Tue, 29 Oct 2024 04:03:23 +0530 Subject: [PATCH 2/5] Added C# Projection Signed-off-by: godlytalias --- WindowsAppRuntime.sln | 20 +++++++ build/CopyFilesToStagingDir.ps1 | 2 + ...licationModel.Background.Projection.csproj | 54 +++++++++++++++++++ ...nModel.WindowsAppRuntime.Projection.csproj | 4 -- 4 files changed, 76 insertions(+), 4 deletions(-) create mode 100644 dev/Projections/CS/Microsoft.Windows.ApplicationModel.Background.Projection/Microsoft.Windows.ApplicationModel.Background.Projection.csproj diff --git a/WindowsAppRuntime.sln b/WindowsAppRuntime.sln index fe4b9b9717..34b73d3502 100644 --- a/WindowsAppRuntime.sln +++ b/WindowsAppRuntime.sln @@ -535,6 +535,11 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "BackgroundTaskBuilder", "de EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WindowsAppRuntime_UniversalBGTaskDLL", "dev\WindowsAppRuntime_UniversalBGTaskDLL\WindowsAppRuntime_UniversalBGTaskDLL.vcxproj", "{0C4405E6-029E-4363-8273-A9E1FCF057DE}" EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.Windows.ApplicationModel.Background.Projection", "dev\Projections\CS\Microsoft.Windows.ApplicationModel.Background.Projection\Microsoft.Windows.ApplicationModel.Background.Projection.csproj", "{CF74972B-1B6F-4421-AC01-F101F7C94DAE}" + ProjectSection(ProjectDependencies) = postProject + {B73AD907-6164-4294-88FB-F3C9C10DA1F1} = {B73AD907-6164-4294-88FB-F3C9C10DA1F1} + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -1893,6 +1898,20 @@ Global {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Release|x64.Build.0 = Release|x64 {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Release|x86.ActiveCfg = Release|Win32 {0C4405E6-029E-4363-8273-A9E1FCF057DE}.Release|x86.Build.0 = Release|Win32 + {CF74972B-1B6F-4421-AC01-F101F7C94DAE}.Debug|Any CPU.ActiveCfg = Debug|x64 + {CF74972B-1B6F-4421-AC01-F101F7C94DAE}.Debug|ARM64.ActiveCfg = Debug|ARM64 + {CF74972B-1B6F-4421-AC01-F101F7C94DAE}.Debug|ARM64.Build.0 = Debug|ARM64 + {CF74972B-1B6F-4421-AC01-F101F7C94DAE}.Debug|x64.ActiveCfg = Debug|x64 + {CF74972B-1B6F-4421-AC01-F101F7C94DAE}.Debug|x64.Build.0 = Debug|x64 + {CF74972B-1B6F-4421-AC01-F101F7C94DAE}.Debug|x86.ActiveCfg = Debug|Win32 + {CF74972B-1B6F-4421-AC01-F101F7C94DAE}.Debug|x86.Build.0 = Debug|Win32 + {CF74972B-1B6F-4421-AC01-F101F7C94DAE}.Release|Any CPU.ActiveCfg = Release|x64 + {CF74972B-1B6F-4421-AC01-F101F7C94DAE}.Release|ARM64.ActiveCfg = Release|ARM64 + {CF74972B-1B6F-4421-AC01-F101F7C94DAE}.Release|ARM64.Build.0 = Release|ARM64 + {CF74972B-1B6F-4421-AC01-F101F7C94DAE}.Release|x64.ActiveCfg = Release|x64 + {CF74972B-1B6F-4421-AC01-F101F7C94DAE}.Release|x64.Build.0 = Release|x64 + {CF74972B-1B6F-4421-AC01-F101F7C94DAE}.Release|x86.ActiveCfg = Release|Win32 + {CF74972B-1B6F-4421-AC01-F101F7C94DAE}.Release|x86.Build.0 = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -2058,6 +2077,7 @@ Global {F425452A-3597-4A7A-BA0A-0C3C76A9F5CD} = {448ED2E5-0B37-4D97-9E6B-8C10A507976A} {858FA9A9-F822-4B98-84A1-FE44E2C00A5D} = {F425452A-3597-4A7A-BA0A-0C3C76A9F5CD} {0C4405E6-029E-4363-8273-A9E1FCF057DE} = {448ED2E5-0B37-4D97-9E6B-8C10A507976A} + {CF74972B-1B6F-4421-AC01-F101F7C94DAE} = {716C26A0-E6B0-4981-8412-D14A4D410531} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {4B3D7591-CFEC-4762-9A07-ABE99938FB77} diff --git a/build/CopyFilesToStagingDir.ps1 b/build/CopyFilesToStagingDir.ps1 index 1f4ecc05c0..4ea4f5f2a8 100644 --- a/build/CopyFilesToStagingDir.ps1 +++ b/build/CopyFilesToStagingDir.ps1 @@ -108,6 +108,8 @@ PublishFile $FullBuildOutput\DeploymentAgent\DeploymentAgent.pdb $symbolsOutputD # Copy files to Full Nuget package (alphabetical by category) # # C#/WinRT Projections +PublishFile $FullBuildOutput\Microsoft.Windows.ApplicationModel.Background.Projection\Microsoft.Windows.ApplicationModel.Background.Projection.dll $NugetDir\lib\net6.0-windows10.0.17763.0 +PublishFile $FullBuildOutput\Microsoft.Windows.ApplicationModel.Background.Projection\Microsoft.Windows.ApplicationModel.Background.Projection.pdb $NugetDir\lib\net6.0-windows10.0.17763.0 PublishFile $FullBuildOutput\Microsoft.Windows.ApplicationModel.DynamicDependency.Projection\Microsoft.Windows.ApplicationModel.DynamicDependency.Projection.dll $NugetDir\lib\net6.0-windows10.0.17763.0 PublishFile $FullBuildOutput\Microsoft.Windows.ApplicationModel.DynamicDependency.Projection\Microsoft.Windows.ApplicationModel.DynamicDependency.Projection.pdb $NugetDir\lib\net6.0-windows10.0.17763.0 PublishFile $FullBuildOutput\Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection\Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.dll $NugetDir\lib\net6.0-windows10.0.17763.0 diff --git a/dev/Projections/CS/Microsoft.Windows.ApplicationModel.Background.Projection/Microsoft.Windows.ApplicationModel.Background.Projection.csproj b/dev/Projections/CS/Microsoft.Windows.ApplicationModel.Background.Projection/Microsoft.Windows.ApplicationModel.Background.Projection.csproj new file mode 100644 index 0000000000..a9ad196556 --- /dev/null +++ b/dev/Projections/CS/Microsoft.Windows.ApplicationModel.Background.Projection/Microsoft.Windows.ApplicationModel.Background.Projection.csproj @@ -0,0 +1,54 @@ + + + net6.0-windows10.0.17763.0 + 10.0.17763.0 + x64;x86;arm64 + AnyCPU + false + + + + true + true + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + Microsoft.Windows.ApplicationModel.Background + 10.0.17763.0 + false + + + + + pdbonly + true + + + + + + + + + + + + + $(OutDir)..\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.ApplicationModel.Background.winmd + true + + + + diff --git a/dev/Projections/CS/Microsoft.Windows.ApplicationModel.WindowsAppRuntime/Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.csproj b/dev/Projections/CS/Microsoft.Windows.ApplicationModel.WindowsAppRuntime/Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.csproj index 8dce990078..7458f8185e 100644 --- a/dev/Projections/CS/Microsoft.Windows.ApplicationModel.WindowsAppRuntime/Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.csproj +++ b/dev/Projections/CS/Microsoft.Windows.ApplicationModel.WindowsAppRuntime/Microsoft.Windows.ApplicationModel.WindowsAppRuntime.Projection.csproj @@ -49,10 +49,6 @@ $(OutDir)..\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.ApplicationModel.WindowsAppRuntime.winmd true - - $(OutDir)..\WindowsAppRuntime_DLL\StrippedWinMD\Microsoft.Windows.ApplicationModel.Background.winmd - true - From 9bf621bb9f3cad5a723f8263c62ffd57e17064c6 Mon Sep 17 00:00:00 2001 From: godlytalias Date: Tue, 29 Oct 2024 18:39:34 +0530 Subject: [PATCH 3/5] Added AddCondition method Signed-off-by: godlytalias --- .../BackgroundTaskBuilder.cpp | 14 +++++++++----- .../BackgroundTaskBuilder/BackgroundTaskBuilder.h | 8 ++++++-- .../BackgroundTaskBuilder.idl | 3 +++ 3 files changed, 18 insertions(+), 7 deletions(-) diff --git a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.cpp b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.cpp index ec74ded5b9..fdcadc9ed2 100644 --- a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.cpp +++ b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.cpp @@ -29,13 +29,17 @@ namespace winrt::Microsoft::Windows::ApplicationModel::Background::implementatio m_trigger = trigger; } + void BackgroundTaskBuilder::AddCondition(winrt::IBackgroundCondition condition) + { + m_builder.AddCondition(condition); + } + winrt::BackgroundTaskRegistration BackgroundTaskBuilder::Register() { - winrt::BackgroundTaskBuilder builder; - builder.Name(m_name); - builder.SetTrigger(m_trigger); - builder.TaskEntryPoint(L"Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.Task"); - winrt::BackgroundTaskRegistration taskRegistration = builder.Register(); + m_builder.Name(m_name); + m_builder.SetTrigger(m_trigger); + m_builder.TaskEntryPoint(L"Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.Task"); + winrt::BackgroundTaskRegistration taskRegistration = m_builder.Register(); winrt::ApplicationDataContainer localSettings = winrt::ApplicationData::Current().LocalSettings(); auto values = localSettings.Values(); diff --git a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.h b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.h index 577e819f8b..91af5f59a8 100644 --- a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.h +++ b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.h @@ -12,11 +12,14 @@ namespace winrt::Microsoft::Windows::ApplicationModel::Background::implementatio BackgroundTaskBuilder() = default; void SetTaskEntryPointClsId(winrt::guid clsId); - void - SetTrigger( + void SetTrigger( winrt::Windows::ApplicationModel::Background::IBackgroundTrigger trigger ); + void AddCondition( + winrt::Windows::ApplicationModel::Background::IBackgroundCondition trigger + ); + void Name(winrt::hstring Name); winrt::hstring Name() { return m_name; } @@ -26,6 +29,7 @@ namespace winrt::Microsoft::Windows::ApplicationModel::Background::implementatio private: winrt::guid m_taskEntryPointClsId; + winrt::Windows::ApplicationModel::Background::BackgroundTaskBuilder m_builder; winrt::hstring m_name; winrt::Windows::ApplicationModel::Background::IBackgroundTrigger m_trigger; }; diff --git a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.idl b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.idl index a220cef8e8..315f8e7366 100644 --- a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.idl +++ b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.idl @@ -17,6 +17,9 @@ namespace Microsoft.Windows.ApplicationModel.Background void SetTaskEntryPointClsId( GUID clsId ); + void AddCondition ( + Windows.ApplicationModel.Background.IBackgroundCondition condition + ); String Name{ set; get; }; From 42d5effa2b4cb9bb44105f58da1af9c03999b66d Mon Sep 17 00:00:00 2001 From: godlytalias Date: Wed, 30 Oct 2024 16:07:05 +0530 Subject: [PATCH 4/5] Updated as per review feedbacks Signed-off-by: godlytalias --- build/NuSpecs/WindowsAppSDK-Nuget-Native.WinRt.props | 2 +- build/NuSpecs/WindowsAppSDK-Nuget-Native.targets | 6 +++--- .../BackgroundTaskBuilder/BackgroundTaskBuilder.cpp | 9 ++++----- .../BackgroundTaskBuilder/BackgroundTaskBuilder.h | 5 ++--- .../BackgroundTaskBuilder/BackgroundTaskBuilder.idl | 2 +- 5 files changed, 11 insertions(+), 13 deletions(-) diff --git a/build/NuSpecs/WindowsAppSDK-Nuget-Native.WinRt.props b/build/NuSpecs/WindowsAppSDK-Nuget-Native.WinRt.props index b89223b8e6..fd5502c995 100644 --- a/build/NuSpecs/WindowsAppSDK-Nuget-Native.WinRt.props +++ b/build/NuSpecs/WindowsAppSDK-Nuget-Native.WinRt.props @@ -27,7 +27,7 @@ $(MSBuildThisFileDirectory)..\..\lib\uap10.0\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.winmd - $(MSBuildThisFileDirectory)..\..\runtimes\win-$(_WindowsAppSDKFoundationPlatform)\native\Microsoft.Windows.ApplicationModel.UniversalBGTask.dll + $(MSBuildThisFileDirectory)..\..\runtimes\win-$(_WindowsAppSDKFoundationPlatform)\native\Microsoft.Windows.ApplicationModel.UniversalBGTask.dll true diff --git a/build/NuSpecs/WindowsAppSDK-Nuget-Native.targets b/build/NuSpecs/WindowsAppSDK-Nuget-Native.targets index 583c9cb4ba..0de3c197cf 100644 --- a/build/NuSpecs/WindowsAppSDK-Nuget-Native.targets +++ b/build/NuSpecs/WindowsAppSDK-Nuget-Native.targets @@ -32,9 +32,9 @@ - true - false - $(MSBuildThisFileDirectory)..\..\runtimes\win-$(Platform)\native\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll + true + false + $(MSBuildThisFileDirectory)..\..\runtimes\win-$(Platform)\native\Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.dll diff --git a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.cpp b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.cpp index fdcadc9ed2..cbcebc8f91 100644 --- a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.cpp +++ b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.cpp @@ -14,9 +14,9 @@ namespace winrt namespace winrt::Microsoft::Windows::ApplicationModel::Background::implementation { - void BackgroundTaskBuilder::SetTaskEntryPointClsId(winrt::guid clsId) + void BackgroundTaskBuilder::SetTaskEntryPointClsid(winrt::guid clsId) { - m_taskEntryPointClsId = clsId; + m_taskEntryPointClsid = clsId; } void BackgroundTaskBuilder::Name(winrt::hstring name) @@ -26,7 +26,7 @@ namespace winrt::Microsoft::Windows::ApplicationModel::Background::implementatio void BackgroundTaskBuilder::SetTrigger(winrt::IBackgroundTrigger trigger) { - m_trigger = trigger; + m_builder.SetTrigger(trigger); } void BackgroundTaskBuilder::AddCondition(winrt::IBackgroundCondition condition) @@ -37,14 +37,13 @@ namespace winrt::Microsoft::Windows::ApplicationModel::Background::implementatio winrt::BackgroundTaskRegistration BackgroundTaskBuilder::Register() { m_builder.Name(m_name); - m_builder.SetTrigger(m_trigger); m_builder.TaskEntryPoint(L"Microsoft.Windows.ApplicationModel.Background.UniversalBGTask.Task"); winrt::BackgroundTaskRegistration taskRegistration = m_builder.Register(); winrt::ApplicationDataContainer localSettings = winrt::ApplicationData::Current().LocalSettings(); auto values = localSettings.Values(); winrt::hstring lookupId = winrt::to_hstring(taskRegistration.TaskId()); - IInspectable obj = winrt::box_value(m_taskEntryPointClsId); + IInspectable obj = winrt::box_value(m_taskEntryPointClsid); values.Insert(lookupId, obj); return taskRegistration; diff --git a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.h b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.h index 91af5f59a8..88f84a9e06 100644 --- a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.h +++ b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.h @@ -10,7 +10,7 @@ namespace winrt::Microsoft::Windows::ApplicationModel::Background::implementatio struct BackgroundTaskBuilder : BackgroundTaskBuilderT { BackgroundTaskBuilder() = default; - void SetTaskEntryPointClsId(winrt::guid clsId); + void SetTaskEntryPointClsid(winrt::guid clsId); void SetTrigger( winrt::Windows::ApplicationModel::Background::IBackgroundTrigger trigger @@ -28,10 +28,9 @@ namespace winrt::Microsoft::Windows::ApplicationModel::Background::implementatio winrt::Windows::ApplicationModel::Background::BackgroundTaskRegistration Register(winrt::hstring taskName); private: - winrt::guid m_taskEntryPointClsId; + winrt::guid m_taskEntryPointClsid; winrt::Windows::ApplicationModel::Background::BackgroundTaskBuilder m_builder; winrt::hstring m_name; - winrt::Windows::ApplicationModel::Background::IBackgroundTrigger m_trigger; }; } diff --git a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.idl b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.idl index 315f8e7366..e9f1c6a32b 100644 --- a/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.idl +++ b/dev/BackgroundTask/BackgroundTaskBuilder/BackgroundTaskBuilder.idl @@ -14,7 +14,7 @@ namespace Microsoft.Windows.ApplicationModel.Background void SetTrigger( Windows.ApplicationModel.Background.IBackgroundTrigger trigger ); - void SetTaskEntryPointClsId( + void SetTaskEntryPointClsid( GUID clsId ); void AddCondition ( From 5b9ff1e4f9788dbf0aee807fe9e9d9b84dbcf870 Mon Sep 17 00:00:00 2001 From: godlytalias Date: Wed, 30 Oct 2024 16:49:41 +0530 Subject: [PATCH 5/5] Removing unwanted characters Signed-off-by: godlytalias --- .../WindowsAppRuntime_UniversalBGTaskDLL.def | 2 +- .../WindowsAppRuntime_UniversalBGTaskDLL.vcxproj.filters | 2 +- dev/WindowsAppRuntime_UniversalBGTaskDLL/packages.config | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.def b/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.def index ad4041035f..d04a02ea81 100644 --- a/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.def +++ b/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.def @@ -1,3 +1,3 @@ -EXPORTS +EXPORTS DllCanUnloadNow = WINRT_CanUnloadNow PRIVATE DllGetActivationFactory = WINRT_GetActivationFactory PRIVATE diff --git a/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.vcxproj.filters b/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.vcxproj.filters index e5f909f8b0..5ac0ee6c25 100644 --- a/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.vcxproj.filters +++ b/dev/WindowsAppRuntime_UniversalBGTaskDLL/WindowsAppRuntime_UniversalBGTaskDLL.vcxproj.filters @@ -1,4 +1,4 @@ - + diff --git a/dev/WindowsAppRuntime_UniversalBGTaskDLL/packages.config b/dev/WindowsAppRuntime_UniversalBGTaskDLL/packages.config index e79d82e883..df5f654653 100644 --- a/dev/WindowsAppRuntime_UniversalBGTaskDLL/packages.config +++ b/dev/WindowsAppRuntime_UniversalBGTaskDLL/packages.config @@ -1,4 +1,4 @@ - +