Add event_log
Signed-off-by: Simon Rozman <simon@rozman.si>
This commit is contained in:
parent
0029a491a9
commit
2493f3790e
@ -2255,5 +2255,55 @@ namespace winstd
|
||||
}
|
||||
};
|
||||
|
||||
///
|
||||
/// Event log handle wrapper
|
||||
///
|
||||
class event_log : public handle<HANDLE, NULL>
|
||||
{
|
||||
WINSTD_HANDLE_IMPL(event_log, NULL)
|
||||
|
||||
public:
|
||||
///
|
||||
/// Closes an event log handle.
|
||||
///
|
||||
/// \sa [DeregisterEventSource function](https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-deregistereventsource)
|
||||
///
|
||||
virtual ~event_log()
|
||||
{
|
||||
if (m_h != invalid)
|
||||
free_internal();
|
||||
}
|
||||
|
||||
///
|
||||
/// Retrieves a registered handle to the specified event log.
|
||||
///
|
||||
/// \sa [RegisterEventSource function](https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-registereventsourcew)
|
||||
///
|
||||
/// \return
|
||||
/// - \c true when succeeds;
|
||||
/// - \c false when fails. Use `GetLastError()` for failure reason.
|
||||
///
|
||||
bool open(_In_z_ LPCTSTR lpUNCServerName, _In_z_ LPCTSTR lpSourceName) noexcept
|
||||
{
|
||||
handle_type h = RegisterEventSource(lpUNCServerName, lpSourceName);
|
||||
if (h != invalid) {
|
||||
attach(h);
|
||||
return true;
|
||||
} else
|
||||
return false;
|
||||
}
|
||||
|
||||
protected:
|
||||
///
|
||||
/// Closes an event log handle.
|
||||
///
|
||||
/// \sa [DeregisterEventSource function](https://docs.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-deregistereventsource)
|
||||
///
|
||||
void free_internal() noexcept override
|
||||
{
|
||||
DeregisterEventSource(m_h);
|
||||
}
|
||||
};
|
||||
|
||||
/// @}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user