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

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

?? ioleobj.cpp

?? 英文版的 想要的話可以下載了 為大家服務
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*
 * IOLEOBJ.CPP
 * Polyline Component Chapter 23
 *
 * Implementation of the IOleObject interface for Polyline.  Some of
 * these just pass through to the default handler which does default
 * implementations.
 *
 * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
 *
 * Kraig Brockschmidt, Microsoft
 * Internet  :  kraigb@microsoft.com
 * Compuserve:  >INTERNET:kraigb@microsoft.com
 */


#include "polyline.h"


/*
 * CImpIOleObject::CImpIOleObject
 * CImpIOleObject::~CImpIOleObject
 *
 * Parameters (Constructor):
 *  pObj            PCPolyline of the object we're in.
 *  pUnkOuter       LPUNKNOWN to which we delegate.
 */

CImpIOleObject::CImpIOleObject(PCPolyline pObj
    , LPUNKNOWN pUnkOuter)
    {
    m_cRef=0;
    m_pObj=pObj;
    m_pUnkOuter=pUnkOuter;
    return;
    }

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



/*
 * CImpIOleObject::QueryInterface
 * CImpIOleObject::AddRef
 * CImpIOleObject::Release
 *
 * Purpose:
 *  IUnknown members for CImpIOleObject object.
 */

STDMETHODIMP CImpIOleObject::QueryInterface(REFIID riid, PPVOID ppv)
    {
    return m_pUnkOuter->QueryInterface(riid, ppv);
    }


STDMETHODIMP_(ULONG) CImpIOleObject::AddRef(void)
    {
    ++m_cRef;
    return m_pUnkOuter->AddRef();
    }

STDMETHODIMP_(ULONG) CImpIOleObject::Release(void)
    {
    --m_cRef;
    return m_pUnkOuter->Release();
    }





/*
 * CImpIOleObject::SetClientSite
 * CImpIOleObject::GetClientSite
 *
 * Purpose:
 *  Manages the IOleClientSite pointer of our container.
 */

STDMETHODIMP CImpIOleObject::SetClientSite
    (LPOLECLIENTSITE pIOleClientSite)
    {
    if (NULL!=m_pObj->m_pIOleClientSite)
        m_pObj->m_pIOleClientSite->Release();

    m_pObj->m_pIOleClientSite=pIOleClientSite;

    if (NULL!=m_pObj->m_pIOleClientSite)
        {
        HRESULT         hr;
        LPMONIKER       pmk;
        LPOLECONTAINER  pIOleCont;

        m_pObj->m_pIOleClientSite->AddRef();

        /*
         * Within IRunnableObject::Run we're supposed to register
         * ourselves as running...however, the moniker has to come
         * from the container's IOleClientSite::GetMoniker.  But
         * Run is called before SetClientSite here, so we have to
         * register now that we do have the client site as well
         * as lock the container.
         */

        hr=m_pObj->m_pIOleClientSite->GetMoniker
            (OLEGETMONIKER_ONLYIFTHERE, OLEWHICHMK_OBJFULL, &pmk);

        if (SUCCEEDED(hr))
            {
            INOLE_RegisterAsRunning(this, pmk, 0
                , &m_pObj->m_dwRegROT);
            pmk->Release();
            }

        hr=m_pObj->m_pIOleClientSite->GetContainer(&pIOleCont);

        if (SUCCEEDED(hr))
            {
            m_pObj->m_fLockContainer=TRUE;
            pIOleCont->LockContainer(TRUE);
            pIOleCont->Release();
            }
        }

    return NOERROR;
    }

STDMETHODIMP CImpIOleObject::GetClientSite(LPOLECLIENTSITE *ppSite)
    {
    //Be sure to AddRef the new pointer you are giving away.
    *ppSite=m_pObj->m_pIOleClientSite;
    m_pObj->m_pIOleClientSite->AddRef();

    return NOERROR;
    }





/*
 * CImpIOleObject::SetHostNames
 *
 * Purpose:
 *  Provides the object with names of the container application and
 *  the object in the container to use in object user interface.
 *
 * Parameters:
 *  pszApp          LPCOLESTR of the container application.
 *  pszObj          LPCOLESTR of some name that is useful in window
 *                  titles.
 *
 * Return Value:
 *  HRESULT         NOERROR
 */

