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

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

?? ienumfe.cpp

?? 英文版的 想要的話可以下載了 為大家服務
?? CPP
字號:
/*
 * IENUMFE.CPP
 * Data Object Chapter 10
 *
 * Standard implementation of a FORMATETC enumerator with the
 * IEnumFORMATETC interface that will generally not need
 * modification.
 *
 * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
 *
 * Kraig Brockschmidt, Microsoft
 * Internet  :  kraigb@microsoft.com
 * Compuserve:  >INTERNET:kraigb@microsoft.com
 */


#include "dataobj.h"


/*
 * CEnumFormatEtc::CEnumFormatEtc
 * CEnumFormatEtc::~CEnumFormatEtc
 *
 * Parameters (Constructor):
 *  cFE             ULONG number of FORMATETCs in pFE
 *  prgFE           LPFORMATETC to the array to enumerate.
 */

CEnumFormatEtc::CEnumFormatEtc(ULONG cFE, LPFORMATETC prgFE)
    {
    UINT        i;

    m_cRef=0;
    m_iCur=0;
    m_cfe=cFE;
    m_prgfe=new FORMATETC[(UINT)cFE];

    if (NULL!=m_prgfe)
        {
        for (i=0; i < cFE; i++)
            m_prgfe[i]=prgFE[i];
        }

    return;
    }


CEnumFormatEtc::~CEnumFormatEtc(void)
    {
    if (NULL!=m_prgfe)
        delete [] m_prgfe;

    return;
    }






/*
 * CEnumFormatEtc::QueryInterface
 * CEnumFormatEtc::AddRef
 * CEnumFormatEtc::Release
 *
 * Purpose:
 *  IUnknown members for CEnumFormatEtc object.  For QueryInterface
 *  we only return out own interfaces and not those of the data
 *  object.  However, since enumerating formats only makes sense
 *  when the data object is around, we insure that it stays as
 *  long as we stay by calling an outer IUnknown for AddRef
 *  and Release.  But since we are not controlled by the lifetime
 *  of the outer object, we still keep our own reference count in
 *  order to free ourselves.
 */

STDMETHODIMP CEnumFormatEtc::QueryInterface(REFIID riid, PPVOID ppv)
    {
    *ppv=NULL;

    /*
     * Enumerators are separate objects, not the data object, so
     * we only need to support out IUnknown and IEnumFORMATETC
     * interfaces here with no concern for aggregation.
     */
    if (IID_IUnknown==riid || IID_IEnumFORMATETC==riid)
        *ppv=this;

    //AddRef any interface we'll return.
    if (NULL!=*ppv)
        {
        ((LPUNKNOWN)*ppv)->AddRef();
        return NOERROR;
        }

    return ResultFromScode(E_NOINTERFACE);
    }


STDMETHODIMP_(ULONG) CEnumFormatEtc::AddRef(void)
    {
    ++m_cRef;
    return m_cRef;
    }

STDMETHODIMP_(ULONG) CEnumFormatEtc::Release(void)
    {
    if (0!=--m_cRef)
        return m_cRef;

    delete this;
    return 0;
    }







/*
 * CEnumFormatEtc::Next
 *
 * Purpose:
 *  Returns the next element in the enumeration.
 *
 * Parameters:
 *  cFE             ULONG number of FORMATETCs to return.
 *  pFE             LPFORMATETC in which to store the returned
 *                  structures.
 *  pulFE           ULONG * in which to return how many we
 *                  enumerated.
 *
 * Return Value:
 *  HRESULT         NOERROR if successful, S_FALSE otherwise,
 */

STDMETHODIMP CEnumFormatEtc::Next(ULONG cFE, LPFORMATETC pFE
    , ULONG *pulFE)
    {
    ULONG               cReturn=0L;

    if (NULL==m_prgfe)
        return ResultFromScode(S_FALSE);

    if (NULL==pulFE)
        {
        if (1L!=cFE)
            return ResultFromScode(E_POINTER);
        }
    else
        *pulFE=0L;

    if (NULL==pFE || m_iCur >= m_cfe)
        return ResultFromScode(S_FALSE);

    while (m_iCur < m_cfe && cFE > 0)
        {
        *pFE++=m_prgfe[m_iCur++];
        cReturn++;
        cFE--;
        }

    if (NULL!=pulFE)
        *pulFE=cReturn;

    return NOERROR;
    }







