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

Alexandre Julliard julliard at winehq.org
Mon Jun 22 15:55:58 CDT 2020


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

Author: Alistair Leslie-Hughes <leslie_alistair at hotmail.com>
Date:   Tue Jul 23 08:37:12 2019 +1000

directmanipulation: Implement IDirectManipulationFrameInfoProvider stub interface.

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

---

 dlls/directmanipulation/directmanipulation.c | 49 ++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/dlls/directmanipulation/directmanipulation.c b/dlls/directmanipulation/directmanipulation.c
index 9ccbabe985..480b746f1d 100644
--- a/dlls/directmanipulation/directmanipulation.c
+++ b/dlls/directmanipulation/directmanipulation.c
@@ -340,6 +340,7 @@ static HRESULT WINAPI DirectManipulation_CreateInstance(IClassFactory *iface, IU
 struct directcompositor
 {
     IDirectManipulationCompositor IDirectManipulationCompositor_iface;
+    IDirectManipulationFrameInfoProvider IDirectManipulationFrameInfoProvider_iface;
     LONG ref;
 };
 
@@ -348,8 +349,15 @@ static inline struct directcompositor *impl_from_IDirectManipulationCompositor(I
     return CONTAINING_RECORD(iface, struct directcompositor, IDirectManipulationCompositor_iface);
 }
 
+static inline struct directcompositor *impl_from_IDirectManipulationFrameInfoProvider(IDirectManipulationFrameInfoProvider *iface)
+{
+    return CONTAINING_RECORD(iface, struct directcompositor, IDirectManipulationFrameInfoProvider_iface);
+}
+
 static HRESULT WINAPI compositor_QueryInterface(IDirectManipulationCompositor *iface, REFIID riid, void **ppv)
 {
+    struct directcompositor *This = impl_from_IDirectManipulationCompositor(iface);
+
     if (IsEqualGUID(riid, &IID_IUnknown) ||
         IsEqualGUID(riid, &IID_IDirectManipulationCompositor))
     {
@@ -357,6 +365,12 @@ static HRESULT WINAPI compositor_QueryInterface(IDirectManipulationCompositor *i
         *ppv = iface;
         return S_OK;
     }
+    else if(IsEqualGUID(riid, &IID_IDirectManipulationFrameInfoProvider))
+    {
+        IUnknown_AddRef(iface);
+        *ppv = &This->IDirectManipulationFrameInfoProvider_iface;
+        return S_OK;
+    }
 
     FIXME("(%p)->(%s,%p),not found\n", iface, debugstr_guid(riid), ppv);
     return E_NOINTERFACE;
@@ -426,6 +440,40 @@ static const struct IDirectManipulationCompositorVtbl compositorVtbl =
     compositor_Flush
 };
 
+static HRESULT WINAPI provider_QueryInterface(IDirectManipulationFrameInfoProvider *iface, REFIID riid, void **ppv)
+{
+    struct directcompositor *This = impl_from_IDirectManipulationFrameInfoProvider(iface);
+    return IDirectManipulationCompositor_QueryInterface(&This->IDirectManipulationCompositor_iface, riid, ppv);
+}
+
+static ULONG WINAPI provider_AddRef(IDirectManipulationFrameInfoProvider *iface)
+{
+    struct directcompositor *This = impl_from_IDirectManipulationFrameInfoProvider(iface);
+    return IDirectManipulationCompositor_AddRef(&This->IDirectManipulationCompositor_iface);
+}
+
+static ULONG WINAPI provider_Release(IDirectManipulationFrameInfoProvider *iface)
+{
+    struct directcompositor *This = impl_from_IDirectManipulationFrameInfoProvider(iface);
+    return IDirectManipulationCompositor_Release(&This->IDirectManipulationCompositor_iface);
+}
+
+static HRESULT WINAPI provider_GetNextFrameInfo(IDirectManipulationFrameInfoProvider *iface, ULONGLONG *time,
+            ULONGLONG *process, ULONGLONG *composition)
+{
+    struct directcompositor *This = impl_from_IDirectManipulationFrameInfoProvider(iface);
+    FIXME("%p, %p, %p, %p\n", This, time, process, composition);
+    return E_NOTIMPL;
+}
+
+static const struct IDirectManipulationFrameInfoProviderVtbl providerVtbl =
+{
+    provider_QueryInterface,
+    provider_AddRef,
+    provider_Release,
+    provider_GetNextFrameInfo
+};
+
 static HRESULT WINAPI DirectCompositor_CreateInstance(IClassFactory *iface, IUnknown *outer, REFIID riid, void **ppv)
 {
     struct directcompositor *object;
@@ -440,6 +488,7 @@ static HRESULT WINAPI DirectCompositor_CreateInstance(IClassFactory *iface, IUnk
         return E_OUTOFMEMORY;
 
     object->IDirectManipulationCompositor_iface.lpVtbl = &compositorVtbl;
+    object->IDirectManipulationFrameInfoProvider_iface.lpVtbl = &providerVtbl;
     object->ref = 1;
 
     ret = compositor_QueryInterface(&object->IDirectManipulationCompositor_iface, riid, ppv);




More information about the wine-cvs mailing list