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

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

?? iperfile.cpp

?? 英文版的 想要的話可以下載了 為大家服務
?? CPP
字號:
/*
 * IPERFILE.CPP
 * Patron Chapter 21
 *
 * Implementation of the IPersistFile interface for Patron's
 * documents.
 *
 * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
 *
 * Kraig Brockschmidt, Microsoft
 * Internet  :  kraigb@microsoft.com
 * Compuserve:  >INTERNET:kraigb@microsoft.com
 */


#include "patron.h"


/*
 * CImpIPersistFile:CImpIPersistFile
 * CImpIPersistFile::~CImpIPersistFile
 *
 * Constructor Parameters:
 *  pDoc            PCPatronDoc associated with this interface
 *  pUnkOuter       LPUNKNOWN of the controlling unknown.
 */

CImpIPersistFile::CImpIPersistFile(PCPatronDoc pDoc
    , LPUNKNOWN pUnkOuter)
    {
    m_cRef=0;
    m_pDoc=pDoc;
    m_pUnkOuter=pUnkOuter;
    return;
    }


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




/*
 * CImpIPersistFile::QueryInterface
 * CImpIPersistFile::AddRef
 * CImpIPersistFile::Release
 *
 * Purpose:
 *  Standard set of IUnknown members for this interface
 */

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

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

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




/*
 * CImpIPersistFile::GetClassID
 *
 * Purpose:
 *  Returns the CLSID of the file represented by this interface.
 *
 * Parameters:
 *  pClsID          LPCLSID in which to store our CLSID.
 *
 * Return Value:
 *  HRESULT         NOERROR or a general error value.
 */

STDMETHODIMP CImpIPersistFile::GetClassID(LPCLSID pClsID)
    {
    *pClsID=CLSID_PatronPages;
    return NOERROR;
    }





/*
 * CImpIPersistFile::IsDirty
 *
 * Purpose:
 *  Tells the caller if we have made changes to this file 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 CImpIPersistFile::IsDirty(void)
    {
    return ResultFromScode(m_pDoc->FDirtyGet() ? S_OK : S_FALSE);
    }





/*
 * IPersistFile::Load
 *
 * Purpose:
 *  Asks the server to load the document for the given filename.
 *
 * Parameters:
 *  pszFile         LPCOLESTR to the filename to load.
 *  grfMode         DWORD containing open flags requested from the
 *                  caller.  Currently these are safely ignored.
 *
 * Return Value:
 *  HRESULT         NOERROR or a general error value.
 */

STDMETHODIMP CImpIPersistFile::Load(LPCOLESTR pszFile, DWORD grfMode)
    {
    UINT        uRet;

   #ifdef WIN32ANSI
    char        szTemp[CCHPATHMAX];

    WideCharToMultiByte(CP_ACP, 0, pszFile, -1, szTemp, CCHPATHMAX
       , NULL, NULL);
    uRet=m_pDoc->Load(TRUE, szTemp);
   #else
    uRet=m_pDoc->Load(TRUE, (LPTSTR)pszFile);
   #endif
    return (DOCERR_NONE==uRet) ? NOERROR
        : ResultFromScode(STG_E_READFAULT);
    }





/*
 * IPersistFile::Save
 *
 * Purpose:
 *  Instructs the server to write the current file into a new
 *  filename, possibly then using that filename as the current one.
 *
 * Parameters:
 *  pszFile         LPCOLESTR of the file into which we save.  If NULL,
 *                  this means save the current file.
 *  fRemember       BOOL indicating if we're to use this filename as
 *                  the current file now (Save As instead of Save
 *                  Copy As).
 *
 * Return Value:
 *  HRESULT         NOERROR or a general error value.
 */

STDMETHODIMP CImpIPersistFile::Save(LPCOLESTR pszFile, BOOL fRemember)
    {
    UINT        uRet;

    /*
     * Since we don't want to mess with changing Save (which would
     * require changes to CLASSLIB, urk) we instead save fRemember
     * in the document before calling Save which supresses the call
     * to CPatronDoc::Rename if FALSE.
     */

    m_pDoc->m_fRename=fRemember;
   #ifdef WIN32ANSI
    char        szTemp[CCHPATHMAX];

    WideCharToMultiByte(CP_ACP, 0, pszFile, -1, szTemp, CCHPATHMAX
       , NULL, NULL);
    uRet=m_pDoc->Save(0, szTemp);
   #else
    uRet=m_pDoc->Save(0, (LPTSTR)pszFile);
   #endif
    m_pDoc->m_fRename=TRUE;

    return (DOCERR_NONE==uRet) ? NOERROR
        : ResultFromScode(STG_E_WRITEFAULT);
    }





