static ULONG WINAPI IDirectMusicChordMapImpl_IUnknown_Release (LPUNKNOWN iface) { ICOM_THIS_MULTI(IDirectMusicChordMapImpl, UnknownVtbl, iface); ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p): ReleaseRef to %ld\n", This, ref); if (ref == 0) { HeapFree(GetProcessHeap(), 0, This); } DMCOMPOS_UnlockModule(); return ref; }
static ULONG WINAPI IDirectMusicTrack8Impl_Release(IDirectMusicTrack8 *iface) { IDirectMusicChordMapTrack *This = impl_from_IDirectMusicTrack8(iface); LONG ref = InterlockedDecrement(&This->ref); TRACE("(%p) ref=%d\n", This, ref); if (!ref) { HeapFree(GetProcessHeap(), 0, This); DMCOMPOS_UnlockModule(); } return ref; }
static ULONG WINAPI IDirectMusicComposerImpl_Release (LPDIRECTMUSICCOMPOSER iface) { IDirectMusicComposerImpl *This = (IDirectMusicComposerImpl *)iface; ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p): ReleaseRef to %d\n", This, ref); if (ref == 0) { HeapFree(GetProcessHeap(), 0, This); } DMCOMPOS_UnlockModule(); return ref; }
static ULONG WINAPI IDirectMusicComposerImpl_Release(IDirectMusicComposer *iface) { IDirectMusicComposerImpl *This = impl_from_IDirectMusicComposer(iface); ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p) ref=%d\n", This, ref); if (ref == 0) { HeapFree(GetProcessHeap(), 0, This); DMCOMPOS_UnlockModule(); } return ref; }