contactbuilder.cpp
来自「funambol window mobile客户端源代码」· C++ 代码 · 共 1,190 行 · 第 1/3 页
CPP
1,190 行
if (valueA) { delete [] valueA;}
}
else {
// Delete existing image (set stream size to 0)
hr = pContact->OpenProperty(PIMPR_PICTURE, GENERIC_READ|GENERIC_WRITE, &pStream);
if (pStream && SUCCEEDED(hr)) {
ULARGE_INTEGER size;
size.HighPart = size.LowPart = 0;
hr = pStream->SetSize(size);
hr = pStream->Commit(STGC_DEFAULT);
pStream->Release();
}
}
hr = S_OK;
finally:
if (prgPropvalPoom) {
delete [] prgPropvalPoom;
}
return hr;
}
/*
* Encode the message in base64, splitting the result in lines of 72 columns
* each.
*/
char* encodeWithSpaces(const char *msg, int len)
{
int i, step=54, dlen=0;
char* res = new char[len*3]; // b64 is 4/3, but we have also the newlines....
memset(res, 0, len*3);
res[0] = ' ';
res[1] = ' ';
res[2] = ' ';
res[3] = ' ';
char* ret = &res[4];
for(i=0; i<len; i+=step) {
if(len-i < step) {
step = len-i;
}
dlen += b64_encode(ret+dlen, (void *)(msg+i), step);
ret[dlen++]='\r';
ret[dlen++]='\n';
ret[dlen++]=' ';
ret[dlen++]=' ';
ret[dlen++]=' ';
ret[dlen++]=' ';
}
// Terminate the string
ret[dlen]=0;
int ll = strlen(res);
return res;
}
char* loadFromFileAndConvert(const char *filename, const char *encoding)
{
char *msg = 0;
bool binary = true;
size_t msglen=0;
char *ret = 0;
if(!filename)
return 0;
if( strcmp(encoding, "base64") == 0 ) {
binary = true;
}
// Read file
if(!readFile(filename, &msg, &msglen, binary))
return 0;
// Encode the file
if( strcmp(encoding, "base64") == 0 ) {
ret = encodeWithSpaces(msg, msglen);
delete [] msg;
}
return ret;
}
ArrayList* getContactProperties(){
int i = 0;
ArrayList* props = new ArrayList();
while (contactFields[i]){
Property prop;
char* field = toMultibyte(contactFields[i]);
prop.setPropName(field);
props->add(prop);
delete [] field;
i++;
}
return props;
}
ArrayList* getVCardProperties(){
ArrayList* props = new ArrayList();
Property* p = new Property();
PropParam* pp = new PropParam();
ArrayList pparams;
ArrayList valenums;
StringBuffer val;
p->setPropName("BEGIN");
val = "VCARD";
valenums.add(val);
p->setValEnums(&valenums);
props->add(*p);
valenums.clear();
p->setPropName("END");
val = "VCARD";
valenums.add(val);
p->setValEnums(&valenums);
props->add(*p);
valenums.clear();
p->setPropName("VERSION");
val = "2.1";
valenums.add(val);
p->setValEnums(&valenums);
props->add(*p);
p->setPropName("X-FUNAMBOL-ANNIVERSARY");
props->add(*p);
p->setPropName("BDAY");
props->add(*p);
p->setPropName("NOTE");
props->add(*p);
p->setPropName("TEL");
pp->setParamName("VOICE");
pparams.add(*pp);
pp->setParamName("WORK");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("ADR");
pp->setParamName("WORK");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("TEL");
pp->setParamName("WORK");
pparams.add(*pp);
pp->setParamName("FAX");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("TEL");
pp->setParamName("CAR");
pparams.add(*pp);
pp->setParamName("VOICE");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("CATEGORIES");
props->add(*p);
p->setPropName("X-FUNAMBOL-CHILDREN");
props->add(*p);
p->setPropName("TEL");
pp->setParamName("WORK");
pparams.add(*pp);
pp->setParamName("PREF");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("ORG");
props->add(*p);
p->setPropName("X-FUNAMBOL-CUSTOMERID");
props->add(*p);
p->setPropName("EMAIL");
pp->setParamName("INTERNET");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("EMAIL");
pp->setParamName("INTERNET");
pparams.add(*pp);
pp->setParamName("HOME");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("EMAIL");
pp->setParamName("INTERNET");
pparams.add(*pp);
pp->setParamName("WORK");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("ADR");
pp->setParamName("HOME");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("TEL");
pp->setParamName("HOME");
pparams.add(*pp);
pp->setParamName("FAX");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("TEL");
pp->setParamName("VOICE");
pparams.add(*pp);
pp->setParamName("HOME");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("EMAIL");
pp->setParamName("INTERNET");
pparams.add(*pp);
pp->setParamName("HOME");
pparams.add(*pp);
pp->setParamName("X-FUNAMBOL-INSTANTMESSENGER");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("TITLE");
props->add(*p);
p->setPropName("N");
props->add(*p);
p->setPropName("X-FUNAMBOL-MANAGER");
props->add(*p);
p->setPropName("TEL");
pp->setParamName("CELL");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("NICKNAME");
props->add(*p);
p->setPropName("ADR");
props->add(*p);
p->setPropName("TEL");
pp->setParamName("PAGER");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("PHOTO");
props->add(*p);
p->setPropName("TEL");
pp->setParamName("X-FUNAMBOL-RADIO");
pparams.add(*pp);
p->setPropParams(&pparams);
props->add(*p);
pparams.clear();
delete p; p = NULL;
delete pp; pp = NULL;
p = new Property();
pp = new PropParam();
p->setPropName("X-FUNAMBOL-SPOUSE");
props->add(*p);
p->setPropName("URL");
props->add(*p);
p->setPropName("X-FUNAMBOL-YOMICOMPANYNAME");
props->add(*p);
p->setPropName("X-FUNAMBOL-YOMIFIRSTNAME");
props->add(*p);
p->setPropName("X-FUNAMBOL-YOMILASTNAME");
props->add(*p);
delete p; p = NULL;
delete pp; pp = NULL;
return props;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?