diff options
| author | Carl Hetherington <cth@carlh.net> | 2022-05-01 20:44:34 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2022-05-01 20:44:34 +0200 |
| commit | c5b8b7e1e229895b8afcb20287f22f90dd8e9d45 (patch) | |
| tree | 43a57d3347b9973fadf88bb5065ad9f68dda59d3 | |
| parent | ee2ba36e87ebb9546d06b65ada307c823db5dcd2 (diff) | |
Log actual error codes from CreateFileW failures.
| -rw-r--r-- | src/KM_fileio.cpp | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/src/KM_fileio.cpp b/src/KM_fileio.cpp index c70002d..7f590a8 100644 --- a/src/KM_fileio.cpp +++ b/src/KM_fileio.cpp @@ -820,11 +820,17 @@ Kumu::FileReader::OpenRead(const std::string& filename) const ); delete[] buffer; + HRESULT const last_error = GetLastError(); ::SetErrorMode(prev); - return ( m_Handle == INVALID_HANDLE_VALUE ) ? - Kumu::RESULT_FILEOPEN : Kumu::RESULT_OK; + if (m_Handle == INVALID_HANDLE_VALUE) + { + DefaultLogSink().Error("CreateFileW failed: %lu\n", last_error); + return Kumu::RESULT_FILEOPEN; + } + + return Kumu::RESULT_OK; } // @@ -954,11 +960,15 @@ Kumu::FileWriter::OpenWrite(const std::string& filename) ); delete[] buffer; + HRESULT const last_error = GetLastError(); ::SetErrorMode(prev); - if ( m_Handle == INVALID_HANDLE_VALUE ) - return Kumu::RESULT_FILEOPEN; + if (m_Handle == INVALID_HANDLE_VALUE) + { + DefaultLogSink().Error("CreateFileW failed: %lu\n", last_error); + return Kumu::RESULT_FILEOPEN; + } m_IOVec = new h__iovec; return Kumu::RESULT_OK; @@ -990,11 +1000,15 @@ Kumu::FileWriter::OpenModify(const std::string& filename) ); delete[] buffer; + HRESULT const last_error = GetLastError(); ::SetErrorMode(prev); - if ( m_Handle == INVALID_HANDLE_VALUE ) - return Kumu::RESULT_FILEOPEN; + if (m_Handle == INVALID_HANDLE_VALUE) + { + DefaultLogSink().Error("CreateFileW failed: %lu\n", last_error); + return Kumu::RESULT_FILEOPEN; + } m_IOVec = new h__iovec; return Kumu::RESULT_OK; |
