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

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

?? utils.h

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


#ifndef INCL_UTILS_PIM
    #define INCL_UTILS_PIM

    #include "spdm/spdmutils.h"
    #include "pimstore.h"
    #include "Tlhelp32.h"
    #include "base/Log.h"
    #include "customization.h"

    #include <string>
    using namespace std;
    // definitions

/*
* For the Windows Mobile 5 the IPOutlook Application is the newer
* IPOutlookApp2 interface. We continue to keep the old IPOutlookApp
* to support wm2003 devices. It is used to get the POOM application and
* move into the PIMPR_* properties to set values that are not exposed 
* by the common IContact, IAppoointment and ITask interfaces.
* See {Contact,Appointment,Task}Builder for details
*/

#if _WIN32_WCE > 0x500 
    #define IP_OUTLOOK_APP IPOutlookApp2
#else
    #define IP_OUTLOOK_APP IPOutlookApp
#endif

    #define ERR_INTERNET_CONNECTION_MISSING       2005

    #define DIM_LOCAL_TEMP 256
    #define POA_OBJECT             TEXT("PocketOutlook.Application")
    #define INITGUID
    #define APPLICATION_URI        ROOT_CONTEXT
    #define FILENAME_APPOINTMENTS  "appointments.dat"
    #define FILENAME_CONTACTS      "contacts.dat"
    #define FILENAME_TASKS         "tasks.dat"
    #define FILENAME_FILES         "briefcase.dat"
    #define FILENAME_NOTES         "notes.dat"
    #define FILENAME_FAVORITES     "favorites.dat"

    #define PWI_EXTENSION_PATTERN   TEXT("*.pwi")
    #define PWI_EXTENSION           TEXT(".pwi")
    #define URL_EXTENSION           TEXT(".url")

    #define GPRS_FILE_NAME          TEXT("gprs.exe")


    #define MSG_ERR_AUTH_REQUIRED  TEXT("Not authorized.")
    #define MSG_ERR_AUTH_EXPIRED   TEXT("Account expired.")
    #define MSG_ERR_SRV_FAULT      TEXT("Server error.")
    #define MSG_ERR_NOT_FOUND      TEXT("Server returned NOT FOUND for SyncSource %s.")
    #define MSG_ERR_PROTOCOL_ERROR TEXT("Protocol error.")
    #define MSG_ERR_INTERNET_CONNECTION_MISSING TEXT("Impossible to establish an internet connection.")
    #define MSG_ERR_ADDRESSCHANGE_FAILED_CRED      TEXT("Address notification failed. Please check your credentials.")
    #define MSG_ERR_ADDRESSCHANGE_FAILED_NOTIF     "Address notification failed. The client is not notifiable."

    #define PREPARING_CONTACTS_SYNC         TEXT("Preparing CONTACTS sync...")
    #define PREPARING_APPOINTMENTS_SYNC     TEXT("Preparing APPOINTMENTS sync...")
    #define PREPARING_TASKS_SYNC            TEXT("Preparing TASKS sync...")
    #define PREPARING_FILES_SYNC            TEXT("Preparing FILES sync...")
    #define PREPARING_NOTES_SYNC            TEXT("Preparing NOTES sync...")
    #define PREPARING_FAVORITES_SYNC        TEXT("Preparing FAVORITES sync...")
    #define PREPARING_ASSET_SYNC            TEXT("Preparing ASSET sync...")

    #define STARTING_STD_SYNC   TEXT("Starting standard sync")
    #define STARTING_SLOW_SYNC  TEXT("Starting slow sync")

    #define SET_ALL_ITEMS       TEXT("Current item number is %i")
    #define NO_SYNC             TEXT("No sync for this source.")
    #define MESSAGE_FROM_SERVER TEXT("Response from server:")
    #define SERVER_NEW_ITEMS    TEXT("   New items are:\t\t%i")
    #define SERVER_UPDATE_ITEMS TEXT("   Updated items are:\t\t%i")
    #define SERVER_DELETE_ITEMS TEXT("   Deleted items are:\t\t%i")

    #define MESSAGE_TO_SERVER   TEXT("Send sync info to the server:")
    #define CLIENT_NEW_ITEMS    TEXT("   New items are:\t\t%i")
    #define CLIENT_UPDATE_ITEMS TEXT("   Updated items are:\t\t%i")
    #define CLIENT_DELETE_ITEMS TEXT("   Deleted items are:\t\t%i")

    #define ENDING_SYNC         TEXT("Ending sync...")
    #define SYNC_ENDED          TEXT("Sync ended")
    #define SEPARATOR            TEXT("===========")
    #define SEPARATOR_BLANK     TEXT("   ")

    #define APPOINTMENT_END_TIME    0.999306

    #define MAX_DATE_DOUBLE         949998.000000;
    #define MAX_DATE_DOUBLE_4000    767011.083333;

    #define START_DAY               TEXT("0000")
    #define END_DAY                 TEXT("2359")

    #define CDATA_START             TEXT("<![CDATA[")
    #define CDATA_END               TEXT("]]>")

    // name of the sources. Used in Main.cpp and SettingFunction.cpp
    #define APPOINTMENTS_NAME   TEXT("calendar")
    #define CONTACTS_NAME       TEXT("contact")
    #define TASKS_NAME          TEXT("task")
    #define FILES_NAME          TEXT("briefcase")
    #define NOTES_NAME          TEXT("note")
    #define FAVORITES_NAME      TEXT("favorite")
    #define MAILS_NAME          TEXT("mail")

    #define APPOINTMENTS_NAME_A   "calendar"
    #define CONTACTS_NAME_A       "contact"
    #define TASKS_NAME_A          "task"
    #define FILES_NAME_A          "briefcase"
    #define NOTES_NAME_A          "note"
    #define FAVORITES_NAME_A      "favorite"
    #define MAILS_NAME_A          "mail"

    #define LOW_DEVICE_MEMORY       "Error: too low storage memory (less than 2.5 Mb)"

    #define QP_MAX_LINE_LEN 70

    #define DIM_PATH 256
    #define DIM_FILE 300

    // static int constFiles           = 600;
    // static int constNotes           = 601;
    // static int constFavorites       = 602;

    typedef enum {
        constFiles           = 600,
        constNotes           = 601,
        constFavorites       = 602,
        constAsset           = 603
    } CONST_FILE_OBJ;

    typedef enum {
        OL_CONTACTS     = 10,
        OL_CALENDAR     = 9,
        OL_TASK         = 13,
        OL_BRIEFCASE    = 600,
        OL_NOTES        = 601,
        OL_FAVORITES    = 602
    } SourceType;

    /*------------------ methods -----------------*/

    static int windowsMobileVersion = 0;
    static int pocketPCDevice = 0;

    /*
    * use to determine if the source is a filesystem sync source or a db sync source.
    * If fileSystem needs to convert / char into @ to be possible creare a file (/ is not permitted in filename)
    * Is false in sync4j
    */
    static  BOOL FILE_SYSTEM_SYNC_SOURCE = false;

    /*
    * use to determine if is necessary to encode the key in base64 and decode the return key.
    * Is false in sync4j
    */
    static  BOOL IS_KEY_BASE64 = true;

    static  BOOL dbg = false;

    void error();
    void error(wchar_t* errorMessage);

    wchar_t* getElementContent(const wchar_t* xml, wchar_t* tag, unsigned int* pos);
    void     normalizeBoolean(wchar_t* localTemp);
    void     replaceAmpLGt(std::wstring &s);
    void     convertSlashAt(wchar_t* filename);
    void     convertAtSlash(wchar_t* filename);

    void     getDirName(const wchar_t* path, wchar_t* dirname);

    void     removeStartCarriage(wchar_t** ptr);
    void     removeEndCarriage(wchar_t** ptr);

    DATE     getSystemTime();
    void     systemTimeToDouble(const wchar_t* dataString, DATE* date, const wchar_t* action);
    void     doubleToSystemTime(wchar_t* tempDate, DATE date);
    void     doubleToSystemTimeHourZero(wchar_t* tempDate, DATE date, BOOL isHourToSetToZero);
    void     doubleToSystemTimeBirthday(wchar_t* tempDate, DATE date);
    void     systemTimeToDoubleBirthday(const wchar_t* dataString, DATE* date);
    void     systemTimeToDoubleBirthFormat(const wchar_t* dataString, DATE* date, const wchar_t* type);
    BOOL     getDateAndTimeAsIs(const wchar_t* dataString, DATE* date);

    bool isDateForAllDayEventFormat(const wchar_t* stringDate);

    /**
     * Parse the given date, in the formats:
     * @param date: the date to parse, in one of the formats:
     *               "YYYYMMDDThhmmss" (local time, complete) or
     *               "YYYYMMDDThhmmssZ" (utc time, complete)
     *               "yyyy-MM-dd" (date only format)
     * @param hour: can be used to force a particular hour to the date.
     *              valid values, at the moment, are only "0000" or "2359"
     *
     * @return the date, as a double value (Windows DATE format)
     */
    DATE getDATEFromString(const wchar_t *date, const wchar_t *hour = NULL);

    time_t   FileTimeToUnixTime(FILETIME &ft);
    void     UnixTimeToFileTime(time_t t, FILETIME &ft);
    void     localTimeToUTC(SYSTEMTIME &t);
    void     localTimeToUTC2(SYSTEMTIME &t);
    void     UTCToLocalTime(SYSTEMTIME &t);
    void     UTCToLocalTime2(SYSTEMTIME &t);
    BOOL     IsDST(TIME_ZONE_INFORMATION *ptzi, time_t localTime);
    void     SafeGetTimeZoneInformation(TIME_ZONE_INFORMATION *ptzi);
    time_t   GetTransitionTimeT(TIME_ZONE_INFORMATION *ptzi, int year, BOOL fStartDST);
    time_t   GetLocalTimeT();

    void     getFileName(const wchar_t* path, wchar_t* filename);

    wchar_t* encodeBase64UTF8 (wchar_t* toEncode);
    wchar_t* decodeBase64WUTF8(wchar_t* toDecode);
    char*    decodeBase64WUTF8(wchar_t* toDecode, int* myLen);

    void encodeSpecialChar(std::wstring &s);
    void decodeSpecialChar(std::wstring &s);
    void convertNewlines(std::wstring &s);
    /*
    * This function gets a unique file name in the current directory based on the parameter filename.
    * It checks in the specified dir if fileName exists. If none it return the same file name.
    * If one already exists it return a file name like - file (1) - according to the
    * rules applied by windows 2003 for PPC
    */
    void    getUniqueFileName(wchar_t* fileName);

    /*
    * return the length for the base64 array starting from length of the original array
    */
    int lengthForB64(int len);

    /*
    * Format a FILETIIME date (already into utc time) in a utc string yyyymmddThhmmssZ
    */
    wchar_t* FileTime2UTCTimeFormatter(FILETIME &ft, wchar_t* out);

    IP_OUTLOOK_APP* getOutlookApp();
    void releaseOutlookApp(IP_OUTLOOK_APP* polApp);
    void disposeOutlookApp();
    
    bool isSIF(const string& dataType);
    bool isSIF(const wstring& dataType);

    bool checkSIF(int dataType);
    wchar_t* getDayBefore(int dayBefore);

    bool convertRrule(IRecurrencePattern * pRecPat, wchar_t* rrule, DATE startDate);
    wchar_t* extractRrule(IRecurrencePattern * pRecPat);
    wchar_t* extractDayOfWeek(long l);
    long calculateDayOfWeek(wchar_t* in);
    bool isDayOfWeek(wchar_t* string);
    long getWeekDay(DATE dt);

    wchar_t* decodeQpUTF8VProp(wchar_t* value);
    bool addQpUTFString(BSTR pwsz, char* fAppend, int start);

    DWORD getProcessPid(const wchar_t *name);
    DWORD stopProcess(DWORD pid);
    DWORD stopProcessByName(const wchar_t *name);

    DWORD getMemoryAvailable();
    BOOL isMemoryAvailable(DWORD min = 0);
    BOOL isWindowsMobile5();
    unsigned int getMaxObjectSizeToSend();
    BOOL existsDirectory(wchar_t* dir);
    BOOL isPocketPC();
    const wchar_t* getFriendlyName(wstring name);
    LogLevel getLOGLevel();

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美三级欧美一级| 亚洲精品免费视频| 亚洲成人动漫在线观看| 国产尤物一区二区| 欧美蜜桃一区二区三区| 欧美大片在线观看一区二区| 91福利在线导航| 91成人国产精品| 欧美日韩亚洲综合一区| 国产精品久久久久久久久晋中 | 粉嫩高潮美女一区二区三区| 欧美浪妇xxxx高跟鞋交| 国产精品久久久久久久久动漫| 日本中文字幕一区二区有限公司| 色婷婷综合在线| 国产精品你懂的| 国产乱对白刺激视频不卡| 制服丝袜中文字幕一区| 亚洲国产日韩一级| 色婷婷av一区二区| 亚洲免费大片在线观看| 91啦中文在线观看| 亚洲精品成人悠悠色影视| 99久久精品免费看| 亚洲欧洲日韩综合一区二区| 成人综合激情网| 国产精品理论在线观看| 国产乱子伦一区二区三区国色天香| 777xxx欧美| 裸体一区二区三区| 欧美一区二区在线播放| 日韩高清在线不卡| 欧美大度的电影原声| 狠狠色狠狠色综合系列| 国产亚洲欧美日韩日本| 粉嫩欧美一区二区三区高清影视| 国产精品久久久久久久久免费樱桃 | 国产一区在线看| ww久久中文字幕| 懂色av一区二区三区蜜臀| 国产欧美日产一区| 成人国产精品免费观看| 亚洲女同女同女同女同女同69| 91精品办公室少妇高潮对白| 一区二区欧美在线观看| 欧美日韩亚洲综合在线 | 岛国av在线一区| 国产精品私房写真福利视频| 91啪在线观看| 三级精品在线观看| 久久―日本道色综合久久| 国产成人在线看| 亚洲综合丝袜美腿| 精品欧美乱码久久久久久 | 亚洲免费成人av| 欧美高清激情brazzers| 国产一区二区三区电影在线观看| 国产精品免费网站在线观看| 91成人免费电影| 国产裸体歌舞团一区二区| 国产精品电影一区二区三区| 欧美无人高清视频在线观看| 久久99久久久欧美国产| 亚洲人成网站色在线观看| 7878成人国产在线观看| 国产v综合v亚洲欧| 亚洲国产精品自拍| 国产亚洲1区2区3区| 欧美三级在线播放| 国产美女在线精品| 亚洲成年人网站在线观看| 国产肉丝袜一区二区| 欧美日本韩国一区二区三区视频| 国产麻豆精品久久一二三| 亚洲一区二区三区四区的| www国产成人免费观看视频 深夜成人网| 色综合久久综合网97色综合 | 亚洲一区二区三区国产| 欧美精品一区二区三区四区| 色av一区二区| 丁香婷婷综合网| 麻豆91免费看| 亚洲国产成人av网| 亚洲私人影院在线观看| 26uuu色噜噜精品一区二区| 欧美色视频在线观看| 成人黄色免费短视频| 理论片日本一区| 日韩av网站免费在线| 亚洲美女偷拍久久| 国产亚洲精品7777| 欧美成人女星排行榜| 欧美剧在线免费观看网站| 色综合网站在线| 99在线精品视频| 国产成人在线视频网址| 精品一区二区三区久久久| 青青草精品视频| 日韩专区欧美专区| 亚洲成av人综合在线观看| 一区二区三区蜜桃网| 国产精品理论片| 国产精品成人一区二区三区夜夜夜| 久久综合久久久久88| 欧美精品一区二区蜜臀亚洲| 日韩欧美在线影院| 日韩欧美国产一区在线观看| 欧美一区二区精品久久911| 欧美日韩国产另类一区| 欧美高清激情brazzers| 欧美妇女性影城| 欧美一区二区免费观在线| 日韩欧美一区在线| 欧美va在线播放| 久久中文字幕电影| 久久久亚洲午夜电影| 亚洲女性喷水在线观看一区| 亚洲乱码一区二区三区在线观看| 成人免费在线视频| 亚洲精品va在线观看| 亚洲一区在线观看免费观看电影高清| 亚洲一线二线三线久久久| 午夜激情一区二区三区| 蜜臀av亚洲一区中文字幕| 精品一区二区久久久| 国产麻豆日韩欧美久久| 成人av在线网站| 欧美综合一区二区| 欧美日韩小视频| 日韩视频免费直播| 久久天天做天天爱综合色| 国产精品色在线| 亚洲一区二区三区三| 免费成人在线播放| 粉嫩av一区二区三区在线播放 | 国产精品亚洲一区二区三区妖精| 国产a区久久久| 在线亚洲欧美专区二区| 91精品国模一区二区三区| xf在线a精品一区二区视频网站| 欧美国产精品劲爆| 亚洲精品中文字幕乱码三区| 丝袜美腿亚洲色图| 国产成人av自拍| 色国产综合视频| 久久综合五月天婷婷伊人| 亚洲色图在线播放| 久久91精品国产91久久小草| 成人午夜免费电影| 欧美日本一道本| 国产精品久久久久久久久免费丝袜| 亚洲第一狼人社区| 国产成人精品免费视频网站| 色菇凉天天综合网| 国产日本一区二区| 日韩国产在线一| 99久久免费视频.com| 91麻豆精品91久久久久久清纯| 日本一区二区三区免费乱视频| 亚洲成a天堂v人片| 懂色av一区二区在线播放| 7777精品伊人久久久大香线蕉完整版 | 色综合久久综合网97色综合| 精品日韩欧美一区二区| 亚洲视频电影在线| 国产伦理精品不卡| 欧美一级片在线看| 亚洲精品中文在线| 国产成人免费9x9x人网站视频| 91精品在线一区二区| 亚洲精品乱码久久久久久久久 | 国产剧情一区二区| 在线成人午夜影院| 亚洲精品视频免费观看| 国产乱码一区二区三区| 日韩一区二区三区电影 | 久久国产精品99久久人人澡| 色综合久久综合网欧美综合网| 国产亚洲欧美日韩在线一区| 麻豆精品新av中文字幕| 91精品午夜视频| 偷拍与自拍一区| 欧美亚洲愉拍一区二区| 亚洲三级理论片| 99久久久久久| 中文字幕中文在线不卡住| 国产成人免费视频网站| 欧美成人免费网站| 激情文学综合插| 日韩视频在线你懂得| 日韩高清欧美激情| 欧美一区三区二区| 免费观看91视频大全| 日韩亚洲欧美在线观看| 午夜电影一区二区| 这里只有精品视频在线观看| 丝袜a∨在线一区二区三区不卡| 在线视频一区二区免费| 亚洲一二三区视频在线观看| 欧美视频精品在线观看|