mailclient2server.h
来自「funambol window mobile客户端源代码」· C头文件 代码 · 共 173 行
H
173 行
/*
* Funambol is a mobile platform developed by Funambol, Inc.
* Copyright (C) 2003 - 2007 Funambol, Inc.
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU Affero General Public License version 3 as published by
* the Free Software Foundation with the addition of the following permission
* added to Section 15 as permitted in Section 7(a): FOR ANY PART OF THE COVERED
* WORK IN WHICH THE COPYRIGHT IS OWNED BY FUNAMBOL, FUNAMBOL DISCLAIMS THE
* WARRANTY OF NON INFRINGEMENT OF THIRD PARTY RIGHTS.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program; if not, see http://www.gnu.org/licenses or write to
* the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
* MA 02110-1301 USA.
*
* You can contact Funambol, Inc. headquarters at 643 Bair Island Road, Suite
* 305, Redwood City, CA 94063, USA, or at email address info@funambol.com.
*
* The interactive user interfaces in modified source and object code versions
* of this program must display Appropriate Legal Notices, as required under
* Section 5 of the GNU Affero General Public License version 3.
*
* In accordance with Section 7(b) of the GNU Affero General Public License
* version 3, these Appropriate Legal Notices must retain the display of the
* "Powered by Funambol" logo. If the display of the logo is not reasonably
* feasible for technical reasons, the Appropriate Legal Notices must display
* the words "Powered by Funambol".
*/
#ifndef INCL_MAIL_CLIENT2SERVER
#define INCL_MAIL_CLIENT2SERVER
#include "base/fscapi.h"
#include "base/util/ArrayList.h"
#include "base/util/ArrayElement.h"
#include "pim/mail/MailInfo.h"
#include "pim/utils.h"
#include "pim/mail/MailUtils.h"
#include "spds/constants.h"
#include "spds/SyncItem.h"
#include "spds/MailMessage.h"
#include "pim/mail/MailClientData.h"
#include "spds/constants.h"
#include <mapidefs.h>
#include <mapicode.h>
#include <mapitags.h>
#include <mapix.h>
#include <mapiutil.h>
#include <cemapi.h>
#define ONLY_ALL_MESSAGE_LIST -1
#define CLEAR_ALL -2
class MailClient2Server{
private:
wchar_t* folderToSync;
BOOL isMailInOutbox;
/**
* Avoid object copy
*/
MailClient2Server(MailClient2Server& o);
MailClient2Server& operator=(MailClient2Server& o);
public:
/**
* Constructor: create a Container
*/
MailClient2Server();
/**
* Destructor:
*/
~MailClient2Server() ;
/**
* folder to sync. It keeps a copy of folder to sync from sync source
*/
void setFolderToSync(const wchar_t* t);
wchar_t* getFolderToSync();
void setIsMailInOutbox(BOOL value);
BOOL getIsMailInOutbox();
/*
* number of folder to sync
*/
int folderNumber;
long arrayIndex;
long elementIndex;
long allTot;
// values to decide which mail are new and which are mods (update and delete)
long allTotalUpdatedAndDeleted;
long allTotalNew;
ENTRYLIST* entryListArray; //array of ENTRYLIST
//ENTRYLIST entryList;
ENTRYLIST* newMessagesArray;
ENTRYLIST* updatedMessagesArray;
ArrayList** deletedMessagesArray;
// ENTRYLIST newMessages;
// ENTRYLIST updatedMessages;
// ArrayList* deletedMessages;
//MailMessage* mailMessage;
/*
* Function to complete the object to sync. It returns a complete object representing and email.
* The isUpdate parameter says the mailClientData to fill is an updated item. In this case it full
* completes the object only if it is Draft folder else it fills only the syncml email header info
* (currently the LastModificationTime and the read parameter)
*/
MailClientData* completeObject(IMessage* pmsg, wchar_t folder, BOOL isUpdate, BOOL keyOnly = FALSE);
// wchar_t* convertBinaryToWChar(SBinary sbEntry, wchar_t folder);
void logOff(IMAPISession* pSession);
IMAPISession* logOn();
/**
* It returns a new MailContainer object if there is. NULL if there isn't.
* Note that it returns an object created with the new operator and must be fred by the caller
*/
MailClientData* getFirstItem(BOOL keyOnly = FALSE);
MailClientData* getNextItem(BOOL keyOnly = FALSE);
MailClientData* getFirstNewItem();
MailClientData* getNextNewItem();
MailClientData* getFirstUpdatedItem();
MailClientData* getNextUpdatedItem();
MailClientData* getFirstDeletedItem();
MailClientData* getNextDeletedItem();
/*
*
*/
HRESULT setSync (int mode, const wchar_t* path);
HRESULT GetAllMessages(ENTRYLIST& entryList, LPMAPIFOLDER m_pInBoxFolder,
const wchar_t* path, wchar_t folderIdentification, bool list = false);
HRESULT GetModificatedMessages(ENTRYLIST& newMessages, ENTRYLIST& updatedMessages,
ArrayList** deletedMessages, LPMAPIFOLDER m_pInBoxFolder,
const wchar_t* path, wchar_t folderIdentification);
HRESULT GetRecipients(IMessage* pmsg, char** to, char** cc, char** bcc);
HRESULT GetBody(IMessage* pmsg, wchar_t** body);
HRESULT GetAttachments(IMessage* pmsg, MailClientData* mcd);
MailInfo* readPreviousMail(const wchar_t* path, wchar_t folderId);
void writeCurrentMails(const wchar_t* path);
HRESULT moveMessageFromOutboxToSentItemsFolder(const wchar_t* key);
};
#endif
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?