亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? contact.cpp

?? funambol windows mobile plugin source code, the source code is taken from the funambol site
?? CPP
?? 第 1 頁 / 共 4 頁
字號:
/*
 * 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 "base/fscapi.h"
#include "base/util/utils.h"
#include "vocl/vCard/Contact.h"

Contact::Contact() {
    name           = NULL;
    notes          = NULL;
    businessDetail = NULL;
    personalDetail = NULL;

    setVersion(TEXT("2.1"));
    setProdID(TEXT("VCARD"));
}

Contact::~Contact() {
    if (name) {
        delete name; name = NULL;
    }
    if (notes) {
        delete notes; notes = NULL;
    }
    if (businessDetail) {
        delete businessDetail; businessDetail = NULL;
    }
    if (personalDetail) {
        delete personalDetail; personalDetail = NULL;
    }
}

/**
 * Returns the UID of this contact
 *
 * @return the uid of this contact or NULL if not specified
 */
WCHAR* Contact::getUID(WCHAR* buf, int size) {

    if(!containsProperty(TEXT("UID")))
        return NULL;

    if (buf == NULL) {
        return (getProperty(TEXT("UID"))->getValue());
    }

    if (size >= 0) {
        wcsncpy(buf, getProperty(TEXT("UID"))->getValue(), size);
    } else {
        wcscpy(buf, getProperty(TEXT("UID"))->getValue());
    }

    return buf;
}

WCHAR* Contact::getTimezone (WCHAR* buf, int size) {

    if(!containsProperty(TEXT("TZ")))
        return NULL;

    if (buf == NULL) {
        return (getProperty(TEXT("TZ"))->getValue());
    }

    if (size >= 0) {
        wcsncpy(buf, getProperty(TEXT("TZ"))->getValue(), size);
    } else {
        wcscpy(buf, getProperty(TEXT("TZ"))->getValue());
    }

    return buf;
}

ArrayList* Contact::getNotes() {
    if(!notes) {
        for(int i = 0; i<propertiesCount();i++) {
            if(!wcscmp(getProperty(i)->getName(), TEXT("NOTE")))
                if(getProperty(i)->getValue()) {
                    vCardProperty *property = getPropertyFromVProperty(getProperty(i));
                    Note* note = new Note();
                    note->setProperty(*property);
                    if(getProperty(i)->containsParameter(TEXT("TYPE")))
                        note->setType(getProperty(i)->getParameterValue(TEXT("TYPE")));
                    if(!notes)
                        notes = new ArrayList();
                    notes->add((ArrayElement&)*note);
                }
        }
    }

    return notes;
}

void Contact::setNotes(ArrayList& list) {
	int i,m;
    if (notes) {
        notes->clear();
    } else {
        notes = new ArrayList();
    }

    Note *note = NULL;
    VProperty *vp;

    for(i = 0, m = propertiesCount();i < m;i++) {
        if(!wcscmp(getProperty(i)->getName(), TEXT("NOTE"))) {
            removeProperty(i);
            --i;
            --m;
        }
    }

    int s = list.size();
    for (i=0; i<s; ++i) {
        notes->add(*list[i]);

        note = (Note*)list[i];
        if(note->getProperty()) {
            vp = getVPropertyFromProperty(TEXT("NOTE"), note->getProperty());
            if(note->getType())
                vp->addParameter(TEXT("TYPE"), note->getType());
            insertProperty(vp);
        }
    }
}

WCHAR* Contact::getRevision (WCHAR* buf, int size) {
    if(!containsProperty(TEXT("REV")))
        return NULL;

    if (buf == NULL) {
        return (getProperty(TEXT("REV"))->getValue());
    }

    if (size >= 0) {
        wcsncpy(buf, getProperty(TEXT("REV"))->getValue(), size);
    } else {
        wcscpy(buf, getProperty(TEXT("REV"))->getValue());
    }

    return buf;
}

