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
100 OutputDebugStringW(L
"UNIMPLEMENTED\n");
106 CKsBasicAudio::Pause()
108 OutputDebugStringW(L
"UNIMPLEMENTED\n");
115 REFERENCE_TIME tStart
)
117 OutputDebugStringW(L
"UNIMPLEMENTED\n");
123 CKsBasicAudio::SetSyncSource(
124 IReferenceClock
*pClock
)
126 OutputDebugStringW(L
"UNIMPLEMENTED\n");
132 CKsBasicAudio::NotifyGraphChange()
134 OutputDebugStringW(L
"UNIMPLEMENTED\n");
138 //-------------------------------------------------------------------
139 // IDispatch interface
144 CKsBasicAudio::GetTypeInfoCount(
147 OutputDebugStringW(L
"UNIMPLEMENTED\n");
153 CKsBasicAudio::GetTypeInfo(
158 OutputDebugStringW(L
"UNIMPLEMENTED\n");
164 CKsBasicAudio::GetIDsOfNames(
171 OutputDebugStringW(L
"UNIMPLEMENTED\n");
177 CKsBasicAudio::Invoke(
182 DISPPARAMS
*pDispParams
,
184 EXCEPINFO
*pExcepInfo
,
187 OutputDebugStringW(L
"UNIMPLEMENTED\n");
191 //-------------------------------------------------------------------
192 // IBasicAudio interface
197 CKsBasicAudio::put_Volume(
200 OutputDebugStringW(L
"UNIMPLEMENTED\n");
207 CKsBasicAudio::get_Volume(
210 OutputDebugStringW(L
"UNIMPLEMENTED\n");
217 CKsBasicAudio::put_Balance(
220 OutputDebugStringW(L
"UNIMPLEMENTED\n");
227 CKsBasicAudio::get_Balance(
230 OutputDebugStringW(L
"UNIMPLEMENTED\n");
236 CKsBasicAudio_Constructor(
237 IUnknown
* pUnkOuter
,
241 OutputDebugStringW(L
"CKsBasicAudio_Constructor\n");
243 CKsBasicAudio
* handler
= new CKsBasicAudio();
246 return E_OUTOFMEMORY
;
248 if (FAILED(handler
->QueryInterface(riid
, ppv
)))
252 return E_NOINTERFACE
;