Microsoft KB Archive/180580

{|
 * width="100%"|

PRB: waveInMessage or waveOutMessage return MMSYSERR_INVALPARAM

 * }

Q180580

-

The information in this article applies to:


 * Microsoft Win32 Software Development Kit (SDK), on platform(s):
 * Microsoft Windows 95

-

SYMPTOMS
When you call waveInMessage or waveOutMessage, you may receive an error code MMSYSERR_INVALPARAM, as defined in mmsystem.h.

CAUSE
Mmsystem performs range checking on the uMsg parameter passed to waveInMessage or waveOutMessage. If uMsg is not within the valid range for an IOCTL or MAPPER message, the function will fail.

The range checking is performed as follows:

 if ((uMsg < DRVM_IOCTL) || (uMsg >= DRVM_IOCTL_LAST) && (uMsg < DRVM_MAPPER)) return MMSYSERR_INVALPARAM;

DRVM_IOCTL, DRVM_IOCTL_LAST, and DRVM_MAPPER are defined in mmddk.h.

RESOLUTION
When you call waveInMessage or waveOutMessage, make sure that the uMsg parameter is a valid IOCTL or MAPPER message.

STATUS
This behavior is by design.