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

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

?? pages.cpp

?? 英文版的 想要的話可以下載了 為大家服務(wù)
?? CPP
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
        //Close the current page, committing changes.
        m_pPageCur->Close(TRUE);
        }

    //Create and open the new page.
    if (!PageAdd(m_iPageCur, m_dwIDNext, TRUE))
        return 0;

    m_dwIDNext++;
    m_iPageCur++;
    m_cPages++;

    InvalidateRect(m_hWnd, NULL, FALSE);
    UpdateWindow(m_hWnd);

    PageGet(m_iPageCur, &m_pPageCur, FALSE);
    return m_iPageCur;
    }







/*
 * CPages::PageDelete
 *
 * Removes the current page from the page list.
 *
 * Parameters:
 *  uReserved       UINT unused
 *
 * Return Value:
 *  UINT            Index to the now current page from the page
 *                  list, NOVALUE on error.
 */

UINT CPages::PageDelete(UINT uReserved)
    {
    PCPage      pPage;

    if (!PageGet(m_iPageCur, &pPage, FALSE))
        return NOVALUE;

    //Delete the page in both the storage and in memory.
    SendMessage(m_hWndPageList, LB_DELETESTRING, m_iPageCur, 0L);

    m_pPageCur->Destroy(m_pIStorage);

    delete m_pPageCur;   //Does final pPage->Close
    m_pPageCur=NULL;

    /*
     * If this is the last page then the current is one less.  If
     * it's the only page the current is zero.  Otherwise the
     * current is the next page.
     */

    if (m_iPageCur==m_cPages-1)   //Covers last or only page.
        m_iPageCur--;

    m_cPages--;

    //Insure the new visible page is open.
    if (0!=m_cPages)
        {
        PageGet(m_iPageCur, &m_pPageCur, TRUE);
        InvalidateRect(m_hWnd, NULL, FALSE);
        }
    else
        InvalidateRect(m_hWnd, NULL, TRUE);

    UpdateWindow(m_hWnd);
    return m_iPageCur;
    }






/*
 * CPages::CurPageGet
 *
 * Purpose:
 *  Retrieves the index of the current page we're viewing.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  UINT            Index of the current page.
 */

UINT CPages::CurPageGet(void)
    {
    return m_iPageCur;
    }





/*
 * CPages::CurPageSet
 *
 * Purpose:
 *  Sets the index of the current page to view.
 *
 * Parameters:
 *  iPage           UINT index of the page to view. 0 means first
 *                  page, NOVALUE means last page.
 *
 * Return Value:
 *  UINT            Index of the previous current page, NOVALUE on
 *                  error.
 */

UINT CPages::CurPageSet(UINT iPage)
    {
    UINT    iPageNew;
    UINT    iPagePrev=m_iPageCur;
    PCPage  pPage;

    switch (iPage)
        {
        case 0:
            iPageNew=0;
            break;

        case NOVALUE:
            iPageNew=m_cPages-1;
            break;

        default:
            if (iPage >= m_cPages)
                iPage=0;

            iPageNew=iPage;
            break;
        }

    //No reason to switch to the same page.
    if (iPagePrev==iPageNew)
        return iPage;

    //Close the old page committing changes.
    if (!PageGet(iPagePrev, &pPage, FALSE))
        return NOVALUE;

    pPage->Close(TRUE);

    m_iPageCur=iPageNew;

    //Open the new page.
    PageGet(m_iPageCur, &m_pPageCur, TRUE);

    InvalidateRect(m_hWnd, NULL, FALSE);
    UpdateWindow(m_hWnd);
    return iPagePrev;
    }





/*
 * CPages::NumPagesGet
 *
 * Purpose:
 *  Returns the number of pages this object current contains.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  UINT            Number of pages we contain.
 */

UINT CPages::NumPagesGet(void)
    {
    return m_cPages;
    }





/*
 * CPages::TenantCreate
 * CPages::TenantDestroy
 *
 * Purpose:
 *  Pass-throughs for CPage members on the current page.
 */

