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

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

?? patron.cpp

?? 英文版的 想要的話可以下載了 為大家服務
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
/*
 * PATRON.CPP
 * Patron Chapter 22
 *
 * WinMain which is all we need for the basic application.
 *
 * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
 *
 * Kraig Brockschmidt, Microsoft
 * Internet  :  kraigb@microsoft.com
 * Compuserve:  >INTERNET:kraigb@microsoft.com
 */


#define INITGUIDS
#include "patron.h"

ULONG       g_cObj=0;
ULONG       g_cLock=0;
HWND        g_hWnd=NULL;
BOOL        g_fUser=TRUE;


//CHAPTER22MOD
/*
 * The in-place site needs to have access to the frame and its
 * IOleInPlaceFrame interface.  A global, pardon me, is the simplest
 * way to achieve this.
 */

PCPatronFrame   g_pFR;
//End CHAPTER22MOD



/*
 * 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)
    {
    PCPatronFrame   pFR;
    FRAMEINIT       fi;
    WPARAM          wRet=0;

    SETMESSAGEQUEUE;

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

    if (NULL==pFR)
        return -1;

    //CHAPTER22MOD
    g_pFR=pFR;
    //End CHAPTER22MOD

    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=CW_USEDEFAULT;
    fi.cy=CW_USEDEFAULT;

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

    delete pFR;
    return wRet;
    }



/*
 * ObjectDestroyed
 *
 * Purpose:
 *  Function for the Patron Document 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 (0==g_cObj && 0==g_cLock && IsWindow(g_hWnd) && !g_fUser)
        PostMessage(g_hWnd, WM_CLOSE, 0, 0L);

    return;
    }





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

CPatronFrame::CPatronFrame(HINSTANCE hInst, HINSTANCE hInstPrev
    , LPSTR pszCmdLine, int nCmdShow)
    : CFrame(hInst, hInstPrev, pszCmdLine, nCmdShow)
    {
    m_fInitialized=FALSE;
    m_pIClassDataTran=NULL;

    m_pDocCreated=NULL;
    m_fEmbedding=FALSE;

    m_dwRegCO=0;
    m_pIClassFactory=NULL;

    //CHAPTER22MOD
    m_cRef=0;
    m_hAccelIP=NULL;
    m_hWndObj=NULL;
    m_hMenuOrg=NULL;
    m_hMenuTop=NULL;
    m_fOurToolsShowing=TRUE;
    m_fInContextHelp=FALSE;
    m_pIOleIPActiveObject=NULL;
    //End CHAPTER22MOD

    return;
    }


CPatronFrame::~CPatronFrame(void)
    {
    //Opposite of CoRegisterClassObject, takes class factory ref to 1
    if (0L!=m_dwRegCO)
        CoRevokeClassObject(m_dwRegCO);

    //This should be the last Release, which frees the class factory.
    ReleaseInterface(m_pIClassFactory);

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

    OleFlushClipboard();

    if (m_fInitialized)
        OleUninitialize();

    return;
    }




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

BOOL CPatronFrame::Init(PFRAMEINIT pFI)
    {
    HRESULT     hr;
    BOOL        fRet;

    CHECKVER_OLE;

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

    m_fInitialized=TRUE;

    //Lock the data transfer object factory as an optimization.
    hr=CoGetClassObject(CLSID_DataTransferObject
        , CLSCTX_INPROC_SERVER, NULL, IID_IClassFactory
        , (PPVOID)&m_pIClassDataTran);

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

    //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;

    if (m_fEmbedding)
        {
        HRESULT     hr;

        m_pIClassFactory=new CLinkClassFactory(this);

        if (NULL==m_pIClassFactory)
            return FALSE;

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

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

        if (FAILED(hr))
            return FALSE;
        }

    //CHAPTER22MOD
    //Load in-place accelerators
    m_hAccelIP=LoadAccelerators(m_hInst
        , MAKEINTRESOURCE(IDR_INPLACEACCELERATORS));

    if (NULL==m_hAccelIP)
        return FALSE;

    fRet=CFrame::Init(pFI);

    m_hMenuOrg=GetMenu(m_hWnd);
    return fRet;
    //End CHAPTER22MOD
    }





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

PCClient CPatronFrame::CreateCClient(void)
    {
    return (PCClient)(new CPatronClient(m_hInst, this));
    }






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

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

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

    //We need double-clicks now and for object activation.
    wc.style         = CS_HREDRAW | CS_VREDRAW | CS_DBLCLKS;
    wc.hInstance     = m_hInst;
    wc.cbClsExtra    = 0;
    wc.lpfnWndProc   = PagesWndProc;
    wc.cbWndExtra    = CBPAGESWNDEXTRA;
    wc.hIcon         = NULL;
    wc.hCursor       = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = (HBRUSH)(COLOR_APPWORKSPACE+1);
    wc.lpszMenuName  = NULL;
    wc.lpszClassName = SZCLASSPAGES;

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

    return TRUE;
    }




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

BOOL CPatronFrame::PreShowInit(void)
    {
    //Base class does nothing
    CFrame::PreShowInit();

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

    //If we're -Embedding, don't show the window initially.
    if (m_fEmbedding)
        m_nCmdShow=SW_HIDE;

    return TRUE;
    }





/*
 * CPatronFrame::OnCommand
 *
 * Purpose:
 *  WM_COMMAND handler for the Patron frame window that processes
 *  extra File menu items as well as the Page menu.
 *
 * Parameters:
 *  hWnd            HWND of the frame window.
 *  wParam          WPARAM of the message.
 *  lParam          LPARAM of the message.
 *
 * Return Value:
 *  LRESULT         Return value for the message.
 */

