home *** CD-ROM | disk | FTP | other *** search
/ The Net: Ultimate Internet Guide / WWLCD1.ISO / mac / SiteBldr / AMOVIE / SDK / _SETUP / COMMON.Z / sysclock.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  1996-05-15  |  2.0 KB  |  69 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) 1992 - 1996  Microsoft Corporation.  All Rights Reserved.
  9. //
  10. //--------------------------------------------------------------------------;
  11. //  SYSCLOCK.CPP
  12. //    Implements a system clock based on IReferenceClock
  13.  
  14. #include <streams.h>
  15. #include <limits.h>
  16.  
  17.  
  18. #ifdef FILTER_DLL
  19.  
  20. /* List of class IDs and creator functions for the class factory. This
  21.    provides the link between the OLE entry point in the DLL and an object
  22.    being created. The class factory will call the static CreateInstance
  23.    function when it is asked to create a CLSID_SystemClock object */
  24.  
  25. CFactoryTemplate g_Templates[1] = {
  26.     {&CLSID_SystemClock, CSystemClock::CreateInstance}
  27. };
  28.  
  29. int g_cTemplates = sizeof(g_Templates) / sizeof(g_Templates[0]);
  30. #endif
  31.  
  32. /* This goes in the factory template table to create new instances */
  33. CUnknown *CSystemClock::CreateInstance(LPUNKNOWN pUnk,HRESULT *phr)
  34. {
  35.     return new CSystemClock(NAME("System reference clock"),pUnk, phr);
  36. }
  37.  
  38.  
  39. CSystemClock::CSystemClock(TCHAR *pName,LPUNKNOWN pUnk,HRESULT *phr) :
  40.     CBaseReferenceClock(pName, pUnk, phr)
  41. {
  42. }
  43.  
  44. STDMETHODIMP CSystemClock::NonDelegatingQueryInterface(
  45.     REFIID riid,
  46.     void ** ppv)
  47. {
  48.     CheckPointer(ppv, E_POINTER);
  49.  
  50.     if (riid == IID_IPersist) 
  51.     {
  52.         return GetInterface(static_cast<IPersist *>(this), ppv);
  53.     }
  54.     else
  55.     {
  56.         return CBaseReferenceClock::NonDelegatingQueryInterface(riid, ppv);
  57.     }
  58. }
  59.  
  60. /* Return the clock's clsid */
  61. STDMETHODIMP
  62. CSystemClock::GetClassID(CLSID *pClsID)
  63. {
  64.     CheckPointer(pClsID,E_POINTER);
  65.     ValidateReadWritePtr(pClsID,sizeof(CLSID));
  66.     *pClsID = CLSID_SystemClock;
  67.     return NOERROR;
  68. }
  69.