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

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

?? file.c

?? 英文版的 想要的話可以下載了 為大家服務
?? C
字號:
/*
 * FILE.C
 *
 * Functions for handling dirty files and processing File menu commands.
 *
 * Functions:
 *  FDirtySet, FCleanVerify
 *  FFileNew, FFileOpen, FFileSave, FFileSaveAs, FFileExit
 *
 * This file contains the only functions that manipulate the fDirty flag.
 *
 * Copyright(c) Microsoft Corp. 1992-1994 All Rights Reserved
 * Win32 version, January 1994
 */


#include <windows.h>
#include <ole.h>
#include "cosmo.h"
#include "oleglobl.h"





/*
 * FDirtySet
 *
 * Purpose:
 *  Sets or clears the global 'dirty' flag returning the previous state
 *  of that same flag.  Even though the non-OLE part of this function
 *  is trivial, it isolates handling changes, providing a single point
 *  to notify a client app with OLE_CHANGED.
 *
 *  This function does exits if pGlob->fNoDirty is set.
 *
 * Parameters:
 *  fDirty          BOOL used to set the value of the pGLob->fDirty flag.
 *                  This allows us to use this function to both set and
 *                  clear the flag.  OLE_CHANGED is only sent if the
 *                  flag is set to TRUE.
 *
 * Return Value:
 *  BOOL            Previous value of the dirty flag.
 */

BOOL WINAPI FDirtySet(BOOL fDirty)
    {
    BOOL        fPrevious;

#ifdef MAKEOLESERVER
    /*
     * If we are a hidden window, then there's nothing that could make
     * us dirty since there cannot be any user interaction here.  Therefore
     * ignore any changes to the dirty flag, leaving it FALSE.
     */
    if (!IsWindowVisible(pGlob->hWnd))
        return pGlob->fDirty;

#endif //MAKEOLESERVER

    if (pGlob->fNoDirty)
        return pGlob->fDirty;

    fPrevious=pGlob->fDirty;
    pGlob->fDirty=fDirty;

#ifdef MAKEOLESERVER
    if (fDirty)
        //Fun indirection, huh?  That what you get with an OOP.
        OLEClientNotify(pOLE->pSvr->pDoc->pObj, OLE_CHANGED);
#endif //MAKEOLESERVER

    return fPrevious;
    }





/*
 * FCleanVerify
 *
 * Purpose:
 *  Checks the pGLob->fDirty flag, and if set, displays a message
 *  box informing the user that the file is dirty and asking if
 *  the file should be saved or updated.  If YES is chosen, the file
 *  is saved or updated.
 *
 * Parameters:
 *  pGlob           LPGLOBALS to global variable block.
 *
 * Return Value:
 *  BOOL            TRUE if it's safe to proceed with the operation (file
 *                  is clean, user answered NO, or file was saved).
 *                  FALSE if the user wants to cancel the operation or there
 *                  was an error.
 */

