home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgLangD.iso / C++-7 / DISK11 / MFC / SAMPLES / MINSVR / MINSVR.H$ / minsvr
Encoding:
Text File  |  1992-03-16  |  3.3 KB  |  133 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. // Minsvr.cpp : minimal OLE Server
  13.  
  14. /////////////////////////////////////////////////////////////////////////////
  15.  
  16. #include <afxole.h>
  17. #include "resource.h"
  18.  
  19. /////////////////////////////////////////////////////////////////////////////
  20. // CMinItem : mini server item
  21.  
  22. class CMinDoc;
  23.  
  24. class CMinItem : public COleServerItem
  25. {
  26. // Constructors
  27. public:
  28.     CMinItem();
  29.  
  30. // Attributes
  31.     CMinDoc*    GetDocument() const // type cast helper
  32.                     { return (CMinDoc*) COleServerItem::GetDocument(); }
  33.  
  34.     CString m_data;     // example of item data
  35.  
  36. // Operations
  37.     BOOL    PromptChangeString();       // return TRUE if changed
  38.  
  39. // Overridables
  40. protected:
  41.     virtual OLESTATUS   OnShow(BOOL bTakeFocus);
  42.     virtual BOOL        OnDraw(CMetaFileDC* pDC);
  43.  
  44.     virtual void        Serialize(CArchive& ar);        // for native data
  45.     virtual BOOL        OnGetTextData(CString& rStringReturn);
  46. };
  47.  
  48. /////////////////////////////////////////////////////////////////////////////
  49. // CMinDoc : mini server document
  50.  
  51. class CMinDoc : public COleServerDoc
  52. {
  53. // Attributes
  54. public:
  55.     CMinItem m_item; // document contains one item
  56.  
  57. // Overridables for OLE server
  58. protected:
  59.     virtual COleServerItem* OnGetDocument();
  60.     virtual COleServerItem* OnGetItem(LPCSTR lpszObjname);
  61.     virtual COleServerItem* GetNextItem(POSITION& rPosition);
  62. };
  63.  
  64. /////////////////////////////////////////////////////////////////////////////
  65. // CMinServer : mini server
  66.  
  67. class CMainWnd;
  68.  
  69. #define SERVER_NAME         "MINSVR"
  70. #define SERVER_LOCAL_NAME   "Mini OLE Server"
  71.  
  72. class CMinServer : public COleServer
  73. {
  74. public:
  75.     CMinServer(CMainWnd* pMainWnd);
  76.  
  77. // Attributes
  78. public:
  79.     CMinDoc m_doc;      // single document server (multi-instance app)
  80.  
  81. protected:
  82. // Overridables for OLE Server requests
  83.     virtual COleServerDoc* OnOpenDoc(LPCSTR lpszDoc);
  84.     virtual COleServerDoc* OnCreateDoc(LPCSTR lpszClass, LPCSTR lpszDoc);
  85.     virtual COleServerDoc* OnEditDoc(LPCSTR lpszClass, LPCSTR lpszDoc);
  86.  
  87. // Implementation
  88. protected:
  89.     CMainWnd* m_pMainWnd;
  90. };
  91.  
  92. /////////////////////////////////////////////////////////////////////////////
  93. // CMainWnd : the main window
  94.  
  95. class CMainWnd : public CFrameWnd
  96. {
  97. // Construction
  98. public:
  99.     CMainWnd();
  100.  
  101. // Attributes
  102. public:
  103.     CMinServer m_server; // (contains server (contains doc (contains item)))
  104.  
  105. // Implementation
  106. protected:
  107.     afx_msg void OnClose();
  108.  
  109.     // menu commands
  110.     afx_msg void OnUpdateClient();
  111.     afx_msg void OnChangeString();
  112.     afx_msg void OnAbout();
  113.  
  114.     DECLARE_MESSAGE_MAP()
  115. };
  116.  
  117. /////////////////////////////////////////////////////////////////////////////
  118. // CMinApp : the application
  119.  
  120. class CMinApp : public CWinApp
  121. {
  122. public:
  123.     // single server application
  124.     CMinApp() : CWinApp(SERVER_NAME)
  125.         { }
  126.  
  127.     // implementation
  128.     BOOL InitInstance();
  129.     int ExitInstance();
  130. };
  131.  
  132. /////////////////////////////////////////////////////////////////////////////
  133.