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/clockf…
==============================================================================
--- 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;
}