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

Windows编程

开发平台:

Visual C++

  1. /*
  2.  * BEEPER.H
  3.  * Beeper Automation Object #5 Chapter 14
  4.  *
  5.  * Classes that implement the Beeper object.
  6.  *
  7.  * Copyright (c)1993-1995 Microsoft Corporation, All Right Reserved
  8.  *
  9.  * Kraig Brockschmidt, Microsoft
  10.  * Internet  :  kraigb@microsoft.com
  11.  * Compuserve:  >INTERNET:kraigb@microsoft.com
  12.  */
  13. #ifndef _BEEPER_H_
  14. #define _BEEPER_H_
  15. /*
  16.  * This #define tells <bookguid.h> to not define GUIDs that will
  17.  * be defined in MKTYPLIB-generated header files, like ibeeper.h.
  18.  */
  19. #define GUIDS_FROM_TYPELIB
  20. #define INC_AUTOMATION
  21. #define INC_CONTROLS
  22. #define CHAPTER14
  23. #include <inole.h>
  24. //This file is generated from MKTYPLIB
  25. #include "ibeeper.h"
  26. class CImpIProvideClassInfo;
  27. typedef class CImpIProvideClassInfo *PCImpIProvideClassInfo;
  28. class CBeeper : public IBeeper
  29.     {
  30.     protected:
  31.         ULONG           m_cRef;         //Object reference count
  32.         LPUNKNOWN       m_pUnkOuter;    //Controlling unknown
  33.         PFNDESTROYED    m_pfnDestroy;   //To call on closure
  34.         long            m_lSound;       //Type of sound
  35.         ITypeInfo      *m_pITINeutral;  //Type information
  36.         IUnknown       *m_pIUnkStdDisp; //StdDispatch object
  37.         PCImpIProvideClassInfo  m_pImpIProvideCI;
  38.     public:
  39.         CBeeper(LPUNKNOWN, PFNDESTROYED);
  40.         ~CBeeper(void);
  41.         BOOL         Init(void);
  42.         //Non-delegating object IUnknown
  43.         STDMETHODIMP         QueryInterface(REFIID, PPVOID);
  44.         STDMETHODIMP_(ULONG) AddRef(void);
  45.         STDMETHODIMP_(ULONG) Release(void);
  46.         //IBeeper functions
  47.         STDMETHODIMP_(long)  get_Sound(void);
  48.         STDMETHODIMP_(void)  put_Sound(long);
  49.         STDMETHODIMP_(long)  Beep(void);
  50.     };
  51. typedef CBeeper *PCBeeper;
  52. class CImpIProvideClassInfo : public IProvideClassInfo
  53.     {
  54.     public:
  55.         ULONG           m_cRef;     //For debugging
  56.     private:
  57.         LPUNKNOWN       m_pUnkOuter;
  58.         ITypeInfo      *m_pITI;     //To return from GetClassInfo
  59.     public:
  60.         CImpIProvideClassInfo(LPUNKNOWN, ITypeLib *);
  61.         ~CImpIProvideClassInfo(void);
  62.         //IUnknown members that delegate to m_pUnkOuter.
  63.         STDMETHODIMP         QueryInterface(REFIID, PPVOID);
  64.         STDMETHODIMP_(ULONG) AddRef(void);
  65.         STDMETHODIMP_(ULONG) Release(void);
  66.         //IProvideClassInfo members
  67.         STDMETHODIMP GetClassInfo(ITypeInfo **);
  68.     };
  69. #endif //_BEEPER_H_