[ros-diffs] [janderwald] 45677: [DXSDK] - Add BDA Change Sync Method Set [BDAPLGIN] - Add "BDA Device Control Plug-in for MPEG2 based networks" stub

janderwald at svn.reactos.org janderwald at svn.reactos.org
Tue Feb 23 18:40:34 CET 2010


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=45677&r1=45676&r2=45677&view=diff
==============================================================================
--- 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/bdaplgin.cpp?rev=45677&view=auto
==============================================================================
--- 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 at 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/bdaplgin.rbuild?rev=45677&view=auto
==============================================================================
--- 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/bdaplgin.spec?rev=45677&view=auto
==============================================================================
--- 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/classfactory.cpp?p2=trunk/reactos/dll/directx/bdaplgin/classfactory.cpp&p1=trunk/reactos/dll/directx/ksproxy/classfactory.cpp&r1=45668&r2=45677&rev=45677&view=diff
==============================================================================
--- 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 at 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/devicecontrol.cpp?rev=45677&view=auto
==============================================================================
--- 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 at 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/pincontrol.cpp?rev=45677&view=auto
==============================================================================
--- 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 at 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/precomp.h?rev=45677&view=auto
==============================================================================
--- 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?rev=45677&r1=45676&r2=45677&view=diff
==============================================================================
--- 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?rev=45677&r1=45676&r2=45677&view=diff
==============================================================================
--- 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




More information about the Ros-diffs mailing list