diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 6bd94c5e..909c3432 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -52,7 +52,7 @@ usage() # Get the upstream commit sha upstream_commit() { - echo "5b62f89baa82daecd430897de0bb5cab32c5fc5e" + echo "666f7501d03983f84833a7a1952e78fd0650fde6" } # Show version information @@ -6020,7 +6020,7 @@ fi # | * [#41369] Add UIAnimation and stubs interfaces # | # | Modified files: -# | * dlls/uianimation/Makefile.in, dlls/uianimation/main.c, dlls/uianimation/uianimation_typelib.idl +# | * dlls/uianimation/Makefile.in, dlls/uianimation/main.c # | if test "$enable_uianimation_stubs" -eq 1; then patch_apply uianimation-stubs/0002-uianimation-Add-stub-dll.patch diff --git a/patches/uianimation-stubs/0002-uianimation-Add-stub-dll.patch b/patches/uianimation-stubs/0002-uianimation-Add-stub-dll.patch index 2b9161f4..70a9ec9b 100644 --- a/patches/uianimation-stubs/0002-uianimation-Add-stub-dll.patch +++ b/patches/uianimation-stubs/0002-uianimation-Add-stub-dll.patch @@ -1,4 +1,4 @@ -From ec35ee04398716c495d8effb2241665afcf604d4 Mon Sep 17 00:00:00 2001 +From 52803bac152d1f9d8af2de718c1fa89047487991 Mon Sep 17 00:00:00 2001 From: Louis Lenders Date: Thu, 7 Jun 2018 11:51:01 +0200 Subject: [PATCH] uianimation: Add stub dll @@ -10,8 +10,8 @@ Split into multiple changes. Signed-off-by: Louis Lenders --- dlls/uianimation/Makefile.in | 3 +- - dlls/uianimation/main.c | 603 ++++++++++++++++++++++++++++++++++- - 2 files changed, 588 insertions(+), 18 deletions(-) + dlls/uianimation/main.c | 461 +++++++++++++++++++++++++++++++++-- + 2 files changed, 446 insertions(+), 18 deletions(-) diff --git a/dlls/uianimation/Makefile.in b/dlls/uianimation/Makefile.in index d492faabde8..886898070c9 100644 @@ -30,7 +30,7 @@ index d492faabde8..886898070c9 100644 uianimation_typelib.idl + diff --git a/dlls/uianimation/main.c b/dlls/uianimation/main.c -index c9ce692ebc8..cc5d9b36d68 100644 +index 3f1c6a182bb..643a5aeea82 100644 --- a/dlls/uianimation/main.c +++ b/dlls/uianimation/main.c @@ -21,6 +21,8 @@ @@ -75,147 +75,10 @@ index c9ce692ebc8..cc5d9b36d68 100644 { if (IsEqualIID( iid, &IID_IUnknown ) || IsEqualIID( iid, &IID_IClassFactory )) -@@ -118,6 +105,577 @@ static const struct IClassFactoryVtbl class_factory_vtbl = +@@ -118,6 +105,440 @@ static const struct IClassFactoryVtbl class_factory_vtbl = class_factory_LockServer }; -+/*********************************************************************** -+ * IUIAnimationTimer -+ */ -+struct timer -+{ -+ IUIAnimationTimer IUIAnimationTimer_iface; -+ LONG ref; -+}; -+ -+struct timer *impl_from_IUIAnimationTimer( IUIAnimationTimer *iface ) -+{ -+ return CONTAINING_RECORD( iface, struct timer, IUIAnimationTimer_iface ); -+} -+ -+static HRESULT WINAPI timer_QueryInterface( IUIAnimationTimer *iface, -+ REFIID iid, void **obj ) -+{ -+ struct timer *This = impl_from_IUIAnimationTimer( iface ); -+ -+ TRACE( "(%p)->(%s %p)\n", This, debugstr_guid( iid ), obj ); -+ -+ if (IsEqualIID( iid, &IID_IUnknown ) || -+ IsEqualIID( iid, &IID_IUIAnimationTimer )) -+ { -+ IUIAnimationTimer_AddRef( iface ); -+ *obj = iface; -+ return S_OK; -+ } -+ -+ FIXME( "interface %s not implemented\n", debugstr_guid( iid ) ); -+ *obj = NULL; -+ return E_NOINTERFACE; -+} -+ -+static ULONG WINAPI timer_AddRef( IUIAnimationTimer *iface ) -+{ -+ struct timer *This = impl_from_IUIAnimationTimer( iface ); -+ ULONG ref = InterlockedIncrement( &This->ref ); -+ -+ TRACE( "(%p) ref = %u\n", This, ref ); -+ return ref; -+} -+ -+static ULONG WINAPI timer_Release( IUIAnimationTimer *iface ) -+{ -+ struct timer *This = impl_from_IUIAnimationTimer( iface ); -+ ULONG ref = InterlockedDecrement(&This->ref); -+ -+ TRACE( "(%p) ref = %u\n", This, ref ); -+ -+ if (!ref) -+ heap_free( This ); -+ -+ return ref; -+} -+ -+static HRESULT WINAPI timer_SetTimerUpdateHandler (IUIAnimationTimer *iface, -+ IUIAnimationTimerUpdateHandler *update_handler, -+ UI_ANIMATION_IDLE_BEHAVIOR idle_behaviour) -+{ -+ struct timer *This = impl_from_IUIAnimationTimer( iface ); -+ FIXME( "stub (%p)->( )\n", This ); -+ return E_NOTIMPL; -+} -+ -+ static HRESULT WINAPI timer_SetTimerEventHandler (IUIAnimationTimer *iface, -+ IUIAnimationTimerEventHandler *handler) -+{ -+ struct timer *This = impl_from_IUIAnimationTimer( iface ); -+ FIXME( "stub (%p)->( )\n", This ); -+ return S_OK; -+} -+ -+static HRESULT WINAPI timer_Enable (IUIAnimationTimer *iface) -+{ -+ struct timer *This = impl_from_IUIAnimationTimer( iface ); -+ FIXME( "stub (%p)->( )\n", This ); -+ return S_OK; -+} -+ -+static HRESULT WINAPI timer_Disable (IUIAnimationTimer *iface) -+{ -+ struct timer *This = impl_from_IUIAnimationTimer( iface ); -+ FIXME( "stub (%p)->( )\n", This ); -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI timer_IsEnabled (IUIAnimationTimer *iface) -+{ -+ struct timer *This = impl_from_IUIAnimationTimer( iface ); -+ FIXME( "stub (%p)->( )\n", This ); -+ return E_NOTIMPL; -+} -+ -+static HRESULT WINAPI timer_GetTime (IUIAnimationTimer *iface,UI_ANIMATION_SECONDS *seconds) -+{ -+ struct timer *This = impl_from_IUIAnimationTimer( iface ); -+ FIXME( "stub (%p)->( )\n", This ); -+ return S_OK; -+} -+ -+static HRESULT WINAPI timer_SetFrameRateThreshold (IUIAnimationTimer *iface,UINT32 frames_per_sec) -+{ -+ struct timer *This = impl_from_IUIAnimationTimer( iface ); -+ FIXME( "stub (%p)->( )\n", This ); -+ return E_NOTIMPL; -+} -+ -+const struct IUIAnimationTimerVtbl timer_vtbl = -+{ -+ timer_QueryInterface, -+ timer_AddRef, -+ timer_Release, -+ timer_SetTimerUpdateHandler, -+ timer_SetTimerEventHandler, -+ timer_Enable, -+ timer_Disable, -+ timer_IsEnabled, -+ timer_GetTime, -+ timer_SetFrameRateThreshold, -+}; -+ -+HRESULT timer_create( IUnknown *outer, REFIID iid, void **obj ) -+{ -+ struct timer *This = heap_alloc( sizeof(*This) ); -+ HRESULT hr; -+ -+ if (!This) return E_OUTOFMEMORY; -+ This->IUIAnimationTimer_iface.lpVtbl = &timer_vtbl; -+ This->ref = 1; -+ -+ hr = IUIAnimationTimer_QueryInterface( &This->IUIAnimationTimer_iface, iid, obj ); -+ -+ IUIAnimationTimer_Release( &This->IUIAnimationTimer_iface ); -+ return hr; -+} -+ +/*********************************************************************** + * IUIAnimationTransitionFactory + */ @@ -653,31 +516,26 @@ index c9ce692ebc8..cc5d9b36d68 100644 /*********************************************************************** * IUIAnimationManager */ -@@ -352,6 +910,9 @@ static HRESULT manager_create( IUnknown *outer, REFIID iid, void **obj ) - } +@@ -490,6 +911,8 @@ static HRESULT timer_create( IUnknown *outer, REFIID iid, void **obj ) static struct class_factory manager_cf = { { &class_factory_vtbl }, manager_create }; -+static struct class_factory timer_cf = { { &class_factory_vtbl }, timer_create }; + static struct class_factory timer_cf = { { &class_factory_vtbl }, timer_create }; +static struct class_factory tr_factory_cf = { { &class_factory_vtbl }, tr_factory_create }; +static struct class_factory tr_library_cf = { { &class_factory_vtbl }, tr_library_create }; /****************************************************************** * DllGetClassObject -@@ -364,6 +925,14 @@ HRESULT WINAPI DllGetClassObject( REFCLSID clsid, REFIID iid, void **obj ) - - if (IsEqualCLSID( clsid, &CLSID_UIAnimationManager )) +@@ -504,6 +927,10 @@ HRESULT WINAPI DllGetClassObject( REFCLSID clsid, REFIID iid, void **obj ) cf = &manager_cf.IClassFactory_iface; -+ else if (IsEqualCLSID( clsid, &CLSID_UIAnimationTimer )) -+ cf = &timer_cf.IClassFactory_iface; + else if (IsEqualCLSID( clsid, &CLSID_UIAnimationTimer )) + cf = &timer_cf.IClassFactory_iface; + else if (IsEqualCLSID( clsid, &CLSID_UIAnimationTransitionFactory )) + cf = &tr_factory_cf.IClassFactory_iface; + else if (IsEqualCLSID( clsid, &CLSID_UIAnimationTransitionLibrary )) + cf = &tr_library_cf.IClassFactory_iface; -+ -+ return IClassFactory_QueryInterface( cf, iid, obj ); if (!cf) return CLASS_E_CLASSNOTAVAILABLE; -- -2.17.1 +2.23.0