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

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

?? filefilemanagement.cpp

?? funambol windows mobile plugin source code, the source code is taken from the funambol site
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*
 * 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
 */

//
// @author Marco Magistrali
//
#include <windows.h>
#include "Winbase.h"
#include "pim/Utils.h"
#include "base/util/utils.h"
#include "base/Log.h"
#include "pim/FILEFileManagement.h"
#include "pim/SettingFunctions.h"
#include "pim/ClientSettings.h"

///// **********************************
//#include "RichInk.h"
// Defines and typedefs needed for the conversion:

#define EM_STREAMIN          (WM_USER + 73)
#define EM_STREAMOUT         (WM_USER + 74)

typedef DWORD (CALLBACK *EDITSTREAMCALLBACK)
      (DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb);

typedef struct _editstream
{
    DWORD dwCookie; /* user value passed to callback as first parameter */
    DWORD dwError;  /* last error */
    EDITSTREAMCALLBACK pfnCallback;
} EDITSTREAM;

typedef struct tagCOOKIE
{
    HANDLE hFile;
    LPBYTE pbStart;
    LPBYTE pbCur;
    LONG  bCount;
    DWORD dwError;
} COOKIE, * PCOOKIE;

// Stream formats:
#define SF_TEXT         0x0001
#define SF_RTF          0x0002
#define SF_UNICODE      0x0010      // Unicode data of some kind
#define SF_UTEXT        SF_TEXT | SF_UNICODE   // Unicode text file
#define SFF_PWI         0x0800
#define SF_PWI          ( SF_RTF | SFF_PWI | 0x010000 ) // PWI format

static int recursiveLevel = 1;
static int currentLevel   = 0;


static DWORD CALLBACK ReadCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb) {

    PCOOKIE pCookie = (PCOOKIE)dwCookie;
    // Zero the bytes read.

    *pcb = 0;

    // If there is an error return it.
    if (ReadFile(pCookie->hFile, pbBuff, cb, (unsigned long *)pcb, 0) == 0)

    return (pCookie->dwError = GetLastError());

    // Return no error.
    return 0;

} // ReadCallback()

static DWORD CALLBACK  WriteCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb) {
    PCOOKIE pCookie = (PCOOKIE)dwCookie;
    if (WriteFile(pCookie->hFile, pbBuff, cb,(unsigned long *) pcb, 0) == 0) {
        return (pCookie->dwError = GetLastError());
    } else {
        }

    return 0;
} // WriteCallback()


static DWORD CALLBACK  BufferReadCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
    PCOOKIE pCookie = (PCOOKIE)dwCookie;
    LONG   bytesLeft;
    LONG   bytesRead;

    // Calc the bytes read.
    bytesRead = pCookie->pbCur - pCookie->pbStart;

    // Calc bytes left to read.
    if (bytesRead < pCookie->bCount) {
      // Calc the bytes left to read.
        bytesLeft = pCookie->bCount - bytesRead;
    } else{
        bytesLeft = 0;
    }

    if (cb > bytesLeft)
        cb = bytesLeft;

    *pcb = cb;
    // Copy any bytes.
    if (cb) {
        memcpy(pbBuff, pCookie->pbCur, cb);
        pCookie->pbCur += cb;
    }

    return 0;
} // BufferReadCallback()

static DWORD CALLBACK BufferWriteCallback(DWORD dwCookie, LPBYTE pbBuff, LONG cb, LONG *pcb)
{
    PCOOKIE pCookie = (PCOOKIE)dwCookie;
    // Do not overwrite the end of the buffer.
    // If there is no output buffer, then we抮e
    // only here to determine the space required
    // for the stream out.

    if (pCookie->pbStart && (pCookie->pbCur + cb > pCookie->pbStart + pCookie->bCount)) {
        // Writing all this data would overflow the buffer.
        // So only write what will fit.
        cb = pCookie->pbStart + pCookie->bCount - pCookie->pbCur;
    }

    *pcb = cb;

    if (pCookie->pbStart)
        memcpy(pCookie->pbCur, pbBuff, cb); pCookie->pbCur += cb;
    return 0;
} // BufferWriteCallback()




