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

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

?? document.cpp

?? 英文版的 想要的話可以下載了 為大家服務
?? CPP
?? 第 1 頁 / 共 3 頁
字號:

            if (FAILED(hr))
                return DOCERR_WRITEFAILURE;

            //If successful, the Commit below finishes the save.
            pIStorage=m_pIStorage;
            m_pIStorage->AddRef();    //Matches Release below
            }
        }

    Rename(pszFile);    //Update caption bar.
    pIStorage->Commit(STGC_DEFAULT);

    /*
     * Revert changes on the original storage.  If this was a temp
     * file, it's deleted since we used STGM_DELETEONRELEASE.
     */
    m_pIStorage->Release();

    //Make this new storage current
    m_pIStorage=pIStorage;
    m_pPG->StorageSet(pIStorage, TRUE, FALSE);

    FDirtySet(FALSE);

    return DOCERR_NONE;
    }








/*
 * CPatronDoc::Clip
 *
 * Purpose:
 *  Places a private format, a metafile, and a bitmap of the display
 *  on the clipboard, optionally implementing Cut by deleting the
 *  data in the current window after rendering.
 *
 * Parameters:
 *  hWndFrame       HWND of the main window.
 *  fCut            BOOL indicating cut (TRUE) or copy (FALSE).
 *
 * Return Value:
 *  BOOL            TRUE if successful, FALSE otherwise.
 */

BOOL CPatronDoc::Clip(HWND hWndFrame, BOOL fCut)
    {
    if (NULL==m_pPG)
        return FALSE;

    return m_pPG->TenantClip(fCut);
    }





/*
 * CPatronDoc::Paste
 *
 * Purpose:
 *  Retrieves the private data format from the clipboard and sets it
 *  to the current figure in the editor window.
 *
 *  Note that if this function is called, then the clipboard format
 *  is available because the Paste menu item is only enabled if the
 *  format is present.
 *
 * Parameters:
 *  hWndFrame       HWND of the main window.
 *
 * Return Value:
 *  BOOL            TRUE if successful, FALSE otherwise.
 */

BOOL CPatronDoc::Paste(HWND hWndFrame)
    {
    LPDATAOBJECT    pIDataObject;
    BOOL            fRet=FALSE;
    FORMATETC       fe;
    TENANTTYPE      tType;

    if (NULL==m_pPG)
        return FALSE;

    if (FAILED(OleGetClipboard(&pIDataObject)))
        return FALSE;

    //Go get type and format we *can* paste, then actually paste it.
    if (FQueryPasteFromData(pIDataObject, &fe, &tType))
        {
        fRet=PasteFromData(pIDataObject, &fe, tType, NULL
            , 0L, TRUE);
        }

    pIDataObject->Release();
    return fRet;
    }




/*
 * CPatronDoc::FQueryPaste
 *
 * Purpose:
 *  Determines if we can paste data from the clipboard.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  BOOL            TRUE if data is available, FALSE otherwise.
 */

BOOL CPatronDoc::FQueryPaste(void)
    {
    LPDATAOBJECT    pIDataObject;
    BOOL            fRet;

    if (FAILED(OleGetClipboard(&pIDataObject)))
        return FALSE;

    fRet=FQueryPasteFromData(pIDataObject, NULL, NULL);

    //CHAPTER20MOD
    fRet |= FQueryPasteLinkFromData(pIDataObject, NULL, NULL);
    //End CHAPTER20MOD

    pIDataObject->Release();
    return fRet;
    }






/*
 * CPatronDoc::PasteSpecial
 *
 * Purpose:
 *  Retrieves a specific data format from the clipboard and sends
 *  it to the editor window appropriately.
 *
 *  Note that if this function is called, then the appropriate
 *  format is available because the Paste menu item is only
 *  enabled if the format is present.
 *
 * Parameters:
 *  hWndFrame       HWND of the main window
 *
 * Return Value:
 *  BOOL            TRUE if successful, FALSE otherwise.
 */

