2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS WDM Streaming ActiveMovie Proxy
4 * FILE: dll/directx/ksproxy/basicaudio.cpp
5 * PURPOSE: IBasicAudio interface
7 * PROGRAMMERS: Johannes Anderwald (janderwald@reactos.org)
11 class CKsBasicAudio
: public IBasicAudio
,
12 public IDistributorNotify
15 STDMETHODIMP
QueryInterface( REFIID InterfaceId
, PVOID
* Interface
);
17 STDMETHODIMP_(ULONG
) AddRef()
19 InterlockedIncrement(&m_Ref
);
22 STDMETHODIMP_(ULONG
) Release()
24 InterlockedDecrement(&m_Ref
);
34 // IDistributorNotify methods
35 HRESULT STDMETHODCALLTYPE
Stop();
36 HRESULT STDMETHODCALLTYPE
Pause();
37 HRESULT STDMETHODCALLTYPE
Run(REFERENCE_TIME tStart
);
38 HRESULT STDMETHODCALLTYPE
SetSyncSource(IReferenceClock
*pClock
);
39 HRESULT STDMETHODCALLTYPE
NotifyGraphChange();
42 HRESULT STDMETHODCALLTYPE
GetTypeInfoCount(UINT
*pctinfo
);
43 HRESULT STDMETHODCALLTYPE
GetTypeInfo(UINT iTInfo
, LCID lcid
, ITypeInfo
**ppTInfo
);
44 HRESULT STDMETHODCALLTYPE
GetIDsOfNames(REFIID riid
, LPOLESTR
*rgszNames
, UINT cNames
, LCID lcid
, DISPID
*rgDispId
);
45 HRESULT STDMETHODCALLTYPE
Invoke(DISPID dispIdMember
, REFIID riid
, LCID lcid
, WORD wFlags
, DISPPARAMS
*pDispParams
, VARIANT
*pVarResult
, EXCEPINFO
*pExcepInfo
, UINT
*puArgErr
);
48 // IBasicAudio methods
49 HRESULT STDMETHODCALLTYPE
put_Volume(long lVolume
);
50 HRESULT STDMETHODCALLTYPE
get_Volume(long *plVolume
);
51 HRESULT STDMETHODCALLTYPE
put_Balance(long lBalance
);
52 HRESULT STDMETHODCALLTYPE
get_Balance(long *plBalance
);
55 CKsBasicAudio() : m_Ref(0){}
56 virtual ~CKsBasicAudio(){}
64 CKsBasicAudio::QueryInterface(
68 if (IsEqualGUID(refiid
, IID_IUnknown
))
70 *Output
= PVOID(this);
71 reinterpret_cast<IUnknown
*>(*Output
)->AddRef();
74 if (IsEqualGUID(refiid
, IID_IDistributorNotify
))
76 *Output
= (IDistributorNotify
*)(this);
77 reinterpret_cast<IDistributorNotify
*>(*Output
)->AddRef();
81 if (IsEqualGUID(refiid
, IID_IBasicAudio
))
83 *Output
= (IBasicAudio
*)(this);
84 reinterpret_cast<IBasicAudio
*>(*Output
)->AddRef();
91 //-------------------------------------------------------------------
92 // IDistributorNotify interface
101 OutputDebugStringW(L
"UNIMPLEMENTED\n");
108 CKsBasicAudio::Pause()
111 OutputDebugStringW(L
"UNIMPLEMENTED\n");
120 REFERENCE_TIME tStart
)
123 OutputDebugStringW(L
"UNIMPLEMENTED\n");
131 CKsBasicAudio::SetSyncSource(
132 IReferenceClock
*pClock
)
135 OutputDebugStringW(L
"UNIMPLEMENTED\n");
142 CKsBasicAudio::NotifyGraphChange()
145 OutputDebugStringW(L
"UNIMPLEMENTED\n");
151 //-------------------------------------------------------------------
152 // IDispatch interface
157 CKsBasicAudio::GetTypeInfoCount(
161 OutputDebugStringW(L
"UNIMPLEMENTED\n");
169 CKsBasicAudio::GetTypeInfo(
175 OutputDebugStringW(L
"UNIMPLEMENTED\n");
182 CKsBasicAudio::GetIDsOfNames(
190 OutputDebugStringW(L
"UNIMPLEMENTED\n");
198 CKsBasicAudio::Invoke(
203 DISPPARAMS
*pDispParams
,
205 EXCEPINFO
*pExcepInfo
,
209 OutputDebugStringW(L
"UNIMPLEMENTED\n");
215 //-------------------------------------------------------------------
216 // IBasicAudio interface
221 CKsBasicAudio::put_Volume(
225 OutputDebugStringW(L
"UNIMPLEMENTED\n");
234 CKsBasicAudio::get_Volume(
238 OutputDebugStringW(L
"UNIMPLEMENTED\n");
247 CKsBasicAudio::put_Balance(
251 OutputDebugStringW(L
"UNIMPLEMENTED\n");
260 CKsBasicAudio::get_Balance(
264 OutputDebugStringW(L
"UNIMPLEMENTED\n");
272 CKsBasicAudio_Constructor(
273 IUnknown
* pUnkOuter
,
278 OutputDebugStringW(L
"CKsBasicAudio_Constructor\n");
281 CKsBasicAudio
* handler
= new CKsBasicAudio();
284 return E_OUTOFMEMORY
;
286 if (FAILED(handler
->QueryInterface(riid
, ppv
)))
290 return E_NOINTERFACE
;