STDMETHODIMP CImpIOleObject::SetHostNames(LPCOLESTR pszApp
    , LPCOLESTR pszObj)
    {
    if (NULL!=m_pObj->m_hDlg)
        {
        TCHAR       szTemp[128];

       #ifdef WIN32ANSI
        char        szObj[80];
        WideCharToMultiByte(CP_ACP, 0, pszObj, -1, szObj, 80
            , NULL, NULL);
        wsprintf(szTemp, SZPOLYFRAMETITLE, szObj);
       #else
        wsprintf(szTemp, SZPOLYFRAMETITLE, pszObj);
       #endif
        SetWindowText(m_pObj->m_hDlg, szTemp);
        }

    return NOERROR;
    }





/*
 * CImpIOleObject::Close
 *
 * Purpose:
 *  Forces the object to close down its user interface and unload.
 *
 * Parameters:
 *  dwSaveOption    DWORD describing the circumstances under which
 *                  the object is being saved and closed.
 *
 * Return Value:
 *  HRESULT         NOERROR or a general error value.
 */

STDMETHODIMP CImpIOleObject::Close(DWORD dwSaveOption)
    {
    HWND        hWnd;
    BOOL        fSave=FALSE;

    hWnd=m_pObj->m_hDlg;

    //If object is dirty and we're asked to save, save it and close.
    if (OLECLOSE_SAVEIFDIRTY==dwSaveOption && m_pObj->m_fDirty)
        fSave=TRUE;

    /*
     * If asked to prompt, only do so if dirty, then if we get a
     * YES, save as usual and close.  On NO, just close.  On
     * CANCEL return OLE_E_PROMPTSAVECANCELLED.
     */
    if (OLECLOSE_PROMPTSAVE==dwSaveOption && m_pObj->m_fDirty)
        {
        TCHAR       szTitle[20];
        TCHAR       szTemp[80];
        UINT        uRet;

        lstrcpy(szTitle, m_pObj->String(IDS_CLOSECAPTION));
        lstrcpy(szTemp, m_pObj->String(IDS_CLOSEPROMPT));

        uRet=MessageBox(hWnd, szTemp, szTitle, MB_YESNOCANCEL);

        if (IDCANCEL==uRet)
            return ResultFromScode(OLE_E_PROMPTSAVECANCELLED);

        if (IDYES==uRet)
            fSave=TRUE;
        }

    if (fSave)
        {
        m_pObj->SendAdvise(OBJECTCODE_SAVEOBJECT);
        m_pObj->SendAdvise(OBJECTCODE_SAVED);
        }

    //We get directly here on OLECLOSE_NOSAVE.
    if (m_pObj->m_fLockContainer)
        {
        //Match LockContainer call from SetClientSite
        LPOLECONTAINER  pIOleCont;

        if (SUCCEEDED(m_pObj->m_pIOleClientSite
            ->GetContainer(&pIOleCont)))
            {
            pIOleCont->LockContainer(FALSE);
            pIOleCont->Release();
            }
        }

    if (NULL!=hWnd)
        {
        //This hides the window and sends the appropriate notify.
        DoVerb(OLEIVERB_HIDE, NULL, NULL, -1, NULL, NULL);

        m_pObj->SendAdvise(OBJECTCODE_CLOSED);
        PostMessage(hWnd, POLYM_CLOSE, 0, 0L);
        }

    return NOERROR;
    }




/*
 * CImpIOleObject::DoVerb
 *
 * Purpose:
 *  Executes an object-defined action.
 *
 * Parameters:
 *  iVerb           LONG index of the verb to execute.
 *  pMSG            LPMSG describing the event causing the
 *                  activation.
 *  pActiveSite     LPOLECLIENTSITE to the site involved.
 *  lIndex          LONG the piece on which execution is happening.
 *  hWndParent      HWND of the window in which the object can play
 *                  in-place.
 *  pRectPos        LPRECT of the object in hWndParent where the
 *                  object can play in-place if desired.
 *
 * Return Value:
 *  HRESULT         NOERROR or a general error value.
 */

