Adding Custom Error Strings to an MCI Device Driver

Last reviewed: November 2, 1995
Article ID: Q76411
The information in this article applies to:
  • Microsoft Software Development Kit (SDK) for Windows versions 3.0 and 3.1
  • Microsoft Win32 SDK, versions 3.5, 3.51, and 4.0

SUMMARY

In the Microsoft Windows graphical environment, an application can use mciGetErrorString() to obtain the string associated with an error code returned from a media control interface (MCI) device driver.

An MCI driver can use a STRINGTABLE resource to store its error strings. The identifier constant for each string should correspond to the error value returned by the DriverProc function. This value must be greater than or equal to the constant MCIERR_CUSTOM_DRIVER_BASE to avoid confusion with the predefined MCI error codes.

MORE INFORMATION

For example, the Pioneer LaserDisc device driver, MCIPIONR.DRV, included with the Microsoft Device Development Kit (DDK) for Windows 3.1, contains the following declarations in its header file, MCIPIONR.H:

#define MCIERR_PIONEER_ILLEGAL_FOR_CLV  (MCIERR_CUSTOM_DRIVER_BASE)
#define MCIERR_PIONEER_NOT_SPINNING     (MCIERR_CUSTOM_DRIVER_BASE+1)
#define MCIERR_PIONEER_NO_CHAPTERS      (MCIERR_CUSTOM_DRIVER_BASE+2)
#define MCIERR_PIONEER_NO_TIMERS        (MCIERR_CUSTOM_DRIVER_BASE+3)

Its resource file, MCIPIONR.RC, contains the following STRINGTABLE definition:

STRINGTABLE BEGIN

  MCIERR_PIONEER_ILLEGAL_FOR_CLV, "Illegal operation for CLV type disc."
  MCIERR_PIONEER_NOT_SPINNING, "The disc must be spun up to perform this \
operation."
  MCIERR_PIONEER_NO_CHAPTERS, "Chapters are not supported for this disc."
  MCIERR_PIONEER_NO_TIMERS, "All timers are in use. Cannot enable \
notification." END

When mciGetErrorString() receives a value greater than or equal to MCIERR_CUSTOM_DRIVER_BASE, it looks in the driver's resource table for a string with the corresponding identifier.


Additional reference words: 3.00 3.10 3.50 4.00 95
KBCategory: kbmm kbprg
KBSubcategory: MMMisc


THE INFORMATION PROVIDED IN THE MICROSOFT KNOWLEDGE BASE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. MICROSOFT DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED, INCLUDING THE WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL MICROSOFT CORPORATION OR ITS SUPPLIERS BE LIABLE FOR ANY DAMAGES WHATSOEVER INCLUDING DIRECT, INDIRECT, INCIDENTAL, CONSEQUENTIAL, LOSS OF BUSINESS PROFITS OR SPECIAL DAMAGES, EVEN IF MICROSOFT CORPORATION OR ITS SUPPLIERS HAVE BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR CONSEQUENTIAL OR INCIDENTAL DAMAGES SO THE FOREGOING LIMITATION MAY NOT APPLY.

Last reviewed: November 2, 1995
© 1998 Microsoft Corporation. All rights reserved. Terms of Use.