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 const GUID IID_IBasicAudio
= {0x56a868b3, 0x0ad4, 0x11ce, {0xb0, 0x3a, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70}};
13 class CKsBasicAudio
: public IBasicAudio
,
14 public IDistributorNotify
17 STDMETHODIMP
QueryInterface( REFIID InterfaceId
, PVOID
* Interface
);
19 STDMETHODIMP_(ULONG
) AddRef()
21 InterlockedIncrement(&m_Ref
);
24 STDMETHODIMP_(ULONG
) Release()
26 InterlockedDecrement(&m_Ref
);
36 // IDistributorNotify methods
37 HRESULT STDMETHODCALLTYPE
Stop();
38 HRESULT STDMETHODCALLTYPE
Pause();
39 HRESULT STDMETHODCALLTYPE
Run(REFERENCE_TIME tStart
);
40 HRESULT STDMETHODCALLTYPE
SetSyncSource(IReferenceClock
*pClock
);
41 HRESULT STDMETHODCALLTYPE
NotifyGraphChange();
44 HRESULT STDMETHODCALLTYPE
GetTypeInfoCount(UINT
*pctinfo
);
45 HRESULT STDMETHODCALLTYPE
GetTypeInfo(UINT iTInfo
, LCID lcid
, ITypeInfo
**ppTInfo
);
46 HRESULT STDMETHODCALLTYPE
GetIDsOfNames(REFIID riid
, LPOLESTR
*rgszNames
, UINT cNames
, LCID lcid
, DISPID
*rgDispId
);
47 HRESULT STDMETHODCALLTYPE
Invoke(DISPID dispIdMember
, REFIID riid
, LCID lcid
, WORD wFlags
, DISPPARAMS
*pDispParams
, VARIANT
*pVarResult
, EXCEPINFO
*pExcepInfo
, UINT
*puArgErr
);
50 // IBasicAudio methods
51 HRESULT STDMETHODCALLTYPE
put_Volume(long lVolume
);
52 HRESULT STDMETHODCALLTYPE
get_Volume(long *plVolume
);
53 HRESULT STDMETHODCALLTYPE
put_Balance(long lBalance
);
54 HRESULT STDMETHODCALLTYPE
get_Balance(long *plBalance
);
57 CKsBasicAudio() : m_Ref(0){}
58 virtual ~CKsBasicAudio(){}
66 CKsBasicAudio::QueryInterface(
70 if (IsEqualGUID(refiid
, IID_IUnknown
))
72 *Output
= PVOID(this);
73 reinterpret_cast<IUnknown
*>(*Output
)->AddRef();
76 if (IsEqualGUID(refiid
, IID_IDistributorNotify
))
78 *Output
= (IDistributorNotify
*)(this);
79 reinterpret_cast<IDistributorNotify
*>(*Output
)->AddRef();
83 if (IsEqualGUID(refiid
, IID_IBasicAudio
))
85 *Output
= (IBasicAudio
*)(this);
86 reinterpret_cast<IBasicAudio
*>(*Output
)->AddRef();
93 //-------------------------------------------------------------------
94 // IDistributorNotify interface
100 CKsBasicAudio::Stop()
102 OutputDebugString("UNIMPLEMENTED\n");
108 CKsBasicAudio::Pause()
110 OutputDebugString("UNIMPLEMENTED\n");
117 REFERENCE_TIME tStart
)
119 OutputDebugString("UNIMPLEMENTED\n");
125 CKsBasicAudio::SetSyncSource(
126 IReferenceClock
*pClock
)
128 OutputDebugString("UNIMPLEMENTED\n");
134 CKsBasicAudio::NotifyGraphChange()
136 OutputDebugString("UNIMPLEMENTED\n");
140 //-------------------------------------------------------------------
141 // IDispatch interface
146 CKsBasicAudio::GetTypeInfoCount(
149 OutputDebugString("UNIMPLEMENTED\n");
155 CKsBasicAudio::GetTypeInfo(
160 OutputDebugString("UNIMPLEMENTED\n");
166 CKsBasicAudio::GetIDsOfNames(
173 OutputDebugString("UNIMPLEMENTED\n");
179 CKsBasicAudio::Invoke(
184 DISPPARAMS
*pDispParams
,
186 EXCEPINFO
*pExcepInfo
,
189 OutputDebugString("UNIMPLEMENTED\n");
193 //-------------------------------------------------------------------
194 // IBasicAudio interface
199 CKsBasicAudio::put_Volume(
202 OutputDebugString("UNIMPLEMENTED\n");
209 CKsBasicAudio::get_Volume(
212 OutputDebugString("UNIMPLEMENTED\n");
219 CKsBasicAudio::put_Balance(
222 OutputDebugString("UNIMPLEMENTED\n");
229 CKsBasicAudio::get_Balance(
232 OutputDebugString("UNIMPLEMENTED\n");
238 CKsBasicAudio_Constructor(
239 IUnknown
* pUnkOuter
,
243 CKsBasicAudio
* handler
= new CKsBasicAudio();
246 return E_OUTOFMEMORY
;
248 if (FAILED(handler
->QueryInterface(riid
, ppv
)))
252 return E_NOINTERFACE
;