STDMETHODIMP CImpIOleObject::DoVerb(LONG iVerb, LPMSG pMSG
    , LPOLECLIENTSITE pActiveSite, LONG lIndex, HWND hWndParent
    , LPCRECT pRectPos)
    {
    HRESULT     hr;

    switch (iVerb)
        {
        case OLEIVERB_HIDE:
            //CHAPTER23MOD
            if (NULL!=m_pObj->m_pIOleIPSite)
                {
                if (NULL!=m_pObj->m_pHW)
                    ShowWindow(m_pObj->m_pHW->Window(), SW_HIDE);
                }
            else
                {
                if (NULL!=m_pObj->m_hDlg)
                    ShowWindow(m_pObj->m_hDlg, SW_HIDE);
                }

            m_pObj->SendAdvise(OBJECTCODE_HIDEWINDOW);
            m_pObj->m_fAllowInPlace=TRUE;
            //End CHAPTER23MOD

            break;

        //CHAPTER23MOD
        case OLEIVERB_PRIMARY:
        case OLEIVERB_SHOW:
            if (NULL!=m_pObj->m_pIOleIPSite)
                {
                if (NULL!=m_pObj->m_pHW)
                    ShowWindow(m_pObj->m_pHW->Window(), SW_HIDE);

                return NOERROR; //Already active
                }

            if (m_pObj->m_fAllowInPlace)
                {
                if (SUCCEEDED(m_pObj->InPlaceActivate(pActiveSite
                    , TRUE)))
                    return NOERROR;
                }
            //FALL THROUGH
        //End CHAPTER23MOD

        case OLEIVERB_OPEN:

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
911国产精品| 欧美日韩国产综合久久| 91亚洲国产成人精品一区二区三| 国产99久久久国产精品潘金| 欧美精品色一区二区三区| 国产精品欧美极品| 丁香六月综合激情| 国产日韩精品一区| 日本丰满少妇一区二区三区| 香蕉加勒比综合久久| 91福利视频网站| 亚洲二区在线视频| 欧美一区二区二区| 国产在线精品一区二区| 国产欧美一区视频| 99久久伊人网影院| 天天操天天干天天综合网| 91精品国产麻豆国产自产在线 | 丝袜美腿亚洲色图| 2020国产精品久久精品美国| 狠狠v欧美v日韩v亚洲ⅴ| 欧美日韩五月天| 国产成人免费视频网站 | 在线看日韩精品电影| 亚洲一区二区三区四区在线| 国产精品伦一区| 欧美日韩综合在线| 91在线精品秘密一区二区| 中文字幕一区在线| 色综合色综合色综合| 免费高清在线视频一区·| 99国产精品久久| 91视视频在线观看入口直接观看www| 国产一区视频导航| 精品国产乱码久久久久久图片| 偷拍一区二区三区| 制服.丝袜.亚洲.另类.中文| 91精品国产综合久久久久久漫画| 欧美激情一区二区在线| 精品一区二区三区欧美| 国产成人精品一区二| 久久久蜜桃精品| 国产精选一区二区三区| 久久久精品国产免大香伊 | 欧美国产一区视频在线观看| 国内成人精品2018免费看| 欧美精品一区二区三| 国产精品一区二区91| 中文字幕二三区不卡| caoporm超碰国产精品| 亚洲人成在线观看一区二区| 在线观看日韩精品| 日韩av午夜在线观看| 亚洲精品在线免费观看视频| 国产一区二区主播在线| 中文字幕亚洲区| 欧美日韩视频一区二区| 美女爽到高潮91| 国产精品三级在线观看| 色婷婷精品久久二区二区蜜臀av | 国产福利一区在线| 中文字幕一区二区三区精华液 | 色综合天天天天做夜夜夜夜做| 亚洲综合免费观看高清完整版 | 久久网站最新地址| 成人avav影音| 午夜在线电影亚洲一区| 久久免费的精品国产v∧| 99久久精品一区二区| 日韩国产欧美在线观看| 久久久国际精品| 欧美亚洲国产一区二区三区va| 久久国产精品99久久久久久老狼 | av电影在线不卡| 视频一区欧美日韩| 中文字幕精品一区二区精品绿巨人 | 亚欧色一区w666天堂| 久久日韩粉嫩一区二区三区| 91一区二区在线| 久久精品国产色蜜蜜麻豆| 中文字幕日韩一区| 精品国产不卡一区二区三区| 一本到一区二区三区| 国内偷窥港台综合视频在线播放| 亚洲精品国产第一综合99久久| 日韩欧美成人一区| 欧日韩精品视频| 成人黄色av电影| 精品一区二区av| 亚洲成人资源网| 亚洲美女屁股眼交| 国产三级欧美三级日产三级99 | 欧美日韩国产精品自在自线| 国产高清不卡二三区| 全部av―极品视觉盛宴亚洲| 一区二区三区四区av| 亚洲国产精品激情在线观看| 欧美一区二区三区性视频| 欧美在线制服丝袜| 成人av午夜影院| 国产精品一级黄| 久88久久88久久久| 日本午夜一本久久久综合| 一区二区免费看| 日韩一区中文字幕| 中文字幕一区视频| 中文字幕日本不卡| 国产女人aaa级久久久级 | 91精品国产高清一区二区三区| 91视频国产观看| 91在线观看地址| 91在线小视频| 色播五月激情综合网| 97精品超碰一区二区三区| 成人ar影院免费观看视频| 懂色av一区二区夜夜嗨| 国产成人精品aa毛片| 东方欧美亚洲色图在线| 成人的网站免费观看| 成人av午夜影院| 91久久香蕉国产日韩欧美9色| 91视频www| 欧美日韩一区二区在线观看| 在线播放91灌醉迷j高跟美女| 亚洲电影第三页| 午夜精品视频一区| 麻豆精品视频在线观看视频| 麻豆视频一区二区| 国产精品一二二区| www.欧美日韩| 欧洲一区在线观看| 91精品久久久久久久久99蜜臂| 日韩三级中文字幕| 久久综合九色综合97婷婷女人 | 亚洲自拍偷拍网站| 天天影视网天天综合色在线播放| 男男视频亚洲欧美| 国产成人精品免费视频网站| 成人avav在线| 欧美精品国产精品| 久久欧美一区二区| 亚洲精品乱码久久久久久久久| 婷婷成人激情在线网| 精品一二三四区| 99热国产精品| 日韩一区二区在线观看视频播放| 久久一夜天堂av一区二区三区| 国产精品久久久久久久久快鸭| 亚洲一二三区在线观看| 精品写真视频在线观看| www.亚洲在线| 日韩视频一区二区三区在线播放| 国产精品青草综合久久久久99| 亚洲色图.com| 一区二区三区不卡视频| 老司机精品视频线观看86| 成人免费毛片app| 欧美精品久久久久久久多人混战| 久久亚洲私人国产精品va媚药| 亚洲欧洲日本在线| 蜜臀精品一区二区三区在线观看| 成人网男人的天堂| 欧美一区二区国产| 亚洲一区二区三区美女| 国产东北露脸精品视频| 欧美卡1卡2卡| 亚洲日韩欧美一区二区在线| 麻豆专区一区二区三区四区五区| 91欧美激情一区二区三区成人| 精品国产不卡一区二区三区| 日韩美女一区二区三区四区| 国产日韩影视精品| 毛片av中文字幕一区二区| 91女神在线视频| 精品日本一线二线三线不卡| 亚洲精品亚洲人成人网| www.欧美.com| 久久精品人人爽人人爽| 天堂一区二区在线免费观看| 91在线观看一区二区| 国产精品久久久爽爽爽麻豆色哟哟| 日韩激情一二三区| 色老汉一区二区三区| 欧美极品xxx| 国产一区二区三区| 精品久久久久一区二区国产| 亚洲成人免费影院| 欧美午夜精品久久久久久超碰 | 制服丝袜日韩国产| 亚洲国产精品久久久久秋霞影院| kk眼镜猥琐国模调教系列一区二区 | 欧洲另类一二三四区| 日韩一区在线免费观看| aaa国产一区| 日韩伦理免费电影| 99久久久久免费精品国产| 国产精品二三区| 岛国一区二区三区| 中文字幕一区二| 91在线观看一区二区|