📄 contactbuilder.cpp
字号:
/*
* 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 + -