#ifndef __3GLOBAL_h
#define __3GLOBAL_h

#pragma warning(disable: 4786)	// C4786_xZkqqHx_iMhIiNjAiCpAiPgPiCmIiCkNiClHiCoJiBeC_xHqqkZx_
#pragma warning(disable: 4503)	// C4503_xZkqqHx_iMhIiNjAiCpAiPgPiCmIiCkNiClHiCoJiBeC_xHqqkZx_
#include <vector>
#include <set>
#include <map>
#include "../ForSubCoreUtil.h"

// STL_xZkqqHx_iCmMjGlMjBePiLpDiKnEiCpAjAnNjCoIiBeC_xHqqkZx_
using namespace std;

class MC3ObjBase;

typedef vector<MC3ObjBase*>		MC3ObjBaseVector;

#define ALIGNMENT4(x) ((long(x) / 4 + ((long(x) % 4) ? 1 : 0)) * 4)
#define ALIGNMENT8(x) ((long(x) / 8 + ((long(x) % 8) ? 1 : 0)) * 8)

//----- 06.05.12 Fukushiro M. _xZkqqHx_iNoNiPjMiOgO_xHqqkZx_ ()-----
////----- BYTEVector_xZkqqHx_iDfIiDgHiDiKiBfLiDiAiKnGjIeB_xHqqkZx_ -----
//template <class T> void operator << (BYTEVector& vStream, const T data)
//{
//	vStream.insert(vStream.end(), (const BYTE*)(&data),
//					(const BYTE*)(&data) + sizeof(data));
//} // template <class T> void operator <<.
//
//template <class T> void ReadData (T& data, const BYTE*& bypStream)
//{
//	memcpy(&data, bypStream, sizeof(data));
//	bypStream += sizeof(data);
//} // template <class T> void ReadData.
//----- 06.05.12 Fukushiro M. _xZkqqHx_iNoNiPjMiPeJ_xHqqkZx_ ()-----

class MC3Document;

extern short			g_nVersion;
extern MC3Document*		g_pDoc;
extern const double		g_dDisplayPPM;

//----- 06.05.12 Fukushiro M. _xZkqqHx_iNoNiPjMiOgO_xHqqkZx_ ()-----
//extern IMpgMolipMain*	g_pMolipMainI;
//#define FFMainI			g_pMolipMainI
//#define FFUtilErrI      g_pMolipMainI->GetUtilErrI()
//#define FFUtilMathI     g_pMolipMainI->GetUtilMathI()
//#define FFUtilFileI     g_pMolipMainI->GetUtilFileI()
//#define FFUtilFontI     g_pMolipMainI->GetUtilFontI()
//#define FFUtilStrI      g_pMolipMainI->GetUtilStrI()
//#define FFUtilPrintI    g_pMolipMainI->GetUtilPrintI()
//#define FFUtilCoordI    g_pMolipMainI->GetUtilCoordI()
//#define FFUtilZlibPngI  g_pMolipMainI->GetUtilZlibPngI()
//#define FFUtilMiscI     g_pMolipMainI->GetUtilMisc()
//----- 06.05.12 Fukushiro M. _xZkqqHx_iNoNiPjMiPeJ_xHqqkZx_ ()-----


#define MCARCHIVE CArchive

//----- 06.05.12 Fukushiro M. _xZkqqHx_iNoNiPjMiOgO_xHqqkZx_ ()-----
//struct MC3GpLinkRec;
//extern void operator << (CArchive& ar, const DBLPoint& mmpt);
//extern void operator << (CArchive& ar, const DBLRect& mmrt);
//extern void operator << (CArchive& ar, const MC3GpLinkRec& rec);
//extern void operator << (CArchive& ar, const CLSID& clsid);
//
//extern void operator >> (CArchive& ar, DBLPoint& mmpt);
//extern void operator >> (CArchive& ar, DBLRect& mmrt);
//extern void operator >> (CArchive& ar, MC3GpLinkRec& rec);
//extern void operator >> (CArchive& ar, CLSID& clsid);
//
//extern void FFReadString (CArchive& ar, WString& wstr);
//extern void FFWriteString (CArchive& ar, const WString& wstr);
//----- 06.05.12 Fukushiro M. _xZkqqHx_iNoNiPjMiPeJ_xHqqkZx_ ()-----

#endif//__3GLOBAL_h