int writeTextToFile(wchar_t* filename, wchar_t* text) {

    HINSTANCE   hLib;
    HWND   hwndInk = NULL;
    LPTSTR lpszClass = TEXT("richink") ;
    EDITSTREAM   es;
    COOKIE      cookie;
    HLOCAL sz;
    UINT cbSz;

    hLib = LoadLibrary( TEXT("richink.dll") );
    if (!hLib)
      return -1;

    hwndInk = CreateWindow(lpszClass, NULL, WS_BORDER, 0, 0, 0, 0, NULL, 0, NULL, NULL);
    if (!hwndInk)
      return -1;


/* write back to note */

    HANDLE file = CreateFile(filename, GENERIC_WRITE, 0, //FILE_SHARE_READ | FILE_SHARE_WRITE,
                              NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);

    memset(&cookie, 0, sizeof(cookie));
    cookie.dwError      = 0;
    cookie.pbStart      = (LPBYTE)text;
    cookie.pbCur        = cookie.pbStart;
    cookie.bCount       =  wcslen(text) * sizeof(wchar_t);
    // cookie.bCount   =  5 * sizeof(wchar_t);
    es.dwCookie         = (DWORD)&cookie;
    es.dwError          = 0;
    es.pfnCallback      = BufferReadCallback;
    SendMessage (hwndInk, EM_STREAMIN, (WPARAM)SF_UTEXT, (LPARAM)&es);

    cookie.dwError      = 0;
    cookie.pbStart      = 0;
    cookie.pbCur        = 0;
    cookie.bCount       = 0;
    cookie.hFile        = file;
    es.dwCookie         = (DWORD)&cookie;
    es.dwError          = 0;
    es.pfnCallback      = BufferWriteCallback;
    SendMessage (hwndInk, EM_STREAMOUT, (WPARAM)SF_PWI, (LPARAM)&es);

    sz = (LPWSTR)LocalAlloc(LPTR, (cbSz = cookie.pbCur - cookie.pbStart) + 2);

    cookie.dwError      = 0;
    cookie.pbStart      = (LPBYTE)sz;
    cookie.pbCur        = cookie.pbStart;
    cookie.bCount       = cbSz;
    //cookie.hFile = file;
    es.dwCookie         = (DWORD)&cookie;
    es.dwError          = 0;
    es.pfnCallback      = WriteCallback;
    SendMessage (hwndInk, EM_STREAMOUT, (WPARAM)SF_PWI, (LPARAM)&es);

    CloseHandle(file);

    return 0;
}


//~ not used
/*wchar_t* readTextFromArray(byte* ptrFileContent, int numBytes) {

    HINSTANCE   hLib;
    HWND        hwndInk = NULL;
    LPTSTR      lpszClass = TEXT("richink") ;
    EDITSTREAM  es;
    COOKIE      cookie;
    HLOCAL      sz;
    UINT        cbSz;
    wchar_t*    ret = NULL;

    hLib = LoadLibrary( TEXT("richink.dll") );
    if (!hLib)
      return ERROR;

    hwndInk = CreateWindow(lpszClass, NULL, WS_BORDER, 0,
       0, 0, 0, NULL, 0, NULL, NULL);
    if (!hwndInk)
      return ERROR;

    // Stream in the Ink Data from a memory block.
    memset(&cookie, 0, sizeof(cookie));
    cookie.dwError      = 0;
    cookie.pbStart      = ptrFileContent;// (LPBYTE)pb;      // Pointer to memory block
    cookie.pbCur        = cookie.pbStart;
    cookie.bCount       = numBytes;// cb;         // Size of ink data
    es.dwCookie         = (DWORD)&cookie;
    es.dwError          = 0;
    es.pfnCallback      = BufferReadCallback;
    SendMessage (hwndInk, EM_STREAMIN, (WPARAM)SF_PWI, (LPARAM)&es);

    // Next call stream out to get the size of the Unicode text.
    cookie.dwError      = 0;
    cookie.pbStart      = 0;
    cookie.pbCur        = 0;
    cookie.bCount       = 0;
    es.dwCookie         = (DWORD)&cookie;
    es.dwError          = 0;
    es.pfnCallback      = BufferWriteCallback;
    SendMessage (hwndInk, EM_STREAMOUT, (WPARAM)SF_TEXT, (LPARAM)&es);


    // Allocate memory and stream out the Unicode text to it.
    sz = (LPWSTR)LocalAlloc(LPTR, (cbSz = cookie.pbCur - cookie.pbStart) + 2);

    // Check for alloc err.
    cookie.dwError      = 0;
    cookie.pbStart      = (LPBYTE)sz;
    cookie.pbCur        = cookie.pbStart;
    cookie.bCount       = cbSz;
    es.dwCookie         = (DWORD)&cookie;
    es.dwError          = 0;
    es.pfnCallback      = BufferWriteCallback;
    SendMessage (hwndInk, EM_STREAMOUT, (WPARAM)SF_TEXT, (LPARAM)&es);

    ret = toWideChar((char*)sz); // TODO: is it possible to avoid some casts?

    return ret;

} */

