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

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

?? clientsettings.cpp

?? funambol windows mobile plugin source code, the source code is taken from the funambol site
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
    // Copy array in a tmp buffer
    if (winSourceConfigsCount>0) {
        s = new WindowsSyncSourceConfig[winSourceConfigsCount];
        for (i=0; i<winSourceConfigsCount; i++) {
            s[i] = winSourceConfigs[i];
        }
    }

    // Delete old one, create new (+1 element)
    if (winSourceConfigs) {
        delete [] winSourceConfigs;
    }
    winSourceConfigs = new WindowsSyncSourceConfig[winSourceConfigsCount+1];

    // Copy back.
    for (i=0; i<winSourceConfigsCount; i++)
        winSourceConfigs[i] = s[i];
    // Copy the new one.
    winSourceConfigs[winSourceConfigsCount] = wsc;

    if (s) {
        delete [] s;
        s = NULL;
    }

    winSourceConfigsCount ++;
    return TRUE;
}

// ------------------------------ Other methods ----------------------------------

/*
* Returns the value of the given property, from rootKey tree (read only).
* The value is returned as a new char array and must be freed by the user.
*
* @param context      : full context of key, under rootKey
* @param propertyName : name of property to retrieve
* @param rootKey      : one of  HKEY_LOCAL_MACHINE
*                               HKEY_CLASSES_ROOT
*                               HKEY_CURRENT_USER
*                               HKEY_USERS
*                               ...
* @return             : the property value (new allocated buffer)
*                       if key not found, returns an empty string.
*/
char* ClientSettings::readPropertyValue(const char* context, const char* propertyName, HKEY rootKey) {

    DWORD res = 0;
    long  err = 0;
    ULONG dim = 0;
    HKEY  key = NULL;
    char* ret = NULL;

    char* fullContext = new char[strlen(context) + 10];
    sprintf(fullContext, "%s/%s", "Software", context);

    //RegCreateKeyExA(
    WCHAR* wideFullContext = toWideChar(fullContext);
    RegCreateKeyEx(
        rootKey,
        wideFullContext,
        0,
        NULL,
        REG_OPTION_NON_VOLATILE,
        KEY_READ,                           // Read only: could be from a limited rights user.
        NULL,
        &key,
        &res
        );

    if (key == 0) {
        lastErrorCode = ERR_INVALID_CONTEXT;
        //sprintf(lastErrorMsg, ERR_INVALID_REG_PATH, fullContext);
        goto finally;
    }

    // Get value length
    //err = RegQueryValueExA(
    WCHAR* widePropertyName = toWideChar(propertyName);
    err = RegQueryValueEx(
        key,
        widePropertyName,
        NULL,
        NULL,  // we currently support only strings
        NULL,
        &dim
        );

    if (err == ERROR_SUCCESS) {
        if (dim > 0) {
            char* buf = new char[dim + 1];

            //err = RegQueryValueExA(
            err = RegQueryValueEx(
                key,
                widePropertyName,
                NULL,
                NULL,  // we currently support only strings
                (UCHAR*)buf,
                &dim
                );
            if (err == ERROR_SUCCESS) {
                ret = stringdup(buf);
            }
            delete [] buf;
        }
    }

    finally:

    if(widePropertyName){
        delete [] widePropertyName;
        widePropertyName = NULL;
    }

    if(wideFullContext){
        delete [] wideFullContext;
        wideFullContext = NULL;
    }

    if (!ret) {
        // Always return an empty string if key not found!
        ret = stringdup(EMPTY_STRING);
    }
    if (fullContext) {
        delete [] fullContext;
    }
    if (key != 0) {
        RegCloseKey(key);
    }
    return ret;
}

void ClientSettings::readWinSourceConfig(unsigned int i) {

    char* tmp;
    if (!sourcesNode) {
        open();
    }

    ManagementNode* node = NULL;
    node = sourcesNode->getChild(i);

    if (node) {
        if (strcmp(node->getName(), "mails") == 0) {

            const char* context = NULL;
            char t[255];
            char* fn = node->createFullName();
            strcpy(t, fn);
            delete [] fn;

            context = strstr(t, node->getName());
            t[context - t - 1] = 0;

            MailSourceManagementNode* mmn = new MailSourceManagementNode(t, node->getName());

            if (mmn) {
                if (mailssconfig) {
                    delete mailssconfig;
                }
                mailssconfig = new MailSyncSourceConfig(mmn->getMailSourceConfig(true));
                delete mmn;
            }

        }

        tmp = node->readPropertyValue(PROPERTY_SOURCE_USE_SIF);
        winSourceConfigs[i].setUseSif(tmp);
        delete [] tmp;

        tmp = node->readPropertyValue(PROPERTY_SOURCE_DIR);
        winSourceConfigs[i].setSyncDir(tmp);
        delete [] tmp;

        tmp = node->readPropertyValue(PROPERTY_SCHEDULE);
        winSourceConfigs[i].setSchedule(tmp);
        delete [] tmp;

    }

}

