MT5APIServer.h 61 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980
  1. //+------------------------------------------------------------------+
  2. //| MetaTrader 5 API |
  3. //| Copyright 2000-2019, MetaQuotes Software Corp. |
  4. //| http://www.metaquotes.net |
  5. //+------------------------------------------------------------------+
  6. #pragma once
  7. #include "MT5APIConstants.h"
  8. #include "MT5APILogger.h"
  9. #include "MT5APITools.h"
  10. #include "Config\MT5APIConfigPlugin.h"
  11. #include "Config\MT5APIConfigCommon.h"
  12. #include "Config\MT5APIConfigTime.h"
  13. #include "Config\MT5APIConfigFirewall.h"
  14. #include "Config\MT5APIConfigSymbol.h"
  15. #include "Config\MT5APIConfigSpread.h"
  16. #include "Config\MT5APIConfigGroup.h"
  17. #include "Config\MT5APIConfigHoliday.h"
  18. #include "Config\MT5APIConfigFeeder.h"
  19. #include "Config\MT5APIConfigGateway.h"
  20. #include "Config\MT5APIConfigReport.h"
  21. #include "Config\MT5APIConfigManager.h"
  22. #include "Config\MT5APIConfigHistory.h"
  23. #include "Config\MT5APIConfigNetwork.h"
  24. #include "Config\MT5APIConfigRoute.h"
  25. #include "Config\MT5APIConfigEmail.h"
  26. #include "Config\MT5APIConfigMessenger.h"
  27. #include "Bases\MT5APIUser.h"
  28. #include "Bases\MT5APIAccount.h"
  29. #include "Bases\MT5APIBook.h"
  30. #include "Bases\MT5APIChart.h"
  31. #include "Bases\MT5APIDeal.h"
  32. #include "Bases\MT5APIOrder.h"
  33. #include "Bases\MT5APIPosition.h"
  34. #include "Bases\MT5APITick.h"
  35. #include "Bases\MT5APIMail.h"
  36. #include "Bases\MT5APINews.h"
  37. #include "Bases\MT5APIDaily.h"
  38. #include "Bases\MT5APIRequest.h"
  39. #include "Bases\MT5APIConfirm.h"
  40. #include "Bases\MT5APIByteStream.h"
  41. #include "Bases\MT5APICertificate.h"
  42. #include "Bases\MT5APIExecution.h"
  43. #include "Bases\MT5APIOnline.h"
  44. #include "Bases\MT5APIDataset.h"
  45. #include "Bases\MT5APIClient.h"
  46. #include "Bases\MT5APIDocument.h"
  47. #include "Bases\MT5APIComment.h"
  48. #include "Bases\MT5APIAttachment.h"
  49. //+------------------------------------------------------------------+
  50. //| Server API version |
  51. //+------------------------------------------------------------------+
  52. #define MTServerAPIVersion 2190
  53. #define MTServerAPIDate L"18 Oct 2019"
  54. //+------------------------------------------------------------------+
  55. //| Structures |
  56. //+------------------------------------------------------------------+
  57. //+------------------------------------------------------------------+
  58. //| Plugin parameter structure |
  59. //+------------------------------------------------------------------+
  60. #pragma pack(push,1)
  61. struct MTPluginParam
  62. {
  63. //--- parameter types
  64. enum EnParamType
  65. {
  66. TYPE_STRING =0, // string
  67. TYPE_INT =1, // integer
  68. TYPE_FLOAT =2, // floating
  69. TYPE_TIME =3, // time only
  70. TYPE_DATE =4, // date only
  71. TYPE_DATETIME =5, // date & time
  72. TYPE_GROUPS =6, // groups list
  73. TYPE_SYMBOLS =7, // symbols list
  74. //---
  75. TYPE_FIRST =TYPE_STRING,
  76. TYPE_LAST =TYPE_SYMBOLS
  77. };
  78. //---
  79. UINT type; // parameter type (EnParamType)
  80. wchar_t name[64]; // parameter name
  81. wchar_t value[256]; // parameter value
  82. UINT reserved[16]; // reserved
  83. };
  84. #pragma pack(pop)
  85. //+------------------------------------------------------------------+
  86. //| Plugin about structure |
  87. //+------------------------------------------------------------------+
  88. #pragma pack(push,1)
  89. struct MTPluginInfo
  90. {
  91. UINT version; // plugin version
  92. UINT version_api; // server API version
  93. wchar_t name[64]; // plugin Name
  94. wchar_t copyright[128]; // copyright
  95. wchar_t description[256]; // description
  96. MTPluginParam defaults[128]; // default parameters
  97. UINT defaults_total; // default parameters total
  98. UINT reserved[128]; // reserved
  99. };
  100. #pragma pack(pop)
  101. //+------------------------------------------------------------------+
  102. //| Server description structure |
  103. //+------------------------------------------------------------------+
  104. #pragma pack(push,1)
  105. struct MTServerInfo
  106. {
  107. wchar_t platform_name[64]; // platform name
  108. wchar_t platform_owner[128]; // platform owner
  109. UINT server_version; // server version
  110. UINT server_build; // server build
  111. UINT server_type; // server type
  112. UINT64 server_id; // server id
  113. UINT reserved[32]; // reserved
  114. };
  115. #pragma pack(pop)
  116. //+------------------------------------------------------------------+
  117. //| Custom commands notification interface |
  118. //+------------------------------------------------------------------+
  119. class IMTCustomSink
  120. {
  121. public:
  122. //--- manager API command
  123. virtual MTAPIRES HookManagerCommand(LPCWSTR /*ip*/,
  124. const IMTConManager* /*manager*/,
  125. LPCVOID /*indata*/,
  126. const UINT /*indata_len*/,
  127. LPVOID& /*outdata*/,
  128. UINT& /*outdata_len*/) { return(MT_RET_OK_NONE); }
  129. //--- manager API command
  130. virtual MTAPIRES HookManagerCommand(const UINT64 /*session*/,
  131. LPCWSTR /*ip*/,
  132. const IMTConManager* /*manager*/,
  133. IMTByteStream* /*indata*/,
  134. IMTByteStream* /*outdata*/) { return(MT_RET_OK_NONE); }
  135. //--- Web API command
  136. virtual MTAPIRES HookWebAPICommand(const UINT64 /*session*/,
  137. LPCWSTR /*ip*/,
  138. const IMTConManager* /*manager*/,
  139. LPCWSTR /*command*/,
  140. IMTByteStream* /*indata*/,
  141. IMTByteStream* /*outdata*/) { return(MT_RET_OK_NONE); }
  142. };
  143. //+------------------------------------------------------------------+
  144. //| Trades notification interface |
  145. //+------------------------------------------------------------------+
  146. class IMTTradeSink
  147. {
  148. public:
  149. //--- trade request event
  150. virtual void OnTradeRequestAdd(const IMTRequest* /*request*/,
  151. const IMTConGroup* /*group*/,
  152. const IMTConSymbol* /*symbol*/,
  153. const IMTPosition* /*position*/,
  154. const IMTOrder* /*order*/) { }
  155. //--- trade request process event
  156. virtual void OnTradeRequestUpdate(const IMTRequest* /*request*/) { }
  157. //--- trade request process event
  158. virtual void OnTradeRequestDelete(const IMTRequest* /*request*/) { }
  159. //--- trade request process event
  160. virtual void OnTradeRequestProcess(const IMTRequest* /*request*/,
  161. const IMTConfirm* /*confirm*/,
  162. const IMTConGroup* /*group*/,
  163. const IMTConSymbol* /*symbol*/,
  164. const IMTPosition* /*position*/,
  165. const IMTOrder* /*order*/,
  166. const IMTDeal* /*deal*/) { }
  167. //--- trade request add hook
  168. virtual MTAPIRES HookTradeRequestAdd(IMTRequest* /*request*/,
  169. const IMTConGroup* /*group*/,
  170. const IMTConSymbol* /*symbol*/,
  171. const IMTPosition* /*position*/,
  172. const IMTOrder* /*order*/,
  173. IMTOrder* /*order_new*/) { return(MT_RET_OK); }
  174. //--- trade request route hook
  175. virtual MTAPIRES HookTradeRequestRoute(IMTRequest* /*request*/,
  176. IMTConfirm* /*confirm*/,
  177. const IMTConGroup* /*group*/,
  178. const IMTConSymbol* /*symbol*/,
  179. const IMTPosition* /*position*/,
  180. const IMTOrder* /*order*/) { return(MT_RET_OK); }
  181. //--- trade request deal hook
  182. virtual MTAPIRES HookTradeRequestProcess(const IMTRequest* /*request*/,
  183. const IMTConfirm* /*confirm*/,
  184. const IMTConGroup* /*group*/,
  185. const IMTConSymbol* /*symbol*/,
  186. IMTPosition* /*position*/,
  187. IMTOrder* /*order*/,
  188. IMTDeal* /*deal*/) { return(MT_RET_OK); }
  189. //--- rollover calculation hook
  190. virtual MTAPIRES HookTradeRollover(const INT64 /*datetime*/,
  191. const IMTConGroup* /*group*/,
  192. const IMTConSymbol* /*symbol*/,
  193. const IMTPosition* /*position*/,
  194. const double /*original_value*/,
  195. double& /*new_value*/) { return(MT_RET_OK); }
  196. //--- interest calculation hook
  197. virtual MTAPIRES HookTradeInterest(const INT64 /*datetime*/,
  198. const IMTConGroup* /*group*/,
  199. const IMTAccount* /*account*/,
  200. const double /*original_value*/,
  201. double& /*new_value*/) { return(MT_RET_OK); }
  202. //--- interest charge hook
  203. virtual MTAPIRES HookTradeInterestCharge(const INT64 /*datetime*/,
  204. const IMTConGroup* /*group*/,
  205. const IMTUser* /*user*/,
  206. const double /*original_value*/,
  207. double& /*new_value*/) { return(MT_RET_OK); }
  208. //--- order commission calculation
  209. virtual MTAPIRES HookTradeCommissionOrder(const IMTConCommission* /*commission*/,
  210. const IMTConGroup* /*group*/,
  211. const IMTConSymbol* /*symbol*/,
  212. const IMTOrder* /*order*/,
  213. const double /*original_value*/,
  214. double& /*new_value*/) { return(MT_RET_OK); }
  215. //--- final commission calculation
  216. virtual MTAPIRES HookTradeCommissionCharge(const INT64 /*period_start*/,
  217. const INT64 /*period_end*/,
  218. const IMTConCommission* /*commission*/,
  219. const IMTConGroup* /*group*/,
  220. const IMTUser* /*user*/,
  221. const double /*original_value*/,
  222. double& /*new_value*/) { return(MT_RET_OK); }
  223. //--- order commission calculation
  224. virtual MTAPIRES HookTradeCommissionDeal(const IMTConCommission* /*commission*/,
  225. const IMTConGroup* /*group*/,
  226. const IMTConSymbol* /*symbol*/,
  227. const IMTDeal* /*deal*/,
  228. const double /*original_value*/,
  229. double& /*new_value*/) { return(MT_RET_OK); }
  230. //--- trade execution event
  231. virtual void OnTradeExecution(const IMTConGateway* /*gateway*/,
  232. const IMTExecution* /*execution*/,
  233. const IMTConGroup* /*group*/,
  234. const IMTConSymbol* /*symbol*/,
  235. const IMTPosition* /*position*/,
  236. const IMTOrder* /*order*/,
  237. const IMTDeal* /*deal*/) { }
  238. //--- trade execution hook
  239. virtual MTAPIRES HookTradeExecution(const IMTConGateway* /*gateway*/,
  240. const IMTExecution* /*execution*/,
  241. const IMTConGroup* /*group*/,
  242. const IMTConSymbol* /*symbol*/,
  243. IMTPosition* /*position*/,
  244. IMTOrder* /*order*/,
  245. IMTDeal* /*deal*/) { return(MT_RET_OK); }
  246. //--- trade request refused on pre-trade control event
  247. virtual void OnTradeRequestRefuse(const IMTRequest* /*request*/) { }
  248. //--- trade request process event
  249. virtual void OnTradeRequestProcessCloseBy(const IMTRequest* /*request*/,
  250. const IMTConfirm* /*confirm*/,
  251. const IMTConGroup* /*group*/,
  252. const IMTConSymbol* /*symbol*/,
  253. const IMTPosition* /*position*/,
  254. const IMTOrder* /*order*/,
  255. const IMTDeal* /*deal*/,
  256. const IMTDeal* /*deal_by*/) { }
  257. //--- trade request deal hook
  258. virtual MTAPIRES HookTradeRequestProcessCloseBy(const IMTRequest* /*request*/,
  259. const IMTConfirm* /*confirm*/,
  260. const IMTConGroup* /*group*/,
  261. const IMTConSymbol* /*symbol*/,
  262. IMTPosition* /*position*/,
  263. IMTOrder* /*order*/,
  264. IMTDeal* /*deal*/,
  265. IMTDeal* /*deal_by*/) { return(MT_RET_OK); }
  266. //--- interest charge hook
  267. virtual MTAPIRES HookTradeInterestChargeDeal(const INT64 /*datetime*/,
  268. const IMTConGroup* /*group*/,
  269. const IMTUser* /*user*/,
  270. IMTDeal* /*deal*/) { return(MT_RET_OK); }
  271. //--- trade request route hook
  272. virtual MTAPIRES HookTradeRequestRuleFilter(IMTRequest* /*request*/,
  273. IMTConRoute* /*rule*/,
  274. const IMTConGroup* /*group*/) { return(MT_RET_OK_NONE); }
  275. //--- trade request route hook
  276. virtual MTAPIRES HookTradeRequestRuleApply(IMTRequest* /*request*/,
  277. IMTConRoute* /*rule*/,
  278. const IMTConGroup* /*group*/) { return(MT_RET_OK_NONE); }
  279. //--- trade execution event for close by
  280. virtual void OnTradeExecutionCloseBy(const IMTExecution* /*execution*/,
  281. const IMTConGroup* /*group*/,
  282. const IMTConSymbol* /*symbol*/,
  283. const IMTPosition* /*position*/,
  284. const IMTOrder* /*order*/,
  285. const IMTDeal* /*deal*/,
  286. const IMTDeal* /*deal_by*/) { }
  287. //--- trade execution hook for close by
  288. virtual MTAPIRES HookTradeExecutionCloseBy(const IMTExecution* /*execution*/,
  289. const IMTConGroup* /*group*/,
  290. const IMTConSymbol* /*symbol*/,
  291. IMTPosition* /*position*/,
  292. IMTOrder* /*order*/,
  293. IMTDeal* /*deal*/,
  294. IMTDeal* /*deal_by*/) { return(MT_RET_OK); }
  295. };
  296. //+------------------------------------------------------------------+
  297. //| End of day notification interface |
  298. //+------------------------------------------------------------------+
  299. class IMTEndOfDaySink
  300. {
  301. public:
  302. //--- end of day events
  303. virtual void OnEODStart(const INT64 /*datetime*/,const INT64 /*prev_datetime*/) { }
  304. virtual void OnEODGroupStart(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
  305. virtual void OnEODGroupCommissions(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/){ }
  306. virtual void OnEODGroupInterest(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
  307. virtual void OnEODGroupStatements(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
  308. virtual void OnEODGroupRollovers(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
  309. virtual void OnEODGroupFinish(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
  310. virtual void OnEODFinish(const INT64 /*datetime*/,const INT64 /*prev_datetime*/) { }
  311. //--- end of month events
  312. virtual void OnEOMStart(const INT64 /*datetime*/,const INT64 /*prev_datetime*/) { }
  313. virtual void OnEOMGroupStart(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
  314. virtual void OnEOMGroupCommissions(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/){ }
  315. virtual void OnEOMGroupInterest(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
  316. virtual void OnEOMGroupStatements(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
  317. virtual void OnEOMGroupFinish(const INT64 /*datetime*/,const INT64 /*prev_datetime*/,const IMTConGroup* /*group*/) { }
  318. virtual void OnEOMFinish(const INT64 /*datetime*/,const INT64 /*prev_datetime*/) { }
  319. };
  320. //+------------------------------------------------------------------+
  321. //| Server events notification interface |
  322. //+------------------------------------------------------------------+
  323. class IMTServerSink
  324. {
  325. public:
  326. virtual void OnServerLog(const INT /*code*/,const UINT /*type*/,const INT64 /*datetime_msc*/,LPCWSTR /*source*/,LPCWSTR /*message*/){}
  327. };
  328. //+------------------------------------------------------------------+
  329. //| Server API interface |
  330. //+------------------------------------------------------------------+
  331. class IMTServerAPI
  332. {
  333. public:
  334. //--- server description
  335. virtual MTAPIRES About(MTServerInfo& info)=0;
  336. //--- license check
  337. virtual MTAPIRES LicenseCheck(LPCWSTR license_name)=0;
  338. //--- memory management
  339. virtual void* Allocate(const UINT bytes)=0;
  340. virtual void Free(void* ptr)=0;
  341. //--- server management functions
  342. virtual MTAPIRES ServerRestart(void)=0;
  343. virtual MTAPIRES ServerSubscribe(IMTServerSink* sink)=0;
  344. virtual MTAPIRES ServerUnsubscribe(IMTServerSink* sink)=0;
  345. virtual MTAPIRES ServerReserved3(void)=0;
  346. virtual MTAPIRES ServerReserved4(void)=0;
  347. //--- server log functions
  348. virtual MTAPIRES LoggerOut(const UINT code,LPCWSTR msg,...)=0;
  349. virtual MTAPIRES LoggerRequest(const UINT mode,const UINT type,const INT64 from,const INT64 to,LPCWSTR filter,MTLogRecord*& records,UINT& records_total)=0;
  350. virtual void LoggerFlush(void)=0;
  351. virtual MTAPIRES LoggerReserved1(void)=0;
  352. virtual MTAPIRES LoggerReserved2(void)=0;
  353. virtual MTAPIRES LoggerReserved3(void)=0;
  354. virtual MTAPIRES LoggerReserved4(void)=0;
  355. //--- plugins configs
  356. virtual IMTConPlugin* PluginCreate(void)=0;
  357. virtual IMTConPluginModule* PluginModuleCreate(void)=0;
  358. virtual IMTConParam* PluginParamCreate(void)=0;
  359. virtual MTAPIRES PluginSubscribe(IMTConPluginSink* sink)=0;
  360. virtual MTAPIRES PluginUnsubscribe(IMTConPluginSink* sink)=0;
  361. virtual MTAPIRES PluginCurrent(IMTConPlugin* plugin)=0;
  362. virtual MTAPIRES PluginAdd(IMTConPlugin* plugin)=0;
  363. virtual MTAPIRES PluginDelete(LPCWSTR name)=0;
  364. virtual MTAPIRES PluginDelete(const UINT pos)=0;
  365. virtual MTAPIRES PluginShift(const UINT pos,const int shift)=0;
  366. virtual UINT PluginTotal(void)=0;
  367. virtual MTAPIRES PluginNext(const UINT pos,IMTConPlugin* plugin)=0;
  368. virtual MTAPIRES PluginGet(LPCWSTR name,IMTConPlugin* plugin)=0;
  369. virtual UINT PluginModuleTotal(void)=0;
  370. virtual MTAPIRES PluginModuleNext(const UINT pos,IMTConPluginModule* module)=0;
  371. virtual MTAPIRES PluginModuleGet(LPCWSTR name,IMTConPluginModule* module)=0;
  372. virtual MTAPIRES PluginDelete(const UINT64 server,LPCWSTR name)=0;
  373. virtual MTAPIRES PluginGet(const UINT64 server,LPCWSTR name,IMTConPlugin* plugin)=0;
  374. virtual MTAPIRES PluginModuleGet(const UINT64 server,LPCWSTR name,IMTConPluginModule* module)=0;
  375. virtual MTAPIRES PluginReserved4(void)=0;
  376. //--- common config
  377. virtual IMTConCommon* CommonCreate(void)=0;
  378. virtual MTAPIRES CommonSubscribe(IMTConCommonSink* sink)=0;
  379. virtual MTAPIRES CommonUnsubscribe(IMTConCommonSink* sink)=0;
  380. virtual MTAPIRES CommonGet(IMTConCommon* common)=0;
  381. virtual MTAPIRES CommonSet(const IMTConCommon* common)=0;
  382. virtual MTAPIRES CommonReserved1(void)=0;
  383. virtual MTAPIRES CommonReserved2(void)=0;
  384. virtual MTAPIRES CommonReserved3(void)=0;
  385. virtual MTAPIRES CommonReserved4(void)=0;
  386. //--- platform server config
  387. virtual IMTConServer* NetServerCreate(void)=0;
  388. virtual IMTConServerRange* NetServerRangeCreate(void)=0;
  389. virtual MTAPIRES NetServerSubscribe(IMTConServerSink* sink)=0;
  390. virtual MTAPIRES NetServerUnsubscribe(IMTConServerSink* sink)=0;
  391. virtual MTAPIRES NetServerAdd(IMTConServer* config)=0;
  392. virtual MTAPIRES NetServerDelete(const UINT pos)=0;
  393. virtual MTAPIRES NetServerShift(const UINT pos,const int shift)=0;
  394. virtual UINT NetServerTotal(void)=0;
  395. virtual MTAPIRES NetServerNext(const UINT pos,IMTConServer* config)=0;
  396. virtual MTAPIRES NetServerGet(const UINT64 id,IMTConServer* config)=0;
  397. virtual IMTConAddressRange* NetServerAddressRangeCreate(void)=0;
  398. virtual IMTConClusterState* NetServerClusterStateCreate(void)=0;
  399. virtual MTAPIRES NetServerReserved3(void)=0;
  400. virtual MTAPIRES NetServerReserved4(void)=0;
  401. //--- time config
  402. virtual IMTConTime* TimeCreate(void)=0;
  403. virtual MTAPIRES TimeSubscribe(IMTConTimeSink* sink)=0;
  404. virtual MTAPIRES TimeUnsubscribe(IMTConTimeSink* sink)=0;
  405. virtual INT64 TimeCurrent(void)=0;
  406. virtual MTAPIRES TimeGet(IMTConTime* common)=0;
  407. virtual MTAPIRES TimeSet(const IMTConTime* time)=0;
  408. virtual INT64 TimeCurrentMsc(void)=0;
  409. virtual MTAPIRES TimeReserved2(void)=0;
  410. virtual MTAPIRES TimeReserved3(void)=0;
  411. virtual MTAPIRES TimeReserved4(void)=0;
  412. //--- holidays configuration
  413. virtual IMTConHoliday* HolidayCreate()=0;
  414. virtual MTAPIRES HolidaySubscribe(IMTConHolidaySink* sink)=0;
  415. virtual MTAPIRES HolidayUnsubscribe(IMTConHolidaySink* sink)=0;
  416. virtual MTAPIRES HolidayAdd(IMTConHoliday* config)=0;
  417. virtual MTAPIRES HolidayDelete(const UINT pos)=0;
  418. virtual MTAPIRES HolidayShift(const UINT pos,const int shift)=0;
  419. virtual UINT HolidayTotal(void)=0;
  420. virtual MTAPIRES HolidayNext(const UINT pos,IMTConHoliday* config)=0;
  421. virtual MTAPIRES HolidayReserved1(void)=0;
  422. virtual MTAPIRES HolidayReserved2(void)=0;
  423. virtual MTAPIRES HolidayReserved3(void)=0;
  424. virtual MTAPIRES HolidayReserved4(void)=0;
  425. //--- server firewall configuration
  426. virtual IMTConFirewall* FirewallCreate()=0;
  427. virtual MTAPIRES FirewallSubscribe(IMTConFirewallSink* sink)=0;
  428. virtual MTAPIRES FirewallUnsubscribe(IMTConFirewallSink* sink)=0;
  429. virtual MTAPIRES FirewallAdd(IMTConFirewall* config)=0;
  430. virtual MTAPIRES FirewallDelete(const UINT pos)=0;
  431. virtual MTAPIRES FirewallShift(const UINT pos,const int shift)=0;
  432. virtual UINT FirewallTotal(void)=0;
  433. virtual MTAPIRES FirewallNext(const UINT pos,IMTConFirewall* config)=0;
  434. virtual MTAPIRES FirewallReserved1(void)=0;
  435. virtual MTAPIRES FirewallReserved2(void)=0;
  436. virtual MTAPIRES FirewallReserved3(void)=0;
  437. virtual MTAPIRES FirewallReserved4(void)=0;
  438. //--- symbols configuration
  439. virtual IMTConSymbol* SymbolCreate(void)=0;
  440. virtual IMTConSymbolSession* SymbolSessionCreate(void)=0;
  441. virtual MTAPIRES SymbolSubscribe(IMTConSymbolSink* sink)=0;
  442. virtual MTAPIRES SymbolUnsubscribe(IMTConSymbolSink* sink)=0;
  443. virtual MTAPIRES SymbolAdd(IMTConSymbol* symbol)=0;
  444. virtual MTAPIRES SymbolDelete(LPCWSTR name)=0;
  445. virtual MTAPIRES SymbolDelete(const UINT pos)=0;
  446. virtual MTAPIRES SymbolShift(const UINT pos,const int shift)=0;
  447. virtual UINT SymbolTotal(void)=0;
  448. virtual MTAPIRES SymbolNext(const UINT pos,IMTConSymbol* symbol)=0;
  449. virtual MTAPIRES SymbolGet(LPCWSTR name,IMTConSymbol* symbol)=0;
  450. virtual MTAPIRES SymbolGet(LPCWSTR name,const IMTConGroup* group,IMTConSymbol* symbol)=0;
  451. virtual MTAPIRES SymbolExist(const IMTConSymbol* symbol,const IMTConGroup* group)=0;
  452. virtual MTAPIRES SymbolReserved1(void)=0;
  453. virtual MTAPIRES SymbolReserved2(void)=0;
  454. virtual MTAPIRES SymbolReserved3(void)=0;
  455. virtual MTAPIRES SymbolReserved4(void)=0;
  456. //--- clients group configuration
  457. virtual IMTConGroup* GroupCreate(void)=0;
  458. virtual IMTConGroupSymbol* GroupSymbolCreate(void)=0;
  459. virtual IMTConCommission* GroupCommissionCreate(void)=0;
  460. virtual IMTConCommTier* GroupTierCreate(void)=0;
  461. virtual MTAPIRES GroupSubscribe(IMTConGroupSink* sink)=0;
  462. virtual MTAPIRES GroupUnsubscribe(IMTConGroupSink* sink)=0;
  463. virtual MTAPIRES GroupAdd(IMTConGroup* group)=0;
  464. virtual MTAPIRES GroupDelete(LPCWSTR name)=0;
  465. virtual MTAPIRES GroupDelete(const UINT pos)=0;
  466. virtual MTAPIRES GroupShift(const UINT pos,const int shift)=0;
  467. virtual UINT GroupTotal(void)=0;
  468. virtual MTAPIRES GroupNext(const UINT pos,IMTConGroup* group)=0;
  469. virtual MTAPIRES GroupGet(LPCWSTR name,IMTConGroup* group)=0;
  470. virtual MTAPIRES GroupReserved1(void)=0;
  471. virtual MTAPIRES GroupReserved2(void)=0;
  472. virtual MTAPIRES GroupReserved3(void)=0;
  473. virtual MTAPIRES GroupReserved4(void)=0;
  474. //--- managers configuration
  475. virtual IMTConManager* ManagerCreate(void)=0;
  476. virtual IMTConManagerAccess* ManagerAccessCreate(void)=0;
  477. virtual MTAPIRES ManagerSubscribe(IMTConManagerSink* sink)=0;
  478. virtual MTAPIRES ManagerUnsubscribe(IMTConManagerSink* sink)=0;
  479. virtual MTAPIRES ManagerAdd(IMTConManager* manager)=0;
  480. virtual MTAPIRES ManagerDelete(const UINT pos)=0;
  481. virtual MTAPIRES ManagerShift(const UINT pos,const int shift)=0;
  482. virtual UINT ManagerTotal(void)=0;
  483. virtual MTAPIRES ManagerNext(const UINT pos,IMTConManager* manager)=0;
  484. virtual MTAPIRES ManagerGet(const UINT64 login,IMTConManager* manager)=0;
  485. virtual MTAPIRES ManagerReserved1(void)=0;
  486. virtual MTAPIRES ManagerReserved2(void)=0;
  487. virtual MTAPIRES ManagerReserved3(void)=0;
  488. virtual MTAPIRES ManagerReserved4(void)=0;
  489. //--- history synchronization configuration
  490. virtual IMTConHistorySync* HistorySyncCreate(void)=0;
  491. virtual MTAPIRES HistorySyncSubscribe(IMTConHistorySyncSink* sink)=0;
  492. virtual MTAPIRES HistorySyncUnsubscribe(IMTConHistorySyncSink* sink)=0;
  493. virtual MTAPIRES HistorySyncAdd(IMTConHistorySync* config)=0;
  494. virtual MTAPIRES HistorySyncDelete(const UINT pos)=0;
  495. virtual MTAPIRES HistorySyncShift(const UINT pos,const int shift)=0;
  496. virtual UINT HistorySyncTotal(void)=0;
  497. virtual MTAPIRES HistorySyncNext(const UINT pos,IMTConHistorySync* config)=0;
  498. virtual MTAPIRES HistorySyncReserved1(void)=0;
  499. virtual MTAPIRES HistorySyncReserved2(void)=0;
  500. virtual MTAPIRES HistorySyncReserved3(void)=0;
  501. virtual MTAPIRES HistorySyncReserved4(void)=0;
  502. //--- datafeeds configuration
  503. virtual IMTConFeeder* FeederCreate(void)=0;
  504. virtual IMTConFeederModule* FeederModuleCreate(void)=0;
  505. virtual IMTConParam* FeederParamCreate(void)=0;
  506. virtual IMTConFeederTranslate* FeederTranslateCreate(void)=0;
  507. virtual MTAPIRES FeederSubscribe(IMTConFeederSink* sink)=0;
  508. virtual MTAPIRES FeederUnsubscribe(IMTConFeederSink* sink)=0;
  509. virtual MTAPIRES FeederAdd(IMTConFeeder* feeder)=0;
  510. virtual MTAPIRES FeederDelete(LPCWSTR name)=0;
  511. virtual MTAPIRES FeederDelete(const UINT pos)=0;
  512. virtual MTAPIRES FeederShift(const UINT pos,const int shift)=0;
  513. virtual UINT FeederTotal(void)=0;
  514. virtual MTAPIRES FeederNext(const UINT pos,IMTConFeeder* feeder)=0;
  515. virtual MTAPIRES FeederGet(LPCWSTR name,IMTConFeeder* feeder)=0;
  516. virtual UINT FeederModuleTotal(void)=0;
  517. virtual MTAPIRES FeederModuleNext(const UINT pos,IMTConFeederModule* module)=0;
  518. virtual MTAPIRES FeederModuleGet(LPCWSTR name,IMTConFeederModule* module)=0;
  519. virtual MTAPIRES FeederReserved1(void)=0;
  520. virtual MTAPIRES FeederReserved2(void)=0;
  521. virtual MTAPIRES FeederReserved3(void)=0;
  522. virtual MTAPIRES FeederReserved4(void)=0;
  523. //--- gateways configuration
  524. virtual IMTConGateway* GatewayCreate(void)=0;
  525. virtual IMTConGatewayModule* GatewayModuleCreate(void)=0;
  526. virtual IMTConParam* GatewayParamCreate(void)=0;
  527. virtual IMTConGatewayTranslate* GatewayTranslateCreate(void)=0;
  528. virtual MTAPIRES GatewaySubscribe(IMTConGatewaySink* sink)=0;
  529. virtual MTAPIRES GatewayUnsubscribe(IMTConGatewaySink* sink)=0;
  530. virtual MTAPIRES GatewayAdd(IMTConGateway* gateway)=0;
  531. virtual MTAPIRES GatewayDelete(LPCWSTR name)=0;
  532. virtual MTAPIRES GatewayDelete(const UINT pos)=0;
  533. virtual MTAPIRES GatewayShift(const UINT pos,const int shift)=0;
  534. virtual UINT GatewayTotal(void)=0;
  535. virtual MTAPIRES GatewayNext(const UINT pos,IMTConGateway* gateway)=0;
  536. virtual MTAPIRES GatewayGet(LPCWSTR name,IMTConGateway* gateway)=0;
  537. virtual UINT GatewayModuleTotal(void)=0;
  538. virtual MTAPIRES GatewayModuleNext(const UINT pos,IMTConGatewayModule* module)=0;
  539. virtual MTAPIRES GatewayModuleGet(LPCWSTR name,IMTConGatewayModule* module)=0;
  540. virtual MTAPIRES GatewayReserved1(void)=0;
  541. virtual MTAPIRES GatewayReserved2(void)=0;
  542. virtual MTAPIRES GatewayReserved3(void)=0;
  543. virtual MTAPIRES GatewayReserved4(void)=0;
  544. //--- report configuration
  545. virtual IMTConReport* ReportCreate(void)=0;
  546. virtual IMTConReportModule* ReportModuleCreate(void)=0;
  547. virtual IMTConParam* ReportParamCreate(void)=0;
  548. virtual MTAPIRES ReportSubscribe(IMTConReportSink* sink)=0;
  549. virtual MTAPIRES ReportUnsubscribe(IMTConReportSink* sink)=0;
  550. virtual MTAPIRES ReportAdd(IMTConReport* report)=0;
  551. virtual MTAPIRES ReportDelete(LPCWSTR name)=0;
  552. virtual MTAPIRES ReportDelete(const UINT pos)=0;
  553. virtual MTAPIRES ReportShift(const UINT pos,const int shift)=0;
  554. virtual UINT ReportTotal(void)=0;
  555. virtual MTAPIRES ReportNext(const UINT pos,IMTConReport* report)=0;
  556. virtual MTAPIRES ReportGet(LPCWSTR name,IMTConReport* report)=0;
  557. virtual UINT ReportModuleTotal(void)=0;
  558. virtual MTAPIRES ReportModuleNext(const UINT pos,IMTConReportModule* module)=0;
  559. virtual MTAPIRES ReportModuleGet(LPCWSTR name,IMTConReportModule* module)=0;
  560. virtual MTAPIRES ReportDelete(const UINT64 server,LPCWSTR name)=0;
  561. virtual MTAPIRES ReportGet(const UINT64 server,LPCWSTR name,IMTConReport* report)=0;
  562. virtual MTAPIRES ReportModuleGet(const UINT64 server,LPCWSTR name,IMTConReportModule* module)=0;
  563. virtual MTAPIRES ReportReserved4(void)=0;
  564. //--- routing configuration
  565. virtual IMTConRoute* RouteCreate(void)=0;
  566. virtual IMTConCondition* RouteConditionCreate(void)=0;
  567. virtual IMTConRouteDealer* RouteDealerCreate(void)=0;
  568. virtual MTAPIRES RouteSubscribe(IMTConRouteSink* sink)=0;
  569. virtual MTAPIRES RouteUnsubscribe(IMTConRouteSink* sink)=0;
  570. virtual MTAPIRES RouteAdd(IMTConRoute* route)=0;
  571. virtual MTAPIRES RouteDelete(LPCWSTR name)=0;
  572. virtual MTAPIRES RouteDelete(const UINT pos)=0;
  573. virtual MTAPIRES RouteShift(const UINT pos,const int shift)=0;
  574. virtual UINT RouteTotal(void)=0;
  575. virtual MTAPIRES RouteNext(const UINT pos,IMTConRoute* route)=0;
  576. virtual MTAPIRES RouteGet(LPCWSTR name,IMTConRoute* route)=0;
  577. virtual MTAPIRES RouteReserved1(void)=0;
  578. virtual MTAPIRES RouteReserved2(void)=0;
  579. virtual MTAPIRES RouteReserved3(void)=0;
  580. virtual MTAPIRES RouteReserved4(void)=0;
  581. //--- clients database
  582. virtual IMTUser* UserCreate(void)=0;
  583. virtual IMTAccount* UserCreateAccount(void)=0;
  584. virtual MTAPIRES UserSubscribe(IMTUserSink* sink)=0;
  585. virtual MTAPIRES UserUnsubscribe(IMTUserSink* sink)=0;
  586. virtual MTAPIRES UserAdd(IMTUser* user,LPCWSTR master_pass,LPCWSTR investor_pass)=0;
  587. virtual MTAPIRES UserDelete(const UINT64 login)=0;
  588. virtual MTAPIRES UserUpdate(IMTUser* user)=0;
  589. virtual UINT UserTotal(void)=0;
  590. virtual MTAPIRES UserGet(const UINT64 login,IMTUser* user)=0;
  591. virtual MTAPIRES UserGroup(const UINT64 login,MTAPISTR& group)=0;
  592. virtual MTAPIRES UserLogins(LPCWSTR group,UINT64*& logins,UINT& logins_total)=0;
  593. virtual MTAPIRES UserPasswordCheck(const UINT type,const UINT64 login,LPCWSTR password)=0;
  594. virtual MTAPIRES UserPasswordChange(const UINT type,const UINT64 login,LPCWSTR password)=0;
  595. virtual MTAPIRES UserCertDelete(const UINT64 login)=0;
  596. virtual MTAPIRES UserCertConfirm(const UINT64 login)=0;
  597. virtual MTAPIRES UserDepositChangeRaw(const UINT64 login,const double value,const UINT type,LPCWSTR comment,UINT64& deal_id)=0;
  598. virtual MTAPIRES UserDepositChange(const UINT64 login,const double value,const UINT action,LPCWSTR comment,UINT64& deal_id)=0;
  599. virtual MTAPIRES UserAccountGet(const UINT64 login,IMTAccount* account)=0;
  600. virtual MTAPIRES UserArchive(const UINT64 login)=0;
  601. virtual MTAPIRES UserArchiveGet(const UINT64 login,IMTUser* user)=0;
  602. virtual MTAPIRES UserRestore(IMTUser* user)=0;
  603. virtual MTAPIRES UserArchiveLogins(LPCWSTR group,UINT64*& logins,UINT& logins_total)=0;
  604. //--- deals database
  605. virtual IMTDeal* DealCreate(void)=0;
  606. virtual IMTDealArray* DealCreateArray(void)=0;
  607. virtual MTAPIRES DealSubscribe(IMTDealSink* sink)=0;
  608. virtual MTAPIRES DealUnsubscribe(IMTDealSink* sink)=0;
  609. virtual MTAPIRES DealDelete(const UINT64 ticket)=0;
  610. virtual MTAPIRES DealUpdate(IMTDeal* deal)=0;
  611. virtual MTAPIRES DealGet(const UINT64 ticket,IMTDeal* deal)=0;
  612. virtual MTAPIRES DealGet(const INT64 from,const INT64 to,const UINT64 login,IMTDealArray* deals)=0;
  613. virtual MTAPIRES DealAdd(IMTDeal* deal)=0;
  614. virtual MTAPIRES DealPerform(IMTDeal* deal)=0;
  615. virtual MTAPIRES DealPerformCloseBy(IMTDeal* deal,IMTDeal* dealby)=0;
  616. virtual MTAPIRES DealDeleteBatch(const UINT64* tickets,const UINT tickets_total,MTAPIRES* results)=0;
  617. //--- trade positions database
  618. virtual IMTPosition* PositionCreate(void)=0;
  619. virtual IMTPositionArray* PositionCreateArray(void)=0;
  620. virtual MTAPIRES PositionSubscribe(IMTPositionSink* sink)=0;
  621. virtual MTAPIRES PositionUnsubscribe(IMTPositionSink* sink)=0;
  622. virtual MTAPIRES PositionDelete(const UINT64 login,LPCWSTR symbol)=0;
  623. virtual MTAPIRES PositionUpdate(IMTPosition* position)=0;
  624. virtual MTAPIRES PositionGet(const UINT64 login,LPCWSTR symbol,IMTPosition* position)=0;
  625. virtual MTAPIRES PositionGet(const UINT64 login,IMTPositionArray* position)=0;
  626. virtual MTAPIRES PositionDeleteByTicket(const UINT64 ticket)=0;
  627. virtual MTAPIRES PositionGetByTicket(const UINT64 ticket,IMTPosition* position)=0;
  628. virtual MTAPIRES PositionCheck(const UINT64 login,IMTPositionArray* current,IMTPositionArray* invalid,IMTPositionArray* missed,IMTPositionArray* nonexist)=0;
  629. virtual MTAPIRES PositionFix(const UINT64 login,IMTPositionArray* current)=0;
  630. //--- open orders database
  631. virtual IMTOrder* OrderCreate(void)=0;
  632. virtual IMTOrderArray* OrderCreateArray(void)=0;
  633. virtual MTAPIRES OrderSubscribe(IMTOrderSink* sink)=0;
  634. virtual MTAPIRES OrderUnsubscribe(IMTOrderSink* sink)=0;
  635. virtual MTAPIRES OrderDelete(const UINT64 ticket)=0;
  636. virtual MTAPIRES OrderUpdate(IMTOrder* order)=0;
  637. virtual MTAPIRES OrderGet(const UINT64 ticket,IMTOrder* order)=0;
  638. virtual MTAPIRES OrderGet(const UINT64 login,IMTOrderArray* orders)=0;
  639. virtual MTAPIRES OrderAdd(IMTOrder* order)=0;
  640. virtual MTAPIRES OrderDeleteBatch(const UINT64* tickets,const UINT tickets_total,MTAPIRES* results)=0;
  641. virtual MTAPIRES OrderUpdateBatch(IMTOrderArray* orders,MTAPIRES* results)=0;
  642. virtual MTAPIRES OrderUpdateBatchArray(IMTOrder** orders,const UINT orders_total,MTAPIRES* results)=0;
  643. //--- orders history database
  644. virtual MTAPIRES HistorySubscribe(IMTHistorySink* sink)=0;
  645. virtual MTAPIRES HistoryUnsubscribe(IMTHistorySink* sink)=0;
  646. virtual MTAPIRES HistoryDelete(const UINT64 ticket)=0;
  647. virtual MTAPIRES HistoryUpdate(IMTOrder* order)=0;
  648. virtual MTAPIRES HistoryGet(const UINT64 ticket,IMTOrder* order)=0;
  649. virtual MTAPIRES HistoryGet(const INT64 from,const INT64 to,const UINT64 login,IMTOrderArray* orders)=0;
  650. virtual MTAPIRES HistoryReopen(const UINT64 ticket)=0;
  651. virtual MTAPIRES HistoryAdd(IMTOrder* order)=0;
  652. virtual MTAPIRES HistoryDeleteBatch(const UINT64* tickets,const UINT tickets_total,MTAPIRES* results)=0;
  653. virtual MTAPIRES HistoryUpdateBatch(IMTOrderArray* orders,MTAPIRES* results)=0;
  654. //--- daily reports database
  655. virtual IMTDaily* DailyCreate(void)=0;
  656. virtual IMTDailyArray* DailyCreateArray(void)=0;
  657. virtual MTAPIRES DailySubscribe(IMTDailySink* sink)=0;
  658. virtual MTAPIRES DailyUnsubscribe(IMTDailySink* sink)=0;
  659. virtual MTAPIRES DailyGet(const INT64 from,const INT64 to,const UINT64 login,IMTDailyArray* daily)=0;
  660. virtual MTAPIRES DailyGetLight(const INT64 from,const INT64 to,const UINT64 login,IMTDailyArray* daily)=0;
  661. virtual MTAPIRES DailySelectByGroup(LPCWSTR group,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
  662. virtual MTAPIRES DailySelectByLogins(const UINT64 *logins,UINT logins_total,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
  663. virtual MTAPIRES DailyReserved4(void)=0;
  664. //--- ticks data
  665. virtual MTAPIRES TickSubscribe(IMTTickSink* sink)=0;
  666. virtual MTAPIRES TickUnsubscribe(IMTTickSink* sink)=0;
  667. virtual MTAPIRES TickAdd(MTTick& tick)=0;
  668. virtual MTAPIRES TickAddStat(MTTick& tick,MTTickStat& stat)=0;
  669. virtual MTAPIRES TickLast(LPCWSTR symbol,MTTickShort& tick)=0;
  670. virtual MTAPIRES TickLast(const IMTConSymbol* symbol,MTTickShort& tick)=0;
  671. virtual MTAPIRES TickStat(LPCWSTR symbol,MTTickStat& stat)=0;
  672. virtual MTAPIRES TickGet(LPCWSTR symbol,const INT64 from,const INT64 to,MTTickShort*& ticks,UINT& ticks_total)=0;
  673. virtual MTAPIRES TickGet(const IMTConSymbol* symbol,const INT64 from,const INT64 to,MTTickShort*& ticks,UINT& ticks_total)=0;
  674. virtual MTAPIRES TickHistoryGetRaw(LPCWSTR symbol,const INT64 from,const INT64 to,MTTickShort*& ticks,UINT& ticks_total)=0;
  675. virtual MTAPIRES TickHistoryGet(LPCWSTR symbol,const INT64 from,const INT64 to,MTTickShort*& ticks,UINT& ticks_total)=0;
  676. virtual MTAPIRES TickReserved2(void)=0;
  677. virtual MTAPIRES TickReserved3(void)=0;
  678. virtual MTAPIRES TickReserved4(void)=0;
  679. //--- internal mail
  680. virtual IMTMail* MailCreate(void)=0;
  681. virtual MTAPIRES MailSubscribe(IMTMailSink* sink)=0;
  682. virtual MTAPIRES MailUnsubscribe(IMTMailSink* sink)=0;
  683. virtual MTAPIRES MailSend(IMTMail* mail)=0;
  684. virtual MTAPIRES MailReserved1(void)=0;
  685. virtual MTAPIRES MailReserved2(void)=0;
  686. virtual MTAPIRES MailReserved3(void)=0;
  687. virtual MTAPIRES MailReserved4(void)=0;
  688. //--- internal news
  689. virtual IMTNews* NewsCreate(void)=0;
  690. virtual MTAPIRES NewsSubscribe(IMTNewsSink* sink)=0;
  691. virtual MTAPIRES NewsUnsubscribe(IMTNewsSink* sink)=0;
  692. virtual MTAPIRES NewsSend(IMTNews* news)=0;
  693. virtual MTAPIRES NewsReserved1(void)=0;
  694. virtual MTAPIRES NewsReserved2(void)=0;
  695. virtual MTAPIRES NewsReserved3(void)=0;
  696. virtual MTAPIRES NewsReserved4(void)=0;
  697. //--- custom commands processing
  698. virtual MTAPIRES CustomSubscribe(IMTCustomSink* sink)=0;
  699. virtual MTAPIRES CustomUnsubscribe(IMTCustomSink* sink)=0;
  700. virtual IMTByteStream* CustomCreateStream(void)=0;
  701. virtual MTAPIRES CustomReserved2(void)=0;
  702. virtual MTAPIRES CustomReserved3(void)=0;
  703. virtual MTAPIRES CustomReserved4(void)=0;
  704. //--- trade methods
  705. virtual IMTRequest* TradeRequestCreate(void)=0;
  706. virtual MTAPIRES TradeSubscribe(IMTTradeSink* sink)=0;
  707. virtual MTAPIRES TradeUnsubscribe(IMTTradeSink* sink)=0;
  708. virtual MTAPIRES TradeRequest(IMTRequest* request)=0;
  709. virtual MTAPIRES TradeProfit(LPCWSTR group,LPCWSTR symbol,const UINT type,const UINT64 volume,const double price_open,const double price_close,double& profit,double& profit_rate)=0;
  710. virtual MTAPIRES TradeRateBuy(LPCWSTR base,LPCWSTR currency,double& rate,LPCWSTR group=NULL,LPCWSTR symbol=NULL,const double price=0)=0;
  711. virtual MTAPIRES TradeRateSell(LPCWSTR base,LPCWSTR currency,double& rate,LPCWSTR group=NULL,LPCWSTR symbol=NULL,const double price=0)=0;
  712. virtual MTAPIRES TradeMarginCheck(const UINT64 login,LPCWSTR symbol,const UINT type,const UINT64 volume,const double price,IMTAccount* account_new=NULL,IMTAccount* account_current=NULL)=0;
  713. virtual MTAPIRES TradeMarginCheck(const IMTOrder* order,IMTAccount* account_new=NULL,IMTAccount* account_current=NULL)=0;
  714. virtual MTAPIRES TradeBalanceCheckObsolete(const UINT64 login,const UINT fixflag,double& balance_user,double& balance_history)=0;
  715. virtual MTAPIRES TradeSubscribeEOD(IMTEndOfDaySink* sink)=0;
  716. virtual MTAPIRES TradeUnsubscribeEOD(IMTEndOfDaySink* sink)=0;
  717. virtual MTAPIRES TradeBalanceCheck(const UINT64 login,const UINT fixflag,double& balance_user,double& balance_history,double& credit_user,double& credit_history)=0;
  718. virtual MTAPIRES TradeAccountSet(const IMTUser *user,const IMTAccount *account,const IMTOrderArray *orders,const IMTPositionArray *positions)=0;
  719. virtual IMTConfirm* TradeConfirmCreate(void)=0;
  720. virtual IMTExecution* TradeExecutionCreate(void)=0;
  721. virtual IMTRequestArray* TradeRequestCreateArray(void)=0;
  722. virtual MTAPIRES TradeProfitExt(LPCWSTR group,LPCWSTR symbol,const UINT type,const UINT64 volume,const double price_open,const double price_close,double& profit,double& profit_rate)=0;
  723. //--- books access
  724. virtual MTAPIRES BookSubscribe(IMTBookSink* sink)=0;
  725. virtual MTAPIRES BookUnsubscribe(IMTBookSink* sink)=0;
  726. virtual MTAPIRES BookGet(LPCWSTR symbol,MTBook& book)=0;
  727. virtual MTAPIRES BookReserved1(void)=0;
  728. virtual MTAPIRES BookReserved2(void)=0;
  729. virtual MTAPIRES BookReserved3(void)=0;
  730. virtual MTAPIRES BookReserved4(void)=0;
  731. //--- chart methods
  732. virtual MTAPIRES ChartGet(LPCWSTR symbol,const INT64 from,const INT64 to,MTChartBar*& bars,UINT& bars_total)=0;
  733. virtual MTAPIRES ChartDelete(LPCWSTR symbol,const INT64* bars_dates,const UINT bars_dates_total)=0;
  734. virtual MTAPIRES ChartUpdate(LPCWSTR symbol,const MTChartBar* bars,const UINT bars_total)=0;
  735. virtual MTAPIRES ChartSplit(LPCWSTR symbol,const UINT new_shares,const UINT old_shares,const UINT rounding_rule,const INT64 datetime_from,const INT64 datetime_to)=0;
  736. virtual MTAPIRES ChartReserved2(void)=0;
  737. virtual MTAPIRES ChartReserved3(void)=0;
  738. virtual MTAPIRES ChartReserved4(void)=0;
  739. //--- clients database
  740. virtual IMTCertificate *UserCertCreate(void)=0;
  741. virtual MTAPIRES UserCertUpdate(const UINT64 login,const IMTCertificate *certificate)=0;
  742. virtual MTAPIRES UserCertGet(const UINT64 login,IMTCertificate *certificate)=0;
  743. virtual MTAPIRES UserCertReserved1(void)=0;
  744. virtual MTAPIRES UserCertReserved2(void)=0;
  745. virtual MTAPIRES UserCertReserved3(void)=0;
  746. virtual MTAPIRES UserCertReserved4(void)=0;
  747. //--- spreads configuration
  748. virtual IMTConSpread* SpreadCreate(void)=0;
  749. virtual IMTConSpreadLeg* SpreadLegCreate(void)=0;
  750. virtual MTAPIRES SpreadSubscribe(IMTConSpreadSink* sink)=0;
  751. virtual MTAPIRES SpreadUnsubscribe(IMTConSpreadSink* sink)=0;
  752. virtual MTAPIRES SpreadAdd(IMTConSpread* spread)=0;
  753. virtual MTAPIRES SpreadDelete(const UINT pos)=0;
  754. virtual MTAPIRES SpreadShift(const UINT pos,const int shift)=0;
  755. virtual UINT SpreadTotal(void)=0;
  756. virtual MTAPIRES SpreadNext(const UINT pos,IMTConSpread* spread)=0;
  757. virtual MTAPIRES SpreadGet(const UINT id,IMTConSpread* spread)=0;
  758. virtual MTAPIRES SpreadReserved1(void)=0;
  759. virtual MTAPIRES SpreadReserved2(void)=0;
  760. virtual MTAPIRES SpreadReserved3(void)=0;
  761. virtual MTAPIRES SpreadReserved4(void)=0;
  762. //--- online connection data
  763. virtual IMTOnline* OnlineCreate(void)=0;
  764. virtual IMTOnlineArray* OnlineCreateArray(void)=0;
  765. virtual UINT OnlineTotal(void)=0;
  766. virtual MTAPIRES OnlineNext(const UINT pos,IMTOnline* online)=0;
  767. virtual MTAPIRES OnlineGet(const UINT64 login,IMTOnlineArray* online)=0;
  768. virtual MTAPIRES OnlineReserved1(void)=0;
  769. virtual MTAPIRES OnlineReserved2(void)=0;
  770. virtual MTAPIRES OnlineReserved3(void)=0;
  771. virtual MTAPIRES OnlineReserved4(void)=0;
  772. //--- notifications
  773. virtual MTAPIRES NotificationsSend(LPCWSTR metaquotes_ids,LPCWSTR message)=0;
  774. virtual MTAPIRES NotificationsSend(const UINT64* logins,const UINT logins_total,LPCWSTR message)=0;
  775. virtual MTAPIRES NotificationsReserved1(void)=0;
  776. virtual MTAPIRES NotificationsReserved2(void)=0;
  777. virtual MTAPIRES NotificationsReserved3(void)=0;
  778. virtual MTAPIRES NotificationsReserved4(void)=0;
  779. //--- deals
  780. virtual MTAPIRES DealUpdateBatch(IMTDealArray* deals,MTAPIRES* results)=0;
  781. virtual MTAPIRES DealUpdateBatchArray(IMTDeal** deals,const UINT deals_total,MTAPIRES* results)=0;
  782. virtual MTAPIRES DealAddBatch(IMTDealArray* deals,MTAPIRES* results)=0;
  783. virtual MTAPIRES DealAddBatchArray(IMTDeal** deals,const UINT deals_total,MTAPIRES* results)=0;
  784. virtual MTAPIRES DealPerformBatch(IMTDealArray* deals,MTAPIRES* results)=0;
  785. virtual MTAPIRES DealPerformBatchArray(IMTDeal** deals,const UINT deals_total,MTAPIRES* results)=0;
  786. virtual MTAPIRES DealSelectByGroup(LPCWSTR group,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
  787. virtual MTAPIRES DealSelectByLogins(const UINT64 *logins,UINT logins_total,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
  788. virtual MTAPIRES DealGetByGroup(LPCWSTR group,INT64 from,INT64 to,IMTDealArray *deals)=0;
  789. virtual MTAPIRES DealGetByLogins(const UINT64 *logins,UINT logins_total,INT64 from,INT64 to,IMTDealArray *deals)=0;
  790. //--- orders
  791. virtual MTAPIRES OrderAddBatch(IMTOrderArray* orders,MTAPIRES* results)=0;
  792. virtual MTAPIRES OrderAddBatchArray(IMTOrder** orders,const UINT orders_total,MTAPIRES* results)=0;
  793. virtual MTAPIRES OrderSelectByGroup(LPCWSTR group,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
  794. virtual MTAPIRES OrderSelectByLogins(const UINT64 *logins,UINT logins_total,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
  795. virtual MTAPIRES OrderGetByGroup(LPCWSTR group,IMTOrderArray *orders)=0;
  796. virtual MTAPIRES OrderGetByLogins(const UINT64 *logins,UINT logins_total,IMTOrderArray *orders)=0;
  797. //--- history
  798. virtual MTAPIRES HistoryUpdateBatchArray(IMTOrder** orders,const UINT orders_total,MTAPIRES* results)=0;
  799. virtual MTAPIRES HistoryAddBatch(IMTOrderArray* orders,MTAPIRES* results)=0;
  800. virtual MTAPIRES HistoryAddBatchArray(IMTOrder** orders,const UINT orders_total,MTAPIRES* results)=0;
  801. virtual MTAPIRES HistorySelectByGroup(LPCWSTR group,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
  802. virtual MTAPIRES HistorySelectByLogins(const UINT64 *logins,UINT logins_total,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
  803. virtual MTAPIRES HistoryGetByGroup(LPCWSTR group,INT64 from,INT64 to,IMTOrderArray *orders)=0;
  804. virtual MTAPIRES HistoryGetByLogins(const UINT64 *logins,UINT logins_total,INT64 from,INT64 to,IMTOrderArray *orders)=0;
  805. //--- dealing
  806. virtual MTAPIRES DealerStart(const UINT64 dealer,IMTRequestSink* sink)=0;
  807. virtual MTAPIRES DealerStop(const UINT64 dealer,IMTRequestSink* sink)=0;
  808. virtual MTAPIRES DealerGet(const UINT64 dealer,IMTRequest* request)=0;
  809. virtual MTAPIRES DealerLock(const UINT64 dealer,const UINT id,IMTRequest* request)=0;
  810. virtual MTAPIRES DealerAnswer(const UINT64 dealer,IMTConfirm* confirm)=0;
  811. virtual UINT DealerRequestTotal(const UINT64 dealer)=0;
  812. virtual MTAPIRES DealerRequestNext(const UINT64 dealer,const UINT pos,IMTRequest* request)=0;
  813. virtual MTAPIRES DealerRequestGet(const UINT64 dealer,const UINT id,IMTRequest* request)=0;
  814. virtual MTAPIRES DealerRequestGetAll(const UINT64 dealer,IMTRequestArray* requests)=0;
  815. virtual MTAPIRES DealerReserved1(void)=0;
  816. virtual MTAPIRES DealerReserved2(void)=0;
  817. virtual MTAPIRES DealerReserved3(void)=0;
  818. virtual MTAPIRES DealerReserved4(void)=0;
  819. //--- trade methods
  820. virtual MTAPIRES TradeMarginCheckExt(const UINT64 login,LPCWSTR symbol,const UINT type,const UINT64 volume,const double price,IMTAccount* account_new=NULL,IMTAccount* account_current=NULL)=0;
  821. virtual MTAPIRES TradeReserved1(void)=0;
  822. virtual MTAPIRES TradeReserved2(void)=0;
  823. virtual MTAPIRES TradeReserved3(void)=0;
  824. virtual MTAPIRES TradeReserved4(void)=0;
  825. virtual MTAPIRES TradeReserved5(void)=0;
  826. virtual MTAPIRES TradeReserved6(void)=0;
  827. //--- email servers configuration
  828. virtual IMTConEmail* EmailCreate()=0;
  829. virtual MTAPIRES EmailSubscribe(IMTConEmailSink* sink)=0;
  830. virtual MTAPIRES EmailUnsubscribe(IMTConEmailSink* sink)=0;
  831. virtual MTAPIRES EmailAdd(IMTConEmail* config)=0;
  832. virtual MTAPIRES EmailDelete(LPCWSTR name)=0;
  833. virtual MTAPIRES EmailDelete(const UINT pos)=0;
  834. virtual MTAPIRES EmailShift(const UINT pos,const int shift)=0;
  835. virtual UINT EmailTotal(void)=0;
  836. virtual MTAPIRES EmailNext(const UINT pos,IMTConEmail* email)=0;
  837. virtual MTAPIRES EmailGet(LPCWSTR name,IMTConEmail* email)=0;
  838. virtual MTAPIRES EmailSend(LPCWSTR account,LPCWSTR to,LPCWSTR to_name,LPCWSTR subject,LPCWSTR body)=0;
  839. virtual MTAPIRES EmailReserved2(void)=0;
  840. virtual MTAPIRES EmailReserved3(void)=0;
  841. virtual MTAPIRES EmailReserved4(void)=0;
  842. //--- messengers configuration
  843. virtual IMTConMessenger* MessengerCreate()=0;
  844. virtual MTAPIRES MessengerSubscribe(IMTConMessengerSink* sink)=0;
  845. virtual MTAPIRES MessengerUnsubscribe(IMTConMessengerSink* sink)=0;
  846. virtual MTAPIRES MessengerAdd(IMTConMessenger* config)=0;
  847. virtual MTAPIRES MessengerDelete(LPCWSTR name)=0;
  848. virtual MTAPIRES MessengerDelete(const UINT pos)=0;
  849. virtual MTAPIRES MessengerShift(const UINT pos,const int shift)=0;
  850. virtual UINT MessengerTotal(void)=0;
  851. virtual MTAPIRES MessengerNext(const UINT pos,IMTConMessenger* messenger)=0;
  852. virtual MTAPIRES MessengerGet(LPCWSTR name,IMTConMessenger* messenger)=0;
  853. virtual MTAPIRES MessengerSend(LPCWSTR destination,LPCWSTR group,LPCWSTR sender,LPCWSTR text)=0;
  854. virtual MTAPIRES MessengerReserved2(void)=0;
  855. virtual MTAPIRES MessengerReserved3(void)=0;
  856. virtual MTAPIRES MessengerReserved4(void)=0;
  857. //--- trade positions database
  858. virtual MTAPIRES PositionSelectByGroup(LPCWSTR group,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
  859. virtual MTAPIRES PositionSelectByLogins(const UINT64 *logins,UINT logins_total,INT64 from,INT64 to,const IMTDatasetRequest *request,IMTDataset *dataset)=0;
  860. virtual MTAPIRES PositionGetByGroup(LPCWSTR group,IMTPositionArray *positions)=0;
  861. virtual MTAPIRES PositionGetByLogins(const UINT64 *logins,UINT logins_total,IMTPositionArray *positions)=0;
  862. virtual MTAPIRES PositionGetByTickets(const UINT64 *tickets,UINT tickets_total,IMTPositionArray *positions)=0;
  863. virtual MTAPIRES PositionReserved1(void)=0;
  864. virtual MTAPIRES PositionReserved2(void)=0;
  865. virtual MTAPIRES PositionReserved3(void)=0;
  866. virtual MTAPIRES PositionReserved4(void)=0;
  867. //--- dataset management
  868. virtual IMTDatasetRequest* DatasetRequestCreate(void)=0;
  869. virtual IMTDataset* DatasetCreate(void)=0;
  870. virtual MTAPIRES DatasetReserved1(void)=0;
  871. virtual MTAPIRES DatasetReserved2(void)=0;
  872. virtual MTAPIRES DatasetReserved3(void)=0;
  873. virtual MTAPIRES DatasetReserved4(void)=0;
  874. //--- orders
  875. virtual MTAPIRES OrderGetByTickets(const UINT64 *tickets,UINT tickets_total,IMTOrderArray *orders)=0;
  876. virtual MTAPIRES OrderReserved1(void)=0;
  877. virtual MTAPIRES OrderReserved2(void)=0;
  878. virtual MTAPIRES OrderReserved3(void)=0;
  879. virtual MTAPIRES OrderReserved4(void)=0;
  880. //--- history
  881. virtual MTAPIRES HistoryGetByTickets(const UINT64 *tickets,UINT tickets_total,IMTOrderArray *orders)=0;
  882. virtual MTAPIRES HistoryReserved1(void)=0;
  883. virtual MTAPIRES HistoryReserved2(void)=0;
  884. virtual MTAPIRES HistoryReserved3(void)=0;
  885. virtual MTAPIRES HistoryReserved4(void)=0;
  886. //--- dealing
  887. virtual MTAPIRES DealGetByTickets(const UINT64 *tickets,UINT tickets_total,IMTDealArray *deals)=0;
  888. virtual MTAPIRES DealReserved1(void)=0;
  889. virtual MTAPIRES DealReserved2(void)=0;
  890. virtual MTAPIRES DealReserved3(void)=0;
  891. virtual MTAPIRES DealReserved4(void)=0;
  892. //--- client management
  893. virtual IMTClient *ClientCreate(void)=0;
  894. virtual IMTClientArray *ClientCreateArray(void)=0;
  895. virtual MTAPIRES ClientSubscribe(IMTClientSink* sink)=0;
  896. virtual MTAPIRES ClientUnsubscribe(IMTClientSink* sink)=0;
  897. virtual MTAPIRES ClientAdd(IMTClient *client,const UINT64 author)=0;
  898. virtual MTAPIRES ClientUpdate(IMTClient *client,const UINT64 author)=0;
  899. virtual MTAPIRES ClientDelete(const UINT64 client_id,const UINT64 author)=0;
  900. virtual MTAPIRES ClientGet(const UINT64 client_id,IMTClient *client)=0;
  901. virtual MTAPIRES ClientGetHistory(const UINT64 client_id,const UINT64 author,const INT64 from,const INT64 to,IMTClientArray *history)=0;
  902. virtual MTAPIRES ClientIdsAll(UINT64*& ids,UINT& ids_total)=0;
  903. virtual MTAPIRES ClientIdsByGroup(const LPCWSTR groups,UINT64*& ids,UINT& ids_total)=0;
  904. virtual MTAPIRES ClientIdsByManager(const UINT64 manager,UINT64*& ids,UINT& ids_total)=0;
  905. virtual MTAPIRES ClientUserAdd(const UINT64 client_id,const UINT64 login)=0;
  906. virtual MTAPIRES ClientUserDelete(const UINT64 client_id,const UINT64 login)=0;
  907. virtual MTAPIRES ClientUserLogins(const UINT64 client_id,UINT64*& logins,UINT& logins_total)=0;
  908. virtual MTAPIRES ClientReserved1(void)=0;
  909. virtual MTAPIRES ClientReserved2(void)=0;
  910. virtual MTAPIRES ClientReserved3(void)=0;
  911. virtual MTAPIRES ClientReserved4(void)=0;
  912. //--- document management
  913. virtual IMTDocument *DocumentCreate(void)=0;
  914. virtual IMTDocumentArray *DocumentCreateArray(void)=0;
  915. virtual MTAPIRES DocumentSubscribe(IMTDocumentSink* sink)=0;
  916. virtual MTAPIRES DocumentUnsubscribe(IMTDocumentSink* sink)=0;
  917. virtual MTAPIRES DocumentAdd(IMTDocument *document,const UINT64 author)=0;
  918. virtual MTAPIRES DocumentUpdate(IMTDocument *document,const UINT64 author)=0;
  919. virtual MTAPIRES DocumentDelete(const UINT64 document_id,const UINT64 author)=0;
  920. virtual MTAPIRES DocumentGet(const UINT64 document_id,IMTDocument *document)=0;
  921. virtual MTAPIRES DocumentGetByClient(const UINT64 client_id,const UINT position,const UINT total,IMTDocumentArray *documents)=0;
  922. virtual MTAPIRES DocumentGetHistory(const UINT64 document_id,const UINT64 author,const INT64 from,const INT64 to,IMTDocumentArray *history)=0;
  923. virtual MTAPIRES DocumentReserved1(void)=0;
  924. virtual MTAPIRES DocumentReserved2(void)=0;
  925. virtual MTAPIRES DocumentReserved3(void)=0;
  926. virtual MTAPIRES DocumentReserved4(void)=0;
  927. //--- comment management
  928. virtual IMTComment *CommentCreate(void)=0;
  929. virtual IMTCommentArray *CommentCreateArray(void)=0;
  930. virtual MTAPIRES CommentSubscribe(IMTCommentSink* sink)=0;
  931. virtual MTAPIRES CommentUnsubscribe(IMTCommentSink* sink)=0;
  932. virtual MTAPIRES CommentAdd(IMTComment *comment,const UINT64 author)=0;
  933. virtual MTAPIRES CommentUpdate(IMTComment *comment,const UINT64 author)=0;
  934. virtual MTAPIRES CommentDelete(const UINT64 comment_id,const UINT64 author)=0;
  935. virtual MTAPIRES CommentGet(const UINT64 comment_id,IMTComment *comment)=0;
  936. virtual MTAPIRES CommentGetByClient(const UINT64 client_id,const UINT position,const UINT total,IMTCommentArray *comments)=0;
  937. virtual MTAPIRES CommentGetByDocument(const UINT64 document_id,const UINT position,const UINT total,IMTCommentArray *comments)=0;
  938. virtual MTAPIRES CommentReserved1(void)=0;
  939. virtual MTAPIRES CommentReserved2(void)=0;
  940. virtual MTAPIRES CommentReserved3(void)=0;
  941. virtual MTAPIRES CommentReserved4(void)=0;
  942. //--- attachment management
  943. virtual IMTAttachment* AttachmentCreate(void)=0;
  944. virtual MTAPIRES AttachmentAdd(IMTAttachment *attachment,const UINT64 author)=0;
  945. virtual MTAPIRES AttachmentGet(const UINT64 attachment_id,IMTAttachment *attachment)=0;
  946. virtual MTAPIRES AttachmentReserved1(void)=0;
  947. virtual MTAPIRES AttachmentReserved2(void)=0;
  948. virtual MTAPIRES AttachmentReserved3(void)=0;
  949. virtual MTAPIRES AttachmentReserved4(void)=0;
  950. //--- TLS Certificates
  951. virtual MTAPIRES TLSCertificateUpdate(const void* pfx_certificate,const UINT pfx_certificate_size,LPCWSTR password)=0;
  952. virtual MTAPIRES TLSCertificateDelete(const UINT pos)=0;
  953. virtual MTAPIRES TLSCertificateShift(const UINT pos,const int shift)=0;
  954. virtual UINT TLSCertificateTotal(void)=0;
  955. virtual MTAPIRES TLSCertificateNext(const UINT pos,MTAPISTR& name,MTAPISTR& thumbprint)=0;
  956. virtual void* TLSCertificatePfx(const UINT pos,UINT& pfx_certificate_size)=0;
  957. virtual MTAPIRES TLSCertificateReserved1(void)=0;
  958. virtual MTAPIRES TLSCertificateReserved2(void)=0;
  959. virtual MTAPIRES TLSCertificateReserved3(void)=0;
  960. virtual MTAPIRES TLSCertificateReserved4(void)=0;
  961. };
  962. //+------------------------------------------------------------------+
  963. //| Server plugin interface |
  964. //+------------------------------------------------------------------+
  965. class IMTServerPlugin
  966. {
  967. public:
  968. virtual void Release(void)=0;
  969. //--- plugin start & stop notification
  970. virtual MTAPIRES Start(IMTServerAPI* server)=0;
  971. virtual MTAPIRES Stop(void)=0;
  972. };
  973. //+------------------------------------------------------------------+
  974. //| Plugin DLL entry points |
  975. //+------------------------------------------------------------------+
  976. MTAPIENTRY MTAPIRES MTServerAbout(MTPluginInfo& info);
  977. MTAPIENTRY MTAPIRES MTServerCreate(UINT apiversion,IMTServerPlugin** plugin);
  978. //+------------------------------------------------------------------+