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

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

?? document.cpp

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

    pIDataObject=TransferObjectCreate(fCut);

    if (NULL==pIDataObject)
        return FALSE;
    //End CHAPTER13MOD

    fRet=SUCCEEDED(OleSetClipboard(pIDataObject));
    pIDataObject->Release();

    //Delete our current data if "cut" succeeded.
    if (fRet && fCut)
        {
        m_pPL->New();
        FDirtySet(TRUE);
        }

    return fRet;
    }





/*
 * CCosmoDoc::RenderFormat
 *
 * Purpose:
 *  Renders a specific clipboard format into global memory.
 *
 * Parameters:
 *  cf              UINT format to render.
 *
 * Return Value:
 *  HGLOBAL         Global memory handle containing the data.
 */

HGLOBAL CCosmoDoc::RenderFormat(UINT cf)
    {
    HGLOBAL     hMem;

    if (cf==m_cf)
        {
        m_pPL->DataGetMem(VERSIONCURRENT, &hMem);
        return hMem;
        }

    switch (cf)
        {
        case CF_METAFILEPICT:
            return m_pPL->RenderMetafilePict();

        case CF_BITMAP:
            return (HGLOBAL)m_pPL->RenderBitmap();
        }

    return NULL;
    }







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

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

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

    fRet=FQueryPasteFromData(pIDataObject);
    pIDataObject->Release();
    return fRet;
    }



/*
 * CCosmoDoc::FQueryPasteFromData
 * (Protected)
 *
 * Purpose:
 *  Determines if we can paste data from a data object.
 *
 * Parameters:
 *  pIDataObject    LPDATAOBJECT from which we might want to paste.
 *
 * Return Value:
 *  BOOL            TRUE if data is available, FALSE otherwise.
 */

BOOL CCosmoDoc::FQueryPasteFromData(LPDATAOBJECT pIDataObject)
    {
    FORMATETC       fe;

    SETDefFormatEtc(fe, m_cf, TYMED_HGLOBAL);
    return (NOERROR==pIDataObject->QueryGetData(&fe));
    }




/*
 * CCosmoDoc::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 CCosmoDoc::Paste(HWND hWndFrame)
    {
    LPDATAOBJECT    pIDataObject;
    BOOL            fRet;

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

    fRet=PasteFromData(pIDataObject);
    pIDataObject->Release();

    return fRet;
    }




/*
 * CCosmoDoc::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.
 *
 * Return Value:
 *  BOOL            TRUE if successful, FALSE otherwise.
 */

BOOL CCosmoDoc::PasteFromData(LPDATAOBJECT pIDataObject)
    {
    FORMATETC       fe;
    STGMEDIUM       stm;
    BOOL            fRet;

    SETDefFormatEtc(fe, m_cf, TYMED_HGLOBAL);
    fRet=SUCCEEDED(pIDataObject->GetData(&fe, &stm));

    if (fRet && NULL!=stm.hGlobal)
        {
        m_pPL->DataSetMem(stm.hGlobal, FALSE, FALSE, TRUE);
        ReleaseStgMedium(&stm);
        FDirtySet(TRUE);
        }

    return fRet;
    }




//CHAPTER13MOD
/*
 * CCosmoDoc::TransferObjectCreate
 * (Protected)
 *
 * Purpose:
 *  Creates a DataTransferObject and stuffs the current Polyline
 *  data into it, used for both clipboard and drag-drop operations.
 *
 * Parameters:
 *  fCut            BOOL TRUE if we're cutting, FALSE if we're
 *                  copying.
 *
 * Return Value:
 *  LPDATAOBJECT    Pointer to the object created, NULL on failure
 */

LPDATAOBJECT CCosmoDoc::TransferObjectCreate(BOOL fCut)
    {
    HGLOBAL         hMem;
    UINT            i;
    HRESULT         hr;
    STGMEDIUM       stm;
    FORMATETC       fe;
    LPDATAOBJECT    pIDataObject=NULL;
    const UINT      cFormats=3;
    static UINT     rgcf[3]={0, CF_METAFILEPICT, CF_BITMAP};
    static DWORD    rgtm[3]={TYMED_HGLOBAL, TYMED_MFPICT
                        , TYMED_GDI};

    hr=CoCreateInstance(CLSID_DataTransferObject, NULL
        , CLSCTX_INPROC_SERVER, IID_IDataObject
        , (PPVOID)&pIDataObject);

    if (FAILED(hr))
        return NULL;

    rgcf[0]=m_cf;

    for (i=0; i < cFormats; i++)
        {
        //Copy private data first.
        hMem=RenderFormat(rgcf[i]);

        if (NULL!=hMem)
            {
            stm.hGlobal=hMem;
            stm.tymed=rgtm[i];
            stm.pUnkForRelease=NULL;

            SETDefFormatEtc(fe, rgcf[i], rgtm[i]);

            pIDataObject->SetData(&fe, &stm, TRUE);
            }
        }

    return pIDataObject;    //Caller now responsible
    }



