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

📄 contactbuilder.cpp

📁 funambol windows mobile plugin source code, the source code is taken from the funambol site
💻 CPP
📖 第 1 页 / 共 5 页
字号:
/*
 * 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
 */

#include "pim/ContactBuilder.h"
#include "pim/Utils.h"
#include "base/quoted-printable.h"
#include "base/util/utils.h"
#include "base/util/WString.h"
#include "spds/spdsutils.h"

char* loadFromFileAndConvert(const char *filename, const char *encoding);
/*
* Method to populate the contact XML structure.
* It get every property name and value and build the XML structure to exchange with server.
*
* @param contactStringItem  : the string that will contain the xml structure
* @param pAppointment       : the contact object that contain every value
*
*/

void populateContactStringItem(wstring &contactStringItem, IContact *pContact) {

    BSTR element = NULL;
    DATE date = NULL;
    wchar_t tempDate[50];
    wstring element_s;

    contactStringItem = TEXT("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
    contactStringItem += TEXT("<contact>");

    pContact->get_FirstName(&element);
    element_s.clear();
    element_s = wstring(element);
    encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<FirstName>") + element_s + TEXT("</FirstName>");
    SysFreeString(element);

    pContact->get_LastName(&element);
    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<LastName>") + element_s + TEXT("</LastName>");
    SysFreeString(element);

    pContact->get_CompanyName(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<CompanyName>") + element_s + TEXT("</CompanyName>");
    SysFreeString(element);

    pContact->get_BusinessFaxNumber(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<BusinessFaxNumber>") + element_s + TEXT("</BusinessFaxNumber>");
    SysFreeString(element);

    pContact->get_Department(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<Department>") + element_s + TEXT("</Department>");
    SysFreeString(element);

    pContact->get_Email1Address(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<Email1Address>") + element_s + TEXT("</Email1Address>");
    SysFreeString(element);

    pContact->get_MobileTelephoneNumber(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<MobileTelephoneNumber>") + element_s + TEXT("</MobileTelephoneNumber>");
    SysFreeString(element);

    pContact->get_OfficeLocation(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<OfficeLocation>") + element_s + TEXT("</OfficeLocation>");
    SysFreeString(element);

    pContact->get_PagerNumber(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<PagerNumber>") + element_s + TEXT("</PagerNumber>");
    SysFreeString(element);

    pContact->get_BusinessTelephoneNumber(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<BusinessTelephoneNumber>") + element_s + TEXT("</BusinessTelephoneNumber>");
    SysFreeString(element);

    pContact->get_JobTitle(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<JobTitle>") + element_s + TEXT("</JobTitle>");
    SysFreeString(element);

    pContact->get_HomeTelephoneNumber(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<HomeTelephoneNumber>") + element_s + TEXT("</HomeTelephoneNumber>");
    SysFreeString(element);

    pContact->get_Email2Address(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<Email2Address>") + element_s + TEXT("</Email2Address>");
    SysFreeString(element);

    pContact->get_Spouse(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<Spouse>") + element_s + TEXT("</Spouse>");
    SysFreeString(element);

    pContact->get_Email3Address(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<Email3Address>") + element_s + TEXT("</Email3Address>");
    SysFreeString(element);

    pContact->get_Home2TelephoneNumber(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<Home2TelephoneNumber>") + element_s + TEXT("</Home2TelephoneNumber>");
    SysFreeString(element);

    pContact->get_HomeFaxNumber(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<HomeFaxNumber>") + element_s + TEXT("</HomeFaxNumber>");
    SysFreeString(element);

    pContact->get_CarTelephoneNumber(&element);

    element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<CarTelephoneNumber>") + element_s + TEXT("</CarTelephoneNumber>");
    SysFreeString(element);

    pContact->get_AssistantName(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<AssistantName>") + element_s + TEXT("</AssistantName>");
    SysFreeString(element);

    pContact->get_AssistantTelephoneNumber(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<AssistantTelephoneNumber>") + element_s + TEXT("</AssistantTelephoneNumber>");
    SysFreeString(element);

    pContact->get_Children(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<Children>") + element_s + TEXT("</Children>");
    SysFreeString(element);

    pContact->get_Categories(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<Categories>") + element_s + TEXT("</Categories>");
    SysFreeString(element);

    pContact->get_WebPage(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<WebPage>") + element_s + TEXT("</WebPage>");
    SysFreeString(element);

    pContact->get_Business2TelephoneNumber(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<Business2TelephoneNumber>") + element_s + TEXT("</Business2TelephoneNumber>");
    SysFreeString(element);

    pContact->get_RadioTelephoneNumber(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<RadioTelephoneNumber>") + element_s + TEXT("</RadioTelephoneNumber>");
    SysFreeString(element);

    pContact->get_FileAs(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<FileAs>") + element_s + TEXT("</FileAs>");
    SysFreeString(element);

    pContact->get_YomiCompanyName(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<YomiCompanyName>") + element_s + TEXT("</YomiCompanyName>");
    SysFreeString(element);

    pContact->get_YomiFirstName(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<YomiFirstName>") + element_s + TEXT("</YomiFirstName>");
    SysFreeString(element);

    pContact->get_YomiLastName(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<YomiLastName>") + element_s + TEXT("</YomiLastName>");
    SysFreeString(element);

    pContact->get_Title(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<Title>") + element_s + TEXT("</Title>");
    SysFreeString(element);

    pContact->get_MiddleName(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<MiddleName>") + element_s + TEXT("</MiddleName>");
    SysFreeString(element);

    pContact->get_Suffix(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<Suffix>") + element_s + TEXT("</Suffix>");
    SysFreeString(element);

    pContact->get_HomeAddressStreet(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<HomeAddressStreet>") + element_s + TEXT("</HomeAddressStreet>");
    SysFreeString(element);

    pContact->get_HomeAddressCity(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<HomeAddressCity>") + element_s + TEXT("</HomeAddressCity>");
    SysFreeString(element);

    pContact->get_HomeAddressState(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<HomeAddressState>") + element_s + TEXT("</HomeAddressState>");
    SysFreeString(element);

    pContact->get_HomeAddressPostalCode(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<HomeAddressPostalCode>") + element_s + TEXT("</HomeAddressPostalCode>");
    SysFreeString(element);

    pContact->get_HomeAddressCountry(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<HomeAddressCountry>") + element_s + TEXT("</HomeAddressCountry>");
    SysFreeString(element);

    pContact->get_OtherAddressStreet(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<OtherAddressStreet>") + element_s + TEXT("</OtherAddressStreet>");
    SysFreeString(element);

    pContact->get_OtherAddressCity(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<OtherAddressCity>") + element_s + TEXT("</OtherAddressCity>");
    SysFreeString(element);

    pContact->get_OtherAddressPostalCode(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<OtherAddressPostalCode>") + element_s + TEXT("</OtherAddressPostalCode>");
    SysFreeString(element);

    pContact->get_OtherAddressCountry(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<OtherAddressCountry>") + element_s + TEXT("</OtherAddressCountry>");
    SysFreeString(element);

    pContact->get_OtherAddressState(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<OtherAddressState>") + element_s + TEXT("</OtherAddressState>");
    SysFreeString(element);

    pContact->get_BusinessAddressStreet(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<BusinessAddressStreet>") + element_s + TEXT("</BusinessAddressStreet>");
    SysFreeString(element);

    pContact->get_BusinessAddressCity(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<BusinessAddressCity>") + element_s + TEXT("</BusinessAddressCity>");
    SysFreeString(element);

    pContact->get_BusinessAddressState(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<BusinessAddressState>") + element_s + TEXT("</BusinessAddressState>");
    SysFreeString(element);

    pContact->get_BusinessAddressPostalCode(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<BusinessAddressPostalCode>") + element_s + TEXT("</BusinessAddressPostalCode>");
    SysFreeString(element);

    pContact->get_BusinessAddressCountry(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<BusinessAddressCountry>") + element_s + TEXT("</BusinessAddressCountry>");
    SysFreeString(element);

    pContact->get_Body(&element); element_s.clear();
    element_s = wstring(element); encodeSpecialChar(element_s);
    contactStringItem  += TEXT("<Body>") + element_s + TEXT("</Body>");
    SysFreeString(element);

    pContact->get_Birthday(&date);

    wsprintf(tempDate, TEXT(""));

    double toCompare = MAX_DATE_DOUBLE;

    if (date != toCompare) { // MAX_DATE_DOUBLE is set to 949999.00000, the nonsense value when in ppc date is not set...
        doubleToSystemTimeBirthday(tempDate, date);
        //doubleToSystemTimeHourZero(tempDate, date, TRUE);
        // doubleToSystemTime(tempDate, date);
    }
    //contactStringItem +=  TEXT("<Birthday>") + tempDate + TEXT("</Birthday>");
    contactStringItem +=  TEXT("<Birthday>");  contactStringItem += tempDate; contactStringItem += TEXT("</Birthday>");

⌨️ 快捷键说明

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