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

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

?? iperstmi.cpp

?? 英文版的 想要的話可以下載了 為大家服務
?? CPP
字號:
/*
 * IPERSTMI.CPP
 * Polyline Component Chapter 23
 *
 * Implementation of the IPersistStreamInit interface exposed on the
 * Polyline object.
 *
 * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
 *
 * Kraig Brockschmidt, Microsoft
 * Internet  :  kraigb@microsoft.com
 * Compuserve:  >INTERNET:kraigb@microsoft.com
 */


#include "polyline.h"


/*
 * CImpIPersistStreamInit:CImpIPersistStreamInit
 * CImpIPersistStreamInit::~CImpIPersistStreamInit
 *
 * Constructor Parameters:
 *  pObj            PCPolyline pointing to the object we live in.
 *  pUnkOuter       LPUNKNOWN of the controlling unknown.
 */

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

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



/*
 * CImpIPersistStreamInit::QueryInterface
 * CImpIPersistStreamInit::AddRef
 * CImpIPersistStreamInit::Release
 *
 * Purpose:
 *  Delegating IUnknown members for CImpIPersistStreamInit.
 */

STDMETHODIMP CImpIPersistStreamInit::QueryInterface(REFIID riid
    , LPVOID *ppv)
    {
    return m_pUnkOuter->QueryInterface(riid, ppv);
    }

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

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





/*
 * CImpIPersistStreamInit::GetClassID
 *
 * Purpose:
 *  Returns the CLSID of the object represented by this interface.
 *
 * Parameters:
 *  pClsID          LPCLSID in which to store our CLSID.
 */

STDMETHODIMP CImpIPersistStreamInit::GetClassID(LPCLSID pClsID)
    {
    *pClsID=m_pObj->m_clsID;
    return NOERROR;
    }





/*
 * CImpIPersistStreamInit::IsDirty
 *
 * Purpose:
 *  Tells the caller if we have made changes to this object since
 *  it was loaded or initialized new.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  HRESULT         Contains S_OK if we ARE dirty, S_FALSE if
 *                  NOT dirty.
 */

STDMETHODIMP CImpIPersistStreamInit::IsDirty(void)
    {
    return ResultFromScode(m_pObj->m_fDirty ? S_OK : S_FALSE);
    }







/*
 * CImpIPersistStreamInit::Load
 *
 * Purpose:
 *  Instructs the object to load itself from a previously saved
 *  IStreamInit that was handled by Save in another object lifetime.
 *  The seek pointer in this stream will be exactly the same as
 *  it was when Save was called, and this function must leave
 *  the seek pointer the same as it was on exit from Save, regardless
 *  of success or failure.  This function should not hold on to
 *  pIStream.
 *
 *  This function is called in lieu of IPersistStreamInit::InitNew
 *  when the object already has a persistent state.
 *
 * Parameters:
 *  pIStream        LPSTREAM from which to load.
 */

STDMETHODIMP CImpIPersistStreamInit::Load(LPSTREAM pIStream)
    {
    POLYLINEDATA    pl;
    ULONG           cb;
    HRESULT         hr;

    if (NULL==pIStream)
        return ResultFromScode(E_POINTER);

    //Read all the data into the POLYLINEDATA structure.
    hr=pIStream->Read(&pl, CBPOLYLINEDATA, &cb);

    if (FAILED(hr) || CBPOLYLINEDATA!=cb)
        return hr;

    m_pObj->DataSet(&pl, TRUE, TRUE);
    return NOERROR;
    }





/*
 * CImpIPersistStreamInit::Save
 *
 * Purpose:
 *  Saves the data for this object to an IStreamInit.  Be sure not
 *  to change the position of the seek pointer on entry to this
 *  function: the caller will assume that you write from the
 *  current offset.  Leave the stream's seek pointer at the end
 *  of the data written on exit.
 *
 * Parameters:
 *  pIStream        LPSTREAM in which to save our data.
 *  fClearDirty     BOOL indicating if this call should clear
 *                  the object's dirty flag (TRUE) or leave it
 *                  unchanged (FALSE).
 */

