ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

tuningspace.cpp
Go to the documentation of this file.
00001 /*
00002  * COPYRIGHT:       See COPYING in the top level directory
00003  * PROJECT:         ReactOS BDA Proxy
00004  * FILE:            dll/directx/msvidctl/tuningspace.cpp
00005  * PURPOSE:         ITuningSpace interface
00006  *
00007  * PROGRAMMERS:     Johannes Anderwald (janderwald@reactos.org)
00008  */
00009 #include "precomp.h"
00010 
00011 const GUID CLSID_DVBTNetworkProvider = {0x216c62df, 0x6d7f, 0x4e9a, {0x85, 0x71, 0x5, 0xf1, 0x4e, 0xdb, 0x76, 0x6a}};
00012 
00013 class CTuningSpace : public IDVBTuningSpace
00014 {
00015 public:
00016     STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface);
00017 
00018     STDMETHODIMP_(ULONG) AddRef()
00019     {
00020         InterlockedIncrement(&m_Ref);
00021         return m_Ref;
00022     }
00023     STDMETHODIMP_(ULONG) Release()
00024     {
00025         InterlockedDecrement(&m_Ref);
00026 
00027             WCHAR Buffer[100];
00028             swprintf(Buffer, L"CTuningSpace::Release : %p Ref %lu\n", this, m_Ref);
00029             OutputDebugStringW(Buffer);
00030 
00031         if (!m_Ref)
00032         {
00033             //delete this;
00034             return 0;
00035         }
00036         return m_Ref;
00037     }
00038 
00039      // IDispatch methods
00040      HRESULT STDMETHODCALLTYPE GetTypeInfoCount(UINT *pctinfo);
00041      HRESULT STDMETHODCALLTYPE GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo);
00042      HRESULT STDMETHODCALLTYPE GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId);
00043      HRESULT STDMETHODCALLTYPE Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr);
00044 
00045 
00046     //ITuningSpace methods
00047     HRESULT STDMETHODCALLTYPE get_UniqueName(BSTR *Name);
00048     HRESULT STDMETHODCALLTYPE put_UniqueName(BSTR Name);
00049     HRESULT STDMETHODCALLTYPE get_FriendlyName(BSTR *Name);
00050     HRESULT STDMETHODCALLTYPE put_FriendlyName(BSTR Name);
00051     HRESULT STDMETHODCALLTYPE get_CLSID(BSTR *SpaceCLSID);
00052     HRESULT STDMETHODCALLTYPE get_NetworkType(BSTR *NetworkTypeGuid);
00053     HRESULT STDMETHODCALLTYPE put_NetworkType(BSTR NetworkTypeGuid);
00054     HRESULT STDMETHODCALLTYPE get__NetworkType(GUID *NetworkTypeGuid);
00055     HRESULT STDMETHODCALLTYPE put__NetworkType(REFCLSID NetworkTypeGuid);
00056     HRESULT STDMETHODCALLTYPE CreateTuneRequest(ITuneRequest **TuneRequest);
00057     HRESULT STDMETHODCALLTYPE EnumCategoryGUIDs(IEnumGUID **ppEnum);
00058     HRESULT STDMETHODCALLTYPE EnumDeviceMonikers(IEnumMoniker **ppEnum);
00059     HRESULT STDMETHODCALLTYPE get_DefaultPreferredComponentTypes(IComponentTypes **ComponentTypes);
00060     HRESULT STDMETHODCALLTYPE put_DefaultPreferredComponentTypes(IComponentTypes *NewComponentTypes);
00061     HRESULT STDMETHODCALLTYPE get_FrequencyMapping(BSTR *pMapping);
00062     HRESULT STDMETHODCALLTYPE put_FrequencyMapping(BSTR Mapping);
00063     HRESULT STDMETHODCALLTYPE get_DefaultLocator(ILocator **LocatorVal);
00064     HRESULT STDMETHODCALLTYPE put_DefaultLocator(ILocator *LocatorVal);
00065     HRESULT STDMETHODCALLTYPE Clone(ITuningSpace **NewTS);
00066     // IDVBTuningSpace
00067     HRESULT STDMETHODCALLTYPE get_SystemType(DVBSystemType *SysType);
00068     HRESULT STDMETHODCALLTYPE put_SystemType(DVBSystemType SysType);
00069 
00070     CTuningSpace() : m_Ref(0){};
00071 
00072     virtual ~CTuningSpace(){};
00073 
00074 protected:
00075     LONG m_Ref;
00076 };
00077 
00078 HRESULT
00079 STDMETHODCALLTYPE
00080 CTuningSpace::QueryInterface(
00081     IN  REFIID refiid,
00082     OUT PVOID* Output)
00083 {
00084     if (IsEqualGUID(refiid, IID_IUnknown))
00085     {
00086         *Output = PVOID(this);
00087         reinterpret_cast<IUnknown*>(*Output)->AddRef();
00088         return NOERROR;
00089     }
00090 
00091     if (IsEqualGUID(refiid, IID_ITuningSpace))
00092     {
00093         *Output = (ITuningSpace*)this;
00094         reinterpret_cast<ITuningSpace*>(*Output)->AddRef();
00095         return NOERROR;
00096     }
00097 
00098     if (IsEqualGUID(refiid, IID_IDVBTuningSpace))
00099     {
00100         *Output = (IDVBTuningSpace*)this;
00101         reinterpret_cast<IDVBTuningSpace*>(*Output)->AddRef();
00102         return NOERROR;
00103     }
00104 
00105 
00106     WCHAR Buffer[MAX_PATH];
00107     LPOLESTR lpstr;
00108     StringFromCLSID(refiid, &lpstr);
00109     swprintf(Buffer, L"CTuningSpace::QueryInterface: NoInterface for %s", lpstr);
00110     OutputDebugStringW(Buffer);
00111     CoTaskMemFree(lpstr);
00112 
00113 
00114     return E_NOINTERFACE;
00115 }
00116 
00117 //-------------------------------------------------------------------
00118 // IDispatch methods
00119 //
00120 HRESULT
00121 STDMETHODCALLTYPE
00122 CTuningSpace::GetTypeInfoCount(UINT *pctinfo)
00123 {
00124     OutputDebugStringW(L"CTuningSpace::GetTypeInfoCount : NotImplemented\n");
00125     return E_NOTIMPL;
00126 }
00127 
00128 HRESULT
00129 STDMETHODCALLTYPE
00130 CTuningSpace::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
00131 {
00132     OutputDebugStringW(L"CTuningSpace::GetTypeInfo : NotImplemented\n");
00133     return E_NOTIMPL;
00134 }
00135 HRESULT
00136 STDMETHODCALLTYPE
00137 CTuningSpace::GetIDsOfNames(REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
00138 {
00139     OutputDebugStringW(L"CTuningSpace::GetIDsOfNames : NotImplemented\n");
00140     return E_NOTIMPL;
00141 }
00142 HRESULT
00143 STDMETHODCALLTYPE
00144 CTuningSpace::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExcepInfo, UINT *puArgErr)
00145 {
00146     OutputDebugStringW(L"CTuningSpace::Invoke : NotImplemented\n");
00147     return E_NOTIMPL;
00148 }
00149 
00150 
00151 //-------------------------------------------------------------------
00152 // ITuningSpace interface
00153 //
00154 
00155 HRESULT
00156 STDMETHODCALLTYPE
00157 CTuningSpace::get_UniqueName(BSTR *Name)
00158 {
00159     OutputDebugStringW(L"CTuningSpace::get_UniqueName : NotImplemented\n");
00160     return E_NOTIMPL;
00161 }
00162 
00163 HRESULT
00164 STDMETHODCALLTYPE
00165 CTuningSpace::put_UniqueName(BSTR Name)
00166 {
00167     OutputDebugStringW(L"CTuningSpace::put_UniqueName : NotImplemented\n");
00168     return E_NOTIMPL;
00169 }
00170 
00171 HRESULT
00172 STDMETHODCALLTYPE
00173 CTuningSpace::get_FriendlyName(BSTR *Name)
00174 {
00175     OutputDebugStringW(L"CTuningSpace::get_FriendlyName : NotImplemented\n");
00176     return E_NOTIMPL;
00177 }
00178 
00179 HRESULT
00180 STDMETHODCALLTYPE
00181 CTuningSpace::put_FriendlyName(BSTR Name)
00182 {
00183     OutputDebugStringW(L"CTuningSpace::put_FriendlyName : NotImplemented\n");
00184     return E_NOTIMPL;
00185 }
00186 
00187 HRESULT
00188 STDMETHODCALLTYPE
00189 CTuningSpace::get_CLSID(BSTR *SpaceCLSID)
00190 {
00191     OutputDebugStringW(L"CTuningSpace::get_CLSID : NotImplemented\n");
00192     return E_NOTIMPL;
00193 }
00194 
00195 HRESULT
00196 STDMETHODCALLTYPE
00197 CTuningSpace::get_NetworkType(BSTR *NetworkTypeGuid)
00198 {
00199     OutputDebugStringW(L"CTuningSpace::get_NetworkType : stub\n");
00200     return StringFromCLSID(CLSID_DVBTNetworkProvider, (LPOLESTR*)NetworkTypeGuid);
00201 
00202 }
00203 
00204 HRESULT
00205 STDMETHODCALLTYPE
00206 CTuningSpace::put_NetworkType(BSTR NetworkTypeGuid)
00207 {
00208     OutputDebugStringW(L"CTuningSpace::put_NetworkType : NotImplemented\n");
00209     return E_NOTIMPL;
00210 }
00211 
00212 HRESULT
00213 STDMETHODCALLTYPE
00214 CTuningSpace::get__NetworkType(GUID *NetworkTypeGuid)
00215 {
00216 #ifdef MSVIDCTL_TRACE
00217     WCHAR Buffer[100];
00218     swprintf(Buffer, L"CTuningSpace::get__NetworkType : %p stub\n", NetworkTypeGuid);
00219     OutputDebugStringW(Buffer);
00220 #endif
00221 
00222     CopyMemory(NetworkTypeGuid, &CLSID_DVBTNetworkProvider, sizeof(GUID));
00223     OutputDebugStringW(L"CTuningSpace::get__NetworkType : done\n");
00224     return S_OK;
00225 }
00226 
00227 HRESULT
00228 STDMETHODCALLTYPE
00229 CTuningSpace::put__NetworkType(REFCLSID NetworkTypeGuid)
00230 {
00231     OutputDebugStringW(L"CTuningSpace::put__NetworkType : NotImplemented\n");
00232     return E_NOTIMPL;
00233 }
00234 
00235 HRESULT
00236 STDMETHODCALLTYPE
00237 CTuningSpace::CreateTuneRequest(ITuneRequest **TuneRequest)
00238 {
00239     OutputDebugStringW(L"CTuningSpace::CreateTuneRequest : stub\n");
00240     return CTuneRequest_fnConstructor(NULL, (ITuningSpace*)this, IID_ITuneRequest, (void**)TuneRequest);
00241 }
00242 
00243 HRESULT
00244 STDMETHODCALLTYPE
00245 CTuningSpace::EnumCategoryGUIDs(IEnumGUID **ppEnum)
00246 {
00247     OutputDebugStringW(L"CTuningSpace::EnumCategoryGUIDs : NotImplemented\n");
00248     return E_NOTIMPL;
00249 }
00250 
00251 HRESULT
00252 STDMETHODCALLTYPE
00253 CTuningSpace::EnumDeviceMonikers(IEnumMoniker **ppEnum)
00254 {
00255     OutputDebugStringW(L"CTuningSpace::EnumDeviceMonikers : NotImplemented\n");
00256     return E_NOTIMPL;
00257 }
00258 
00259 HRESULT
00260 STDMETHODCALLTYPE
00261 CTuningSpace::get_DefaultPreferredComponentTypes(IComponentTypes **ComponentTypes)
00262 {
00263     OutputDebugStringW(L"CTuningSpace::get_DefaultPreferredComponentTypes : NotImplemented\n");
00264     return E_NOTIMPL;
00265 }
00266 
00267 HRESULT
00268 STDMETHODCALLTYPE
00269 CTuningSpace::put_DefaultPreferredComponentTypes(IComponentTypes *NewComponentTypes)
00270 {
00271     OutputDebugStringW(L"CTuningSpace::put_DefaultPreferredComponentTypes : NotImplemented\n");
00272     return E_NOTIMPL;
00273 }
00274 
00275 HRESULT
00276 STDMETHODCALLTYPE
00277 CTuningSpace::get_FrequencyMapping(BSTR *pMapping)
00278 {
00279     OutputDebugStringW(L"CTuningSpace::get_FrequencyMapping : NotImplemented\n");
00280     return E_NOTIMPL;
00281 }
00282 
00283 HRESULT
00284 STDMETHODCALLTYPE
00285 CTuningSpace::put_FrequencyMapping(BSTR Mapping)
00286 {
00287     OutputDebugStringW(L"CTuningSpace::put_FrequencyMapping : NotImplemented\n");
00288     return E_NOTIMPL;
00289 }
00290 
00291 HRESULT
00292 STDMETHODCALLTYPE
00293 CTuningSpace::get_DefaultLocator(ILocator **LocatorVal)
00294 {
00295     OutputDebugStringW(L"CTuningSpace::get_DefaultLocator : NotImplemented\n");
00296     return E_NOTIMPL;
00297 }
00298 
00299 HRESULT
00300 STDMETHODCALLTYPE
00301 CTuningSpace::put_DefaultLocator(ILocator *LocatorVal)
00302 {
00303     OutputDebugStringW(L"CTuningSpace::put_DefaultLocator : NotImplemented\n");
00304     return E_NOTIMPL;
00305 }
00306 
00307 HRESULT
00308 STDMETHODCALLTYPE
00309 CTuningSpace::Clone(ITuningSpace **NewTS)
00310 {
00311     OutputDebugStringW(L"CTuningSpace::Clone : NotImplemented\n");
00312     return E_NOTIMPL;
00313 }
00314 
00315 //-------------------------------------------------------------------
00316 // IDVBTuningSpace
00317 //
00318 HRESULT
00319 STDMETHODCALLTYPE
00320 CTuningSpace::get_SystemType(DVBSystemType *SysType)
00321 {
00322     OutputDebugStringW(L"CTuningSpace::get_SystemType : NotImplemented\n");
00323     return E_NOTIMPL;
00324 }
00325 
00326 HRESULT
00327 STDMETHODCALLTYPE
00328 CTuningSpace::put_SystemType(DVBSystemType SysType)
00329 {
00330     OutputDebugStringW(L"CTuningSpace::put_SystemType : NotImplemented\n");
00331     return E_NOTIMPL;
00332 }
00333 
00334 HRESULT
00335 WINAPI
00336 CTuningSpace_fnConstructor(
00337     IUnknown *pUnknown,
00338     REFIID riid,
00339     LPVOID * ppv)
00340 {
00341     // construct device control
00342     CTuningSpace * space = new CTuningSpace();
00343 
00344 #ifdef MSVIDCTL_TRACE
00345     WCHAR Buffer[MAX_PATH];
00346     LPOLESTR lpstr;
00347     StringFromCLSID(riid, &lpstr);
00348     swprintf(Buffer, L"CTuningSpace_fnConstructor riid %s pUnknown %p\n", lpstr, pUnknown);
00349     OutputDebugStringW(Buffer);
00350 #endif
00351 
00352     if (!space)
00353         return E_OUTOFMEMORY;
00354 
00355     if (FAILED(space->QueryInterface(riid, ppv)))
00356     {
00357         /* not supported */
00358         delete space;
00359         return E_NOINTERFACE;
00360     }
00361 
00362     return NOERROR;
00363 }
00364 
00365 

Generated on Sun May 27 2012 04:21:53 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.