Home | Info | Community | Development | myReactOS | Contact Us
ReactOS Development > Doxygencvpvbiconfig.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
1.7.6.1
|