STDMETHODIMP CImpIPersistStreamInit::Save(LPSTREAM pIStream
    , BOOL fClearDirty)
    {
    POLYLINEDATA    pl;
    ULONG           cb;
    HRESULT         hr;

    if (NULL==pIStream)
        return ResultFromScode(E_POINTER);

    m_pObj->DataGet(&pl);

    hr=pIStream->Write(&pl, CBPOLYLINEDATA, &cb);

    if (FAILED(hr) || CBPOLYLINEDATA!=cb)
        return ResultFromScode(STG_E_WRITEFAULT);

    if (fClearDirty)
        m_pObj->m_fDirty;

    return NOERROR;
    }








/*
 * CImpIPersistStreamInit::GetSizeMax
 *
 * Purpose:
 *  Returns the size of the data we would write if Save was
 *  called right now.
 *
 * Parameters:
 *  pcbSize         ULARGE_INTEGER * in which to save the size
 *                  of the stream an immediate call to Save would
 *                  write.
 */

STDMETHODIMP CImpIPersistStreamInit::GetSizeMax(ULARGE_INTEGER
    *pcbSize)
    {
    if (NULL==pcbSize)
        return ResultFromScode(E_POINTER);

    ULISet32(*pcbSize, CBPOLYLINEDATA);
    return NOERROR;
    }




/*
 * CImpIPersistStreamInit::InitNew
 *
 * Purpose:
 *  Informs the object that it is being created new instead of
 *  loaded from a persistent state.  This will be called in lieu
 *  of IPersistStreamInit::Load.
 *
 * Parameters:
 *  None
 */

