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

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

?? winadapter.cpp

?? funambol windows mobile plugin source code, the source code is taken from the funambol site
?? CPP
?? 第 1 頁 / 共 2 頁
字號:

    if (ret == 0) { // function GetTempFileName fails
        LOG.error("mkTempFileName: error in GetTempFileName");
        return 0;
    }
    return toMultibyte(tmpFileName);
}


size_t fgetsize(FILE *f)
{
    size_t size;

    fseek(f, 0, SEEK_END);
    size=ftell(f);
    fseek(f, 0, SEEK_SET);
    return size;
}

bool readFile(const char* path, char **message, size_t *len, bool binary)
{
    FILE *f;
    size_t msglen=0;
    char *msg=0;
    const char *mode = binary ? "rb" : "r" ;

    f = fopen(path, mode);
    if ( !f ) {
        return false;
    }
    msglen = fgetsize(f);
    msg = new char[msglen+1];
    memset(msg, 0, msglen);

    *len=fread(msg, sizeof(char), msglen, f);
    if(ferror(f)){
        delete [] msg;
        return false;
    }
    fclose(f);

    // Set return parameters
    *message= msg ;
    *len=msglen;

    return true;
}


bool saveFile(const char *filename,
              const char *buffer,
              size_t len, bool binary)
{
    const char *mode = binary ? "wb" : "w" ;
    FILE *f = fopen(filename, mode);

    if(!f) {
        return false;
    }

    if (fwrite(buffer, sizeof(char), len, f) != len) {
        fclose(f);
        return false;
    }
    fclose(f);

    return true;
}


#if defined(WIN32) && !defined(_WIN32_WCE)
/// Returns a file list from a directory, as char**.
char** readDir(char* name, int *count, bool onlyCount) {

    *count = 0;
    char** fileNames = NULL;
    WIN32_FIND_DATA FileData;
    HANDLE hFind;
    DWORD dwAttrs;
    WCHAR toFind    [512];
    WCHAR szNewPath [512];
    szNewPath[0] = 0;
    bool fFinished = false;

    //
    // Get number of files
    //
    if (!onlyCount) {
        int i=0;
        readDir(name, &i, true);
        if (i>0)
            fileNames = new char*[i];
        else
            return NULL;
    }

    WCHAR* wname = toWideChar(name);
    wsprintf(toFind, TEXT("%s\\*.*"), wname);


    //
    // Get file names from dir
    //
    hFind = FindFirstFile(toFind, &FileData);
    if (hFind == INVALID_HANDLE_VALUE) {
        LOG.error("Invalid handle for retrieve files from %s", name);
        *count = 0;
        fileNames = NULL;
        goto finally;
    }
    else {
        while (!fFinished) {
            wsprintf(szNewPath, TEXT("%s/%s"), wname, FileData.cFileName);
            dwAttrs = GetFileAttributes(szNewPath);

             if (   (dwAttrs & FILE_ATTRIBUTE_DIRECTORY)
                 || (dwAttrs & FILE_ATTRIBUTE_HIDDEN)
                 || (dwAttrs & FILE_ATTRIBUTE_SYSTEM) ) {
             }// nothing
             else {
                 if (!onlyCount) {
                    fileNames[*count] = toMultibyte(FileData.cFileName);
                 }
                (*count) ++;
            }

            if (!FindNextFile(hFind, &FileData)) {
			    if (GetLastError() == ERROR_NO_MORE_FILES){
				    fFinished = true;
			    }
		    }
	    }
        // Close the search handle.
	    FindClose(hFind);
    }

finally:
    if (wname) {
        delete [] wname;
        wname = NULL;
    }
    return fileNames;
}

unsigned long getFileModTime(const char* name) {
	struct _stat buffer;
	return _stat(name, &buffer) ? 0 : (unsigned long)buffer.st_mtime;
}


#else
// TBD: dummy implementation!
char** readDir(char* name, int *count, bool onlyCount) {
    return NULL;
}
#endif   // #if defined(WIN32) && !defined(_WIN32_WCE)




static int findCodePage(const char *encoding)
{
    if (encoding){
        for(int i=0; encodings[i].name; i++) {
            if(_stricmp(encodings[i].name, encoding) == 0) {
                // Found
                return encodings[i].codepage_id;
            }
        }
        // Not found
        sprintf(logmsg, "Invalid encoding: %s", encoding);
        LOG.error(logmsg);
    }
    // Default encoding
    return CP_UTF8;
}

static size_t getLenEncoding(const WCHAR* s, int codepage)
{
    if (!s)
        return 0;

    int len = wcslen(s);

    if (!len)
        return 0;

    long k = WideCharToMultiByte (codepage, 0, s, len, 0, 0, 0, 0);

    return (k != 0) ? (long)k : -1;
}

size_t getLenEncoding(const WCHAR* s, const char* encoding)
{
    return getLenEncoding( s, findCodePage(encoding) );
}

