⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 contactbuilder.h

📁 funambol windows mobile plugin source code, the source code is taken from the funambol site
💻 H
字号:
/*
 * 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 General Public License version 2 as
 * published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY, TITLE, NONINFRINGEMENT or FITNESS FOR A PARTICULAR
 * PURPOSE.  See the GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
 * 02111-1307  USA
 */

//
// @author Marco Magistrali
//

#ifndef INCL_CONTACT_BUILDER
    #define INCL_CONTACT_BUILDER

    #include "pimstore.h"
    #include "pim/Utils.h"
    #include "pim/crc32.h"
    #include "vocl/WinContact.h"
    #include "vocl/WinContactSIF.h"
    
    #include <string>
    using namespace std;

    // the name of the Picture property. It is Stream and not a usual String property
    // so it must be treated separately
    #define PICTURE L"Picture"


    void populateContactStringItem(wstring &contactStringItem, IContact *pContact);
    void completeContact(IContact *pContact, wchar_t * ptrData);
    long calculateContactHash (IContact* pContact);
    VObject* ContactToVObject(IContact *pContact);
    void VObjectToContact(IContact *pContact, VObject *vo);

    /*
    * Used only for Windows Mobile 5 to use newer IItem interface
    */
#if _WIN32_WCE > 0x500  
    WinContact* contactToWinContact(IItem *pContact, bool isSif);
    BOOL winContactToContact(WinContact& winC, IItem *pContact);
    long getIItemOid(IItem *pContact);

    
/*
* New method that parse a generic items (in this case contact) using
* a low level properties. It populate a WinContact object
*/
enum {
    ePIMPR_FILEAS                          ,
    ePIMPR_TITLE                           ,
    ePIMPR_FIRST_NAME                      ,
    ePIMPR_MIDDLE_NAME                     ,
    ePIMPR_LAST_NAME                       ,
    ePIMPR_SUFFIX                          ,
    ePIMPR_NICKNAME                        ,
    ePIMPR_YOMI_FIRSTNAME                  ,
    ePIMPR_YOMI_LASTNAME                   ,
    ePIMPR_YOMI_COMPANY                    ,

    ePIMPR_COMPANY_NAME                    ,
    ePIMPR_DEPARTMENT                      ,
    ePIMPR_JOB_TITLE                       ,
    ePIMPR_MANAGER                         ,
    ePIMPR_OFFICE_LOCATION                 ,
    ePIMPR_ASSISTANT_NAME                  ,
    ePIMPR_EMAIL1_ADDRESS                  ,
    ePIMPR_EMAIL2_ADDRESS                  ,
    ePIMPR_EMAIL3_ADDRESS                  ,
    ePIMPR_IM1_ADDRESS                     ,
    ePIMPR_IM2_ADDRESS                     ,
    ePIMPR_IM3_ADDRESS                     ,
    ePIMPR_MOBILE_TELEPHONE_NUMBER         ,
    ePIMPR_BUSINESS_TELEPHONE_NUMBER       ,
    ePIMPR_BUSINESS2_TELEPHONE_NUMBER      ,
    ePIMPR_HOME_TELEPHONE_NUMBER           ,
    ePIMPR_HOME2_TELEPHONE_NUMBER          ,
    ePIMPR_BUSINESS_FAX_NUMBER             ,
    ePIMPR_HOME_FAX_NUMBER                 ,
    ePIMPR_PAGER_NUMBER                    ,
    ePIMPR_CAR_TELEPHONE_NUMBER            ,
    ePIMPR_RADIO_TELEPHONE_NUMBER          ,
    ePIMPR_COMPANY_TELEPHONE_NUMBER        ,
    ePIMPR_ASSISTANT_TELEPHONE_NUMBER      ,
    //ePIMPR_SMS                             ,
    //ePIMPR_MMS                             ,
    //ePIMPR_DISPLAY_NAME                    ,
    ePIMPR_SPOUSE                          ,
    ePIMPR_CHILDREN                        ,
    ePIMPR_WEB_PAGE                        ,
    //ePIMPR_RINGTONE                        ,
    ePIMPR_CUSTOMERID                      ,
    ePIMPR_GOVERNMENTID                    ,
    //ePIMPR_ACCOUNT_NAME                    ,
    //ePIMPR_BUSINESS_ADDRESS                ,
    ePIMPR_BUSINESS_ADDRESS_STREET         ,
    ePIMPR_BUSINESS_ADDRESS_CITY           ,
    ePIMPR_BUSINESS_ADDRESS_STATE          ,
    ePIMPR_BUSINESS_ADDRESS_POSTAL_CODE    ,
    ePIMPR_BUSINESS_ADDRESS_COUNTRY        ,
    //ePIMPR_HOME_ADDRESS                    ,
    ePIMPR_HOME_ADDRESS_STREET             ,
    ePIMPR_HOME_ADDRESS_CITY               ,
    ePIMPR_HOME_ADDRESS_STATE              ,
    ePIMPR_HOME_ADDRESS_POSTAL_CODE        ,
    ePIMPR_HOME_ADDRESS_COUNTRY            ,
    //ePIMPR_OTHER_ADDRESS                   ,
    ePIMPR_OTHER_ADDRESS_STREET            ,
    ePIMPR_OTHER_ADDRESS_CITY              ,
    ePIMPR_OTHER_ADDRESS_STATE             ,
    ePIMPR_OTHER_ADDRESS_POSTAL_CODE       ,
    ePIMPR_OTHER_ADDRESS_COUNTRY           ,
    ePIMPR_BIRTHDAY                        ,
    ePIMPR_ANNIVERSARY                     ,
    //ePIMPR_SMARTPROP                       ,
    ePIMPR_PICTURE                         , 
    //ePIMPR_YOMI_FILEAS                     ,
    //ePIMPR_SIM_PHONE                       ,
    ePIMPR_CATEGORIES                      ,
    //ePIMPR_BODY_BINARY                     ,
    ePIMPR_BODY_TEXT                       ,
    NUM_COLS};