/*
 * CEnumFormatEtc::Skip
 *
 * Purpose:
 *  Skips the next n elements in the enumeration.
 *
 * Parameters:
 *  cSkip           ULONG number of elements to skip.
 *
 * Return Value:
 *  HRESULT         NOERROR if successful, S_FALSE if we could not
 *                  skip the requested number.
 */

STDMETHODIMP CEnumFormatEtc::Skip(ULONG cSkip)
    {
    if (((m_iCur+cSkip) >= m_cfe) || NULL==m_prgfe)
        return ResultFromScode(S_FALSE);

    m_iCur+=cSkip;
    return NOERROR;
    }






/*
 * CEnumFormatEtc::Reset
 *
 * Purpose:
 *  Resets the current element index in the enumeration to zero.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  HRESULT         NOERROR
 */

STDMETHODIMP CEnumFormatEtc::Reset(void)
    {
    m_iCur=0;
    return NOERROR;
    }






/*
 * CEnumFormatEtc::Clone
 *
 * Purpose:
 *  Returns another IEnumFORMATETC with the same state as ourselves.
 *
 * Parameters:
 *  ppEnum          LPENUMFORMATETC * in which to return the
 *                  new object.
 *
 * Return Value:
 *  HRESULT         NOERROR or a general error value.
 */