char* toMultibyte(const WCHAR *wc, const char *encoding)
{
    if (!wc) {
        return NULL;
    }

    char *ret;
    size_t wlen = wcslen(wc);

    if (!wlen) {
        ret = new char[1];
        ret[0] = 0;
        return ret;
    }

    int codepage = findCodePage(encoding);
    size_t blen = getLenEncoding(wc, codepage);

    if(blen <= 0) {
        LOG.error("toMultibyte: invalid encoding");
        return NULL;
    }

    ret = new char[blen+1];

    blen = WideCharToMultiByte(codepage, 0, wc, wlen, ret, blen, 0, 0);
    ret[blen] = 0;

    return ret;
}

WCHAR* toWideChar(const char *mb, const char *encoding) {

    if (mb == NULL) {
        return NULL;
    }

    unsigned long dsize = strlen(mb);
    WCHAR *ret = new WCHAR[dsize+2];
    memset(ret, 0, (dsize + 1)*sizeof(WCHAR));

    if (!dsize)
        return ret;

    int codepage = findCodePage(encoding);
    unsigned long k = 0;

    k = MultiByteToWideChar(codepage, 0, mb, -1, ret, dsize + 1);
    if( !k ) {
        LOG.error("toWideChar: error %d \n\tConverting: %s\n\tWith encoding %s",
            GetLastError(), mb, encoding);
        LOG.error("toWideChar: try to use default codepage.");
        k = MultiByteToWideChar(CP_UTF8, 0, mb, -1, ret, dsize + 1);
        if( !k ){
            LOG.error("toWideChar: error %d converting the string using default codepage.");
            delete [] ret; ret = 0;
        }
    }

    return ret;
}



#if defined(WIN32) && !defined(_WIN32_WCE)
// ----------------------------------------------------
// REDEFINITION OF NEW / DELETE -> debug for memory leaks
//
// WARNING: this sloooooowwwwssss doooowwwwnnnn things!
// ----------------------------------------------------
#ifdef MALLOC_DEBUG

    //
    // This is required since in debug mode, new is rewritten
    // as new(__FILE__, __LINE__). See utils.h for details
    //
    #undef new
    #include "base/memTracker.h"

    MemTracker m = MemTracker(TRUE);


    void *operator new(size_t s, char* file, int line) {
        void* p = malloc(s);

        //fprintf(stderr, "new - p:%lx s:%ld, %s:%d\n", p, s, file, line);
        if (m.isMemTracking()) {
            m.disableMemTracker();
		    m.addTrack((DWORD)p, s, file, line);
            m.enableMemTracker();
        }

        return p;
    }

    void *operator new(size_t s) {
        return ::operator new(s, "", 0);
    }

    void *operator new[](size_t s) {
        return ::operator new(s, "", 0);
    }

    void *operator new[](size_t s, char* file, int line) {
        return ::operator new(s, file, line);
    }

    void operator delete(void* p) {

        //fprintf(stderr, "delete - p:%lx\n", (long)p);
        if (m.isMemTracking()) {
            m.disableMemTracker();
		    m.removeTrack((DWORD)p);
            m.enableMemTracker();
        }

        if (p) {
            free(p);
        }
    }

    void operator delete[] (void* p) {
        ::operator delete(p);
    }


    void printMemLeaks() {
        if (m.isMemTracking())
            m.dumpUnfreed();
    }