BOOL CPatronDoc::PasteSpecial(HWND hWndFrame)
    {
    OLEUIPASTESPECIAL   ps;
    //CHAPTER20MOD
    OLEUIPASTEENTRY     rgPaste[6];
    UINT                rgcf[1];        //For ps.m_arrLinkTypes
    //End CHAPTER20MOD
    DWORD               dwData=0;
    UINT                uTemp;
    BOOL                fRet=FALSE;

    if (NULL==m_pPG)
        return FALSE;

    memset(&ps, 0, sizeof(ps));

    if (FAILED(OleGetClipboard(&ps.lpSrcDataObj)))
        return FALSE;

    ps.cbStruct=sizeof(ps);
    ps.hWndOwner=hWndFrame;

    ps.dwFlags=PSF_SELECTPASTE;
    ps.arrPasteEntries=rgPaste;

    //Set up Paste Special descriptor arrays.
    SETDefFormatEtc(rgPaste[0].fmtetc, m_cf, TYMED_HGLOBAL);
    rgPaste[0].lpstrFormatName=PSZ(IDS_CLIPBOARDFORMAT);
    rgPaste[0].lpstrResultText=PSZ(IDS_PASTEASPATRON);
    rgPaste[0].dwFlags=OLEUIPASTE_PASTEONLY;

    //Embedded objects can be iconic displays if the user wants.
    SETDefFormatEtc(rgPaste[1].fmtetc, m_cfEmbeddedObject
        , TYMED_ISTORAGE);
    rgPaste[1].lpstrFormatName=PSZ(IDS_PASTEOBJECT);
    rgPaste[1].lpstrResultText=PSZ(IDS_PASTEASOBJECT);

    /*
     * CAUTION:  Use OLEUI_PASTE with embedded objects or else
     * this item will not show up in the dialog.  I learned this the
     * hard way (that is, after about 6 hours of pulling hair!).
     */
    rgPaste[1].dwFlags=OLEUIPASTE_PASTE | OLEUIPASTE_ENABLEICON;


    SETDefFormatEtc(rgPaste[2].fmtetc,CF_METAFILEPICT,TYMED_MFPICT);
    rgPaste[2].lpstrFormatName=PSZ(IDS_PASTEMETAFILE);
    rgPaste[2].lpstrResultText=PSZ(IDS_PASTEASMETAFILE);
    rgPaste[2].dwFlags=OLEUIPASTE_PASTEONLY;

    SETDefFormatEtc(rgPaste[3].fmtetc, CF_DIB, TYMED_HGLOBAL);
    rgPaste[3].lpstrFormatName=PSZ(IDS_PASTEDIB);
    rgPaste[3].lpstrResultText=PSZ(IDS_PASTEASDIB);
    rgPaste[3].dwFlags=OLEUIPASTE_PASTEONLY;

    SETDefFormatEtc(rgPaste[4].fmtetc, CF_BITMAP, TYMED_GDI);
    rgPaste[4].lpstrFormatName=PSZ(IDS_PASTEBITMAP);
    rgPaste[4].lpstrResultText=PSZ(IDS_PASTEASBITMAP);
    rgPaste[4].dwFlags=OLEUIPASTE_PASTEONLY;

    //CHAPTER20MOD
    SETDefFormatEtc(rgPaste[5].fmtetc,m_cfLinkSource,TYMED_ISTREAM);
    rgPaste[5].lpstrFormatName=PSZ(IDS_PASTELINK);
    rgPaste[5].lpstrResultText=PSZ(IDS_PASTEASLINK);
    rgPaste[5].dwFlags=OLEUIPASTE_LINKTYPE1 | OLEUIPASTE_ENABLEICON;

    //Types we can Paste Link from the clipboard.
    rgcf[0]=m_cfLinkSource;
    ps.arrLinkTypes=rgcf;
    ps.cLinkTypes=1;
    ps.cPasteEntries=6;
    //End CHAPTER20MOD

    uTemp=OleUIPasteSpecial(&ps);

    if (OLEUI_OK==uTemp)
        {
        UINT        i=ps.nSelectedIndex;
        TENANTTYPE  tType;

        //CHAPTER20MOD
        if (ps.fLink)
            tType=TENANTTYPE_LINKEDOBJECTFROMDATA;
        else
            {
            if (1==ps.nSelectedIndex)
                tType=TENANTTYPE_EMBEDDEDOBJECTFROMDATA;
            else
                tType=TENANTTYPE_STATIC;
            }
        //End CHAPTER20MOD

        //CHAPTER20MOD
        //Handle iconic aspects...from links as well
        if ((1==i || ps.fLink) && (PSF_CHECKDISPLAYASICON
            & ps.dwFlags) && NULL!=ps.hMetaPict)
        //End CHAPTER20MOD
            {
            rgPaste[i].fmtetc.dwAspect=DVASPECT_ICON;
            dwData=(DWORD)(UINT)ps.hMetaPict;
            }

        fRet=PasteFromData(ps.lpSrcDataObj, &rgPaste[i].fmtetc
            , tType, NULL, dwData, FALSE);

        //Always free this regardless of what we do with it.
        INOLE_MetafilePictIconFree(ps.hMetaPict);
        }

    ps.lpSrcDataObj->Release();
    return fRet;
    }