// These tags represent the message information we would like to pick up
static int cProps                = NUM_COLS;

static CEPROPID PIMPR_props [] = {    
    PIMPR_FILEAS                          ,
    PIMPR_TITLE                           ,
    PIMPR_FIRST_NAME                      ,
    PIMPR_MIDDLE_NAME                     ,
    PIMPR_LAST_NAME                       ,    
    PIMPR_SUFFIX                          ,
    PIMPR_NICKNAME                        ,
    PIMPR_YOMI_FIRSTNAME                  ,
    PIMPR_YOMI_LASTNAME                   ,
    PIMPR_YOMI_COMPANY                    ,
    PIMPR_COMPANY_NAME                    ,
    PIMPR_DEPARTMENT                      ,
    PIMPR_JOB_TITLE                       ,
    PIMPR_MANAGER                         ,
    PIMPR_OFFICE_LOCATION                 ,
    PIMPR_ASSISTANT_NAME                  ,
    PIMPR_EMAIL1_ADDRESS                  ,
    PIMPR_EMAIL2_ADDRESS                  ,
    PIMPR_EMAIL3_ADDRESS                  ,
    PIMPR_IM1_ADDRESS                     ,
    PIMPR_IM2_ADDRESS                     ,
    PIMPR_IM3_ADDRESS                     ,
    PIMPR_MOBILE_TELEPHONE_NUMBER         ,
    PIMPR_BUSINESS_TELEPHONE_NUMBER       ,
    PIMPR_BUSINESS2_TELEPHONE_NUMBER      ,
    PIMPR_HOME_TELEPHONE_NUMBER           ,
    PIMPR_HOME2_TELEPHONE_NUMBER          ,
    PIMPR_BUSINESS_FAX_NUMBER             ,
    PIMPR_HOME_FAX_NUMBER                 ,
    PIMPR_PAGER_NUMBER                    ,
    PIMPR_CAR_TELEPHONE_NUMBER            ,
    PIMPR_RADIO_TELEPHONE_NUMBER          ,
    PIMPR_COMPANY_TELEPHONE_NUMBER        ,
    PIMPR_ASSISTANT_TELEPHONE_NUMBER      ,
    //PIMPR_SMS                             ,
    //PIMPR_MMS                             ,
    //PIMPR_DISPLAY_NAME                    ,
    PIMPR_SPOUSE                          ,
    PIMPR_CHILDREN                        ,
    PIMPR_WEB_PAGE                        ,
    //PIMPR_RINGTONE                        ,
    PIMPR_CUSTOMERID                      ,
    PIMPR_GOVERNMENTID                    ,
    //PIMPR_ACCOUNT_NAME                    ,
    //PIMPR_BUSINESS_ADDRESS                ,
    PIMPR_BUSINESS_ADDRESS_STREET         ,
    PIMPR_BUSINESS_ADDRESS_CITY           ,
    PIMPR_BUSINESS_ADDRESS_STATE          ,
    PIMPR_BUSINESS_ADDRESS_POSTAL_CODE    ,
    PIMPR_BUSINESS_ADDRESS_COUNTRY        ,
    //PIMPR_HOME_ADDRESS                    ,
    PIMPR_HOME_ADDRESS_STREET             ,
    PIMPR_HOME_ADDRESS_CITY               ,
    PIMPR_HOME_ADDRESS_STATE              ,
    PIMPR_HOME_ADDRESS_POSTAL_CODE        ,
    PIMPR_HOME_ADDRESS_COUNTRY            ,
    //PIMPR_OTHER_ADDRESS                   ,
    PIMPR_OTHER_ADDRESS_STREET            ,
    PIMPR_OTHER_ADDRESS_CITY              ,
    PIMPR_OTHER_ADDRESS_STATE             ,
    PIMPR_OTHER_ADDRESS_POSTAL_CODE       ,
    PIMPR_OTHER_ADDRESS_COUNTRY           ,
    PIMPR_BIRTHDAY                        ,
    PIMPR_ANNIVERSARY                     ,
    //PIMPR_SMARTPROP                       ,
    PIMPR_PICTURE                         ,
    //PIMPR_YOMI_FILEAS                     ,
    //PIMPR_SIM_PHONE                      , 
    PIMPR_CATEGORIES                      ,
    //PIMPR_BODY_BINARY                    ,
    PIMPR_BODY_TEXT                       

};