#endif  // #ifdef MALLOC_DEBUG
#endif  // #if defined(WIN32) && !defined(_WIN32_WCE)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
麻豆91小视频| 欧美国产禁国产网站cc| 欧美xxxxxxxxx| 久久蜜桃一区二区| 中文字幕中文字幕在线一区| 亚洲精品乱码久久久久久黑人 | 99久久精品国产导航| 色婷婷av一区二区三区大白胸| 欧美日韩精品免费观看视频| 欧美电影精品一区二区| 国产精品美女一区二区三区 | 欧美日韩国产高清一区二区 | 国产精品自拍一区| 色av综合在线| 欧美成人乱码一区二区三区| 国产精品传媒在线| 日韩**一区毛片| 成人av在线看| 91精品国产综合久久久蜜臀图片 | 豆国产96在线|亚洲| 欧美老女人在线| 国产精品久久久久永久免费观看 | 日韩欧美亚洲国产另类| 中文字幕一区在线| 蜜桃久久av一区| 91麻豆精品秘密| 精品sm在线观看| 亚洲国产日韩av| 豆国产96在线|亚洲| 欧美一区二区在线免费观看| 国产精品乱码一区二区三区软件 | 色噜噜狠狠色综合中国| 日韩欧美电影一二三| 1024成人网色www| 久久99久久精品| 欧美在线三级电影| 国产欧美视频一区二区三区| 亚洲成人激情av| 不卡在线观看av| 日韩精品一区二区三区三区免费| 国产精品短视频| 极品美女销魂一区二区三区免费| 欧美在线观看视频在线| 亚洲成人av免费| 99精品久久只有精品| 精品1区2区在线观看| 亚洲高清中文字幕| 色综合一区二区| 国产三级精品视频| 久久99精品网久久| 欧美高清dvd| 亚洲在线观看免费视频| 成人久久18免费网站麻豆| 精品国产一区二区三区不卡| 日产国产高清一区二区三区| 色哦色哦哦色天天综合| 亚洲国产精品成人综合色在线婷婷| 日韩电影网1区2区| 欧美无砖砖区免费| 亚洲精品视频在线看| 国产精品亚洲а∨天堂免在线| 欧美一卡二卡在线| 午夜精品久久久久久久| 欧洲色大大久久| 亚洲黄网站在线观看| 成人精品视频.| 久久精品欧美一区二区三区不卡| 久久国产综合精品| 日韩你懂的电影在线观看| 午夜一区二区三区在线观看| 欧美主播一区二区三区美女| 亚洲欧美综合在线精品| 99久久精品情趣| 中文字幕一区二区三区四区不卡 | 欧美经典一区二区| 国产精品1024| 久久嫩草精品久久久精品| 久久国产精品99久久久久久老狼| 欧美精品在线一区二区三区| 亚洲国产欧美日韩另类综合 | 亚洲综合一区二区三区| 欧美视频在线播放| 亚洲一区二区三区中文字幕| 色88888久久久久久影院按摩| 亚洲少妇30p| 成人午夜av电影| 国产精品视频一区二区三区不卡| 成人午夜电影网站| 亚洲男人电影天堂| 日本韩国欧美国产| 午夜不卡在线视频| 67194成人在线观看| 免费人成在线不卡| 国产日本欧美一区二区| 成人永久aaa| 亚洲丝袜自拍清纯另类| 一本久久a久久免费精品不卡| 亚洲综合自拍偷拍| 欧美人与禽zozo性伦| 日本美女一区二区三区| 精品粉嫩aⅴ一区二区三区四区| 国产九色sp调教91| 一区在线观看免费| 欧美日韩高清在线| 亚洲成人高清在线| 精品少妇一区二区三区在线播放| 久久精品久久99精品久久| 26uuu另类欧美亚洲曰本| 东方欧美亚洲色图在线| 一区二区三区中文字幕在线观看| 欧美精品自拍偷拍动漫精品| 久久99精品久久久久久国产越南| 国产亚洲综合在线| 色偷偷久久人人79超碰人人澡| 日日夜夜免费精品视频| 久久精品网站免费观看| 色系网站成人免费| 久久狠狠亚洲综合| 亚洲色图20p| 日韩欧美黄色影院| 色欧美片视频在线观看| 美腿丝袜亚洲三区| 中文字幕免费一区| 欧美乱妇23p| 风间由美一区二区三区在线观看| 亚洲自拍偷拍麻豆| 久久午夜老司机| 色婷婷av一区二区| 国产麻豆精品theporn| 亚洲美女区一区| 欧美变态tickle挠乳网站| 成人国产精品免费观看| 免播放器亚洲一区| 亚洲精品第一国产综合野| 精品久久久网站| 欧美中文一区二区三区| 国产激情视频一区二区三区欧美| 亚洲一区在线观看免费| 久久一区二区视频| 亚洲免费av高清| 精品奇米国产一区二区三区| 91浏览器入口在线观看| 国产综合色在线视频区| 亚洲午夜av在线| 欧美激情一二三区| 欧美大度的电影原声| 欧洲色大大久久| 成人动漫精品一区二区| 美脚の诱脚舐め脚责91| 亚洲黄色小说网站| 国产精品国产三级国产三级人妇 | 韩国欧美国产1区| 亚洲动漫第一页| 国产精品久久久久久久久免费桃花| 91精品国产色综合久久| 色94色欧美sute亚洲13| 成熟亚洲日本毛茸茸凸凹| 精品国产精品网麻豆系列 | 国产综合成人久久大片91| jlzzjlzz亚洲日本少妇| 欧美一区二区三区免费| 国产精品卡一卡二卡三| 国产一区二区三区综合| 欧美性猛交xxxx黑人交| 国产精品国产自产拍高清av | 91丨九色丨蝌蚪丨老版| 国产成人精品一区二 | 91麻豆精品国产91久久久久久久久 | 91天堂素人约啪| 国产一区二区福利视频| 丝袜脚交一区二区| 亚洲精品国产精华液| 国产精品美女视频| 国产欧美日韩精品在线| 精品久久久久久无| 欧美军同video69gay| 欧美亚洲高清一区二区三区不卡| 99国产精品久久久久久久久久久| 国产电影精品久久禁18| 国产在线精品免费| 久久国产日韩欧美精品| 免费人成网站在线观看欧美高清| 97久久精品人人做人人爽| 成人午夜私人影院| 丁香天五香天堂综合| 成人免费视频网站在线观看| 国产成人一级电影| 国产麻豆精品在线| 国产精品亚洲一区二区三区妖精 | 欧美一级黄色片| 欧美一级免费大片| 欧美一级久久久| 日韩欧美国产三级| 欧美xxxxx牲另类人与| 亚洲精品在线电影| 久久久国产精品午夜一区ai换脸| 精品盗摄一区二区三区| 久久久久国产精品麻豆ai换脸| 欧美一区二区人人喊爽| 日韩欧美一区二区在线视频|