/*
 * CPatronDoc::FQueryPasteFromData
 * (Protected)
 *
 * Purpose:
 *  Determines if we can paste data from a data object.
 *
 * Parameters:
 *  pIDataObject    LPDATAOBJECT from which we might want to paste.
 *  pFE             LPFORMATETC in which to return the first format
 *                  we can use.  Ignored if NULL.
 *  ptType          PTENANTTYPE in which to store the type of
 *                  object we can paste.  Ignored if NULL.
 *
 * Return Value:
 *  BOOL            TRUE if data is available, FALSE otherwise.
 */

BOOL CPatronDoc::FQueryPasteFromData(LPDATAOBJECT pIDataObject
    , LPFORMATETC pFE, PTENANTTYPE ptType)
    {
    FORMATETC       fe;
    HRESULT         hr, hr2;

    if (NULL!=(LPVOID)ptType)
        *ptType=TENANTTYPE_STATIC;

    //Any of our specific data here?
    SETDefFormatEtc(fe, m_cf, TYMED_HGLOBAL);
    hr=pIDataObject->QueryGetData(&fe);

    //If embedded object data is available, set the appropriate type
    hr2=OleQueryCreateFromData(pIDataObject);

    if (NOERROR==hr2)
        {
        if (NULL!=pFE)
            {
            /*
             * Default to content.  Paste will use
             * CFSTR_OBJECTDESCRIPTOR to figure the actual aspect.
             */
            SETDefFormatEtc(*pFE, m_cfEmbeddedObject
                , TYMED_ISTORAGE);
            }

        if (NULL!=(LPVOID)ptType)
            *ptType=TENANTTYPE_EMBEDDEDOBJECTFROMDATA;

        /*
         * Return now if PatronObject wasn't available, otherwise
         * break out so that pFE gets PatronObject format.
         */
        if (NOERROR!=hr)
            return TRUE;
        }


    if (NOERROR!=hr && NOERROR!=hr2)
        {
        //Try metafile, DIB, then bitmap, setting fe each time
        SETDefFormatEtc(fe, CF_METAFILEPICT, TYMED_MFPICT);
        hr=pIDataObject->QueryGetData(&fe);

        if (NOERROR!=hr)
            {
            SETDefFormatEtc(fe, CF_DIB, TYMED_HGLOBAL);
            hr=pIDataObject->QueryGetData(&fe);

            if (NOERROR!=hr)
                {
                SETDefFormatEtc(fe, CF_BITMAP, TYMED_GDI);
                hr=pIDataObject->QueryGetData(&fe);
                }
            }
        }

    if (NOERROR==hr && NULL!=pFE)
        *pFE=fe;

    return (NOERROR==hr);
    }





//CHAPTER20MOD
/*
 * CPatronDoc::FQueryPasteLinkFromData
 * (Protected)
 *
 * Purpose:
 *  Determines if we can paste link from a data object.
 *
 * Parameters:
 *  pIDataObject    LPDATAOBJECT from which we might want to paste.
 *  pFE             LPFORMATETC in which to return the first format
 *                  we can use.  Ignored if NULL.
 *  ptType          PTENANTTYPE in which to store the type of object
 *                  we can paste.  Ignored if NULL.
 *
 * Return Value:
 *  BOOL            TRUE if data is available, FALSE otherwise.
 */

BOOL CPatronDoc::FQueryPasteLinkFromData(LPDATAOBJECT pIDataObject
    , LPFORMATETC pFE, PTENANTTYPE ptType)
    {
    HRESULT         hr;

    if (NULL==pIDataObject)
        return FALSE;

    hr=OleQueryLinkFromData(pIDataObject);

    if (NOERROR!=hr)
        return FALSE;

    if (NULL!=pFE)
        SETDefFormatEtc(*pFE, m_cfLinkSource, TYMED_ISTREAM);

    if (NULL!=(LPVOID)ptType)
        *ptType=TENANTTYPE_LINKEDOBJECTFROMDATA;

    return TRUE;
    }


//End CHAPTER20MOD




