source: trunk/src/quartz/sysclock.h@ 6710

Last change on this file since 6710 was 6710, checked in by sandervl, 24 years ago

wine update

File size: 1.3 KB
Line 
1#ifndef WINE_DSHOW_SYSCLOCK_H
2#define WINE_DSHOW_SYSCLOCK_H
3
4/*
5 implements CLSID_SystemClock.
6
7 - At least, the following interfaces should be implemented:
8
9 IUnknown
10 + IReferenceClock
11
12*/
13
14#include "iunk.h"
15
16typedef struct SC_IReferenceClockImpl
17{
18 ICOM_VFIELD(IReferenceClock);
19} SC_IReferenceClockImpl;
20
21
22/* implementation limit */
23#define WINE_QUARTZ_SYSCLOCK_TIMER_MAX 64
24
25typedef struct QUARTZ_TimerEntry
26{
27 DWORD dwAdvCookie;
28 BOOL fPeriodic;
29 HANDLE hEvent;
30 REFERENCE_TIME rtStart;
31 REFERENCE_TIME rtInterval;
32} QUARTZ_TimerEntry;
33
34typedef struct CSystemClock
35{
36 QUARTZ_IUnkImpl unk;
37 SC_IReferenceClockImpl refclk;
38
39 /* IReferenceClock fields. */
40 CRITICAL_SECTION m_csClock;
41 DWORD m_dwTimeLast;
42 REFERENCE_TIME m_rtLast;
43 HANDLE m_hThreadTimer;
44 HANDLE m_hEventInit;
45 DWORD m_idThreadTimer;
46
47 DWORD m_dwAdvCookieNext;
48 QUARTZ_TimerEntry m_timerEntries[WINE_QUARTZ_SYSCLOCK_TIMER_MAX];
49} CSystemClock;
50
51#define CSystemClock_THIS(iface,member) CSystemClock* This = ((CSystemClock*)(((char*)iface)-offsetof(CSystemClock,member)))
52
53HRESULT QUARTZ_CreateSystemClock(IUnknown* punkOuter,void** ppobj);
54
55HRESULT CSystemClock_InitIReferenceClock( CSystemClock* psc );
56void CSystemClock_UninitIReferenceClock( CSystemClock* psc );
57
58
59#endif /* WINE_DSHOW_SYSCLOCK_H */
Note: See TracBrowser for help on using the repository browser.