diff options
-rw-r--r-- | src/osd/modules/file/winrtfile.cpp | 6 | ||||
-rw-r--r-- | src/osd/uwp/uwpcompat.cpp | 8 |
2 files changed, 9 insertions, 5 deletions
diff --git a/src/osd/modules/file/winrtfile.cpp b/src/osd/modules/file/winrtfile.cpp index 14cb08aa7c4..a33c61cd657 100644 --- a/src/osd/modules/file/winrtfile.cpp +++ b/src/osd/modules/file/winrtfile.cpp @@ -232,9 +232,7 @@ osd_file::error osd_file::open(std::string const &orig_path, uint32_t openflags, // get the file size FILE_STANDARD_INFO file_info; GetFileInformationByHandleEx(h, FileStandardInfo, &file_info, sizeof(file_info)); - auto lower = file_info.EndOfFile.QuadPart; - - if (INVALID_FILE_SIZE == lower) + if (INVALID_FILE_SIZE == file_info.EndOfFile.LowPart) { DWORD const err = GetLastError(); if (NO_ERROR != err) @@ -247,7 +245,7 @@ osd_file::error osd_file::open(std::string const &orig_path, uint32_t openflags, try { file = std::make_unique<win_osd_file>(h); - filesize = lower; + filesize = file_info.EndOfFile.QuadPart; return error::NONE; } catch (...) diff --git a/src/osd/uwp/uwpcompat.cpp b/src/osd/uwp/uwpcompat.cpp index 0358d65bcf8..b8f585b4e5b 100644 --- a/src/osd/uwp/uwpcompat.cpp +++ b/src/osd/uwp/uwpcompat.cpp @@ -93,6 +93,12 @@ extern "C" { _Out_opt_ LPDWORD lpFileSizeHigh ) { - return 0; + FILE_STANDARD_INFO file_info; + GetFileInformationByHandleEx(hFile, FileStandardInfo, &file_info, sizeof(file_info)); + if(lpFileSizeHigh!=nullptr) + { + *lpFileSizeHigh = file_info.EndOfFile.HighPart; + } + return file_info.EndOfFile.LowPart; } } |