| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787 |
- //+------------------------------------------------------------------+
- //| MetaTrader 5 API Server |
- //| Copyright 2000-2019, MetaQuotes Software Corp. |
- //| http://www.metaquotes.net |
- //+------------------------------------------------------------------+
- #pragma once
- //+------------------------------------------------------------------+
- //| Dataset column interface |
- //+------------------------------------------------------------------+
- class IMTDatasetColumn
- {
- public:
- //--- column data types
- enum EnType
- {
- //--- base types
- TYPE_INT8 =0, // Integer (8 bits)
- TYPE_UINT8 =1, // Unsigned Integer (8 bits)
- TYPE_INT16 =2, // Integer (16 bits)
- TYPE_UINT16 =3, // Unsigned Integer (16 bits)
- TYPE_INT32 =4, // Integer (32 bits)
- TYPE_UINT32 =5, // Unsigned Integer (32 bits)
- TYPE_INT64 =6, // Integer (64 bits)
- TYPE_UINT64 =7, // Unsigned Integer (64 bits)
- TYPE_DOUBLE =8, // Double
- TYPE_MONEY =9, // Money (Double)
- TYPE_STRING =10, // Unicode String
- TYPE_DATE =11, // Date (Int64)
- TYPE_TIME =12, // Time (Int64)
- TYPE_DATETIME =13, // Datetime (Int64)
- TYPE_TIME_MSC =14, // Time in milliseconds (Int64)
- TYPE_DATETIME_MSC =15, // Datetime in milliseconds (Int64)
- //--- prices
- TYPE_PRICE =100, // Price (Double)
- TYPE_PRICES =101, // Bid/Ask (Double[2])
- TYPE_PRICE_POSITION =102, // Price for positions (Double)
- //--- volumes
- TYPE_VOLUME =200, // Volume (UInt64)
- TYPE_VOLUME_ORDER =201, // Initial Volume/Current Volume (UInt64[2])
- TYPE_VOLUME_EXT =202, // Volume with extended accuracy (UInt64)
- TYPE_VOLUME_ORDER_EXT =203, // Initial Volume/Current Volume with extended accuracy (UInt64[2])
- //--- positions
- TYPE_POSITION_TYPE =300, // Position Type (UInt)
- //--- orders
- TYPE_ORDER_TYPE =400, // Order Type (UInt)
- TYPE_ORDER_TYPE_TIME =401, // Order Type by Time (UInt)
- TYPE_ORDER_TYPE_REASON =402, // Order Type by Reason (UInt)
- TYPE_ORDER_STATUS =403, // Order Status (UInt)
- TYPE_ORDER_FILLING =404, // Order Filling (UInt)
- //--- deals
- TYPE_DEAL_ACTION =500, // Deal Action (UInt)
- TYPE_DEAL_ENTRY =501, // Deal Entry (UInt)
- //--- accounts
- TYPE_USER_LOGIN =600, // Account Login (UInt64)
- TYPE_USER_LEVERAGE =601, // Account Leverage (UInt)
- //--- clients
- TYPE_CLIENT_ID =700, // Client Id (UInt64)
- //--- enumeration borders
- TYPE_FIRST =TYPE_INT8,
- TYPE_LAST =TYPE_CLIENT_ID
- };
- //--- column flags
- enum EnFlags
- {
- FLAG_NONE =0x00000000, // none flags
- FLAG_PRIMARY =0x00000001, // primary integer column
- FLAG_HIDDEN_VIEW =0x00000002, // hidden in grid view
- FLAG_HIDDEN_SAVE =0x00000004, // hidden in saved file
- FLAG_HIDDEN =FLAG_HIDDEN_VIEW|FLAG_HIDDEN_SAVE, // hidden in grid and file
- FLAG_LEFT =0x00000008, // force align left
- FLAG_RIGHT =0x00000010, // force align right
- FLAG_CENTER =FLAG_LEFT|FLAG_RIGHT, // force align center
- //--- enumeration borders
- FLAG_ALL =FLAG_PRIMARY|FLAG_HIDDEN|FLAG_CENTER
- };
- //--- color
- enum EnColumnColor
- {
- COLUMN_COLOR_AUTO =0xFFFFFFFF, // auto color
- };
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTDatasetColumn *column)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- name
- virtual LPCWSTR Name(void) const=0;
- virtual MTAPIRES Name(LPCWSTR name)=0;
- //--- column id
- virtual UINT ColumnID(void) const=0;
- virtual MTAPIRES ColumnID(const UINT column_id)=0;
- //--- type IMTDatasetColumn::EnType
- virtual UINT Type(void) const=0;
- virtual MTAPIRES Type(const UINT type)=0;
- //--- column relative width
- virtual UINT Width(void) const=0;
- virtual MTAPIRES Width(const UINT width)=0;
- //--- column max width in pixels
- virtual UINT WidthMax(void) const=0;
- virtual MTAPIRES WidthMax(const UINT width_max)=0;
- //--- default digits
- virtual UINT Digits(void) const=0;
- virtual MTAPIRES Digits(const UINT digits)=0;
- //--- column digits reference
- virtual UINT DigitsColumn(void) const=0;
- virtual MTAPIRES DigitsColumn(const UINT column_id)=0;
- //--- flags IMTDatasetColumn::EnFlags
- virtual UINT64 Flags(void) const=0;
- virtual MTAPIRES Flags(const UINT64 flags)=0;
- //--- offset
- virtual UINT Offset(void) const=0;
- virtual MTAPIRES Offset(const UINT offset)=0;
- //--- size
- virtual UINT Size(void) const=0;
- virtual MTAPIRES Size(const UINT size)=0;
- //--- chart color
- virtual UINT Color(void) const=0;
- virtual MTAPIRES Color(const UINT color)=0;
- };
- //+------------------------------------------------------------------+
- //| Dataset summary interface |
- //+------------------------------------------------------------------+
- class IMTDatasetSummary
- {
- public:
- //--- summary data types
- enum EnType
- {
- //--- base types
- TYPE_INT =0, // Integer (64 bits)
- TYPE_UINT =1, // Unsigned Integer (64 bits)
- TYPE_DOUBLE =2, // Double
- TYPE_MONEY =3, // Money
- TYPE_STRING =4, // Unicode String
- TYPE_DATE =5, // Date
- TYPE_TIME =6, // Time
- TYPE_DATETIME =7, // Datetime
- //--- prices
- TYPE_PRICE =100, // Price
- TYPE_PRICES =101, // Bid/Ask
- //--- volumes
- TYPE_VOLUME =200, // Volume
- TYPE_VOLUME_ORDER =201, // Initial Volume/Current Volume (UInt64[2])
- TYPE_VOLUME_EXT =202, // Volume with extended accuracy (UInt64)
- TYPE_VOLUME_ORDER_EXT =203, // Initial Volume/Current Volume with extended accuracy (UInt64[2])
- //--- enumeration borders
- TYPE_FIRST =TYPE_INT,
- TYPE_LAST =TYPE_VOLUME_ORDER_EXT
- };
- //--- summary flags
- enum EnFlags
- {
- FLAG_NONE =0x0, // none flag
- };
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTDatasetSummary *summary)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- column id
- virtual UINT ColumnID(void) const=0;
- virtual MTAPIRES ColumnID(const UINT column_id)=0;
- //--- line index
- virtual UINT Line(void) const=0;
- virtual MTAPIRES Line(const UINT line)=0;
- //--- column for merging (merging from ColumnID to MergeColumn)
- virtual UINT MergeColumn(void) const=0;
- virtual MTAPIRES MergeColumn(const UINT column_id)=0;
- //--- text color
- virtual UINT Color(void) const=0;
- virtual MTAPIRES Color(const UINT color)=0;
- //--- flags IMTDatasetSummary::EnFlags
- virtual UINT64 Flags(void) const=0;
- virtual MTAPIRES Flags(const UINT64 flags)=0;
- //--- type IMTDatasetSummary::EnType
- virtual UINT Type(void) const=0;
- //--- digits
- virtual UINT Digits(void) const=0;
- virtual MTAPIRES Digits(const UINT digits)=0;
- //--- integer
- virtual INT64 ValueInt(void) const=0;
- virtual MTAPIRES ValueInt(const INT64 value)=0;
- //--- unsigned integer
- virtual UINT64 ValueUInt(void) const=0;
- virtual MTAPIRES ValueUInt(const UINT64 value)=0;
- //--- double
- virtual double ValueDouble(void) const=0;
- virtual MTAPIRES ValueDouble(const double value)=0;
- //--- money
- virtual double ValueMoney(void) const=0;
- virtual MTAPIRES ValueMoney(const double value)=0;
- //--- string
- virtual LPCWSTR ValueString(void) const=0;
- virtual MTAPIRES ValueString(LPCWSTR value)=0;
- //--- date
- virtual INT64 ValueDate(void) const=0;
- virtual MTAPIRES ValueDate(const INT64 value)=0;
- //--- time
- virtual INT64 ValueTime(void) const=0;
- virtual MTAPIRES ValueTime(const INT64 value)=0;
- //--- datetime
- virtual INT64 ValueDateTime(void) const=0;
- virtual MTAPIRES ValueDateTime(const INT64 value)=0;
- //--- price
- virtual double ValuePrice(void) const=0;
- virtual MTAPIRES ValuePrice(const double value)=0;
- //--- prices
- virtual double ValuePricesBid(void) const=0;
- virtual double ValuePricesAsk(void) const=0;
- virtual MTAPIRES ValuePrices(const double value_bid,const double value_ask)=0;
- //--- volume
- virtual UINT64 ValueVolume(void) const=0;
- virtual MTAPIRES ValueVolume(const UINT64 value)=0;
- //--- order volume
- virtual UINT64 ValueVolumeInitial(void) const=0;
- virtual UINT64 ValueVolumeCurrent(void) const=0;
- virtual MTAPIRES ValueVolume(const UINT64 value_initial,const UINT64 value_current)=0;
- //--- volume with extended accuracy
- virtual UINT64 ValueVolumeExt(void) const=0;
- virtual MTAPIRES ValueVolumeExt(const UINT64 value)=0;
- //--- order volume with extended accuracy
- virtual UINT64 ValueVolumeExtInitial(void) const=0;
- virtual UINT64 ValueVolumeExtCurrent(void) const=0;
- virtual MTAPIRES ValueVolumeExt(const UINT64 value_initial,const UINT64 value_current)=0;
- };
- //+------------------------------------------------------------------+
- //| Dataset interface |
- //+------------------------------------------------------------------+
- class IMTDataset
- {
- public:
- //--- flags
- enum EnDataSetFlags
- {
- DATASET_FLAG_NONE =0x0, // no flags
- };
- public:
- //--- common methods
- virtual MTAPIRES Assign(const IMTDataset *data)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- flags
- virtual UINT64 Flags(void) const=0;
- virtual MTAPIRES Flags(const UINT64 flags)=0;
- //--- reserverd properites methods
- virtual MTAPIRES Reserved1(void)=0;
- virtual MTAPIRES Reserved2(void)=0;
- virtual MTAPIRES Reserved3(void)=0;
- virtual MTAPIRES Reserved4(void)=0;
- //--- data set column management
- virtual IMTDatasetColumn* ColumnCreate(void)=0;
- virtual MTAPIRES ColumnClear(void)=0;
- virtual MTAPIRES ColumnAdd(const IMTDatasetColumn *column)=0;
- virtual MTAPIRES ColumnDelete(const UINT pos)=0;
- virtual UINT ColumnTotal(void) const=0;
- virtual UINT ColumnSize(void) const=0;
- virtual MTAPIRES ColumnNext(const UINT pos,IMTDatasetColumn *column)=0;
- virtual MTAPIRES ColumnReserved1(void)=0;
- virtual MTAPIRES ColumnReserved2(void)=0;
- //--- data set row management
- virtual MTAPIRES RowClear(void)=0;
- virtual MTAPIRES RowWrite(const void *data,const UINT size)=0;
- virtual UINT RowTotal(void) const=0;
- virtual MTAPIRES RowRead(const UINT pos,void *data,const UINT size) const=0;
- virtual MTAPIRES RowReserved2(void)=0;
- //--- data set summary management
- virtual IMTDatasetSummary* SummaryCreate(void)=0;
- virtual MTAPIRES SummaryClear(void)=0;
- virtual MTAPIRES SummaryAdd(const IMTDatasetSummary *summary)=0;
- virtual MTAPIRES SummaryDelete(const UINT pos)=0;
- virtual MTAPIRES SummaryNext(const UINT pos,IMTDatasetSummary *summary)=0;
- virtual UINT SummaryTotal(void) const=0;
- virtual MTAPIRES SummaryReserved1(void)=0;
- virtual MTAPIRES SummaryReserved2(void)=0;
- //--- life control
- virtual void Release(void)=0;
- };
- //+------------------------------------------------------------------+
- //| Datatset request field |
- //+------------------------------------------------------------------+
- class IMTDatasetField
- {
- public:
- //--- filed type
- enum EnFieldType
- {
- TYPE_NONE =0, // none
- TYPE_INT =1, // integer
- TYPE_UINT =2, // unsigned integer
- TYPE_DOUBLE =3, // double
- TYPE_STRING =4, // string
- //--- enumeration borders
- TYPE_FIRST =TYPE_NONE,
- TYPE_LAST =TYPE_STRING
- };
- //--- Request fields id enumeration
- enum EnFieldId
- {
- //--- User fields enumeration
- FIELD_USER_LOGIN =1, // UINT64 , login
- FIELD_USER_GROUP =2, // wchar_t[64] , group
- FIELD_USER_CERT_SERIAL_NUMBER =3, // UINT64 , certificate serial number
- FIELD_USER_RIGHTS =4, // UINT64 , EnUsersRights
- FIELD_USER_REGISTRATION =5, // INT64 , registration datetime (filled by MT5)
- FIELD_USER_LAST_ACCESS =6, // INT64 , last access datetime (filled by MT5)
- FIELD_USER_NAME =7, // wchar_t[128], name
- FIELD_USER_COMPANY =8, // wchar_t[32] , company
- FIELD_USER_ACCOUNT =9, // wchar_t[64] , external system account (exchange, ECN, etc)
- FIELD_USER_COUNTRY =10, // wchar_t[32] , country
- FIELD_USER_LANGUAGE =11, // UINT , client language (WinAPI LANGID)
- FIELD_USER_CITY =12, // wchar_t[32] , city
- FIELD_USER_STATE =13, // wchar_t[32] , state
- FIELD_USER_ZIP_CODE =14, // wchar_t[16] , ZIP code
- FIELD_USER_ADDRESS =15, // wchar_t[128], address
- FIELD_USER_PHONE =16, // wchar_t[32] , phone
- FIELD_USER_EMAIL =17, // wchar_t[64] , email
- FIELD_USER_ID =18, // wchar_t[32] , additional ID
- FIELD_USER_STATUS =19, // wchar_t[16] , additional status
- FIELD_USER_COMMENT =20, // wchar_t[64] , comment
- FIELD_USER_COLOR =21, // UINT , color (WinAPI COLORREF)
- FIELD_USER_PHONE_PASSWORD =22, // wchar_t[32] , phone password
- FIELD_USER_LEVERAGE =23, // UINT , leverage
- FIELD_USER_AGENT =24, // UINT64 , agent account
- FIELD_USER_BALANCE =25, // double , balance
- FIELD_USER_CREDIT =26, // double , credit
- FIELD_USER_INTEREST_RATE =27, // double , accumulated interest rate
- FIELD_USER_COMMISSION_DAILY =28, // double , accumulated daily commissions
- FIELD_USER_COMMISSION_MONTHLY =29, // double , accumulated monthly commissions
- FIELD_USER_COMMISSION_AGENT_DAILY =30, // double , accumulated daily agent commissions
- FIELD_USER_COMMISSION_AGENT_MONTHLY =31, // double , accumulated monthly agent commissions
- FIELD_USER_BALANCE_PREV_DAY =32, // double , previous day balance state
- FIELD_USER_BALANCE_PREV_MONTH =33, // double , previous month balance state
- FIELD_USER_EQUITY_PREV_DAY =34, // double , previous day equity state
- FIELD_USER_EQUITY_PREV_MONTH =35, // double , previous month equity state
- FIELD_USER_LAST_PASS_CHANGE =36, // INT64 , last password change datetime (filled by MT5)
- FIELD_USER_MQID =37, // UINT , client's MetaQuotes ID
- FIELD_USER_LEAD_CAMPAIGN =38, // wchar_t[32] , lead campaign
- FIELD_USER_LEAD_SOURCE =39, // wchar_t[32] , lead source
- FIELD_USER_CLIENT_ID =40, // UINT64 , client id
- //--- User fields enumeration borders
- FIELD_USER_FIRST =FIELD_USER_LOGIN,
- FIELD_USER_LAST =FIELD_USER_CLIENT_ID,
- //--- Client fields enumeration
- FIELD_CLIENT_ID =1001, // UINT64 , client id
- FIELD_CLIENT_CREATED_TIME =1002, // INT64 , creation date and time
- FIELD_CLIENT_CREATED_BY =1003, // UINT64 , login of manager who created the client
- FIELD_CLIENT_MODIFIED_TIME =1004, // INT64 , modification date
- FIELD_CLIENT_MODIFIED_BY =1005, // UINT64 , login of manager who modified the client
- FIELD_CLIENT_TYPE =1006, // UINT , client type (EnClientType)
- FIELD_CLIENT_STATUS =1007, // UINT , client status (EnClientStatus)
- FIELD_CLIENT_ASSIGNED_MANAGER =1008, // UINT64 , assigned manager login
- FIELD_CLIENT_COMMENT =1009, // wchar_t[128], comment
- FIELD_CLIENT_COMPLIANCE_APPROVED_BY =1010, // UINT64 , login of manager who approved the client
- FIELD_CLIENT_COMPLIANCE_CLIENT_CATEGORY=1011, // wchar_t[64] , customer classification according to the rules of the local regulator
- FIELD_CLIENT_COMPLIANCE_TIME_APPROVAL =1012, // INT64 , approval date and time
- FIELD_CLIENT_COMPLIANCE_TIME_TERMINATION=1013, // INT64 , agreement termination date and time
- FIELD_CLIENT_LEAD_CAMPAIGN =1014, // wchar_t[64] , lead campaign
- FIELD_CLIENT_LEAD_SOURCE =1015, // wchar_t[64] , lead source
- FIELD_CLIENT_INTRODUCER =1016, // wchar_t[32] , IB or Referal
- FIELD_CLIENT_PERSON_TITLE =1017, // wchar_t[16] , title
- FIELD_CLIENT_PERSON_NAME =1018, // wchar_t[32] , first name
- FIELD_CLIENT_PERSON_MIDDLE_NAME =1019, // wchar_t[32] , middle name
- FIELD_CLIENT_PERSON_LAST_NAME =1020, // wchar_t[32] , second name
- FIELD_CLIENT_PERSON_BIRTH_DATE =1021, // INT64 , date of birth (file time, number of 100-nanosecond since 12:00 A.M. January 1, 1601 UTC)
- FIELD_CLIENT_PERSON_CITIZENSHIP =1022, // wchar_t[64] , citizenship
- FIELD_CLIENT_PERSON_GENDER =1023, // UINT , gender (EnGender)
- FIELD_CLIENT_PERSON_TAX_ID =1024, // wchar_t[64] , tax id
- FIELD_CLIENT_PERSON_DOCUMENT_TYPE =1025, // wchar_t[16] , document type
- FIELD_CLIENT_PERSON_DOCUMENT_NUMBER =1026, // wchar_t[32] , document number
- FIELD_CLIENT_PERSON_DOCUMENT_DATE =1027, // INT64 , document issue or expiration date
- FIELD_CLIENT_PERSON_DOCUMENT_EXTRA =1028, // wchar_t[64] , document extra data
- FIELD_CLIENT_PERSON_EMPLOYMENT =1029, // UINT , employment status (EnEmployment)
- FIELD_CLIENT_PERSON_INDUSTRY =1030, // UINT , employment industry (EnEmploymentIndustry)
- FIELD_CLIENT_PERSON_EDUCATION =1031, // UINT , education level (EnEducationLevel)
- FIELD_CLIENT_PERSON_WEALTH_SOURCE =1032, // UINT , wealth source (EnWealthSource)
- FIELD_CLIENT_PERSON_ANNUAL_INCOME =1033, // double , annual income, USD
- FIELD_CLIENT_PERSON_NET_WORTH =1034, // double , net worth, USD
- FIELD_CLIENT_PERSON_ANNUAL_DEPOSIT =1035, // double , annual deposit, USD
- FIELD_CLIENT_COMPANY_NAME =1036, // wchar_t[64] , company name
- FIELD_CLIENT_COMPANY_REG_NUMBER =1037, // wchar_t[64] , company registration number
- FIELD_CLIENT_COMPANY_REG_DATE =1038, // INT64 , company registration date
- FIELD_CLIENT_COMPANY_REG_AUTHORITY =1039, // wchar_t[64] , company registration authority
- FIELD_CLIENT_COMPANY_VAT =1040, // wchar_t[64] , VAT registration number
- FIELD_CLIENT_COMPANY_LEI =1041, // wchar_t[64] , EI number for EMIR reports
- FIELD_CLIENT_COMPANY_LICENSE_NUMBER =1042, // wchar_t[64] , license number
- FIELD_CLIENT_COMPANY_LICENSE_AUTHORITY =1043, // wchar_t[64] , license issuer authority
- FIELD_CLIENT_COMPANY_COUNTRY =1044, // wchar_t[64] , company registration country
- FIELD_CLIENT_COMPANY_ADDRESS =1045, // wchar_t[64] , company registration address
- FIELD_CLIENT_COMPANY_WEBSITE =1046, // wchar_t[64] , company website
- FIELD_CLIENT_CONTACT_PREFERRED =1047, // UINT , preferred communication type
- FIELD_CLIENT_CONTACT_LANGUAGE =1048, // wchar_t[64] , communication language
- FIELD_CLIENT_CONTACT_EMAIL =1049, // wchar_t[64] , email (or multiple comma-separated emails)
- FIELD_CLIENT_CONTACT_PHONE =1050, // wchar_t[128], phone numbers (or multiple comma-separated phone numbers)
- FIELD_CLIENT_CONTACT_MESSENGERS =1051, // wchar_t[128], messengers in format: "skype:username, qq:5454535454"
- FIELD_CLIENT_CONTACT_SOCIALNETWORKS =1052, // wchar_t[128], social networks ids: "fb:user_id, vk:user_id"
- FIELD_CLIENT_CONTACT_LAST_DATE =1053, // INT64 , date and time of the last contact
- FIELD_CLIENT_ADDRESS_COUNTRY =1054, // wchar_t[64] , address - country
- FIELD_CLIENT_ADDRESS_POSTCODE =1055, // wchar_t[16] , address - zip code
- FIELD_CLIENT_ADDRESS_STREET =1056, // wchar_t[128], address - street address
- FIELD_CLIENT_ADDRESS_STATE =1057, // wchar_t[64] , address - state, province or district
- FIELD_CLIENT_ADDRESS_CITY =1058, // wchar_t[64] , address - city or town
- FIELD_CLIENT_EXPERIENCE_FX =1059, // UINT , Forex trading experience (EnTradingExperience)
- FIELD_CLIENT_EXPERIENCE_CFD =1060, // UINT , CFD trading experience (EnTradingExperience)
- FIELD_CLIENT_EXPERIENCE_FUTURES =1061, // UINT , futures trading experience (EnTradingExperience)
- FIELD_CLIENT_EXPERIENCE_STOCKS =1062, // UINT , stocks trading experience (EnTradingExperience)
- //--- Client fields enumeration borders
- FIELD_CLIENT_FIRST =FIELD_CLIENT_ID,
- FIELD_CLIENT_LAST =FIELD_CLIENT_EXPERIENCE_STOCKS,
- //--- Deal fields enumeration
- FIELD_DEAL_DEAL =2001, // UINT64 , deal ticket
- FIELD_DEAL_EXTERNAL_ID =2002, // wchar_t[32] , deal ticket in external system (exchange, ECN, etc)
- FIELD_DEAL_LOGIN =2003, // UINT64 , client login
- FIELD_DEAL_DEALER =2004, // UINT64 , processed dealer login (0-means auto)
- FIELD_DEAL_ORDER =2005, // UINT64 , deal order ticket
- FIELD_DEAL_ACTION =2006, // UINT , EnDealAction
- FIELD_DEAL_ENTRY =2007, // UINT , EnEntryFlags
- FIELD_DEAL_DIGITS =2008, // UINT , price digits
- FIELD_DEAL_DIGITS_CURRENCY =2009, // UINT , currency digits
- FIELD_DEAL_CONTRACT_SIZE =2010, // double , symbol contract size
- FIELD_DEAL_TIME =2011, // INT64 , deal creation datetime in seconds
- FIELD_DEAL_SYMBOL =2012, // wchar_t[32] , deal symbol
- FIELD_DEAL_PRICE =2013, // double , deal price
- FIELD_DEAL_VOLUME_EXT =2014, // UINT64 , deal volume with extended accuracy
- FIELD_DEAL_PROFIT =2015, // double , deal profit
- FIELD_DEAL_STORAGE =2016, // double , deal collected swaps
- FIELD_DEAL_COMMISSION =2017, // double , deal commission
- FIELD_DEAL_RATE_PROFIT =2018, // double , profit conversion rate (from symbol profit currency to deposit currency)
- FIELD_DEAL_RATE_MARGIN =2019, // double , margin conversion rate (from symbol margin currency to deposit currency)
- FIELD_DEAL_EXPERT_ID =2020, // UINT64 , expert id (filled by expert advisor)
- FIELD_DEAL_POSITION_ID =2021, // UINT64 , position id
- FIELD_DEAL_COMMENT =2022, // wchar_t[32] , deal comment
- FIELD_DEAL_PROFIT_RAW =2023, // double , deal profit in symbol's profit currency
- FIELD_DEAL_PRICE_POSITION =2024, // double , closed position price
- FIELD_DEAL_VOLUME_CLOSED_EXT =2025, // UINT64 , closed volume with extended accuracy
- FIELD_DEAL_TICK_VALUE =2026, // double , tick value
- FIELD_DEAL_TICK_SIZE =2027, // double , tick size
- FIELD_DEAL_FLAGS =2028, // UINT64 , flags
- FIELD_DEAL_TIME_MSC =2029, // INT64 , deal creation datetime in msc since 1970.01.01
- FIELD_DEAL_REASON =2030, // UINT , EnDealReason
- FIELD_DEAL_GATEWAY =2031, // wchar_t[16] , source gateway name
- FIELD_DEAL_PRICE_GATEWAY =2032, // double , deal price on gateway
- FIELD_DEAL_MODIFICATION_FLAGS =2033, // UINT , modification flags
- FIELD_DEAL_PRICE_SL =2034, // double , order SL
- FIELD_DEAL_PRICE_TP =2035, // double , order TP
- //--- Deal fields enumeration borders
- FIELD_DEAL_FIRST =FIELD_DEAL_DEAL,
- FIELD_DEAL_LAST =FIELD_DEAL_PRICE_TP,
- //--- ïîëÿ çàïðîñà áàçû çàÿâîê
- FIELD_ORDER_ORDER =3001, // UINT64 , order ticket
- FIELD_ORDER_EXTERNAL_ID =3002, // wchar_t[32] , order ticket in external system (exchange, ECN, etc)
- FIELD_ORDER_LOGIN =3003, // UINT64 , client login
- FIELD_ORDER_DEALER =3004, // UINT64 , processed dealer login (0-means auto)
- FIELD_ORDER_SYMBOL =3005, // wchar_t[32] , order symbol
- FIELD_ORDER_TIME_SETUP =3006, // INT64 , time of order reception from a client into the system
- FIELD_ORDER_TIME_EXPIRATION =3007, // INT64 , order expiration time
- FIELD_ORDER_TIME_DONE =3008, // INT64 , order cancellation time
- FIELD_ORDER_TYPE =3009, // UINT , order type
- FIELD_ORDER_TYPE_FILL =3010, // UINT , order type by filling
- FIELD_ORDER_TYPE_TIME =3011, // UINT , order type by time
- FIELD_ORDER_TYPE_REASON =3012, // UINT , order creation reason
- FIELD_ORDER_PRICE_ORDER =3013, // double , order price
- FIELD_ORDER_PRICE_TRIGGER =3014, // double , order execution price
- FIELD_ORDER_PRICE_CURRENT =3015, // double , current order prioce
- FIELD_ORDER_PRICE_SL =3016, // double , stop-loss price
- FIELD_ORDER_PRICE_TP =3017, // double , take-profit price
- FIELD_ORDER_VOLUME_INITIAL =3018, // UINT64 , starting order volume
- FIELD_ORDER_VOLUME_CURRENT =3019, // UINT64 , current order volume
- FIELD_ORDER_STATE =3020, // UINT , actual order state
- FIELD_ORDER_EXPERT_ID =3021, // UINT64 , expert ID
- FIELD_ORDER_POSITION_ID =3022, // UINT64 , position ID which the order opens or closes
- FIELD_ORDER_COMMENT =3023, // wchar_t[32] , order comment
- FIELD_ORDER_CONTRACT_SIZE =3024, // double , order contract size
- FIELD_ORDER_DIGITS =3025, // UINT , number of digits of order symbol
- FIELD_ORDER_DIGITS_CURRENCY =3026, // UINT , number of digits of order currency
- FIELD_ORDER_POSITION_BY_ID =3027, // UINT64 , counter Position ID for Close-By orders
- FIELD_ORDER_MARGIN_RATE =3028, // double , margin conversion rate at the creation time
- FIELD_ORDER_TIME_SETUP_MSC =3029, // INT64 , order reception from a client into the system in milliseconds
- FIELD_ORDER_TIME_DONE_MSC =3030, // INT64 , order cancellation time in milliseconds
- FIELD_ORDER_MODIFICATION_FLAGS =3031, // UINT , order modification flags
- FIELD_ORDER_ACTIVATION_MODE =3032, // UINT , order activation mode (for manager)
- FIELD_ORDER_ACTIVATION_TIME =3033, // INT64 , order activation time (for manager)
- FIELD_ORDER_ACTIVATION_PRICE =3034, // double , order activation price (for manager)
- FIELD_ORDER_ACTIVATION_FLAGS =3035, // UINT , order activation flags
- //--- ãðàíèöû id ïîëåé çàïðîñà áàçû èñòîðèè çàÿâîê
- FIELD_ORDER_FIRST =FIELD_ORDER_ORDER,
- FIELD_ORDER_LAST =FIELD_ORDER_ACTIVATION_FLAGS,
- //--- ïîëÿ çàïðîñà áàçû äíåâíûõ îò÷¸òîâ
- FIELD_DAILY_DATE_TIME =4001, // INT64 , report generation date and time
- FIELD_DAILY_DATE_TIME_PREV =4002, // INT64 , date and time of previous report generation
- FIELD_DAILY_LOGIN =4003, // UINT64 , login
- FIELD_DAILY_NAME =4004, // wchar_t[128], name
- FIELD_DAILY_GROUP =4005, // wchar_t[64] , group
- FIELD_DAILY_CURRENCY =4006, // wchar_t[32] , currency
- FIELD_DAILY_DIGITS_CURRENCY =4007, // UINT , number of digits of report currency
- FIELD_DAILY_COMPANY =4008, // wchar_t[64] , company
- FIELD_DAILY_EMAIL =4009, // wchar_t[64] , e-mail
- FIELD_DAILY_BALANCE =4010, // double , balance
- FIELD_DAILY_CREDIT =4011, // double , credit
- FIELD_DAILY_INTEREST_RATE =4012, // double , interest rate
- FIELD_DAILY_COMMISSION_DAILY =4013, // double , commission daily
- FIELD_DAILY_COMMISSION_MONTHLY =4014, // double , commission monthly
- FIELD_DAILY_AGENT_DAILY =4015, // double , commission daily
- FIELD_DAILY_AGENT_MONTHLY =4016, // double , commission monthly
- FIELD_DAILY_BALANCE_PREV_DAY =4017, // double , last day balance
- FIELD_DAILY_BALANCE_PREV_MONTH =4018, // double , last month balance
- FIELD_DAILY_EQUITY_PREV_DAY =4019, // double , last day equity
- FIELD_DAILY_EQUITY_PREV_MONTH =4020, // double , last month equity
- FIELD_DAILY_MARGIN =4021, // double , margin
- FIELD_DAILY_MARGIN_FREE =4022, // double , free margin
- FIELD_DAILY_MARGIN_LEVEL =4023, // double , margin level
- FIELD_DAILY_MARGIN_LEVERAGE =4024, // UINT , margin leverage
- FIELD_DAILY_PROFIT =4025, // double , floating profit
- FIELD_DAILY_PROFIT_STORAGE =4026, // double , storage
- FIELD_DAILY_PROFIT_COMMISSION =4027, // double , commission
- FIELD_DAILY_PROFIT_EQUITY =4028, // double , equity
- FIELD_DAILY_DAILY_PROFIT =4029, // double , daily fixed profit details
- FIELD_DAILY_DAILY_BALANCE =4030, // double , daily balance operations
- FIELD_DAILY_DAILY_CREDIT =4031, // double , daily credit operations
- FIELD_DAILY_DAILY_CHARGE =4032, // double , fees per day
- FIELD_DAILY_DAILY_CORRECTION =4033, // double , correction for the day
- FIELD_DAILY_DAILY_BONUS =4034, // double , bonuses per day
- FIELD_DAILY_DAILY_STORAGE =4035, // double , closed positions swap
- FIELD_DAILY_DAILY_COMM_INSTANT =4036, // double , commission charged immediately
- FIELD_DAILY_DAILY_COMM_ROUND =4037, // double , deferred commission
- FIELD_DAILY_DAILY_AGENT =4038, // double , agency commissions per day
- FIELD_DAILY_DAILY_INTEREST =4039, // double , interest per day
- FIELD_DAILY_PROFIT_ASSETS =4040, // double , assets
- FIELD_DAILY_PROFIT_LIABILITIES =4041, // double , liabilities
- //--- ãðàíèöû id ïîëåé çàïðîñà áàçû äíåâíûõ îò÷¸òîâ
- FIELD_DAILY_FIRST =FIELD_DAILY_DATE_TIME,
- FIELD_DAILY_LAST =FIELD_DAILY_PROFIT_LIABILITIES,
- //--- ïîëÿ çàïðîñà áàçû ïîçèöèé
- FIELD_POSITION_LOGIN =5001, // UINT64 , owner client login
- FIELD_POSITION_SYMBOL =5002, // wchar_t[32] , position symbol
- FIELD_POSITION_ACTION =5003, // UINT , EnPositionAction
- FIELD_POSITION_DIGITS =5004, // UINT , number of digits of order symbol
- FIELD_POSITION_DIGITS_CURRENCY =5005, // UINT , number of digits of order currency
- FIELD_POSITION_CONTRACT_SIZE =5006, // double , symbol contract size
- FIELD_POSITION_TIME_CREATE =5007, // INT64 , position create time
- FIELD_POSITION_TIME_UPDATE =5008, // INT64 , position last update time
- FIELD_POSITION_PRICE_OPEN =5009, // double , position weighted average open price
- FIELD_POSITION_PRICE_CURRENT =5010, // double , position current price
- FIELD_POSITION_PRICE_SL =5011, // double , position SL price
- FIELD_POSITION_PRICE_TP =5012, // double , position TP price
- FIELD_POSITION_VOLUME =5013, // UINT64 , position volume
- FIELD_POSITION_PROFIT =5014, // double , position floating profit
- FIELD_POSITION_STORAGE =5015, // double , position accumulated swaps
- FIELD_POSITION_RATE_PROFIT =5016, // double , profit conversion rate (from symbol profit currency to deposit currency)
- FIELD_POSITION_RATE_MARGIN =5017, // double , margin conversion rate (from symbol margin currency to deposit currency)
- FIELD_POSITION_EXPERT_ID =5018, // UINT64 , expert id (filled by expert advisor)
- FIELD_POSITION_EXPERT_POSITION_ID =5019, // UINT64 , expert position id
- FIELD_POSITION_COMMENT =5020, // wchar_t[32] , comment
- FIELD_POSITION_ACTIVATION_MODE =5021, // UINT , order activation state, time and price
- FIELD_POSITION_ACTIVATION_TIME =5022, // INT64 , activation mode
- FIELD_POSITION_ACTIVATION_PRICE =5023, // double , actionvation time
- FIELD_POSITION_ACTIVATION_FLAGS =5024, // UINT , actiovation flags
- FIELD_POSITION_TIME_CREATE_MSC =5025, // INT64 , position create time in msc since 1970.01.01
- FIELD_POSITION_TIME_UPDATE_MSC =5026, // INT64 , position last update time in msc since 1970.01.01
- FIELD_POSITION_DEALER =5027, // UINT64 , processed dealer login (0-means auto) (first position deal dealer)
- FIELD_POSITION_POSITION =5028, // UINT64 , position ticket
- FIELD_POSITION_EXTERNAL_ID =5029, // wchar_t[32] , position ticket in external system (exchange, ECN, etc)
- FIELD_POSITION_MODIFICATION_FLAGS =5030, // UINT , modification flags
- FIELD_POSITION_REASON =5031, // UINT , position reason - EnPositionReason
- FIELD_POSITION_VOLUME_EXT =5032, // UINT64 , position volume
- //--- ãðàíèöû id ïîëåé çàïðîñà áàçû ïîçèöèé
- FIELD_POSITION_FIRST =FIELD_POSITION_LOGIN,
- FIELD_POSITION_LAST =FIELD_POSITION_VOLUME_EXT,
- //--- enumeration borders
- FIELD_FIRST =FIELD_USER_FIRST,
- FIELD_LAST =FIELD_POSITION_LAST
- };
- //--- flags
- enum EnFieldFlags
- {
- FLAG_NONE =0x0000000, // none
- FLAG_SELECT =0x0000001, // select field
- //--- enumeration borders
- FLAG_DEFAULT =FLAG_SELECT,
- FLAG_ALL =FLAG_SELECT
- };
- //--- gender enumeration
- enum EnGender
- {
- GENDER_UNSPECIFIED =0, // unspecified
- GENDER_MALE =1, // male
- GENDER_FEMALE =2, // female
- //--- enumeration borders
- GENDER_FIRST =GENDER_UNSPECIFIED,
- GENDER_LAST =GENDER_FEMALE
- };
- //--- client type enumeration
- enum EnClientType
- {
- CLIENT_TYPE_UNDEFINED =0, // undefined
- CLIENT_TYPE_INDIVIDUAL =1, // individual
- CLIENT_TYPE_CORPORATE =2, // corporate
- CLIENT_TYPE_FUND =3, // fund
- //--- enumeration borders
- CLIENT_TYPE_FIRST =CLIENT_TYPE_UNDEFINED,
- CLIENT_TYPE_LAST =CLIENT_TYPE_FUND
- };
- //--- client status enumeration
- enum EnClientStatus
- {
- //--- Not a client yet - Demo accounts
- CLIENT_STATUS_UNREGISTERED =0, // Anonymous user (demo account without data)
- CLIENT_STATUS_REGISTERED =100, // The user who opened a demo account and left contact information (lead)
- CLIENT_STATUS_NOTINTERESTED =200, // The user who left the contact information, but does not want to open an account
- //--- Not a client yet - Preliminary
- CLIENT_STATUS_APPLICATION_INCOMPLETED =300, // The user who filled out the form to open a real account
- CLIENT_STATUS_APPLICATION_COMPLETED =400, // The user who filled out the questionnaire to open a real account and provided all the documents
- CLIENT_STATUS_APPLICATION_INFORMATION =500, // User to open an account that requires additional information
- CLIENT_STATUS_APPLICATION_REJECTED =600, // The user who filled out the questionnaire to open a real account but to whom the account was not opened according to the results of the verification of documents
- //--- Client
- CLIENT_STATUS_APPROVED =700, // The client who opened a real account
- CLIENT_STATUS_FUNDED =800, // Customer with a real account refilled
- CLIENT_STATUS_ACTIVE =900, // A client with a real account with money that made at least one transaction in the last 90 days
- CLIENT_STATUS_INACTIVE =1000, // A client with a real money account that has not been traded in the past 90 days
- CLIENT_STATUS_SUSPENDED =1100, // Client with a real account, trading on which is suspended at the initiative of the company
- //--- No longer client
- CLIENT_STATUS_CLOSED =1200, // Client who had a real account (s) and who closed them on his own initiative
- CLIENT_STATUS_TERMINATED =1300, // The client who had a real account (s), with which the contract was terminated at the initiative of the company
- //--- enumeration borders
- CLIENT_STATUS_FIRST =CLIENT_STATUS_UNREGISTERED,
- CLIENT_STATUS_LAST =CLIENT_STATUS_TERMINATED
- };
- //--- employment status enumeration
- enum EnEmployment
- {
- EMPLOY_UNEMPLOYED =0, // unemployed
- EMPLOY_EMPLOYED =1, // employed
- EMPLOY_SELF_EMPLOYED =2, // self employed
- EMPLOY_RETIRED =3, // retired
- EMPLOY_STUDENT =4, // student
- EMPLOY_OTHER =5, // other
- //--- enumeration borders
- EMPLOY_FIRST =EMPLOY_UNEMPLOYED,
- EMPLOY_LAST =EMPLOY_OTHER
- };
- //--- employment industry enumeration
- enum EnEmploymentIndustry
- {
- INDUSTRY_NONE =0, // none
- INDUSTRY_AGRICULTURE =1, // agriculture
- INDUSTRY_CONSTRUCTION =2, // construction
- INDUSTRY_MANAGEMENT =3, // management
- INDUSTRY_COMMUNICATION =4, // communication
- INDUSTRY_EDUCATION =5, // education
- INDUSTRY_GOVERNMENT =6, // government
- INDUSTRY_HEALTHCARE =7, // healthcare
- INDUSTRY_TOURISM =8, // tourism
- INDUSTRY_IT =9, // IT
- INDUSTRY_SECURITY =10, // security
- INDUSTRY_MANUFACTURING =11, // manufacturing
- INDUSTRY_MARKETING =12, // marketing
- INDUSTRY_SCIENCE =13, // science
- INDUSTRY_ENGINEERING =14, // engineering
- INDUSTRY_TRANSPORT =15, // transport
- INDUSTRY_OTHER =16, // other
- //--- enumeration borders
- INDUSTRY_FIRST =INDUSTRY_AGRICULTURE,
- INDUSTRY_LAST =INDUSTRY_OTHER
- };
- //--- education level enumeration
- enum EnEducationLevel
- {
- EDUCATION_LEVEL_NONE =0, // none
- EDUCATION_LEVEL_HIGH_SCHOOL =1, // high school
- EDUCATION_LEVEL_BACHELOR =2, // bachelor
- EDUCATION_LEVEL_MASTER =3, // master
- EDUCATION_LEVEL_PHD =4, // PhD
- EDUCATION_LEVEL_OTHER =5, // other
- //--- enumeration borders
- EDUCATION_LEVEL_FIRST =EDUCATION_LEVEL_NONE,
- EDUCATION_LEVEL_LAST =EDUCATION_LEVEL_OTHER
- };
- //--- wealth source enumeration
- enum EnWealthSource
- {
- WEALTH_SOURCE_EMPLOYMENT =0, // employment
- WEALTH_SOURCE_SAVINGS =1, // savings
- WEALTH_SOURCE_INHERITANCE =2, // inheritance
- WEALTH_SOURCE_OTHER =3, // other
- //--- enumeration borders
- WEALTH_SOURCE_FIRST =WEALTH_SOURCE_EMPLOYMENT,
- WEALTH_SOURCE_LAST =WEALTH_SOURCE_OTHER
- };
- //--- preferred communication enumeration
- enum EnPreferredCommunication
- {
- PREFERRED_COMMUNICATION_UNDEFINED =0, // undefined
- PREFERRED_COMMUNICATION_EMAIL =1, // email
- PREFERRED_COMMUNICATION_PHONE =2, // phone
- PREFERRED_COMMUNICATION_PHONE_SMS =3, // phone SMS
- PREFERRED_COMMUNICATION_MESSENGER =4, // messenger
- //--- enumeration borders
- PREFERRED_COMMUNICATION_FIRST =PREFERRED_COMMUNICATION_UNDEFINED,
- PREFERRED_COMMUNICATION_LAST =PREFERRED_COMMUNICATION_MESSENGER
- };
- //--- trading experience enumeration
- enum EnTradingExperience
- {
- EXPERIENCE_LESS_1_YEAR =0, // less than 1 year
- EXPERIENCE_1_3_YEAR =1, // 1 to 3 years
- EXPERIENCE_ABOVE_3_YEAR =2, // above 3 years
- //--- enumeration borders
- EXPERIENCE_FIRST =EXPERIENCE_LESS_1_YEAR,
- EXPERIENCE_LAST =EXPERIENCE_ABOVE_3_YEAR
- };
- public:
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTDatasetField *field)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- field id, EnFieldId
- virtual UINT Id(void) const=0;
- virtual MTAPIRES Id(const UINT id)=0;
- //--- type, EnFieldType
- virtual UINT Type(void) const=0;
- //--- offset in bytes
- virtual UINT Offset(void) const=0;
- virtual MTAPIRES Offset(const UINT offset)=0;
- //--- size in bytes
- virtual UINT Size(void) const=0;
- virtual MTAPIRES Size(const UINT size)=0;
- //--- flags, EnFieldFlags
- virtual UINT64 Flags(void) const=0;
- virtual MTAPIRES Flags(const UINT64 flags)=0;
- //--- reserverd properites methods
- virtual MTAPIRES Reserved1(void)=0;
- virtual MTAPIRES Reserved2(void)=0;
- virtual MTAPIRES Reserved3(void)=0;
- virtual MTAPIRES Reserved4(void)=0;
- //--- add where value(s)
- virtual MTAPIRES WhereAddInt(const INT64 value)=0;
- virtual MTAPIRES WhereAddIntArray(const INT64 *values,const UINT values_total)=0;
- virtual MTAPIRES WhereAddUInt(const UINT64 value)=0;
- virtual MTAPIRES WhereAddUIntArray(const UINT64 *values,const UINT values_total)=0;
- virtual MTAPIRES WhereAddDouble(const double value)=0;
- virtual MTAPIRES WhereAddDoubleArray(const double *values,const UINT values_total)=0;
- virtual MTAPIRES WhereAddString(LPCWSTR value)=0;
- virtual MTAPIRES WhereAddStringArray(LPCWSTR *values,const UINT values_total)=0;
- //--- reserverd where methods
- virtual MTAPIRES WhereReserved1(void)=0;
- virtual MTAPIRES WhereReserved2(void)=0;
- virtual MTAPIRES WhereReserved3(void)=0;
- virtual MTAPIRES WhereReserved4(void)=0;
- //--- between values int
- virtual MTAPIRES BetweenInt(const INT64 from,const INT64 to)=0;
- virtual MTAPIRES BetweenUInt(const UINT64 from,const UINT64 to)=0;
- virtual MTAPIRES BetweenDouble(const double from,const double to)=0;
- //--- reserverd between methods
- virtual MTAPIRES BetweenReserved1(void)=0;
- virtual MTAPIRES BetweenReserved2(void)=0;
- virtual MTAPIRES BetweenReserved3(void)=0;
- virtual MTAPIRES BetweenReserved4(void)=0;
- };
- //+------------------------------------------------------------------+
- //| Report request interface |
- //+------------------------------------------------------------------+
- class IMTDatasetRequest
- {
- public:
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTDatasetRequest *request)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- reserverd properites methods
- virtual MTAPIRES Reserved1(void)=0;
- virtual MTAPIRES Reserved2(void)=0;
- virtual MTAPIRES Reserved3(void)=0;
- virtual MTAPIRES Reserved4(void)=0;
- //--- fields
- virtual IMTDatasetField* FieldCreate(void)=0;
- virtual MTAPIRES FieldAdd(const IMTDatasetField *field)=0;
- virtual MTAPIRES FieldUpdate(const UINT pos,const IMTDatasetField *field)=0;
- virtual MTAPIRES FieldDelete(const UINT pos)=0;
- virtual MTAPIRES FieldClear(void)=0;
- virtual MTAPIRES FieldShift(const UINT pos,const int shift)=0;
- virtual UINT FieldTotal(void) const=0;
- virtual MTAPIRES FieldNext(const UINT pos,IMTDatasetField *field) const=0;
- //--- reserverd fields methods
- virtual MTAPIRES FieldReserved1(void)=0;
- virtual MTAPIRES FieldReserved2(void)=0;
- virtual MTAPIRES FieldReserved3(void)=0;
- virtual MTAPIRES FieldReserved4(void)=0;
- };
- //+------------------------------------------------------------------+
|