Henri Verbeet : d2d1: Implement d2d_stroke_style_GetFactory().

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jul 30 17:10:04 CDT 2015


Module: wine
Branch: master
Commit: 68ce000df7d7f4011d65d44cfdbc62a0a6c71e03
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=68ce000df7d7f4011d65d44cfdbc62a0a6c71e03

Author: Henri Verbeet <hverbeet at codeweavers.com>
Date:   Thu Jul 30 11:10:59 2015 +0200

d2d1: Implement d2d_stroke_style_GetFactory().

---

 dlls/d2d1/d2d1_private.h |  2 ++
 dlls/d2d1/stroke.c       | 10 ++++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/dlls/d2d1/d2d1_private.h b/dlls/d2d1/d2d1_private.h
index 96a0bb8..cf98ff8 100644
--- a/dlls/d2d1/d2d1_private.h
+++ b/dlls/d2d1/d2d1_private.h
@@ -164,6 +164,8 @@ struct d2d_stroke_style
 {
     ID2D1StrokeStyle ID2D1StrokeStyle_iface;
     LONG refcount;
+
+    ID2D1Factory *factory;
 };
 
 void d2d_stroke_style_init(struct d2d_stroke_style *style, ID2D1Factory *factory,
diff --git a/dlls/d2d1/stroke.c b/dlls/d2d1/stroke.c
index 81d3dde..167db67 100644
--- a/dlls/d2d1/stroke.c
+++ b/dlls/d2d1/stroke.c
@@ -65,16 +65,21 @@ static ULONG STDMETHODCALLTYPE d2d_stroke_style_Release(ID2D1StrokeStyle *iface)
     TRACE("%p decreasing refcount to %u.\n", iface, refcount);
 
     if (!refcount)
+    {
+        ID2D1Factory_Release(style->factory);
         HeapFree(GetProcessHeap(), 0, style);
+    }
 
     return refcount;
 }
 
 static void STDMETHODCALLTYPE d2d_stroke_style_GetFactory(ID2D1StrokeStyle *iface, ID2D1Factory **factory)
 {
-    FIXME("iface %p, factory %p stub!\n", iface, factory);
+    struct d2d_stroke_style *style = impl_from_ID2D1StrokeStyle(iface);
+
+    TRACE("iface %p, factory %p.\n", iface, factory);
 
-    *factory = NULL;
+    ID2D1Factory_AddRef(*factory = style->factory);
 }
 
 static D2D1_CAP_STYLE STDMETHODCALLTYPE d2d_stroke_style_GetStartCap(ID2D1StrokeStyle *iface)
@@ -162,4 +167,5 @@ void d2d_stroke_style_init(struct d2d_stroke_style *style, ID2D1Factory *factory
 
     style->ID2D1StrokeStyle_iface.lpVtbl = &d2d_stroke_style_vtbl;
     style->refcount = 1;
+    ID2D1Factory_AddRef(style->factory = factory);
 }




More information about the wine-cvs mailing list