ANIMAL.H
资源名称:MSDN_VC98.zip [点击查看]
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:
Windows编程
开发平台:
Visual C++
- /*
- * ANIMAL.H
- *
- * Definition of the aggregatable CAnimal object.
- * Included only from ANIMAL.CPP.
- *
- * Copyright (c)1993-1995 Microsoft Corporation, All Rights Reserved
- *
- * Kraig Brockschmidt, Microsoft
- * Internet : kraigb@microsoft.com
- * Compuserve: >INTERNET:kraigb@microsoft.com
- */
- #ifndef _ANIMAL_H_
- #define _ANIMAL_H_
- class CImpIAnimal_A;
- typedef CImpIAnimal_A *PCImpIAnimal_A;
- class CAnimal : public IUnknown
- {
- friend CImpIAnimal_A;
- private:
- DWORD m_cRef; //Object reference count
- IUnknown *m_pUnkOuter; //Outer unknown, no AddRef
- PCImpIAnimal_A m_pImpIAnimal; //Interface implementation
- public:
- CAnimal(IUnknown *);
- ~CAnimal(void);
- BOOL Init(void);
- //IUnknown members, non-delegating
- STDMETHODIMP QueryInterface(REFIID, PPVOID);
- STDMETHODIMP_(DWORD) AddRef(void);
- STDMETHODIMP_(DWORD) Release(void);
- };
- typedef CAnimal *PCAnimal;
- class CImpIAnimal_A : public IAnimal
- {
- private:
- DWORD m_cRef; //For debugging
- PCAnimal m_pObj; //Back pointer
- IUnknown *m_pUnkOuter; //Outer unknown, for delegation
- public:
- CImpIAnimal_A(PCAnimal, IUnknown *);
- ~CImpIAnimal_A(void);
- //IUnknown members
- STDMETHODIMP QueryInterface(REFIID, PPVOID);
- STDMETHODIMP_(DWORD) AddRef(void);
- STDMETHODIMP_(DWORD) Release(void);
- //IAnimal members
- STDMETHODIMP Eat(void);
- STDMETHODIMP Sleep(void);
- STDMETHODIMP Procreate(void);
- };
- #endif _ANIMAL_H_