The following example shows how the waveform audio MCD searches audio I/O procedures by defining MMIO_MEDIATYPE_AUDIO in the ulMedType field of the MMCTOCENTRY data structure. To search and identify other types of IOProcs, you can include one of the following media type flags:
Refer to the OS/2 Multimedia Programming Reference for further information.
mmioinfo.aulInfo[ 3 ] = MMIO_MEDIATYPE_AUDIO; /* Open the file */ pInstance->hmmio = mmioOpen ( pFileName, &mmioinfo, ulFlags); /* Check for errors--see comments from above */ if (pInstance->hmmio == (ULONG) NULL) { if ( mmioinfo.ulErrorRet == MMIOERR_MEDIA_NOT_FOUND ) { return ( MCIERR_INVALID_MEDIA_TYPE ); } return ( mmioinfo.ulErrorRet ); } pInstance->ulCapabilities = 0; else { /************************************************ * Since the wave IOProc opened the file, we know * that it has the following capabilities. *************************************************/ pInstance->ulCapabilities = ( CAN_INSERT | CAN_DELETE | CAN_UNDOREDO + CAN_SAVE | CAN_INSERT | CAN_RECORD ); } /****************************************** * Get The Header Information *******************************************/ if ( !(ulFlags & MMIO_CREATE) ) { ulrc = GetAudioHeader (pInstance); } /* Not Create Flag */ else { pInstance->ulDataSize = 0; } pInstance->fFileExists = TRUE; /******************************************************************* * You cannot do the set header immediately after file creation * because future sets on samples, bitpersample, channels may follow ********************************************************************/ return (ulrc); } /* OpenFile */