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

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

?? cosmo.cpp

?? 英文版的 想要的話可以下載了 為大家服務
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
/*
 * COSMO.CPP
 * Cosmo Chapter 18
 *
 * WinMain and CCosmoFrame implementations.
 *
 * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
 *
 * Kraig Brockschmidt, Microsoft
 * Internet  :  kraigb@microsoft.com
 * Compuserve:  >INTERNET:kraigb@microsoft.com
 */


#define INITGUIDS
#include "cosmo.h"

//CHAPTER18MOD
/*
 * These are for proper implementation of the class factory,
 * OLE Documents support, and shutdown conditions.
 */
ULONG g_cObj=0;
ULONG g_cLock=0;
HWND  g_hWnd=NULL;
BOOL  g_fUser=FALSE;
//End CHAPTER18MOD


/*
 * WinMain
 *
 * Purpose:
 *  Main entry point of application.  Should register the app class
 *  if a previous instance has not done so and do any other one-time
 *  initializations.
 */

int PASCAL WinMain (HINSTANCE hInst, HINSTANCE hPrev
    , LPSTR pszCmdLine, int nCmdShow)
    {
    PCCosmoFrame    pFR;
    FRAMEINIT       fi;
    WPARAM          wRet;

    SETMESSAGEQUEUE;

    //Attempt to allocate and initialize the application
    pFR=new CCosmoFrame(hInst, hPrev, pszCmdLine, nCmdShow);

    if (NULL==pFR)
        return -1;

    fi.idsMin=IDS_FRAMEMIN;
    fi.idsMax=IDS_FRAMEMAX;
    fi.idsStatMin=IDS_STATMESSAGEMIN;
    fi.idsStatMax=IDS_STATMESSAGEMAX;
    fi.idStatMenuMin=ID_MENUFILE;
    fi.idStatMenuMax=ID_MENUHELP;
    fi.iPosWindowMenu=WINDOW_MENU;
    fi.cMenus=CMENUS;

    fi.x=CW_USEDEFAULT;
    fi.y=CW_USEDEFAULT;
    fi.cx=440;
    fi.cy=460;

    //If we can initialize pFR, start chugging messages
    if (pFR->Init(&fi))
        wRet=pFR->MessageLoop();

    delete pFR;
    return wRet;
    }



//CHAPTER18MOD
/*
 * ObjectDestroyed
 *
 * Purpose:
 *  Function for the Cosmo Figure object to call when it gets
 *  destroyed.  We destroy the main window if the proper conditions
 *  are met for shutdown.
 */

void ObjectDestroyed(void)
    {
    g_cObj--;

    //No more objects, no locks, no user control, shut the app down.
    if (0L==g_cObj && 0L==g_cLock && IsWindow(g_hWnd) && !g_fUser)
        PostMessage(g_hWnd, WM_CLOSE, 0, 0L);

    return;
    }
//CHAPTER18MOD





/*
 * CCosmoFrame::CCosmoFrame
 * CCosmoFrame::~CCosmoFrame
 *
 * Constructor Parameters:
 *  hInst           HINSTANCE from WinMain
 *  hInstPrev       HINSTANCE from WinMain
 *  pszCmdLine      LPSTR from WinMain
 *  nCmdShow        int from WInMain
 */

CCosmoFrame::CCosmoFrame(HINSTANCE hInst, HINSTANCE hInstPrev
    , LPSTR pszCmdLine, int nCmdShow)
    : CFrame(hInst, hInstPrev, pszCmdLine, nCmdShow)
    {
    UINT        i;

    for (i=0; i<5; i++)
        m_hBmpLines[i]=NULL;

    m_uIDCurLine=0;
    m_fInitialized=FALSE;
    m_pIClassDataTran=NULL;

    //CHAPTER18MOD
    m_fEmbedding=FALSE;
    m_dwRegCO=0;
    m_pIClassFactory=NULL;
    //End CHAPTER18MOD

    return;
    }


CCosmoFrame::~CCosmoFrame(void)
    {
    UINT        i;

    //CHAPTER18MOD
    //Reverse CoRegisterClassObject, takes class factory ref to 1
    if (0L!=m_dwRegCO)
        CoRevokeClassObject(m_dwRegCO);

    ReleaseInterface(m_pIClassFactory);
    //End CHAPTER18MOD

    for (i=0; i<5; i++)
        {
        if (NULL!=m_hBmpLines[i])
            DeleteObject(m_hBmpLines[i]);
        }

    if (NULL!=m_pIClassDataTran)
        {
        m_pIClassDataTran->LockServer(FALSE);
        m_pIClassDataTran->Release();
        }

    OleFlushClipboard();

    if (m_fInitialized)
        OleUninitialize();

    return;
    }




