You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
46 lines
1.4 KiB
46 lines
1.4 KiB
// Copyright (c) 1996-1999 Microsoft Corporation
|
|
|
|
// clock.h
|
|
#ifndef __CCLOCK_H__
|
|
#define __CCLOCK_H__
|
|
|
|
class CDSLink;
|
|
|
|
class CClock : public IReferenceClock
|
|
{
|
|
public:
|
|
/* IUnknown methods */
|
|
STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID FAR* ppvObj);
|
|
STDMETHOD_(ULONG, AddRef)(THIS);
|
|
STDMETHOD_(ULONG, Release)(THIS);
|
|
|
|
/* IReferenceClock methods */
|
|
HRESULT STDMETHODCALLTYPE GetTime(
|
|
/* [out] */ REFERENCE_TIME __RPC_FAR *pTime);
|
|
|
|
HRESULT STDMETHODCALLTYPE AdviseTime(
|
|
/* [in] */ REFERENCE_TIME baseTime,
|
|
/* [in] */ REFERENCE_TIME streamTime,
|
|
/* [in] */ HANDLE hEvent,
|
|
/* [out] */ DWORD __RPC_FAR *pdwAdviseCookie);
|
|
|
|
HRESULT STDMETHODCALLTYPE AdvisePeriodic(
|
|
/* [in] */ REFERENCE_TIME startTime,
|
|
/* [in] */ REFERENCE_TIME periodTime,
|
|
/* [in] */ HANDLE hSemaphore,
|
|
/* [out] */ DWORD __RPC_FAR *pdwAdviseCookie);
|
|
|
|
HRESULT STDMETHODCALLTYPE Unadvise(
|
|
/* [in] */ DWORD dwAdviseCookie);
|
|
CClock();
|
|
void Init(CDSLink *pDSLink);
|
|
void Stop(); // Call store current time as offset.
|
|
void Start(); // Call to reinstate running.
|
|
private:
|
|
BOOL m_fStopped; // Currently changing configuration.
|
|
CDSLink * m_pDSLink; // Pointer to parent DSLink structure.
|
|
};
|
|
|
|
#endif //__CCLOCK_H__
|
|
|
|
|