/*
 * CCosmoDoc::DropSelectTargetWindow
 * (Protected)
 *
 * Purpose:
 *  Creates a thin inverted frame around a window that we use to
 *  show the window as a drop target.  This is a toggle function:
 *  It uses XOR to create the effect so it must be called twice to
 *  leave the window as it was.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  None
 */

void CCosmoDoc::DropSelectTargetWindow(void)
    {
    HDC         hDC;
    RECT        rc;
    UINT        dd=3;
    HWND        hWnd;

    hWnd=m_pPL->Window();
    hDC=GetWindowDC(hWnd);
    GetClientRect(hWnd, &rc);

    //Frame this window with inverted pixels

    //Top
    PatBlt(hDC, rc.left, rc.top, rc.right-rc.left, dd, DSTINVERT);

    //Bottom
    PatBlt(hDC, rc.left, rc.bottom-dd, rc.right-rc.left, dd
        , DSTINVERT);

    //Left excluding regions already affected by top and bottom
    PatBlt(hDC, rc.left, rc.top+dd, dd, rc.bottom-rc.top-(2*dd)
        , DSTINVERT);

    //Right excluding regions already affected by top and bottom
    PatBlt(hDC, rc.right-dd, rc.top+dd, dd, rc.bottom-rc.top-(2*dd)
        , DSTINVERT);

    ReleaseDC(hWnd, hDC);
    return;
    }

//End CHAPTER13MOD




/*
 * CCosmoDoc::ColorSet
 *
 * Purpose:
 *  Changes a color used in our contained Polyline.
 *
 * Parameters:
 *  iColor          UINT index of the color to change.
 *  cr              COLORREF new color.
 *
 * Return Value:
 *  COLORREF        Previous color for the given index.
 */

COLORREF CCosmoDoc::ColorSet(UINT iColor, COLORREF cr)
    {
    return m_pPL->ColorSet(iColor, cr);
    }





/*
 * CCosmoDoc::ColorGet
 *
 * Purpose:
 *  Retrieves a color currently in use in the Polyline.
 *
 * Parameters:
 *  iColor          UINT index of the color to retrieve.
 *
 * Return Value:
 *  COLORREF        Current color for the given index.
 */

COLORREF CCosmoDoc::ColorGet(UINT iColor)
    {
    return m_pPL->ColorGet(iColor);
    }






/*
 * CCosmoDoc::LineStyleSet
 *
 * Purpose:
 *  Changes the line style currently used in the Polyline
 *
 * Parameters:
 *  iStyle          UINT index of the new line style to use.
 *
 * Return Value:
 *  UINT            Previous line style.
 */


UINT CCosmoDoc::LineStyleSet(UINT iStyle)
    {
    return m_pPL->LineStyleSet(iStyle);
    }







/*
 * CCosmoDoc::LineStyleGet
 *
 * Purpose:
 *  Retrieves the line style currently used in the Polyline
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  UINT            Current line style.
 */


UINT CCosmoDoc::LineStyleGet(void)
    {
    if (NULL==m_pPL)    //m_pPL might not be valid yet
        return 0L;

    return m_pPL->LineStyleGet();
    }








/*
 * CPolylineAdviseSink::CPolylineAdviseSink
 * CPolylineAdviseSink::~CPolylineAdviseSink
 *
 * Constructor Parameters:
 *  pv              LPVOID to store in this object
 */

CPolylineAdviseSink::CPolylineAdviseSink(LPVOID pv)
    {
    m_pv=pv;
    return;
    }


CPolylineAdviseSink::~CPolylineAdviseSink(void)
    {
    return;
    }





/*
 * CPolylineAdviseSink::OnPointChange
 *
 * Purpose:
 *  Informs the document that the polyline added or removed a point.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  None
 */

void CPolylineAdviseSink::OnPointChange(void)
    {
    PCDocument      pDoc=(PCDocument)m_pv;

    pDoc->FDirtySet(TRUE);
    return;
    }






/*
 * CPolylineAdviseSink::OnSizeChange
 *
 * Purpose:
 *  Informs the document that the polyline changed size.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  None
 */

