/*++ Copyright (c) 2000 Microsoft Corporation Module Name: IgnoreMCIStop.cpp Abstract: The shim hooks mciSendCommand and ignores MCI_STOP which takes 2-3 seconds on my P2-400. Sent to the audio team for fixing, but I'm not optimistic - bug number 246407. Notes: This cannot be put in the layer, but can apply to more than one app. History: 08/04/2000 a-brienw Created 11/30/2000 linstev Generalized --*/ #include "precomp.h" #include IMPLEMENT_SHIM_BEGIN(IgnoreMCIStop) #include "ShimHookMacro.h" APIHOOK_ENUM_BEGIN APIHOOK_ENUM_ENTRY(mciSendCommandA) APIHOOK_ENUM_END /*++ Hook mciSendCommand and perform the shims duties. --*/ MCIERROR APIHOOK(mciSendCommandA)( MCIDEVICEID IDDevice, UINT uMsg, DWORD fdwCommand, DWORD dwParam ) { if (uMsg == MCI_STOP) { DPFN( eDbgLevelWarning, "Ignoring MCI_STOP"); return 0; } if (uMsg == MCI_CLOSE) { DPFN( eDbgLevelWarning, "MCI_CLOSE called: issuing MCI_STOP"); mciSendCommandA(IDDevice, MCI_STOP, 0, 0); } MCIERROR mErr = ORIGINAL_API(mciSendCommandA)( IDDevice, uMsg, fdwCommand, dwParam); return mErr; } /*++ Register hooked functions --*/ HOOK_BEGIN APIHOOK_ENTRY(WINMM.DLL, mciSendCommandA) HOOK_END IMPLEMENT_SHIM_END