mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-01-28 22:04:43 -08:00
Updated directmanipulation-new-dll patchset
This commit is contained in:
parent
34302e77dd
commit
6cbb6dc117
@ -0,0 +1,166 @@
|
||||
From b86977f6822d286b595c756c814c2cc986968050 Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sun, 22 Dec 2019 19:35:25 +1100
|
||||
Subject: [PATCH 1/2] directmanipulation: Support IDirectManipulationContent in
|
||||
IDirectManipulationPrimaryContent interface
|
||||
|
||||
Based of patch by Gijs Vermeulen.
|
||||
---
|
||||
dlls/directmanipulation/directmanipulation.c | 110 ++++++++++++++++++-
|
||||
1 file changed, 109 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/dlls/directmanipulation/directmanipulation.c b/dlls/directmanipulation/directmanipulation.c
|
||||
index ca60e76db6e..05601abbd45 100644
|
||||
--- a/dlls/directmanipulation/directmanipulation.c
|
||||
+++ b/dlls/directmanipulation/directmanipulation.c
|
||||
@@ -177,10 +177,10 @@ static HRESULT create_update_manager(IDirectManipulationUpdateManager **obj)
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
-
|
||||
struct primarycontext
|
||||
{
|
||||
IDirectManipulationPrimaryContent IDirectManipulationPrimaryContent_iface;
|
||||
+ IDirectManipulationContent IDirectManipulationContent_iface;
|
||||
LONG ref;
|
||||
};
|
||||
|
||||
@@ -189,6 +189,11 @@ static inline struct primarycontext *impl_from_IDirectManipulationPrimaryContent
|
||||
return CONTAINING_RECORD(iface, struct primarycontext, IDirectManipulationPrimaryContent_iface);
|
||||
}
|
||||
|
||||
+static inline struct primarycontext *impl_from_IDirectManipulationContent(IDirectManipulationContent *iface)
|
||||
+{
|
||||
+ return CONTAINING_RECORD(iface, struct primarycontext, IDirectManipulationContent_iface);
|
||||
+}
|
||||
+
|
||||
static HRESULT WINAPI primary_QueryInterface(IDirectManipulationPrimaryContent *iface, REFIID riid, void **ppv)
|
||||
{
|
||||
struct primarycontext *This = impl_from_IDirectManipulationPrimaryContent(iface);
|
||||
@@ -201,6 +206,12 @@ static HRESULT WINAPI primary_QueryInterface(IDirectManipulationPrimaryContent *
|
||||
*ppv = &This->IDirectManipulationPrimaryContent_iface;
|
||||
return S_OK;
|
||||
}
|
||||
+ else if(IsEqualGUID(riid, &IID_IDirectManipulationContent))
|
||||
+ {
|
||||
+ IUnknown_AddRef(iface);
|
||||
+ *ppv = &This->IDirectManipulationContent_iface;
|
||||
+ return S_OK;
|
||||
+ }
|
||||
|
||||
FIXME("(%p)->(%s,%p),not found\n", This, debugstr_guid(riid), ppv);
|
||||
return E_NOINTERFACE;
|
||||
@@ -313,6 +324,102 @@ static const IDirectManipulationPrimaryContentVtbl primaryVtbl =
|
||||
primary_GetCenterPoint
|
||||
};
|
||||
|
||||
+
|
||||
+static HRESULT WINAPI content_QueryInterface(IDirectManipulationContent *iface, REFIID riid, void **ppv)
|
||||
+{
|
||||
+ struct primarycontext *This = impl_from_IDirectManipulationContent(iface);
|
||||
+ TRACE("(%p)->(%s,%p)\n", This, debugstr_guid(riid), ppv);
|
||||
+
|
||||
+ return IDirectManipulationPrimaryContent_QueryInterface(&This->IDirectManipulationPrimaryContent_iface,
|
||||
+ riid, ppv);
|
||||
+}
|
||||
+
|
||||
+static ULONG WINAPI content_AddRef(IDirectManipulationContent *iface)
|
||||
+{
|
||||
+ struct primarycontext *This = impl_from_IDirectManipulationContent(iface);
|
||||
+ return IDirectManipulationPrimaryContent_AddRef(&This->IDirectManipulationPrimaryContent_iface);
|
||||
+}
|
||||
+
|
||||
+static ULONG WINAPI content_Release(IDirectManipulationContent *iface)
|
||||
+{
|
||||
+ struct primarycontext *This = impl_from_IDirectManipulationContent(iface);
|
||||
+ return IDirectManipulationPrimaryContent_Release(&This->IDirectManipulationPrimaryContent_iface);
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI content_GetContentRect(IDirectManipulationContent *iface, RECT *size)
|
||||
+{
|
||||
+ struct primarycontext *This = impl_from_IDirectManipulationContent(iface);
|
||||
+ FIXME("%p, %p\n", This, size);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI content_SetContentRect(IDirectManipulationContent *iface, const RECT *size)
|
||||
+{
|
||||
+ struct primarycontext *This = impl_from_IDirectManipulationContent(iface);
|
||||
+ FIXME("%p, %p\n", This, size);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI content_GetViewport(IDirectManipulationContent *iface, REFIID riid, void **object)
|
||||
+{
|
||||
+ struct primarycontext *This = impl_from_IDirectManipulationContent(iface);
|
||||
+ FIXME("%p, %p, %p\n", This, debugstr_guid(riid), object);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI content_GetTag(IDirectManipulationContent *iface, REFIID riid, void **object, UINT32 *id)
|
||||
+{
|
||||
+ struct primarycontext *This = impl_from_IDirectManipulationContent(iface);
|
||||
+ FIXME("%p, %p, %p, %p\n", This, debugstr_guid(riid), object, id);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI content_SetTag(IDirectManipulationContent *iface, IUnknown *object, UINT32 id)
|
||||
+{
|
||||
+ struct primarycontext *This = impl_from_IDirectManipulationContent(iface);
|
||||
+ FIXME("%p, %p, %d\n", This, object, id);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI content_GetOutputTransform(IDirectManipulationContent *iface,
|
||||
+ float *matrix, DWORD count)
|
||||
+{
|
||||
+ struct primarycontext *This = impl_from_IDirectManipulationContent(iface);
|
||||
+ FIXME("%p, %p, %d\n", This, matrix, count);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI content_GetContentTransform(IDirectManipulationContent *iface,
|
||||
+ float *matrix, DWORD count)
|
||||
+{
|
||||
+ struct primarycontext *This = impl_from_IDirectManipulationContent(iface);
|
||||
+ FIXME("%p, %p, %d\n", This, matrix, count);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static HRESULT WINAPI content_SyncContentTransform(IDirectManipulationContent *iface,
|
||||
+ const float *matrix, DWORD count)
|
||||
+{
|
||||
+ struct primarycontext *This = impl_from_IDirectManipulationContent(iface);
|
||||
+ FIXME("%p, %p, %d\n", This, matrix, count);
|
||||
+ return E_NOTIMPL;
|
||||
+}
|
||||
+
|
||||
+static const IDirectManipulationContentVtbl contentVtbl =
|
||||
+{
|
||||
+ content_QueryInterface,
|
||||
+ content_AddRef,
|
||||
+ content_Release,
|
||||
+ content_GetContentRect,
|
||||
+ content_SetContentRect,
|
||||
+ content_GetViewport,
|
||||
+ content_GetTag,
|
||||
+ content_SetTag,
|
||||
+ content_GetOutputTransform,
|
||||
+ content_GetContentTransform,
|
||||
+ content_SyncContentTransform
|
||||
+};
|
||||
+
|
||||
struct directviewport
|
||||
{
|
||||
IDirectManipulationViewport2 IDirectManipulationViewport2_iface;
|
||||
@@ -473,6 +580,7 @@ static HRESULT WINAPI viewport_GetPrimaryContent(IDirectManipulationViewport2 *i
|
||||
return E_OUTOFMEMORY;
|
||||
|
||||
primary->IDirectManipulationPrimaryContent_iface.lpVtbl = &primaryVtbl;
|
||||
+ primary->IDirectManipulationContent_iface.lpVtbl = &contentVtbl;
|
||||
primary->ref = 1;
|
||||
|
||||
*object = &primary->IDirectManipulationPrimaryContent_iface;
|
||||
--
|
||||
2.24.0
|
||||
|
@ -0,0 +1,34 @@
|
||||
From 8e284d9f96e2f3c623d6f520c530aaadad943fcd Mon Sep 17 00:00:00 2001
|
||||
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
|
||||
Date: Sun, 22 Dec 2019 20:54:43 +1100
|
||||
Subject: [PATCH 2/2] directmanipulation: Fake success in some functions
|
||||
|
||||
---
|
||||
dlls/directmanipulation/directmanipulation.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/dlls/directmanipulation/directmanipulation.c b/dlls/directmanipulation/directmanipulation.c
|
||||
index 05601abbd45..b42c1f84387 100644
|
||||
--- a/dlls/directmanipulation/directmanipulation.c
|
||||
+++ b/dlls/directmanipulation/directmanipulation.c
|
||||
@@ -357,7 +357,7 @@ static HRESULT WINAPI content_SetContentRect(IDirectManipulationContent *iface,
|
||||
{
|
||||
struct primarycontext *This = impl_from_IDirectManipulationContent(iface);
|
||||
FIXME("%p, %p\n", This, size);
|
||||
- return E_NOTIMPL;
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI content_GetViewport(IDirectManipulationContent *iface, REFIID riid, void **object)
|
||||
@@ -540,7 +540,7 @@ static HRESULT WINAPI viewport_SetViewportRect(IDirectManipulationViewport2 *ifa
|
||||
{
|
||||
struct directviewport *This = impl_from_IDirectManipulationViewport2(iface);
|
||||
FIXME("%p, %p\n", This, viewport);
|
||||
- return E_NOTIMPL;
|
||||
+ return S_OK;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI viewport_ZoomToRect(IDirectManipulationViewport2 *iface, const float left,
|
||||
--
|
||||
2.24.0
|
||||
|
@ -3142,6 +3142,8 @@ if test "$enable_directmanipulation_new_dll" -eq 1; then
|
||||
patch_apply directmanipulation-new-dll/0013-directmanipulation-Fake-success-from-IDirectManipula.patch
|
||||
patch_apply directmanipulation-new-dll/0014-include-Add-IDirectManipulationPrimaryContent-interf.patch
|
||||
patch_apply directmanipulation-new-dll/0015-directmanipulation-Implement-IDirectManipulationView.patch
|
||||
patch_apply directmanipulation-new-dll/0016-directmanipulation-Support-IDirectManipulationConten.patch
|
||||
patch_apply directmanipulation-new-dll/0017-directmanipulation-Fake-success-in-some-functions.patch
|
||||
(
|
||||
printf '%s\n' '+ { "Alistair Leslie-Hughes", "include: Add directmanipulation.idl.", 1 },';
|
||||
printf '%s\n' '+ { "Alistair Leslie-Hughes", "directmanipulation: New dll.", 1 },';
|
||||
@ -3158,6 +3160,8 @@ if test "$enable_directmanipulation_new_dll" -eq 1; then
|
||||
printf '%s\n' '+ { "Alistair Leslie-Hughes", "directmanipulation: Fake success from IDirectManipulationViewport2 ActivateConfiguration.", 1 },';
|
||||
printf '%s\n' '+ { "Alistair Leslie-Hughes", "include: Add IDirectManipulationPrimaryContent interface.", 1 },';
|
||||
printf '%s\n' '+ { "Alistair Leslie-Hughes", "directmanipulation: Implement IDirectManipulationViewport2 GetPrimaryContent.", 1 },';
|
||||
printf '%s\n' '+ { "Alistair Leslie-Hughes", "directmanipulation: Support IDirectManipulationContent in IDirectManipulationPrimaryContent interface.", 1 },';
|
||||
printf '%s\n' '+ { "Alistair Leslie-Hughes", "directmanipulation: Fake success in some functions.", 1 },';
|
||||
) >> "$patchlist"
|
||||
fi
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user