#ifndef __ObjGroup_h
#define __ObjGroup_h

/**********************************************************
 *                 _xZkqqHx_iBhJiDgOiDjDiDeLiDiKiBfLiLeMjGeAiBhK_xHqqkZx_
 *      a               _xZkqqHx_jEhKjHpB_xHqqkZx_(Array)
 *      b               _xZkqqHx_jIfPjHjNiMfO_xHqqkZx_(Bool)
 *      by              unsigned char(BYte)
 *      c               char(Char)
 *      cb              _xZkqqHx_jFlGiOjKjAjE_xHqqkZx_(Count of Byte)
 *      cr              _xZkqqHx_jAeG_xHqqkZx_(Color Reference value)
 *      cx,cy   short_xZkqqHx_iMfO_xHqqkZx_[_xZkqqHx_iNmAjFfH_xHqqkZx_(x,y)_xZkqqHx_iCmMiDeKiDeFiDjDiDfO_xHqqkZx_](Count of X,Y)
 *      dw              unsigned long_xZkqqHx_iMfO_xHqqkZx_(Double Word)
 *      fn              _xZkqqHx_iKnGjAjE_xHqqkZx_(FuNction)
 *      h               _xZkqqHx_iDgOiDjDiDgIiDiL_xHqqkZx_(Handle)
 *      i               int(Integer)
 *      l               long(Long)
 *      m               _xZkqqHx_iDeOiDiJiDfIiDiBiDjDiDgP_xHqqkZx_(data Member of a class)
 *      n               short_xZkqqHx_iIlNiCkCiCmN_xHqqkZx_int
 *      p               _xZkqqHx_iDhMiDeDiDjDiDfOiMfO_xHqqkZx_(Pointer)
 *      s               _xZkqqHx_jFlGiOjKjHpB_xHqqkZx_(String)
 *      sz              0_xZkqqHx_iCmFiPeJiCoNiCoJjFlGiOjKjHpB_xHqqkZx_(String terminated with Zero)
 *      tm              _xZkqqHx_iDgFiDeMiDfIiDgHjAkBjGeA_xHqqkZx_(Text Metric)
 *      w               unsigned short(Word)
 *      x,y             short_xZkqqHx_iMfOiNmAjFfHjCgM_xHqqkZx_
 ********************************************************/

#include "2LinkManager.h"	// For MC2LinkRec.
#include "2ObjBase.h"		// Superclass.

class MCARCHIVE;

/*************************************************************************
 * <_xZkqqHx_iNfMjBkCjBmM_xHqqkZx_>	MC2GpLinkRec
 *
 * <_xZkqqHx_iLeAjEfM_xHqqkZx_>	_xZkqqHx_iDiKiDjDiDeOiCmMiDiMiDfCiBfLiDgIiCpAiKmHjHjNiClHiCoJiClNiCnPiCmMiDeOiDiJiDfIiBeC_xHqqkZx_MC2LinkRec_xZkqqHx_iNfMjBkCjBmMiCkJiCoH_xHqqkZx_
 *			_xZkqqHx_iNmAjFfHiPoOjFpBiCpAiPjMiCkCiClNiOgDiCoIiBeC_xHqqkZx_
 *
 * <_xZkqqHx_jHjKjHpA_xHqqkZx_>	01.04.30 Fukushiro M. _xZkqqHx_iNoMjAkM_xHqqkZx_
 *************************************************************************/
struct MC2GpLinkRec
{
	MC2GpLinkRec ();
	MC2GpLinkRec (const MC2LinkRec& rec);

	MC2MolipRec	m_mlpFrom;		// _xZkqqHx_iDiKiDjDiDeOiMlDiDiCiDiKiDhGiBeC_xHqqkZx_
	MC2MolipRec	m_mlpTo;		// _xZkqqHx_iDiKiDjDiDeOjAoGiDiCiDiKiDhGiBeC_xHqqkZx_
	WORD		m_wLinkKind;	// mmptOffset_xZkqqHx_iCmMiOoNjHnOiBeC_xHqqkZx_FDLMLinkKind_xZkqqHx_iCmMiCfAiCmCiBeC_xHqqkZx_
}; // struct MC2GpLinkRec.

class MC2ObjGroup : public MC2ObjBase
{
public:
	/*----- _xZkqqHx_jBfDiCmEiCmM_xHqqkZx_Subclass_xZkqqHx_iCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----*/
	MC2ObjGroup ();
	/*----- _xZkqqHx_iOmAjBmMiJlLiJmCjEfMiCmIiDeOiDiJiDfIiCkKiDeDiDjDiDhGiDiKiDiBiDjDiDgHiClFiCmIiCkPiCoKiCmOiCmIiCoHiCmIiCkC_xHqqkZx_ -----*/
	virtual FTObjectType	Type () const;

	virtual void	OutStreamV3 (MCARCHIVE& ar);
	virtual void	InStreamV12 (MCARCHIVE& ar);
	virtual	~MC2ObjGroup ();

	virtual void	RegisterObjForceID ();
	virtual void	UnregisterObjID ();
	virtual void	GetMembers (MC2ObjBaseVector& vObj) const;
	virtual DBLRect	GetResizeFrame () const;

	//----- ObjGroup_xZkqqHx_iCmM_xHqqkZx_Subclass_xZkqqHx_iCmFjFeLjHhGiCmJiJjOiClGiCmEiDeDiDjDiDhGiDiKiDiBiDjDiDgH_xHqqkZx_ -----
	virtual void	SetGroup (const MC2ObjBaseVector& vObj);

protected:
	long			m_lObjListSz;
	MC2ObjBase**		m_pObjList;
	long			m_lLinkListSz;
	MC2GpLinkRec*	m_pLinkList;
}; // class MC2ObjGroup.

#endif//__ObjGroup_h