void CPolylineAdviseSink::OnSizeChange(void)
    {
    PCCosmoDoc      pDoc=(PCCosmoDoc)m_pv;
    RECT            rc;
    DWORD           dwStyle;

    /*
     * Polyline window is informing us that it changed size in
     * response to setting it's data.  Therefore we have to
     * size ourselves accordingly but without moving the screen
     * position of the polyline window.
     */

    pDoc->m_fNoSize=TRUE;

    //Set the document window size.
    GetWindowRect(pDoc->m_pPL->Window(), &rc);
    InflateRect(&rc, 8, 8);

    //Adjust for a window sans menu
    dwStyle=GetWindowLong(pDoc->m_hWnd, GWL_STYLE);
    AdjustWindowRect(&rc, dwStyle, FALSE);

    SetWindowPos(pDoc->m_hWnd, NULL, 0, 0, rc.right-rc.left
        , rc.bottom-rc.top, SWP_NOMOVE | SWP_NOZORDER);

    if (NULL!=pDoc->m_pAdv)
        pDoc->m_pAdv->OnSizeChange(pDoc, &rc);

    pDoc->m_fNoSize=FALSE;
    pDoc->FDirtySet(TRUE);

    return;
    }





/*
 * CPolylineAdviseSink::OnDataChange
 *
 * Purpose:
 *  Informs the document that the polyline data changed.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  None
 */

void CPolylineAdviseSink::OnDataChange(void)
    {
    PCCosmoDoc      pDoc=(PCCosmoDoc)m_pv;

    if (NULL!=pDoc->m_pAdv)
        pDoc->m_pAdv->OnDataChange(pDoc);

    pDoc->FDirtySet(TRUE);
    return;
    }





/*
 * CPolylineAdviseSink::OnColorChange
 *
 * Purpose:
 *  Informs the document that the polyline data changed a color.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  None
 */

void CPolylineAdviseSink::OnColorChange(void)
    {
    PCCosmoDoc      pDoc=(PCCosmoDoc)m_pv;

    pDoc->FDirtySet(TRUE);
    return;
    }





/*
 * CPolylineAdviseSink::OnLineStyleChange
 *
 * Purpose:
 *  Informs the document that the polyline changed its line style.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  None
 */