BOOL CPages::TenantCreate(TENANTTYPE tType, LPVOID pv
    , LPFORMATETC pFE, PPATRONOBJECT ppo, DWORD dwData)
    {
    BOOL    fRet;

    if (NULL==m_pPageCur)
        return FALSE;

    fRet=m_pPageCur->TenantCreate(tType, pv, pFE, ppo, dwData);
    m_fDirty |= fRet;
    return fRet;
    }


BOOL CPages::TenantDestroy(void)
    {
    BOOL    fRet;

    if (NULL==m_pPageCur)
        return FALSE;

    fRet=m_pPageCur->TenantDestroy();
    m_fDirty |= fRet;
    return fRet;
    }



/*
 * CPages::TenantClip
 *
 * Purpose:
 *  Copies or cuts the currently selected tenant to the clipoard.
 *
 * Parameters:
 *  fCut            BOOL TRUE to cut the object, FALSE to copy.
 *
 * Return Value:
 *  BOOL            TRUE if successful, FALSE otherwise.
 */

BOOL CPages::TenantClip(BOOL fCut)
    {
    BOOL    fRet;

    if (NULL==m_pPageCur)
        return FALSE;

    fRet=m_pPageCur->TenantClip(fCut);
    m_fDirty |= (fRet && fCut);
    return fRet;
    }






/*
 * CPages::FQueryObjectSelected
 *
 * Purpose:
 *  Returns whether or not there is an object selected on this
 *  page for Cut, Copy, Delete functions.
 *
 * Parameters:
 *  hMenu           HMENU on which object related items live.
 *
 * Return Value:
 *  BOOL            TRUE if we have an object, FALSE otherwise.
 */

BOOL CPages::FQueryObjectSelected(HMENU hMenu)
    {
    if (NULL==m_pPageCur)
        return FALSE;

    return m_pPageCur->FQueryObjectSelected(hMenu);
    }



/*
 * CPages::ActivateObject
 *
 * Purpose:
 *  Executes a verb on the currently selected object.
 *
 * Parameters:
 *  iVerb           LONG of the selected verb.
 *
 * Return Value:
 *  None
 */

void CPages::ActivateObject(LONG iVerb)
    {
    if (NULL==m_pPageCur)
        return;

    m_pPageCur->ActivateObject(iVerb);
    return;
    }



//CHAPTER20MOD

/*
 * CPages::ShowObjectTypes
 *
 * Purpose:
 *  Pass-through to CPage::ShowObjectTypes
 *
 * Parameters:
 *  fShow           BOOL indicating to show the type or not.
 *
 * Return Value:
 *  None
 */

void CPages::ShowObjectTypes(BOOL fShow)
    {
    if (NULL==m_pPageCur)
        return;

    m_fShowTypes=fShow;
    m_pPageCur->ShowObjectTypes(fShow);
    return;
    }




/*
 * CPages::NotifyTenantsOfRename
 *
 * Purpose:
 *  Pass-through to CPage to tell tenants that the document
 *  changes names.
 *
 * Parameters:
 *  pszFile         LPTSTR of the new filename.
 *  pmk             LPMONKIER to the new file moniker.
 *
 * Return Value:
 *  None
 */

void CPages::NotifyTenantsOfRename(LPTSTR pszFile, LPMONIKER pmk)
    {
    if (NULL==m_pPageCur)
        return;

    m_pPageCur->NotifyTenantsOfRename(pszFile, pmk);
    return;
    }




/*
 * CPages::FQueryLinksInPage
 *
 * Purpose:
 *  Pass through to current page to see if there are any
 *  linked objects
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  None
 */

BOOL CPages::FQueryLinksInPage()
    {
    if (NULL==m_pPageCur)
        return FALSE;

    return m_pPageCur->FQueryLinksInPage();
    }





