[Settings] Add Image Resizer Settings hyperlink on feature detection of older OS Versions (#2868)

* Added the settings hyperlink code back

* Moved the os detection code to a different file so that it can be imported by image resizer

* Added code to the Image resizer project to react to import the dll

* Added an empty dll project

* Added a dll which can be imported by image resizer

* ImageResizer binding works

* Added the setDllDirectory to load the os-detection dll

* Removed the OS detection files that has been added to the common project

* Added reference to os-detect and removed reference to common/OS-Detection.h

* Modified project files

* Revert "Modified project files"

This reverts commit 75f9d73f30.

* Removed unnecessary showAdvanced bool variables

* Removed OS Detection code from common project

* Cleaned configuration properties of soln and projects

* runner is dependent on os-detection

* Added the os-detection.dll to wxs file

* nit space formatting

* Added reference to os-detection

* Added os-detection header file

* Add os-detection reference

* Added os-detection.dll

* removed the set dll directory and using relative paths instead

* Add relative path
This commit is contained in:
Alekhya
2020-05-12 09:58:29 -07:00
committed by GitHub
parent 0f8fbf6a1e
commit 62d9735a7e
20 changed files with 275 additions and 44 deletions

View File

@@ -0,0 +1,38 @@
#include "pch.h"
#include "os-detect.h"
#include <winrt/Windows.Foundation.Metadata.h>
// The following three helper functions determine if the user has a build version higher than or equal to 19h1, as that is a requirement for xaml islands
// Source : Microsoft-ui-xaml github
// Link: https://github.com/microsoft/microsoft-ui-xaml/blob/c045cde57c5c754683d674634a0baccda34d58c4/dev/dll/SharedHelpers.cpp
template<uint16_t APIVersion>
bool IsAPIContractVxAvailable()
{
static bool isAPIContractVxAvailableInitialized = false;
static bool isAPIContractVxAvailable = false;
if (!isAPIContractVxAvailableInitialized)
{
isAPIContractVxAvailableInitialized = true;
isAPIContractVxAvailable = winrt::Windows::Foundation::Metadata::ApiInformation::IsApiContractPresent(L"Windows.Foundation.UniversalApiContract", APIVersion);
}
return isAPIContractVxAvailable;
}
bool IsAPIContractV8Available()
{
return IsAPIContractVxAvailable<8>();
}
bool Is19H1OrHigher()
{
return IsAPIContractV8Available();
}
// This function returns true if the build is 19h1 or higher, so that we deploy the new settings.
// It returns false otherwise.
bool UseNewSettings()
{
return Is19H1OrHigher();
}