Annotation of mstools/mfc/samples/minsvrmi/minsvrmi.cpp, revision 1.1

1.1     ! root        1: // This is a part of the Microsoft Foundation Classes C++ library.
        !             2: // Copyright (C) 1992 Microsoft Corporation
        !             3: // All rights reserved.
        !             4: //
        !             5: // This source code is only intended as a supplement to the
        !             6: // Microsoft Foundation Classes Reference and Microsoft
        !             7: // QuickHelp documentation provided with the library.
        !             8: // See these sources for detailed information regarding the
        !             9: // Microsoft Foundation Classes product.
        !            10: 
        !            11: #include "minsvrMI.h"
        !            12: 
        !            13: // Main application parts and OLE server parts
        !            14: //  see 'mainwnd.cpp' for main window parts and item UI
        !            15: 
        !            16: /////////////////////////////////////////////////////////////////////////////
        !            17: // single object for the app
        !            18: CMiApp app;
        !            19: 
        !            20: CMiApp::CMiApp()
        !            21:        : CWinApp(SERVER_NAME), COleServer(TRUE)
        !            22: {
        !            23:        m_data = "sample data (MI version)";
        !            24: }
        !            25: 
        !            26: /////////////////////////////////////////////////////////////////////////////
        !            27: // Main app processing
        !            28: 
        !            29: BOOL CMiApp::InitInstance()
        !            30: {
        !            31:        BOOL bEmbedded = FALSE;
        !            32: 
        !            33:        // check if run with /Embedding
        !            34:        LPCSTR lpsz = m_lpCmdLine;
        !            35: 
        !            36:        while (*lpsz == ' ')
        !            37:                lpsz++;
        !            38:        if ((*lpsz == '-' || *lpsz == '/') &&
        !            39:                _fstrncmp("Embedding", lpsz+1, 9) == 0)
        !            40:        {
        !            41:                lpsz += 10;
        !            42:                bEmbedded = TRUE;
        !            43:        }
        !            44: 
        !            45:        if (!bEmbedded)
        !            46:        {
        !            47:                // register as a server
        !            48:                if (AfxOleRegisterServerName(SERVER_NAME, SERVER_LOCAL_NAME))
        !            49:                {
        !            50:                        MessageBox("Server Registered,"
        !            51:                                " please run from within host application.",
        !            52:                                AfxGetAppName());
        !            53:                }
        !            54:                else
        !            55:                {
        !            56:                        MessageBox("Server failed to register, try using REGEDIT.",
        !            57:                                AfxGetAppName());
        !            58:                }
        !            59:                return FALSE;
        !            60:        }
        !            61: 
        !            62:        // Server Init
        !            63:        if (!COleServer::Register(SERVER_NAME, TRUE))   // multi-instance server
        !            64:        {
        !            65:                MessageBox("Could not register server", AfxGetAppName(), MB_OK);
        !            66:                return FALSE;
        !            67:        }
        !            68: 
        !            69: 
        !            70:        // MiApp ignores rest of command line - normally use this as a
        !            71:        //   document file name
        !            72: 
        !            73:        // Window init
        !            74:        CRect rect(0, 200, 200, 400);
        !            75:        Create(NULL, SERVER_LOCAL_NAME, WS_OVERLAPPEDWINDOW,
        !            76:                        rect, NULL, "MainMenu");
        !            77:        ShowWindow(m_nCmdShow);
        !            78:        UpdateWindow();
        !            79:        m_pMainWnd = this;  // we are a main window !
        !            80: 
        !            81:        return TRUE;
        !            82: }
        !            83: 
        !            84: /////////////////////////////////////////////////////////////////////////////
        !            85: // OLE Server functionality
        !            86: 
        !            87: COleServerDoc*
        !            88: CMiApp::OnOpenDoc(LPCSTR)
        !            89: {
        !            90:        return this;
        !            91: }
        !            92: 
        !            93: COleServerDoc*
        !            94: CMiApp::OnCreateDoc(LPCSTR, LPCSTR)
        !            95: {
        !            96:        return this;
        !            97: }
        !            98: 
        !            99: COleServerDoc*
        !           100: CMiApp::OnEditDoc(LPCSTR, LPCSTR)
        !           101: {
        !           102:        return this;
        !           103: }
        !           104: 
        !           105: /////////////////////////////////////////////////////////////////////////////
        !           106: // OLE Server Doc functionality
        !           107: 
        !           108: COleServerItem* CMiApp::OnGetDocument()
        !           109: {
        !           110:        return this;
        !           111: }
        !           112: 
        !           113: COleServerItem* CMiApp::OnGetItem(LPCSTR)
        !           114: {
        !           115:        return this;
        !           116: }
        !           117: 
        !           118: COleServerItem* CMiApp::GetNextItem(POSITION& rPosition)
        !           119: {
        !           120:        if (rPosition != NULL)
        !           121:                return NULL;
        !           122:        rPosition = (POSITION) 1;
        !           123:        return this;
        !           124: }
        !           125: 
        !           126: /////////////////////////////////////////////////////////////////////////////
        !           127: // OLE Server Item functionality
        !           128: 
        !           129: void
        !           130: CMiApp::Serialize(CArchive& ar)
        !           131: {
        !           132:        // Customize this to store real data
        !           133:        if (ar.IsStoring())
        !           134:        {
        !           135:                ar << m_data;
        !           136:        }
        !           137:        else
        !           138:        {
        !           139:                ar >> m_data;
        !           140:        }
        !           141: }
        !           142: 
        !           143: 
        !           144: BOOL
        !           145: CMiApp::OnGetTextData(CString& rStringReturn)
        !           146: {
        !           147:        rStringReturn = m_data;
        !           148:        return TRUE;
        !           149: }
        !           150: 
        !           151: /////////////////////////////////////////////////////////////////////////////

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.