/*
 * CCosmoFrame::Init
 *
 * Purpose:
 *  Call CoInitialize then calling down into the base class
 *  initialization.
 *
 * Parameters:
 *  pFI             PFRAMEINIT containing initialization parameters.
 *
 * Return Value:
 *  BOOL            TRUE if initialization succeeded, FALSE otherwise.
 */

BOOL CCosmoFrame::Init(PFRAMEINIT pFI)
    {
    HRESULT     hr;

    CHECKVER_OLE;

    if (FAILED(OleInitialize(NULL)))
        return FALSE;

    m_fInitialized=TRUE;

    hr=CoGetClassObject(CLSID_DataTransferObject
        , CLSCTX_INPROC_SERVER, NULL, IID_IClassFactory
        , (PPVOID)&m_pIClassDataTran);

    if (SUCCEEDED(hr))
        m_pIClassDataTran->LockServer(TRUE);


    //CHAPTER18MOD
    //Check for command line flags
    ParseCommandLine();

    if (NULL!=m_ppszCmdArgs)
        {
        if(0==lstrcmpi(m_ppszCmdArgs[0], TEXT("-Embedding"))
           || 0==lstrcmpi(m_ppszCmdArgs[0], TEXT("/Embedding")))
            m_fEmbedding=TRUE;
        }

    g_fUser=!m_fEmbedding;


    /*
     * Create our class factory and register it for this application
     * using CoRegisterClassObject.  The REGCLS_*USE flags have to
     * do with servicable object from this instance, not with MDI or
     * SDI.  Since it's most convenient to be single use, we'll do
     * this in either version.
     *
     * In addition, it only makes sense to do any of this if we're
     * being launched to be a server.
     */
    if (m_fEmbedding)
        {
        m_pIClassFactory=new CFigureClassFactory(this);

        if (NULL==m_pIClassFactory)
            return FALSE;

        //Since we hold on to this, we should AddRef it.
        m_pIClassFactory->AddRef();

        hr=CoRegisterClassObject(CLSID_CosmoFigure, m_pIClassFactory
            , CLSCTX_LOCAL_SERVER, REGCLS_SINGLEUSE, &m_dwRegCO);

        if (FAILED(hr))
            return FALSE;
        }
    //End CHAPTER18MOD
    return CFrame::Init(pFI);
    }



/*
 * CCosmoFrame::CreateCClient
 *
 * Purpose:
 *  Constructs a new client specific to the application.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  PCClient        Pointer to the new client object.
 */

PCClient CCosmoFrame::CreateCClient(void)
    {
    return (PCClient)(new CCosmoClient(m_hInst, this));
    }





/*
 * CCosmoFrame::RegisterAllClasses
 *
 * Purpose:
 *  Registers all classes used in this application.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  BOOL            TRUE if registration succeeded, FALSE otherwise.
 */

BOOL CCosmoFrame::RegisterAllClasses(void)
    {
    WNDCLASS        wc;

    //First let the standard frame do its thing
    if (!CFrame::RegisterAllClasses())
        return FALSE;

    /*
     * We want a different background color for the document
     * because the Polyline we put in the document will paint
     * with COLOR_WINDOW which by default which is CLASSLIB's
     * default document color.
     */

    GetClassInfo(m_hInst, SZCLASSDOCUMENT, &wc);
    UnregisterClass(SZCLASSDOCUMENT, m_hInst);

    wc.hbrBackground=(HBRUSH)(COLOR_APPWORKSPACE+1);

    if (!RegisterClass(&wc))
        return FALSE;

    //Register the Polyline window.
    wc.style         = CS_HREDRAW | CS_VREDRAW;
    wc.hInstance     = m_hInst;
    wc.cbClsExtra    = 0;
    wc.lpfnWndProc   = PolylineWndProc;
    wc.cbWndExtra    = CBPOLYLINEWNDEXTRA;
    wc.hIcon         = NULL;
    wc.hCursor       = LoadCursor(NULL, IDC_CROSS);
    wc.hbrBackground = NULL;
    wc.lpszMenuName  = NULL;
    wc.lpszClassName = SZCLASSPOLYLINE;

    if (!RegisterClass(&wc))
        return FALSE;

    return TRUE;
    }






/*
 * CCosmoFrame::PreShowInit
 *
 * Purpose:
 *  Called from Init before intially showing the window.  We do
 *  whatever else we want here, modifying nCmdShow as necessary
 *  which affects ShowWindow in Init.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  BOOL            TRUE if this initialization succeeded,
 *                  FALSE otherwise.
 */

BOOL CCosmoFrame::PreShowInit(void)
    {
    CreateLineMenu();
    CheckLineSelection(IDM_LINESOLID);

    //CHAPTER18MOD
    //Save the window handle for shutdown if necessary.
    g_hWnd=m_hWnd;

    //If we're under OLE control, don't show the main window.
    if (m_fEmbedding)
        m_nCmdShow=SW_HIDE;
    //End CHAPTER18MOD

    return TRUE;
    }



