#ifndef __MZSTDCHARTS_COMMON_H__
#define __MZSTDCHARTS_COMMON_H__

#include <mzstdgraphicsCommon.h>


// if we compile dll based project
#ifdef MZSTDCHARTS_DLL
    // if we compile dll library
    #ifdef MZSTDCHARTS_INTERNAL
        #define DECLSPEC_MZSTDCHARTS __declspec(dllexport)
    #else
        #define DECLSPEC_MZSTDCHARTS __declspec(dllimport)
    #endif
#endif

// if we compile static lib based project
#ifdef MZSTDCHARTS_STATIC
    #ifdef MZSTDCHARTS_INTERNAL
        #define DECLSPEC_MZSTDCHARTS __declspec(dllexport)
    #else
        #define DECLSPEC_MZSTDCHARTS
    #endif
#endif

#ifndef DECLSPEC_MZSTDCHARTS
    #define DECLSPEC_MZSTDCHARTS
#endif




#ifdef MZSTDCHARTS_DLL
    #ifdef MZSTDCHARTS_INTERNAL
        VOID* __cdecl operator new(size_t size);
        VOID* __cdecl operator new(size_t size, CHAR ch);
        VOID* __cdecl operator new[](size_t size);
        VOID  __cdecl operator delete(VOID* p);
        VOID  __cdecl operator delete[](VOID* p);
    #endif
#endif


class CStdObject;
class CGuiContainer;
class CLayoutFile;

DECLSPEC_MZSTDCHARTS VOID WINAPI initMzstdchartsLibrary();
DECLSPEC_MZSTDCHARTS VOID WINAPI cleanupMzstdchartsLibrary();
DECLSPEC_MZSTDCHARTS VOID WINAPI addGuiControl(CLayoutFile* loader, CStdObject* item, CGuiContainer* parent);
DECLSPEC_MZSTDCHARTS VOID WINAPI hello();

#endif