/*
 * CPages::GetUILinkContainer
 *
 * Purpose:
 *  Creates an object with the IOleUILinkContainer interface for
 *  the links dialog.  We know the current page which is what
 *  we need to create this thing, so we can create it here instead
 *  of bugging the page for it.
 *
 * Parameters:
 *  ppObj           PCIOleUILinkContainer * in which we return
 *                  the pointer.
 *
 * Return Value:
 *  BOOL            TRUE if successful, FALSE otherwise.
 */

BOOL CPages::GetUILinkContainer(PCIOleUILinkContainer *ppObj)
    {
    PCIOleUILinkContainer   pObj;

    *ppObj=NULL;

    if (NULL==m_pPageCur)
        return FALSE;

    pObj=new CIOleUILinkContainer(m_pPageCur);

    if (NULL==pObj)
        return FALSE;

    if (!pObj->Init())
        {
        delete pObj;
        return FALSE;
        }

    pObj->AddRef();
    *ppObj=pObj;
    return TRUE;
    }
//End CHAPTER20MOD




/*
 * CPages::ConvertObject
 *
 * Purpose:
 *  Pass-through to the current page.
 *
 * Parameters:
 *  hWndFrame       HWND of the frame window.
 *
 * Return Value:
 *  BOOL            TRUE if the function is successful, FALSE
 *                  otherwise.
 */

BOOL CPages::ConvertObject(HWND hWndFrame)
    {
    if (NULL==m_pPageCur)
        return FALSE;

    return m_pPageCur->ConvertObject(hWndFrame, FALSE);
    }





/*
 * CPages::CalcBoundingRect
 * (Protected)
 *
 * Purpose:
 *  Calculates a rectangle that bounds the printed page and the
 *  current scroll state of the window.
 *
 * Parameters:
 *  prc             LPRECT to fill with window (device) coordinates.
 *  fWindow         BOOL indicating to include the window in this
 *                  calculation or return only the printed page
 *                  coordinates.
 *
 * Return Value:
 *  None
 */

void CPages::CalcBoundingRect(LPRECT prc, BOOL fWindow)
    {
    RECT        rc, rcT;

    if (NULL==prc)
        return;

    //Calculate the boundaries for sizing: intersect page & screen
    rc.left=LOMETRIC_BORDER+m_xMarginLeft;
    rc.top =-LOMETRIC_BORDER-m_yMarginTop;
    rc.right =rc.left+(UINT)m_cx;
    rc.bottom=rc.top -(UINT)m_cy;
    RectConvertMappings(&rc, NULL, TRUE);
    OffsetRect(&rc, -(int)m_xPos, -(int)m_yPos);

    if (!fWindow)
        {
        *prc=rc;
        return;
        }

    //Intersect with window to make the size bounds.
    GetClientRect(m_hWnd, &rcT);
    IntersectRect(prc, &rc, &rcT);
    return;
    }






/*
 * CPages::PageGet
 * (Protected)
 *
 * Purpose:
 *  Returns a page of a given index returning a BOOL so it's simple
 *  to use this function inside if statements.
 *
 * Parameters:
 *  iPage           UINT page to retrieve 0 based.
 *  ppPage          PCPage * in which to return the page pointer
 *  fOpen           BOOL indicating if we should open this page as
 *                  well.
 *
 * Return Value:
 *  BOOL            TRUE if successful, FALSE otherwise.
 */

BOOL CPages::PageGet(UINT iPage, PCPage *ppPage, BOOL fOpen)
    {
    if (NULL==ppPage)
        return FALSE;

    if (LB_ERR!=SendMessage(m_hWndPageList, LB_GETTEXT
        , iPage, (LONG)ppPage))
        {
        if (fOpen)
            (*ppPage)->Open(m_pIStorage);

        return TRUE;
        }

    return FALSE;
    }






