/* @(#)Z 1.5 com/src/core/idl/ODObject.idl, odcore, od96nt, odnt9712d 97/03/21 16:44:25 (97/02/26 10:10:28) */


#ifndef _ODOBJECT_
#define _ODOBJECT_

#include <somobj.idl>
#include <somcls.idl>

#ifndef _ODTYPESM_
#include "ODTypesM.idl"
#endif

#ifndef _GEOTYPES_
#include "GeoTypes.idl"
#endif

#ifndef _POLYGON_
#include "Polygon.idl"
#endif

//==============================================================================
// Classes defined in this interface
//==============================================================================

interface  ODObject;

//==============================================================================
// Classes used by this interface
//==============================================================================

interface  ODExtension;

//==============================================================================
// ODObject
//==============================================================================

interface ODObject  : SOMObject
{
	void InitObject();

	ODBoolean HasExtension(in ODType extensionName);

	ODExtension AcquireExtension(in ODType extensionName);

	void ReleaseExtension(in ODExtension extension);

    ODSize  Purge(in ODSize size);

	ODBoolean IsEqualTo(in ODObject object);

	void SubClassResponsibility();

#ifdef __SOMIDL__

  implementation
  {
	majorversion = 1; minorversion = 0;

  	functionprefix = ODObject;

	passthru C_h =
	""
	"#include <ODTypes.h>"
	""
	"";

	passthru C_xh =
	""
	"#include <ODTypes.h>"
	""
	"";

	override:
		somInit,
		somUninit;

    releaseorder:
        InitObject,
        HasExtension,
        AcquireExtension,
        ReleaseExtension,
        Purge,
		IsEqualTo,
		SubClassResponsibility;

  };

#endif 

};

#endif // _ODOBJECT_

