/////////////////////////////////////////////////////////////////////////////
//
// Copyright: Microsoft Corp. 1997-1999. All rights reserved
//
/////////////////////////////////////////////////////////////////////////////
// EventLogUtilities.idl : IDL source for EventLogUtilities.dll
//

// This file will be processed by the MIDL tool to
// produce the type library (EventLogUtilities.tlb) and marshalling code.

import "oaidl.idl";
import "ocidl.idl";

typedef enum eEventType
	{
	   ErrorEvent = 0,
	   WarningEvent = 1,
	   InformationEvent = 2,
	   AuditSuccess = 3,
	   AuditFailure = 4
	} eEventType;

/*
EVENTLOG_ERROR_TYPE Error event 
EVENTLOG_WARNING_TYPE Warning event 
EVENTLOG_INFORMATION_TYPE Information event 
EVENTLOG_AUDIT_SUCCESS Success Audit event 
EVENTLOG_AUDIT_FAILURE Failure Audit event 
*/

	[
		object,
		uuid(CACECD29-3108-4132-9A4E-53B54FFDAFA0),
		dual,
		helpstring("IView Interface"),
		pointer_default(unique)
	]
	interface IView : IDispatch
	{
		[propget, id(1), helpstring("property Logs")] HRESULT Logs([out, retval] VARIANT *pVal);
		[propget, id(2), helpstring("property Server")] HRESULT Server([out, retval] BSTR *pVal);
		[propput, id(2), helpstring("property Server")] HRESULT Server([in] BSTR newVal);
	};
	[
		object,
		uuid(AAA9B130-C64E-400F-BC63-BA9C946082A6),
		dual,
		helpstring("ILogs Interface"),
		pointer_default(unique)
	]
	interface ILogs : IDispatch
	{
		[propget, id(1), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
		[propget, id(DISPID_NEWENUM), helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] LPUNKNOWN *pVal);
		[propget, id(DISPID_VALUE), helpstring("property Item")] HRESULT Item([in] VARIANT Index, [out, retval] VARIANT *pVal);
	};
	[
		object,
		uuid(9FC21F08-F75C-4818-B42C-8A59DB3E33E7),
		dual,
		helpstring("ILog Interface"),
		pointer_default(unique)
	]
	interface ILog : IDispatch
	{
		[propget, id(1), helpstring("property Events")] HRESULT Events([out, retval] VARIANT *pVal);
		[propget, id(2), helpstring("property Name")] HRESULT Name([out, retval] BSTR *pVal);
		[propget, id(3), helpstring("property Server")] HRESULT Server([out, retval] BSTR *pVal);
		[propput, id(3), helpstring("property Server")] HRESULT Server([in] BSTR newVal);
		[id(4), helpstring("method Clear")] HRESULT Clear();
	};
	[
		object,
		uuid(B70B0436-726F-4742-B08E-1AEE6D6C6AA9),
		dual,
		helpstring("IEvents Interface"),
		pointer_default(unique)
	]
	interface IEvents : IDispatch
	{
		[propget, id(1), helpstring("property Count")] HRESULT Count([out, retval] long *pVal);
		[propget, id(DISPID_NEWENUM), helpstring("property _NewEnum")] HRESULT _NewEnum([out, retval] LPUNKNOWN *pVal);
		[propget, id(DISPID_VALUE), helpstring("property Item")] HRESULT Item([in] long Index, [out, retval] VARIANT *pVal);
	};
	[
		object,
		uuid(5FF33202-DD46-4C30-809D-BD868D6A6D29),
		dual,
		helpstring("IEvent Interface"),
		pointer_default(unique)
	]
	interface IEvent : IDispatch
	{
		[propget, id(1), helpstring("property EventID")] HRESULT EventID([out, retval] long *pVal);
		[propget, id(2), helpstring("property EventType")] HRESULT EventType([out, retval] eEventType *pVal);
		[propget, id(3), helpstring("property Category")] HRESULT Category([out, retval] long *pVal);
		[propget, id(4), helpstring("property Description")] HRESULT Description([out, retval] BSTR *pVal);
		[propget, id(5), helpstring("property Source")] HRESULT Source([out, retval] BSTR *pVal);
		[propget, id(6), helpstring("property User")] HRESULT User([out, retval] BSTR *pVal);
		[propget, id(7), helpstring("property OccurrenceTime")] HRESULT OccurrenceTime([out, retval] DATE *pVal);
		[propget, id(8), helpstring("property ComputerName")] HRESULT ComputerName([out, retval] BSTR *pVal);
		[propget, id(9), helpstring("property Data")] HRESULT Data([out, retval] VARIANT *pVal);
	};

[
	uuid(B7F1CC1F-3483-414C-A88A-863290D91EBE),
	version(1.0),
	helpstring("EventLogUtilities 1.0 Type Library")
]
//library EVENTLOGUTILITIESLib
library EventLogUtilities
{
	importlib("stdole32.tlb");
	importlib("stdole2.tlb");

	interface ILogs;
	interface IEvents;

	[
		uuid(FF184146-A804-4FB1-BDA7-1E05052C5553),
		helpstring("View Class")
	]
	coclass View
	{
		[default] interface IView;
	};
/*
	[
		uuid(AAF8E887-B70F-4F9B-89BB-520D247A8BF0),
		helpstring("Logs Class")
	]
	coclass Logs
	{
		[default] interface ILogs;
	};
*/
	[
		uuid(07C97B1B-4042-4DD3-9FDD-56EC7677E30E),
		helpstring("Log Class")
	]
	coclass Log
	{
		[default] interface ILog;
	};
/*
	[
		uuid(B60CCD16-A43B-4A9A-A3C1-F51F81CCAA26),
		helpstring("Events Class")
	]
	coclass Events
	{
		[default] interface IEvents;
	};
*/
	[
		uuid(32FB0C7C-96CA-4263-A1FE-215A0AF69B34),
		helpstring("Event Class")
	]
	coclass Event
	{
		[default] interface IEvent;
	};
};