[ros-diffs] [cwittich] 45130: [QUARTZ] update quartz to wine 1.1.36

cwittich at svn.reactos.org cwittich at svn.reactos.org
Mon Jan 18 15:28:36 CET 2010


Author: cwittich
Date: Mon Jan 18 15:28:36 2010
New Revision: 45130

URL: http://svn.reactos.org/svn/reactos?rev=45130&view=rev
Log:
[QUARTZ]
update quartz to wine 1.1.36

Added:
    trunk/reactos/dll/directx/quartz/quartz_strmif.idl   (with props)
Modified:
    trunk/reactos/dll/directx/quartz/filtergraph.c
    trunk/reactos/dll/directx/quartz/main.c
    trunk/reactos/dll/directx/quartz/mpegsplit.c
    trunk/reactos/dll/directx/quartz/nullrenderer.c
    trunk/reactos/dll/directx/quartz/quartz.rbuild
    trunk/reactos/dll/directx/quartz/regsvr.c
    trunk/reactos/include/dxsdk/axextend.idl

Modified: trunk/reactos/dll/directx/quartz/filtergraph.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/quartz/filtergraph.c?rev=45130&r1=45129&r2=45130&view=diff
==============================================================================
--- trunk/reactos/dll/directx/quartz/filtergraph.c [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/quartz/filtergraph.c [iso-8859-1] Mon Jan 18 15:28:36 2010
@@ -2557,28 +2557,33 @@
     MediaSeeking_GetPreroll
 };
 
+static inline IFilterGraphImpl *impl_from_IMediaPosition( IMediaPosition *iface )
+{
+    return (IFilterGraphImpl *)((char*)iface - FIELD_OFFSET(IFilterGraphImpl, IMediaPosition_vtbl));
+}
+
 /*** IUnknown methods ***/