BOOL WINAPI FCleanVerify(LPGLOBALS pGlob)
    {
    BOOL        fRet=TRUE;
    UINT        uRet;
    char       *psz;

#ifdef MAKEOLESERVER
    char        szClient[40];
#endif //MAKEOLESERVER

    //Nothing to do if we're clean.
    if (!pGlob->fDirty)
        return TRUE;

    if (!pGlob->fOLE)
        {
        uRet=MessageBox(pGlob->hWnd, rgpsz[IDS_FILEDIRTY]
            , rgpsz[IDS_CAPTION], MB_YESNOCANCEL | MB_ICONEXCLAMATION);
        }
#ifdef MAKEOLESERVER
    if (pGlob->fOLE)
        {
        //Linking case, use the same message as before.
        if (pOLE->pSvr->fLink)
            {
            uRet=MessageBox(pGlob->hWnd, rgpsz[IDS_FILEDIRTY],
                            rgpsz[IDS_CAPTION], MB_YESNOCANCEL);
            }

        //Embedding: Ask the user about updating instead of saving.
        if (pOLE->pSvr->fEmbed)
            {
            //Build the standard string for Updating.
            psz=(PSTR)LocalAlloc(LPTR, 1024);

            if (NULL==psz)
                return FALSE;

            GetAtomName(pOLE->pSvr->pDoc->aClient, szClient, sizeof(szClient));

            lstrcpy(psz, rgpsz[IDS_CLOSEALERT1]);
            lstrcat(psz, szClient);
            lstrcat(psz, rgpsz[IDS_CLOSEALERT2]);

            uRet=MessageBox(pGlob->hWnd, psz, rgpsz[IDS_CAPTION],
                            MB_YESNOCANCEL | MB_ICONEXCLAMATION);

            LocalFree((HLOCAL)psz);
            }
        }
#endif //MAKEOLESERVER

    switch (uRet)
        {
        case IDCANCEL:
            fRet=FALSE;
            break;

        case IDNO:
            fRet=TRUE;
            break;

        case IDYES:
            if (!pGlob->fOLE)
                fRet=FFileSave(pGlob);

#ifdef MAKEOLESERVER
            //Linking same as stand-alone.
            if (pOLE->pSvr->fLink)
                fRet=FFileSave(pGlob);

            if (pOLE->pSvr->fEmbed)
                OLEClientNotify(pOLE->pSvr->pDoc->pObj, OLE_CLOSED);

#endif //MAKEOLESERVER
            break;
        }

    return fRet;
    }






/*
 * FFileNew
 *
 * Purpose:
 *  Confirms the new file with the user and cleans out the Polyline
 *  image.
 *
 * Parameters:
 *  pGlob           LPGLOBALS to the global variable block.
 *
 * Return Value:
 *  BOOL            TRUE if the function succeeded, FALSE otherwise.
 *
 */

BOOL WINAPI FFileNew(LPGLOBALS pGlob)
    {
    if (!FCleanVerify(pGlob))
        return FALSE;

#ifdef MAKEOLESERVER
    PDocRevokeAndCreate(pOLE);
#endif //MAKEOLESERVER

    pGlob->fOLE=FALSE;

    SendMessage(pGlob->hWndPolyline, PLM_POLYLINENEW, 0, 0L);
    pGlob->fDirty=FALSE;
    pGlob->fOpenFile=FALSE;

    WindowTitleSet(pGlob->hWnd, rgpsz[IDS_UNTITLED]);
    return TRUE;
    }




/*
 * FFileOpen
 *
 * Purpose:
 *  Confirms that the user wants to open a new file and invokes the
 *  common dialog file open to get the filename, then reads the
 *  contents of the file.  If the fImport flag is TRUE, then we
 *  import the contents of the file into the current document,
 *  not changing the document name or any of the UI.
 *
 * Parameters:
 *  pGlob           LPGLOBALS to the global variable block.
 *  fImport         BOOL indicates if we're importing from a file,
 *                  not affecting the current filename.
 *
 * Return Value:
 *  BOOL            TRUE if the function succeeded, FALSE otherwise.
 *
 */

BOOL WINAPI FFileOpen(LPGLOBALS pGlob, BOOL fImport)
    {
    POLYLINE        pl;
    BOOL            fOK;
    LPSTR           psz;
    char            szTemp[CCHPATHMAX];
    LPSTR           pszFile;

    if (!fImport)
        {
        if (!FCleanVerify(pGlob))
            return FALSE;
        }

    psz=(fImport) ? rgpsz[IDS_FILEIMPORT] : rgpsz[IDS_FILEOPEN];

    //We have to use a temp for Import or else we'll wipe out a real filename.
    pszFile=(fImport) ? (LPSTR)szTemp : (LPSTR)pGlob->szFile;

    fOK=FSaveOpenDialog(pGlob->hWnd, pGlob->hInst, rgpsz[IDS_DEFEXT]
        , rgpsz[IDS_FILEOPENFILTER], pszFile, psz, TRUE);


    if (fOK)
        {
        //Attempt to read the file in and display it.
        if (!FCosFileRead(pGlob, pszFile, &pl))
            return FALSE;

#ifdef MAKEOLESERVER
        if (!fImport)
            PDocRevokeAndCreate(pOLE);
#endif //MAKEOLESERVER

        SendMessage(pGlob->hWndPolyline, PLM_POLYLINESET,
                    TRUE, (LONG)(LPSTR)&pl);

        if (!fImport)
            {
            WindowTitleSet(pGlob->hWnd, pszFile);
            pGlob->fOLE=FALSE;

            pGlob->fOpenFile=TRUE;
            pGlob->fDirty=FALSE;
            }
        else
            pGlob->fDirty=TRUE;
        }

    return fOK;
    }






