MT5APINews.h 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. //+------------------------------------------------------------------+
  2. //| MetaTrader 5 API Server |
  3. //| Copyright 2000-2019, MetaQuotes Software Corp. |
  4. //| http://www.metaquotes.net |
  5. //+------------------------------------------------------------------+
  6. #pragma once
  7. //+------------------------------------------------------------------+
  8. //| News Message interface |
  9. //+------------------------------------------------------------------+
  10. class IMTNews
  11. {
  12. public:
  13. //--- news flags
  14. enum EnNewsFlags
  15. {
  16. NEWS_FLAGS_NONE =0x0000,
  17. NEWS_FLAGS_PRIORITY =0x0001,
  18. NEWS_FLAGS_READ =0x0002,
  19. NEWS_FLAGS_NOBODY =0x0004,
  20. NEWS_FLAGS_CALENDAR =0x0008,
  21. //--- enumeration borders
  22. NEWS_FLAGS_FIRST =NEWS_FLAGS_PRIORITY,
  23. NEWS_FLAGS_ALL =NEWS_FLAGS_PRIORITY|NEWS_FLAGS_READ|NEWS_FLAGS_NOBODY|NEWS_FLAGS_CALENDAR
  24. };
  25. public:
  26. //--- common methods
  27. virtual void Release(void)=0;
  28. virtual MTAPIRES Assign(const IMTNews* news)=0;
  29. virtual MTAPIRES Clear(void)=0;
  30. //--- news ID
  31. virtual UINT64 ID(void) const=0;
  32. //--- subject
  33. virtual LPCWSTR Subject(void) const=0;
  34. virtual MTAPIRES Subject(LPCWSTR subject)=0;
  35. //--- category
  36. virtual LPCWSTR Category(void) const=0;
  37. virtual MTAPIRES Category(LPCWSTR category)=0;
  38. //--- time
  39. virtual INT64 Time(void) const=0;
  40. virtual MTAPIRES Time(const INT64 datetime)=0;
  41. //--- language
  42. virtual UINT Language(void) const=0;
  43. virtual MTAPIRES Language(const UINT language)=0;
  44. //--- language
  45. virtual UINT Flags(void) const=0;
  46. virtual MTAPIRES Flags(const UINT flags)=0;
  47. //--- body
  48. virtual LPCVOID Body(void) const=0;
  49. virtual UINT BodySize(void) const=0;
  50. virtual MTAPIRES Body(LPCVOID body,const UINT body_size)=0;
  51. };
  52. //+------------------------------------------------------------------+
  53. //| News events notification interface |
  54. //+------------------------------------------------------------------+
  55. class IMTNewsSink
  56. {
  57. public:
  58. virtual void OnNews(const IMTNews* /*news*/) { };
  59. virtual MTAPIRES HookNews(const int /*feeder*/,IMTNews* /*news*/) { return(MT_RET_OK); }
  60. };
  61. //+------------------------------------------------------------------+