|
|
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: // MinSvrMI.cpp : minimal OLE Server - Multiple Inheritance Example ! 13: ! 14: ///////////////////////////////////////////////////////////////////////////// ! 15: ! 16: #include <afxole.h> ! 17: #include "resource.h" ! 18: ! 19: #define SERVER_NAME "MINSVRMI" ! 20: #define SERVER_LOCAL_NAME "Mini OLE Server - MI Implementation" ! 21: ! 22: ///////////////////////////////////////////////////////////////////////////// ! 23: ! 24: // MiApp is-a Window - for the main window ! 25: // MiApp is-an application - since we need one ! 26: // MiApp is-an OLE Server - since we need one to do OLE ! 27: // MiApp is-an OLE document - since there is one document per main window ! 28: // MiApp is-an OLE item - since we need one for the OLE document ! 29: ! 30: class CMiApp : public CFrameWnd, ! 31: public CWinApp, ! 32: public COleServer, ! 33: public COleServerDoc, ! 34: public COleServerItem ! 35: { ! 36: // Construction ! 37: public: ! 38: CMiApp(); ! 39: ! 40: // Attributes ! 41: public: ! 42: CString m_data; // example of server item data ! 43: ! 44: // Implementation ! 45: protected: ! 46: // Window messages and commands ! 47: afx_msg LONG OnCloseWindow(UINT, LONG); ! 48: afx_msg void OnUpdateClient(); ! 49: afx_msg void OnChangeString(); ! 50: afx_msg void OnFileExit(); ! 51: afx_msg void OnAbout(); ! 52: DECLARE_MESSAGE_MAP() ! 53: protected: ! 54: virtual void PostNcDestroy(); // for cleanup ! 55: ! 56: // App Overrides ! 57: BOOL InitInstance(); ! 58: ! 59: // OLE Server overrides ! 60: virtual COleServerDoc* OnOpenDoc(LPCSTR lpszDoc); ! 61: virtual COleServerDoc* OnCreateDoc(LPCSTR lpszClass, LPCSTR lpszDoc); ! 62: virtual COleServerDoc* OnEditDoc(LPCSTR lpszClass, LPCSTR lpszDoc); ! 63: ! 64: // Document overrides ! 65: virtual COleServerItem* OnGetDocument(); ! 66: virtual COleServerItem* OnGetItem(LPCSTR lpszItemName); ! 67: virtual COleServerItem* GetNextItem(POSITION& rPosition); ! 68: ! 69: // Item overrides ! 70: virtual OLESTATUS OnShow(BOOL bTakeFocus); ! 71: virtual BOOL OnDraw(CMetaFileDC* pDC); ! 72: virtual void Serialize(CArchive& ar); // for native data ! 73: virtual BOOL OnGetTextData(CString& rStringReturn); ! 74: ! 75: public: // necessary for having two or more CObject derived base classes ! 76: void* operator new(size_t nSize) ! 77: { return CFrameWnd::operator new(nSize); } ! 78: void operator delete(void* p) ! 79: { CFrameWnd::operator delete(p); } ! 80: }; ! 81: ! 82: ///////////////////////////////////////////////////////////////////////////// ! 83:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.