PackageManagerSettings.cpp (2363B)
1 // Copyright (c) Microsoft Corporation. 2 // Licensed under the MIT License. 3 #include "pch.h" 4 #pragma warning( push ) 5 #pragma warning ( disable : 4467 6388) 6 // 6388 Allow CreateInstance. 7 #include <wil\cppwinrt_wrl.h> 8 // 4467 Allow use of uuid attribute for com object creation. 9 #include "PackageManager.h" 10 #include "PackageManagerSettings.h" 11 #pragma warning( pop ) 12 #include "PackageManagerSettings.g.cpp" 13 #include "Helpers.h" 14 #include <winget/UserSettings.h> 15 #include <AppInstallerRuntime.h> 16 17 namespace winrt::Microsoft::Management::Deployment::implementation 18 { 19 bool PackageManagerSettings::SetCallerIdentifier(hstring const& callerIdentifier) 20 { 21 bool success = false; 22 static std::once_flag setCallerOnceFlag; 23 std::call_once(setCallerOnceFlag, 24 [&]() 25 { 26 SetComCallerName(AppInstaller::Utility::ConvertToUTF8(callerIdentifier)); 27 success = true; 28 }); 29 return success; 30 } 31 bool PackageManagerSettings::SetStateIdentifier(hstring const& stateIdentifier) 32 { 33 bool success = false; 34 static std::once_flag setStateOnceFlag; 35 std::call_once(setStateOnceFlag, 36 [&]() 37 { 38 AppInstaller::Runtime::SetRuntimePathStateName(AppInstaller::Utility::ConvertToUTF8(stateIdentifier)); 39 success = true; 40 }); 41 return success; 42 } 43 bool PackageManagerSettings::SetUserSettings(hstring const& settingsContent) 44 { 45 bool success = false; 46 static std::once_flag setSettingsOnceFlag; 47 std::call_once(setSettingsOnceFlag, 48 [&]() 49 { 50 success = AppInstaller::Settings::TryInitializeCustomUserSettings(AppInstaller::Utility::ConvertToUTF8(settingsContent)); 51 if (success) 52 { 53 AppInstaller::Logging::Log().SetEnabledChannels(AppInstaller::Settings::User().Get<AppInstaller::Settings::Setting::LoggingChannelPreference>()); 54 AppInstaller::Logging::Log().SetLevel(AppInstaller::Settings::User().Get<AppInstaller::Settings::Setting::LoggingLevelPreference>()); 55 } 56 }); 57 return success; 58 } 59 60 CoCreatableMicrosoftManagementDeploymentClass(PackageManagerSettings); 61 }