mailserver2client.h

来自「funambol window mobile客户端源代码」· C头文件 代码 · 共 124 行

H
124
字号
/*
 * 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_SERVER2CLIENT
#define INCL_MAIL_SERVER2CLIENT

#include "base/fscapi.h"
#include "base/util/ArrayList.h"
#include "base/util/ArrayElement.h"
#include "pim/mail/MailInfo.h"
#include "pim/mail/MailClientData.h"
#include "pim/utils.h"
#include "spds/constants.h"
#include "spds/SyncItem.h"
#include "spds/MailMessage.h"
#include "spds/constants.h"
#include "pim/mail/MailUtils.h"

#include <mapidefs.h>
#include <mapicode.h>
#include <mapitags.h>
#include <mapix.h>
#include <mapiutil.h>
#include <cemapi.h>

/*
#define MSGFLAG_READ            ((ULONG) 0x00000001)
#define MSGFLAG_UNMODIFIED      ((ULONG) 0x00000002)
#define MSGFLAG_SUBMIT          ((ULONG) 0x00000004)
#define MSGFLAG_UNSENT          ((ULONG) 0x00000008)
#define MSGFLAG_HASATTACH       ((ULONG) 0x00000010)
#define MSGFLAG_FROMME          ((ULONG) 0x00000020)
#define MSGFLAG_ASSOCIATED      ((ULONG) 0x00000040)
#define MSGFLAG_RESEND          ((ULONG) 0x00000080)
#define MSGFLAG_RN_PENDING      ((ULONG) 0x00000100)
#define MSGFLAG_NRN_PENDING     ((ULONG) 0x00000200)
*/

class MailServer2Client{

private:
    /**
     * folder to sync.
     * It keeps a copy of folder to sync from sync source
     */
    wchar_t* server_folderToSync;

    /*
     * Avoid object copy
     */
    MailServer2Client(MailServer2Client& o);
    MailServer2Client& operator=(MailServer2Client& o);
    void bt2ft(const BasicTime& b, FILETIME& f);

public:

    MailServer2Client();
    ~MailServer2Client() ;

    void setFolderToSync(const wchar_t* t);
    const wchar_t* getFolderToSync();

    /*
     * number of folder to sync
     */
    int folderNumber;

    HRESULT SetMessageProps(IMAPISession* pSession, LPMESSAGE pmsg, MailClientData* m, BOOL onlyFlags = false);
    HRESULT SetMessageRecipients (LPMESSAGE pmsg, MailClientData* m);
    //static void AddRecipients(LPWSTR pszSrc, ULONG ulType, ADRLIST* plst, LPWSTR& pszLocalRecips, LPSPropValue& pval);
    //ULONG CountRecipsInString(LPCWSTR psz);
    HRESULT AddAttachment(LPMESSAGE pmsg, MailClientData* m);
    HRESULT AddPartialAttachments(LPMESSAGE pmsg, MailClientData* m);
    /*
    * check by message-id of the mail if already exists in the folder.
    * The message-id is a custom property into email item
    */
    wchar_t* doesMessageExist (IN const char* msgid, LPMAPIFOLDER pfldrInbox, wchar_t folder);

    // to remove: no more used
    bool messageExistInOubox_deleteIt(IMsgStore* pStore, IN const char* msgid);

    wchar_t* addMessage(MailClientData* m);
    HRESULT  updateMessage(MailClientData* m);
    HRESULT  deleteMessage(MailClientData* m);

    HRESULT deletePreviousAttachment(IMessage* pmsg);
    
};
    int sendLog();
#endif

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?