/*
* Return the content of a binary (pwi as notes format) or text file.
* It reads contents directly from file in filesystem if exists
*/


wchar_t* readTextFromBinaryFile(wchar_t* filename) {

    HINSTANCE   hLib;
    HWND   hwndInk = NULL;
    LPTSTR lpszClass = TEXT("richink") ;
    EDITSTREAM   es;
    COOKIE      cookie;
    HLOCAL sz;
    UINT cbSz;
    wchar_t* ret = NULL;

    // open file if only if exists
    HANDLE hfile = CreateFile(filename, GENERIC_READ, 0,
                              NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

    hLib = LoadLibrary( TEXT("richink.dll") );
    if (!hLib)
      return NULL;

    hwndInk = CreateWindow(lpszClass, NULL, WS_BORDER, 0, 0, 0, 0, NULL, 0, NULL, NULL);

    if (!hwndInk)
      return NULL;

    // Stream in the Ink Data from a memory block.
    memset (&cookie, 0, sizeof(cookie));
    cookie.dwError      = 0;
    cookie.pbStart      = 0;
    cookie.pbCur        = cookie.pbStart;
    cookie.bCount       = 0;
    cookie.hFile        = hfile;
    es.dwCookie         = (DWORD)&cookie;
    es.dwError          = 0;
    es.pfnCallback      = ReadCallback;
    SendMessage (hwndInk, EM_STREAMIN, (WPARAM)SF_PWI, (LPARAM)&es);

    // Next call stream out to get the size of the Unicode text.
    cookie.dwError      = 0;
    cookie.pbStart      = 0;
    cookie.pbCur        = 0;
    cookie.bCount       = 0;
    es.dwCookie         = (DWORD)&cookie;
    es.dwError          = 0;
    es.pfnCallback      = BufferWriteCallback;
    SendMessage (hwndInk, EM_STREAMOUT, (WPARAM)SF_TEXT, (LPARAM)&es);

    // Allocate memory and stream out the Unicode text to it.
    sz = (LPWSTR)LocalAlloc(LPTR, (cbSz = cookie.pbCur - cookie.pbStart) + 2);

    // Check for alloc err.
    cookie.dwError      = 0;
    cookie.pbStart      = (LPBYTE)sz;
    cookie.pbCur        = cookie.pbStart;
    cookie.bCount       = cbSz;
    es.dwCookie         = (DWORD)&cookie;
    es.dwError          = 0;
    es.pfnCallback      = BufferWriteCallback;
    SendMessage (hwndInk, EM_STREAMOUT, (WPARAM)SF_TEXT, (LPARAM)&es);

    ret = toWideChar((char*)sz, "ascii"); // TODO: is it possible to avoid some casts?

    CloseHandle(hfile);

    return ret;
}


void writeTextToTextFile(wchar_t* fName, wchar_t* text) {

    if (text == NULL)
        return;

    FILE* f;

    // specific for favorites. If file doesn't end with .url, it is a directory. So create it.
    if (wcsstr(fName, URL_EXTENSION) == NULL) {
        if (CreateDirectory(fName, NULL) == TRUE) {
        } else {
            LOG.error("Dir NOT correctly created");
        }
        return;
    }

    f = _wfopen(fName, TEXT("w+"));

    if( f != NULL ) {
        fwprintf(f, text);
    } else {
        wchar_t localDir     [DIM_LOCAL_TEMP];
        wchar_t internalPath [DIM_LOCAL_TEMP];
        getDirName(fName, localDir);

        SHGetSpecialFolderPath(NULL, internalPath, CSIDL_FAVORITES, FALSE);
        wcscat(internalPath, TEXT("\\"));
        wcscat(internalPath, localDir);

        CreateDirectory(internalPath, NULL);

        f = _wfopen(fName, TEXT("w+"));
        fwprintf(f, text);

    }

    fflush(f);
    fclose(f);
}


void writeByteToFile(wchar_t* fName, byte *ptr, int numBytes) {

    wchar_t wfilename[DIM_FILE];
    wchar_t* pt = NULL;
    char filename [DIM_FILE];
    BOOL usedDefaultChar;

    wcscpy(wfilename, fName);

    WideCharToMultiByte (CP_ACP, 0, wfilename, DIM_FILE -1, filename, DIM_FILE -1, "?", &usedDefaultChar);

    int numwritten = 0;
    FILE* f;

    f = fopen(filename, "w+b");

    if( f != NULL ) {
        numwritten = fwrite( ptr, sizeof( byte ), numBytes, f );
    }

    fflush(f);
    fclose(f);
}

void readByteFromFile(wchar_t* fName, byte *ptr, int* numBytes) {

    wchar_t wfilename[DIM_FILE];
    wchar_t* pt = NULL;
    char filename [DIM_FILE];
    BOOL usedDefaultChar;

    wcscpy(wfilename, fName);

    WideCharToMultiByte (CP_ACP, 0, wfilename, DIM_FILE -1, filename, DIM_FILE -1, "?", &usedDefaultChar);

    wchar_t* element = NULL;

    byte line[DIMLINE];
    int numread = 0;
    int total = 0;
    FILE* f;

    f = fopen(filename, "rb");

    while( !feof( f ) ) {

        numread = fread( line, sizeof( byte ), DIMLINE, f );

        memcpy(ptr + total, line, numread);
        total = total + numread;
    }

    fflush(f);
    fclose(f);

    *numBytes = total;

}

/*
* Method to write current file name and time of writing in file to use to
* compare with others in order to search for modified files...
*/


void writeCurrentFileItems(int dataType, const wchar_t* path, const wchar_t* dir) {

    wchar_t localTemp[DIM_LOCAL_TEMP];
    wchar_t wfilename[DIM_FILE];
    wchar_t internalPath[DIM_LOCAL_TEMP];
    wchar_t filterPattern[256];

    wchar_t** fileList = NULL;
    int count = 0;
    int i = 0;
    FILE* f;

    /*
    * It avoids to send object greater then MaxObjSize.
    * In next releases it must me inserted into the
    * source.
    */
    //ClientSettings cs(APPLICATION_URI);
    //cs.readConfig();
    int fileRemoved = 0;

    BOOL recursiveInDirectory = FALSE;
    filterPattern [0] = 0;

    if (dataType == constFiles) {
        wsprintf(internalPath, TEXT("%s\\"), dir);
        wsprintf(wfilename, TEXT("%s\\%s"), path, TEXT(FILENAME_FILES));
    }
    else if (dataType == constNotes) {
        wsprintf(internalPath, TEXT("%s\\"), dir);
        wsprintf(wfilename, TEXT("%s\\%s"), path, TEXT(FILENAME_NOTES));
        wcscpy(filterPattern, PWI_EXTENSION_PATTERN);
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区观看视频| 久久女同性恋中文字幕| 日韩欧美国产高清| 国产精品久久影院| 日韩av一级片| 色婷婷久久久久swag精品| 久久综合狠狠综合| 亚洲国产精品综合小说图片区| 国产精品一区二区男女羞羞无遮挡 | 欧美成人国产一区二区| 久久精品一二三| 一区二区三区**美女毛片| 国产乱淫av一区二区三区| 宅男噜噜噜66一区二区66| 亚洲欧美日韩一区二区 | 99热这里都是精品| 国产日韩欧美高清在线| 蜜臀av性久久久久蜜臀av麻豆| 91丝袜美腿高跟国产极品老师 | 亚洲一区二区三区四区在线免费观看| 国产真实乱对白精彩久久| 欧美日韩国产天堂| 亚洲二区视频在线| 一本色道**综合亚洲精品蜜桃冫 | 亚洲另类一区二区| 成人综合日日夜夜| 国产精品人成在线观看免费 | 麻豆国产精品777777在线| 欧美日韩一级二级三级| 亚洲福利一二三区| 欧美日韩国产小视频在线观看| 一区二区三区在线高清| 91免费观看视频| 尤物在线观看一区| 中文字幕一区在线观看| 久久99精品国产.久久久久 | 精品久久久久99| 另类中文字幕网| 欧美va亚洲va在线观看蝴蝶网| 99久久99久久免费精品蜜臀| 亚洲国产激情av| 成人美女在线视频| 亚洲日本丝袜连裤袜办公室| 不卡视频一二三四| 亚洲人午夜精品天堂一二香蕉| 91免费版在线| 亚洲sss视频在线视频| 欧美日韩亚洲综合在线| 美女脱光内衣内裤视频久久网站| 久久色.com| www.亚洲免费av| 一区二区免费在线| 制服丝袜亚洲精品中文字幕| 免费成人av在线| 国产欧美一区二区三区网站| 成人丝袜高跟foot| 亚洲情趣在线观看| 欧美肥妇free| 国产精品影视在线| 亚洲男女一区二区三区| 欧美日韩国产精品自在自线| 麻豆精品一区二区综合av| 久久精品视频一区| 在线观看视频一区二区欧美日韩| 亚洲一区二区欧美激情| 337p亚洲精品色噜噜狠狠| 青青草国产精品97视觉盛宴| 久久先锋资源网| 一本到一区二区三区| 全国精品久久少妇| 国产精品福利一区二区| 欧美巨大另类极品videosbest| 国产成人免费av在线| 天天操天天综合网| 国产午夜亚洲精品理论片色戒| 色综合一区二区三区| 久久不见久久见免费视频7| 国产精品丝袜91| 在线播放中文一区| 欧美精品一区男女天堂| 在线一区二区三区做爰视频网站| 日韩中文字幕亚洲一区二区va在线| xf在线a精品一区二区视频网站| 成人黄动漫网站免费app| 天天做天天摸天天爽国产一区 | 成人午夜av影视| 视频精品一区二区| 亚洲同性gay激情无套| 精品国产一区二区在线观看| 在线观看日韩国产| hitomi一区二区三区精品| 九九国产精品视频| 午夜精品久久久久久久久久久| 中文字幕精品一区| 精品国产乱码久久久久久浪潮| 色噜噜狠狠成人中文综合| 国产盗摄精品一区二区三区在线 | 国产精品综合一区二区| 日韩va欧美va亚洲va久久| 亚洲免费av高清| 国产亚洲制服色| 欧美一二三区在线观看| 欧美三级欧美一级| 在线免费av一区| 91麻豆蜜桃一区二区三区| 国产91精品一区二区麻豆网站| 久久se精品一区二区| 首页综合国产亚洲丝袜| 五月婷婷综合激情| 亚洲成av人片在线| 亚洲国产综合91精品麻豆| 亚洲乱码国产乱码精品精小说| 国产精品国产三级国产专播品爱网| 久久综合999| 国产三级久久久| 日本一区二区综合亚洲| 国产精品丝袜在线| 亚洲欧美在线视频| 亚洲男同1069视频| 亚洲欧美aⅴ...| 亚洲精品va在线观看| 日韩理论在线观看| 亚洲免费观看高清| 亚洲高清在线视频| 亚洲二区视频在线| 老司机精品视频导航| 美女网站在线免费欧美精品| 久久成人免费网站| 国产美女主播视频一区| 成人午夜av在线| 91国在线观看| 欧美日韩亚洲丝袜制服| 欧美成人性战久久| 国产情人综合久久777777| 中文字幕欧美一区| 粉嫩蜜臀av国产精品网站| 91污片在线观看| 欧美日韩国产高清一区二区| 欧美一区二区三区免费| 日韩欧美的一区二区| 久久久不卡网国产精品一区| 国产精品麻豆欧美日韩ww| 国产精品家庭影院| 亚洲成在人线免费| 久久精品噜噜噜成人88aⅴ| 国产精品一区二区久久不卡 | 91精品国产免费| 精品福利在线导航| 亚洲欧洲日本在线| 亚洲国产精品久久艾草纯爱| 看片的网站亚洲| 99视频一区二区| 日韩欧美中文字幕一区| 国产精品视频第一区| 亚欧色一区w666天堂| 国产一区二区三区免费播放| 91国偷自产一区二区三区成为亚洲经典 | 成人性视频网站| 欧美视频日韩视频| 久久蜜桃一区二区| 亚洲一卡二卡三卡四卡五卡| 久久精品国内一区二区三区| 国产凹凸在线观看一区二区| 欧美影视一区二区三区| 337p粉嫩大胆色噜噜噜噜亚洲| 自拍偷拍国产精品| 国内成+人亚洲+欧美+综合在线| 成人精品小蝌蚪| 欧美一区二区黄| 亚洲一区二区在线播放相泽| 精品一区二区免费| 欧美日本一区二区在线观看| 欧美激情一区不卡| 日本不卡视频在线观看| 欧美影视一区在线| 亚洲人成网站色在线观看 | 日本不卡一二三| 中文字幕在线免费不卡| 美女脱光内衣内裤视频久久网站| 在线观看国产日韩| 中文字幕在线观看不卡视频| 激情图片小说一区| 91精品国产全国免费观看| 亚洲精选在线视频| k8久久久一区二区三区| 久久免费的精品国产v∧| 蜜臀av性久久久久av蜜臀妖精| 欧美性猛片aaaaaaa做受| 国产精品久久久一本精品| 国产精品一级片| 久久噜噜亚洲综合| 国产乱人伦偷精品视频不卡| 欧美一区二区三区人| 午夜av电影一区| 欧美视频一区二区在线观看| 亚洲一二三四区| 欧美日韩一区视频| 亚洲a一区二区| 欧美疯狂做受xxxx富婆| 日本va欧美va精品发布|