void CPolylineAdviseSink::OnLineStyleChange(void)
    {
    PCCosmoDoc      pDoc=(PCCosmoDoc)m_pv;

    pDoc->FDirtySet(TRUE);
    return;
    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区中文字幕电影| 99久久精品情趣| 日韩综合小视频| 亚洲网友自拍偷拍| 亚洲国产成人av网| 激情五月激情综合网| 日韩福利视频网| 日本美女视频一区二区| 久久99在线观看| 国产福利一区二区三区视频| 成人免费毛片嘿嘿连载视频| 高清beeg欧美| 91碰在线视频| 欧美三级三级三级爽爽爽| 欧美三级电影在线看| 欧美日韩国产一级二级| 91精品国产一区二区| 日韩色在线观看| 久久久久久久国产精品影院| 国产欧美精品区一区二区三区 | 51午夜精品国产| 91精品在线观看入口| 日韩欧美一级精品久久| 久久综合给合久久狠狠狠97色69| 久久五月婷婷丁香社区| 国产精品女同互慰在线看| 1024国产精品| 亚洲成a人片综合在线| 蜜桃久久精品一区二区| 国产精品一区二区免费不卡| 99久久精品一区二区| 欧美亚洲动漫制服丝袜| 日韩一区二区电影在线| 国产免费观看久久| 有码一区二区三区| 日本欧美肥老太交大片| 国产一区二区女| 91视频你懂的| 日韩欧美国产小视频| 中文字幕一区二区三区乱码在线| 亚洲狠狠爱一区二区三区| 国精产品一区一区三区mba视频 | 亚洲自拍另类综合| 日本va欧美va瓶| 成人免费观看av| 欧美日本在线观看| 国产欧美精品一区aⅴ影院| 亚洲一区二区视频在线观看| 毛片av一区二区| 91同城在线观看| 欧美zozo另类异族| 亚洲男人电影天堂| 六月丁香婷婷久久| 欧洲一区二区三区在线| 欧美精品一区二区久久婷婷| 亚洲老司机在线| 九色综合狠狠综合久久| 91久久精品一区二区| 精品国产乱码久久久久久久久| 亚洲人成网站色在线观看| 老司机午夜精品| 在线精品视频一区二区| 日本一区二区三区在线不卡| 肉肉av福利一精品导航| 99久精品国产| 久久久精品免费网站| 无吗不卡中文字幕| av欧美精品.com| 久久中文字幕电影| 视频一区国产视频| 91网页版在线| 国产精品久久久久久久久免费相片 | 免费看黄色91| 在线观看av一区二区| 国产精品久久久久一区二区三区| 蜜臂av日日欢夜夜爽一区| 日本高清不卡视频| 国产精品入口麻豆九色| 欧美三级视频在线观看| 国产精品不卡在线| 国产曰批免费观看久久久| 欧美电影在线免费观看| 亚洲伦理在线精品| 成人免费毛片嘿嘿连载视频| 久久久亚洲高清| 久久精品国产久精国产| 欧美精品 日韩| 一区二区三区欧美视频| 99re热这里只有精品视频| 久久久国产午夜精品| 久久精品久久精品| 日韩欧美一区二区在线视频| 五月天网站亚洲| 欧美色图片你懂的| 一区二区三区免费| 色老汉一区二区三区| 亚洲视频你懂的| 91在线无精精品入口| ...av二区三区久久精品| 成人综合婷婷国产精品久久免费| 久久女同互慰一区二区三区| 精品综合久久久久久8888| 日韩三级精品电影久久久| 日本一区中文字幕| 91精品国产综合久久久蜜臀粉嫩 | 国产a久久麻豆| 国产婷婷色一区二区三区在线| 国产在线视频不卡二| 精品国产a毛片| 国产精品一级在线| 国产亚洲成av人在线观看导航| 国产精品一区免费在线观看| 久久婷婷国产综合国色天香| 国产精品一品视频| 中文字幕亚洲在| 91网站在线观看视频| 亚洲午夜视频在线| 制服丝袜成人动漫| 另类调教123区 | 三级影片在线观看欧美日韩一区二区| 欧美视频一区在线| 日韩电影免费一区| 2021中文字幕一区亚洲| 丁香五精品蜜臀久久久久99网站| 国产精品色在线观看| 色一情一乱一乱一91av| 五月婷婷激情综合| 久久无码av三级| 91免费版在线看| 丝袜a∨在线一区二区三区不卡| 日韩欧美黄色影院| 岛国av在线一区| 亚洲图片自拍偷拍| 久久人人97超碰com| 色视频一区二区| 日本最新不卡在线| 国产亚洲精品久| 欧美色综合网站| 韩国女主播一区二区三区| 国产精品国产三级国产aⅴ中文| 在线国产亚洲欧美| 狠狠狠色丁香婷婷综合久久五月| 亚洲欧美激情在线| 日韩欧美卡一卡二| 99精品视频在线观看免费| 日韩综合在线视频| 国产精品人人做人人爽人人添| 欧美日韩中文国产| 国产成人啪午夜精品网站男同| 亚洲一区二区三区四区中文字幕| 日韩精品中文字幕一区| 91丨porny丨蝌蚪视频| 毛片一区二区三区| 一区二区三区欧美在线观看| www国产精品av| 欧美视频一区二区三区| 国产成人免费在线视频| 午夜视黄欧洲亚洲| 中文字幕巨乱亚洲| 日韩三级伦理片妻子的秘密按摩| 一本大道综合伊人精品热热| 久久av中文字幕片| 一区二区三区鲁丝不卡| 久久久久久久电影| 欧美一区欧美二区| 色播五月激情综合网| 国产精品一区在线观看乱码| 日本欧美在线看| 一区2区3区在线看| 国产精品美日韩| 久久综合网色—综合色88| 欧美日韩精品免费观看视频| 成人动漫一区二区在线| 国产主播一区二区| 免费在线看成人av| 亚洲二区视频在线| 成人欧美一区二区三区1314| 久久久夜色精品亚洲| 日韩免费高清电影| 欧美日韩另类国产亚洲欧美一级| 不卡一区在线观看| 国产精品18久久久久久久久久久久| 亚洲第一成人在线| 亚洲精品老司机| 国产精品日韩成人| 欧美激情在线一区二区三区| 日韩精品中文字幕一区二区三区 | 国产拍欧美日韩视频二区| 日韩欧美一区在线| 欧美理论片在线| 欧美日韩黄色一区二区| 91玉足脚交白嫩脚丫在线播放| 国产白丝精品91爽爽久久| 黑人巨大精品欧美一区| 久久精品国产网站| 精品一区二区影视| 久久se这里有精品| 韩日欧美一区二区三区| 黄色日韩网站视频| 国精产品一区一区三区mba桃花|