1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- #ifndef __DAGENT_ARCHIVE_H
- #define __DAGENT_ARCHIVE_H
- #include <kopano/zcdefs.h>
- #include <mapidefs.h>
- #include <mapix.h>
- #include <kopano/mapi_ptr.h>
- #include <list>
- #include <memory>
- class ArchiveResult _kc_final {
- public:
- void AddMessage(MessagePtr ptrMessage);
- void Undo(IMAPISession *lpSession);
- private:
- std::list<MessagePtr> m_lstMessages;
- };
- class Archive;
- typedef std::unique_ptr<Archive> ArchivePtr;
- class Archive _kc_final {
- public:
- static HRESULT Create(IMAPISession *, ArchivePtr *);
- HRESULT HrArchiveMessageForDelivery(IMessage *lpMessage);
- HRESULT HrArchiveMessageForSending(IMessage *lpMessage, ArchiveResult *lpResult);
- bool HaveErrorMessage() const { return !m_strErrorMessage.empty(); }
- LPCTSTR GetErrorMessage() const { return m_strErrorMessage.c_str(); }
- private:
- Archive(IMAPISession *);
- void SetErrorMessage(HRESULT hr, LPCTSTR lpszMessage);
-
- Archive(const Archive &) = delete;
- Archive &operator=(const Archive &) = delete;
- MAPISessionPtr m_ptrSession;
- tstring m_strErrorMessage;
- };
- #endif
|