Browse Source

winrt: EffectiveLocation still needs an ifdef, IsApiContractPresent is for runtime

Ethan Lee 4 years ago
parent
commit
169cfe5a7c
1 changed files with 4 additions and 0 deletions
  1. 4 0
      src/filesystem/winrt/SDL_sysfilesystem.cpp

+ 4 - 0
src/filesystem/winrt/SDL_sysfilesystem.cpp

@@ -48,12 +48,16 @@ SDL_WinRTGetFSPathUNICODE(SDL_WinRT_Path pathType)
         {
             static wstring path;
             if (path.empty()) {
+#if (NTDDI_VERSION >= NTDDI_WIN10_19H1) && (WINAPI_FAMILY == WINAPI_FAMILY_PC_APP) /* Only PC supports mods */
                 /* Windows 1903 supports mods, via the EffectiveLocation API */
                 if (Windows::Foundation::Metadata::ApiInformation::IsApiContractPresent("Windows.Foundation.UniversalApiContract", 8, 0)) {
                     path = Windows::ApplicationModel::Package::Current->EffectiveLocation->Path->Data();
                 } else {
                     path = Windows::ApplicationModel::Package::Current->InstalledLocation->Path->Data();
                 }
+#else
+                path = Windows::ApplicationModel::Package::Current->InstalledLocation->Path->Data();
+#endif
             }
             return path.c_str();
         }