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

cvpvbiconfig.cpp
Go to the documentation of this file.
00001 /*
00002  * COPYRIGHT:       See COPYING in the top level directory
00003  * PROJECT:         ReactOS WDM Streaming ActiveMovie Proxy
00004  * FILE:            dll/directx/ksproxy/cvpvbiconfig.cpp
00005  * PURPOSE:         CVPVBIConfig interface
00006  *
00007  * PROGRAMMERS:     Johannes Anderwald (janderwald@reactos.org)
00008  */
00009 #include "precomp.h"
00010 
00011 class CVPVBIConfig : public IVPVBIConfig,
00012                      public IDistributorNotify
00013 {
00014 public:
00015     STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface);
00016 
00017     STDMETHODIMP_(ULONG) AddRef()
00018     {
00019         InterlockedIncrement(&m_Ref);
00020         return m_Ref;
00021     }
00022     STDMETHODIMP_(ULONG) Release()
00023     {
00024         InterlockedDecrement(&m_Ref);
00025 
00026         if (!m_Ref)
00027         {
00028             delete this;
00029             return 0;
00030         }
00031         return m_Ref;
00032     }
00033 
00034     // IDistributorNotify interface
00035     HRESULT STDMETHODCALLTYPE Stop();
00036     HRESULT STDMETHODCALLTYPE Pause();
00037     HRESULT STDMETHODCALLTYPE Run(REFERENCE_TIME tStart);
00038     HRESULT STDMETHODCALLTYPE SetSyncSource(IReferenceClock *pClock);
00039     HRESULT STDMETHODCALLTYPE NotifyGraphChange();
00040 
00041     // IVPBaseConfig
00042     HRESULT STDMETHODCALLTYPE GetConnectInfo(LPDWORD pdwNumConnectInfo, IN OUT LPDDVIDEOPORTCONNECT pddVPConnectInfo);
00043     HRESULT STDMETHODCALLTYPE SetConnectInfo(DWORD dwChosenEntry);
00044     HRESULT STDMETHODCALLTYPE GetVPDataInfo(LPAMVPDATAINFO pamvpDataInfo);
00045     HRESULT STDMETHODCALLTYPE GetMaxPixelRate(LPAMVPSIZE pamvpSize, OUT LPDWORD pdwMaxPixelsPerSecond);
00046     HRESULT STDMETHODCALLTYPE InformVPInputFormats(DWORD dwNumFormats, IN LPDDPIXELFORMAT pDDPixelFormats);
00047     HRESULT STDMETHODCALLTYPE GetVideoFormats(LPDWORD pdwNumFormats, IN OUT LPDDPIXELFORMAT pddPixelFormats);
00048     HRESULT STDMETHODCALLTYPE SetVideoFormat(DWORD dwChosenEntry);
00049     HRESULT STDMETHODCALLTYPE SetInvertPolarity();
00050     HRESULT STDMETHODCALLTYPE GetOverlaySurface(LPDIRECTDRAWSURFACE* ppddOverlaySurface);
00051     HRESULT STDMETHODCALLTYPE SetDirectDrawKernelHandle(ULONG_PTR dwDDKernelHandle);
00052     HRESULT STDMETHODCALLTYPE SetVideoPortID(IN DWORD dwVideoPortID);
00053     HRESULT STDMETHODCALLTYPE SetDDSurfaceKernelHandles(DWORD cHandles, IN ULONG_PTR *rgDDKernelHandles);
00054     HRESULT STDMETHODCALLTYPE SetSurfaceParameters(DWORD dwPitch, IN DWORD dwXOrigin, IN DWORD dwYOrigin);
00055 
00056     CVPVBIConfig() : m_Ref(0){}
00057     virtual ~CVPVBIConfig(){}
00058 
00059 protected:
00060     LONG m_Ref;
00061 };
00062 
00063 HRESULT
00064 STDMETHODCALLTYPE
00065 CVPVBIConfig::QueryInterface(
00066     IN  REFIID refiid,
00067     OUT PVOID* Output)
00068 {
00069     if (IsEqualGUID(refiid, IID_IUnknown))
00070     {
00071         *Output = PVOID(this);
00072         reinterpret_cast<IUnknown*>(*Output)->AddRef();
00073         return NOERROR;
00074     }
00075     if (IsEqualGUID(refiid, IID_IDistributorNotify))
00076     {
00077         *Output = (IDistributorNotify*)(this);
00078         reinterpret_cast<IDistributorNotify*>(*Output)->AddRef();
00079         return NOERROR;
00080     }
00081 
00082     if (IsEqualGUID(refiid, IID_IVPVBIConfig))
00083     {
00084         *Output = (IVPConfig*)(this);
00085         reinterpret_cast<IVPConfig*>(*Output)->AddRef();
00086         return NOERROR;
00087     }
00088 
00089     return E_NOINTERFACE;
00090 }
00091 
00092 //-------------------------------------------------------------------
00093 // IDistributorNotify interface
00094 //
00095 
00096 
00097 HRESULT
00098 STDMETHODCALLTYPE
00099 CVPVBIConfig::Stop()
00100 {
00101 #ifdef KSPROXY_TRACE
00102     OutputDebugStringW(L"UNIMPLEMENTED\n");
00103 #endif
00104     return E_NOTIMPL;
00105 }
00106 
00107 HRESULT
00108 STDMETHODCALLTYPE
00109 CVPVBIConfig::Pause()
00110 {
00111 #ifdef KSPROXY_TRACE
00112     OutputDebugStringW(L"UNIMPLEMENTED\n");
00113 #endif
00114     return E_NOTIMPL;
00115 }
00116 
00117 HRESULT
00118 STDMETHODCALLTYPE
00119 CVPVBIConfig::Run(
00120     REFERENCE_TIME tStart)
00121 {
00122 #ifdef KSPROXY_TRACE
00123     OutputDebugStringW(L"UNIMPLEMENTED\n");
00124 #endif
00125     return E_NOTIMPL;
00126 }
00127 
00128 HRESULT
00129 STDMETHODCALLTYPE
00130 CVPVBIConfig::SetSyncSource(
00131     IReferenceClock *pClock)
00132 {
00133 #ifdef KSPROXY_TRACE
00134     OutputDebugStringW(L"UNIMPLEMENTED\n");
00135 #endif
00136     return E_NOTIMPL;
00137 }
00138 
00139 HRESULT
00140 STDMETHODCALLTYPE
00141 CVPVBIConfig::NotifyGraphChange()
00142 {
00143 #ifdef KSPROXY_TRACE
00144     OutputDebugStringW(L"UNIMPLEMENTED\n");
00145 #endif
00146     return E_NOTIMPL;
00147 }
00148 
00149 //-------------------------------------------------------------------
00150 // IVPBaseConfig
00151 //
00152 HRESULT
00153 STDMETHODCALLTYPE
00154 CVPVBIConfig::GetConnectInfo(
00155     LPDWORD pdwNumConnectInfo, 
00156     IN OUT LPDDVIDEOPORTCONNECT pddVPConnectInfo)
00157 {
00158 #ifdef KSPROXY_TRACE
00159     OutputDebugStringW(L"UNIMPLEMENTED\n");
00160 #endif
00161     return E_NOTIMPL;
00162 }
00163 
00164 HRESULT
00165 STDMETHODCALLTYPE
00166 CVPVBIConfig::SetConnectInfo(
00167     DWORD dwChosenEntry)
00168 {
00169 #ifdef KSPROXY_TRACE
00170     OutputDebugStringW(L"UNIMPLEMENTED\n");
00171 #endif
00172     return E_NOTIMPL;
00173 }
00174 
00175 HRESULT
00176 STDMETHODCALLTYPE
00177 CVPVBIConfig::GetVPDataInfo(
00178     LPAMVPDATAINFO pamvpDataInfo)
00179 {
00180 #ifdef KSPROXY_TRACE
00181     OutputDebugStringW(L"UNIMPLEMENTED\n");
00182 #endif
00183     return E_NOTIMPL;
00184 }
00185 
00186 HRESULT
00187 STDMETHODCALLTYPE
00188 CVPVBIConfig::GetMaxPixelRate(
00189     LPAMVPSIZE pamvpSize,
00190     OUT LPDWORD pdwMaxPixelsPerSecond)
00191 {
00192 #ifdef KSPROXY_TRACE
00193     OutputDebugStringW(L"UNIMPLEMENTED\n");
00194 #endif
00195     return E_NOTIMPL;
00196 }
00197 
00198 HRESULT
00199 STDMETHODCALLTYPE
00200 CVPVBIConfig::InformVPInputFormats(
00201     DWORD dwNumFormats,
00202     IN LPDDPIXELFORMAT pDDPixelFormats)
00203 {
00204 #ifdef KSPROXY_TRACE
00205     OutputDebugStringW(L"UNIMPLEMENTED\n");
00206 #endif
00207     return E_NOTIMPL;
00208 }
00209 
00210 HRESULT
00211 STDMETHODCALLTYPE
00212 CVPVBIConfig::GetVideoFormats(
00213     LPDWORD pdwNumFormats, 
00214     IN OUT LPDDPIXELFORMAT pddPixelFormats)
00215 {
00216 #ifdef KSPROXY_TRACE
00217     OutputDebugStringW(L"UNIMPLEMENTED\n");
00218 #endif
00219     return E_NOTIMPL;
00220 }
00221 
00222 HRESULT
00223 STDMETHODCALLTYPE
00224 CVPVBIConfig::SetVideoFormat(
00225     DWORD dwChosenEntry)
00226 {
00227 #ifdef KSPROXY_TRACE
00228     OutputDebugStringW(L"UNIMPLEMENTED\n");
00229 #endif
00230     return E_NOTIMPL;
00231 }
00232 
00233 HRESULT
00234 STDMETHODCALLTYPE
00235 CVPVBIConfig::SetInvertPolarity()
00236 {
00237  #ifdef KSPROXY_TRACE
00238     OutputDebugStringW(L"UNIMPLEMENTED\n");
00239 #endif
00240     return E_NOTIMPL;
00241 }
00242 
00243 HRESULT
00244 STDMETHODCALLTYPE
00245 CVPVBIConfig::GetOverlaySurface(
00246     LPDIRECTDRAWSURFACE* ppddOverlaySurface)
00247 {
00248 #ifdef KSPROXY_TRACE
00249     OutputDebugStringW(L"UNIMPLEMENTED\n");
00250 #endif
00251     return E_NOTIMPL;
00252 }
00253 
00254 HRESULT
00255 STDMETHODCALLTYPE
00256 CVPVBIConfig::SetDirectDrawKernelHandle(
00257     ULONG_PTR dwDDKernelHandle)
00258 {
00259 #ifdef KSPROXY_TRACE
00260     OutputDebugStringW(L"UNIMPLEMENTED\n");
00261 #endif
00262     return E_NOTIMPL;
00263 }
00264 
00265 HRESULT
00266 STDMETHODCALLTYPE
00267 CVPVBIConfig::SetVideoPortID(
00268     IN DWORD dwVideoPortID)
00269 {
00270 #ifdef KSPROXY_TRACE
00271     OutputDebugStringW(L"UNIMPLEMENTED\n");
00272 #endif
00273     return E_NOTIMPL;
00274 }
00275 
00276 
00277 HRESULT
00278 STDMETHODCALLTYPE
00279 CVPVBIConfig::SetDDSurfaceKernelHandles(
00280     DWORD cHandles,
00281     IN ULONG_PTR *rgDDKernelHandles)
00282 {
00283 #ifdef KSPROXY_TRACE
00284     OutputDebugStringW(L"UNIMPLEMENTED\n");
00285 #endif
00286     return E_NOTIMPL;
00287 }
00288 
00289 
00290 HRESULT
00291 STDMETHODCALLTYPE
00292 CVPVBIConfig::SetSurfaceParameters(
00293     DWORD dwPitch,
00294     IN DWORD dwXOrigin,
00295     IN DWORD dwYOrigin)
00296 {
00297 #ifdef KSPROXY_TRACE
00298     OutputDebugStringW(L"UNIMPLEMENTED\n");
00299 #endif
00300     return E_NOTIMPL;
00301 }
00302 
00303 
00304 HRESULT
00305 WINAPI
00306 CVPVBIConfig_Constructor(
00307     IUnknown * pUnkOuter,
00308     REFIID riid,
00309     LPVOID * ppv)
00310 {
00311 #ifdef KSPROXY_TRACE
00312     OutputDebugStringW(L"CVPVBIConfig_Constructor\n");
00313 #endif
00314 
00315     CVPVBIConfig * handler = new CVPVBIConfig();
00316 
00317     if (!handler)
00318         return E_OUTOFMEMORY;
00319 
00320     if (FAILED(handler->QueryInterface(riid, ppv)))
00321     {
00322         /* not supported */
00323         delete handler;
00324         return E_NOINTERFACE;
00325     }
00326 
00327     return NOERROR;
00328 }

Generated on Sat May 26 2012 04:20:22 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.