Alistair Leslie-Hughes : directmanipulation: Implement IDirectManipulationContent stub interface.

Alexandre Julliard julliard at winehq.org
Tue Jun 23 15:52:52 CDT 2020


Module: wine
Branch: master
Commit: 7171a63f06c39b1ec5f5c2933290b8c78dd11745
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=7171a63f06c39b1ec5f5c2933290b8c78dd11745

Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date:   Sun Dec 22 19:35:25 2019 +1100

directmanipulation: Implement IDirectManipulationContent stub interface.

Based on patch by Gijs Vermeulen.

Signed-off-by: Vijay Kiran Kamuju <infyquest at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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 f901d58aa9..dd2fdda69a 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;




More information about the wine-cvs mailing list