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

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

?? appointmentbuilder.cpp

?? funambol windows mobile plugin source code, the source code is taken from the funambol site
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
        dummyEvent = getElementContent(ptrData, TEXT ("End"), NULL);
        isAllDayFormat = isDateForAllDayEventFormat(dummyEvent);

        if (isAllDayFormat) {
            systemTimeToDoubleBirthFormat(dummyEvent, &st, TEXT("END"));

        }  else { // the date is in the usual format

            isUTC = FALSE;
            isUTC = getDateAndTimeAsIs(dummyEvent, &st);

            VariantTimeToSystemTime(st, &systemTime);

            if (isUTC) {
                UTCToLocalTime2(systemTime);
            }

            systemTime.wHour = 23;
            systemTime.wMinute = 59;
            systemTime.wMilliseconds = 0;
            SystemTimeToVariantTime(&systemTime, &st);
        }

        pAppointment->put_End(st);

        delete [] dummyEvent;dummyEvent=NULL;
        isNotAllDayEvent = FALSE;
    }
    else {
        pAppointment->put_AllDayEvent(VARIANT_FALSE);

    }
    delete [] dummyEvent;dummyEvent=NULL;

    //VARIANT_BOOL -- ReminderSet
    dummyEvent = getElementContent(ptrData, TEXT ("ReminderSet"), NULL);


    if (dummyEvent != NULL &&
        (wcscmp(dummyEvent, TEXT("1")) == 0 ||
         wcscmp(dummyEvent, TEXT("-1")) == 0 ||     // kept to be compliant with old client. Now TRUE is represented
         wcscmp(dummyEvent, TEXT("True")) == 0)) {  // with "1" only
        pAppointment->put_ReminderSet(VARIANT_TRUE);

    }
    else {
        pAppointment->put_ReminderSet(VARIANT_FALSE);
    }

    delete [] dummyEvent;dummyEvent=NULL;

    // BSTR
    dummyEvent = getElementContent(ptrData, TEXT ("Subject"), NULL);
    if (dummyEvent != NULL) {
        dummyEvent_s = wstring(dummyEvent); decodeSpecialChar(dummyEvent_s);
        pAppointment->put_Subject ((wchar_t*)dummyEvent_s.data());
           delete [] dummyEvent;dummyEvent=NULL;
    }

    dummyEvent = getElementContent(ptrData, TEXT ("Location"), NULL);
    if (dummyEvent != NULL) {
        dummyEvent_s = wstring(dummyEvent); decodeSpecialChar(dummyEvent_s);
        pAppointment->put_Location ((wchar_t*)dummyEvent_s.data());
        delete [] dummyEvent;dummyEvent=NULL;
    }

    dummyEvent = getElementContent(ptrData, TEXT ("ReminderSoundFile"), NULL);
    if (dummyEvent != NULL) {
        dummyEvent_s = wstring(dummyEvent); decodeSpecialChar(dummyEvent_s);
        pAppointment->put_ReminderSoundFile  ((wchar_t*)dummyEvent_s.data());
        delete [] dummyEvent;dummyEvent=NULL;
    }
    dummyEvent = getElementContent(ptrData, TEXT ("Categories"), NULL);
    if (dummyEvent != NULL) {
        dummyEvent_s = wstring(dummyEvent); decodeSpecialChar(dummyEvent_s);
        pAppointment->put_Categories ((wchar_t*)dummyEvent_s.data());
        delete [] dummyEvent;dummyEvent=NULL;
    }

    dummyEvent = getElementContent(ptrData, TEXT ("Body"), NULL);
    if (dummyEvent != NULL) {
        dummyEvent_s = wstring(dummyEvent); decodeSpecialChar(dummyEvent_s);
        convertNewlines(dummyEvent_s); // BUG #1562
        pAppointment->put_Body  ((wchar_t*)dummyEvent_s.data());
        delete [] dummyEvent;dummyEvent=NULL;
    }

    DATE start = 0;

    // Read the start date
    if (isNotAllDayEvent) {
        //DATE
        dummyEvent = getElementContent(ptrData, TEXT ("Start"), NULL);

        if (dummyEvent && (wcscmp(dummyEvent, TEXT("")) != 0)) {
            SYSTEMTIME systemTime;
            //
            // to handle properly the RecurrencePattern
            //
            BOOL isUTC = FALSE;
            isUTC = getDateAndTimeAsIs(dummyEvent, &start);

            VariantTimeToSystemTime(start, &systemTime);
            x = systemTime.wHour;
            if (isUTC) {
                UTCToLocalTime2(systemTime);
            }
            y = systemTime.wHour;

            systemTimeToDouble(dummyEvent, &start, NULL);

            pAppointment->put_Start(start);
            delete [] dummyEvent;
        }

        dummyEvent = getElementContent(ptrData, TEXT ("End"), NULL);

        if (dummyEvent != NULL && (wcscmp(dummyEvent, TEXT("")) != 0)) {
            DATE en;
            systemTimeToDouble(dummyEvent, &en, NULL);

            pAppointment->put_End(en);
            delete [] dummyEvent;
        }

    }
    else {
                // TODO: which is the start for an ALLDAY????!!!!!!!!!
    }

    //long
    //dummyEvent = getElementContent(ptrData, TEXT ("Duration"), NULL);
    //if (dummyEvent != NULL) {
    //    pAppointment->put_Duration(wcstol(dummyEvent, &dummy, 0));
    //    delete [] dummyEvent;dummyEvent=NULL;
    //}

    dummyEvent = getElementContent(ptrData, TEXT ("BusyStatus"), NULL);
    if (dummyEvent != NULL) {
        pAppointment->put_BusyStatus(wcstol(dummyEvent, &dummy, 0));
        delete [] dummyEvent;dummyEvent=NULL;
    }

    dummyEvent = getElementContent(ptrData, TEXT ("Sensitivity"), NULL);
    if (dummyEvent != NULL) {
        pAppointment->put_Sensitivity(wcstol(dummyEvent, &dummy, 0));
        delete [] dummyEvent;dummyEvent=NULL;
    }

    dummyEvent = getElementContent(ptrData, TEXT ("ReminderOptions"), NULL);
    if (dummyEvent != NULL) {
        pAppointment->put_ReminderOptions (wcstol(dummyEvent, &dummy, 0));
        delete [] dummyEvent;dummyEvent=NULL;
    }

    dummyEvent = getElementContent(ptrData, TEXT ("ReminderMinutesBeforeStart"), NULL);
    if (dummyEvent != NULL) {
        pAppointment->put_ReminderMinutesBeforeStart  (wcstol(dummyEvent, &dummy, 0));
        delete [] dummyEvent;dummyEvent=NULL;
    }

    /****************************************************/

    //Recurrence
    dummyEvent = getElementContent(ptrData, TEXT ("IsRecurring"), NULL);

    if (dummyEvent != NULL &&
        (wcscmp(dummyEvent, TEXT("1")) == 0 ||
         wcscmp(dummyEvent, TEXT("-1")) == 0 ||    // kept to be compliant with old client. Now TRUE is represented
         wcscmp(dummyEvent, TEXT("True")) == 0)) { // with "1" only

        pAppointment->ClearRecurrencePattern ();
        /*
        * This save the appointment with no recurrence pattern and no exceptions too
        * If there are some before it deletes the old one and replace with the new just came
        */
        pAppointment->Save();

        IRecurrencePattern *pRecurrence;
        pAppointment->GetRecurrencePattern (&pRecurrence);

        //
        // Parse the recurrence tags
        //
        parseRecurrenceTags(pRecurrence, ptrData, start, x, y);

        //
        // ------------ EXCEPTIONS --------------------------
        //

        //
        // Parse the exception tags
        //
        parseExceptionTags(pRecurrence, pAppointment, ptrData, polApp, path);
        pRecurrence->Release();

    }
}


