Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*++
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 <mmsystem.h>
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
|