/*
 * matecomponent-unknown.idl: The base MateComponent Object
 *
 *   This is the base interface from which every matecomponent 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 __MATECOMPONENT_UNKNOWN_IDL__
#define __MATECOMPONENT_UNKNOWN_IDL__

#ifndef __MateComponent_Unknown_COMPILATION
#ifdef  __MATECORBA_IDL__
%{
#pragma include_defs matecomponent-activation/MateComponent_Unknown.h
%}
#pragma inhibit push
#endif
#endif

module MateComponent {
	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 __MateComponent_Unknown_COMPILATION
#ifdef __MATECORBA_IDL__
#pragma inhibit pop
#endif
#endif

#endif /* ! __MATECOMPONENT_UNKNOWN_IDL__ */
