Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/**********************************************************************/ /** Microsoft Windows NT **/ /** Copyright(c) Microsoft Corp., 1991 **/ /**********************************************************************/
/*
ELFSRC.HXX
Event Log sourcing classes.
FILE HISTORY: DavidHov 2/16/93 Created
*/
#ifndef _ELFSRC_HXX_
#define _ELFSRC_HXX_
#define ELFSRC_MAX_STRINGS 10
/*************************************************************************
NAME: EVENT_LOG_SOURCE
SYNOPSIS: Object used by an application to generate event log entries.
This class encapsulates:
Establishing an application as a valid event log source;
Logging event in various forms;
Removing an application as a valid event log source. (CURRENTLY UNIMPLEMENTED!)
INTERFACE: Construct one instance for a given application.
PARENT: BASE
USES: None
CAVEATS: BE SURE TO TERMINATE VARIABLE ARGUMENT LISTS WITH NULL.
The Destroy() method is currently unimplemented. NOTES: This class wrappers the following Win32 APIs:
RegisterEventSource DeregisterEventSource ReportEvent
The first constructor form is used to create the necessary Registry keys and values for Event Log support. If they already exist, construction succeeds anyway. THIS IS THE RECOMMENDED APPROACH.
The second constructor assumes that the information is already present in the Registry and WILL FAIL IF IT IS NOT.
Note the use of variable lists of arguments, all of which are "const TCHAR *". These variable argument lists MUST BE TERMINATED with NULL or the "va_args" routines will almost certainly fault.
HISTORY: DavidHov 03/01/93 Created
**************************************************************************/
DLL_CLASS EVENT_LOG_SOURCE : public BASE { public: // Constructor which creates required Registry entries
// if not already present in Registry
EVENT_LOG_SOURCE ( const TCHAR * pchSourceName, const TCHAR * pchDllName, DWORD dwTypesSupported, const TCHAR * pchServerName = NULL ) ;
// Constructor which assumes source is already registered.
EVENT_LOG_SOURCE ( const TCHAR * pchSourceName, const TCHAR * pchServerName = NULL ) ;
~ EVENT_LOG_SOURCE () ;
// Log an event: a set of strings terminated by NULL.
APIERR Log ( WORD wType, WORD wCategory, DWORD dwEventId, const TCHAR * pchStr1 = NULL, ... ) ;
// Log an event: raw binary data, a SID and a set of strings
// terminated by NULL. This is the full magilla.
APIERR Log ( WORD wType, WORD wCategory, DWORD dwEventId, PVOID pvRawData, DWORD cbRawData, PSID pSid, const TCHAR * pchStr1, ... ) ;
// Destroy the event log source information in the Registry
// BUGBUG: UNIMPLEMENTED!
APIERR Destroy () ;
protected: HANDLE _hndl ; // The event log source handle
// Create and open the event log source
APIERR Create ( const TCHAR * pchSourceName, const TCHAR * pchDllName, DWORD dwTypesSupported, const TCHAR * pchServerName ) ;
// Open the event log source
APIERR Open ( const TCHAR * pchSourceName, const TCHAR * pchServerName ) ;
// Close the source
APIERR Close () ; };
#endif // _ELFSRC_HXX_
|