diff options
Diffstat (limited to 'api/logger.h')
-rw-r--r-- | api/logger.h | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/api/logger.h b/api/logger.h index 5e26de3..0affdc3 100644 --- a/api/logger.h +++ b/api/logger.h @@ -16,20 +16,29 @@ extern WINTUN_LOGGER_CALLBACK_FUNC Logger; void WINAPI WintunSetLogger(_In_ WINTUN_LOGGER_CALLBACK_FUNC NewLogger); +static inline _Post_equals_last_error_ DWORD +LoggerLog(_In_ WINTUN_LOGGER_LEVEL Level, _In_z_ const WCHAR *LogLine) +{ + DWORD LastError = GetLastError(); + Logger(Level, LogLine); + SetLastError(LastError); + return LastError; +} + _Post_equals_last_error_ DWORD LoggerError(_In_z_ const WCHAR *Prefix, _In_ DWORD Error); static inline _Post_equals_last_error_ DWORD LoggerLastError(_In_z_ const WCHAR *Prefix) { - DWORD Error = GetLastError(); - LoggerError(Prefix, Error); - SetLastError(Error); - return Error; + DWORD LastError = GetLastError(); + LoggerError(Prefix, LastError); + SetLastError(LastError); + return LastError; } #define __L(x) L##x #define _L(x) __L(x) -#define LOG(lvl, msg) (Logger((lvl), _L(__FUNCTION__) L": " msg)) +#define LOG(lvl, msg) (LoggerLog((lvl), _L(__FUNCTION__) L": " msg)) #define LOG_ERROR(msg, err) (LoggerError(_L(__FUNCTION__) L": " msg, (err))) #define LOG_LAST_ERROR(msg) (LoggerLastError(_L(__FUNCTION__) L": " msg)) |