/*
 * FFileSave
 *
 * Purpose:
 *  Writes the file to a known filename, requiring that the user has
 *  previously used FileOpen or FileSaveAs in order to have a filename.
 *
 * Parameters:
 *  pGlob           LPGLOBALS to the global variable block.
 *
 * Return Value:
 *  BOOL            TRUE if the function succeeded, FALSE otherwise.
 *
 */

BOOL WINAPI FFileSave(LPGLOBALS pGlob)
    {
    POLYLINE        pl;

#ifdef MAKEOLESERVER
    OLESTATUS       os;

    //In OLE cases, this may be Update; call OleSavedServerDoc
    if (pGlob->fOLE)
        {
        if (pOLE->pSvr->fLink)
            {
            SendMessage(pGlob->hWndPolyline, PLM_POLYLINEGET, 0,
                        (LONG)(LPSTR)&pl);

            if (!FCosFileWrite(pGlob, pGlob->szFile, &pl))
                return FALSE;
            }

        //This notifies the client for us.
        os=OleSavedServerDoc(pOLE->pSvr->pDoc->lh);

        pGlob->fDirty=(BOOL)(OLE_OK!=os);
        return !pGlob->fDirty;
        }

#endif //MAKEOLESERVER

    if (!pGlob->fOpenFile)
        return FFileSaveAs(pGlob);

    SendMessage(pGlob->hWndPolyline, PLM_POLYLINEGET, 0, (LONG)(LPSTR)&pl);

    if (!FCosFileWrite(pGlob, pGlob->szFile, &pl))
        return FALSE;

    pGlob->fOpenFile=TRUE;
    pGlob->fDirty=FALSE;
    return TRUE;
    }






/*
 * FFileSaveAs
 *
 * Purpose:
 *  Invokes the common dialog for Save As to get a filename then
 *  writes the polyline data to that file, creating if necessary.
 *
 * Parameters:
 *  pGlob           LPGLOBALS to the global variable block.
 *
 * Return Value:
 *  BOOL            TRUE if the function succeeded, FALSE otherwise.
 *
 */

BOOL WINAPI FFileSaveAs(LPGLOBALS pGlob)
    {
    POLYLINE        pl;
    BOOL            fOK;

    fOK=FSaveOpenDialog(pGlob->hWnd, pGlob->hInst, rgpsz[IDS_DEFEXT]
        , rgpsz[IDS_FILEOPENFILTER], pGlob->szFile, rgpsz[IDS_FILESAVEAS]
        , FALSE);

    if (fOK)
        {
        SendMessage(pGlob->hWndPolyline, PLM_POLYLINEGET
            , 0, (LONG)(LPSTR)&pl);

        fOK=FCosFileWrite(pGlob, pGlob->szFile, &pl);

#ifdef MAKEOLESERVER
        /*
         * In the Save Copy As case, when an object is embedded, we
         * don't need to call Rename or Saved since we just saved a
         * silent copy of the data.
         */
        if (pGlob->fOLE && pOLE->pSvr->fEmbed)
            return fOK;

        if (fOK && pGlob->fOLE && pOLE->pSvr->fLink)
            {
            OleRenameServerDoc(pOLE->pSvr->pDoc->lh, pGlob->szFile);
            OleSavedServerDoc(pOLE->pSvr->pDoc->lh);
            }
#endif //MAKEOLESERVER

        pGlob->fOpenFile=fOK;
        WindowTitleSet(pGlob->hWnd, pGlob->szFile);
        pGlob->fDirty=FALSE;
        }

    return fOK;
    }