/*
 * CCosmoFrame::CreateLineMenu
 *
 * Purpose:
 *  Initializes the bitmaps used to create the Line menu and
 *  replaces the text items defined in the application resources
 *  with these bitmaps.  Note that the contents of m_hBmpLines
 *  must be cleaned up when the application terminates.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  None
 */

void CCosmoFrame::CreateLineMenu(void)
    {
    HMENU       hMenu;
    HDC         hDC, hMemDC;
    HPEN        hPen;
    HGDIOBJ     hObj;
    TEXTMETRIC  tm;
    UINT        i, cx, cy;


    hMenu=GetSubMenu(GetMenu(m_hWnd), 3);   //Line menu.
    hDC=GetDC(m_hWnd);

    //Create each line in a menu item 8 chars wide, one char high.
    GetTextMetrics(hDC, &tm);
    cx=tm.tmAveCharWidth*8;
    cy=tm.tmHeight;

    /*
     * Create a memory DC in which to draw lines, and bitmaps
     * for each line.
     */
    hMemDC=CreateCompatibleDC(hDC);
    ReleaseDC(m_hWnd, hDC);

    for (i=0; i<5; i++)
        {
        m_hBmpLines[i]=CreateCompatibleBitmap(hMemDC, cx, cy);
        SelectObject(hMemDC, m_hBmpLines[i]);

        PatBlt(hMemDC, 0, 0, cx, cy, WHITENESS);

        hPen=CreatePen(i, 1, 0L);       //i=line style like PS_SOLID
        hObj=SelectObject(hMemDC, hPen);

        MoveToEx(hMemDC, 0, cy/2, NULL);
        LineTo(hMemDC, cx, cy/2);

        ModifyMenu(hMenu, IDM_LINEMIN+i, MF_BYCOMMAND | MF_BITMAP
            , IDM_LINEMIN+i, (LPTSTR)(LONG)(UINT)m_hBmpLines[i]);

        SelectObject(hMemDC, hObj);
        DeleteObject(hPen);
        }

    CheckMenuItem(hMenu, IDM_LINESOLID, MF_CHECKED);
    DeleteDC(hMemDC);

    return;
    }