Name* Contact::getName () {
    if (!name) {
        if(containsProperty(TEXT("N")) && getProperty(TEXT("N"))->getValue()) {
            VProperty* vp = getProperty(TEXT("N"));

            name = new Name();
            if(vp->getPropComponent(4)) {
                vCardProperty *salutation = getPropertyFromVProperty(vp);
                salutation->setValue(vp->getPropComponent(4));
                name->setSalutation(*salutation);

                delete salutation;
            }
            if(vp->getPropComponent(2)) {
                vCardProperty *firstName = getPropertyFromVProperty(vp);
                firstName->setValue(vp->getPropComponent(2));
                name->setFirstName(*firstName);

                delete firstName;
            }
            if(vp->getPropComponent(3)) {
                vCardProperty *middleName = getPropertyFromVProperty(vp);
                middleName->setValue(vp->getPropComponent(3));
                name->setMiddleName(*middleName);

                delete middleName;
            }
            if(vp->getPropComponent(1)) {
                vCardProperty *lastName = getPropertyFromVProperty(vp);
                lastName->setValue(vp->getPropComponent(1));
                name->setLastName(*lastName);

                delete lastName;
            }
            if(vp->getPropComponent(5)) {
                vCardProperty *suffix = getPropertyFromVProperty(vp);
                suffix->setValue(vp->getPropComponent(5));
                name->setSuffix(*suffix);

                delete suffix;
            }
        }

        if(containsProperty(TEXT("FN")) && getProperty(TEXT("FN"))->getValue()) {
            if (!name)
                name = new Name();

            VProperty* vp = getProperty(TEXT("FN"));
            vCardProperty *displayName = getPropertyFromVProperty(vp);
            name->setDisplayName(*displayName);

            delete displayName;
        }

        if(containsProperty(TEXT("NICKNAME")) && getProperty(TEXT("NICKNAME"))->getValue()) {
            if (!name)
                name = new Name();

            VProperty* vp = getProperty(TEXT("NICKNAME"));
            vCardProperty *nickName = getPropertyFromVProperty(vp);
            name->setNickname(*nickName);

            delete nickName;
        }
    }
    return name;
}

void Contact::setName(Name& n) {
    if (name) delete name;

    name = n.clone();

    if (containsProperty(TEXT("N")))
        removeProperty(TEXT("N"));
    if (containsProperty(TEXT("FN")))
        removeProperty(TEXT("FN"));
    if (containsProperty(TEXT("NICKNAME")))
        removeProperty(TEXT("NICKNAME"));

    if(name) {
        WCHAR *nameProp = new WCHAR[MAX_VPROPERTY_VALUE + 1];
        wcscpy(nameProp,TEXT(""));
        if(name->getLastName())
            wcscat(nameProp,name->getLastName()->getValue());
        wcscat(nameProp,TEXT(";"));

        if(name->getFirstName())
            wcscat(nameProp,name->getFirstName()->getValue());
            wcscat(nameProp,TEXT(";"));

        if(name->getMiddleName())
            wcscat(nameProp,name->getMiddleName()->getValue());
            wcscat(nameProp,TEXT(";"));

        if(name->getSalutation())
            wcscat(nameProp,name->getSalutation()->getValue());
            wcscat(nameProp,TEXT(";"));

        if(name->getSuffix())
            wcscat(nameProp,name->getSuffix()->getValue());

        VProperty* vpName = new VProperty(TEXT("N"), nameProp);
        if(name->getFirstName()) {
            if(name->getFirstName()->getCharset())
                vpName->addParameter(TEXT("CHARSET"), name->getFirstName()->getCharset());
            if(name->getFirstName()->getEncoding())
                vpName->addParameter(TEXT("ENCODING"), name->getFirstName()->getEncoding());
            if(name->getFirstName()->getLanguage())
                vpName->addParameter(TEXT("LANGUAGE"), name->getFirstName()->getLanguage());
        }
        insertProperty(vpName);

        if(name->getDisplayName()) {
            VProperty* vpDisplayName = getVPropertyFromProperty(TEXT("FN"), name->getDisplayName());
            insertProperty(vpDisplayName);
        }
        if(name->getNickname()) {
            VProperty* vpNickName = getVPropertyFromProperty(TEXT("NICKNAME"), name->getNickname());
            insertProperty(vpNickName);
        }
    }
}

