| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- //+------------------------------------------------------------------+
- //| MetaTrader 5 API |
- //| Copyright 2000-2019, MetaQuotes Software Corp. |
- //| http://www.metaquotes.net |
- //+------------------------------------------------------------------+
- #pragma once
- #include "MT5APIConfigParam.h"
- //+------------------------------------------------------------------+
- //| Plugin module configuration |
- //+------------------------------------------------------------------+
- class IMTConPluginModule
- {
- public:
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConPluginModule* param)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- default plugin name
- virtual LPCWSTR Name(void) const=0;
- //--- vendor name
- virtual LPCWSTR Vendor(void) const=0;
- //--- plugin description
- virtual LPCWSTR Description(void) const=0;
- //--- plugin file name
- virtual LPCWSTR Module(void) const=0;
- //--- MT5 server-owner id
- virtual UINT64 Server(void) const=0;
- //--- plugin version
- virtual UINT Version(void) const=0;
- //--- plugin Server API version
- virtual UINT VersionAPI(void) const=0;
- //--- plugin default parameters
- virtual UINT ParameterTotal(void) const=0;
- virtual MTAPIRES ParameterNext(const UINT pos,IMTConParam* param) const=0;
- virtual MTAPIRES ParameterGet(LPCWSTR name,IMTConParam* param) const=0;
- };
- //+------------------------------------------------------------------+
- //| Plugin instance configuration |
- //+------------------------------------------------------------------+
- class IMTConPlugin
- {
- public:
- //--- plugin working flags
- enum EnPluginFlags
- {
- PLUGIN_FLAG_MAN_CONFIG=1, // allow configure plugin by managers
- PLUGIN_FLAG_PROFILING =2, // allow plugin profiling
- //--- flags borders
- PLUGIN_FLAG_NONE =0,
- PLUGIN_FLAG_ALL =PLUGIN_FLAG_MAN_CONFIG|PLUGIN_FLAG_PROFILING
- };
- //--- plugin mode
- enum EnPluginMode
- {
- PLUGIN_DISABLED =0,
- PLUGIN_ENABLED =1,
- //--- enumeration borders
- PLUGIN_FIRST =PLUGIN_DISABLED,
- PLUGIN_LAST =PLUGIN_ENABLED,
- };
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTConPlugin* param)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- plugin name
- virtual LPCWSTR Name(void) const=0;
- virtual MTAPIRES Name(LPCWSTR name)=0;
- //--- MT5 server ID
- virtual UINT64 Server(void) const=0;
- virtual MTAPIRES Server(const UINT64 server)=0;
- //--- plugin file name
- virtual LPCWSTR Module(void) const=0;
- virtual MTAPIRES Module(LPCWSTR name)=0;
- //--- plugin mode
- virtual UINT Mode(void) const=0;
- virtual MTAPIRES Mode(const UINT mode)=0;
- //--- plugin parameters
- virtual MTAPIRES ParameterAdd(IMTConParam* param)=0;
- virtual MTAPIRES ParameterUpdate(const UINT pos,const IMTConParam* param)=0;
- virtual MTAPIRES ParameterDelete(const UINT pos)=0;
- virtual MTAPIRES ParameterClear(void)=0;
- virtual MTAPIRES ParameterShift(const UINT pos,const int shift)=0;
- virtual UINT ParameterTotal(void) const=0;
- virtual MTAPIRES ParameterNext(const UINT pos,IMTConParam* param) const=0;
- virtual MTAPIRES ParameterGet(LPCWSTR name,IMTConParam* param) const=0;
- //--- EnPluginFlags
- virtual UINT Flags(void) const=0;
- virtual MTAPIRES Flags(const UINT flags)=0;
- };
- //+------------------------------------------------------------------+
- //| Plugin events notification interface |
- //+------------------------------------------------------------------+
- class IMTConPluginSink
- {
- public:
- virtual void OnPluginAdd(const IMTConPlugin* /*plugin*/) { }
- virtual void OnPluginUpdate(const IMTConPlugin* /*plugin*/) { }
- virtual void OnPluginDelete(const IMTConPlugin* /*plugin*/) { }
- virtual void OnPluginSync(void) { }
- };
- //+------------------------------------------------------------------+
|