Fixed some broken macros.
Added some stubs.
Implemeted undocumented APIs.
Implemented many methods in IMediaFilter, IMediaControl and
IReferenceClock.
Started Implementing IMemoryAllocator.
diff --git a/dlls/quartz/sysclock.h b/dlls/quartz/sysclock.h
index 2fe9613..ce7c897 100644
--- a/dlls/quartz/sysclock.h
+++ b/dlls/quartz/sysclock.h
@@ -19,12 +19,33 @@
} SC_IReferenceClockImpl;
+/* implementation limit */
+#define WINE_QUARTZ_SYSCLOCK_TIMER_MAX 64
+
+typedef struct QUARTZ_TimerEntry
+{
+ DWORD dwAdvCookie;
+ BOOL fPeriodic;
+ HANDLE hEvent;
+ REFERENCE_TIME rtStart;
+ REFERENCE_TIME rtInterval;
+} QUARTZ_TimerEntry;
+
typedef struct CSystemClock
{
QUARTZ_IUnkImpl unk;
SC_IReferenceClockImpl refclk;
/* IReferenceClock fields. */
+ CRITICAL_SECTION m_csClock;
+ DWORD m_dwTimeLast;
+ REFERENCE_TIME m_rtLast;
+ HANDLE m_hThreadTimer;
+ HANDLE m_hEventInit;
+ DWORD m_idThreadTimer;
+
+ DWORD m_dwAdvCookieNext;
+ QUARTZ_TimerEntry m_timerEntries[WINE_QUARTZ_SYSCLOCK_TIMER_MAX];
} CSystemClock;
#define CSystemClock_THIS(iface,member) CSystemClock* This = ((CSystemClock*)(((char*)iface)-offsetof(CSystemClock,member)))