void ClientSettings::refreshIP(){

    // get IP
    checkNetwork();
    setIp(getLocalAddress());
}

void ClientSettings::setDirty(int flag){
    dirty |= flag;
}

/*
BOOL ClientSettings::readConfigSources(const char* sourceType, BOOL toClose) {

    int n = 0, i = 0; // number of sync sources

    BOOL ret = FALSE;
    ManagementNode* nn = NULL;

    if (!open()) {
        return FALSE;
    }

    n = sourcesNode->getChildrenMaxCount();

    //
    // Let's remove previously created config objects and reinitialize
    // sourceConfigs
    //
    if (sourceConfigs) {
        delete [] sourceConfigs;
    }
    sourceConfigs = new SyncSourceConfig[n];
    sourceConfigsCount = n;

    for (i=0; i<n; ++i) {
        // node owns children, we must not delete them
        readSourceConfig(i, *(sourcesNode) );
    }

    if (sourceType && strcmp(sourceType, "all") == 0) {
         if (toClose)
            close();
        return true;
    }

    for (unsigned int i=0; i<sourceConfigsCount; ++i) {
        if (strcmp(sourceConfigs[i].getName(), sourceType) == 0) {
            ssconfig.assign(sourceConfigs[i]);
            nn = sourcesNode->getChild(i);
            break;
        }
    }

    char* tmp;

    // TODO: this method is used in ClientSettings for "mail" to init mailssconfig, but seems not used anywhere else,
    // so the code for the other sources below should be removed
    if (strcmp(sourceType, "contact") == 0) {

        tmp = nn->readPropertyValue(PROPERTY_SOURCE_USE_SIF);
        //~setUseSif(string(tmp));
        delete [] tmp;
        tmp = nn->readPropertyValue(PROPERTY_SCHEDULE);
        //~setSchedule(string(tmp));
        delete [] tmp;
    } else if (strcmp(sourceType, "calendar") == 0) {

        tmp = nn->readPropertyValue(PROPERTY_SOURCE_USE_SIF);
        //~setUseSif(string(tmp));
        delete [] tmp;
        tmp = nn->readPropertyValue(PROPERTY_SCHEDULE);
        //~setSchedule(string(tmp));
        delete [] tmp;
    } else if (strcmp(sourceType, "task") == 0) {

        tmp = nn->readPropertyValue(PROPERTY_SOURCE_USE_SIF);
        //~setUseSif(string(tmp));
        delete [] tmp;
        tmp = nn->readPropertyValue(PROPERTY_SCHEDULE);
        //~setSchedule(string(tmp));
        delete [] tmp;
    } else if (strcmp(sourceType, "briefcase") == 0) {

        tmp = nn->readPropertyValue(PROPERTY_SOURCE_DIR);
        setDir(string(tmp));
        delete [] tmp;
         tmp = nn->readPropertyValue(PROPERTY_SCHEDULE);
        //~setSchedule(string(tmp));
        delete [] tmp;
    } else if (strcmp(sourceType, "note") == 0) {

        tmp = nn->readPropertyValue(PROPERTY_SOURCE_DIR);
        setDir(string(tmp));
        delete [] tmp;
        tmp = nn->readPropertyValue(PROPERTY_SCHEDULE);
        //~setSchedule(string(tmp));
        delete [] tmp;
    } else if (strcmp(sourceType, "mail") == 0) {
        const char* context = NULL;
        char t[255];
        char* fn = nn->createFullName();
        strcpy(t, fn);
        delete [] fn;

        context = strstr(t, nn->getName());
        t[context - t - 1] = 0;

        MailSourceManagementNode* mmn = new MailSourceManagementNode(t, nn->getName());

        mailssconfig = mmn->getMailSourceConfig(true);

        if (mmn) {
            delete mmn;
        }

    }
    ret = TRUE;

    if (toClose)
        close();

    return ret;

}
*/
/*
// TODO: called only for "mail", the other sources could be removed if not needed anymore
BOOL ClientSettings::saveConfigSources(const char* saveAll) {

    ManagementNode* nn;

    // to save all the sources config. It is used by the form
    // in which there are all the sources whith the list of the sync property
    // and to reset the last timestamp in the recover form. it is set to 1
    //

    if (saveAll && strcmp(saveAll, "all") == 0) {

        for (unsigned int i=0; i<sourceConfigsCount; ++i) {

            nn = sourcesNode->getChild(i);
            saveSourceConfig(i, *sourcesNode, *nn);

        }
        close();
        return true;
    }


    for (unsigned int i=0; i<sourceConfigsCount; ++i) {

        if (strcmp(sourceConfigs[i].getName(), ssconfig.getName()) == 0) {
            nn = sourcesNode->getChild(i);
            break;
        }
    }

    if (strcmp(ssconfig.getName(), "contact")  == 0 ||
        strcmp(ssconfig.getName(), "calendar") == 0 ||
        strcmp(ssconfig.getName(), "task")  == 0) {

        if(strcmp(ssconfig.getEncryption(), "0") != 0 || strcmp(ssconfig.getName(), "note") == 0) {
            nn->setPropertyValue(PROPERTY_SOURCE_ENCODING, "b64");
        } else {
            nn->setPropertyValue(PROPERTY_SOURCE_ENCODING, "bin");
        }
        //nn->setPropertyValue(PROPERTY_SOURCE_ENCODING, ssconfig.getEncoding());

    } else if (strcmp(ssconfig.getName(), "mail") == 0) {

        //setMailSourceConfig(mailssconfig, nn);

        const char* context = NULL;
        char* tt = nn->createFullName();
        char t[255];
        strcpy(t, tt);
        context = strstr(t, nn->getName());
        t[context - t - 1] = 0;

        MailSourceManagementNode* mmn = new MailSourceManagementNode(t, nn->getName());

        if(strcmp(mailssconfig.getEncryption(), "0") != 0) {
            mailssconfig.setEncoding("b64");
        } else {
            mailssconfig.setEncoding("bin");
        }

        //mmn->setMailSourceConfig(mailssconfig);
        if (tt) { delete [] tt; }
        if (mmn){ delete [] mmn;}

    }

    close();
    return TRUE;

}
*/