LRESULT CPatronFrame::OnCommand(HWND hWnd, WPARAM wParam
    , LPARAM lParam)
    {
    PCPatronDoc     pDoc;

    COMMANDPARAMS(wID, wCode, hWndMsg);

    /*
     * Don't bother with anything during first initialization,
     * skipping many toolbar notifications.
     */
    if (m_fInit)
        return 0L;

    pDoc=(PCPatronDoc)m_pCL->ActiveDocument();

    //CHAPTER22MOD
    //Also check for the open command now too.
    if (NULL!=pDoc && ((IDM_VERBMIN <= wID) && (IDM_VERBMAX >= wID)
        || IDM_OPENOBJECT==wID))
        {
        MSG     msg;
        DWORD   dw;
        LONG    iVerb=(long)(wID-IDM_VERBMIN);

        //Include a message for in-place objects.
        msg.hwnd=NULL;
        msg.message=WM_COMMAND;
        msg.wParam=wParam;
        msg.lParam=lParam;
        msg.time=GetMessageTime();

        dw=GetMessagePos();
        SETPOINT(msg.pt, LOWORD(dw), HIWORD(dw));

        if (IDM_OPENOBJECT==wID)
            iVerb=OLEIVERB_OPEN;

        pDoc->ActivateObject(iVerb, &msg);
        return 0L;
        }
    //End CHAPTER22MOD


    switch (wID)
        {
        case IDM_FILEPRINT:
            pDoc->Print(m_hWnd);
            return 0L;

        case IDM_FILEPRINTERSETUP:
            pDoc->PrinterSetup(m_hWnd, FALSE);
            return 0L;

        case IDM_EDITPASTESPECIAL:
            pDoc->PasteSpecial(m_hWnd);
            return 0L;

        case IDM_EDITDELETEOBJECT:
            pDoc->Delete();
            return 0L;

        case IDM_EDITINSERTOBJECT:
            pDoc->InsertObject(m_hWnd);
            return 0L;

        case IDM_EDITCONVERT:
            pDoc->ConvertObject(m_hWnd);
            return 0L;

        case IDM_EDITLINKS:
            pDoc->EditLinks(m_hWnd);
            return 0L;

        case IDM_PAGENEWPAGE:
            pDoc->NewPage();
            break;

        case IDM_PAGEDELETEPAGE:
            pDoc->DeletePage();
            break;

        case IDM_PAGENEXTPAGE:
            pDoc->NextPage();
            break;

        case IDM_PAGEPREVIOUSPAGE:
            pDoc->PreviousPage();
            break;

        case IDM_PAGEFIRSTPAGE:
            pDoc->FirstPage();
            break;

        case IDM_PAGELASTPAGE:
            pDoc->LastPage();
            break;

        case IDM_PAGESHOWOBJECTS:
            {
            BOOL    fTemp;

            //First get the current state, then toggle it.
            fTemp=pDoc->ShowOrQueryObjectTypes(TRUE, FALSE);
            pDoc->ShowOrQueryObjectTypes(FALSE, !fTemp);
            }
            break;

        //CHAPTER22MOD
        case IDM_ENTERCONTEXTHELP:
        case IDM_ESCAPECONTEXTHELP:
            //Notify the object on entry and exit.
            ContextSensitiveHelp(IDM_ENTERCONTEXTHELP==wID);
            break;
        //End CHAPTER22MOD

        default:
           return CFrame::OnCommand(hWnd, wParam, lParam);
        }

    return 0L;
    }








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

