wine-staging/patches/directmanipulation-new-dll/0009-directmanipulation-Implement-IDirectManipulationComp.patch

52 lines
1.8 KiB
Diff
Raw Normal View History

From 6f2fd8dc5086a0c0982f71416b8a2b1e25ac6433 Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Wed, 24 Jul 2019 09:15:18 +1000
Subject: [PATCH] directmanipulation: Implement IDirectManipulationCompositor
SetUpdateManager.
---
dlls/directmanipulation/directmanipulation.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/directmanipulation/directmanipulation.c b/dlls/directmanipulation/directmanipulation.c
index 7d00354963..629a41c845 100644
--- a/dlls/directmanipulation/directmanipulation.c
+++ b/dlls/directmanipulation/directmanipulation.c
@@ -339,6 +339,7 @@ struct directcompositor
{
IDirectManipulationCompositor IDirectManipulationCompositor_iface;
IDirectManipulationFrameInfoProvider IDirectManipulationFrameInfoProvider_iface;
+ IDirectManipulationUpdateManager *manager;
LONG ref;
};
@@ -393,6 +394,8 @@ static ULONG WINAPI compositor_Release(IDirectManipulationCompositor *iface)
if (!ref)
{
+ if(This->manager)
+ IDirectManipulationUpdateManager_Release(This->manager);
heap_free(This);
}
return ref;
@@ -416,8 +419,14 @@ static HRESULT WINAPI compositor_RemoveContent(IDirectManipulationCompositor *if
static HRESULT WINAPI compositor_SetUpdateManager(IDirectManipulationCompositor *iface, IDirectManipulationUpdateManager *manager)
{
struct directcompositor *This = impl_from_IDirectManipulationCompositor(iface);
- FIXME("%p, %p\n", This, manager);
- return E_NOTIMPL;
+ TRACE("%p, %p\n", This, manager);
+
+ if(!manager)
+ return E_INVALIDARG;
+
+ This->manager = manager;
+ IDirectManipulationUpdateManager_AddRef(This->manager);
+ return S_OK;
}
static HRESULT WINAPI compositor_Flush(IDirectManipulationCompositor *iface)
--
2.17.1