summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-05-01 20:44:34 +0200
committerCarl Hetherington <cth@carlh.net>2022-05-01 20:44:34 +0200
commitc5b8b7e1e229895b8afcb20287f22f90dd8e9d45 (patch)
tree43a57d3347b9973fadf88bb5065ad9f68dda59d3
parentee2ba36e87ebb9546d06b65ada307c823db5dcd2 (diff)
Log actual error codes from CreateFileW failures.
-rw-r--r--src/KM_fileio.cpp26
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;