Esempio n. 1
0
void DMO_Filter_Destroy(DMO_Filter* This)
{
    if (This->m_pOptim)
	This->m_pOptim->vt->Release((IUnknown*)This->m_pOptim);
    if (This->m_pInPlace)
	This->m_pInPlace->vt->Release((IUnknown*)This->m_pInPlace);
    if (This->m_pMedia)
	This->m_pMedia->vt->Release((IUnknown*)This->m_pMedia);

    free(This);
#ifdef WIN32_LOADER
    CodecRelease();
#endif
}
Esempio n. 2
0
MMRESULT WINAPI acmStreamClose(HACMSTREAM has, DWORD fdwClose)
{
    PWINE_ACMSTREAM	was;
    MMRESULT		ret;
		
    TRACE("(0x%08x, %ld)\n", has, fdwClose);
    
    if ((was = ACM_GetStream(has)) == NULL) {
	return MMSYSERR_INVALHANDLE;
    }
    ret = SendDriverMessage(was->pDrv->hDrvr, ACMDM_STREAM_CLOSE, (DWORD)&was->drvInst, 0);
    if (ret == MMSYSERR_NOERROR) {
	if (was->hAcmDriver)
	    acmDriverClose(was->hAcmDriver, 0L);	
	HeapFree(MSACM_hHeap, 0, was);
	CodecRelease();
    }
    TRACE("=> (%d)\n", ret);
    return ret;
}
Esempio n. 3
0
void DrvClose(HDRVR hDriver)
{
    if (hDriver)
    {
        DRVR* d = (DRVR*)hDriver;
        if (d->hDriverModule)
        {
#ifdef WIN32_LOADER
            Setup_FS_Segment();
#endif
            if (d->DriverProc)
            {
                SendDriverMessage(hDriver, DRV_CLOSE, 0, 0);
                d->dwDriverID = 0;
                SendDriverMessage(hDriver, DRV_FREE, 0, 0);
            }
            FreeLibrary(d->hDriverModule);
        }
        free(d);
    }
#ifdef WIN32_LOADER
    CodecRelease();
#endif
}