STDMETHODIMP CImpIPersistStreamInit::InitNew(void)
    {
    //Nothing for us to do
    return NOERROR;
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品一区二区三区视频| 免费人成网站在线观看欧美高清| 一本到高清视频免费精品| 免费精品99久久国产综合精品| 国产精品成人免费| 久久影院午夜论| 欧美日韩久久一区二区| 成人av在线电影| 国产麻豆精品久久一二三| 婷婷成人综合网| 亚洲视频一区二区免费在线观看| 精品久久久久久综合日本欧美| 欧美综合色免费| 99精品久久99久久久久| 国产成人在线视频网址| 久久99蜜桃精品| 天堂影院一区二区| 亚洲在线成人精品| 亚洲另类色综合网站| 中文字幕av资源一区| 欧美亚男人的天堂| 色菇凉天天综合网| www.爱久久.com| 国产成人一区在线| 国产在线精品免费| 国产乱一区二区| 国产综合色在线| 国产一区免费电影| 国产一区二区免费视频| 激情综合亚洲精品| 国产毛片精品视频| 国产精一品亚洲二区在线视频| 麻豆精品在线观看| 久久精品国产精品亚洲综合| 日韩1区2区3区| 日韩精品免费视频人成| 视频一区二区三区中文字幕| 五月婷婷激情综合网| 青青草一区二区三区| 美女视频黄频大全不卡视频在线播放| 日韩影院精彩在线| 久久精品噜噜噜成人av农村| 狠狠久久亚洲欧美| 国产91丝袜在线观看| 97久久人人超碰| 91福利在线观看| 欧美精品免费视频| 欧美变态tickle挠乳网站| 2022国产精品视频| 国产精品美女www爽爽爽| 中文字幕欧美一| 亚洲国产cao| 男人的j进女人的j一区| 国产麻豆一精品一av一免费| 成人一二三区视频| 一本到三区不卡视频| 欧美日韩你懂的| 久久亚洲精精品中文字幕早川悠里| 26uuu亚洲综合色欧美| 国产欧美va欧美不卡在线| 国产精品久久福利| 亚洲成人动漫精品| 国产麻豆精品在线| 一本到不卡免费一区二区| 欧美日韩成人综合| 精品国产1区二区| 国产精品萝li| 香蕉成人伊视频在线观看| 韩国三级在线一区| 色先锋资源久久综合| 欧美xxxx在线观看| 中文字幕佐山爱一区二区免费| 亚洲成av人片一区二区| 国产一区二区91| 日本高清视频一区二区| 欧美刺激午夜性久久久久久久| 日本一区二区三区免费乱视频| 亚洲美女电影在线| 黄色成人免费在线| 欧洲精品一区二区| 国产清纯在线一区二区www| 亚洲地区一二三色| 风间由美中文字幕在线看视频国产欧美 | 91精品综合久久久久久| 久久先锋影音av| 亚洲一卡二卡三卡四卡五卡| 国产福利精品导航| 在线成人高清不卡| 亚洲视频中文字幕| 国产一区二区成人久久免费影院| 欧美在线视频全部完| 久久综合色婷婷| 午夜精品爽啪视频| 97久久精品人人爽人人爽蜜臀| 欧美成人伊人久久综合网| 亚洲国产日韩在线一区模特| 成人动漫视频在线| 精品国产乱码91久久久久久网站| 亚洲综合色自拍一区| 懂色av一区二区三区免费观看| 制服.丝袜.亚洲.另类.中文| 亚洲精品一卡二卡| 丁香婷婷深情五月亚洲| 日韩视频不卡中文| 亚洲国产精品久久久男人的天堂| www.成人网.com| 久久久久久久综合狠狠综合| 免费成人av在线| 欧美日韩精品专区| 一区二区高清在线| 91免费观看在线| 欧美国产日韩精品免费观看| 黑人巨大精品欧美一区| 日韩亚洲欧美综合| 三级一区在线视频先锋| 欧美中文字幕一区| 亚洲精品精品亚洲| 91免费版在线| 中文字幕在线视频一区| 成人一级片网址| 国产欧美日韩视频在线观看| 国产一区二区三区综合| www国产精品av| 国产在线精品不卡| 久久蜜桃av一区精品变态类天堂| 免费成人在线视频观看| 日韩一区二区精品| 麻豆成人久久精品二区三区红 | 亚洲精品在线免费观看视频| 午夜欧美大尺度福利影院在线看| 欧美中文一区二区三区| 亚洲综合精品久久| 欧美三级韩国三级日本三斤| 亚洲线精品一区二区三区八戒| 色综合久久99| 亚洲一级在线观看| 欧美丰满嫩嫩电影| 蜜桃视频第一区免费观看| 精品久久久久久最新网址| 国产在线精品免费av| 中文字幕免费在线观看视频一区| 成人av在线一区二区三区| 自拍偷拍亚洲综合| 欧美午夜免费电影| 日本一不卡视频| 精品国产乱码久久久久久影片| 九九精品一区二区| 国产精品三级视频| 91一区二区三区在线播放| 一卡二卡三卡日韩欧美| 欧美日韩黄色一区二区| 另类欧美日韩国产在线| 国产偷国产偷精品高清尤物| 成人激情免费视频| 亚洲午夜激情网站| 精品国产91乱码一区二区三区| 福利一区在线观看| 亚洲一区二区三区中文字幕| 欧美一区二区日韩| 国产成人鲁色资源国产91色综| 亚洲欧美日韩一区| 91精品国产高清一区二区三区蜜臀| 激情小说亚洲一区| 18欧美亚洲精品| 欧美精品1区2区3区| 国产1区2区3区精品美女| 亚洲一区二区三区四区在线 | 丝袜亚洲另类欧美| 久久亚洲精华国产精华液| 91色|porny| 久久97超碰色| 一区二区视频在线| 精品久久人人做人人爰| 日本高清无吗v一区| 精品一区二区三区免费毛片爱| 国产欧美日韩视频在线观看| 欧美色视频在线观看| 国产精品99久久久| 偷拍亚洲欧洲综合| 中文字幕免费在线观看视频一区| 欧美日韩大陆在线| 成人激情动漫在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 亚洲欧美怡红院| 日韩视频免费观看高清完整版| 91免费视频网| 国产麻豆午夜三级精品| 午夜精品久久久| 国产精品久久久久一区二区三区 | 粉嫩高潮美女一区二区三区| 亚洲影院在线观看| 久久精品视频在线免费观看| 精品视频一区二区三区免费| 成人激情小说乱人伦| 久久99精品久久久| 亚洲国产sm捆绑调教视频| 国产精品欧美一区喷水| 26uuu另类欧美| 制服丝袜日韩国产| 欧美三级视频在线播放|