UINT CPatronFrame::CreateToolbar(void)
    {
    UINT            iLast;
    UINT            uState=GIZMO_NORMAL;
    UINT            utCmd =GIZMOTYPE_BUTTONCOMMAND;

    //Insert the standard ones.
    iLast=CFrame::CreateToolbar();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人h精品动漫一区二区三区| 亚洲免费观看高清完整版在线| 亚洲国产视频在线| 在线免费观看日本一区| 亚洲三级在线免费观看| 色婷婷久久综合| 亚洲综合视频网| 3atv一区二区三区| 蜜臀精品久久久久久蜜臀| 5566中文字幕一区二区电影| 精品中文av资源站在线观看| 欧美精品一区二区三区很污很色的 | 这里只有精品视频在线观看| 九九精品一区二区| 国产亚洲va综合人人澡精品| 国产麻豆成人精品| 一区二区三区在线观看动漫| 欧美日韩国产一级二级| 久久se精品一区二区| 欧美激情一区二区三区四区| 色综合天天在线| 免费在线一区观看| 国产精品高潮呻吟久久| 欧美偷拍一区二区| 精久久久久久久久久久| 综合激情成人伊人| 日韩精品一区二区在线观看| caoporn国产一区二区| 亚洲成av人片一区二区梦乃| 久久综合九色综合97_久久久| 99视频精品全部免费在线| 亚洲va欧美va国产va天堂影院| 337p粉嫩大胆噜噜噜噜噜91av | 久色婷婷小香蕉久久| 国产欧美日韩在线看| 欧美亚洲综合色| 国产精品亚洲综合一区在线观看| 一区二区三区四区在线播放| 精品福利二区三区| 欧美午夜一区二区三区免费大片| 国产高清不卡一区| 天堂蜜桃91精品| 亚洲一二三专区| 久久这里只有精品6| 精品污污网站免费看| 波多野结衣亚洲一区| 全国精品久久少妇| 一区二区三区视频在线观看| 337p日本欧洲亚洲大胆精品| 欧美日韩视频在线第一区| 成人白浆超碰人人人人| 久久www免费人成看片高清| 亚洲福利视频一区二区| 国产精品美女久久久久久久| 欧美mv和日韩mv国产网站| 91精品福利在线| 波多野结衣的一区二区三区| 久久精品国产99国产| 亚洲18女电影在线观看| 一区精品在线播放| 亚洲国产成人午夜在线一区| 欧美精品一区二区高清在线观看| 欧美久久久久免费| 欧美日韩国产成人在线免费| 91久久线看在观草草青青| 99免费精品在线观看| 福利一区福利二区| 国产一区二区不卡老阿姨| 免费成人在线观看| 日本成人中文字幕在线视频| 亚洲一区二区视频在线| 亚洲男人天堂av网| 成人欧美一区二区三区小说| 亚洲国产精品精华液ab| 国产精品沙发午睡系列990531| 国产亚洲欧美激情| 欧美—级在线免费片| 国产日韩视频一区二区三区| 国产欧美视频一区二区| 久久精品欧美日韩| 亚洲国产精品精华液ab| 欧美高清在线精品一区| 亚洲欧美中日韩| 亚洲一区二区视频在线观看| 亚洲福利电影网| 青青草97国产精品免费观看 | 老司机午夜精品| 国产伦精品一区二区三区在线观看 | 色综合久久综合| 欧洲生活片亚洲生活在线观看| 欧美日韩一区 二区 三区 久久精品| 在线看日韩精品电影| 欧美久久久久久久久久| 日韩天堂在线观看| 久久久久久久久久久久久久久99| 国产亚洲欧美中文| 亚洲欧洲成人自拍| 亚洲国产综合人成综合网站| 日韩精品一卡二卡三卡四卡无卡| 免费在线观看视频一区| 国产一区二区在线电影| va亚洲va日韩不卡在线观看| 欧美综合欧美视频| 欧美成人一级视频| 国产精品另类一区| 亚洲成人一区二区| 国产一二精品视频| 91久久精品一区二区三区| 欧美日韩精品久久久| 精品国产自在久精品国产| 中文av一区二区| 亚洲电影第三页| 激情偷乱视频一区二区三区| 不卡的av在线| 91麻豆精品91久久久久同性| 欧美—级在线免费片| 亚洲午夜精品在线| 丁香婷婷综合激情五月色| 欧美三级中文字幕在线观看| 欧美sm美女调教| 亚洲欧美一区二区三区国产精品| 三级欧美韩日大片在线看| 国产精品888| 在线不卡中文字幕播放| 久久久久国产成人精品亚洲午夜| 一区二区三区 在线观看视频| 麻豆一区二区99久久久久| 99re热这里只有精品视频| 欧美一级片在线| 亚洲手机成人高清视频| 激情av综合网| 欧美精选在线播放| 亚洲欧美国产77777| 国产自产高清不卡| 欧美日韩视频在线第一区| 国产精品进线69影院| 久久99精品国产| 9191成人精品久久| 亚洲精品少妇30p| 国产91在线|亚洲| 亚洲精品一区二区三区影院| 午夜精品久久久久久久久久久| 成人在线视频首页| 精品剧情在线观看| 蜜臀精品久久久久久蜜臀| 欧美在线观看一区二区| 国产精品的网站| 国产风韵犹存在线视精品| 91精品国产91综合久久蜜臀| 亚洲精品国产品国语在线app| 国产剧情一区二区三区| 精品国免费一区二区三区| 午夜欧美大尺度福利影院在线看 | 综合在线观看色| 国产aⅴ精品一区二区三区色成熟| 欧美一区二区视频在线观看2020| 亚洲精品国产成人久久av盗摄| 成人av网站在线| 中文文精品字幕一区二区| 精品一区二区三区免费| 精品日韩一区二区| 久久99精品久久久| 欧美成人video| 麻豆一区二区在线| 欧美成人欧美edvon| 久久99精品国产.久久久久久| 欧美一级专区免费大片| 免费成人你懂的| 日韩欧美一级片| 激情六月婷婷综合| 精品久久一区二区三区| 国产在线一区观看| 国产亚洲精品福利| 成人久久视频在线观看| ...xxx性欧美| 日本道在线观看一区二区| 夜夜操天天操亚洲| 在线不卡中文字幕| 九九久久精品视频| 欧美激情一区二区三区不卡| a美女胸又www黄视频久久| 日韩理论电影院| 欧美色爱综合网| 欧美aaa在线| 久久伊99综合婷婷久久伊| 国产精品18久久久久久久久久久久| 久久众筹精品私拍模特| 成人国产一区二区三区精品| 亚洲人成人一区二区在线观看| 色婷婷久久99综合精品jk白丝| 亚洲一二三区视频在线观看| 在线综合视频播放| 国产成人免费9x9x人网站视频| 亚洲欧美一区二区三区久本道91| 欧美亚日韩国产aⅴ精品中极品| 五月天精品一区二区三区| 精品国产a毛片| 91色porny在线视频| 亚洲成av人片一区二区梦乃| 精品国产伦一区二区三区观看方式 |