static HRESULT WINAPI WaveTrackCF_LockServer(LPCLASSFACTORY iface,BOOL dolock) { TRACE("(%d)\n", dolock); if (dolock) DMIME_LockModule(); else DMIME_UnlockModule(); return S_OK; }
static ULONG WINAPI IDirectMusicSysExTrack_IUnknown_Release (LPUNKNOWN iface) { ICOM_THIS_MULTI(IDirectMusicSysExTrack, UnknownVtbl, iface); ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p): ReleaseRef to %d\n", This, ref); if (ref == 0) { HeapFree(GetProcessHeap(), 0, This); } DMIME_UnlockModule(); return ref; }
static ULONG WINAPI IDirectMusicSegmentState8Impl_Release (LPDIRECTMUSICSEGMENTSTATE8 iface) { IDirectMusicSegmentState8Impl *This = (IDirectMusicSegmentState8Impl *)iface; ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p): ReleaseRef to %ld\n", This, ref); if (ref == 0) { HeapFree(GetProcessHeap(), 0, This); } DMIME_UnlockModule(); return ref; }
static ULONG WINAPI IDirectMusicTrackImpl_Release(IDirectMusicTrack *iface) { IDirectMusicTimeSigTrack *This = impl_from_IDirectMusicTrack(iface); LONG ref = InterlockedDecrement(&This->ref); TRACE("(%p) ref=%d\n", This, ref); if (!ref) { HeapFree(GetProcessHeap(), 0, This); DMIME_UnlockModule(); } return ref; }
static ULONG WINAPI DirectMusicSegmentState8_Release(IDirectMusicSegmentState8 *iface) { IDirectMusicSegmentState8Impl *This = impl_from_IDirectMusicSegmentState8(iface); ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p): %d\n", This, ref); if (ref == 0) HeapFree(GetProcessHeap(), 0, This); DMIME_UnlockModule(); return ref; }
static ULONG WINAPI IDirectMusicPerformance8Impl_Release (LPDIRECTMUSICPERFORMANCE8 iface) { IDirectMusicPerformance8Impl *This = (IDirectMusicPerformance8Impl *)iface; ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p): ReleaseRef to %d\n", This, ref); if (ref == 0) { This->safe.DebugInfo->Spare[0] = 0; DeleteCriticalSection(&This->safe); HeapFree(GetProcessHeap(), 0, This); } DMIME_UnlockModule(); return ref; }
static ULONG WINAPI IDirectMusicAudioPathImpl_IUnknown_Release (LPUNKNOWN iface) { ICOM_THIS_MULTI(IDirectMusicAudioPathImpl, UnknownVtbl, iface); ULONG ref = InterlockedDecrement(&This->ref); TRACE("(%p): ReleaseRef to %d\n", This, ref); if (ref == 0) { if (This->pDSBuffer) { IDirectSoundBuffer8_Release(This->pDSBuffer); } HeapFree(GetProcessHeap(), 0, This); } DMIME_UnlockModule(); return ref; }
static ULONG WINAPI SegmentCF_Release(LPCLASSFACTORY iface) { DMIME_UnlockModule(); return 1; /* non-heap based object */ }
static ULONG WINAPI ParamControlTrackCF_Release(LPCLASSFACTORY iface) { DMIME_UnlockModule(); return 1; /* non-heap based object */ }