Annotation of mstools/mfc/samples/oserver/bibref.cpp, revision 1.1.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: 
                     12: #include "bibref.h"
                     13: #include "mainwnd.h"
                     14: #include "bibsvr.h"
                     15: 
                     16: /////////////////////////////////////////////////////////////////////////////
                     17: // One instance of this server application per client
                     18: 
                     19: CBibApp app;
                     20: static CBibServer server;
                     21: 
                     22: BOOL CBibApp::InitInstance()
                     23: {
                     24:        BOOL bEmbedded = FALSE;
                     25: 
                     26:        // check if run with /Embedding
                     27:        LPCSTR lpsz = m_lpCmdLine;
                     28:        while (*lpsz == ' ')
                     29:                lpsz++;
                     30:        if ((*lpsz == '-' || *lpsz == '/') &&
                     31:                _fstrncmp("Embedding", lpsz+1, 9) == 0)
                     32:        {
                     33:                lpsz += 10;
                     34:                bEmbedded = TRUE;
                     35:                server.SetLaunchEmbedded();
                     36:        }
                     37:        // BibRef ignores rest of command line - normally use this as a
                     38:        //   document file name
                     39: 
                     40:        // BibRef data file
                     41:        strIniFile = CString(m_pszAppName) + ".ini";
                     42:                // NOTE: ini file contains settings as well as data
                     43: 
                     44:        CMainWnd* pWnd = new CMainWnd(bEmbedded);
                     45:        m_pMainWnd = pWnd;
                     46:        pWnd->ShowWindow(m_nCmdShow);
                     47:        pWnd->UpdateWindow();
                     48: 
                     49:        if (!bEmbedded)
                     50:        {
                     51:                AfxOleRegisterServerName(SERVER_NAME, SERVER_LOCAL_NAME);
                     52:        }
                     53: 
                     54:        if (!server.Register(SERVER_NAME, TRUE))   // multi-instance server
                     55:        {
                     56:                MessageBox(NULL, "Could not register server - Exiting",
                     57:                        SERVER_NAME, MB_OK);
                     58:                return FALSE;
                     59:        }
                     60: 
                     61:        return TRUE;
                     62: }
                     63: 
                     64: void CBibApp::ShutDown()
                     65: {
                     66:        if (server.IsOpen())
                     67:                server.BeginRevoke(); // revoke the server, OLE will terminate the app
                     68:        else
                     69:                ::PostQuitMessage(0);
                     70: }
                     71: 
                     72: int CBibApp::ExitInstance()
                     73: {
                     74:        if (m_pMainWnd != NULL)
                     75:                m_pMainWnd->DestroyWindow();
                     76:        return CWinApp::ExitInstance();
                     77: }
                     78: 
                     79: /////////////////////////////////////////////////////////////////////////////

unix.superglobalmegacorp.com

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