// This method will get the number of channels. AUDIO_DEVICE_API HRESULT GetCaptureListDeviceChannelCount(DeviceInfo *pDeviceInfo, int index, UINT *iCount) { InternalDeviceInfo *pInternalDeviceInfo = (InternalDeviceInfo *) pDeviceInfo; HRESULT hr; IMMDevice *pDevice = NULL; IAudioEndpointVolume *pAudioVolume = NULL; if (pInternalDeviceInfo->pCaptureCollection != NULL) { hr = pInternalDeviceInfo->pCaptureCollection->Item(index, &pDevice); } if (hr != S_OK) goto errors; hr = pDevice->Activate(__uuidof(IAudioEndpointVolume), CLSCTX_ALL, NULL, (void**)&pAudioVolume); if (hr != S_OK) goto errors; hr = pAudioVolume->GetChannelCount(iCount); errors: SAFE_RELEASE(pAudioVolume); SAFE_RELEASE(pDevice); return hr; }