#include "idl_types.h"

/*
  eventlog interface definition
*/
[ uuid(82273fdc-e32a-18c3-3f78-827929dc23ea),
  version(0.0),
  pointer_default(unique)
] interface eventlog
{
	typedef struct {
		uint16 unknown0;
		uint16 unknown1;
	} eventlog_OpenUnknown0;

	typedef struct {
		[value(2*strlen_m(r->name))] uint16 name_len;
		[value(r->name_len)]       uint16 name_size;
		unistr_noterm *name;
	} eventlog_String;

	/******************/
	/* Function: 0x00 */
	NTSTATUS eventlog_OpenEventLog(
		[in]	    eventlog_OpenUnknown0 *unknown0,
		[in]	    eventlog_String source,
		[in]	    eventlog_String unknown1,
		[in]	    uint32 unknown2,
		[in]	    uint32 unknown3,
		[out,ref]   policy_handle *handle
	);

	/******************/
	/* Function: 0x01 */
	NTSTATUS eventlog_GetNumRecords(
	);

	/******************/
	/* Function: 0x02 */
	NTSTATUS eventlog_ReadEventLog(
	);

	/******************/
	/* Function: 0x03 */
	NTSTATUS eventlog_CloseEventLog(
		[in,out,ref]     policy_handle *handle
	);
}