UWP build fix
authorAlberto Fustinoni <claudiuslollarius@gmail.com>
Fri, 5 Jan 2018 06:39:04 +0000 (15:39 +0900)
committerErik de Castro Lopo <erikd@mega-nerd.com>
Sat, 6 Jan 2018 06:49:14 +0000 (17:49 +1100)
Signed-off-by: Erik de Castro Lopo <erikd@mega-nerd.com>
src/libFLAC/windows_unicode_filenames.c

index 2404e31..3c91668 100644 (file)
@@ -185,6 +185,16 @@ int flac_internal_rename_utf8(const char *oldname, const char *newname)
 
 HANDLE WINAPI flac_internal_CreateFile_utf8(const char *lpFileName, DWORD dwDesiredAccess, DWORD dwShareMode, LPSECURITY_ATTRIBUTES lpSecurityAttributes, DWORD dwCreationDisposition, DWORD dwFlagsAndAttributes, HANDLE hTemplateFile)
 {
+#if _MSC_VER > 1900 && WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
+       wchar_t *wname;
+       HANDLE handle = INVALID_HANDLE_VALUE;
+
+       if ((wname = wchar_from_utf8(lpFileName)) != NULL) {
+
+               handle = CreateFile2(wname, dwDesiredAccess, dwShareMode, CREATE_ALWAYS, NULL);
+               free(wname);
+       }
+#else
        if (!utf8_filenames) {
                return CreateFileA(lpFileName, dwDesiredAccess, dwShareMode, lpSecurityAttributes, dwCreationDisposition, dwFlagsAndAttributes, hTemplateFile);
        } else {
@@ -198,4 +208,5 @@ HANDLE WINAPI flac_internal_CreateFile_utf8(const char *lpFileName, DWORD dwDesi
 
                return handle;
        }
+#endif
 }