2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS WDM Streaming ActiveMovie Proxy
4 * FILE: dll/directx/ksproxy/qualityforward.cpp
5 * PURPOSE: IKsClockForwarder interface
7 * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@reactos.org)
11 #define IID_IKsQualityForwarder KSCATEGORY_QUALITY
13 class CKsQualityForwarder
: public IKsQualityForwarder
16 STDMETHODIMP
QueryInterface( REFIID InterfaceId
, PVOID
* Interface
);
18 STDMETHODIMP_(ULONG
) AddRef()
20 InterlockedIncrement(&m_Ref
);
23 STDMETHODIMP_(ULONG
) Release()
25 InterlockedDecrement(&m_Ref
);
35 // IKsObject interface
36 HANDLE STDMETHODCALLTYPE
KsGetObjectHandle();
38 // IKsQualityForwarder
39 VOID STDMETHODCALLTYPE
KsFlushClient(IN IKsPin
*Pin
);
41 CKsQualityForwarder(HANDLE handle
) : m_Ref(0), m_Handle(handle
){}
42 virtual ~CKsQualityForwarder(){ if (m_Handle
) CloseHandle(m_Handle
);}
53 CKsQualityForwarder::QueryInterface(
57 if (IsEqualGUID(refiid
, IID_IUnknown
) ||
58 IsEqualGUID(refiid
, IID_IKsQualityForwarder
))
60 *Output
= PVOID(this);
61 reinterpret_cast<IUnknown
*>(*Output
)->AddRef();
68 //-------------------------------------------------------------------
69 // IKsObject interface
74 CKsQualityForwarder::KsGetObjectHandle()
79 //-------------------------------------------------------------------
80 // IKsQualityForwarder interface
84 CKsQualityForwarder::KsFlushClient(
88 OutputDebugString("UNIMPLEMENTED\n");
94 CKsQualityForwarder_Constructor(
103 OutputDebugStringW(L
"CKsQualityForwarder_Constructor\n");
106 // open default clock
107 hr
= KsOpenDefaultDevice(KSCATEGORY_QUALITY
, GENERIC_READ
| GENERIC_WRITE
, &handle
);
112 OutputDebugString("CKsClockForwarder_Constructor failed to open device\n");
117 CKsQualityForwarder
* quality
= new CKsQualityForwarder(handle
);
123 return E_OUTOFMEMORY
;
126 if (FAILED(quality
->QueryInterface(riid
, ppv
)))
130 return E_NOINTERFACE
;