57 lines
1.8 KiB
C++

//----------------------------------------------------------------------------
//
// Copyright (C) Intel Corporation, 2006 - 2007.
//
// File: WindowsEventLog.h
//
// Contents: The class WindowsEventLog provide methods to access the Windows
// Event Log (Application partition).
//
// Notes:
//----------------------------------------------------------------------------
#ifndef _WINDOWS_EVENT_LOGGER_H
#define _WINDOWS_EVENT_LOGGER_H
#include <windows.h>
#include <stdio.h>
#include <atlbase.h>
#include "BaseEventLog.h"
class WindowsEventLog : public BaseEventLog
{
private:
// Data member which contain handle to registry.
HANDLE _hEventLinker;
// Registry key for adding the event source name.
CRegKey _RegistryKey;
public:
WindowsEventLog( const char * pszLogName,
const char * pszSrcName,
unsigned long dwNum,
const char * pszModuleName = NULL); // Ctor.
virtual ~WindowsEventLog(); // Dtor.
// Wrapper for ReportEvent that take care of Handle and EventType
void LogEvent( unsigned short CategoryID,
unsigned long EventType,
unsigned long EventID);
void LogEvent( unsigned short CategoryID,
unsigned long EventID,
unsigned long EventType,
const char * ArrayOfStrings[],
unsigned int NumOfArrayStr,
void * RawData = NULL ,
unsigned long RawDataSize = 0);
// Add a new source name to the registry by opening a new registry subkey under
// the Application key, adds a message-file name and a bitmask of supported types.
void AddEventSource(const char * pszLogName, // Application log or a custom log (e.g. "Application")
const char * pszSrcName, // event source name (e.g. "Intel (R) AMT").
const char * pszMsgDLL , // path for message DLL
unsigned long dwNum); // number of categories
};
#endif /* _WINDOWS_EVENT_LOGGER_H */