home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Windows Gam…ming Gurus (2nd Edition) / Disc2.iso / msdn_vcb / samples / vc98 / sdk / graphics / video / aviview / regobjs.h < prev   
Encoding:
C/C++ Source or Header  |  1997-10-05  |  1.5 KB  |  48 lines

  1. /**************************************************************************
  2.  *
  3.  *  THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY
  4.  *  KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
  5.  *  IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR
  6.  *  PURPOSE.
  7.  *
  8.  *  Copyright (C) 1993 - 1997  Microsoft Corporation.  All Rights Reserved.
  9.  * 
  10.  **************************************************************************/
  11.  
  12. /*
  13. ** _StdClassImplementations
  14. ** Defines the standard implementations for a class object.
  15. */
  16.  
  17. #define    _StdClassImplementations(Impl)    \
  18.     STDMETHODIMP QueryInterface(const IID FAR& riid, void FAR* FAR* ppv);    \
  19.     STDMETHODIMP_(ULONG) AddRef();    \
  20.     STDMETHODIMP_(ULONG) Release()
  21.  
  22.  
  23. /*    -    -    -    -    -    -    -    -    */
  24.  
  25. class FAR CAppCF : IClassFactory {
  26. public:
  27.     static HRESULT MakeInst(const CLSID FAR& rclsid, const IID FAR& riid, void FAR* FAR* ppv);
  28. private:
  29.     CAppCF(const CLSID FAR& rclsid, IUnknown FAR* FAR* ppUnknown);
  30.     ULONG    m_refs;
  31.     
  32. public:
  33.     _StdClassImplementations(CAppCF);
  34.     STDMETHODIMP CreateInstance(IUnknown FAR* pUnknownOuter, const IID FAR& riid, void FAR* FAR* ppv);
  35.     STDMETHODIMP LockServer(BOOL fLock);
  36. public:
  37.     CLSID    m_clsid;
  38. };
  39.  
  40. /*
  41. ** The usage counter keeps track of the overall usage of objects based on
  42. ** implementations provided by the component. This allows one to determine
  43. ** when the implementation is no longer in use.
  44. */
  45.  
  46. extern UINT    uUseCount;
  47. extern BOOL    fLocked;
  48.