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/BridgeComStream.cpp | |
parent | 2cf2f297c00ad262ddcbe56d38fdd45dffb7e342 (diff) | |
download | cru-d15172cfe1ac8558567c1b1c10c2e671b0d1f033.tar.gz cru-d15172cfe1ac8558567c1b1c10c2e671b0d1f033.tar.bz2 cru-d15172cfe1ac8558567c1b1c10c2e671b0d1f033.zip |
...
Diffstat (limited to 'src/common/platform/win/BridgeComStream.cpp')
-rw-r--r-- | src/common/platform/win/BridgeComStream.cpp | 26 |
1 files changed, 17 insertions, 9 deletions
diff --git a/src/common/platform/win/BridgeComStream.cpp b/src/common/platform/win/BridgeComStream.cpp index eaa53b92..d324a4c2 100644 --- a/src/common/platform/win/BridgeComStream.cpp +++ b/src/common/platform/win/BridgeComStream.cpp @@ -50,15 +50,23 @@ HRESULT BridgeComStream::Write(const void *pv, ULONG cb, ULONG *pcbWritten) { HRESULT BridgeComStream::Seek(LARGE_INTEGER dlibMove, DWORD dwOrigin, ULARGE_INTEGER *plibNewPosition) { - io::Stream::SeekOrigin so = - dwOrigin == STREAM_SEEK_SET - ? io::Stream::SeekOrigin::Begin - : (STREAM_SEEK_CUR ? io::Stream::SeekOrigin::Current - : io::Stream::SeekOrigin::End); - - stream_->Seek(dlibMove.QuadPart, so); - plibNewPosition->QuadPart = stream_->Tell(); - + io::Stream::SeekOrigin so; + + switch (dwOrigin) { + case STREAM_SEEK_SET: + so = io::Stream::SeekOrigin::Begin; + break; + case STREAM_SEEK_CUR: + so = io::Stream::SeekOrigin::Current; + break; + case STREAM_SEEK_END: + so = io::Stream::SeekOrigin::End; + break; + default: + return STG_E_INVALIDFUNCTION; + }; + + plibNewPosition->QuadPart = stream_->Seek(dlibMove.QuadPart, so); return S_OK; } |