| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- //+------------------------------------------------------------------+
- //| MetaTrader 5 API |
- //| Copyright 2000-2019, MetaQuotes Software Corp. |
- //| http://www.metaquotes.net |
- //+------------------------------------------------------------------+
- #pragma once
- #include "MT5APIAttachment.h"
- //+------------------------------------------------------------------+
- //| Document record interface |
- //+------------------------------------------------------------------+
- class IMTDocument
- {
- public:
- //--- document types
- enum EnDocumentTypes
- {
- DOCUMENT_TYPE_OTHER =0, // other
- //--- ïðîñòûå êëèåíòû
- DOCUMENT_TYPE_PERSONAL_IDENTITY =1, // proof of identity
- DOCUMENT_TYPE_PERSONAL_ADDRESS =2, // proof of address
- //--- êîìïàíèè
- DOCUMENT_TYPE_REGISTERED_ADDRESS =1000, // registered address
- DOCUMENT_TYPE_DIRECTORS_PASSPORT =1001, // directors passport
- DOCUMENT_TYPE_CERTIFICATE_OF_INCORPORATION=1002, // certificate of incorporation
- DOCUMENT_TYPE_CERTIFICATE_OF_DIRECTORS =1003, // certificate of directors
- DOCUMENT_TYPE_CERTIFICATE_OF_GOOD_STANDING=1004, // certificate of good standing
- //--- enumeration borders
- DOCUMENT_TYPE_FIRST =DOCUMENT_TYPE_OTHER,
- DOCUMENT_TYPE_LAST =DOCUMENT_TYPE_CERTIFICATE_OF_GOOD_STANDING
- };
- //--- document statuses
- enum EnDocumentStatus
- {
- DOCUMENT_STATUS_NEW =0, // new
- DOCUMENT_STATUS_APPROVED =100, // approved
- DOCUMENT_STATUS_REJECTED =200, // rejected
- DOCUMENT_STATUS_ARCHIVED =300, // archived
- DOCUMENT_STATUS_DELETED =400, // deleted
- //--- enumeration borders
- DOCUMENT_STATUS_FIRST =DOCUMENT_STATUS_NEW,
- DOCUMENT_STATUS_LAST =DOCUMENT_STATUS_DELETED,
- };
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTDocument* document)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- record id
- virtual UINT64 RecordID(void) const=0;
- virtual MTAPIRES RecordID(const UINT64 record_id)=0;
- //--- related client
- virtual UINT64 RelatedClient(void) const=0;
- virtual MTAPIRES RelatedClient(const UINT64 record_id)=0;
- //--- approved date
- virtual INT64 ApprovedDate(void) const=0;
- virtual MTAPIRES ApprovedDate(const INT64 date)=0;
- //--- approved by
- virtual UINT64 ApprovedBy(void) const=0;
- virtual MTAPIRES ApprovedBy(const UINT64 manager)=0;
- //--- date issue
- virtual INT64 DateIssue(void) const=0;
- virtual MTAPIRES DateIssue(const INT64 date)=0;
- //--- date expiration
- virtual INT64 DateExpiration(void) const=0;
- virtual MTAPIRES DateExpiration(const INT64 date)=0;
- //--- document type
- virtual UINT DocumentType(void) const=0;
- virtual MTAPIRES DocumentType(const UINT type)=0;
- //--- document name
- virtual LPCWSTR DocumentName(void) const=0;
- virtual MTAPIRES DocumentName(LPCWSTR name)=0;
- //--- document comment
- virtual LPCWSTR DocumentComment(void) const=0;
- virtual MTAPIRES DocumentComment(LPCWSTR comment)=0;
- //--- document status
- virtual UINT DocumentStatus(void) const=0;
- virtual MTAPIRES DocumentStatus(const UINT status)=0;
- //--- attachments
- virtual MTAPIRES AttachmentsAdd(const IMTAttachment *attachment)=0;
- virtual MTAPIRES AttachmentsClear(void)=0;
- virtual UINT AttachmentsTotal(void) const=0;
- virtual MTAPIRES AttachmentsNext(const UINT pos,UINT64& attachment_id,MTAPISTR& attachment_name,UINT& attachment_size) const=0;
- };
- //+------------------------------------------------------------------+
- //| Document array interface |
- //+------------------------------------------------------------------+
- class IMTDocumentArray
- {
- public:
- //--- common methods
- virtual void Release(void)=0;
- virtual MTAPIRES Assign(const IMTDocumentArray* array)=0;
- virtual MTAPIRES Clear(void)=0;
- //--- add
- virtual MTAPIRES Add(IMTDocument* document)=0;
- virtual MTAPIRES AddCopy(const IMTDocument* document)=0;
- virtual MTAPIRES Add(IMTDocumentArray* array)=0;
- virtual MTAPIRES AddCopy(const IMTDocumentArray* array)=0;
- //--- delete & detach
- virtual MTAPIRES Delete(const UINT pos)=0;
- virtual IMTDocument *Detach(const UINT pos)=0;
- //--- update
- virtual MTAPIRES Update(const UINT pos,IMTDocument* document)=0;
- virtual MTAPIRES UpdateCopy(const UINT pos,const IMTDocument* document)=0;
- virtual MTAPIRES Shift(const UINT pos,const int shift)=0;
- //--- data access
- virtual UINT Total(void) const=0;
- virtual IMTDocument*Next(const UINT index) const=0;
- //--- sorting and search
- virtual MTAPIRES Sort(MTSortFunctionPtr sort_function)=0;
- virtual int Search(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchGreatOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchGreater(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchLessOrEq(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchLess(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchLeft(const void *key,MTSortFunctionPtr sort_function) const=0;
- virtual int SearchRight(const void *key,MTSortFunctionPtr sort_function) const=0;
- };
- //+------------------------------------------------------------------+
- //| Document records notification interface |
- //+------------------------------------------------------------------+
- class IMTDocumentSink
- {
- public:
- //--- events
- virtual void OnDocumentAdd(const IMTDocument* /*document*/) { }
- virtual void OnDocumentUpdate(const IMTDocument* /*document*/) { }
- virtual void OnDocumentDelete(const IMTDocument* /*document*/) { }
- };
- //+------------------------------------------------------------------+
|