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=456…
==============================================================================
--- 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/bdapl…
==============================================================================
--- 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(a)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/bdapl…
==============================================================================
--- 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/bdapl…
==============================================================================
--- 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/class…
==============================================================================
--- 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(a)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/devic…
==============================================================================
--- 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(a)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/pinco…
==============================================================================
--- 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(a)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/preco…
==============================================================================
--- 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?r…
==============================================================================
--- 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