#include "idl_types.h"

[
	uuid("b9e79e60-3d52-11ce-aaa1-00006901293f"),
	version(0.2),
    pointer_default(unique),
 	endpoint("ncacn_np:[\\pipe\\epmapper]", "ncacn_ip_tcp:[135]", 
		  "ncalrpc:[EPMAPPER]", "ncacn_unix_stream:[/tmp/epmapper]")
] interface rot
{
	WERROR rot_add (
					[in] uint32 flags, 
					[in] MInterfacePointer *unk, 
					[in] MInterfacePointer *moniker, 
					[out] uint32 rotid
					);
	
	WERROR rot_remove (
				  [in] uint32 rotid
				  );
	
	WERROR rot_is_listed (
					 [in] MInterfacePointer *moniker
					 );
	
	WERROR rot_get_interface_pointer (
					 [in] MInterfacePointer *moniker, 
					 [out] MInterfacePointer *ip
					 );
	
	WERROR rot_set_modification_time (
						  [in] uint32 rotid, 
						  [in] NTTIME *t
						  );
	
	WERROR rot_get_modification_time (
							   [in] MInterfacePointer *moniker,
							   [out] NTTIME t
							   );
	
	WERROR rot_enum (
					   [out] MInterfacePointer *EnumMoniker
					   );
}

/*
[
	object,
] interface IRotData : IUnknown
{
	WERROR irotdata_getdata(
							[out,size_is(max),length_is(ret)] uint8 *data, 
							[in] uint32 max,
							[out] uint32 ret
						   );
}
*/