/*
 * CPatronDoc::PasteFromData
 * (Protected)
 *
 * Purpose:
 *  Retrieves the private data format from a data object and sets
 *  it to the current figure in the editor window.
 *
 * Parameters:
 *  pIDataObject    LPDATAOBJECT from which to paste.
 *  pFE             LPFORMATETC to use in the paste. Cannot be NULL.
 *  tType           TENANTTYPE to paste.
 *  ppo             PPATRONOBJECT containing placement data.
 *  dwData          DWORD extra data sensitive to tType
 *  fUseObjDesc     BOOL indicating to use CFSTR_OBJECTDESCRIPTOR
 *                  format for determining the aspect of the object
 *                  if the format is available.
 *
 * Return Value:
 *  BOOL            TRUE if successful, FALSE otherwise.
 */

BOOL CPatronDoc::PasteFromData(LPDATAOBJECT pIDataObject
    , LPFORMATETC pFE, TENANTTYPE tType, PPATRONOBJECT ppo
    , DWORD dwData, BOOL fUseObjDesc)
    {
    BOOL                fRet;
    HRESULT             hr;
    PATRONOBJECT        po;
    STGMEDIUM           stm;
    LPOBJECTDESCRIPTOR  pOD;
    FORMATETC           fe;
    BOOL                fRelease=FALSE;

    if (NULL==pFE)
        return FALSE;

    //If not given any placement data, see if we can retrieve it
    if (pFE->cfFormat==m_cf && NULL==ppo)
        {
        hr=pIDataObject->GetData(pFE, &stm);

        if (SUCCEEDED(hr))
            {
            ppo=(PPATRONOBJECT)GlobalLock(stm.hGlobal);

            po=*ppo;
            ppo=&po;

            //If there's an object here, make sure type is right.
            if (ppo->fe.cfFormat==m_cfEmbeddedObject)
                tType=TENANTTYPE_EMBEDDEDOBJECTFROMDATA;

            //CHAPTER20MOD
            if (ppo->fe.cfFormat==m_cfLinkSource)
                tType=TENANTTYPE_LINKEDOBJECTFROMDATA;
            //End CHAPTER20MOD

            GlobalUnlock(stm.hGlobal);
            ReleaseStgMedium(&stm);
            }
        }

    /*
     * If we're told to look at CFSTR_OBJECTDESCRIPTOR, then try to get
     * the data and copy the aspect out of it.  We're not interested
     * in any other part of it, however.
     */
    if (fUseObjDesc)
        {

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
五月婷婷另类国产| 精品成人私密视频| 国产亚洲精品久| 亚洲福利一区二区| 成人午夜伦理影院| 精品国产百合女同互慰| 亚洲精品久久久蜜桃| 国产成人精品1024| 欧美tk丨vk视频| 亚洲福利国产精品| 久久久久88色偷偷免费| 欧美日本韩国一区二区三区视频| 久久精品99久久久| 日本成人在线网站| 国产精品一区二区黑丝| 欧美在线免费视屏| 日本一区二区三区国色天香| 视频一区视频二区中文字幕| 波多野结衣中文字幕一区| 日韩一卡二卡三卡| 日本午夜一区二区| 欧美日韩色一区| 亚洲午夜精品在线| 91视视频在线观看入口直接观看www| 日韩欧美第一区| 美女在线观看视频一区二区| 欧洲国产伦久久久久久久| 国产精品国产三级国产普通话蜜臀| 麻豆视频观看网址久久| 欧美一区二区三区在线观看视频| 亚洲444eee在线观看| 欧美日韩国产美| 国产91丝袜在线播放九色| 亚洲综合网站在线观看| 日韩三级中文字幕| 成人综合婷婷国产精品久久蜜臀 | 免播放器亚洲一区| 欧美色图天堂网| 亚洲欧美视频在线观看视频| 成人国产免费视频| 亚洲国产精华液网站w| 国产精品一区二区男女羞羞无遮挡 | 亚洲电影中文字幕在线观看| 一本一本大道香蕉久在线精品 | 懂色一区二区三区免费观看| 日韩视频在线永久播放| 婷婷综合另类小说色区| 欧美一区二区福利视频| 美美哒免费高清在线观看视频一区二区| 欧美欧美欧美欧美| 日韩av电影免费观看高清完整版在线观看| 在线观看91精品国产入口| 亚洲成人av福利| 日韩亚洲国产中文字幕欧美| 麻豆精品视频在线观看视频| 欧美videofree性高清杂交| 国产综合色产在线精品| 日本一区二区视频在线观看| 99久久精品免费观看| 一区二区三区四区精品在线视频| 欧美午夜精品一区二区三区 | 国产精品你懂的在线| 波多野结衣一区二区三区| 亚洲乱码一区二区三区在线观看| 欧美性受xxxx黑人xyx| 91视频在线观看免费| 一区二区日韩电影| 欧美一区二区三区四区五区| 国产在线日韩欧美| 中文无字幕一区二区三区 | 久久精品久久综合| 久久久久久久综合狠狠综合| 99在线视频精品| 在线看国产一区二区| eeuss鲁片一区二区三区在线观看| 国产成人精品免费一区二区| 亚洲成人资源在线| 一区二区三区中文字幕电影| 中文字幕一区二区三区四区 | 国产日韩欧美制服另类| 在线成人免费观看| 欧美精品乱码久久久久久按摩| 日本韩国欧美一区二区三区| 日韩视频一区二区三区在线播放 | 国产欧美一区二区精品仙草咪| av色综合久久天堂av综合| 亚洲成a人v欧美综合天堂| 久久香蕉国产线看观看99| 97超碰欧美中文字幕| 日韩av不卡在线观看| 欧美韩日一区二区三区| 欧美色综合网站| 国内外精品视频| 亚洲乱码国产乱码精品精可以看 | 色欲综合视频天天天| 奇米四色…亚洲| 综合自拍亚洲综合图不卡区| 欧美一二三区在线观看| voyeur盗摄精品| 天天av天天翘天天综合网色鬼国产| 欧美精品一区二区三区久久久| 91蜜桃网址入口| 极品少妇一区二区| 亚洲精品菠萝久久久久久久| 精品电影一区二区| 欧美三片在线视频观看| 大白屁股一区二区视频| 午夜不卡av免费| 中文字幕制服丝袜成人av| 欧美一级高清大全免费观看| 91在线观看美女| 久久66热re国产| 亚洲一区二区黄色| 国产精品久久久久久亚洲伦| 日韩一区二区三区视频在线| 色狠狠一区二区三区香蕉| 国产精品亚洲а∨天堂免在线| 午夜精品一区二区三区三上悠亚| 国产精品欧美一级免费| 精品欧美久久久| 777午夜精品视频在线播放| 亚洲一区二区三区不卡国产欧美 | 日本高清不卡视频| 国产精品不卡在线| 日韩福利视频网| 99久久精品一区二区| 91精品一区二区三区在线观看| 亚洲国产精品t66y| 蜜桃免费网站一区二区三区| 色综合久久综合网| 久久蜜桃av一区精品变态类天堂| 一区二区三区在线免费| 91免费看视频| 日韩精品国产欧美| 综合网在线视频| 亚洲国产电影在线观看| 精品国产1区二区| 欧美一区二区啪啪| 欧美精品三级日韩久久| 一本到高清视频免费精品| 成人亚洲精品久久久久软件| 精品在线播放午夜| 日本不卡123| 婷婷丁香久久五月婷婷| 亚洲成人av福利| 亚洲第一福利一区| 亚洲无线码一区二区三区| 亚洲精品国产精华液| 18涩涩午夜精品.www| 国产精品日产欧美久久久久| 久久久精品一品道一区| 久久久亚洲精品一区二区三区| 精品成人免费观看| 久久在线免费观看| 亚洲精品一区二区三区福利| 欧美成人性福生活免费看| 欧美一区二区三区视频在线观看| 91精品国产一区二区三区| 欧美一卡二卡在线观看| 91精品国产品国语在线不卡| 欧美一区二区三区在线电影 | 国产在线精品国自产拍免费| 久久精品国产99国产| 亚洲天堂久久久久久久| 91精品国产综合久久精品麻豆| 视频一区二区三区中文字幕| 欧美日韩一卡二卡三卡| 日韩成人免费电影| 欧美电影精品一区二区| www.欧美精品一二区| 亚洲天堂av一区| 欧美色图片你懂的| 日本成人在线不卡视频| 丝袜美腿一区二区三区| 亚洲天堂中文字幕| 亚洲精品国产无套在线观| 亚洲一区二区三区四区五区中文| 亚洲高清视频在线| 欧美精三区欧美精三区| 国产福利一区二区| 香蕉av福利精品导航| 久久综合色播五月| 在线视频一区二区三区| 日韩av一区二区三区四区| 久久嫩草精品久久久精品| 精品久久久久久久一区二区蜜臀| 欧美激情一区二区三区四区| 亚洲a一区二区| 成人av网站免费观看| 91麻豆精品秘密| 成人免费毛片app| 日本欧美韩国一区三区| 国产精品久久久久9999吃药| 欧美xxxxx裸体时装秀| 欧美亚洲综合网| 成人sese在线| 国产美女精品在线| 国产精品99久久久久久似苏梦涵 | 美女网站在线免费欧美精品| 国产一区二区导航在线播放|