/*
 * CCosmoFrame::CreateToolbar
 *
 * Purpose:
 *  Procedure to create all the necessary toolbar buttons.
 *
 * Parameters:
 *  None
 *
 * Return Value:
 *  UINT            Number of tools added to the bar.
 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲观看高清完整版在线观看| 婷婷久久综合九色国产成人 | 成人免费在线播放视频| 蜜桃av一区二区三区电影| 色吧成人激情小说| 亚洲精品高清在线| 欧美日韩国产一二三| 亚洲图片欧美色图| 777xxx欧美| 久久精品噜噜噜成人88aⅴ| 日韩一级视频免费观看在线| 日本视频一区二区三区| 久久久亚洲精品石原莉奈| 国产精品一级片| 国产精品久久久久一区| 欧美亚洲图片小说| 久久精品国产一区二区| 中文字幕精品三区| 在线影院国内精品| 天天色天天爱天天射综合| 日韩一区二区三区在线观看| 久久99精品国产麻豆不卡| 国产欧美日韩在线视频| 91看片淫黄大片一级在线观看| 一区二区三区四区五区视频在线观看 | 欧美综合在线视频| 久久精品免费观看| 日韩一区二区三区免费观看| 国产欧美日韩综合| 欧美精品日韩一区| 91丝袜国产在线播放| 麻豆精品国产91久久久久久| 亚洲伦理在线免费看| 精品粉嫩aⅴ一区二区三区四区| 99精品黄色片免费大全| 激情久久久久久久久久久久久久久久| 亚洲国产精品99久久久久久久久| 69av一区二区三区| 色香蕉成人二区免费| 成人污视频在线观看| 国产一区二区久久| 国产自产2019最新不卡| 日本不卡一二三| 日本成人中文字幕| 国产美女视频91| 欧美成人激情免费网| 国产精一品亚洲二区在线视频| 国产欧美精品一区二区色综合 | 欧美日韩在线亚洲一区蜜芽| 亚洲一区二区在线视频| 欧美一区二区三区的| 波多野结衣欧美| 韩国女主播一区| 蜜臀av在线播放一区二区三区| 一色屋精品亚洲香蕉网站| 在线不卡欧美精品一区二区三区| 99久久伊人网影院| 国产精品亚洲午夜一区二区三区 | 色老汉一区二区三区| 成人综合日日夜夜| 国产成人鲁色资源国产91色综| 风间由美一区二区av101| 国产一区二区三区免费看| 国产一区二区精品久久99| 国产精品1区2区| 99精品欧美一区二区蜜桃免费 | 亚洲五码中文字幕| 日韩高清在线观看| 久久精品国产成人一区二区三区 | 日韩一区二区在线看| 久久久综合网站| 亚洲欧美福利一区二区| 男女性色大片免费观看一区二区 | 一区二区中文视频| 一区二区三区**美女毛片| 午夜视频一区在线观看| 免费成人在线播放| 成人网页在线观看| 欧美无人高清视频在线观看| 91精品国产综合久久福利| 国产丝袜美腿一区二区三区| 一二三区精品福利视频| 九色综合狠狠综合久久| 91亚洲国产成人精品一区二区三| 91 com成人网| 亚洲猫色日本管| 国产91精品一区二区麻豆网站| 在线精品视频一区二区三四| 久久日一线二线三线suv| 一区二区三区在线影院| 国产美女视频91| 91麻豆精品国产| 一区二区三区不卡在线观看 | 欧美午夜理伦三级在线观看| 中文字幕av在线一区二区三区| 日韩高清一级片| 在线一区二区视频| 国产精品私人影院| 国产一区二区三区久久久| 欧美日韩一本到| 亚洲精品国产一区二区三区四区在线 | 91精品国产综合久久蜜臀| 亚洲福利电影网| 91久久人澡人人添人人爽欧美| 中文字幕国产一区| 国产精品白丝jk黑袜喷水| 欧美精品少妇一区二区三区| 亚洲chinese男男1069| 色欧美日韩亚洲| 一区二区在线免费观看| 欧美日韩免费不卡视频一区二区三区| 日日夜夜精品视频天天综合网| 欧美日韩高清一区二区三区| 免费成人你懂的| 国产午夜精品福利| 91成人免费电影| 捆绑紧缚一区二区三区视频| 中文幕一区二区三区久久蜜桃| 色综合一区二区三区| 亚洲精品中文字幕在线观看| 91色综合久久久久婷婷| 亚洲国产一区二区a毛片| 欧美日韩国产精选| 蜜乳av一区二区| 欧美激情一区二区三区全黄| 99久久精品国产精品久久| 亚洲精品国产第一综合99久久 | 久久99久久99小草精品免视看| 国产精品你懂的在线欣赏| 欧美亚洲一区三区| 丰满少妇久久久久久久| 亚洲成人www| 1区2区3区国产精品| 欧美精选一区二区| 99视频精品全部免费在线| 美女视频一区二区| 婷婷久久综合九色综合伊人色| 欧美极品xxx| 日韩小视频在线观看专区| 91视视频在线观看入口直接观看www| 久久国产麻豆精品| 婷婷亚洲久悠悠色悠在线播放 | 欧美性极品少妇| 99久久99久久久精品齐齐| 国产精品66部| 蜜臂av日日欢夜夜爽一区| 午夜久久久久久电影| 亚洲国产精品影院| 亚洲国产成人高清精品| 亚洲精品视频在线观看网站| 中文一区在线播放| 欧美激情综合在线| 欧美国产1区2区| 国产片一区二区三区| 久久久久久久久久久电影| 欧美大片拔萝卜| 26uuu国产在线精品一区二区| 欧美成人精品福利| 337p粉嫩大胆色噜噜噜噜亚洲| 国产网红主播福利一区二区| 久久精品欧美一区二区三区麻豆| 中文字幕免费在线观看视频一区| 国产精品天干天干在线综合| 亚洲欧美国产77777| 亚洲一区二区视频| 国产在线播放一区| 91丨九色丨蝌蚪丨老版| 在线观看国产91| 欧美精品免费视频| 亚洲精品一区在线观看| 国产精品欧美久久久久无广告| 亚洲一区二三区| 国产精品一区二区在线播放 | xnxx国产精品| 国产欧美精品一区aⅴ影院| 一区视频在线播放| 国内久久精品视频| 欧美日韩极品在线观看一区| 欧美电视剧免费观看| 亚洲四区在线观看| 日本网站在线观看一区二区三区 | 色综合久久天天综合网| 精品国产青草久久久久福利| 一区二区三区在线观看视频| 天涯成人国产亚洲精品一区av| 美洲天堂一区二卡三卡四卡视频| 久久se这里有精品| 欧美在线三级电影| 亚洲视频一二三区| 国产aⅴ精品一区二区三区色成熟| 正在播放一区二区| 亚洲小少妇裸体bbw| 91片在线免费观看| 国产片一区二区| 国产成人av影院| 久久综合九色综合97_久久久| 午夜久久久久久电影| 欧美日韩一级二级| 亚洲第一狼人社区| 欧美久久久久中文字幕|