On input, the application must fill in the ulDeviceType field of the MCI_MIXSETUP_PARMS structure to inform the mixer of the media type it will be sending. The application must also fill in the pmixEvent field of the MCI_MIXSETUP_PARMS structure with a callback function for the mixer to call when it is finished writing or reading a buffer.
If the call is successful, the mixer will update the pmixWrite and pmixRead fields so that the application can write or read buffers to or from the mixer. In addition, the mixer will update the ulBufferSize and ulNumBuffers fields with the suggested buffer size and number of buffers to use with the requested setup. The application does not have to use these suggested values as they are simply recommendations.
If the mixer has already been initialized with MCI_MIXSETUP and MCI_MIXSETUP is called again, MCIERR_INVALID_MODE will be returned.
After MCI_MIXSETUP has been successfully called, you can use MCI_BUFFER to allocate or deallocate memory for communcation with the audio device.