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)))