summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
-rw-r--r--src/osd/modules/file/winrtfile.cpp6
-rw-r--r--src/osd/uwp/uwpcompat.cpp8
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;
}
}