Author: janderwald Date: Tue Feb 23 18:40:34 2010 New Revision: 45677
URL: http://svn.reactos.org/svn/reactos?rev=45677&view=rev Log: [DXSDK] - Add BDA Change Sync Method Set [BDAPLGIN] - Add "BDA Device Control Plug-in for MPEG2 based networks" stub
Added: trunk/reactos/dll/directx/bdaplgin/ (with props) trunk/reactos/dll/directx/bdaplgin/bdaplgin.cpp (with props) trunk/reactos/dll/directx/bdaplgin/bdaplgin.rbuild (with props) trunk/reactos/dll/directx/bdaplgin/bdaplgin.spec (with props) trunk/reactos/dll/directx/bdaplgin/classfactory.cpp (contents, props changed) - copied, changed from r45668, trunk/reactos/dll/directx/ksproxy/classfactory.cpp trunk/reactos/dll/directx/bdaplgin/devicecontrol.cpp (with props) trunk/reactos/dll/directx/bdaplgin/pincontrol.cpp (with props) trunk/reactos/dll/directx/bdaplgin/precomp.h (with props) Modified: trunk/reactos/baseaddress.rbuild trunk/reactos/dll/directx/directx.rbuild trunk/reactos/include/dxsdk/bdamedia.h
Modified: trunk/reactos/baseaddress.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/baseaddress.rbuild?rev=4567... ============================================================================== --- trunk/reactos/baseaddress.rbuild [iso-8859-1] (original) +++ trunk/reactos/baseaddress.rbuild [iso-8859-1] Tue Feb 23 18:40:34 2010 @@ -25,6 +25,7 @@ <property name="BASEADDRESS_MSGSM32ACM" value="0x56db0000" /> <property name="BASEADDRESS_MSG711ACM" value="0x584f0000" /> <property name="BASEADDRESS_IMAADP32ACM" value="0x585e0000" /> + <property name="BASEADDRESS_BDAPLGIN" value="0x58600000" /> <property name="BASEADDRESS_TELEPHON" value="0x58750000" /> <property name="BASEADDRESS_PWRCFG" value="0x587e0000" /> <property name="BASEADDRESS_MMSYS" value="0x588a0000" />
Propchange: trunk/reactos/dll/directx/bdaplgin/ ------------------------------------------------------------------------------ --- bugtraq:logregex (added) +++ bugtraq:logregex Tue Feb 23 18:40:34 2010 @@ -1,0 +1,2 @@ +([Ii]ssue|[Bb]ug)s? #?(\d+)(,? ?#?(\d+))*(,? ?(and |or )?#?(\d+))? +(\d+)
Propchange: trunk/reactos/dll/directx/bdaplgin/ ------------------------------------------------------------------------------ bugtraq:message = See issue #%BUGID% for more details.
Propchange: trunk/reactos/dll/directx/bdaplgin/ ------------------------------------------------------------------------------ bugtraq:url = http://www.reactos.org/bugzilla/show_bug.cgi?id=%BUGID%
Propchange: trunk/reactos/dll/directx/bdaplgin/ ------------------------------------------------------------------------------ tsvn:logminsize = 10
Added: trunk/reactos/dll/directx/bdaplgin/bdaplgin.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/bdaplgin/bdaplg... ============================================================================== --- trunk/reactos/dll/directx/bdaplgin/bdaplgin.cpp (added) +++ trunk/reactos/dll/directx/bdaplgin/bdaplgin.cpp [iso-8859-1] Tue Feb 23 18:40:34 2010 @@ -1,0 +1,106 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS BDA Proxy + * FILE: dll/directx/bdaplgin/classfactory.cpp + * PURPOSE: ClassFactory interface + * + * PROGRAMMERS: Johannes Anderwald (janderwald@reactos.org) + */ + +#include "precomp.h" + +const GUID CBDADeviceControl_GUID = {STATIC_KSMETHODSETID_BdaChangeSync}; +const GUID CBDAPinControl_GUID = {0x0DED49D5, 0xA8B7, 0x4d5d, {0x97, 0xA1, 0x12, 0xB0, 0xC1, 0x95, 0x87, 0x4D}}; + + +static INTERFACE_TABLE InterfaceTable[] = +{ + {&CBDADeviceControl_GUID, CBDADeviceControl_fnConstructor}, + {&CBDAPinControl_GUID, CBDAPinControl_fnConstructor}, + {NULL, NULL} +}; + +extern "C" +BOOL +WINAPI +DllMain( + HINSTANCE hInstDLL, + DWORD fdwReason, + LPVOID lpvReserved) +{ + switch (fdwReason) + { + case DLL_PROCESS_ATTACH: + OutputDebugStringW(L"BDAPLGIN::DllMain()\n"); + DisableThreadLibraryCalls(hInstDLL); + break; + default: + break; + } + + return TRUE; +} + + +extern "C" +KSDDKAPI +HRESULT +WINAPI +DllUnregisterServer(void) +{ + return S_OK; +} + +extern "C" +KSDDKAPI +HRESULT +WINAPI +DllRegisterServer(void) +{ + return S_OK; +} + +KSDDKAPI +HRESULT +WINAPI +DllGetClassObject( + REFCLSID rclsid, + REFIID riid, + LPVOID *ppv) +{ + UINT i; + HRESULT hres = E_OUTOFMEMORY; + IClassFactory * pcf = NULL; + + if (!ppv) + return E_INVALIDARG; + + *ppv = NULL; + + for (i = 0; InterfaceTable[i].riid; i++) + { + if (IsEqualIID(*InterfaceTable[i].riid, rclsid)) + { + pcf = CClassFactory_fnConstructor(InterfaceTable[i].lpfnCI, NULL, NULL); + break; + } + } + + if (!pcf) + { + return CLASS_E_CLASSNOTAVAILABLE; + } + + hres = pcf->QueryInterface(riid, ppv); + pcf->Release(); + + return hres; +} + +KSDDKAPI +HRESULT +WINAPI +DllCanUnloadNow(void) +{ + return S_OK; +}
Propchange: trunk/reactos/dll/directx/bdaplgin/bdaplgin.cpp ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/dll/directx/bdaplgin/bdaplgin.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/bdaplgin/bdaplg... ============================================================================== --- trunk/reactos/dll/directx/bdaplgin/bdaplgin.rbuild (added) +++ trunk/reactos/dll/directx/bdaplgin/bdaplgin.rbuild [iso-8859-1] Tue Feb 23 18:40:34 2010 @@ -1,0 +1,27 @@ +<?xml version="1.0"?> +<!DOCTYPE module SYSTEM "../../../tools/rbuild/project.dtd"> +<group> +<module name="bdaplgin" type="win32dll" baseaddress="${BASEADDRESS_BDAPLGIN}" installbase="system32" installname="bdaplgin.ax"> + <importlibrary definition="bdaplgin.spec" /> + <include base="bdaplgin">.</include> + <library>ntdll</library> + <library>kernel32</library> + <library>advapi32</library> + <library>ole32</library> + <library>advapi32</library> + <library>msvcrt</library> + <group compilerset="gcc"> + <compilerflag compiler="cxx">-fno-exceptions</compilerflag> + <compilerflag compiler="cxx">-fno-rtti</compilerflag> + </group> + <group compilerset="msc"> + <compilerflag compiler="cxx">/GR-</compilerflag> + </group> + + <file>bdaplgin.cpp</file> + <file>bdaplgin.rc</file> + <file>classfactory.cpp</file> + <file>devicecontrol.cpp</file> + <file>pincontrol.cpp</file> +</module> +</group>
Propchange: trunk/reactos/dll/directx/bdaplgin/bdaplgin.rbuild ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/dll/directx/bdaplgin/bdaplgin.spec URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/bdaplgin/bdaplg... ============================================================================== --- trunk/reactos/dll/directx/bdaplgin/bdaplgin.spec (added) +++ trunk/reactos/dll/directx/bdaplgin/bdaplgin.spec [iso-8859-1] Tue Feb 23 18:40:34 2010 @@ -1,0 +1,4 @@ +@ stdcall DllCanUnloadNow() +@ stdcall DllGetClassObject(ptr ptr ptr) +@ stdcall DllRegisterServer() +@ stdcall DllUnregisterServer()
Propchange: trunk/reactos/dll/directx/bdaplgin/bdaplgin.spec ------------------------------------------------------------------------------ svn:eol-style = native
Copied: trunk/reactos/dll/directx/bdaplgin/classfactory.cpp (from r45668, trunk/reactos/dll/directx/ksproxy/classfactory.cpp) URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/bdaplgin/classf... ============================================================================== --- trunk/reactos/dll/directx/ksproxy/classfactory.cpp [iso-8859-1] (original) +++ trunk/reactos/dll/directx/bdaplgin/classfactory.cpp [iso-8859-1] Tue Feb 23 18:40:34 2010 @@ -1,12 +1,15 @@ /* * COPYRIGHT: See COPYING in the top level directory - * PROJECT: ReactOS WDM Streaming ActiveMovie Proxy - * FILE: dll/directx/ksproxy/classfactory.cpp + * PROJECT: ReactOS BDA Proxy + * FILE: dll/directx/bdaplgin/classfactory.cpp * PURPOSE: ClassFactory interface * * PROGRAMMERS: Johannes Anderwald (janderwald@reactos.org) */ #include "precomp.h" + +const GUID IID_IUnknown = {0x00000000, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; +const GUID IID_IClassFactory = {0x00000001, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}};
class CClassFactory : public IClassFactory {
Propchange: trunk/reactos/dll/directx/bdaplgin/classfactory.cpp ------------------------------------------------------------------------------ svn:eol-style = native
Propchange: trunk/reactos/dll/directx/bdaplgin/classfactory.cpp ------------------------------------------------------------------------------ --- svn:mergeinfo (added) +++ svn:mergeinfo Tue Feb 23 18:40:34 2010 @@ -1,0 +1,1 @@ +/branches/ros-amd64-bringup/reactos/dll/directx/ksproxy/classfactory.cpp:34711-34712,34743,34780-34782,34812,34839,34842,34908-34909,34917,34965,35323-35324,35347-35348,35361,35436,35509,35515,35588,35683,35739,35746,35762,35771,35777,35789,35805,35823,35827,35902,35904-35906,35942,35947-35949,35952-35953,35966,36013,36172,36360,36388-36389,36445,36502-36503,36505,36570,36614,36899,36930,36936,36992,37323,37434,37472,37475,37536,37820-37821,37868-37869,37873,37990-37991,38013-38014,38148-38151,38264-38265,38268,38355,39151,39333,39345,39639,40122-40123,40125,40128,40155,40247,40324,40753,40928,40986-40987,40989,40991,40993,40995-40996,41000-41001,41027-41030,41044-41045,41047-41050,41052,41082-41086,41097-41098,41101,41449,41479,41484-41485,41499,41531,41536,41540,41546-41547,41549,43080,43426,43454,43506,43566,43574,43598,43600-43602,43604-43605,43677,43682,43757,43775,43838-43840,43857-43858,43860,43905-43907,43969,44002,44037,44039-44040,44044-44045,44065,44095,44123,44144,44205,44238,44294,44338,44389,44391,44426,44460,44530,44540,44601
Added: trunk/reactos/dll/directx/bdaplgin/devicecontrol.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/bdaplgin/device... ============================================================================== --- trunk/reactos/dll/directx/bdaplgin/devicecontrol.cpp (added) +++ trunk/reactos/dll/directx/bdaplgin/devicecontrol.cpp [iso-8859-1] Tue Feb 23 18:40:34 2010 @@ -1,0 +1,255 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS BDA Proxy + * FILE: dll/directx/bdaplgin/classfactory.cpp + * PURPOSE: ClassFactory interface + * + * PROGRAMMERS: Johannes Anderwald (janderwald@reactos.org) + */ + +#include "precomp.h" + +const GUID IID_IBDA_DeviceControl = {0xFD0A5AF3, 0xB41D, 0x11d2, {0x9C, 0x95, 0x00, 0xC0, 0x4F, 0x79, 0x71, 0xE0}}; +const GUID IID_IBDA_Topology = {0x79B56888, 0x7FEA, 0x4690, {0xB4, 0x5D, 0x38, 0xFD, 0x3C, 0x78, 0x49, 0xBE}}; + +class CBDADeviceControl : public IBDA_DeviceControl, + public IBDA_Topology +{ +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; + } + + // IBDA_DeviceControl methods + HRESULT STDMETHODCALLTYPE StartChanges( void); + HRESULT STDMETHODCALLTYPE CheckChanges( void); + HRESULT STDMETHODCALLTYPE CommitChanges( void); + HRESULT STDMETHODCALLTYPE GetChangeState(ULONG *pState); + + // IBDA_Topology methods + HRESULT STDMETHODCALLTYPE GetNodeTypes(ULONG *pulcNodeTypes, ULONG ulcNodeTypesMax, ULONG * rgulNodeTypes); + HRESULT STDMETHODCALLTYPE GetNodeDescriptors(ULONG *ulcNodeDescriptors, ULONG ulcNodeDescriptorsMax, BDANODE_DESCRIPTOR * rgNodeDescriptors); + HRESULT STDMETHODCALLTYPE GetNodeInterfaces(ULONG ulNodeType, ULONG *pulcInterfaces, ULONG ulcInterfacesMax, GUID * rgguidInterfaces); + HRESULT STDMETHODCALLTYPE GetPinTypes(ULONG *pulcPinTypes, ULONG ulcPinTypesMax, ULONG *rgulPinTypes); + HRESULT STDMETHODCALLTYPE GetTemplateConnections(ULONG *pulcConnections, ULONG ulcConnectionsMax, BDA_TEMPLATE_CONNECTION * rgConnections); + HRESULT STDMETHODCALLTYPE CreatePin(ULONG ulPinType, ULONG *pulPinId); + HRESULT STDMETHODCALLTYPE DeletePin(ULONG ulPinId); + HRESULT STDMETHODCALLTYPE SetMediaType(ULONG ulPinId, AM_MEDIA_TYPE *pMediaType); + HRESULT STDMETHODCALLTYPE SetMedium(ULONG ulPinId, REGPINMEDIUM *pMedium); + HRESULT STDMETHODCALLTYPE CreateTopology(ULONG ulInputPinId, ULONG ulOutputPinId); + HRESULT STDMETHODCALLTYPE GetControlNode(ULONG ulInputPinId, ULONG ulOutputPinId, ULONG ulNodeType, IUnknown **ppControlNode); + + CBDADeviceControl(HANDLE hFile) : m_Ref(0), m_Handle(hFile){}; + virtual ~CBDADeviceControl(){}; + +protected: + LONG m_Ref; + HANDLE m_Handle; +}; + +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::QueryInterface( + IN REFIID refiid, + OUT PVOID* Output) +{ + WCHAR Buffer[MAX_PATH]; + LPOLESTR lpstr; + + *Output = NULL; + + if (IsEqualGUID(refiid, IID_IUnknown)) + { + *Output = PVOID(this); + reinterpret_cast<IUnknown*>(*Output)->AddRef(); + return NOERROR; + } + if (IsEqualGUID(refiid, IID_IBDA_DeviceControl)) + { + *Output = (IBDA_DeviceControl*)(this); + reinterpret_cast<IBDA_DeviceControl*>(*Output)->AddRef(); + return NOERROR; + } + + if (IsEqualGUID(refiid, IID_IBDA_Topology)) + { + *Output = (IBDA_Topology*)(this); + reinterpret_cast<IBDA_Topology*>(*Output)->AddRef(); + return NOERROR; + } + + StringFromCLSID(refiid, &lpstr); + swprintf(Buffer, L"CBDADeviceControl::QueryInterface: NoInterface for %s", lpstr); + OutputDebugStringW(Buffer); + CoTaskMemFree(lpstr); + + return E_NOINTERFACE; +} + + +//------------------------------------------------------------------- +// IBDA_DeviceControl methods +// +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::StartChanges( void) +{ + OutputDebugStringW(L"CBDADeviceControl::StartChanges: NotImplemented\n"); + return E_NOTIMPL; +} + + +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::CheckChanges( void) +{ + OutputDebugStringW(L"CBDADeviceControl::CheckChanges: NotImplemented\n"); + return E_NOTIMPL; +} + + +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::CommitChanges( void) +{ + OutputDebugStringW(L"CBDADeviceControl::CommitChanges: NotImplemented\n"); + return E_NOTIMPL; +} + +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::GetChangeState(ULONG *pState) +{ + OutputDebugStringW(L"CBDADeviceControl::GetChangeState: NotImplemented\n"); + return E_NOTIMPL; +} + +//------------------------------------------------------------------- +// IBDA_Topology methods +// +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::GetNodeTypes(ULONG *pulcNodeTypes, ULONG ulcNodeTypesMax, ULONG * rgulNodeTypes) +{ + OutputDebugStringW(L"CBDADeviceControl::GetNodeTypes: NotImplemented\n"); + return E_NOTIMPL; +} + +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::GetNodeDescriptors(ULONG *ulcNodeDescriptors, ULONG ulcNodeDescriptorsMax, BDANODE_DESCRIPTOR * rgNodeDescriptors) +{ + OutputDebugStringW(L"CBDADeviceControl::GetNodeDescriptors: NotImplemented\n"); + return E_NOTIMPL; +} + +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::GetNodeInterfaces(ULONG ulNodeType, ULONG *pulcInterfaces, ULONG ulcInterfacesMax, GUID * rgguidInterfaces) +{ + OutputDebugStringW(L"CBDADeviceControl::GetNodeInterfaces: NotImplemented\n"); + return E_NOTIMPL; +} + +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::GetPinTypes(ULONG *pulcPinTypes, ULONG ulcPinTypesMax, ULONG *rgulPinTypes) +{ + OutputDebugStringW(L"CBDADeviceControl::GetPinTypes: NotImplemented\n"); + return E_NOTIMPL; +} + +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::GetTemplateConnections(ULONG *pulcConnections, ULONG ulcConnectionsMax, BDA_TEMPLATE_CONNECTION * rgConnections) +{ + OutputDebugStringW(L"CBDADeviceControl::GetTemplateConnections: NotImplemented\n"); + return E_NOTIMPL; +} + +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::CreatePin(ULONG ulPinType, ULONG *pulPinId) +{ + OutputDebugStringW(L"CBDADeviceControl::CreatePin: NotImplemented\n"); + return E_NOTIMPL; +} + +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::DeletePin(ULONG ulPinId) +{ + OutputDebugStringW(L"CBDADeviceControl::DeletePin: NotImplemented\n"); + return E_NOTIMPL; +} + +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::SetMediaType(ULONG ulPinId, AM_MEDIA_TYPE *pMediaType) +{ + OutputDebugStringW(L"CBDADeviceControl::SetMediaType: NotImplemented\n"); + return E_NOTIMPL; +} + +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::SetMedium(ULONG ulPinId, REGPINMEDIUM *pMedium) +{ + OutputDebugStringW(L"CBDADeviceControl::SetMedium: NotImplemented\n"); + return E_NOTIMPL; +} + +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::CreateTopology(ULONG ulInputPinId, ULONG ulOutputPinId){ + OutputDebugStringW(L"CBDADeviceControl::CreateTopology: NotImplemented\n"); + return E_NOTIMPL; +} + + +HRESULT +STDMETHODCALLTYPE +CBDADeviceControl::GetControlNode(ULONG ulInputPinId, ULONG ulOutputPinId, ULONG ulNodeType, IUnknown **ppControlNode) +{ + OutputDebugStringW(L"CBDADeviceControl::GetControlNode: NotImplemented\n"); + return E_NOTIMPL; +} + +HRESULT +WINAPI +CBDADeviceControl_fnConstructor( + IUnknown * pUnkOuter, + REFIID riid, + LPVOID * ppv) +{ + CBDADeviceControl * handler = new CBDADeviceControl(NULL); + + OutputDebugStringW(L"CBDADeviceControl_fnConstructor\n"); + + if (!handler) + return E_OUTOFMEMORY; + + if (FAILED(handler->QueryInterface(riid, ppv))) + { + /* not supported */ + delete handler; + return E_NOINTERFACE; + } + + return NOERROR; +}
Propchange: trunk/reactos/dll/directx/bdaplgin/devicecontrol.cpp ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/dll/directx/bdaplgin/pincontrol.cpp URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/bdaplgin/pincon... ============================================================================== --- trunk/reactos/dll/directx/bdaplgin/pincontrol.cpp (added) +++ trunk/reactos/dll/directx/bdaplgin/pincontrol.cpp [iso-8859-1] Tue Feb 23 18:40:34 2010 @@ -1,0 +1,120 @@ +/* + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS BDA Proxy + * FILE: dll/directx/bdaplgin/classfactory.cpp + * PURPOSE: ClassFactory interface + * + * PROGRAMMERS: Johannes Anderwald (janderwald@reactos.org) + */ + +#include "precomp.h" + +const GUID IID_IBDA_PinControl = {0x0DED49D5, 0xA8B7, 0x4d5d, {0x97, 0xA1, 0x12, 0xB0, 0xC1, 0x95, 0x87, 0x4D}}; + +class CBDAPinControl : public IBDA_PinControl +{ +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; + } + // IBDA_PinControl methods + HRESULT STDMETHODCALLTYPE GetPinID(ULONG *pulPinID); + HRESULT STDMETHODCALLTYPE GetPinType(ULONG *pulPinType); + HRESULT STDMETHODCALLTYPE RegistrationContext(ULONG *pulRegistrationCtx); + + + CBDAPinControl(HANDLE hFile) : m_Ref(0), m_Handle(hFile){}; + virtual ~CBDAPinControl(){}; + +protected: + LONG m_Ref; + HANDLE m_Handle; + +}; + +HRESULT +STDMETHODCALLTYPE +CBDAPinControl::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_IBDA_PinControl)) + { + *Output = (IBDA_PinControl*)(this); + reinterpret_cast<IBDA_PinControl*>(*Output)->AddRef(); + return NOERROR; + } + OutputDebugStringW(L"CBDAPinControl::QueryInterface: NoInterface!!!\n"); + return E_NOINTERFACE; +} +//------------------------------------------------------------------- +// IBDA_PinControl methods +// +HRESULT +STDMETHODCALLTYPE +CBDAPinControl::GetPinID(ULONG *pulPinID) +{ + OutputDebugStringW(L"CBDAPinControl::GetPinID: NotImplemented\n"); + return E_NOTIMPL; +} + +HRESULT +STDMETHODCALLTYPE +CBDAPinControl::GetPinType(ULONG *pulPinType) +{ + OutputDebugStringW(L"CBDAPinControl::GetPinType: NotImplemented\n"); + return E_NOTIMPL; +} + +HRESULT +STDMETHODCALLTYPE +CBDAPinControl::RegistrationContext(ULONG *pulRegistrationCtx) +{ + OutputDebugStringW(L"CBDAPinControl::RegistrationContext: NotImplemented\n"); + return E_NOTIMPL; +} + +HRESULT +WINAPI +CBDAPinControl_fnConstructor( + IUnknown * pUnkOuter, + REFIID riid, + LPVOID * ppv) +{ + CBDAPinControl * handler = new CBDAPinControl(NULL); + + OutputDebugStringW(L"CBDAPinControl_fnConstructor"); + + if (!handler) + return E_OUTOFMEMORY; + + if (FAILED(handler->QueryInterface(riid, ppv))) + { + /* not supported */ + delete handler; + return E_NOINTERFACE; + } + + return NOERROR; +}
Propchange: trunk/reactos/dll/directx/bdaplgin/pincontrol.cpp ------------------------------------------------------------------------------ svn:eol-style = native
Added: trunk/reactos/dll/directx/bdaplgin/precomp.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/bdaplgin/precom... ============================================================================== --- trunk/reactos/dll/directx/bdaplgin/precomp.h (added) +++ trunk/reactos/dll/directx/bdaplgin/precomp.h [iso-8859-1] Tue Feb 23 18:40:34 2010 @@ -1,0 +1,51 @@ +#ifndef PRECOMP_H__ +#define PRECOMP_H__ + +#define BUILDING_KS +#define _KSDDK_ +#include <dshow.h> +//#include <streams.h> +#include <ks.h> +#define __STREAMS__ +#include <ksproxy.h> +#include <stdio.h> +#include <wchar.h> +#include <tchar.h> +#include <uuids.h> +#include <bdaiface.h> +#include <bdamedia.h> + +typedef HRESULT (CALLBACK *LPFNCREATEINSTANCE)(IUnknown* pUnkOuter, REFIID riid, LPVOID* ppvObject); + +typedef struct +{ + const GUID* riid; + LPFNCREATEINSTANCE lpfnCI; +} INTERFACE_TABLE; + +/* classfactory.cpp */ +IClassFactory * +CClassFactory_fnConstructor( + LPFNCREATEINSTANCE lpfnCI, + PLONG pcRefDll, + IID * riidInst); + +/* devicecontrol.cpp */ +HRESULT +WINAPI +CBDADeviceControl_fnConstructor( + IUnknown * pUnkOuter, + REFIID riid, + LPVOID * ppv); + + +/* pincontrol.cpp */ +HRESULT +WINAPI +CBDAPinControl_fnConstructor( + IUnknown * pUnkOuter, + REFIID riid, + LPVOID * ppv); + + +#endif
Propchange: trunk/reactos/dll/directx/bdaplgin/precomp.h ------------------------------------------------------------------------------ svn:eol-style = native
Modified: trunk/reactos/dll/directx/directx.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/directx.rbuild?... ============================================================================== --- trunk/reactos/dll/directx/directx.rbuild [iso-8859-1] (original) +++ trunk/reactos/dll/directx/directx.rbuild [iso-8859-1] Tue Feb 23 18:40:34 2010 @@ -3,6 +3,9 @@ <group xmlns:xi="http://www.w3.org/2001/XInclude"> <directory name="amstream"> <xi:include href="amstream/amstream.rbuild" /> + </directory> + <directory name="bdaplgin"> + <xi:include href="bdaplgin/bdaplgin.rbuild" /> </directory> <directory name="d3d8thk"> <xi:include href="d3d8thk/d3d8thk.rbuild" />
Modified: trunk/reactos/include/dxsdk/bdamedia.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/bdamedia.h?re... ============================================================================== --- trunk/reactos/include/dxsdk/bdamedia.h [iso-8859-1] (original) +++ trunk/reactos/include/dxsdk/bdamedia.h [iso-8859-1] Tue Feb 23 18:40:34 2010 @@ -201,4 +201,58 @@ NULL, 0, NULL, NULL, 0)
+/* ------------------------------------------------------------ + BDA Change Sync Method Set {FD0A5AF3-B41D-11d2-9C95-00C04F7971E0} +*/ + +#define STATIC_KSMETHODSETID_BdaChangeSync \ + 0xfd0a5af3, 0xb41d, 0x11d2, {0x9c, 0x95, 0x0, 0xc0, 0x4f, 0x79, 0x71, 0xe0} +DEFINE_GUIDSTRUCT("FD0A5AF3-B41D-11d2-9C95-00C04F7971E0", KSMETHODSETID_BdaChangeSync); +#define KSMETHODSETID_BdaChangeSync DEFINE_GUIDNAMED(KSMETHODSETID_BdaChangeSync) + +typedef enum { + KSMETHOD_BDA_START_CHANGES = 0, + KSMETHOD_BDA_CHECK_CHANGES, + KSMETHOD_BDA_COMMIT_CHANGES, + KSMETHOD_BDA_GET_CHANGE_STATE +} KSMETHOD_BDA_CHANGE_SYNC; + +#define DEFINE_KSMETHOD_ITEM_BDA_START_CHANGES(MethodHandler, SupportHandler)\ + DEFINE_KSMETHOD_ITEM(\ + KSMETHOD_BDA_START_CHANGES,\ + KSMETHOD_TYPE_NONE,\ + (MethodHandler),\ + sizeof(KSMETHOD),\ + 0,\ + SupportHandler) + +#define DEFINE_KSMETHOD_ITEM_BDA_CHECK_CHANGES(MethodHandler, SupportHandler)\ + DEFINE_KSMETHOD_ITEM(\ + KSMETHOD_BDA_CHECK_CHANGES,\ + KSMETHOD_TYPE_NONE,\ + (MethodHandler),\ + sizeof(KSMETHOD),\ + 0,\ + SupportHandler) + +#define DEFINE_KSMETHOD_ITEM_BDA_COMMIT_CHANGES(MethodHandler, SupportHandler)\ + DEFINE_KSMETHOD_ITEM(\ + KSMETHOD_BDA_COMMIT_CHANGES,\ + KSMETHOD_TYPE_NONE,\ + (MethodHandler),\ + sizeof(KSMETHOD),\ + 0,\ + SupportHandler) + +#define DEFINE_KSMETHOD_ITEM_BDA_GET_CHANGE_STATE(MethodHandler, SupportHandler)\ + DEFINE_KSMETHOD_ITEM(\ + KSMETHOD_BDA_GET_CHANGE_STATE,\ + KSMETHOD_TYPE_READ,\ + (MethodHandler),\ + sizeof(KSMETHOD),\ + 0,\ + SupportHandler) + + + #endif