From 58e37eee64b13df9cf24cdfc97906e19b2898869 Mon Sep 17 00:00:00 2001 From: crupest Date: Tue, 10 May 2022 11:02:56 +0800 Subject: ... --- src/common/platform/win/StreamConvert.cpp | 29 ++--------------------------- 1 file changed, 2 insertions(+), 27 deletions(-) (limited to 'src/common/platform/win/StreamConvert.cpp') diff --git a/src/common/platform/win/StreamConvert.cpp b/src/common/platform/win/StreamConvert.cpp index 8e2648c2..d547caa5 100644 --- a/src/common/platform/win/StreamConvert.cpp +++ b/src/common/platform/win/StreamConvert.cpp @@ -1,5 +1,6 @@ #include "cru/common/platform/win/StreamConvert.h" #include "BrigdeComStream.h" +#include "Win32FileStreamPrivate.h" #include "cru/common/Exception.h" #include "cru/common/io/MemoryStream.h" #include "cru/common/io/OpenFileFlag.h" @@ -19,33 +20,7 @@ IStream* ConvertStreamToComStream(io::Stream* stream) { reinterpret_cast(memory_stream->GetBuffer()), memory_stream->GetSize()); } else if (auto file_stream = dynamic_cast(stream)) { - auto path = file_stream->GetPath(); - auto flags = file_stream->GetOpenFileFlags(); - DWORD grfMode = STGM_SHARE_DENY_NONE | STGM_FAILIFTHERE; - if (flags & io::OpenFileFlags::Read) { - if (flags & io::OpenFileFlags::Write) { - grfMode |= STGM_READWRITE; - } else { - grfMode |= STGM_READ; - } - } else { - if (flags & io::OpenFileFlags::Write) { - grfMode |= STGM_WRITE; - } else { - throw Exception(u"Stream must be readable or writable."); - } - } - - IStream* result; - - ThrowIfFailed(SHCreateStreamOnFileEx( - path.WinCStr(), grfMode, FILE_ATTRIBUTE_NORMAL, FALSE, NULL, &result)); - - LARGE_INTEGER position; - position.QuadPart = stream->Tell(); - result->Seek(position, STREAM_SEEK_SET, NULL); - - return result; + return file_stream->GetPrivate_()->stream_; } else { return new BridgeComStream(stream); } -- cgit v1.2.3