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

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * EDATAOBJ.H
  3.  * Data Object EXE Chapter 10
  4.  *
  5.  * Definitions, classes, and prototypes for an application that
  6.  * provides DataObject objects to any other object user.
  7.  *
  8.  * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
  9.  *
  10.  * Kraig Brockschmidt, Microsoft
  11.  * Internet  :  kraigb@microsoft.com
  12.  * Compuserve:  >INTERNET:kraigb@microsoft.com
  13.  */
  14. #ifndef _EDATAOBJ_H_
  15. #define _EDATAOBJ_H_
  16. #include "dataobj.h"
  17. //EDATAOBJ.CPP
  18. LRESULT APIENTRY DataObjectWndProc(HWND, UINT, WPARAM, LPARAM);
  19. class CApp
  20.     {
  21.     friend LRESULT APIENTRY DataObjectWndProc(HWND, UINT
  22.         , WPARAM, LPARAM);
  23.     protected:
  24.         HINSTANCE       m_hInst;            //WinMain parameters
  25.         HINSTANCE       m_hInstPrev;
  26.         LPSTR           m_pszCmdLine;
  27.         HWND            m_hWnd;             //Main window handle
  28.         BOOL            m_fInitialized;     //Did CoInitialize work?
  29.         //We have multiple classes, one for each data size.
  30.         DWORD           m_rgdwRegCO[DOSIZE_CSIZES];
  31.         LPCLASSFACTORY  m_rgpIClassFactory[DOSIZE_CSIZES];
  32.     public:
  33.         CApp(HINSTANCE, HINSTANCE, LPSTR, UINT);
  34.         ~CApp(void);
  35.         BOOL Init(void);
  36.     };
  37. typedef CApp *PAPP;
  38. void ObjectDestroyed(void);
  39. //This class factory object creates Data Objects.
  40. class CDataObjectClassFactory : public IClassFactory
  41.     {
  42.     protected:
  43.         ULONG           m_cRef;
  44.         UINT            m_iSize;        //Data size for this class
  45.     public:
  46.         CDataObjectClassFactory(UINT);
  47.         ~CDataObjectClassFactory(void);
  48.         //IUnknown members
  49.         STDMETHODIMP         QueryInterface(REFIID, PPVOID);
  50.         STDMETHODIMP_(ULONG) AddRef(void);
  51.         STDMETHODIMP_(ULONG) Release(void);
  52.         //IClassFactory members
  53.         STDMETHODIMP         CreateInstance(LPUNKNOWN, REFIID
  54.                                  , PPVOID);
  55.         STDMETHODIMP         LockServer(BOOL);
  56.     };
  57. typedef CDataObjectClassFactory *PCDataObjectClassFactory;
  58. #endif //_EDATAOBJ_H_