BusinessDetail* Contact::getBusinessDetail () {
    if(!businessDetail) {
        WCHAR* titles[MAX_TITLES];
        int titlesIndex = 0;
        ArrayList* phones = NULL;
        ArrayList* emails = NULL;
        ArrayList* webPages = NULL;
        ContactDetail* contactDetail = NULL;
        Address* adr = NULL;

        for(int i = 0; i<propertiesCount();i++) {
            if(!wcscmp(getProperty(i)->getName(), TEXT("ADR")) && getProperty(i)->isType(TEXT("WORK")))
                if(getProperty(i)->getValue()) {
                    adr = composeAddress(getProperty(i), BUSINESS);
                    if(!businessDetail)
                        businessDetail = new BusinessDetail();

                    businessDetail->setAddress(*adr);

                    delete adr;
                }
            if(!wcscmp(getProperty(i)->getName(), TEXT("LABEL")) && getProperty(i)->isType(TEXT("WORK")))
                if(getProperty(i)->getValue()) {
                    adr = addLabelAddress(getProperty(i), BUSINESS);

                    if(!businessDetail)
                        businessDetail = new BusinessDetail();

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产精品精华液ab| 欧美日韩国产精品成人| 国产日韩欧美a| 国产99久久久国产精品| 国产女人18毛片水真多成人如厕 | 精品黑人一区二区三区久久| 免费的成人av| 国产日韩视频一区二区三区| 国产精品亚洲午夜一区二区三区 | 国产精品麻豆久久久| 成人免费视频免费观看| 亚洲三级久久久| 欧美日韩三级在线| 久久精品免费观看| 国产精品素人视频| 欧美另类z0zxhd电影| 久久精品国产99| 国产精品卡一卡二卡三| 在线观看亚洲a| 久久99国产精品久久| 国产欧美精品日韩区二区麻豆天美| 91蜜桃视频在线| 青青草国产精品97视觉盛宴| 久久久久亚洲蜜桃| 色综合久久中文综合久久牛| 无码av中文一区二区三区桃花岛| 精品理论电影在线观看| 99久久777色| 久久成人羞羞网站| 亚洲欧洲综合另类| 欧美成人高清电影在线| 91麻豆swag| 国产一区二区三区黄视频| 亚洲天堂免费看| 精品国产免费视频| 欧美亚洲一区三区| 成人app在线| 美女一区二区视频| 亚洲欧美日韩国产另类专区| 日韩欧美区一区二| 欧美在线|欧美| 国产精品1区2区3区| 亚洲韩国一区二区三区| 国产午夜一区二区三区| 在线观看日韩毛片| 国产精品99久久久久| 午夜欧美视频在线观看| 欧美激情一区二区三区蜜桃视频 | 91福利视频网站| 免费视频最近日韩| 夜夜嗨av一区二区三区中文字幕| 久久综合色之久久综合| 欧美二区在线观看| 欧美性大战久久久| 色婷婷狠狠综合| 成人激情黄色小说| 国产精品综合一区二区三区| 免费高清在线视频一区·| 亚洲综合男人的天堂| 亚洲欧洲av另类| 国产婷婷一区二区| 久久五月婷婷丁香社区| 欧美老女人在线| 欧美日韩在线三级| 欧亚洲嫩模精品一区三区| 成人福利在线看| 国产.精品.日韩.另类.中文.在线.播放| 免费高清在线视频一区·| 亚洲v中文字幕| 亚洲成a人片在线不卡一二三区| 亚洲精品网站在线观看| 中文字幕在线不卡一区 | 在线精品视频免费播放| 99久久精品国产一区二区三区| 成人免费看视频| 不卡欧美aaaaa| gogo大胆日本视频一区| 成人av在线播放网站| 成年人网站91| 91女神在线视频| 色综合视频在线观看| 在线观看免费亚洲| 欧美日韩国产首页在线观看| 欧洲一区在线观看| 欧美日韩在线不卡| 678五月天丁香亚洲综合网| 91精品一区二区三区在线观看| 精品视频1区2区| 日韩一区二区在线观看视频 | 亚洲国产毛片aaaaa无费看 | 国产一区二区三区不卡在线观看 | 亚洲国产精品一区二区久久恐怖片 | 欧美极品另类videosde| 日本一区二区三区四区 | 欧美日韩国产中文| 欧美一区日韩一区| 国产午夜精品福利| 中文字幕一区二区三区视频| 亚洲欧美日韩在线不卡| 午夜精品久久久久久不卡8050| 日本欧美一区二区在线观看| 九色porny丨国产精品| 成人网页在线观看| 在线视频观看一区| 欧美成人精品1314www| 国产三区在线成人av| 亚洲精品乱码久久久久久久久| 亚洲成人av电影| 国产自产视频一区二区三区| 成人国产精品免费观看视频| 日本精品一区二区三区高清| 欧美性大战xxxxx久久久| 精品国产亚洲在线| 中文字幕日韩av资源站| 亚洲国产成人av| 国产成人av一区| 欧美三级视频在线| 久久久一区二区三区| 一区二区三区影院| 免费在线成人网| 91麻豆国产自产在线观看| 欧美日韩一级视频| 亚洲国产成人自拍| 麻豆精品精品国产自在97香蕉| www.亚洲在线| 精品久久久久久最新网址| 亚洲免费色视频| 国产91综合网| 日韩美女一区二区三区四区| 亚洲人被黑人高潮完整版| 久久99久久久久| 欧美三级三级三级爽爽爽| 亚洲国产精品99久久久久久久久| 日韩成人午夜电影| 色播五月激情综合网| 国产喂奶挤奶一区二区三区| 午夜精品视频一区| 在线观看一区二区视频| 中文在线免费一区三区高中清不卡| 视频精品一区二区| 日本电影亚洲天堂一区| 欧美激情一区在线观看| 黄色小说综合网站| 91精品国产欧美一区二区| 亚洲精品va在线观看| 成人深夜在线观看| 精品第一国产综合精品aⅴ| 亚洲.国产.中文慕字在线| 91一区一区三区| 亚洲欧洲韩国日本视频| 国产成人福利片| 久久久噜噜噜久久中文字幕色伊伊| 午夜电影网一区| 欧美日韩一区二区三区在线看| 尤物视频一区二区| 色女孩综合影院| 一区二区三区在线看| 日本大香伊一区二区三区| 国产精品久久久久久久久免费樱桃 | 中文字幕国产精品一区二区| 精品一区二区三区久久久| 7777女厕盗摄久久久| 婷婷开心激情综合| 欧美日韩一区小说| 日韩av电影免费观看高清完整版| 在线免费观看日本一区| 亚洲婷婷综合久久一本伊一区| 不卡一二三区首页| 中文字幕高清不卡| 99r国产精品| 一区二区三区四区高清精品免费观看| 99综合影院在线| 亚洲综合清纯丝袜自拍| 欧美三级欧美一级| 日韩国产精品久久久| 日韩欧美一区二区久久婷婷| 七七婷婷婷婷精品国产| 欧美电影免费观看高清完整版在线 | 亚洲男人电影天堂| 色哟哟一区二区在线观看| 亚洲另类中文字| 欧美性猛交一区二区三区精品 | 国产欧美精品一区aⅴ影院 | 欧美精品一卡二卡| 美女性感视频久久| 国产三级精品在线| 色偷偷一区二区三区| 亚洲国产日韩一区二区| 日韩欧美国产精品一区| 国产精品996| 亚洲精品水蜜桃| 日韩一区二区三区电影在线观看| 国产一二精品视频| 国产精品网站在线播放| 91在线porny国产在线看| 亚洲午夜久久久久久久久电影院 | 欧美在线播放高清精品| 美女视频黄 久久| 国产精品美女久久久久久久网站| 91美女在线看|