/*
 * bonobo-unknown.idl: The base Bonobo Object
 *
 *   This is the base interface from which every bonobo interface
 * is derived it provides the mechanisms for introspecting an
 * aggregate object.
 *
 * Copyright (C) 1999, 2000  Helix Code, Inc.
 *
 * Author:
 *	Miguel de Icaza (miguel@helixcode.com)
 */

#ifndef __BONOBO_UNKNOWN_IDL__
#define __BONOBO_UNKNOWN_IDL__

#ifndef __Bonobo_Unknown_COMPILATION
#ifdef  __ORBIT_IDL__
%{
#pragma include_defs bonobo-activation/Bonobo_Unknown.h
%}
#pragma inhibit push
#endif
#endif

module Bonobo {
	interface Unknown {
		/**
		 * ref:
		 *
		 * increments the reference count
		 */
		void ref ();

		/**
		 * unref:
		 * 
		 * decrements the reference count
		 */
		void unref ();

		/**
		 * queryInterface:
		 * @repoid: A string identifying an interface.
		 *
		 * Returns: A CORBA object exposing the interface
		 * specified by @repoid, or a nil object if the
		 * interface cannot be queried.
		 */
		Unknown queryInterface (in string repoid);
	};
};

#ifndef __Bonobo_Unknown_COMPILATION
#ifdef __ORBIT_IDL__
#pragma inhibit pop
#endif
#endif

#endif /* ! __BONOBO_UNKNOWN_IDL__ */
