The following example illustrates using MCI_BUFFER to allocate memory.

 MCI_MIX_BUFFER  MyBuffers[ MAX_BUFFERS ];

  BufferParms.ulNumBuffers = 40;
  BufferParms.ulBufferSize = 4096;
  BufferParms.pBufList = MyBuffers;

  rc = mciSendCommand( usDeviceID,
                     MCI_BUFFER,
                     MCI_WAIT | MCI_ALLOCATE_MEMORY,
                     ( PVOID ) &BufferParms,
                     0 );

  if ( ULONG_LOWD( rc ) != MCIERR_SUCCESS )
     {
     printf( "Error allocating memory.  rc is: %d", rc );
     exit ( 1 );
     }

  /*  MCI driver will return the number of buffers     */
  /*  it was able to allocate.                         */
  /*  It will also return the size of the information  */
  /*  allocated with each buffer.                      */

  ulNumBuffers = BufferParms.ulNumBuffers;

  for ( ulLoop = 0; ulLoop < ulNumBuffers; ulLoop++ )
     {
     rc = mmioRead ( hmmio,
                     MyBuffers[ ulLoop ].pBuffer,
                     MyBuffers[ ulLoop ].ulBufferLength );

     if ( !rc )
        {
        exit( rc );
        }
     MyBuffers[ ulLoop ].ulUserParm = ulLoop;

     }


[Back] [Next]