Something went wrong. Try again.
Reactos
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS WDM Streaming ActiveMovie Proxy * FILE: dll/directx/ksproxy/cvpconfig.cpp * PURPOSE: IVPConfig interface * * PROGRAMMERS: Johannes Anderwald (johannes.anderwald@reactos.org) */#include "precomp.h"
class CVPConfig : public IVPConfig, public IDistributorNotify{public: STDMETHODIMP QueryInterface( REFIID InterfaceId, PVOID* Interface);
STDMETHODIMP_(ULONG) AddRef() { InterlockedIncrement(&m_Ref); return m_Ref; } STDMETHODIMP_(ULONG) Release() { InterlockedDecrement(&m_Ref);
if (!m_Ref) { delete this; return 0; } return m_Ref; }
// IDistributorNotify interface HRESULT STDMETHODCALLTYPE Stop(); HRESULT STDMETHODCALLTYPE Pause(); HRESULT STDMETHODCALLTYPE Run(REFERENCE_TIME tStart); HRESULT STDMETHODCALLTYPE SetSyncSource(IReferenceClock *pClock); HRESULT STDMETHODCALLTYPE NotifyGraphChange();
// IVPBaseConfig HRESULT STDMETHODCALLTYPE GetConnectInfo(LPDWORD pdwNumConnectInfo, IN OUT LPDDVIDEOPORTCONNECT pddVPConnectInfo); HRESULT STDMETHODCALLTYPE SetConnectInfo(DWORD dwChosenEntry); HRESULT STDMETHODCALLTYPE GetVPDataInfo(LPAMVPDATAINFO pamvpDataInfo); HRESULT STDMETHODCALLTYPE GetMaxPixelRate(LPAMVPSIZE pamvpSize, OUT LPDWORD pdwMaxPixelsPerSecond); HRESULT STDMETHODCALLTYPE InformVPInputFormats(DWORD dwNumFormats, IN LPDDPIXELFORMAT pDDPixelFormats); HRESULT STDMETHODCALLTYPE GetVideoFormats(LPDWORD pdwNumFormats, IN OUT LPDDPIXELFORMAT pddPixelFormats); HRESULT STDMETHODCALLTYPE SetVideoFormat(DWORD dwChosenEntry); HRESULT STDMETHODCALLTYPE SetInvertPolarity(); HRESULT STDMETHODCALLTYPE GetOverlaySurface(LPDIRECTDRAWSURFACE* ppddOverlaySurface); HRESULT STDMETHODCALLTYPE SetDirectDrawKernelHandle(ULONG_PTR dwDDKernelHandle); HRESULT STDMETHODCALLTYPE SetVideoPortID(IN DWORD dwVideoPortID); HRESULT STDMETHODCALLTYPE SetDDSurfaceKernelHandles(DWORD cHandles, IN ULONG_PTR *rgDDKernelHandles); HRESULT STDMETHODCALLTYPE SetSurfaceParameters(DWORD dwPitch, IN DWORD dwXOrigin, IN DWORD dwYOrigin); // IVPConfig HRESULT STDMETHODCALLTYPE IsVPDecimationAllowed(LPBOOL pbIsDecimationAllowed); HRESULT STDMETHODCALLTYPE SetScalingFactors(LPAMVPSIZE pamvpSize);
CVPConfig() : m_Ref(0){} virtual ~CVPConfig(){}
protected: LONG m_Ref;};
HRESULTSTDMETHODCALLTYPECVPConfig::QueryInterface( IN REFIID refiid, OUT PVOID* Output){ if (IsEqualGUID(refiid, IID_IUnknown)) { *Output = PVOID(this); reinterpret_cast<IUnknown*>(*Output)->AddRef(); return NOERROR; } if (IsEqualGUID(refiid, IID_IDistributorNotify)) { *Output = (IDistributorNotify*)(this); reinterpret_cast<IDistributorNotify*>(*Output)->AddRef(); return NOERROR; }
if (IsEqualGUID(refiid, IID_IVPConfig)) { *Output = (IVPConfig*)(this); reinterpret_cast<IVPConfig*>(*Output)->AddRef(); return NOERROR; }
return E_NOINTERFACE;}
//-------------------------------------------------------------------// IDistributorNotify interface//
HRESULTSTDMETHODCALLTYPECVPConfig::Stop(){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::Pause(){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::Run( REFERENCE_TIME tStart){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::SetSyncSource( IReferenceClock *pClock){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::NotifyGraphChange(){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
//-------------------------------------------------------------------// IVPBaseConfig//HRESULTSTDMETHODCALLTYPECVPConfig::GetConnectInfo( LPDWORD pdwNumConnectInfo, IN OUT LPDDVIDEOPORTCONNECT pddVPConnectInfo){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::SetConnectInfo( DWORD dwChosenEntry){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::GetVPDataInfo( LPAMVPDATAINFO pamvpDataInfo){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::GetMaxPixelRate( LPAMVPSIZE pamvpSize, OUT LPDWORD pdwMaxPixelsPerSecond){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::InformVPInputFormats( DWORD dwNumFormats, IN LPDDPIXELFORMAT pDDPixelFormats){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::GetVideoFormats( LPDWORD pdwNumFormats, IN OUT LPDDPIXELFORMAT pddPixelFormats){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::SetVideoFormat( DWORD dwChosenEntry){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::SetInvertPolarity(){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::GetOverlaySurface( LPDIRECTDRAWSURFACE* ppddOverlaySurface){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::SetDirectDrawKernelHandle( ULONG_PTR dwDDKernelHandle){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::SetVideoPortID( IN DWORD dwVideoPortID){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::SetDDSurfaceKernelHandles( DWORD cHandles, IN ULONG_PTR *rgDDKernelHandles){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::SetSurfaceParameters( DWORD dwPitch, IN DWORD dwXOrigin, IN DWORD dwYOrigin){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
//-------------------------------------------------------------------// IVPConfig//
HRESULTSTDMETHODCALLTYPECVPConfig::IsVPDecimationAllowed( LPBOOL pbIsDecimationAllowed){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTSTDMETHODCALLTYPECVPConfig::SetScalingFactors( LPAMVPSIZE pamvpSize){#ifdef KSPROXY_TRACE OutputDebugStringW(L"UNIMPLEMENTED\n");#endif return E_NOTIMPL;}
HRESULTWINAPICVPConfig_Constructor( IUnknown * pUnkOuter, REFIID riid, LPVOID * ppv){#ifdef KSPROXY_TRACE OutputDebugStringW(L"CVPConfig_Constructor\n");#endif
CVPConfig * handler = new CVPConfig();
if (!handler) return E_OUTOFMEMORY;
if (FAILED(handler->QueryInterface(riid, ppv))) { /* not supported */ delete handler; return E_NOINTERFACE; }
return NOERROR;}