BOOL isAllDayEvent(DATE startdate, DATE enddate) {

    SYSTEMTIME ststart, stend;
    VariantTimeToSystemTime(startdate, &ststart);
    VariantTimeToSystemTime(enddate, &stend);
    BOOL ret = FALSE;

    if (ststart.wHour == 0 && ststart.wMinute == 0 &&
        stend.wHour == 23 && stend.wMinute == 59)

        ret = TRUE;

    return ret;

}




/**
* The method change the property AllDayEvent to False if set to true.
* This because changing AllDayEvent changes OID too. So
* if AllDayEvent == YES (-1) ---> AllDayEvent = No, start = 0, end = 24
*
* @param pAppointment : the appointment object that contain every value
* @param dataType     : the data type to get retrieve appointments
*
* NOTE: this function is not used on Windows Mobile 5.0 devices because
* the OID remains the same even if the property changes.
*
*/

void normalizeAppointment(IP_OUTLOOK_APP *polApp, int dataType, wchar_t* path) {


    IPOutlookItemCollection *pItems;
    IAppointment *pAppointment;
    IFolder *pFolder;

    VARIANT_BOOL variantBool = FALSE;
    wchar_t tempDate [30];
    DATE date = NULL, startdate = NULL;


    polApp->GetDefaultFolder (dataType, &pFolder);
    pFolder->get_Items (&pItems);

    int currentCountItems = 0;

    pItems->get_Count(&currentCountItems);

    BOOL isWinMob5 = isWindowsMobile5();
    for (int i = 0; i < currentCountItems; i++) {
        pItems->Item (i + 1, (IDispatch**)&pAppointment);
        pAppointment->get_AllDayEvent(&variantBool);
        wsprintf(tempDate, TEXT("%i"), variantBool);

        if (wcscmp(tempDate, TEXT("-1")) == 0) {

            SYSTEMTIME t;

            // DATE
            // START****************
            pAppointment->get_Start(&startdate);

            VariantTimeToSystemTime(startdate, &t);
            t.wHour = 0;
            t.wMinute = 0;
            SystemTimeToVariantTime(&t, &startdate);

            IRecurrencePattern* pRec;
            pAppointment->GetRecurrencePattern(&pRec);
            wstring recurrence = getRecurrenceTags(pRec, -1, 0, 0, olFolderCalendar, startdate, TRUE);

            pAppointment->put_Start(startdate);

            //END*************
            pAppointment->get_End(&date);

            VariantTimeToSystemTime(date, &t);
            if (isWinMob5) {
                if (startdate == date && !isPocketPC()){
                    // on smartphone wm5 the modification from all day -> not all day -> all day
                    // change the normal behaviour all day handling and the end date is different.
                    // this fix doesn't permit the day change but can be problem with all day events of may days.
                    // next releases change this feature and consider all day event as is.
                    t.wHour = 23;
                    t.wMinute = 59;
                } else {

                    SYSTEMTIME s;
                    s = DT_AddDiff(nano100SecInMin, -(1), &t);
                    t.wDay              = s.wDay          ;
                    t.wDayOfWeek        = s.wDayOfWeek    ;
                    t.wHour             = s.wHour         ;
                    t.wMilliseconds     = s.wMilliseconds ;
                    t.wMinute           = s.wMinute       ;
                    t.wMonth            = s.wMonth        ;
                    t.wSecond           = s.wSecond       ;
                    t.wYear             = s.wYear         ;
                }
            } else {
                t.wHour = 23;
                t.wMinute = 59;
            }

            SystemTimeToVariantTime(&t, &date);
            pAppointment->put_End(date);
            pAppointment->put_AllDayEvent(FALSE);
            pRec->Release();
            HRESULT  resu = pAppointment->Save();
            pAppointment->ClearRecurrencePattern();
            pAppointment->GetRecurrencePattern(&pRec);
            parseRecurrenceTags(pRec, recurrence.c_str(), startdate, 0, 0);
            parseExceptionTags(pRec, pAppointment, recurrence.c_str(), polApp, path);
            pRec->Release();

        }

        pAppointment->Release ();
    }

    pFolder->Release();
    pItems->Release();
}






