#property copyright "Daniel Jose"
#property version   "1.00"
//+------------------------------------------------------------------+
#include <Mode Swap\Defines.mqh>
//+------------------------------------------------------------------+
#define def_SWAP "Indicators\\Mode Swap\\Swap MSG.ex5"
#resource "\\" + def_SWAP
//+------------------------------------------------------------------+
input double user00 = 2.2;
//+------------------------------------------------------------------+
int m_handle;
long m_id;
//+------------------------------------------------------------------+
int OnInit()
{   
    double Buff[];
    uCharDouble Info;
    int iRet;
    string szInfo;
     
    m_id = ChartID();
    if ((m_handle = ChartIndicatorGet(m_id, 0, def_ShortName)) == INVALID_HANDLE)
    {
            m_handle = iCustom(NULL, PERIOD_CURRENT, "::" + def_SWAP, user00);
            ChartIndicatorAdd(m_id, 0, m_handle);
    }
    ArraySetAsSeries(Buff, false);
    if (m_handle == INVALID_HANDLE) szInfo = "Invalid handler to read the buffer.";
    else
    {
            if ((iRet = CopyBuffer(m_handle, 0, 0, 3, Buff)) < 3) szInfo = "Buffer reading failed.";
            else
            {
                    Info.dValue = Buff[0];
                    szInfo = CharArrayToString(Info.cInfo) + " [ " + (string)Buff[1] + " ] [ " + (string)Buff[2] + " ]";
            }
    }
    Print("Return => ", szInfo);
             
    return INIT_SUCCEEDED;
}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
    ChartIndicatorDelete(m_id, 0, def_ShortName);
    IndicatorRelease(m_handle);
}
//+------------------------------------------------------------------+
void OnTick()
{
}
//+------------------------------------------------------------------+