2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS BDA Proxy
4 * FILE: dll/directx/msvidctl/tuningspace.cpp
5 * PURPOSE: ITuningSpace interface
7 * PROGRAMMERS: Johannes Anderwald (janderwald@reactos.org)
11 const GUID CLSID_DVBTNetworkProvider
= {0x216c62df, 0x6d7f, 0x4e9a, {0x85, 0x71, 0x5, 0xf1, 0x4e, 0xdb, 0x76, 0x6a}};
13 class CTuningSpace
: public IDVBTuningSpace
16 STDMETHODIMP
QueryInterface( REFIID InterfaceId
, PVOID
* Interface
);
18 STDMETHODIMP_(ULONG
) AddRef()
20 InterlockedIncrement(&m_Ref
);
23 STDMETHODIMP_(ULONG
) Release()
25 InterlockedDecrement(&m_Ref
);
28 swprintf(Buffer
, L
"CTuningSpace::Release : %p Ref %lu\n", this, m_Ref
);
29 OutputDebugStringW(Buffer
);
40 HRESULT STDMETHODCALLTYPE
GetTypeInfoCount(UINT
*pctinfo
);
41 HRESULT STDMETHODCALLTYPE
GetTypeInfo(UINT iTInfo
, LCID lcid
, ITypeInfo
**ppTInfo
);
42 HRESULT STDMETHODCALLTYPE
GetIDsOfNames(REFIID riid
, LPOLESTR
*rgszNames
, UINT cNames
, LCID lcid
, DISPID
*rgDispId
);
43 HRESULT STDMETHODCALLTYPE
Invoke(DISPID dispIdMember
, REFIID riid
, LCID lcid
, WORD wFlags
, DISPPARAMS
*pDispParams
, VARIANT
*pVarResult
, EXCEPINFO
*pExcepInfo
, UINT
*puArgErr
);
46 //ITuningSpace methods
47 HRESULT STDMETHODCALLTYPE
get_UniqueName(BSTR
*Name
);
48 HRESULT STDMETHODCALLTYPE
put_UniqueName(BSTR Name
);
49 HRESULT STDMETHODCALLTYPE
get_FriendlyName(BSTR
*Name
);
50 HRESULT STDMETHODCALLTYPE
put_FriendlyName(BSTR Name
);
51 HRESULT STDMETHODCALLTYPE
get_CLSID(BSTR
*SpaceCLSID
);
52 HRESULT STDMETHODCALLTYPE
get_NetworkType(BSTR
*NetworkTypeGuid
);
53 HRESULT STDMETHODCALLTYPE
put_NetworkType(BSTR NetworkTypeGuid
);
54 HRESULT STDMETHODCALLTYPE
get__NetworkType(GUID
*NetworkTypeGuid
);
55 HRESULT STDMETHODCALLTYPE
put__NetworkType(REFCLSID NetworkTypeGuid
);
56 HRESULT STDMETHODCALLTYPE
CreateTuneRequest(ITuneRequest
**TuneRequest
);
57 HRESULT STDMETHODCALLTYPE
EnumCategoryGUIDs(IEnumGUID
**ppEnum
);
58 HRESULT STDMETHODCALLTYPE
EnumDeviceMonikers(IEnumMoniker
**ppEnum
);
59 HRESULT STDMETHODCALLTYPE
get_DefaultPreferredComponentTypes(IComponentTypes
**ComponentTypes
);
60 HRESULT STDMETHODCALLTYPE
put_DefaultPreferredComponentTypes(IComponentTypes
*NewComponentTypes
);
61 HRESULT STDMETHODCALLTYPE
get_FrequencyMapping(BSTR
*pMapping
);
62 HRESULT STDMETHODCALLTYPE
put_FrequencyMapping(BSTR Mapping
);
63 HRESULT STDMETHODCALLTYPE
get_DefaultLocator(ILocator
**LocatorVal
);
64 HRESULT STDMETHODCALLTYPE
put_DefaultLocator(ILocator
*LocatorVal
);
65 HRESULT STDMETHODCALLTYPE
Clone(ITuningSpace
**NewTS
);
67 HRESULT STDMETHODCALLTYPE
get_SystemType(DVBSystemType
*SysType
);
68 HRESULT STDMETHODCALLTYPE
put_SystemType(DVBSystemType SysType
);
70 CTuningSpace() : m_Ref(0){};
72 virtual ~CTuningSpace(){};
80 CTuningSpace::QueryInterface(
84 if (IsEqualGUID(refiid
, IID_IUnknown
))
86 *Output
= PVOID(this);
87 reinterpret_cast<IUnknown
*>(*Output
)->AddRef();
91 if (IsEqualGUID(refiid
, IID_ITuningSpace
))
93 *Output
= (ITuningSpace
*)this;
94 reinterpret_cast<ITuningSpace
*>(*Output
)->AddRef();
98 if (IsEqualGUID(refiid
, IID_IDVBTuningSpace
))
100 *Output
= (IDVBTuningSpace
*)this;
101 reinterpret_cast<IDVBTuningSpace
*>(*Output
)->AddRef();
106 WCHAR Buffer
[MAX_PATH
];
108 StringFromCLSID(refiid
, &lpstr
);
109 swprintf(Buffer
, L
"CTuningSpace::QueryInterface: NoInterface for %s", lpstr
);
110 OutputDebugStringW(Buffer
);
111 CoTaskMemFree(lpstr
);
114 return E_NOINTERFACE
;
117 //-------------------------------------------------------------------
122 CTuningSpace::GetTypeInfoCount(UINT
*pctinfo
)
124 OutputDebugStringW(L
"CTuningSpace::GetTypeInfoCount : NotImplemented\n");
130 CTuningSpace::GetTypeInfo(UINT iTInfo
, LCID lcid
, ITypeInfo
**ppTInfo
)
132 OutputDebugStringW(L
"CTuningSpace::GetTypeInfo : NotImplemented\n");
137 CTuningSpace::GetIDsOfNames(REFIID riid
, LPOLESTR
*rgszNames
, UINT cNames
, LCID lcid
, DISPID
*rgDispId
)
139 OutputDebugStringW(L
"CTuningSpace::GetIDsOfNames : NotImplemented\n");
144 CTuningSpace::Invoke(DISPID dispIdMember
, REFIID riid
, LCID lcid
, WORD wFlags
, DISPPARAMS
*pDispParams
, VARIANT
*pVarResult
, EXCEPINFO
*pExcepInfo
, UINT
*puArgErr
)
146 OutputDebugStringW(L
"CTuningSpace::Invoke : NotImplemented\n");
151 //-------------------------------------------------------------------
152 // ITuningSpace interface
157 CTuningSpace::get_UniqueName(BSTR
*Name
)
159 OutputDebugStringW(L
"CTuningSpace::get_UniqueName : NotImplemented\n");
165 CTuningSpace::put_UniqueName(BSTR Name
)
167 OutputDebugStringW(L
"CTuningSpace::put_UniqueName : NotImplemented\n");
173 CTuningSpace::get_FriendlyName(BSTR
*Name
)
175 OutputDebugStringW(L
"CTuningSpace::get_FriendlyName : NotImplemented\n");
181 CTuningSpace::put_FriendlyName(BSTR Name
)
183 OutputDebugStringW(L
"CTuningSpace::put_FriendlyName : NotImplemented\n");
189 CTuningSpace::get_CLSID(BSTR
*SpaceCLSID
)
191 OutputDebugStringW(L
"CTuningSpace::get_CLSID : NotImplemented\n");
197 CTuningSpace::get_NetworkType(BSTR
*NetworkTypeGuid
)
199 OutputDebugStringW(L
"CTuningSpace::get_NetworkType : stub\n");
200 return StringFromCLSID(CLSID_DVBTNetworkProvider
, (LPOLESTR
*)NetworkTypeGuid
);
206 CTuningSpace::put_NetworkType(BSTR NetworkTypeGuid
)
208 OutputDebugStringW(L
"CTuningSpace::put_NetworkType : NotImplemented\n");
214 CTuningSpace::get__NetworkType(GUID
*NetworkTypeGuid
)
216 #ifdef MSVIDCTL_TRACE
218 swprintf(Buffer
, L
"CTuningSpace::get__NetworkType : %p stub\n", NetworkTypeGuid
);
219 OutputDebugStringW(Buffer
);
222 CopyMemory(NetworkTypeGuid
, &CLSID_DVBTNetworkProvider
, sizeof(GUID
));
223 OutputDebugStringW(L
"CTuningSpace::get__NetworkType : done\n");
229 CTuningSpace::put__NetworkType(REFCLSID NetworkTypeGuid
)
231 OutputDebugStringW(L
"CTuningSpace::put__NetworkType : NotImplemented\n");
237 CTuningSpace::CreateTuneRequest(ITuneRequest
**TuneRequest
)
239 OutputDebugStringW(L
"CTuningSpace::CreateTuneRequest : stub\n");
240 return CTuneRequest_fnConstructor(NULL
, (ITuningSpace
*)this, IID_ITuneRequest
, (void**)TuneRequest
);
245 CTuningSpace::EnumCategoryGUIDs(IEnumGUID
**ppEnum
)
247 OutputDebugStringW(L
"CTuningSpace::EnumCategoryGUIDs : NotImplemented\n");
253 CTuningSpace::EnumDeviceMonikers(IEnumMoniker
**ppEnum
)
255 OutputDebugStringW(L
"CTuningSpace::EnumDeviceMonikers : NotImplemented\n");
261 CTuningSpace::get_DefaultPreferredComponentTypes(IComponentTypes
**ComponentTypes
)
263 OutputDebugStringW(L
"CTuningSpace::get_DefaultPreferredComponentTypes : NotImplemented\n");
269 CTuningSpace::put_DefaultPreferredComponentTypes(IComponentTypes
*NewComponentTypes
)
271 OutputDebugStringW(L
"CTuningSpace::put_DefaultPreferredComponentTypes : NotImplemented\n");
277 CTuningSpace::get_FrequencyMapping(BSTR
*pMapping
)
279 OutputDebugStringW(L
"CTuningSpace::get_FrequencyMapping : NotImplemented\n");
285 CTuningSpace::put_FrequencyMapping(BSTR Mapping
)
287 OutputDebugStringW(L
"CTuningSpace::put_FrequencyMapping : NotImplemented\n");
293 CTuningSpace::get_DefaultLocator(ILocator
**LocatorVal
)
295 OutputDebugStringW(L
"CTuningSpace::get_DefaultLocator : NotImplemented\n");
301 CTuningSpace::put_DefaultLocator(ILocator
*LocatorVal
)
303 OutputDebugStringW(L
"CTuningSpace::put_DefaultLocator : NotImplemented\n");
309 CTuningSpace::Clone(ITuningSpace
**NewTS
)
311 OutputDebugStringW(L
"CTuningSpace::Clone : NotImplemented\n");
315 //-------------------------------------------------------------------
320 CTuningSpace::get_SystemType(DVBSystemType
*SysType
)
322 OutputDebugStringW(L
"CTuningSpace::get_SystemType : NotImplemented\n");
328 CTuningSpace::put_SystemType(DVBSystemType SysType
)
330 OutputDebugStringW(L
"CTuningSpace::put_SystemType : NotImplemented\n");
336 CTuningSpace_fnConstructor(
341 // construct device control
342 CTuningSpace
* space
= new CTuningSpace();
344 #ifdef MSVIDCTL_TRACE
345 WCHAR Buffer
[MAX_PATH
];
347 StringFromCLSID(riid
, &lpstr
);
348 swprintf(Buffer
, L
"CTuningSpace_fnConstructor riid %s pUnknown %p\n", lpstr
, pUnknown
);
349 OutputDebugStringW(Buffer
);
353 return E_OUTOFMEMORY
;
355 if (FAILED(space
->QueryInterface(riid
, ppv
)))
359 return E_NOINTERFACE
;