-static HRESULT WINAPI MediaPosition_QueryInterface(IMediaPosition* iface, REFIID riid, void** ppvObj){
-    ICOM_THIS_MULTI(IFilterGraphImpl, IMediaPosition_vtbl, iface);
+static HRESULT WINAPI MediaPosition_QueryInterface(IMediaPosition* iface, REFIID riid, void** ppvObj)
+{
+    IFilterGraphImpl *This = impl_from_IMediaPosition( iface );
 
     TRACE("(%p/%p)->(%s (%p), %p)\n", This, iface, debugstr_guid(riid), riid, ppvObj);
-
     return Filtergraph_QueryInterface(This, riid, ppvObj);
 }
 
-static ULONG WINAPI MediaPosition_AddRef(IMediaPosition *iface){
-    ICOM_THIS_MULTI(IFilterGraphImpl, IMediaPosition_vtbl, iface);
+static ULONG WINAPI MediaPosition_AddRef(IMediaPosition *iface)
+{
+    IFilterGraphImpl *This = impl_from_IMediaPosition( iface );
 
     TRACE("(%p/%p)->()\n", This, iface);
-
     return Filtergraph_AddRef(This);
 }
 
-static ULONG WINAPI MediaPosition_Release(IMediaPosition *iface){
-    ICOM_THIS_MULTI(IFilterGraphImpl, IMediaPosition_vtbl, iface);
+static ULONG WINAPI MediaPosition_Release(IMediaPosition *iface)
+{
+    IFilterGraphImpl *This = impl_from_IMediaPosition( iface );
 
     TRACE("(%p/%p)->()\n", This, iface);
-
     return Filtergraph_Release(This);
 }
 
@@ -2604,31 +2609,51 @@
 }
 
 /*** IMediaPosition methods ***/
-static HRESULT WINAPI MediaPosition_get_Duration(IMediaPosition * iface, REFTIME *plength){
-    FIXME("(%p)->(%p) stub!\n", iface, plength);
-    return E_NOTIMPL;
-}
-
-static HRESULT WINAPI MediaPosition_put_CurrentPosition(IMediaPosition * iface, REFTIME llTime){
-    ICOM_THIS_MULTI(IFilterGraphImpl, IMediaPosition_vtbl, iface);
+static HRESULT WINAPI MediaPosition_get_Duration(IMediaPosition * iface, REFTIME *plength)
+{
+    LONGLONG duration;
+    IFilterGraphImpl *This = impl_from_IMediaPosition( iface );
+    HRESULT hr = IMediaSeeking_GetDuration( (IMediaSeeking *)&This->IMediaSeeking_vtbl, &duration );
+    if (SUCCEEDED(hr)) *plength = duration;
+    return hr;
+}
+
+static HRESULT WINAPI MediaPosition_put_CurrentPosition(IMediaPosition * iface, REFTIME llTime)
+{
+    IFilterGraphImpl *This = impl_from_IMediaPosition( iface );
     LONGLONG reftime = llTime;
 
-    return IMediaSeeking_SetPositions((IMediaSeeking *)&This->IMediaSeeking_vtbl, &reftime, AM_SEEKING_AbsolutePositioning, NULL, AM_SEEKING_NoPositioning);
-}
-
-static HRESULT WINAPI MediaPosition_get_CurrentPosition(IMediaPosition * iface, REFTIME *pllTime){
-    FIXME("(%p)->(%p) stub!\n", iface, pllTime);
-    return E_NOTIMPL;
-}
-
-static HRESULT WINAPI MediaPosition_get_StopTime(IMediaPosition * iface, REFTIME *pllTime){
-    FIXME("(%p)->(%p) stub!\n", iface, pllTime);
-    return E_NOTIMPL;
-}
-
-static HRESULT WINAPI MediaPosition_put_StopTime(IMediaPosition * iface, REFTIME llTime){
-    FIXME("(%p)->(%f) stub!\n", iface, llTime);
-    return E_NOTIMPL;
+    return IMediaSeeking_SetPositions((IMediaSeeking *)&This->IMediaSeeking_vtbl,
+                                      &reftime, AM_SEEKING_AbsolutePositioning,
+                                      NULL, AM_SEEKING_NoPositioning);
+}
+
+static HRESULT WINAPI MediaPosition_get_CurrentPosition(IMediaPosition * iface, REFTIME *pllTime)
+{
+    IFilterGraphImpl *This = impl_from_IMediaPosition( iface );
+    LONGLONG pos;
+    HRESULT hr = IMediaSeeking_GetCurrentPosition( (IMediaSeeking *)&This->IMediaSeeking_vtbl, &pos );
+    if (SUCCEEDED(hr)) *pllTime = pos;
+    return hr;
+}
+
+static HRESULT WINAPI MediaPosition_get_StopTime(IMediaPosition * iface, REFTIME *pllTime)
+{
+    IFilterGraphImpl *This = impl_from_IMediaPosition( iface );
+    LONGLONG pos;
+    HRESULT hr = IMediaSeeking_GetStopPosition( (IMediaSeeking *)&This->IMediaSeeking_vtbl, &pos );
+    if (SUCCEEDED(hr)) *pllTime = pos;
+    return hr;
+}
+
+static HRESULT WINAPI MediaPosition_put_StopTime(IMediaPosition * iface, REFTIME llTime)
+{
+    IFilterGraphImpl *This = impl_from_IMediaPosition( iface );
+    LONGLONG reftime = llTime;
+
+    return IMediaSeeking_SetPositions((IMediaSeeking *)&This->IMediaSeeking_vtbl,
+                                      NULL, AM_SEEKING_NoPositioning,
+                                      &reftime, AM_SEEKING_AbsolutePositioning);
 }
 
 static HRESULT WINAPI MediaPosition_get_PrerollTime(IMediaPosition * iface, REFTIME *pllTime){
@@ -2641,14 +2666,16 @@
     return E_NOTIMPL;
 }
 
-static HRESULT WINAPI MediaPosition_put_Rate(IMediaPosition * iface, double dRate){
-    FIXME("(%p)->(%f) stub!\n", iface, dRate);
-    return E_NOTIMPL;
-}
-
-static HRESULT WINAPI MediaPosition_get_Rate(IMediaPosition * iface, double *pdRate){
-    FIXME("(%p)->(%p) stub!\n", iface, pdRate);
-    return E_NOTIMPL;
+static HRESULT WINAPI MediaPosition_put_Rate(IMediaPosition * iface, double dRate)
+{
+    IFilterGraphImpl *This = impl_from_IMediaPosition( iface );
+    return IMediaSeeking_SetRate((IMediaSeeking *)&This->IMediaSeeking_vtbl, dRate);
+}
+
+static HRESULT WINAPI MediaPosition_get_Rate(IMediaPosition * iface, double *pdRate)
+{
+    IFilterGraphImpl *This = impl_from_IMediaPosition( iface );
+    return IMediaSeeking_GetRate((IMediaSeeking *)&This->IMediaSeeking_vtbl, pdRate);
 }
 
 static HRESULT WINAPI MediaPosition_CanSeekForward(IMediaPosition * iface, LONG *pCanSeekForward){
@@ -4872,6 +4899,9 @@
 
     TRACE("(%p/%p)->(%d, %p)\n", This, iface, msTimeout, pEvCode);
 
+    if (This->state != State_Running)
+        return VFW_E_WRONG_STATE;
+
     if (WaitForSingleObject(This->hEventCompletion, msTimeout) == WAIT_OBJECT_0)
     {
 	*pEvCode = This->CompletionStatus;

Modified: trunk/reactos/dll/directx/quartz/main.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/quartz/main.c?rev=45130&r1=45129&r2=45130&view=diff
==============================================================================
--- trunk/reactos/dll/directx/quartz/main.c [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/quartz/main.c [iso-8859-1] Mon Jan 18 15:28:36 2010
@@ -28,19 +28,16 @@
 
 WINE_DEFAULT_DEBUG_CHANNEL(quartz);
 
+extern HRESULT WINAPI QUARTZ_DllGetClassObject(REFCLSID, REFIID, LPVOID *) DECLSPEC_HIDDEN;
+extern HRESULT WINAPI QUARTZ_DllCanUnloadNow(void) DECLSPEC_HIDDEN;
+extern BOOL WINAPI QUARTZ_DllMain(HINSTANCE, DWORD, LPVOID) DECLSPEC_HIDDEN;
+
 static DWORD dll_ref = 0;
 
 /* For the moment, do nothing here. */
 BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
 {
-    switch(fdwReason) {
-        case DLL_PROCESS_ATTACH:
-            DisableThreadLibraryCalls(hInstDLL);
-	    break;
-	case DLL_PROCESS_DETACH:
-	    break;
-    }
-    return TRUE;
+    return QUARTZ_DllMain( hInstDLL, fdwReason, lpv );
 }
 
 /******************************************************************************
@@ -172,36 +169,29 @@
 HRESULT WINAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
 {
     unsigned int i;
-    IClassFactoryImpl *factory;
-    
+
     TRACE("(%s,%s,%p)\n", debugstr_guid(rclsid), debugstr_guid(riid), ppv);
-    
-    if ( !IsEqualGUID( &IID_IClassFactory, riid )
-	 && ! IsEqualGUID( &IID_IUnknown, riid) )
-	return E_NOINTERFACE;
-
-    for (i=0; i < sizeof(object_creation)/sizeof(object_creation[0]); i++)
+
+    if (IsEqualGUID( &IID_IClassFactory, riid ) || IsEqualGUID( &IID_IUnknown, riid))
     {
-	if (IsEqualGUID(object_creation[i].clsid, rclsid))
-	    break;
+        for (i=0; i < sizeof(object_creation)/sizeof(object_creation[0]); i++)
+        {
+            if (IsEqualGUID(object_creation[i].clsid, rclsid))
+            {
+                IClassFactoryImpl *factory = CoTaskMemAlloc(sizeof(*factory));
+                if (factory == NULL) return E_OUTOFMEMORY;
+
+                factory->ITF_IClassFactory.lpVtbl = &DSCF_Vtbl;
+                factory->ref = 1;
+
+                factory->pfnCreateInstance = object_creation[i].pfnCreateInstance;
+
+                *ppv = &factory->ITF_IClassFactory;
+                return S_OK;
+            }
+        }
     }
-
-    if (i == sizeof(object_creation)/sizeof(object_creation[0]))
-    {
-	FIXME("%s: no class found.\n", debugstr_guid(rclsid));
-	return CLASS_E_CLASSNOTAVAILABLE;
-    }
-
-    factory = CoTaskMemAlloc(sizeof(*factory));
-    if (factory == NULL) return E_OUTOFMEMORY;
-
-    factory->ITF_IClassFactory.lpVtbl = &DSCF_Vtbl;
-    factory->ref = 1;
-
-    factory->pfnCreateInstance = object_creation[i].pfnCreateInstance;
-
-    *ppv = &(factory->ITF_IClassFactory);
-    return S_OK;
+    return QUARTZ_DllGetClassObject( rclsid, riid, ppv );
 }
 
 /***********************************************************************
@@ -209,7 +199,8 @@
  */
 HRESULT WINAPI DllCanUnloadNow(void)
 {
-    return dll_ref != 0 ? S_FALSE : S_OK;
+    if (dll_ref) return S_FALSE;
+    return QUARTZ_DllCanUnloadNow();
 }
 
 
@@ -224,6 +215,49 @@
 #include "uuids.h"
     { { 0, 0, 0, {0, 0, 0, 0, 0, 0, 0, 0} }, NULL }
 };
+
+/***********************************************************************
+ *              proxies
+ */
+HRESULT CALLBACK ICaptureGraphBuilder_FindInterface_Proxy( ICaptureGraphBuilder *This,
+                                                           const GUID *pCategory,
+                                                           IBaseFilter *pf,
+                                                           REFIID riid,
+                                                           void **ppint )
+{
+    return ICaptureGraphBuilder_RemoteFindInterface_Proxy( This, pCategory, pf,
+                                                           riid, (IUnknown **)ppint );
+}
+
+HRESULT __RPC_STUB ICaptureGraphBuilder_FindInterface_Stub( ICaptureGraphBuilder *This,
+                                                            const GUID *pCategory,
+                                                            IBaseFilter *pf,
+                                                            REFIID riid,
+                                                            IUnknown **ppint )
+{
+    return ICaptureGraphBuilder_FindInterface( This, pCategory, pf, riid, (void **)ppint );
+}
+
+HRESULT CALLBACK ICaptureGraphBuilder2_FindInterface_Proxy( ICaptureGraphBuilder2 *This,
+                                                            const GUID *pCategory,
+                                                            const GUID *pType,
+                                                            IBaseFilter *pf,
+                                                            REFIID riid,
+                                                            void **ppint )
+{
+    return ICaptureGraphBuilder2_RemoteFindInterface_Proxy( This, pCategory, pType,
+                                                            pf, riid, (IUnknown **)ppint );
+}
+
+HRESULT __RPC_STUB ICaptureGraphBuilder2_FindInterface_Stub( ICaptureGraphBuilder2 *This,
+                                                             const GUID *pCategory,
+                                                             const GUID *pType,
+                                                             IBaseFilter *pf,
+                                                             REFIID riid,
+                                                             IUnknown **ppint )
+{
+    return ICaptureGraphBuilder2_FindInterface( This, pCategory, pType, pf, riid, (void **)ppint );
+}
 
 /***********************************************************************
  *              qzdebugstr_guid (internal)

Modified: trunk/reactos/dll/directx/quartz/mpegsplit.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/quartz/mpegsplit.c?rev=45130&r1=45129&r2=45130&view=diff
==============================================================================
--- trunk/reactos/dll/directx/quartz/mpegsplit.c [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/quartz/mpegsplit.c [iso-8859-1] Mon Jan 18 15:28:36 2010
@@ -202,20 +202,20 @@
             LONGLONG rtSampleStart = pin->rtNext - MEDIATIME_FROM_BYTES(4);
             LONGLONG rtSampleStop = rtSampleStart + MEDIATIME_FROM_BYTES(length + 4);
 
-            hr = IMemAllocator_GetBuffer(pin->pAlloc, &sample, NULL, NULL, 0);
-
             if (rtSampleStop > pin->rtStop)
                 rtSampleStop = MEDIATIME_FROM_BYTES(ALIGNUP(BYTES_FROM_MEDIATIME(pin->rtStop), pin->cbAlign));
 
-            IMediaSample_SetTime(sample, &rtSampleStart, &rtSampleStop);
-            IMediaSample_SetPreroll(sample, 0);
-            IMediaSample_SetDiscontinuity(sample, 0);
-            IMediaSample_SetSyncPoint(sample, 1);
-            pin->rtCurrent = rtSampleStart;
-            pin->rtNext = rtSampleStop;
-
+            hr = IMemAllocator_GetBuffer(pin->pAlloc, &sample, NULL, NULL, 0);
             if (SUCCEEDED(hr))
+            {
+                IMediaSample_SetTime(sample, &rtSampleStart, &rtSampleStop);
+                IMediaSample_SetPreroll(sample, 0);
+                IMediaSample_SetDiscontinuity(sample, 0);
+                IMediaSample_SetSyncPoint(sample, 1);
+                pin->rtCurrent = rtSampleStart;
+                pin->rtNext = rtSampleStop;
                 hr = IAsyncReader_Request(pin->pReader, sample, 0);
+            }
             if (FAILED(hr))
                 FIXME("o_Ox%08x\n", hr);
         }

Modified: trunk/reactos/dll/directx/quartz/nullrenderer.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/quartz/nullrenderer.c?rev=45130&r1=45129&r2=45130&view=diff
==============================================================================
--- trunk/reactos/dll/directx/quartz/nullrenderer.c [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/quartz/nullrenderer.c [iso-8859-1] Mon Jan 18 15:28:36 2010
@@ -43,6 +43,7 @@
 WINE_DEFAULT_DEBUG_CHANNEL(quartz);
 
 static const WCHAR wcsInputPinName[] = {'i','n','p','u','t',' ','p','i','n',0};
+static const WCHAR wcsAltInputPinName[] = {'I','n',0};
 
 static const IBaseFilterVtbl NullRenderer_Vtbl;
 static const IUnknownVtbl IInner_VTable;
@@ -472,11 +473,17 @@
 
     TRACE("(%p/%p)->(%p,%p)\n", This, iface, debugstr_w(Id), ppPin);
 
-    FIXME("NullRenderer::FindPin(...)\n");
-
-    /* FIXME: critical section */
-
-    return E_NOTIMPL;
+    if (!Id || !ppPin)
+        return E_POINTER;
+
+    if (!lstrcmpiW(Id,wcsInputPinName) || !lstrcmpiW(Id,wcsAltInputPinName))
+    {
+        *ppPin = (IPin *)This->pInputPin;
+        IPin_AddRef(*ppPin);
+        return S_OK;
+    }
+    *ppPin = NULL;
+    return VFW_E_NOT_FOUND;
 }
 
 static HRESULT WINAPI NullRenderer_QueryFilterInfo(IBaseFilter * iface, FILTER_INFO *pInfo)

Modified: trunk/reactos/dll/directx/quartz/quartz.rbuild
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/quartz/quartz.rbuild?rev=45130&r1=45129&r2=45130&view=diff
==============================================================================
--- trunk/reactos/dll/directx/quartz/quartz.rbuild [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/quartz/quartz.rbuild [iso-8859-1] Mon Jan 18 15:28:36 2010
@@ -7,6 +7,10 @@
 	<include base="quartz">.</include>
 	<include base="ReactOS">include/reactos/wine</include>
 	<redefine name="_WIN32_WINNT">0x600</redefine>
+	<define name="__WINESRC__" />
+	<define name="ENTRY_PREFIX">QUARTZ_</define>
+	<define name="REGISTER_PROXY_DLL"/>
+	<define name="PROXY_DELEGATION"/>
 	<library>wine</library>
 	<library>uuid</library>
 	<library>advapi32</library>
@@ -21,6 +25,9 @@
 	<library>msvfw32</library>
 	<library>msacm32</library>
 	<library>ntdll</library>
+	<library>quartz_proxy</library>
+	<library>rpcrt4</library>
+	<library>pseh</library>
 	<file>avidec.c</file>
 	<file>acmwrapper.c</file>
 	<file>waveparser.c</file>
@@ -47,3 +54,10 @@
 	<file>avisplit.c</file>
 	<file>version.rc</file>
 </module>
+<module name="quartz_proxy" type="rpcproxy" allowwarnings="true">
+	<define name="__WINESRC__" />
+	<define name="ENTRY_PREFIX">QUARTZ_</define>
+	<define name="REGISTER_PROXY_DLL"/>
+	<define name="PROXY_DELEGATION"/>
+	<file>quartz_strmif.idl</file>
+</module>

Added: trunk/reactos/dll/directx/quartz/quartz_strmif.idl
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/quartz/quartz_strmif.idl?rev=45130&view=auto
==============================================================================
--- trunk/reactos/dll/directx/quartz/quartz_strmif.idl (added)
+++ trunk/reactos/dll/directx/quartz/quartz_strmif.idl [iso-8859-1] Mon Jan 18 15:28:36 2010
@@ -1,0 +1,22 @@
+/*
+ * Copyright 2009 Alexandre Julliard
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+/* just a wrapper for strmif.idl */
+
+cpp_quote("#include <wingdi.h>")
+#include "strmif.idl"

Propchange: trunk/reactos/dll/directx/quartz/quartz_strmif.idl
------------------------------------------------------------------------------
    svn:eol-style = native

Modified: trunk/reactos/dll/directx/quartz/regsvr.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/directx/quartz/regsvr.c?rev=45130&r1=45129&r2=45130&view=diff
==============================================================================
--- trunk/reactos/dll/directx/quartz/regsvr.c [iso-8859-1] (original)
+++ trunk/reactos/dll/directx/quartz/regsvr.c [iso-8859-1] Mon Jan 18 15:28:36 2010
@@ -901,56 +901,6 @@
  */
 
 static struct regsvr_interface const interface_list[] = {
-    {   &IID_IFilterGraph,
-	"IFilterGraph",
-	NULL,
-	11,
-	NULL,
-	&CLSID_PSFactoryBuffer
-    },
-    {   &IID_IFilterGraph2,
-	"IFilterGraph2",
-	NULL,
-	21,
-	NULL,
-	&CLSID_PSFactoryBuffer
-    },
-    {   &IID_IFilterMapper,
-	"IFilterMapper",
-	NULL,
-	11,
-	NULL,
-	&CLSID_PSFactoryBuffer
-    },
-    {   &IID_IFilterMapper2,
-	"IFilterMapper2",
-	NULL,
-	7,
-	NULL,
-	&CLSID_PSFactoryBuffer
-    },
-    /* FIXME:
-    {   &IID_SeekingPassThru,
-	"ISeekingPassThru",
-	NULL,
-	4,
-	NULL,
-	&CLSID_PSFactoryBuffer
-    },
-    {   &IID_AsyncReader,
-	"IAsyncReader",
-	NULL,
-	11,
-	NULL,
-	&CLSID_PSFactoryBuffer
-    },
-    {   &IID_WAVEParser,
-	"IWAVEParser",
-	NULL,
-	11,
-	NULL,
-	&CLSID_PSFactoryBuffer
-    },*/
     { NULL }			/* list terminator */
 };
 
@@ -1213,6 +1163,9 @@
     { NULL }		/* list terminator */
 };
 
+extern HRESULT WINAPI QUARTZ_DllRegisterServer(void) DECLSPEC_HIDDEN;
+extern HRESULT WINAPI QUARTZ_DllUnregisterServer(void) DECLSPEC_HIDDEN;
+
 /***********************************************************************
  *		DllRegisterServer (QUARTZ.@)
  */
@@ -1222,7 +1175,9 @@
 
     TRACE("\n");
 
-    hr = register_coclasses(coclass_list);
+    hr = QUARTZ_DllRegisterServer();
+    if (SUCCEEDED(hr))
+        hr = register_coclasses(coclass_list);
     if (SUCCEEDED(hr))
 	hr = register_interfaces(interface_list);
     if (SUCCEEDED(hr))
@@ -1252,5 +1207,7 @@
 	hr = unregister_mediatypes_parsing(mediatype_parsing_list);
     if (SUCCEEDED(hr))
 	hr = unregister_mediatypes_extension(mediatype_extension_list);
+    if (SUCCEEDED(hr))
+        hr = QUARTZ_DllUnregisterServer();
     return hr;
 }

Modified: trunk/reactos/include/dxsdk/axextend.idl
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/dxsdk/axextend.idl?rev=45130&r1=45129&r2=45130&view=diff
==============================================================================
--- trunk/reactos/include/dxsdk/axextend.idl [iso-8859-1] (original)
+++ trunk/reactos/include/dxsdk/axextend.idl [iso-8859-1] Mon Jan 18 15:28:36 2010
@@ -266,7 +266,7 @@
 
     HRESULT UnregisterFilter
         ( [in] const CLSID *pclsidCategory,
-          [in] const OLECHAR *szInstance,
+          [in] LPCOLESTR szInstance,
           [in] REFCLSID Filter
         );
 
@@ -275,7 +275,7 @@
           [in] LPCWSTR Name,
           [in, out] IMoniker **ppMoniker,
           [in] const CLSID *pclsidCategory,
-          [in] const OLECHAR *szInstance,
+          [in] LPCOLESTR szInstance,
           [in] const REGFILTER2 *prf2
         );
 
@@ -317,7 +317,7 @@
 typedef struct tagQuality
 {
     QualityMessageType Type;
-    long               Proportion;
+    LONG               Proportion;
     REFERENCE_TIME       Late;
     REFERENCE_TIME       TimeStamp;
 } Quality;
@@ -482,7 +482,7 @@
 interface IMediaEventSink : IUnknown
 {
     HRESULT Notify(
-        [in] long EventCode,
+        [in] LONG EventCode,
         [in] LONG_PTR EventParam1,
         [in] LONG_PTR EventParam2
     );
@@ -824,11 +824,11 @@
 ]
 interface IAMVideoProcAmp : IUnknown
 {
-    HRESULT GetRange( [in] long Property, [out] long *pMin, [out] long *pMax,
-                     [out] long *pSteppingDelta, [out] long *pDefault,
-                     [out] long *pCapsFlags);
-    HRESULT Set( [in] long Property, [in] long lValue, [in] long Flags);
-    HRESULT Get( [in] long Property, [out] long *lValue, [out] long *Flags);
+    HRESULT GetRange( [in] LONG Property, [out] LONG *pMin, [out] LONG *pMax,
+                     [out] LONG *pSteppingDelta, [out] LONG *pDefault,
+                     [out] LONG *pCapsFlags);
+    HRESULT Set( [in] LONG Property, [in] LONG lValue, [in] LONG Flags);
+    HRESULT Get( [in] LONG Property, [out] LONG *lValue, [out] LONG *Flags);
 }
 
 




More information about the Ros-diffs mailing list