/**
* Reads all sources timestamps from win registry and set
* all values into configuration.

void ClientSettings::readSourcesTimestamps() {

    if (!open()) {
        return;
    }

    for (unsigned int i=0; i<sourceConfigsCount; i++) {
        ManagementNode* node = sourcesNode->getChild(i);
        if (node) {
            // This sets only variables that the library uses internally, like anchors
            readSourceVars(i, *sourcesNode, *node);
        }
    }

    close();
}
*/

/**
* Reads only "sync" properties of each source, to win registry.

void ClientSettings::readSyncModes() {

    if (!open()) {
        return;
    }

    for (unsigned int i=0; i<sourceConfigsCount; i++) {
        ManagementNode* node = sourcesNode->getChild(i);
        if (node) {
            winSourceConfigs[i].setSync(node->readPropertyValue(PROPERTY_SOURCE_SYNC));
        }
    }

    close();
}
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区久久悠悠色av| 中文字幕乱码久久午夜不卡| 精品亚洲成a人在线观看| 国产精品私人影院| 在线不卡免费av| 成人v精品蜜桃久久一区| 日本aⅴ精品一区二区三区| 国产精品国产三级国产普通话99| 制服.丝袜.亚洲.中文.综合| 成人a区在线观看| 久久91精品久久久久久秒播| 亚洲精品ww久久久久久p站| 久久久久久久久蜜桃| 欧美日韩免费一区二区三区视频| 成人免费视频网站在线观看| 蜜桃精品视频在线| 一区二区三区国产精华| 中文字幕第一页久久| 欧美v日韩v国产v| 欧美喷潮久久久xxxxx| 99精品久久只有精品| 国产精品一区二区在线看| 视频一区视频二区中文| 亚洲黄色免费电影| 中文字幕亚洲在| 欧美激情综合五月色丁香小说| 日韩一级成人av| 欧美日韩国产在线观看| 色嗨嗨av一区二区三区| 成人av在线观| 成人午夜碰碰视频| 大胆欧美人体老妇| 国产成人精品一区二区三区四区| 麻豆久久久久久久| 久久疯狂做爰流白浆xx| 秋霞av亚洲一区二区三| 日韩中文欧美在线| 日韩黄色免费电影| 亚洲第一av色| 亚欧色一区w666天堂| 亚洲高清视频中文字幕| 亚洲综合无码一区二区| 亚洲图片自拍偷拍| 亚洲国产欧美在线人成| 亚洲一区二区精品3399| 亚洲电影一区二区三区| 亚洲制服欧美中文字幕中文字幕| 亚洲美女免费视频| 亚洲精品乱码久久久久久久久| 樱桃视频在线观看一区| 亚洲成av人在线观看| 五月综合激情网| 免费成人美女在线观看.| 美女免费视频一区二区| 国产精品一区二区久久不卡| 国产aⅴ精品一区二区三区色成熟| 国产91精品久久久久久久网曝门| 高清视频一区二区| 99久久婷婷国产综合精品电影| 一本色道久久综合亚洲aⅴ蜜桃| 色94色欧美sute亚洲线路二| 欧美性大战xxxxx久久久| 欧美一区二区三区小说| 欧美不卡一二三| 欧美韩国一区二区| 亚洲伦理在线精品| 亚洲大片精品永久免费| 日本va欧美va瓶| 激情亚洲综合在线| 成人激情小说网站| 欧美午夜一区二区三区| 日韩视频免费观看高清在线视频| 久久久蜜臀国产一区二区| 中文字幕不卡在线播放| 亚洲精品视频在线看| 亚洲电影欧美电影有声小说| 麻豆国产精品777777在线| 国产九色精品成人porny| 91年精品国产| 日韩一区二区在线播放| 国产精品欧美综合在线| 午夜视频在线观看一区二区三区| 麻豆精品国产传媒mv男同| 成人精品小蝌蚪| 91精品国产综合久久小美女| 国产精品你懂的在线欣赏| 亚洲一区欧美一区| 精品在线免费观看| 色美美综合视频| 色狠狠综合天天综合综合| 69堂成人精品免费视频| 日韩欧美国产麻豆| 久久久99精品免费观看不卡| 国产欧美一区二区在线| 偷拍一区二区三区四区| 美女在线观看视频一区二区| 久久精品国产精品亚洲红杏| 在线免费观看不卡av| 91精品福利视频| 91精品国产综合久久福利| 国产日韩欧美高清在线| 亚洲国产精品久久一线不卡| 国产黑丝在线一区二区三区| 欧美日韩日日骚| 中文字幕中文在线不卡住| 麻豆精品新av中文字幕| 欧美亚洲国产bt| 中文字幕av不卡| 久久机这里只有精品| 欧美体内she精高潮| 欧美激情一区二区三区在线| 奇米影视一区二区三区| 91香蕉视频污在线| 久久精品免费在线观看| 免费看欧美女人艹b| 91成人在线观看喷潮| 亚洲欧洲韩国日本视频| 亚洲精选视频免费看| 成人天堂资源www在线| 欧美激情综合在线| 96av麻豆蜜桃一区二区| 日韩av中文字幕一区二区三区| 欧美色成人综合| 欧美一级高清大全免费观看| 欧美国产在线观看| 午夜精品在线视频一区| 国内精品不卡在线| 紧缚捆绑精品一区二区| 一区二区三区日韩| 制服丝袜国产精品| 国产精品一区一区三区| 香蕉影视欧美成人| 美脚の诱脚舐め脚责91| 成人午夜在线免费| 成人国产视频在线观看| 亚洲成人av一区| 日韩一区二区三区四区五区六区 | 国产欧美精品一区aⅴ影院| 婷婷国产在线综合| 精品久久久久久久人人人人传媒| 风间由美一区二区av101| 久久精品一区二区三区四区| 成年人国产精品| 亚洲va国产va欧美va观看| 亚洲欧洲中文日韩久久av乱码| 99久久精品免费看| 久久成人麻豆午夜电影| 久久精品国内一区二区三区| 亚洲乱码国产乱码精品精小说| 欧美日本不卡视频| 欧美一区二区三区在线看 | 欧美色综合网站| 国产乱国产乱300精品| 开心九九激情九九欧美日韩精美视频电影| 亚洲乱码一区二区三区在线观看| 亚洲激情自拍视频| 欧美日韩高清影院| 丁香六月久久综合狠狠色| 国产一区二区三区精品视频| 日韩av成人高清| 视频一区视频二区中文| 亚洲国产视频网站| 国产精品激情偷乱一区二区∴| 欧美极品另类videosde| 综合久久综合久久| 久久蜜桃av一区精品变态类天堂| 欧美一区二区在线观看| 精品精品国产高清a毛片牛牛| 欧美日韩国产一级二级| 粉嫩嫩av羞羞动漫久久久| 成人精品视频一区二区三区尤物| 午夜欧美电影在线观看| 国产精品美女久久久久久久久久久| 欧美tickle裸体挠脚心vk| 欧美日本乱大交xxxxx| 在线看不卡av| 欧美日韩亚洲综合在线| 日韩欧美激情在线| 精品av综合导航| 久久日韩粉嫩一区二区三区 | 欧美一区三区二区| 日韩欧美的一区二区| 亚洲视频1区2区| 三级成人在线视频| 麻豆精品在线看| 91浏览器入口在线观看| 欧美日韩国产一级片| 久久综合九色欧美综合狠狠| 亚洲妇熟xx妇色黄| 国产风韵犹存在线视精品| 色婷婷国产精品综合在线观看| 亚洲美女视频一区| 日韩小视频在线观看专区| 成人小视频免费在线观看| 天天影视涩香欲综合网| 国产欧美日韩视频一区二区| 欧美性大战久久久| 成人性色生活片免费看爆迷你毛片| 午夜电影网一区| 亚洲人吸女人奶水|