void copyFields(IAppointment *pAppointmentExc, IAppointment *pAppointmentCopy) {

    BSTR element = NULL;

    pAppointmentExc->get_Subject(&element);
    pAppointmentCopy->put_Subject(element);
    SysFreeString(element);

    pAppointmentExc->get_Location(&element);
    pAppointmentCopy->put_Location(element);
    SysFreeString(element);

    pAppointmentExc->get_Body(&element);
    pAppointmentCopy->put_Body(element);
    SysFreeString(element);

    DATE d;
    pAppointmentExc->get_Start(&d);
    pAppointmentCopy->put_Start(d);

    pAppointmentExc->get_End(&d);
    pAppointmentCopy->put_End(d);

    VARIANT_BOOL vbool;
    pAppointmentExc->get_AllDayEvent(&vbool);
    pAppointmentCopy->put_AllDayEvent(vbool);

    pAppointmentExc->get_ReminderSet(&vbool);
    pAppointmentCopy->put_ReminderSet(vbool);

    long elementLong = 0;
    pAppointmentExc->get_BusyStatus(&elementLong);
    pAppointmentCopy->put_BusyStatus(elementLong);

    pAppointmentExc->get_ReminderMinutesBeforeStart(&elementLong);
    pAppointmentCopy->put_ReminderMinutesBeforeStart(elementLong);

}


