#ifdef __PRIVATE__
//#
//#	File:		RefCtObj.idl
//#
//#	Contains:	Interface for ODRefCntObject class
//#
//#	Owned by:	Caia Grisar
//#
//#	Copyright:	c 1994 by Apple Computer, Inc., all rights reserved.
//#
//#	Change History (most recent first):
//#
//#		 <5>	 8/24/94	CG		#1181622: Updated file ownership.
//#		 <4>	 6/23/94	CG		Added functionprefix.
//#		 <3>	  6/8/94	CG		Forgot #endif.
//#		 <2>	  6/8/94	CG		Privatize change history.
//#		 <1>	  6/8/94	CG		first checked in
//#
//#	To Do:
//#
#else
//#	Copyright:	c 1993-1994 by Apple Computer, Inc., all rights reserved.
#endif

#ifndef _REFCTOBJ_
#define _REFCTOBJ_

#ifndef _ODOBJECT_
#include "ODObject.idl"
#endif

//==============================================================================
// Theory of Operation
//==============================================================================

/*
  This file defines class ODRefCntObject.  This class is the common base class
  for all OpenDoc classes whose objects require ref counting.
*/

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

interface  ODRefCntObject;

//==============================================================================
// ODRefCntObject
//==============================================================================

interface ODRefCntObject :  ODObject
{     
  void  InitRefCntObject();
  
  void  IncrementRefCount();
    
  void  Release();
      
  ODULong  GetRefCount();

#ifdef __SOMIDL__
  implementation
  {
  	functionprefix = ODRefCntObject;

    somInit : override;
    somUninit : override;
    releaseorder:
        InitRefCntObject,
        IncrementRefCount,
        Release,
        GetRefCount;
    #ifdef __PRIVATE__
      ODULong  fRefCount;
    #endif
    
  };
#endif
};

#endif // _REFCTOBJ_

