mirror of https://github.com/tongzx/nt5src
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.
125 lines
2.7 KiB
125 lines
2.7 KiB
#ifndef _MEVENTLOG_HH
|
|
#define _MEVENTLOG_HH
|
|
|
|
|
|
// Copyright (c) Microsoft. All Rights Reserved
|
|
//
|
|
// THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF Microsoft.
|
|
// The copyright notice above does not evidence any
|
|
// actual or intendd publication of such source code.
|
|
//
|
|
// OneLiner : Interface for MEventLog
|
|
// DevUnit : wlbstest
|
|
// Author : Murtaza Hakim
|
|
//
|
|
// Description:
|
|
// ------------
|
|
// Gets event logs from a remote machine.
|
|
|
|
// Include Files
|
|
#include "MWmiObject.h"
|
|
|
|
#include <vector>
|
|
#include <map>
|
|
|
|
#include <wbemidl.h>
|
|
#include <comdef.h>
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
class MEventLog
|
|
{
|
|
public:
|
|
|
|
class Event
|
|
{
|
|
public:
|
|
unsigned long RecordNumber;
|
|
_bstr_t Logfile;
|
|
unsigned long EventIdentifier;
|
|
unsigned int EventCode;
|
|
_bstr_t SourceName;
|
|
_bstr_t Type;
|
|
unsigned int Category;
|
|
_bstr_t ComputerName;
|
|
_bstr_t Message;
|
|
};
|
|
|
|
|
|
class UniqueEvent
|
|
{
|
|
public:
|
|
unsigned long Count; // represents how many times event with this eventcode has happened.
|
|
|
|
_bstr_t Logfile;
|
|
unsigned int EventCode;
|
|
_bstr_t SourceName;
|
|
_bstr_t Type;
|
|
unsigned int Category;
|
|
_bstr_t ComputerName;
|
|
_bstr_t Message;
|
|
};
|
|
|
|
enum MEventLog_Error
|
|
{
|
|
MEventLog_SUCCESS = 0,
|
|
COM_FAILURE = 1,
|
|
UNCONSTRUCTED = 2,
|
|
};
|
|
|
|
|
|
// constructor
|
|
//
|
|
MEventLog( _bstr_t machineIP );
|
|
|
|
// constructor for local machine
|
|
//
|
|
MEventLog();
|
|
|
|
// copy constructor
|
|
//
|
|
MEventLog( const MEventLog& obj);
|
|
|
|
// assignment operator
|
|
//
|
|
MEventLog&
|
|
operator=(const MEventLog& rhs );
|
|
|
|
// destructor
|
|
//
|
|
~MEventLog();
|
|
|
|
// gets all event messages on remote machine.
|
|
MEventLog_Error
|
|
getEvents( vector< Event >* eventContainer );
|
|
|
|
// gets all event messages on remote machine.
|
|
MEventLog_Error
|
|
getEvents( map< unsigned int, UniqueEvent >& systemEvents,
|
|
map< unsigned int, UniqueEvent >& applicationEvents );
|
|
|
|
// gets all event messages on remote machine.
|
|
MEventLog_Error
|
|
getEvents( map< _bstr_t, map< unsigned int, UniqueEvent > >& Events );
|
|
|
|
|
|
// refresh connection
|
|
MEventLog_Error
|
|
refreshConnection();
|
|
|
|
private:
|
|
|
|
_bstr_t _mIP;
|
|
|
|
MWmiObject machine;
|
|
};
|
|
|
|
//------------------------------------------------------
|
|
// Ensure Type Safety
|
|
//------------------------------------------------------
|
|
typedef class MIPAddressAdmin MIPAddressAdmin;
|
|
//------------------------------------------------------
|
|
//
|
|
#endif _MEVENTLOG_HH
|