qedit.dll: Add minimal stubs for NullRenderer and SampleGrabber

Paul Chitescu paulc at voip.null.ro
Mon Dec 21 09:18:45 CST 2009


On Monday 21 December 2009 05:05:25 pm Alexandre Julliard wrote:
> Paul Chitescu <paulc at voip.null.ro> writes:
> 
> > Changelog:
> > 	qedit.dll: Add minimal stubs for NullRenderer and SampleGrabber.
> >
> > It doesn't make much sense to break this patch in two since most 
applications 
> > connect a SampleGrabber to a NullRenderer to capture frames.
> 
> That doesn't mean you can't split the patch.
> 
> > +#define DEF_COMMON(iface)\
> > +static ULONG WINAPI NullRenderer_ ## iface ## _AddRef(iface *ptr)\
> > +{\
> > +    return InterlockedIncrement(&GET_THIS(ptr,iface)->refCount);\
> > +}\
> > +static ULONG WINAPI NullRenderer_ ## iface ## _Release(iface *ptr)\
> > +{\
> > +    NR_Impl *This = GET_THIS(ptr,iface);\
> > +    ULONG refCount = InterlockedDecrement(&This->refCount);\
> > +    if (refCount == 0) \
> > +    {\
> > +        NullRenderer_cleanup(This);\
> > +        CoTaskMemFree(This);\
> > +        return 0;\
> > +    }\
> > +    return refCount;\
> > +}\
> > +static HRESULT WINAPI NullRenderer_ ## iface ## _QueryInterface(iface 
*ptr, REFIID riid, void **ppvObject)\
> > +{\
> > +    return NullRenderer_query(GET_THIS(ptr,iface), riid, ppvObject);\
> > +}
> > +
> > +/* Macro to put common IUnknown pointers in interface's vtable */
> > +#define VTBL_COMMON(iface)\
> > +NullRenderer_ ## iface ## _QueryInterface,\
> > +NullRenderer_ ## iface ## _AddRef,\
> > +NullRenderer_ ## iface ## _Release,
> 
> Please don't add ugly macros like those, spell things out explicitly.
> 
> -- 
> Alexandre Julliard
> julliard at winehq.org

I'll split it.

About the macros - were you talking about the VTBL_COMMON which is pretty 
short or DEF_COMMON which is long and would cause the source code to grow 
unnecessarily? There are more interfaces to be implemented and I find easier 
to mantain _one_ macro rather than 6 copies of same code.

Paul

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20091221/b25013ab/attachment.htm>


More information about the wine-devel mailing list