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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? mailclient2server.cpp

?? funambol windows mobile plugin source code, the source code is taken from the funambol site
?? CPP
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
    LOG.debug("Exiting from setSync function");
    return hr;
}

/*
* Write all the current mail in the message store to get the id, the last, the read
*/

void MailClient2Server::writeCurrentMails(const wchar_t* path) {

    SYSTEMTIME local;
    DATE last;
    IMAPISession *    pSession    = NULL;
    HRESULT           hr          = NULL;
    IMessage*         pmsg        = NULL;
    ULONG             returned    = 0;
    ULONG             cmsgValue   = 0;
    SPropValue*       msgprops    = NULL;
    int j = 0;
    char filename [128];
    char* id = NULL;

    BOOL read = FALSE;

    wchar_t lastTime[64];
    GetSystemTime (&local);
    SystemTimeToVariantTime (&local, &last);
    doubleToSystemTime(lastTime, last);
    //wsprintf(lastTime, TEXT("%i-%i-%iT%i-%i-%i"), local.wYear, local.wMonth, local.wDay, local.wHour, local.wMinute, local.wSecond);

    for (int i = 0; i < folderNumber; i++) {

        //this permits to do not write the mails_O file cache
        if (folderToSync[i] == 'O')
            continue;

        int mailNum = entryListArray[i].cValues;

        FILE* f = NULL;
        if (wcscmp(path, TEXT("\\")) == 0)
            sprintf(filename, "%ls%s_%c",path, "mails", folderToSync[i]);
        else
            sprintf(filename, "%ls\\%s_%c",path, "mails", folderToSync[i]);

        f = fopen(filename, "w+");
        fprintf(f, "<mails>\n");

        fwprintf(f, TEXT("<num>%i</num>\n"), mailNum);
        fwprintf(f, TEXT("<last>%f</last>\n"), last);
        fwprintf(f, TEXT("<lastTime>%s</lastTime>\n"), lastTime);

        pSession = logOn();

        if (pSession == NULL)
            goto FuncExit;

        for (j=0; j<mailNum; j++) {

            hr = pSession->OpenEntry(entryListArray[i].lpbin[j].cb,
                (ENTRYID*)entryListArray[i].lpbin[j].lpb,
                NULL,
                MAPI_BEST_ACCESS,
                &returned,
                (IUnknown **) &pmsg);
            EXIT_ON_FAILED (hr);
            ASSERT (pmsg);

            hr = pmsg->GetProps ((LPSPropTagArray)&endSync, MAPI_UNICODE, &cmsgValue,
                &msgprops);
            fwprintf(f, TEXT("<item>\n"));

            if (msgprops[eeePR_ENTRYID].ulPropTag == PR_ENTRYID) {
                id = convertBinaryToChar(msgprops[eeePR_ENTRYID].Value.bin, folderToSync[i]);
            }
            fprintf(f, "<id>%s</id>\n", id);

            if (msgprops[eeePR_MESSAGE_FLAGS].ulPropTag == PR_MESSAGE_FLAGS) {
                if (msgprops[eeePR_MESSAGE_FLAGS].Value.ul & MSGFLAG_READ) {
                    read = TRUE;
                }
                else {
                    read = FALSE;
                }
            }
            fwprintf(f, TEXT("<read>%i</read>\n"), read);

            fwprintf(f, TEXT("</item>\n"));

            if (id) {
                delete [] id; id = NULL;
            }
        }
        fwprintf(f, TEXT("</mails>\n"));
        fflush(f);
        fclose(f);
    }

FuncExit:

    logOff(pSession);
}

/**
* <mails>
*  <num>2</num>
*  <last>2334.4656</last>
*  <item>
*   <id>AAAAABBRD==</id>
*   <read>0</read>    // if the message is read (1) or not (0)
*  </item>
*  <item>
*   <id>AAAAABBRDFFJJJF==</id>
*   <read>1</read>
*  </item>
* </mails>
*/

