From ebf02df10deeddf22bec3915c034dfbd10624515 Mon Sep 17 00:00:00 2001 From: Steve Lhomme Date: Mon, 19 Sep 2022 13:11:41 +0200 Subject: don't call CreateFileW on Universal Windows Platform builds It cannot be called: https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfilew There is CreateFile2 which is very similar: https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-createfile2 --- src/share/win_utf8_io/win_utf8_io.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/share/win_utf8_io/win_utf8_io.c b/src/share/win_utf8_io/win_utf8_io.c index 120d1ec7..a133254d 100644 --- a/src/share/win_utf8_io/win_utf8_io.c +++ b/src/share/win_utf8_io/win_utf8_io.c @@ -155,7 +155,18 @@ HANDLE WINAPI CreateFile_utf8(const char *lpFileName, DWORD dwDesiredAccess, DWO HANDLE handle = INVALID_HANDLE_VALUE; if ((wname = wchar_from_utf8(lpFileName)) != NULL) { +#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) handle = CreateFileW(wname, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile); +#else // !WINAPI_PARTITION_DESKTOP + CREATEFILE2_EXTENDED_PARAMETERS params; + params.dwSize = sizeof(params); + params.dwFileAttributes = dwFlagsAndAttributes & 0xFFFF; + params.dwFileFlags = dwFlagsAndAttributes & 0xFFF00000; + params.dwSecurityQosFlags = dwFlagsAndAttributes & 0x000F0000; + params.lpSecurityAttributes = lpSecurityAttributes; + params.hTemplateFile = hTemplateFile; + handle = CreateFile2(wname, dwDesiredAccess, dwShareMode, dwCreationDisposition, ¶ms); +#endif // !WINAPI_PARTITION_DESKTOP free(wname); } -- cgit v1.2.1