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

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * EKOALA5.H
  3.  * Koala Object EXE Server with Custom Marsaling Chapter 6
  4.  *
  5.  * Definitions, classes, and prototypes for an application that
  6.  * provides Koala 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 _EKOALA5_H_
  15. #define _EKOALA5_H_
  16. //Get the object definitions
  17. #include "koala.h"
  18. //EKOALA5.CPP
  19. LRESULT APIENTRY KoalaWndProc(HWND, UINT, WPARAM, LPARAM);
  20. class CApp
  21.     {
  22.     friend LRESULT APIENTRY KoalaWndProc(HWND, UINT, WPARAM, LPARAM);
  23.     protected:
  24.         HINSTANCE       m_hInst;            //WinMain parameters
  25.         HINSTANCE       m_hInstPrev;
  26.         LPSTR           m_pszCmdLine;
  27.         UINT            m_nCmdShow;
  28.         HWND            m_hWnd;             //Main window handle
  29.         BOOL            m_fInitialized;     //Did CoInitialize work?
  30.         LPCLASSFACTORY  m_pIClassFactory;   //Our class factory
  31.         DWORD           m_dwRegCO;          //Registration key
  32.     public:
  33.         CApp(HINSTANCE, HINSTANCE, LPSTR, UINT);
  34.         ~CApp(void);
  35.         BOOL Init(void);
  36.     };
  37. typedef CApp *PAPP;
  38. #define CBWNDEXTRA              sizeof(PAPP)
  39. #define KOALAWL_STRUCTURE       0
  40. void ObjectDestroyed(void);
  41. //This class factory object creates Koala objects.
  42. class CKoalaClassFactory : public IClassFactory
  43.     {
  44.     protected:
  45.         ULONG           m_cRef;
  46.         HINSTANCE       m_hInst;        //To give to Koalas
  47.         HWND            m_hWnd;         //To give to Koalas
  48.     public:
  49.         CKoalaClassFactory(HINSTANCE, HWND);
  50.         ~CKoalaClassFactory(void);
  51.         //IUnknown members
  52.         STDMETHODIMP QueryInterface(REFIID, PPVOID);
  53.         STDMETHODIMP_(ULONG) AddRef(void);
  54.         STDMETHODIMP_(ULONG) Release(void);
  55.         //IClassFactory members
  56.         STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, PPVOID);
  57.         STDMETHODIMP LockServer(BOOL);
  58.     };
  59. typedef CKoalaClassFactory *PCKoalaClassFactory;
  60. #endif //_EKOALA5_H_