home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / C++-7 / DISK8 / MFC / SAMPLES / OSERVER / BIBREF.CP$ / bibref
Encoding:
Text File  |  1992-03-19  |  1.9 KB  |  80 lines

  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. /////////////////////////////////////////////////////////////////////////////
  80.