/*
 * FFileExit
 *
 * Purpose:
 *  Handles the File/Exit menu command, verifying dirty files as necessary
 *  and revoking the server.
 *
 * Parameters:
 *  pGlob           LPGLOBALS to the global variable block.
 *
 * Return Value:
 *  BOOL            TRUE if the application can exit, FALSE otherwise.
 */

BOOL WINAPI FFileExit(LPGLOBALS pGlob)
    {
    BOOL            fRet;
#ifdef MAKEOLESERVER
    OLESTATUS       os;
    LHSERVER        lhT;
#endif //MAKEOLESERVER

    if (!FCleanVerify(pGlob))
        return FALSE;

#ifdef MAKEOLESERVER
    lhT=pOLE->pSvr->lh;
    pOLE->pSvr->lh=0L;
    os=OleRevokeServer(lhT);

    if (OLE_WAIT_FOR_RELEASE==os)
        {
        pOLE->pSvr->fRelease=FALSE;
        FOLEReleaseWait(&pOLE->pSvr->fRelease, lhT);
        fRet=TRUE;
        }
    else
        fRet=(OLE_OK==os);
#endif //MAKEOLESERVER

    return fRet;
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人一区在线| 性感美女久久精品| 国产jizzjizz一区二区| 国产亚洲精品aa| 成人综合婷婷国产精品久久| 亚洲国产经典视频| 色综合中文综合网| 欧美日本在线看| 蜜臀av性久久久久av蜜臀妖精 | 极品美女销魂一区二区三区| 精品电影一区二区| 顶级嫩模精品视频在线看| 综合中文字幕亚洲| 欧美精品aⅴ在线视频| 精品中文字幕一区二区小辣椒| 国产亚洲欧洲997久久综合 | 极品美女销魂一区二区三区 | 91成人免费电影| 肉色丝袜一区二区| 精品剧情v国产在线观看在线| 国产黑丝在线一区二区三区| 亚洲免费观看高清完整版在线| 制服丝袜中文字幕亚洲| 国产一区二区网址| 亚洲欧美视频一区| 日韩一区二区三区视频| 国产99久久久久久免费看农村| 首页国产丝袜综合| 精品日韩av一区二区| av电影一区二区| 免费成人在线视频观看| 亚洲日本在线a| 久久综合色之久久综合| 色偷偷一区二区三区| 蜜桃精品在线观看| 亚洲激情自拍视频| 久久久久高清精品| 欧美另类videos死尸| 成人听书哪个软件好| 日韩精品色哟哟| 亚洲天堂av老司机| 欧美不卡一区二区| 欧洲色大大久久| 国产成a人亚洲| 日韩国产成人精品| 国产精品成人一区二区艾草| 欧美不卡在线视频| 欧美精品乱人伦久久久久久| gogo大胆日本视频一区| 极品少妇xxxx偷拍精品少妇| 婷婷中文字幕一区三区| 亚洲视频一区在线观看| 国产人妖乱国产精品人妖| 91精品中文字幕一区二区三区| 91在线视频免费91| 国产成人精品影视| 久久精品国产秦先生| 亚洲18女电影在线观看| 亚洲女人小视频在线观看| 国产精品免费视频一区| 久久久久久久电影| 欧美精品一区二区三区视频| 在线观看91精品国产麻豆| 在线观看国产日韩| 91麻豆精东视频| 成人av资源在线| 国产成人亚洲综合a∨猫咪| 麻豆精品蜜桃视频网站| 日韩av二区在线播放| 午夜久久福利影院| 午夜久久久影院| 五月激情综合色| 日韩电影在线免费| 日韩va亚洲va欧美va久久| 日本伊人色综合网| 美腿丝袜亚洲一区| 久久国产尿小便嘘嘘尿| 亚洲六月丁香色婷婷综合久久| 国产农村妇女毛片精品久久麻豆 | 日韩免费电影网站| 69堂国产成人免费视频| 欧美人牲a欧美精品| 欧美日韩国产欧美日美国产精品| 欧美色精品在线视频| 欧美另类一区二区三区| 日韩午夜在线播放| 精品久久久久99| 国产目拍亚洲精品99久久精品| 国产亚洲精品7777| 国产精品久久毛片a| 亚洲欧洲国产日本综合| 亚洲精品国产一区二区三区四区在线| 亚洲三级在线免费| 亚洲综合丁香婷婷六月香| 亚洲v精品v日韩v欧美v专区| 日韩av电影免费观看高清完整版| 青青草国产精品亚洲专区无| 韩国v欧美v日本v亚洲v| 成人av在线看| 欧美日韩一本到| 欧美xxx久久| 国产精品久久久久一区二区三区| 亚洲精品高清在线观看| 琪琪一区二区三区| 国产乱人伦精品一区二区在线观看| 成人av资源在线| 欧美高清www午色夜在线视频| 欧美成人一区二区三区片免费| 久久精品一区二区三区av| 亚洲乱码日产精品bd| 喷白浆一区二区| 成人久久久精品乱码一区二区三区| 一本色道a无线码一区v| 日韩色视频在线观看| 国产欧美精品一区二区三区四区 | 一区二区三区国产精品| 日韩高清欧美激情| 国产成人a级片| 欧美日韩卡一卡二| 欧美国产激情一区二区三区蜜月 | 久久99精品久久久久久国产越南| 丰满白嫩尤物一区二区| 欧美高清精品3d| 专区另类欧美日韩| 国产成人8x视频一区二区| 91片在线免费观看| 精品盗摄一区二区三区| 亚洲最新视频在线观看| 国产精品羞羞答答xxdd| 欧美日韩一卡二卡| 国产精品初高中害羞小美女文| 奇米亚洲午夜久久精品| 色综合久久六月婷婷中文字幕| 欧美va在线播放| 亚洲图片欧美一区| av成人免费在线| 久久精品欧美日韩| 美女www一区二区| 欧洲另类一二三四区| 亚洲国产精品av| 国产中文字幕精品| 日韩一级二级三级精品视频| 亚洲综合在线五月| 成人av网站免费观看| 26uuuu精品一区二区| 日韩国产在线一| 色婷婷综合激情| 国产精品大尺度| 成人综合婷婷国产精品久久蜜臀 | 午夜精品爽啪视频| 色综合久久久久久久| 国产蜜臀av在线一区二区三区| 精品一区二区三区视频在线观看| 欧美日韩精品欧美日韩精品| 亚洲丝袜另类动漫二区| 成人av影视在线观看| 国产欧美日韩三级| 国产成人精品www牛牛影视| 精品成人一区二区| 精品无码三级在线观看视频| 日韩免费高清电影| 久久精品国产澳门| 欧美成人猛片aaaaaaa| 久草热8精品视频在线观看| 日韩欧美一级片| 久久国产尿小便嘘嘘尿| 欧美va在线播放| 国产一区二区三区在线观看免费视频 | 亚洲国产精品一区二区www | 日韩一级成人av| 日韩激情视频在线观看| 欧美美女喷水视频| 亚洲3atv精品一区二区三区| 欧美日韩精品一区二区三区| 亚洲6080在线| 日韩欧美国产综合一区| 欧美群妇大交群中文字幕| 色综合久久综合| 亚洲香肠在线观看| 欧美精三区欧美精三区| 图片区小说区区亚洲影院| 日韩午夜av电影| 国产一区二区调教| 中文字幕在线一区免费| 色综合天天综合给合国产| 亚洲一区二区在线免费观看视频| 欧美亚日韩国产aⅴ精品中极品| 一区二区三区欧美日韩| 欧美日韩在线精品一区二区三区激情| 午夜电影久久久| 91精品国产日韩91久久久久久| 久久国内精品自在自线400部| 国产欧美精品在线观看| 日本精品一区二区三区高清| 亚洲成精国产精品女| 日韩一区二区免费视频| 国产老女人精品毛片久久| 日韩毛片精品高清免费| 91麻豆精品国产91久久久资源速度| 久久国产夜色精品鲁鲁99|