FREELOAD.H
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:3k
源码类别:

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * FREELOAD.H
  3.  * Freeloader Chapter 11
  4.  *
  5.  * Class overrides for the FreeLoader application
  6.  *
  7.  * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
  8.  *
  9.  * Kraig Brockschmidt, Microsoft
  10.  * Internet  :  kraigb@microsoft.com
  11.  * Compuserve:  >INTERNET:kraigb@microsoft.com
  12.  */
  13. #ifndef _FREELOAD_H_
  14. #define _FREELOAD_H_
  15. #define INC_OLE2
  16. #define INC_CLASSLIB
  17. #define CHAPTER11
  18. #include <inole.h>
  19. #include "resource.h"
  20. //FREELOAD.CPP:  Frame object that creates a main window
  21. class CFreeloaderFrame : public CFrame
  22.     {
  23.     private:
  24.         BOOL             m_fInitialized;    //OleInitialize work?
  25.     protected:
  26.         //Overridable for creating a CClient for this frame
  27.         virtual PCClient CreateCClient(void);
  28.         virtual LRESULT  OnCommand(HWND, WPARAM, LPARAM);
  29.     public:
  30.         CFreeloaderFrame(HINSTANCE, HINSTANCE, LPSTR, int);
  31.         virtual ~CFreeloaderFrame(void);
  32.         virtual BOOL     FInit(PFRAMEINIT);
  33.         virtual void     UpdateMenus(HMENU, UINT);
  34.     };
  35. typedef CFreeloaderFrame *PCFreeloaderFrame;
  36. //CLIENT.CPP
  37. //Override to create CFreeloaderDoc
  38. class CFreeloaderClient : public CClient
  39.     {
  40.     protected:
  41.         //Overridable for creating a new CDocument
  42.         virtual PCDocument  CreateCDocument(void);
  43.     public:
  44.         CFreeloaderClient(HINSTANCE, PCFrame);
  45.         virtual ~CFreeloaderClient(void);
  46.     };
  47. typedef CFreeloaderClient *PCFreeloaderClient;
  48. //DOCUMENT.CPP
  49. //Paint continuation callback for IViewObject::Draw
  50. BOOL CALLBACK ContinuePaint(DWORD);
  51. class CFreeloaderDoc : public CDocument
  52.     {
  53.     protected:
  54.         LPSTORAGE       m_pIStorage;    //Root storage for this doc
  55.         LPUNKNOWN       m_pIUnknown;    //Static visual object.
  56.         DWORD           m_dwConn;       //From IOleCache::Cache
  57.         CLSID           m_clsID;        //Data type
  58.     protected:
  59.         //Centralized cleanup
  60.         void ReleaseObject(void);
  61.         //To catch WM_PAINT
  62.         virtual BOOL    FMessageHook(HWND, UINT, WPARAM, LPARAM
  63.             , LRESULT *);
  64.     public:
  65.         CFreeloaderDoc(HINSTANCE, PCFrame, PCDocumentAdviseSink);
  66.         virtual ~CFreeloaderDoc(void);
  67.         virtual BOOL     FInit(PDOCUMENTINIT);
  68.         virtual UINT     Load(BOOL, LPTSTR);
  69.         virtual UINT     Save(UINT, LPTSTR);
  70.         virtual BOOL     Clip(HWND, BOOL);
  71.         virtual HGLOBAL  RenderFormat(UINT);
  72.         virtual BOOL     FQueryPaste(void);
  73.         virtual BOOL     Paste(HWND);
  74.         virtual BOOL     SizeToGraphic(BOOL);
  75.     };
  76. typedef CFreeloaderDoc *PCFreeloaderDoc;
  77. //For mapping HIMETRIC to pixels.
  78. #define HIMETRIC_PER_INCH       2540
  79. #endif //_FREELOAD_H_