static const wchar_t* contactFields [] = {    
    L"FileAs"                          ,
    L"Title"                           ,    
    L"FirstName"                       ,                // Returns or sets the first name for the contact.
    L"MiddleName"                     ,
    L"LastName"                       ,
    L"Suffix"                          ,
    L"NickName"                        ,
    L"YomiFirstName"                  ,
    L"YomiLastName"                   ,
    L"YomiCompanyName"                    ,
    L"CompanyName"                    ,
    L"Department"                      ,
    L"JobTitle"                       ,
    L"ManagerName"                         ,
    L"OfficeLocation"                 ,
    L"AssistantName"                  ,
    L"Email1Address"                  ,
    L"Email2Address"                  ,
    L"Email3Address"                  ,
    L"IMAddress"                     ,
    L"IM2Address"                     ,
    L"IM3Address"                     ,
    L"MobileTelephoneNumber"         ,
    L"BusinessTelephoneNumber"       ,
    L"Business2TelephoneNumber"      ,
    L"HomeTelephoneNumber"           ,
    L"Home2TelephoneNumber"          ,
    L"BusinessFaxNumber"             ,
    L"HomeFaxNumber"                 ,
    L"PagerNumber"                    ,
    L"CarTelephoneNumber"            ,
    L"RadioTelephoneNumber"          ,
    L"CompanyMainTelephoneNumber"        ,
    L"AssistantTelephoneNumber"      ,
    //PIMPR_SMS                             ,
    //PIMPR_MMS                             ,
    //PIMPR_DISPLAY_NAME                    ,
    L"Spouse"                          ,
    L"Children"                        ,
    L"WebPage"                        ,         // outlook WebPage
    //PIMPR_RINGTONE                        ,
    L"CustomerID"                      ,
    L"GovernmentIDNumber"                    ,
    //PIMPR_ACCOUNT_NAME                    ,
    //PIMPR_BUSINESS_ADDRESS                ,
    L"BusinessAddressStreet"         ,
    L"BusinessAddressCity"           ,
    L"BusinessAddressState"          ,
    L"BusinessAddressPostalCode"    ,
    L"BusinessAddressCountry"        ,
    //PIMPR_HOME_ADDRESS                    ,
    L"HomeAddressStreet"             ,
    L"HomeAddressCity"               ,
    L"HomeAddressState"              ,
    L"HomeAddressPostalCode"        ,
    L"HomeAddressCountry"            ,
    //PIMPR_OTHER_ADDRESS                   ,
    L"OtherAddressStreet"            ,
    L"OtherAddressCity"              ,
    L"OtherAddressState"             ,
    L"OtherAddressPostalCode"       ,
    L"OtherAddressCountry"           ,
    L"Birthday"                        ,
    L"Anniversary"                     ,
    //PIMPR_SMARTPROP                       ,
    L"Picture"                         ,// use this not associated to the property. ADDED MANUALLY!! PIMPR_PICTURE 
    //PIMPR_YOMI_FILEAS                     ,
    //PIMPR_SIM_PHONE                   ,
    L"Categories"                     ,
    //PIMPR_BODY_BINARY                    ,
    L"Body"                       ,
    NULL
};
#endif

#endif

⌨️ 快捷键说明

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