mql-for-begginers/Include/Canvas/DX/DXInput.mqh
2025-07-22 18:30:17 +03:00

57 lines
4.9 KiB
MQL5

//+------------------------------------------------------------------+
//| DXInput.mqh |
//| Copyright 2000-2025, MetaQuotes Ltd. |
//| https://www.mql5.com |
//+------------------------------------------------------------------+
#include "DXHandle.mqh"
//+------------------------------------------------------------------+
//| Class CDXInput |
//+------------------------------------------------------------------+
class CDXInput : public CDXHandleShared
{
public:
//+------------------------------------------------------------------+
//| Destructor |
//+------------------------------------------------------------------+
virtual ~CDXInput(void)
{
Shutdown();
}
//+------------------------------------------------------------------+
//| Create a new input buffer |
//+------------------------------------------------------------------+
template<typename TInput>
bool Create(int context)
{
//--- shutdown input
Shutdown();
//--- save new context
m_context=context;
//--- create new input buffer
m_handle=DXInputCreate(m_context,sizeof(TInput));
return(m_handle!=INVALID_HANDLE);
}
//+------------------------------------------------------------------+
//| Set input data |
//+------------------------------------------------------------------+
template<typename TInput>
bool InputSet(const TInput &input_data)
{
//--- check input handle
if(m_handle==INVALID_HANDLE)
return(false);
//--- set input data
return(DXInputSet(m_handle,input_data));
}
//+------------------------------------------------------------------+
//| Shutdown |
//+------------------------------------------------------------------+
virtual void Shutdown(void)
{
//--- relase handle
if(m_handle!=INVALID_HANDLE)
DXRelease(m_handle);
m_handle=INVALID_HANDLE;
}
};
//+------------------------------------------------------------------+