IltmmAudioFormats::get_Count Example for C++

void GetAudioFormatsCount(IltmmCapture *pCapture)
{
   IltmmAudioFormats *pAudioFormats;
   IltmmAudioFormat *pAudioFormat;
   int  i;
   long lCount;
   long lFreq, lBits, lChannels;
   long lFoundAt;
   long lSelection;
   VARIANT_BOOL bSelected;

   // get the audio formats collection: 
   pCapture->get_AudioCaptureFormats(&pAudioFormats);
   pAudioFormats->get_Count(&lCount);

   for (i=0; i<lCount; i++)
   {
      // get the item at index I
      pAudioFormats->Item(i, &pAudioFormat);
      
      // do something with this item, like viewing its information:
      pAudioFormat->get_SampleFrequency(&lFreq);
      pAudioFormat->get_BitsPerSample(&lBits);
      pAudioFormat->get_Channels(&lChannels);
      pAudioFormat->get_Selected(&bSelected);

      // view information... 

      // you may select the format if it matches some criteria:
      if (lFreq == 8000 && lBits == 8 && lChannels == 1)
         pAudioFormat->put_Selected(VARIANT_TRUE);

      // free the item
      pAudioFormat->Release(); 
   }

   // you might use the Find method to search for a specific format:
   pAudioFormats->Find(16000, 16, 2, &lFoundAt);
   if (lFoundAt != -1)
   {
      // do something with it:
      // check if it is already selected, and if not, select it:
      pAudioFormats->get_Selection(&lSelection);
      if( lSelection != lFoundAt )
         pAudioFormats->put_Selection(lFoundAt);
   }

   // free the audio formats collection 
    pAudioFormats->Release();
}