Paul Chitescu <paulc(a)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(a)winehq.org