Windows Multimedia DDK (mddkqh.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
WIDM_OPEN
                                                 Contents Index Back
────────────────────────────────────────────────────────────────────────────
WIDM_OPEN
 
        This message is sent to a waveform input device driver to
        allocate a specified device for use by a client application.
 
Parameters
        DWORD dwParam1
            Specifies a far pointer to a WAVEOPENDESC structure. This
            structure contains additional information for the driver
            such as the waveform data format, instance data from the
            client, and a callback for the client.
 
        DWORD dwParam2
            Specifies option flags for opening the device.
 
            WAVE_FORMAT_QUERY
                If this flag is specified, the device driver determines
                if it supports the format specified by lpFormat in the
                WAVEOPENDESC structure, but does not actually open the
                device. If the driver supports the requested format, it
                should return MMSYSERR_NOERROR; otherwise, it should return
                WAVERR_BADFORMAT.
 
            CALLBACK_WINDOW
                If this flag is specified, dwCallback in the
                WAVEOPENDESC structure is assumed to be a window handle.
 
            CALLBACK_FUNCTION
                If this flag is specified, dwCallback in the
                WAVEOPENDESC structure is assumed to be the address of
                a callback function.
 
            CALLBACK_TASK
                If this flag is specified, dwCallback in the
                WAVEOPENDESC structure is assumed to be a handle to a
                task.
 
Return value
        The return value is an error code, or zero (MMSYSERR_NOERROR) if
        the operation is successful. Possible error codes are:
 
        MMSYSERR_NOTENABLED
            The driver failed to load or initialize.
 
        MMSYSERR_ALLOCATED
            The device is already allocated by the maximum number of
            clients the driver supports, or the device cannot be opened
            because of system resource limitations other than memory.
 
        MMSYSERR_NOMEM
            The device cannot be opened because of a failure allocating
            or locking memory.
 
        WAVERR_BADFORMAT
            The device cannot be opened using the specified data
            format.
 
Comments
        It is up to the driver to determine the number of clients
        allowed to use a particular device. Once a device is opened for
        the maximum number of clients the driver supports, the driver
        should return MMSYSERR_ALLOCATED for any additional open
        requests. If the open operation is successful, the driver should
        use the DriverCallback  function to send the client a WIM_OPEN
        message.
 
See also
        WIDM_CLOSE, WAVEOPENDESC
 
                                       -♦-