//+-------------------------------------------------------------------
//
//  Interface:	IDog
//
//  Purpose:	Interface for manipulating performance
//
//  History:	8 Nov 94	AlexMit		Created
//
//  Notes:
//
//--------------------------------------------------------------------

import "itest.idl";

[ uuid(e0b4ab10-fb6d-11cd-b3ae-00aa003c9fdc),
  version(0.1),
  pointer_default(unique) ]

interface IDog
{
  unsigned long acl_call               ( [in] handle_t handle );
  unsigned long audit_call             ( [in] handle_t handle );
  unsigned long check_client           ( [in] handle_t handle,
                                         [out] error_status_t *status );
  void          get_interface_buffer   ( [in] handle_t handle,
                                         [out] long *size,
					 [out, size_is(,*size)] char **buffer,
					 [out] SAptId *id,
					 [out] error_status_t *status );
  unsigned long impersonate_call       ( [in] handle_t handle );
  void          nullcall               ( [in] handle_t handle );
  void          release_interface      ( [in] handle_t handle,
					 [out] error_status_t *status );
  void          set_status             ( [in] handle_t handle,
                                         [in] long result,
                                         [out] error_status_t *status );
  unsigned long test                   ( [in] handle_t handle,
                                         [in] ITest *obj,
                                         [in] SAptId id,
					 [out] error_status_t *status );
  unsigned long transitive             ( [in] handle_t handle,
				      	 [in, string] wchar_t *binding );
}


