#if !defined(AFX_23DOCUMENT_H__29CE2F2B_4423_4552_B08A_790E17C0F0D5__INCLUDED_)
#define AFX_23DOCUMENT_H__29CE2F2B_4423_4552_B08A_790E17C0F0D5__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// 2Document.h : _xZkqqHx_iDhHiDgCiDfPiBfL_xHqqkZx_ _xZkqqHx_iDhEiDeAiDeDiDiL_xHqqkZx_
//

class MC2ObjBase;
class MC2HeaderInf;
class MC2Print;
class MC2Env;
class MC2View;
class MC2LinkManager;
class MC2SheetManager;
class MC2StatCharV2;
class MC2StatLine;

/////////////////////////////////////////////////////////////////////////////
// MC2Document _xZkqqHx_iDgIiDeMiDiFiDiBiDjDiDgH_xHqqkZx_

class MC2Document : public COleServerDoc
{
protected:
	MC2Document();           // _xZkqqHx_jDkOjDeJjAlGjAkMiCmJiOgHjHhAiClDiCoKiCoJiDhGiDiNiDgFiDeOiDgH_xHqqkZx_ _xZkqqHx_iDfCiDjDiDfIiDgHiDiJiDeOiDfOiBeC_xHqqkZx_
	DECLARE_DYNCREATE(MC2Document)

// _xZkqqHx_iDiGiBfLiDfFiKnGjAjEiBeC_xHqqkZx_
public:
// 05.06.13 Fukushiro M. 1_xZkqqHx_iNhDiNoNiPjM_xHqqkZx_ ()
//	virtual LPSTORAGE SetRootStorage (LPSTORAGE pStorage);
	virtual void	SetFileType (FTDocumentFormat df);
	virtual void	InStreamCore (MCARCHIVE& ar);
	virtual void	OutStreamCore (MCARCHIVE& ar);

	virtual void	RegisterObject (MC2ObjBase* pObj, DWORD dwID);
	virtual void	UnregisterObject (MC2ObjBase* pObj);
	virtual MC2ObjBase*	ObjID2Object (DWORD dwID) const;
	virtual DWORD	OleItemToOwnerObjID (void* pItem) const;
	virtual void	SetOleItemToOwnerObjID (void* pItem, DWORD dwObjID);

friend class MC2StatCharV2;
friend class MC2StatLine;

protected:
	map<DWORD, MC2ObjBase*>	m_mpIdToObjBase;
	map<void*, DWORD>		m_mpOleItemToObjID;

	MC2HeaderInf*			m_headerInf;
	MC2Print*				m_print;
	MC2Env*					m_env;
	MC2View*				m_view;
	MC2LinkManager*			m_linkManager;
	MC2SheetManager*		m_sheetManager;

// _xZkqqHx_iDeBiDgHiDiKiDhCiDiFiBfLiDgH_xHqqkZx_
public:

// _xZkqqHx_iDeJiDhJiDiMiBfLiDfGiDiHiDjD_xHqqkZx_
public:

// _xZkqqHx_iDeJiBfLiDgPiBfLiDiJiDeDiDgI_xHqqkZx_
	// ClassWizard _xZkqqHx_iCmNiJlMjBhKiKnGjAjEiCmMiDeJiBfLiDgPiBfLiDiJiDeDiDgIiCpAjAlGjAkMiClFiCnMiClHiBeC_xHqqkZx_
	//{{AFX_VIRTUAL(MC2Document)
	public:
	virtual void Serialize(CArchive& ar);   // _xZkqqHx_iDgIiDeMiDiFiDiBiDjDiDgH_xHqqkZx_ I/O _xZkqqHx_iCmJjBmOiClFiCmEiDeJiBfLiDgPiBfLiDiJiDeDiDgIiClDiCoKiCnMiClHiBeC_xHqqkZx_
	virtual BOOL OnNewDocument();
	protected:
	virtual COleServerItem* OnGetEmbeddedItem();
	//}}AFX_VIRTUAL

// _xZkqqHx_iDeDiDjDiDhGiDiKiDiBiDjDiDgFiBfLiDfGiDiHiDjD_xHqqkZx_
public:
	virtual ~MC2Document();
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

	// _xZkqqHx_iDiBiDgCiDfKiBfLiDfH_xHqqkZx_ _xZkqqHx_iDhNiDgCiDhGiKnGjAjEiCmMjAlGjAkM_xHqqkZx_
protected:
	//{{AFX_MSG(MC2Document)
		// _xZkqqHx_iDiBiDiC_xHqqkZx_ - ClassWizard _xZkqqHx_iCmNiClBiCmMiImKjChFiCmJiDiBiDjDiDgPiKnGjAjEiCpAjCmHiJmBiCnMiClNiCmNiNoNiPjMiClFiCnMiClHiBeC_xHqqkZx_
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ _xZkqqHx_iCmNjBePiNhDiCmMjClMjBePiCmJjCmHiJmBiCmMjAoJiMlOiCpAjBhNjDpMiClFiCnMiClHiBeC_xHqqkZx_

#endif // !defined(AFX_23DOCUMENT_H__29CE2F2B_4423_4552_B08A_790E17C0F0D5__INCLUDED_)
