diff options
author | crupest <crupest@outlook.com> | 2022-02-03 14:55:17 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2022-02-03 14:55:17 +0800 |
commit | d15172cfe1ac8558567c1b1c10c2e671b0d1f033 (patch) | |
tree | 44eb3f6c760bc4a30786c4716a3c70d2b4b4c28e /src/common/platform/win/Win32FileStream.cpp | |
parent | 2cf2f297c00ad262ddcbe56d38fdd45dffb7e342 (diff) | |
download | cru-d15172cfe1ac8558567c1b1c10c2e671b0d1f033.tar.gz cru-d15172cfe1ac8558567c1b1c10c2e671b0d1f033.tar.bz2 cru-d15172cfe1ac8558567c1b1c10c2e671b0d1f033.zip |
...
Diffstat (limited to 'src/common/platform/win/Win32FileStream.cpp')
-rw-r--r-- | src/common/platform/win/Win32FileStream.cpp | 21 |
1 files changed, 5 insertions, 16 deletions
diff --git a/src/common/platform/win/Win32FileStream.cpp b/src/common/platform/win/Win32FileStream.cpp index 5997c570..ddf81c28 100644 --- a/src/common/platform/win/Win32FileStream.cpp +++ b/src/common/platform/win/Win32FileStream.cpp @@ -53,21 +53,7 @@ Win32FileStream::~Win32FileStream() { bool Win32FileStream::CanSeek() { return true; } -Index Win32FileStream::Tell() { - CheckClosed(); - - LARGE_INTEGER offset; - offset.QuadPart = 0; - LARGE_INTEGER file_pointer; - if (::SetFilePointerEx(p_->handle, offset, &file_pointer, FILE_CURRENT) == - 0) { - throw Win32Error(u"Failed to call SetFilePointerEx."); - } - - return file_pointer.QuadPart; -} - -void Win32FileStream::Seek(Index offset, SeekOrigin origin) { +Index Win32FileStream::Seek(Index offset, SeekOrigin origin) { CheckClosed(); DWORD dwMoveMethod = 0; @@ -82,9 +68,12 @@ void Win32FileStream::Seek(Index offset, SeekOrigin origin) { LARGE_INTEGER n_offset; n_offset.QuadPart = offset; - if (::SetFilePointerEx(p_->handle, n_offset, nullptr, dwMoveMethod) == 0) { + LARGE_INTEGER n_new_offset; + if (!::SetFilePointerEx(p_->handle, n_offset, &n_new_offset, dwMoveMethod)) { throw Win32Error(u"Failed to call SetFilePointerEx."); } + + return n_new_offset.QuadPart; } bool Win32FileStream::CanRead() { return true; } |