#ifndef __ObjBase_h
#define __ObjBase_h

class MC2ARCHIVE;

class MC2ObjBase
{
public:
	//----- _xZkqqHx_jBfDiCmEiCmM_xHqqkZx_Subclass_xZkqqHx_iCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	MC2ObjBase ();
	virtual BOOL	IsKindOf (FTObjectType nType) const;

	//----- _xZkqqHx_iOmAjBmMiJlLiJmCjEfMiCmIiDeOiDiJiDfIiCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual FTObjectType	Type () const = 0;

	//----- _xZkqqHx_jBkOjAkLiCpAiOjNiCmCjBfDiCmEiCmM_xHqqkZx_Subclass_xZkqqHx_iCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual void	OutStream (MC2ARCHIVE& ar);
	virtual void	InStream (MC2ARCHIVE& ar);

	//----- _xZkqqHx_iDhJiBfLiDfIiDgHiOjOiCmJjFmPiKlHiClDiCoKiCoJjBkOjAkLiCpAiOjNiCmC_xHqqkZx_Subclass_xZkqqHx_iCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----
	virtual ~MC2ObjBase ();

	//----- _xZkqqHx_jCmKiPoNiCmNiDeDiDjDiDhGiDiKiDiBiDjDiDgHiCmMjFeLjHhGiCmNjGlDiCkC_xHqqkZx_ -----
	virtual void		RegisterObjForceID ();
	virtual void		UnregisterObjID ();

	//----- _xZkqqHx_iClBiCmMiDeOiDiJiDfIiMmFjHeMiCmMiKnGjAjE_xHqqkZx_ -----
	//----- _xZkqqHx_iLkEjCmKiDeBiDgHiDiKiDhCiDiFiBfLiDgHiCmMiOoGjDlOiBeFjAnNjCoIiKnGjAjE_xHqqkZx_ -----
	DWORD		GetObjID () const;

protected:
	DWORD		m_dwObjID;	// _xZkqqHx_iDeJiDhFiDfHiDeGiDeOiDgH_xHqqkZx_ID. Stream_xZkqqHx_iCmMiKnGiMfHiCmFiClBiCoKiCkK_xHqqkZx_
							// _xZkqqHx_iDiBiDjDiDgPjFmPjAjEiCmMiNmFiPiJiCmJiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkCiBeC_xHqqkZx_
}; // class MC2ObjBase.

inline DWORD MC2ObjBase::GetObjID () const
{
	return m_dwObjID;
}


#endif//__ObjBase_h
