Author: janderwald Date: Wed Mar 24 15:03:40 2010 New Revision: 46397 URL: http://svn.reactos.org/svn/reactos?rev=46397&view=rev Log: [KSPROXY] - Add support for IKsClockForward interface which is an alias for IKsObject - CKsClockForwarder is now functional
Modified: trunk/reactos/dll/directx/ksproxy/clockforward.cpp Modified: trunk/reactos/dll/directx/ksproxy/clockforward.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/ksproxy/clockforward.cpp?rev=46397&r1=46396&r2=46397&view=diff ============================================================================== --- trunk/reactos/dll/directx/ksproxy/clockforward.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/directx/ksproxy/clockforward.cpp [iso-8859-1] Wed Mar 24 15:03:40 2010 @@ -11,6 +11,8 @@ #ifndef _MSC_VER const GUID KSCATEGORY_CLOCK = {0x53172480, 0x4791, 0x11D0, {0xA5, 0xD6, 0x28, 0xDB, 0x04, 0xC1, 0x00, 0x00}}; #endif + +const GUID IID_IKsClockForwarder = {0x877e4352, 0x6fea, 0x11d0, {0xb8, 0x63, 0x00, 0xaa, 0x00, 0xa2, 0x16, 0xa1}}; DWORD WINAPI CKsClockForwarder_ThreadStartup(LPVOID lpParameter); @@ -91,7 +93,8 @@ reinterpret_cast<IUnknown*>(*Output)->AddRef(); return NOERROR; } - if (IsEqualGUID(refiid, IID_IKsObject)) + if (IsEqualGUID(refiid, IID_IKsObject) || + IsEqualGUID(refiid, IID_IKsClockForwarder)) { *Output = (IKsObject*)(this); reinterpret_cast<IKsObject*>(*Output)->AddRef(); @@ -105,15 +108,6 @@ return NOERROR; } -#if 0 - if (IsEqualGUID(refiid, IID_IKsClockForwarder)) - { - *Output = PVOID(this); - reinterpret_cast<IKsObject*>(*Output)->AddRef(); - return NOERROR; - } -#endif - return E_NOINTERFACE; } @@ -126,8 +120,12 @@ STDMETHODCALLTYPE CKsClockForwarder::Stop() { - OutputDebugString("CKsClockForwarder::Stop\n"); - + WCHAR Buffer[200]; + + swprintf(Buffer, L"CKsClockForwarder::Stop m_ThreadStarted %u m_PendingStop %u m_hThread %p m_hEvent %p m_Handle %p\n", m_ThreadStarted, m_PendingStop, m_hThread, m_hEvent, m_Handle); + OutputDebugStringW(Buffer); + + m_Time = 0; if (m_ThreadStarted) { // signal pending stop @@ -251,8 +249,7 @@ CKsClockForwarder::NotifyGraphChange() { OutputDebugString("CKsClockForwarder::NotifyGraphChange\n"); - DebugBreak(); - return E_NOTIMPL; + return NOERROR; } //------------------------------------------------------------------- @@ -281,6 +278,10 @@ HRESULT hr = KsSynchronousDeviceControl(m_Handle, IOCTL_KS_PROPERTY, (PVOID)&Property, sizeof(KSPROPERTY), &State, sizeof(KSSTATE), &BytesReturned); if (SUCCEEDED(hr)) m_State = State; + + WCHAR Buffer[100]; + swprintf(Buffer, L"CKsClockForwarder::SetClockState m_State %u State %u hr %lx\n", m_State, State, hr); + OutputDebugStringW(Buffer); return hr; }