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

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * EKOALA2.H
  3.  * Koala Object EXE Self-Registering Server Chapter 5
  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 _EKOALA2_H_
  15. #define _EKOALA2_H_
  16. //Get the object definitions
  17. #include "koala.h"
  18. //EKOALA2.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.     private:
  33.         BOOL SetKeyAndValue(LPTSTR, LPTSTR, LPTSTR);
  34.     public:
  35.         CApp(HINSTANCE, HINSTANCE, LPSTR, UINT);
  36.         ~CApp(void);
  37.         BOOL Init(void);
  38.         void RegisterServer(void);
  39.         void UnregisterServer(void);
  40.     };
  41. typedef CApp *PAPP;
  42. #define CBWNDEXTRA              sizeof(PAPP)
  43. #define KOALAWL_STRUCTURE       0
  44. void ObjectDestroyed(void);
  45. //This class factory object creates Koala objects.
  46. class CKoalaClassFactory : public IClassFactory
  47.     {
  48.     protected:
  49.         ULONG           m_cRef;
  50.     public:
  51.         CKoalaClassFactory(void);
  52.         ~CKoalaClassFactory(void);
  53.         //IUnknown members
  54.         STDMETHODIMP QueryInterface(REFIID, PPVOID);
  55.         STDMETHODIMP_(ULONG) AddRef(void);
  56.         STDMETHODIMP_(ULONG) Release(void);
  57.         //IClassFactory members
  58.         STDMETHODIMP CreateInstance(LPUNKNOWN, REFIID, PPVOID);
  59.         STDMETHODIMP LockServer(BOOL);
  60.     };
  61. typedef CKoalaClassFactory *PCKoalaClassFactory;
  62. #endif //_EKOALA2_H_