MailInfo* MailClient2Server::readPreviousMail(const wchar_t* path,
                                              wchar_t folderId) {

    char filename [128];
    wchar_t* element = NULL;
    wchar_t line[512];
    FILE* f = NULL;
    MailItem mailItem;
    StringBuffer s = "";
    int num = -1;

    if (wcscmp(path, TEXT("\\")) == 0)
        sprintf(filename, "%ls%s_%c",path, "mails", folderId);
    else
        sprintf(filename, "%ls\\%s_%c",path, "mails", folderId);

    f = fopen(filename, "r");

    // no file so a slow sync is perfomed
    if (f == NULL)
        return NULL;

    MailInfo* mailInfo = new MailInfo();
    
    while(fgetws(line, 511, f) != NULL) {

        if ((element = getElementContent(line, TEXT("num"), NULL)) != NULL) {
            mailInfo->setNum(element);
        }
        else if ((element = getElementContent(line, TEXT("last"), NULL)) != NULL) {
            mailInfo->setLast(element);
        }
        else if (wcsstr(line, TEXT("<item>")) != NULL) {
            mailItem = MailItem();
        }
        else if ((element = getElementContent(line, TEXT("id"), NULL)) != NULL) {
            char *e = toMultibyte(element);
            mailItem.setId(e);            
            delete [] e;
        }
        else if ((element = getElementContent(line, TEXT("read"), NULL)) != NULL) {
            mailItem.setRead(_wcc(element));
        }        
        else if (wcsstr(line, TEXT("</item>")) != NULL) {
            mailInfo->addMailItem(mailItem);

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

    fclose(f);

    return mailInfo;
}

HRESULT MailClient2Server::moveMessageFromOutboxToSentItemsFolder(const wchar_t* key) {
    LOG.debug("Enter into moveMessageFromOutboxToSentItemsFolder function");

    HRESULT           hr;
    IMAPISession *    pSession    =  NULL;
    IMAPITable*       pTable      =  NULL;
    SRowSet*          psrs        =  NULL;
    IMsgStore*        pStore      =  NULL;
    int               i           =  0;
    ULONG*   rgTags;
    folderNumber = 0;
    BOOL accountFound             = FALSE;

    rgTags = new ULONG[3];
    rgTags[0] = 2;
    rgTags[1] = PR_IPM_OUTBOX_ENTRYID;
    rgTags[2] = PR_IPM_SENTMAIL_ENTRYID;

    ULONG             rgMsgTags[] =  { 1, PR_ENTRYID };
    ULONG             cValues     =  0;
    ULONG             returned    =  0;

    SPropValue*       rgprops     =  NULL;
    SPropValue*       rgpropsMsg  =  NULL;
    LPMAPIFOLDER      pfldrSent   =  NULL;
    LPMAPIFOLDER      pfldrOutbox =  NULL;

    IMessage*         pmsg        =  NULL;
    ULONG             cmsgValue   =  0;
    SPropValue*       msgprops    =  NULL;
    IMessage*         pmsgSent    =  NULL;

    wchar_t*          ret          = NULL;
    wchar_t*          displayName  = NULL;
    bool msgset = false;

    // First log on to the store.
    hr = MAPILogonEx (NULL, NULL, NULL, NULL, &pSession);
    EXIT_ON_FAILED (hr);

    // Get the message stores table
    hr = pSession->GetMsgStoresTable (MAPI_UNICODE, &pTable);
    EXIT_ON_FAILED (hr);

    hr = pTable->SetColumns((LPSPropTagArray)&Columns, 0);
    EXIT_ON_FAILED(hr);

    while (!msgset){
        // Get a row
        hr = pTable->QueryRows (1, 0, &psrs);
        EXIT_ON_FAILED (hr);

        // Did we hit the end of the table?
        if (psrs->cRows != 1) {
            break;
        }
        //
        // the display name is the name of the account.
        //
        displayName = psrs->aRow[0].lpProps[eePR_DISPLAY_NAME].Value.lpszW;

        //
        // The name of the MessageStore that we use for the own Transport
        //
        if (wcscmp(displayName, ACCOUNT_NAME) == 0) {
            accountFound = TRUE;
            // Make sure we got the props we need
            if ((psrs->aRow[0].cValues < 1) || (psrs->aRow[0].lpProps[0].ulPropTag != PR_ENTRYID))
            {
                LOG.error("Store missing PR_ENTRYID!");
                hr = E_FAIL;
                break;
            }

            // Open this message store
            hr = pSession->OpenMsgStore (NULL,
                           psrs->aRow[0].lpProps[0].Value.bin.cb,
                          (ENTRYID *) psrs->aRow[0].lpProps[0].Value.
                           bin.lpb, NULL, 0, &pStore);
            EXIT_ON_FAILED (hr);

            // Now get the Inbox folder.
            hr = pStore->GetProps ((SPropTagArray *) rgTags, MAPI_UNICODE, &cValues, &rgprops);
            EXIT_ON_FAILED (hr);

            ASSERT (rgprops);

            //
            // open the folder Outbox and Sent
            //

             // open the message store
            hr = pStore->OpenEntry (rgprops[0].Value.bin.cb,
                        (LPENTRYID)rgprops[0].Value.bin.lpb,
                        NULL,
                        MAPI_MODIFY,
                        NULL,
                        (IUnknown **) &pfldrOutbox);
            EXIT_ON_FAILED (hr);
            ASSERT (pfldrOutbox);

            hr = pStore->OpenEntry (rgprops[1].Value.bin.cb,
                        (LPENTRYID)rgprops[1].Value.bin.lpb,
                        NULL,
                        MAPI_MODIFY,
                        NULL,
                        (IUnknown **) &pfldrSent);
            EXIT_ON_FAILED (hr);
            ASSERT (pfldrSent);

             // Decode the id
            char* eid = NULL;
            size_t len = decodeEntryId(key, &eid);
            if(!eid){
                LOG.error("updateMessage: error decoding entryId");
                return -1;
            }

            ENTRYLIST entryList;

            entryList.cValues = 0;
            MAPIAllocateBuffer(sizeof(SBinary), (LPVOID*)&(entryList.lpbin));
            entryList.lpbin[entryList.cValues].cb = len;
            MAPIAllocateBuffer(len, (LPVOID*)&(entryList.lpbin[entryList.cValues].lpb) );
            memmove(entryList.lpbin[entryList.cValues].lpb, eid, len);
            entryList.cValues++;

            hr = pSession->OpenEntry(entryList.lpbin[0].cb,
                (ENTRYID*)entryList.lpbin[0].lpb,
                NULL,
                MAPI_BEST_ACCESS,
                &returned,
                (IUnknown **) &pmsg);

            EXIT_ON_FAILED (hr);
            if(!pmsg){
                LOG.error("Pmsg is null. ");
                goto FuncExit;
            }

            //
            // Add the read flag to the existing
            //
            SPropValue rgprops[3] = {0};
            ULONG    cProps   = 0;
            ULONG    cmsgValue =  0;
            SPropValue* msgprops = NULL;
            ULONG messageFlag = (ULONG) 0x00000000;
            FILETIME ft;
            char* msgId = NULL;

            hr = pmsg->GetProps ((LPSPropTagArray)&properties, MAPI_UNICODE, &cmsgValue,
               &msgprops);
            EXIT_ON_FAILED (hr);

            if (msgprops[ePR_MESSAGE_FLAGS].ulPropTag == PR_MESSAGE_FLAGS) {
                messageFlag = msgprops[ePR_MESSAGE_FLAGS].Value.ul;
            }

            if (msgprops[ePR_LAST_MODIFICATION_TIME].ulPropTag == PR_LAST_MODIFICATION_TIME) {
                ft = msgprops[ePR_LAST_MODIFICATION_TIME].Value.ft;
            }

            // Set the flags
            rgprops[cProps].ulPropTag = PR_MESSAGE_FLAGS;
            rgprops[cProps].Value.ul = messageFlag | MSGFLAG_READ | MSGFLAG_FROMME;
            ++cProps;

            rgprops[cProps].ulPropTag = PR_CLIENT_SUBMIT_TIME;
            rgprops[cProps].Value.ft = ft;
            ++cProps;

            rgprops[cProps].ulPropTag = PR_MESSAGE_DELIVERY_TIME;
            rgprops[cProps].Value.ft = ft;
            ++cProps;

            hr = pmsg->SetProps(cProps, rgprops, NULL);
            EXIT_ON_FAILED(hr);

            HRESULT hr = pfldrOutbox->CopyMessages(
                            &entryList,
                            NULL,
                            pfldrSent,
                            0,
                            NULL,
                            MESSAGE_MOVE);

            delete [] eid;

            MAPIFreeBuffer (entryList.lpbin);


            msgset = true;
            break;

        }

        // Clean up
        MAPIFreeBuffer (rgprops);

        MAPIFreeBuffer (rgpropsMsg);
        FreeProws   (psrs);

        rgprops   =  NULL;
        rgpropsMsg =  NULL;
        psrs    =  NULL;

        RELEASE_OBJ (pmsg);
        RELEASE_OBJ (pfldrOutbox);
        RELEASE_OBJ (pfldrSent);
        RELEASE_OBJ (pStore);

    }
    if (accountFound == FALSE) {
        LOG.error("No Funambol account found");
    }
FuncExit:

    MAPIFreeBuffer (rgprops);
    MAPIFreeBuffer (rgpropsMsg);
    FreeProws   (psrs);

    RELEASE_OBJ (pmsg);
    RELEASE_OBJ (pfldrOutbox);
    RELEASE_OBJ (pfldrSent);
    RELEASE_OBJ (pStore);
    RELEASE_OBJ (pTable);
    RELEASE_OBJ (pSession);

    if (rgTags)
        delete rgTags;
    LOG.debug("Exiting from moveMessageFromOutboxToSentItemsFolder function");

    return hr;
}

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99精品视频一区二区三区| 日韩一区二区视频在线观看| 懂色av中文字幕一区二区三区| 精品在线免费观看| 久久精品国产秦先生| 久久不见久久见中文字幕免费| 日本成人中文字幕在线视频| 日韩激情一二三区| 久久av中文字幕片| 韩日欧美一区二区三区| 国产乱理伦片在线观看夜一区| 国产精品一区专区| 国产成人av电影免费在线观看| 成人综合在线观看| 91美女视频网站| 欧美日本一区二区| 精品捆绑美女sm三区| 久久久久久久久蜜桃| 国产精品色婷婷| 一区二区三区国产精华| 日韩精品三区四区| 精品亚洲欧美一区| 成人高清在线视频| 欧洲人成人精品| 日韩亚洲欧美一区二区三区| 精品福利视频一区二区三区| 欧美激情综合五月色丁香 | 亚洲福利一区二区三区| 丝袜美腿成人在线| 黑人巨大精品欧美一区| www.亚洲精品| 欧美精品在欧美一区二区少妇| 欧美大尺度电影在线| 国产片一区二区三区| 亚洲综合小说图片| 免费在线看一区| 国产成人精品免费网站| 91久久线看在观草草青青| 日韩一级免费观看| 国产精品污网站| 午夜av一区二区| 国产激情偷乱视频一区二区三区| 色综合久久中文综合久久97| 日韩一区二区三区三四区视频在线观看 | 北条麻妃一区二区三区| 欧美亚洲免费在线一区| 久久免费国产精品| 亚洲综合成人在线| 国产一区二区三区四区五区入口| 波多野结衣中文字幕一区二区三区| 欧美无砖砖区免费| 久久久久久麻豆| 午夜伦欧美伦电影理论片| 国产91色综合久久免费分享| 欧美日韩视频在线一区二区| 亚洲国产高清aⅴ视频| 日日欢夜夜爽一区| 9久草视频在线视频精品| 日韩欧美亚洲国产精品字幕久久久| 成人免费在线视频观看| 精品一区二区三区视频在线观看| 91福利小视频| 中文字幕的久久| 九一九一国产精品| 欧美日韩午夜影院| 亚洲精品你懂的| 高清不卡在线观看| 日韩一级高清毛片| 亚洲不卡在线观看| 99vv1com这只有精品| 久久综合资源网| 午夜激情久久久| 91在线播放网址| 国产精品美女久久久久久久久 | 69久久99精品久久久久婷婷| 一区免费观看视频| 国产成人精品免费| 精品久久久久久综合日本欧美| 亚洲一区二区三区在线播放| 国产91精品精华液一区二区三区| 91精品国产综合久久久久久| 亚洲一区视频在线观看视频| 不卡电影一区二区三区| 国产午夜亚洲精品不卡| 国产主播一区二区三区| 欧美成人性福生活免费看| 亚洲国产精品人人做人人爽| 99精品黄色片免费大全| 日本一区二区成人| 国产91精品露脸国语对白| 久久久一区二区| 国产精品自拍在线| 精品国产伦一区二区三区免费 | 国产精品一区二区91| 日韩三级av在线播放| 日本欧美一区二区| 欧美日本在线一区| 日韩精品成人一区二区在线| 欧美猛男gaygay网站| 亚洲成人av免费| 欧美无人高清视频在线观看| 夜夜嗨av一区二区三区中文字幕| 日本精品免费观看高清观看| 亚洲六月丁香色婷婷综合久久| av在线不卡观看免费观看| 国产精品福利影院| 91麻豆文化传媒在线观看| 亚洲人成影院在线观看| 色综合一区二区三区| 一区二区三区小说| 欧美亚日韩国产aⅴ精品中极品| 亚洲综合一区二区三区| 欧美日韩www| 另类欧美日韩国产在线| 亚洲精品一区二区三区蜜桃下载| 精品一区二区三区欧美| 久久久不卡影院| 99视频精品全部免费在线| 亚洲欧美国产77777| 色94色欧美sute亚洲线路一ni | 日本欧洲一区二区| 日韩午夜精品视频| 国产乱子伦视频一区二区三区| 国产欧美日韩不卡免费| 99精品视频一区二区三区| 亚洲一级不卡视频| 日韩一区国产二区欧美三区| 国产精品影视网| 中文字幕日韩精品一区 | 国产精品丝袜黑色高跟| 色噜噜偷拍精品综合在线| 天天影视网天天综合色在线播放| 91精选在线观看| 国产sm精品调教视频网站| 国产精品不卡视频| 欧美亚洲动漫另类| 久久疯狂做爰流白浆xx| 中文字幕日韩一区二区| 欧美日本韩国一区| 国产成人免费视频| 一区二区免费看| 精品久久久久久综合日本欧美 | 最新成人av在线| 欧美日韩激情一区二区| 国产精品一区在线观看乱码| 一区二区三区欧美亚洲| 精品久久国产97色综合| 色8久久人人97超碰香蕉987| 激情综合色播五月| 亚洲欧洲美洲综合色网| 日韩欧美中文字幕精品| 97久久超碰国产精品电影| 日本成人中文字幕| 亚洲欧洲综合另类| 精品第一国产综合精品aⅴ| 91在线观看地址| 精品一区二区在线观看| 一区二区国产视频| 欧美精品一区二区三区在线播放| 91免费看`日韩一区二区| 久久99精品国产.久久久久久| 一区二区三区四区在线播放| 欧美精品一区二区精品网| 欧美无人高清视频在线观看| 国产成人a级片| 免费久久精品视频| 亚洲精品国久久99热| 久久精品一区二区三区四区| 欧美写真视频网站| 成人免费精品视频| 国产原创一区二区| 亚洲成人av中文| 伊人色综合久久天天| 国产欧美一区二区三区鸳鸯浴 | 久久久久国产精品麻豆| 欧美日本在线播放| 91国内精品野花午夜精品| 国产精品自拍毛片| 美腿丝袜一区二区三区| 午夜天堂影视香蕉久久| 一区二区在线电影| 国产精品护士白丝一区av| 精品国产伦一区二区三区观看体验| 欧美三级乱人伦电影| 色综合天天视频在线观看 | 久久新电视剧免费观看| 884aa四虎影成人精品一区| 在线一区二区三区四区| 91在线免费播放| 菠萝蜜视频在线观看一区| 国产91精品入口| 国产夫妻精品视频| 精品一区二区三区的国产在线播放| 亚洲国产成人va在线观看天堂| 亚洲蜜臀av乱码久久精品蜜桃| 国产精品免费人成网站| 国产精品麻豆99久久久久久| 国产亚洲欧美在线| 久久久久国产成人精品亚洲午夜| 精品剧情在线观看|