/*
 * IPersistFile::SaveCompleted
 *
 * Purpose:
 *  Informs us that the operation that called Save is now finished
 *  and we can access the file again.
 *
 * Parameters:
 *  pszFile         LPCOLESTR of the file in which we can start
 *                  writing again.
 *
 * Return Value:
 *  HRESULT         NOERROR or a general error value.
 */

STDMETHODIMP CImpIPersistFile::SaveCompleted(LPCOLESTR pszFile)
    {
    return NOERROR;
    }




/*
 * IPersistFile::GetCurFile
 *
 * Purpose:
 *  Retrieves the name of the current file.
 *
 * Parameters:
 *  ppszFile        LPOLESTR * into which we store a pointer to
 *                  the filename that should be allocated with the
 *                  shared IMalloc.
 *
 * Return Value:
 *  HRESULT         NOERROR or a general error value.
 */

STDMETHODIMP CImpIPersistFile::GetCurFile(LPOLESTR *ppszFile)
    {
    LPMALLOC    pIMalloc;
    LPOLESTR    psz;
    UINT        uRet;

    *ppszFile=NULL;

    if (FAILED(CoGetMalloc(MEMCTX_TASK, &pIMalloc)))
        return ResultFromScode(E_FAIL);

    psz=(LPOLESTR)pIMalloc->Alloc(CCHPATHMAX*sizeof(OLECHAR));
    pIMalloc->Release();

   #ifdef WIN32ANSI
    char    szTemp[CCHPATHMAX];

    uRet=m_pDoc->FilenameGet(szTemp, CCHPATHMAX);
    MultiByteToWideChar(CP_ACP, 0, szTemp, -1, psz, CCHPATHMAX);
   #else
    uRet=m_pDoc->FilenameGet(psz, CCHPATHMAX);
   #endif

    //If we have no filename, return the prompt for File Open/Save.
    if (0==uRet)
       #ifdef WIN32ANSI
        MultiByteToWideChar(CP_ACP, 0
            , (*m_pDoc->m_pST)[IDS_EXTENSION], -1, psz, CCHPATHMAX);
       #else
        lstrcpy(psz, (*m_pDoc->m_pST)[IDS_EXTENSION]);
       #endif

    *ppszFile=psz;
    return (0==uRet) ? ResultFromScode(S_FALSE) : NOERROR;
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
性欧美疯狂xxxxbbbb| 免费在线观看视频一区| 亚洲精品视频一区| 精品处破学生在线二十三| 国产精品久久久久久久久搜平片| 自拍偷拍亚洲欧美日韩| 天天综合日日夜夜精品| 成人av网在线| 555www色欧美视频| 久久久99精品免费观看| 国产精品久久久99| 青青草伊人久久| av亚洲精华国产精华精华| 97se亚洲国产综合自在线不卡| 精品视频123区在线观看| 精品国产成人在线影院| 一区二区国产视频| 国产91精品露脸国语对白| 欧美性大战xxxxx久久久| 久久综合九色综合97婷婷| 成人免费一区二区三区视频| 日本不卡的三区四区五区| 国产成人综合精品三级| 色婷婷综合视频在线观看| 国产午夜精品在线观看| 天堂成人免费av电影一区| 成人精品一区二区三区四区| 久久久久99精品一区| 日本不卡一区二区| 色94色欧美sute亚洲线路二 | 欧美主播一区二区三区美女| 精品人在线二区三区| 亚洲无线码一区二区三区| 美美哒免费高清在线观看视频一区二区| 99国产精品久久| 国产欧美日韩不卡免费| 久久超碰97中文字幕| 欧美一级片在线观看| 一区二区三区欧美日| 99免费精品视频| 久久久久高清精品| 国产一区二区影院| 91精品中文字幕一区二区三区| 国产午夜精品一区二区三区四区| 国产激情视频一区二区三区欧美| 欧美va在线播放| 日韩中文字幕1| 日韩欧美国产系列| 日韩经典一区二区| 欧美日韩卡一卡二| 秋霞午夜av一区二区三区| 欧美日韩一区高清| 亚洲成av人片观看| 在线观看一区日韩| 日韩国产高清在线| 日韩一区二区电影在线| 亚洲最大色网站| 欧美日韩精品免费观看视频| 亚洲资源在线观看| 一本一道波多野结衣一区二区| 一卡二卡三卡日韩欧美| 欧美在线观看视频一区二区| 一区二区三区在线观看动漫| 色婷婷av一区二区三区大白胸| 亚洲激情男女视频| 欧美猛男超大videosgay| 美腿丝袜亚洲三区| 国产午夜亚洲精品不卡| 91性感美女视频| 午夜精品福利一区二区三区av| 欧美日韩国产首页在线观看| 亚洲香蕉伊在人在线观| 在线影院国内精品| 精品一区二区日韩| 国产人伦精品一区二区| 91在线精品一区二区三区| 日韩成人一区二区| 337p粉嫩大胆色噜噜噜噜亚洲| 国产精品18久久久久| 亚洲午夜精品网| 日韩三级视频在线看| 不卡一区二区在线| 亚洲福中文字幕伊人影院| 精品乱人伦小说| 91亚洲国产成人精品一区二区三| 亚洲电影一区二区三区| 欧美激情一区二区三区| 欧美日韩在线免费视频| 国产综合色精品一区二区三区| 一区二区三区在线看| 久久亚洲免费视频| 日本精品裸体写真集在线观看| 蜜臀av性久久久久av蜜臀妖精| 国产精品免费视频一区| 欧美日韩国产三级| 麻豆成人在线观看| 亚洲第一综合色| 国产欧美一区二区三区鸳鸯浴 | 亚洲精品久久嫩草网站秘色| 91免费版在线看| 国产福利一区二区三区在线视频| 一区二区三区丝袜| 国产丝袜美腿一区二区三区| 91精品国产综合久久久蜜臀粉嫩| 成人黄色在线看| 亚洲五月六月丁香激情| 亚洲欧洲精品一区二区三区不卡| 欧美一二三四区在线| 色综合久久久久综合体桃花网| 国产99久久久国产精品潘金 | 狠狠色丁香久久婷婷综合丁香| 最好看的中文字幕久久| 精品久久久久久无| 色8久久精品久久久久久蜜| 不卡av免费在线观看| 久久国产三级精品| 天天色天天爱天天射综合| 亚洲www啪成人一区二区麻豆 | 欧美日韩国产a| 欧美中文字幕亚洲一区二区va在线| 成人午夜激情影院| 久久av中文字幕片| 国产久卡久卡久卡久卡视频精品| 爽好多水快深点欧美视频| 亚洲精品成人悠悠色影视| 亚洲啪啪综合av一区二区三区| 国产日本欧美一区二区| 久久综合国产精品| www激情久久| 精品国产123| 日韩欧美中文字幕制服| 欧美乱妇23p| 91精品国产欧美一区二区| 欧美福利电影网| 欧美欧美午夜aⅴ在线观看| 欧美色综合久久| 欧美日韩一区二区三区四区五区| 成人avav影音| 色欧美日韩亚洲| 91黄色在线观看| 欧美日韩一区中文字幕| www.66久久| 色菇凉天天综合网| 欧美在线观看视频在线| 日韩欧美国产综合| 久久亚洲精华国产精华液 | 色综合天天性综合| 成+人+亚洲+综合天堂| 94-欧美-setu| 92国产精品观看| 欧美日韩亚洲综合一区二区三区| 欧美午夜理伦三级在线观看| 欧美日本不卡视频| 欧美v日韩v国产v| 久久久久久久性| 制服.丝袜.亚洲.中文.综合| 久久精品无码一区二区三区| 中国av一区二区三区| 亚洲欧洲色图综合| 蜜桃av一区二区在线观看| 国产一区在线精品| 成人av资源下载| 日韩亚洲欧美高清| 久久九九久久九九| 亚洲免费在线视频| 免费国产亚洲视频| 一本大道综合伊人精品热热| 欧美大片日本大片免费观看| 中文字幕欧美一| 精品一区二区免费在线观看| 欧洲一区二区三区在线| 久久精品视频网| 蜜桃久久精品一区二区| 91成人网在线| 国产精品网站在线| 美女网站在线免费欧美精品| 色综合久久久久网| 国产蜜臀97一区二区三区| 婷婷综合五月天| 91啪亚洲精品| 亚洲国产成人自拍| 精品亚洲成a人在线观看| 欧美巨大另类极品videosbest | 一区在线播放视频| 精品一区二区三区欧美| 欧美日韩激情一区二区三区| 一色屋精品亚洲香蕉网站| 国产美女视频91| 精品少妇一区二区三区日产乱码| 欧美亚洲国产一区二区三区va | 精品一区二区三区欧美| 欧美肥大bbwbbw高潮| 亚洲综合偷拍欧美一区色| 国产91精品一区二区麻豆网站 | 久久亚洲综合色一区二区三区| 爽好多水快深点欧美视频| 欧美日韩亚洲高清一区二区| 亚洲综合激情小说| 91国偷自产一区二区三区观看| 中文字幕一区二区三区在线播放 |