/*********************************************************************** * acmDriverRemove (MSACM32.@) */ MMRESULT WINAPI acmDriverRemove(HACMDRIVERID hadid, DWORD fdwRemove) { PWINE_ACMDRIVERID padid; PWINE_ACMNOTIFYWND panwnd; TRACE("(%p, %08x)\n", hadid, fdwRemove); padid = MSACM_GetDriverID(hadid); panwnd = MSACM_GetNotifyWnd(hadid); if (!padid && !panwnd) { WARN("invalid handle\n"); return MMSYSERR_INVALHANDLE; } if (fdwRemove) { WARN("invalid flag\n"); return MMSYSERR_INVALFLAG; } if (padid) MSACM_UnregisterDriver(padid); if (panwnd) MSACM_UnRegisterNotificationWindow(panwnd); MSACM_BroadcastNotification(); return MMSYSERR_NOERROR; }
/*********************************************************************** * MSACM_UnregisterAllDrivers() */ void MSACM_UnregisterAllDrivers(void) { PWINE_ACMNOTIFYWND panwnd = MSACM_pFirstACMNotifyWnd; PWINE_ACMDRIVERID p = MSACM_pFirstACMDriverID; while (p) { MSACM_WriteCache(p); p = MSACM_UnregisterDriver(p); } while (panwnd) { panwnd = MSACM_UnRegisterNotificationWindow(panwnd); } }