/*
* . Scan all the appointment and get the ones with recurrences
* . If there are any that are with exceptions remove them
* .
*/

BOOL normalizeAppointmentExceptions(IP_OUTLOOK_APP* polApp) {

    IPOutlookItemCollection *pItems;
    IAppointment *pAppointment;
    IFolder *pFolder;

    VARIANT_BOOL variantBool = FALSE;

    polApp->GetDefaultFolder (olFolderCalendar, &pFolder);
    pFolder->get_Items (&pItems);

    int currentCountItems = 0;

    pItems->get_Count(&currentCountItems);

    for (int i = 0; i < currentCountItems; i++) {
        VARIANT_BOOL isRecurring;
        pItems->Item (i + 1, (IDispatch**)&pAppointment);
        pAppointment->get_IsRecurring(&isRecurring);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品色哟哟| 国产精品99久久久久久久vr | 国产成人在线视频网站| 99久久精品久久久久久清纯| 欧美剧在线免费观看网站| 国产日产欧产精品推荐色 | 欧美日韩视频第一区| 久久久久久久久岛国免费| 亚洲高清一区二区三区| eeuss鲁片一区二区三区| 日韩欧美不卡在线观看视频| 亚洲一级二级三级| 国产成人午夜高潮毛片| 日韩欧美国产麻豆| 婷婷亚洲久悠悠色悠在线播放| 成人免费视频app| 精品国产污网站| 美女诱惑一区二区| 欧美精品一二三区| 亚洲国产精品一区二区www在线| av资源站一区| 国产精品成人一区二区艾草| 国产精品一区二区三区网站| 日韩精品专区在线影院重磅| 奇米777欧美一区二区| 欧美精品在线一区二区| 视频精品一区二区| 91精品国模一区二区三区| 丝袜美腿亚洲综合| 欧美日韩精品欧美日韩精品 | 精品亚洲成a人| 欧美一区二区三区播放老司机| 亚洲精品国产品国语在线app| 不卡影院免费观看| 亚洲欧洲无码一区二区三区| 成人在线视频首页| 中文字幕中文在线不卡住| 成人av在线影院| 国产精品乱人伦| 99精品视频在线免费观看| 国产精品久久久久一区 | 91精品办公室少妇高潮对白| 17c精品麻豆一区二区免费| 99vv1com这只有精品| 樱桃视频在线观看一区| 欧美亚洲高清一区| 日韩—二三区免费观看av| 欧美一级二级三级蜜桃| 紧缚捆绑精品一区二区| 国产欧美日韩精品在线| www.日韩精品| 亚洲一区免费在线观看| 日韩欧美亚洲一区二区| 国产成人精品aa毛片| 亚洲免费资源在线播放| 欧美日韩精品是欧美日韩精品| 蜜桃av噜噜一区| 国产精品久久久久久福利一牛影视 | 国产一区二区视频在线播放| wwwwxxxxx欧美| 97久久精品人人做人人爽| 午夜久久电影网| 欧美激情一区三区| 欧美亚洲图片小说| 韩国视频一区二区| 亚洲人快播电影网| 日韩三级视频在线观看| 国产91精品免费| 亚洲国产成人av好男人在线观看| 精品对白一区国产伦| 91日韩一区二区三区| 麻豆精品国产传媒mv男同| |精品福利一区二区三区| 欧美美女一区二区| 成人黄色国产精品网站大全在线免费观看| 一区二区三区四区激情| 欧美va日韩va| 欧美日韩国产欧美日美国产精品| 国产乱人伦偷精品视频免下载| 一区二区在线观看不卡| 精品国产一区二区三区四区四 | 国产成+人+日韩+欧美+亚洲| 亚洲在线观看免费| 中文字幕在线观看不卡视频| 日韩一区二区三区视频在线| 欧美专区亚洲专区| 成年人网站91| 国产精品2024| 久久精品国产99久久6| 亚洲在线观看免费| 国产精品网站在线播放| 日韩精品一区二区三区三区免费| 一本到不卡免费一区二区| 国产黄色精品网站| 另类小说视频一区二区| 日韩激情av在线| 一区二区三区日韩欧美| 亚洲欧美偷拍另类a∨色屁股| 久久精品网站免费观看| 欧美mv日韩mv国产网站| 91精品国产一区二区三区蜜臀 | 91精品国产欧美一区二区18 | 免费观看30秒视频久久| 亚洲二区在线观看| 亚洲午夜在线观看视频在线| 亚洲精品午夜久久久| 国产精品久久看| 中文字幕一区二区三区视频| 国产精品美女久久久久久| 国产亚洲制服色| 欧美国产精品一区| 欧美激情中文不卡| 中文字幕一区三区| 亚洲品质自拍视频网站| 洋洋成人永久网站入口| 一级女性全黄久久生活片免费| 亚洲精品一卡二卡| 一区二区三区四区蜜桃| 午夜精品福利一区二区三区蜜桃| 亚洲国产精品久久不卡毛片| 亚洲成a人片在线观看中文| 午夜精品福利一区二区三区av | 欧美精品一区二区三区很污很色的 | 3751色影院一区二区三区| 欧美日韩国产中文| 欧美日韩成人高清| 51精品久久久久久久蜜臀| 日韩三级中文字幕| 国产亚洲人成网站| 亚洲欧美日韩一区二区| 亚洲成人免费在线观看| 日韩精品午夜视频| 国产在线不卡一区| 不卡一区在线观看| 欧美日韩一级黄| 精品理论电影在线观看| 国产精品久久久一本精品 | 欧美mv日韩mv| 亚洲精品在线电影| 中文字幕av一区二区三区高| 亚洲色图视频网| 天堂av在线一区| 国产凹凸在线观看一区二区| 91香蕉视频污| 精品国产凹凸成av人网站| 国产精品日日摸夜夜摸av| 亚洲6080在线| 成人毛片老司机大片| 欧美日韩另类一区| 欧美极品xxx| 亚洲.国产.中文慕字在线| 韩国成人精品a∨在线观看| av一区二区三区在线| 91精品啪在线观看国产60岁| 日本一区二区三级电影在线观看| 一区二区三区毛片| 国产成人免费视频网站高清观看视频| 在线观看91视频| 欧美激情一二三区| 日本91福利区| 欧美日韩在线观看一区二区| 国产日产亚洲精品系列| 日本特黄久久久高潮| 色综合久久66| 欧美国产97人人爽人人喊| 麻豆视频一区二区| 欧美在线观看一二区| 亚洲国产精品成人综合 | 亚洲成av人片一区二区三区| 成人一区二区三区| 欧美xxxxx牲另类人与| 亚洲3atv精品一区二区三区| 97精品国产露脸对白| 国产欧美视频一区二区| 另类小说综合欧美亚洲| 欧美天堂一区二区三区| 中文字幕中文字幕在线一区| 激情小说亚洲一区| 日韩欧美国产三级| 免费在线观看成人| 欧美日韩精品免费观看视频| 亚洲视频综合在线| 成人美女在线观看| 久久久久综合网| 精品亚洲aⅴ乱码一区二区三区| 欧美猛男超大videosgay| 亚洲人成网站色在线观看| 成人精品电影在线观看| 国产清纯白嫩初高生在线观看91| 国产在线视频一区二区| 日韩精品一区二区三区视频播放 | 亚洲免费在线看| 97久久精品人人爽人人爽蜜臀| 国产精品视频观看| 成人高清在线视频| 中文字幕亚洲精品在线观看 | 欧美日本韩国一区二区三区视频| 亚洲精品免费播放| 在线观看av不卡| 亚洲18色成人|