mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-29 04:13:32 +00:00
[QUARTZ]
update quartz to wine 1.1.36 svn path=/trunk/; revision=45130
This commit is contained in:
@@ -2557,28 +2557,33 @@ static const IMediaSeekingVtbl IMediaSeeking_VTable =
|
||||
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 @@ static HRESULT WINAPI MediaPosition_Invoke(IMediaPosition* iface, DISPID dispIdM
|
||||
}
|
||||
|
||||
/*** 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_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){
|
||||
ICOM_THIS_MULTI(IFilterGraphImpl, IMediaPosition_vtbl, iface);
|
||||
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);
|
||||
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_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){
|
||||
FIXME("(%p)->(%p) stub!\n", iface, pllTime);
|
||||
return E_NOTIMPL;
|
||||
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){
|
||||
FIXME("(%p)->(%f) stub!\n", iface, llTime);
|
||||
return E_NOTIMPL;
|
||||
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 @@ static HRESULT WINAPI MediaPosition_put_PrerollTime(IMediaPosition * iface, REFT
|
||||
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_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){
|
||||
FIXME("(%p)->(%p) stub!\n", iface, pdRate);
|
||||
return E_NOTIMPL;
|
||||
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 @@ static HRESULT WINAPI MediaEvent_WaitForCompletion(IMediaEventEx *iface,
|
||||
|
||||
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;
|
||||
|
||||
@@ -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 @@ static const IClassFactoryVtbl DSCF_Vtbl =
|
||||
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 DllGetClassObject(REFCLSID rclsid, REFIID riid, LPVOID *ppv)
|
||||
*/
|
||||
HRESULT WINAPI DllCanUnloadNow(void)
|
||||
{
|
||||
return dll_ref != 0 ? S_FALSE : S_OK;
|
||||
if (dll_ref) return S_FALSE;
|
||||
return QUARTZ_DllCanUnloadNow();
|
||||
}
|
||||
|
||||
|
||||
@@ -225,6 +216,49 @@ static const struct {
|
||||
{ { 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)
|
||||
*
|
||||
|
||||
@@ -202,20 +202,20 @@ static HRESULT FillBuffer(MPEGSplitterImpl *This, IMediaSample *pCurrentSample)
|
||||
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);
|
||||
}
|
||||
|
||||
@@ -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 @@ static HRESULT WINAPI NullRenderer_FindPin(IBaseFilter * iface, LPCWSTR Id, IPin
|
||||
|
||||
TRACE("(%p/%p)->(%p,%p)\n", This, iface, debugstr_w(Id), ppPin);
|
||||
|
||||
FIXME("NullRenderer::FindPin(...)\n");
|
||||
if (!Id || !ppPin)
|
||||
return E_POINTER;
|
||||
|
||||
/* FIXME: critical section */
|
||||
|
||||
return E_NOTIMPL;
|
||||
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)
|
||||
|
||||
@@ -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>
|
||||
@@ -0,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"
|
||||
@@ -901,56 +901,6 @@ static struct regsvr_coclass const coclass_list[] = {
|
||||
*/
|
||||
|
||||
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 @@ static struct regsvr_filter const filter_list[] = {
|
||||
{ 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 @@ HRESULT WINAPI DllRegisterServer(void)
|
||||
|
||||
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 @@ HRESULT WINAPI DllUnregisterServer(void)
|
||||
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;
|
||||
}
|
||||
|
||||
@@ -266,7 +266,7 @@ interface IFilterMapper2 : IUnknown
|
||||
|
||||
HRESULT UnregisterFilter
|
||||
( [in] const CLSID *pclsidCategory,
|
||||
[in] const OLECHAR *szInstance,
|
||||
[in] LPCOLESTR szInstance,
|
||||
[in] REFCLSID Filter
|
||||
);
|
||||
|
||||
@@ -275,7 +275,7 @@ interface IFilterMapper2 : IUnknown
|
||||
[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 enum tagQualityMessageType
|
||||
typedef struct tagQuality
|
||||
{
|
||||
QualityMessageType Type;
|
||||
long Proportion;
|
||||
LONG Proportion;
|
||||
REFERENCE_TIME Late;
|
||||
REFERENCE_TIME TimeStamp;
|
||||
} Quality;
|
||||
@@ -482,7 +482,7 @@ pointer_default(unique)
|
||||
interface IMediaEventSink : IUnknown
|
||||
{
|
||||
HRESULT Notify(
|
||||
[in] long EventCode,
|
||||
[in] LONG EventCode,
|
||||
[in] LONG_PTR EventParam1,
|
||||
[in] LONG_PTR EventParam2
|
||||
);
|
||||
@@ -824,11 +824,11 @@ typedef enum tagVideoProcAmpFlags
|
||||
]
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user