/*
 * CPages::PageAdd
 * (Protected)
 *
 * Purpose:
 *  Creates a new page initialized to the given values.  The new
 *  page's storage is created if it does not already exist.  If
 *  fOpenStorage is set the page's storage is opened and left
 *  opened.
 *
 * Parameters:
 *  iPage           UINT Location at which to insert page; new page
 *                  is inserted after this position.  NOVALUE for
 *                  the end.
 *  dwID            DWORD ID for this page.
 *  fOpenStorage    BOOL indicating if we're to leave the storage
 *                  open.
 *
 * Return Value:
 *  BOOL            TRUE if the function succeeded, FALSE otherwise.
 */

BOOL CPages::PageAdd(UINT iPage, DWORD dwID, BOOL fOpenStorage)
    {
    PCPage      pPage;
    LRESULT     lr;

    pPage=new CPage(dwID, m_hWnd, this);

    if (NULL==pPage)
        return FALSE;

    if (fOpenStorage)
        pPage->Open(m_pIStorage);

    if (NOVALUE==iPage)
        iPage--;

    //Now try to add to the listbox.
    lr=SendMessage(m_hWndPageList, LB_INSERTSTRING, iPage+1
        , (LONG)pPage);

    if (LB_ERRSPACE==lr)
        {
        if (fOpenStorage)
            pPage->Close(FALSE);

        delete pPage;
        return FALSE;
        }

    return TRUE;
    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲成人午夜影院| 亚洲欧美日韩在线播放| 日本大胆欧美人术艺术动态| 欧美写真视频网站| 亚洲va国产天堂va久久en| 91精品久久久久久蜜臀| 美美哒免费高清在线观看视频一区二区 | 久久se精品一区二区| 这里只有精品免费| 国内精品伊人久久久久av一坑| 国产亚洲欧美激情| 91黄色小视频| 激情小说欧美图片| 中文字幕日本乱码精品影院| 欧美在线不卡视频| 久久精品免费观看| 中文字幕亚洲区| 欧美三级韩国三级日本一级| 六月丁香婷婷久久| 欧美国产乱子伦| 欧美视频在线一区二区三区 | 高清免费成人av| 亚洲欧美电影院| 日韩欧美一区在线| 成人黄色国产精品网站大全在线免费观看| 中文字幕一区二区三区在线播放| 欧美体内she精高潮| 久久国产精品99精品国产 | 欧美性受xxxx黑人xyx| 久久丁香综合五月国产三级网站| 国产精品久久精品日日| 这里只有精品电影| 成人黄色一级视频| 日本亚洲免费观看| 亚洲人成在线播放网站岛国| 欧美成人aa大片| 欧洲精品中文字幕| 欧美日韩国产天堂| 中文字幕一区二区在线播放| 在线电影院国产精品| www.66久久| 久久99精品一区二区三区| 亚洲精品免费看| 久久精品一区四区| 日韩你懂的在线播放| 欧美在线高清视频| 91在线一区二区三区| 狠狠狠色丁香婷婷综合激情 | 在线中文字幕不卡| 大尺度一区二区| 日韩成人av影视| 亚洲一区二区五区| 中文字幕第一页久久| 日韩欧美一二区| 欧美区一区二区三区| 91在线无精精品入口| 国产成人久久精品77777最新版本| 午夜精品福利久久久| 亚洲精品老司机| 国产精品高潮久久久久无| 2021中文字幕一区亚洲| 日韩欧美一区电影| 欧美日韩亚洲综合一区二区三区| 色婷婷综合久久久| 91视视频在线直接观看在线看网页在线看 | 欧美一区二区福利在线| 欧美精品久久一区二区三区| 日本精品一区二区三区四区的功能| 从欧美一区二区三区| 国产aⅴ综合色| 成人性色生活片免费看爆迷你毛片| 精品在线观看免费| 精品一区二区三区的国产在线播放| 日韩福利视频导航| 蜜桃久久av一区| 日本成人在线视频网站| 日韩福利电影在线| 久久精品国产一区二区三| 久久不见久久见中文字幕免费| 老司机一区二区| 看电视剧不卡顿的网站| 理论电影国产精品| 国产一区二区在线观看视频| 国模大尺度一区二区三区| 国内精品写真在线观看| 国产精品自拍网站| 成人性视频免费网站| av一区二区三区黑人| 91麻豆免费看| 欧美日韩亚洲不卡| 日韩精品一区二区在线观看| 日韩欧美国产成人一区二区| 26uuu久久综合| 国产精品久久久久国产精品日日| 亚洲人成网站色在线观看| 亚洲自拍偷拍综合| 日韩精品一卡二卡三卡四卡无卡| 蜜桃久久久久久久| 盗摄精品av一区二区三区| 91色视频在线| 欧美另类高清zo欧美| 日韩免费成人网| 欧美激情一二三区| 亚洲一区二区三区四区五区中文 | 国产视频不卡一区| 国产精品动漫网站| 亚洲va韩国va欧美va| 久久精品国产999大香线蕉| 高清不卡在线观看av| 91麻豆精品一区二区三区| 欧美精品一二三区| 久久久久久黄色| 亚洲精品福利视频网站| 美女免费视频一区二区| www.成人网.com| 日韩三级电影网址| 国产精品久久精品日日| 日本 国产 欧美色综合| 国产高清成人在线| 欧美日韩国产色站一区二区三区| 久久久久久久综合狠狠综合| 一区二区免费看| 国产精品资源站在线| 欧美网站大全在线观看| 久久久精品日韩欧美| 亚洲国产成人高清精品| 国产成人一区二区精品非洲| 欧美亚日韩国产aⅴ精品中极品| 欧美成人aa大片| 亚洲制服丝袜在线| 国产高清不卡二三区| 538在线一区二区精品国产| 国产精品三级电影| 人人爽香蕉精品| 欧美视频一区二区| 中文av一区特黄| 国产综合色视频| 日韩欧美久久一区| 午夜精品一区二区三区三上悠亚| 成人激情av网| 久久久欧美精品sm网站| 日本不卡视频一二三区| 色婷婷精品久久二区二区蜜臀av | 色8久久人人97超碰香蕉987| xnxx国产精品| 免费观看日韩电影| 韩国女主播成人在线观看| 1024亚洲合集| 国产成人av影院| 日韩免费观看高清完整版 | 欧美高清视频不卡网| 亚洲精品写真福利| 91尤物视频在线观看| 国产亚洲精品aa午夜观看| 激情欧美一区二区| 日韩欧美久久一区| 天堂成人国产精品一区| 欧美视频中文字幕| 亚洲午夜激情网站| 在线视频国内一区二区| 成人免费在线视频观看| 成人高清伦理免费影院在线观看| 国产视频亚洲色图| 岛国一区二区三区| 中文字幕不卡的av| 成人一区二区三区视频在线观看| 久久精品综合网| 成人午夜av影视| 中文字幕在线一区免费| av不卡免费在线观看| 亚洲天堂精品视频| 91美女片黄在线| 一区二区三区久久久| 色天天综合久久久久综合片| 亚洲黄色小视频| 欧美三级日韩三级国产三级| 亚洲一区二区视频在线| 欧美日韩久久久| 亚洲国产成人va在线观看天堂| 欧美日韩精品欧美日韩精品| 午夜激情久久久| 日韩久久久久久| 成人深夜福利app| 亚洲女人的天堂| 欧美日韩在线播放三区| 日本在线不卡一区| 精品国产伦一区二区三区免费| 国产一区二区三区精品欧美日韩一区二区三区 | 国产亚洲综合性久久久影院| 国产成+人+日韩+欧美+亚洲| 亚洲欧洲美洲综合色网| 91福利国产成人精品照片| 日韩va亚洲va欧美va久久| 精品久久国产97色综合| av在线不卡电影| 亚洲二区视频在线| 精品国产在天天线2019| 成人av免费网站| 婷婷亚洲久悠悠色悠在线播放| 久久久久亚洲蜜桃|