📄 contactbuilder.cpp
字号:
convertNewlines(dummyEvent_s); // BUG #1562
pContact->put_BusinessAddressStreet ((wchar_t*)dummyEvent_s.data());
delete [] dummyEvent;dummyEvent=NULL;
}
dummyEvent = getElementContent(ptrData, TEXT ("BusinessAddressCity"), NULL);
if (dummyEvent != NULL) {
dummyEvent_s = wstring(dummyEvent); decodeSpecialChar(dummyEvent_s);
pContact->put_BusinessAddressCity ((wchar_t*)dummyEvent_s.data());
delete [] dummyEvent;dummyEvent=NULL;
}
dummyEvent = getElementContent(ptrData, TEXT ("BusinessAddressState"), NULL);
if (dummyEvent != NULL) {
dummyEvent_s = wstring(dummyEvent); decodeSpecialChar(dummyEvent_s);
pContact->put_BusinessAddressState ((wchar_t*)dummyEvent_s.data());
delete [] dummyEvent;dummyEvent=NULL;
}
dummyEvent = getElementContent(ptrData, TEXT ("BusinessAddressPostalCode"), NULL);
if (dummyEvent != NULL) {
dummyEvent_s = wstring(dummyEvent); decodeSpecialChar(dummyEvent_s);
pContact->put_BusinessAddressPostalCode ((wchar_t*)dummyEvent_s.data());
delete [] dummyEvent;
}
dummyEvent = getElementContent(ptrData, TEXT ("BusinessAddressCountry"), NULL);
if (dummyEvent != NULL) {
dummyEvent_s = wstring(dummyEvent); decodeSpecialChar(dummyEvent_s);
pContact->put_BusinessAddressCountry ((wchar_t*)dummyEvent_s.data());
delete [] dummyEvent;dummyEvent=NULL;
}
dummyEvent = getElementContent(ptrData, TEXT ("Body"), NULL);
if (dummyEvent != NULL) {
dummyEvent_s = wstring(dummyEvent); decodeSpecialChar(dummyEvent_s);
convertNewlines(dummyEvent_s); // BUG #1562
pContact->put_Body ((wchar_t*)dummyEvent_s.data());
delete [] dummyEvent;dummyEvent=NULL;
}
// tipo DATE
dummyEvent = getElementContent(ptrData, TEXT ("Birthday"), NULL);
if (dummyEvent == NULL || (wcscmp(dummyEvent, TEXT("")) == 0))
pContact->put_Birthday(doubleDummy);
else {
DATE birth;
//systemTimeToDouble(dummyEvent, &birth, NULL);
systemTimeToDoubleBirthday(dummyEvent, &birth);
wsprintf(localTemp, TEXT("%f"), birth);
pContact->put_Birthday(birth);
delete [] dummyEvent;
}
if (dummyEvent) {delete [] dummyEvent; dummyEvent = NULL; }
dummyEvent = getElementContent(ptrData, TEXT ("Anniversary"), NULL);
if (dummyEvent == NULL || (wcscmp(dummyEvent, TEXT("")) == 0))
pContact->put_Anniversary(doubleDummy);
else {
DATE anny;
//systemTimeToDouble(dummyEvent, &anny, NULL);
systemTimeToDoubleBirthday(dummyEvent, &anny);
pContact->put_Anniversary(anny);
delete [] dummyEvent;
}
if (dummyEvent) {delete [] dummyEvent; dummyEvent = NULL; }
}
/*
* The method calculate the CRC hash value for the contact item.
* It create the XML structure and calculate the crc value.
* Use to compare for understand the modified value!
*
* @param pContact : the contact object that contain every value
*/
long calculateContactHash (IContact* pContact) {
wstring p;
populateContactStringItem(p, pContact);
long l = stringCrc32(p.data());
p.clear();
return l;
}
VObject* ContactToVObject(IContact *pContact) {
VObject* vo = new VObject();
VProperty* vp = NULL;
bool value_found = false;
vp = new VProperty(TEXT("BEGIN"), TEXT("VCARD"));
vo->addProperty(vp);
delete vp; vp = NULL;
vp = new VProperty(TEXT("VERSION"), TEXT("2.1"));
vo->addProperty(vp);
delete vp; vp = NULL;
BSTR element = NULL;
DATE date = NULL;
// ------- Name -------
vp = new VProperty(TEXT("N"));
pContact->get_LastName(&element);
vp->addValue(element);
pContact->get_FirstName(&element);
vp->addValue(element);
pContact->get_MiddleName(&element);
vp->addValue(element);
pContact->get_Title(&element);
vp->addValue(element);
pContact->get_Suffix(&element);
vp->addValue(element);
vo->addProperty(vp);
delete vp; vp = NULL;
// Formatted Name FN = <FileAs>
pContact->get_FileAs(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("FN"), element);
vo->addProperty(vp);
delete vp; vp = NULL;
}
// END NAME
wchar_t tempDate[50];
wsprintf(tempDate, TEXT(""));
double toCompare = MAX_DATE_DOUBLE;
pContact->get_Birthday(&date);
if(date) {
if (date != toCompare) { // MAX_DATE_DOUBLE is set to 949999.00000, the nonsense value when in ppc date is not set...
doubleToSystemTimeBirthday(tempDate, date);
}
vp = new VProperty(TEXT("BDAY"), tempDate);
vo->addProperty(vp);
delete vp; vp = NULL;
}
//Anniversary has no corespondent in the VCARD
pContact->get_BusinessFaxNumber(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("TEL"), element);
vp->addParameter(TEXT("WORK"), NULL);
vp->addParameter(TEXT("FAX"), NULL);
vo->addProperty(vp);
delete vp; vp = NULL;
}
pContact->get_CompanyName(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("ORG"), element);
vo->addProperty(vp);
delete vp; vp = NULL;
}
//Department has no corespondent in the VCARD
pContact->get_Email1Address(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("EMAIL"), element);
vp->addParameter(TEXT("INTERNET"), NULL);
vo->addProperty(vp);
delete vp; vp = NULL;
}
pContact->get_Email2Address(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("EMAIL"), element);
vp->addParameter(TEXT("INTERNET"), NULL);
vp->addParameter(TEXT("HOME"), NULL);
vo->addProperty(vp);
delete vp; vp = NULL;
}
pContact->get_Email3Address(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("EMAIL"), element);
vp->addParameter(TEXT("INTERNET"), NULL);
vp->addParameter(TEXT("WORK"), NULL);
vo->addProperty(vp);
delete vp; vp = NULL;
}
pContact->get_MobileTelephoneNumber(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("TEL"), element);
vp->addParameter(TEXT("CELL"), NULL);
vo->addProperty(vp);
delete vp; vp = NULL;
}
//OfficeLocation has no corespondent in the VCARD
pContact->get_PagerNumber(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("TEL"), element);
vp->addParameter(TEXT("PAGER"), NULL);
vo->addProperty(vp);
delete vp; vp = NULL;
}
pContact->get_BusinessTelephoneNumber(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("TEL"), element);
vp->addParameter(TEXT("WORK"), NULL);
vo->addProperty(vp);
delete vp; vp = NULL;
}
pContact->get_JobTitle(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("TITLE"), element);
vo->addProperty(vp);
delete vp; vp = NULL;
}
pContact->get_HomeTelephoneNumber(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("TEL"), element);
vp->addParameter(TEXT("HOME"), NULL);
vo->addProperty(vp);
delete vp; vp = NULL;
}
//Spouse has no corespondent in the VCARD
pContact->get_Home2TelephoneNumber(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("TEL"), element);
vp->addParameter(TEXT("HOME"), NULL);
vo->addProperty(vp);
delete vp; vp = NULL;
}
pContact->get_CarTelephoneNumber(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("TEL"), element);
vp->addParameter(TEXT("CAR"), NULL);
vo->addProperty(vp);
delete vp; vp = NULL;
}
pContact->get_HomeFaxNumber(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("TEL"), element);
vp->addParameter(TEXT("HOME"), NULL);
vp->addParameter(TEXT("FAX"), NULL);
vo->addProperty(vp);
delete vp; vp = NULL;
}
//get_AssistantName X
//get_AssistantTelephoneNumber X
//Children has no corespondent in the VCARD
pContact->get_Categories(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("CATEGORIES"), element);
vo->addProperty(vp);
delete vp; vp = NULL;
}
pContact->get_WebPage(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("URL"), element);
vo->addProperty(vp);
delete vp; vp = NULL;
}
pContact->get_Business2TelephoneNumber(&element);
if(wcscmp(element, TEXT(""))) {
vp = new VProperty(TEXT("TEL"), element);
vp->addParameter(TEXT("WORK"), NULL);
vo->addProperty(vp);
delete vp; vp = NULL;
}
//RadioTelephoneNumber has no corespondent in the VCARD
//Yomi properties have no corespondent in the VCARD
// ----- Address HOME -----
vp = new VProperty(TEXT("ADR"));
vp->addParameter(TEXT("HOME"), NULL);
value_found = false;
// First two values are empty:
// "Post Office Address" and "Extended Address" not present in SIF
vp->addValue(TEXT(""));
vp->addValue(TEXT(""));
pContact->get_HomeAddressStreet(&element);
if(wcscmp(element, TEXT("")))
value_found = true;
vp->addValue(element);
pContact->get_HomeAddressCity(&element);
if(wcscmp(element, TEXT("")))
value_found = true;
vp->addValue(element);
pContact->get_HomeAddressState(&element);
if(wcscmp(element, TEXT("")))
value_found = true;
vp->addValue(element);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -