IMMDeviceCollection interface (mmdeviceapi.h)

The IMMDeviceCollection interface represents a collection of multimedia device resources. In the current implementation, the only device resources that the MMDevice API can create collections of are audio endpoint devices.

A client can obtain a reference to an IMMDeviceCollection interface instance by calling the IMMDeviceEnumerator::EnumAudioEndpoints method. This method creates a collection of endpoint objects, each of which represents an audio endpoint device in the system. Each endpoint object in the collection supports the IMMDevice and IMMEndpoint interfaces. For more information, see IMMDeviceEnumerator Interface.

For a code example that uses the IMMDeviceCollection interface, see Device Properties.


The IMMDeviceCollection interface inherits from the IUnknown interface. IMMDeviceCollection also has these types of members:


The IMMDeviceCollection interface has these methods.


The GetCount method retrieves a count of the devices in the device collection.

The Item method retrieves a pointer to the specified item in the device collection.


Requirement Value
Minimum supported client Windows Vista [desktop apps only]
Minimum supported server Windows Server 2008 [desktop apps only]
Target Platform Windows
Header mmdeviceapi.h

See also

Core Audio Interfaces

IMMDevice Interface

IMMDeviceEnumerator Interface


IMMEndpoint Interface

MMDevice API