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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vcardconverter.cpp

?? funambol windows mobile plugin source code, the source code is taken from the funambol site
?? 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
 */

/**
 * This program reads one vcard from the file
 * given as first parameter and applies certain
 * conversions to it.
 *
 * The content of the file has to be ASCII or
 * UTF-8 encoded.
 */

#include <stdio.h>
#include <memory>

#include "vocl/VConverter.h"
#include "vocl/vCard/vCardConverter.h"
#include "base/util/utils.h"
#include "base/util/WString.h"

// very simply auto_ptr for arrays
template <class T> class auto_array {
    T *m_array;
  public:
    auto_array(T *array = 0) : m_array(array) {}
    ~auto_array() { if (m_array) delete [] m_array; }

    void operator = (T *array) {
        if (m_array) delete [] m_array;
        m_array = array;
    }
    operator T * () { return m_array; }
    T *get() { return m_array; }
    T &operator [] (int index) { return m_array[index]; }
};

int main( int argc, char **argv )
{
    WCHAR *sep = TEXT("--------------- %s -----------------------\n");
    WCHAR *sep2 = TEXT("-----------------------------------------------------------\n");

    if (argc != 2) {
        fprintf(stdout, "usage: %s <vcard file>\n", argv[0]);
        return 1;
    }

    // read as char *
    char *buffer;
    size_t len;
    if (!readFile(argv[1], &buffer, &len, true)) {
        fprintf(stdout, "%s: reading failed", argv[1]);
    }
    auto_array<char> vcard(buffer);

    // convert to WCHAR
    auto_array<WCHAR> wvcard(toWideChar(vcard));
    fwprintf(stdout, sep, TEXT("original vcard"));
    fwprintf(stdout, TEXT("%s\n"), wvcard.get());
    fwprintf(stdout, sep2);
    fwprintf(stdout, TEXT("\n"));

    // parse it
    std::auto_ptr<VObject> vobj(VConverter::parse(wvcard));
    if (vobj.get() == 0) {
        fprintf(stdout, "VConverter::parse()failed\n");
        return 1;
    }
    vobj->toNativeEncoding();

    VProperty *fileas = vobj->getProperty(TEXT("X-EVOLUTION-FILE-AS"));
    VProperty *n = vobj->getProperty(TEXT("FN"));
    fwprintf(stdout,
             TEXT("version: %s\nprodid: %s\nfull name: %s\nfile-as: %s\n\n"),
             vobj->getVersion(),
             vobj->getProdID(),
             n ? n->getValue() : TEXT("<not set>"),
             fileas ? fileas->getValue() : TEXT("<not set>"));

    // convert into the other version, then back again
    WCHAR *versions[2];
    if (!wcscmp(vobj->getVersion(), TEXT("3.0"))) {
        versions[0] = TEXT("2.1");
        versions[1] = TEXT("3.0");
    } else {
        versions[0] = TEXT("3.0");
        versions[1] = TEXT("2.1");
    }
    for (int index = 0; index < 2; index++) {
        vobj->setVersion(versions[index]);
        VProperty *vprop = vobj->getProperty(TEXT("VERSION"));

        for (int property = vobj->propertiesCount() - 1;
             property >= 0;
             property--) {
            VProperty *vprop = vobj->getProperty(property);

            // replace 3.0 ENCODING=B with 2.1 ENCODING=BASE64 and vice versa
            WCHAR *encoding = vprop->getParameterValue(TEXT("ENCODING"));
            if (encoding &&
                (!wcsicmp(TEXT("B"), encoding) || !wcsicmp(TEXT("BASE64"), encoding))) {
                vprop->removeParameter(TEXT("ENCODING"));
                vprop->addParameter(TEXT("ENCODING"),
                                    !wcscmp(versions[index], TEXT("2.1")) ?
                                    TEXT("BASE64") : TEXT("b"));
            }
        }

        vprop->setValue(versions[index]);
        vobj->fromNativeEncoding();
        wvcard = vobj->toString();
        vobj->toNativeEncoding();
        fwprintf(stdout, sep, versions[index]);
        fwprintf(stdout, TEXT("%s\n"), wvcard.get());
        fwprintf(stdout, sep2);
        fwprintf(stdout, TEXT("\n"));
    }

    // convert into validated contact
    vCardConverter converter;
    converter.setSource(wvcard);
    Contact *contactPtr;
    long errorCode;
    WString error;
    if (!converter.convert(error, &errorCode)) {
        fwprintf(stdout, TEXT("converter failed: %s (%ld)\n"),
                 error.c_str(), errorCode);
        return 1;
    }
    converter.getContact(&contactPtr);
    std::auto_ptr<Contact> contact(contactPtr);
    wvcard = contact->toString();

    fwprintf(stdout, sep, TEXT("after parsing"));
    fwprintf(stdout, TEXT("%s\n"), wvcard.get());
    fwprintf(stdout, sep2);
    fwprintf(stdout, TEXT("\n"));

    // let's see how the Contact class interprets the properties
    Name *name = contact->getName();
    vCardProperty *displayname = name->getDisplayName();
    fwprintf(stdout,
             TEXT("display name\nencoding: %s\ncharset: %s\nlanguage: %s\nvalue: %s\n\n"),
             displayname->getEncoding(),
             displayname->getCharset(),
             displayname->getLanguage(),
             displayname->getValue());

    return 0;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产一区二区三区不卡| 日韩国产一二三区| 一级日本不卡的影视| 捆绑变态av一区二区三区| 91在线观看地址| 精品国产乱码久久久久久久久| 一区二区欧美精品| 成人激情免费视频| 精品国产乱码久久久久久浪潮| 亚洲国产日韩精品| av在线不卡电影| 久久免费午夜影院| 偷拍一区二区三区四区| 色综合视频一区二区三区高清| 久久综合九色综合97婷婷女人| 亚洲va欧美va国产va天堂影院| 91视视频在线观看入口直接观看www| 精品电影一区二区| 九九国产精品视频| 91精品国产91久久综合桃花| 亚洲国产日韩a在线播放性色| 91视视频在线观看入口直接观看www| 久久久久99精品国产片| 国产美女在线观看一区| 精品美女在线播放| 韩国欧美国产1区| ww亚洲ww在线观看国产| 激情偷乱视频一区二区三区| 日韩欧美在线一区二区三区| 天天色天天操综合| 91精品久久久久久蜜臀| 青娱乐精品视频在线| 欧美美女喷水视频| 青草av.久久免费一区| 精品久久久三级丝袜| 玖玖九九国产精品| 337p粉嫩大胆色噜噜噜噜亚洲| 免费人成网站在线观看欧美高清| 欧美日韩dvd在线观看| 天天色图综合网| 日韩欧美在线观看一区二区三区| 蜜乳av一区二区| 欧美精品一级二级| 久久99国内精品| 欧美激情一区二区在线| 91免费版pro下载短视频| 亚洲一区二区三区四区不卡| 欧美人妇做爰xxxⅹ性高电影 | 欧美系列日韩一区| 午夜精品123| 2020国产精品| 91免费观看国产| 欧美96一区二区免费视频| 国产欧美在线观看一区| 色琪琪一区二区三区亚洲区| 亚洲成人免费在线| 2020国产精品久久精品美国| av在线播放一区二区三区| 亚洲一区二区三区四区的| 欧美videos大乳护士334| 国产99久久久国产精品潘金 | 99视频精品全部免费在线| 亚洲午夜羞羞片| 久久人人97超碰com| 一本色道综合亚洲| 激情文学综合丁香| 亚洲制服欧美中文字幕中文字幕| 日韩精品一区在线| 在线视频亚洲一区| 国产毛片精品国产一区二区三区| 亚洲欧美日韩一区二区| 日韩亚洲国产中文字幕欧美| 不卡av在线网| 日本欧美肥老太交大片| 亚洲视频每日更新| 精品久久久久久无| 在线观看免费一区| 国产a视频精品免费观看| 日韩精品欧美成人高清一区二区| 欧美国产精品一区二区| 日韩欧美一二区| 欧美午夜视频网站| 91亚洲资源网| 国产精品自拍一区| 日本欧美韩国一区三区| 亚洲激情第一区| 国产精品久久久久久久久果冻传媒| 欧美二区在线观看| 91丝袜美腿高跟国产极品老师| 九九视频精品免费| 视频在线观看一区| 亚洲综合图片区| 国产精品免费av| 国产亚洲欧美中文| 久久久五月婷婷| 精品久久久网站| 日韩一级黄色片| 欧美疯狂性受xxxxx喷水图片| 91国偷自产一区二区使用方法| 国产精品亚洲一区二区三区在线 | 欧美一区二区三区小说| 欧美做爰猛烈大尺度电影无法无天| 国产黄色成人av| 国产原创一区二区| 韩国欧美国产一区| 国产美女视频91| 国产精品一区二区无线| 国产在线观看免费一区| 精久久久久久久久久久| 日本亚洲视频在线| 美日韩黄色大片| 美女mm1313爽爽久久久蜜臀| 免费成人美女在线观看.| 蜜臀va亚洲va欧美va天堂| 日韩电影免费在线观看网站| 日韩中文字幕一区二区三区| 亚洲午夜羞羞片| 日韩精品福利网| 麻豆极品一区二区三区| 激情综合网最新| 国产乱色国产精品免费视频| 国产精品18久久久久久vr | 蜜臀av一区二区| 国产一区视频网站| 丁香另类激情小说| 一本一本久久a久久精品综合麻豆| 色狠狠桃花综合| 欧美无乱码久久久免费午夜一区| 欧美日韩国产综合一区二区三区| 91精品国产手机| 亚洲精品一区二区三区影院| 国产欧美精品日韩区二区麻豆天美| 国产亚洲午夜高清国产拍精品| 国产精品热久久久久夜色精品三区 | 美女一区二区视频| 国产精品99久| 欧洲精品一区二区三区在线观看| 91精品国产麻豆国产自产在线| 精品国产三级a在线观看| 久久精品视频在线看| 亚洲黄色片在线观看| 麻豆免费精品视频| 福利电影一区二区| 欧美日韩国产影片| 久久人人爽人人爽| 亚洲最色的网站| 精品一区二区三区在线观看国产 | 国产成人亚洲综合a∨婷婷| 91视视频在线观看入口直接观看www| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 欧美精品电影在线播放| 国产视频亚洲色图| 亚洲午夜视频在线观看| 国产剧情一区二区| 欧美三级在线视频| 欧美国产激情二区三区 | 亚洲精品大片www| 国内不卡的二区三区中文字幕 | 亚洲一区二区五区| 国产精品一二三四区| 欧美日韩精品一区视频| 中文子幕无线码一区tr| 美女视频一区二区| 欧美日韩精品免费| 17c精品麻豆一区二区免费| 久久精品国产亚洲高清剧情介绍 | 香港成人在线视频| 成人午夜av影视| 欧美一区二区成人6969| 亚洲免费观看在线观看| 国产成人综合精品三级| 8v天堂国产在线一区二区| 亚洲色图制服诱惑| 国产九九视频一区二区三区| 欧美色图天堂网| 亚洲欧美偷拍三级| 高清成人免费视频| 精品三级在线观看| 午夜电影网一区| 日本韩国一区二区三区| 欧美国产激情二区三区| 国产原创一区二区| 欧美一级在线免费| 午夜精品视频在线观看| heyzo一本久久综合| 久久久噜噜噜久久中文字幕色伊伊| 天天综合网天天综合色 | 成人三级伦理片| 欧美精品一区二区三区视频| 日韩精品色哟哟| 91麻豆精品国产自产在线| 亚洲图片欧美色图| 欧美日韩国产精品自在自线| 亚洲精品菠萝久久久久久久| 99久久精品免费看国产免费软件| 国产精品视频一二三区| 国产不卡免费视频| 亚洲国产电影在线观看| 成人一二三区视频| 日本一区二区三区四区|