STDMETHODIMP CEnumFormatEtc::Clone(LPENUMFORMATETC *ppEnum)
    {
    PCEnumFormatEtc     pNew;

    *ppEnum=NULL;

    //Create the clone
    pNew=new CEnumFormatEtc(m_cfe, m_prgfe);

    if (NULL==pNew)
        return ResultFromScode(E_OUTOFMEMORY);

    pNew->AddRef();
    pNew->m_iCur=m_iCur;

    *ppEnum=pNew;
    return NOERROR;
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品日韩一区二区三区| 欧美在线不卡视频| 久久久亚洲综合| 国产精品综合久久| 欧美激情自拍偷拍| 福利电影一区二区| 亚洲码国产岛国毛片在线| 色哟哟在线观看一区二区三区| 一区二区三区四区精品在线视频 | 欧美性欧美巨大黑白大战| 亚洲黄色尤物视频| 欧美日韩国产综合草草| 麻豆一区二区99久久久久| 久久九九影视网| 91精品1区2区| 日本系列欧美系列| 国产欧美精品一区二区色综合| eeuss鲁片一区二区三区在线观看 eeuss鲁片一区二区三区在线看 | 日韩欧美在线一区二区三区| 国产精品996| 亚洲欧美日韩一区二区 | 欧美亚洲一区二区在线观看| 人人精品人人爱| 国产精品日韩成人| 欧美日韩三级视频| 国产精品一区在线| 一区二区三区不卡视频在线观看| 91.com在线观看| 国产成人高清在线| 午夜精彩视频在线观看不卡| 久久人人97超碰com| 色88888久久久久久影院野外| 日韩福利电影在线| 久久蜜桃香蕉精品一区二区三区| 99久久精品国产网站| 欧美a级一区二区| 国产精品美女久久久久av爽李琼 | 美女视频黄 久久| 综合久久一区二区三区| 欧美一区二区精美| 91免费看`日韩一区二区| 日本视频中文字幕一区二区三区| 中文字幕一区二区在线播放| 日韩一二三区视频| 91免费观看国产| 国产一区二区伦理片| 五月婷婷久久丁香| 一区二区三区中文字幕精品精品| 欧美成人精精品一区二区频| 色播五月激情综合网| 成人精品免费网站| 久久av资源站| 天使萌一区二区三区免费观看| 国产精品国产三级国产有无不卡| 精品区一区二区| 欧美日韩精品一区二区天天拍小说| 国产a精品视频| 青青国产91久久久久久| 亚洲免费观看高清完整版在线观看熊| 精品国产乱码久久久久久牛牛| 欧美色综合网站| 99综合电影在线视频| 国产综合色精品一区二区三区| 午夜精品久久久久影视| 一区二区免费在线| 亚洲视频在线一区二区| 中文字幕欧美日本乱码一线二线 | 色中色一区二区| 99精品1区2区| 不卡一二三区首页| 国产激情一区二区三区四区| 激情综合一区二区三区| 麻豆久久久久久久| 日本人妖一区二区| 丝袜a∨在线一区二区三区不卡| 亚洲国产乱码最新视频| 亚洲综合色在线| 亚洲欧美韩国综合色| 综合色天天鬼久久鬼色| 亚洲日本一区二区| 亚洲美女精品一区| 亚洲国产一区二区三区| 亚洲国产精品久久人人爱蜜臀| 亚洲已满18点击进入久久| 亚洲精品国产一区二区精华液| 亚洲精品精品亚洲| 亚洲一区二区美女| 天堂精品中文字幕在线| 免费观看在线色综合| 老司机午夜精品| 国产精品一区久久久久| 成人免费观看视频| 色欧美88888久久久久久影院| 欧美在线一二三| 717成人午夜免费福利电影| 91精品国产综合久久精品图片| 666欧美在线视频| 日韩欧美一级二级| 国产亚洲精品7777| 亚洲人成网站在线| 五月婷婷激情综合网| 韩国精品主播一区二区在线观看 | 日韩成人免费电影| 另类调教123区| 成人激情免费视频| 日本大香伊一区二区三区| 欧美午夜在线一二页| 欧美一区二区三区不卡| 国产日韩欧美一区二区三区综合| 国产精品久久久99| 亚洲国产乱码最新视频| 老司机精品视频导航| 国产麻豆91精品| 91免费在线视频观看| 欧美一区二区在线播放| 久久久亚洲精品石原莉奈| 国产精品国产三级国产三级人妇| 亚洲曰韩产成在线| 精品亚洲aⅴ乱码一区二区三区| 成人h动漫精品一区二| 欧美福利一区二区| 日本一区二区三区四区| 午夜精品久久久久久久久久| 国产98色在线|日韩| 欧美日韩一区在线观看| 国产日韩欧美一区二区三区乱码| 夜夜揉揉日日人人青青一国产精品 | 精品一区二区在线免费观看| 国产福利精品一区二区| 欧美性受xxxx黑人xyx| 欧美国产日韩精品免费观看| 亚洲成av人**亚洲成av**| 国产99精品视频| 91精品国产乱码久久蜜臀| 亚洲欧美自拍偷拍| 国产综合色在线| 欧美日韩免费一区二区三区视频| 久久九九久久九九| 石原莉奈在线亚洲二区| 99v久久综合狠狠综合久久| 日韩精品一区二区在线观看| 亚洲最大的成人av| 国产精品538一区二区在线| 制服丝袜一区二区三区| 亚洲精品ww久久久久久p站| 国产乱人伦偷精品视频免下载| 欧美日韩国产成人在线免费| 中文字幕在线观看不卡| 国产馆精品极品| 精品国产乱码久久久久久久久| 午夜久久久影院| 色偷偷88欧美精品久久久| 国产精品白丝在线| 国产成人午夜精品影院观看视频| 91精品婷婷国产综合久久性色| 亚洲一二三四在线| 一本久久a久久免费精品不卡| 国产日韩视频一区二区三区| 国产在线精品免费av| 9191成人精品久久| 亚洲va国产天堂va久久en| 91麻豆精品在线观看| 国产精品视频看| 成人免费视频一区二区| 国产亚洲成av人在线观看导航| 国内精品久久久久影院薰衣草 | 久久综合色之久久综合| 久久爱www久久做| 欧美一区日韩一区| 视频一区欧美精品| 欧美久久久久久久久久| 一个色综合av| 欧美日韩国产高清一区二区三区 | 国产精品私人影院| 成人网页在线观看| 国产精品不卡在线观看| 91论坛在线播放| 亚洲午夜精品网| 91精品国产美女浴室洗澡无遮挡| 久久精品国产一区二区| 精品处破学生在线二十三| 国产一区激情在线| 国产亚洲精品福利| 91在线观看成人| 亚洲在线观看免费| 日韩欧美一区二区久久婷婷| 精品一区在线看| 国产精品欧美一区喷水| 91网址在线看| 亚洲大型综合色站| 欧美不卡一二三| 国产成+人+日韩+欧美+亚洲| 国产精品卡一卡二卡三| 欧美亚州韩日在线看免费版国语版| 日韩电影在线看| 久久色成人在线| 91蜜桃免费观看视频| 偷拍与自拍一区| 久久久久久久久久电影| 97se亚洲国产综合自在线观|