Henri Verbeet : d2d1: Implement d2d_stroke_style_GetFactory().
Module: wine Branch: master Commit: 68ce000df7d7f4011d65d44cfdbc62a0a6c71e03 URL: http://source.winehq.org/git/wine.git/?a=commit;h=68ce000df7d7f4011d65d44cfd... Author: Henri Verbeet <hverbeet(a)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); }
participants (1)
-
Alexandre Julliard