1From a9024bd18ce20653616e04702b5e220de56b6b2c Mon Sep 17 00:00:00 2001 2From: Steve Lhomme <robux4@ycbcr.xyz> 3Date: Fri, 15 May 2020 09:32:21 +0200 4Subject: [PATCH 3/3] don't use CreateFile in UWP builds 5 6CreateFile2 is available for such builds with more internal restrictions. 7 8See https://docs.microsoft.com/en-us/uwp/win32-and-com/win32-apis 9https://docs.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfile2 10--- 11 taglib/toolkit/tfilestream.cpp | 13 +++++++++++++ 12 1 file changed, 13 insertions(+) 13 14diff --git a/taglib/toolkit/tfilestream.cpp b/taglib/toolkit/tfilestream.cpp 15index ad4443ea..10cd8d56 100644 16--- a/taglib/toolkit/tfilestream.cpp 17+++ b/taglib/toolkit/tfilestream.cpp 18@@ -52,9 +52,22 @@ namespace 19 const DWORD access = readOnly ? GENERIC_READ : (GENERIC_READ | GENERIC_WRITE); 20 21 if(!path.wstr().empty()) 22+#if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) 23+ { 24+ CREATEFILE2_EXTENDED_PARAMETERS createExParams; 25+ createExParams.dwSize = sizeof(createExParams); 26+ createExParams.dwFileAttributes = FILE_ATTRIBUTE_NORMAL; 27+ createExParams.dwFileFlags = 0; 28+ createExParams.dwSecurityQosFlags = 0; 29+ createExParams.lpSecurityAttributes = NULL; 30+ createExParams.hTemplateFile = NULL; 31+ return CreateFile2(path.wstr().c_str(), access, FILE_SHARE_READ, OPEN_EXISTING, &createExParams); 32+ } 33+#else // WINAPI_PARTITION_DESKTOP 34 return CreateFileW(path.wstr().c_str(), access, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); 35 else if(!path.str().empty()) 36 return CreateFileA(path.str().c_str(), access, FILE_SHARE_READ, NULL, OPEN_EXISTING, 0, NULL); 37+#endif // WINAPI_PARTITION_DESKTOP 38 else 39 return InvalidFileHandle; 40 } 41-- 422.26.0.windows.1 43 44