IMMDevice interface (mmdeviceapi.h)

The IMMDevice interface encapsulates the generic features of a multimedia device resource. In the current implementation of the MMDevice API, the only type of device resource that an IMMDevice interface can represent is an audio endpoint device.

A client can obtain an IMMDevice interface from one of the following methods:

For more information, see IMMDeviceCollection Interface.

After obtaining the IMMDevice interface of an audio endpoint device, a client can obtain an interface that encapsulates the endpoint-specific features of the device by calling the IMMDevice::QueryInterface method with parameter iid set to REFIID IID_IMMEndpoint. For more information, see IMMEndpoint Interface.

For code examples that use the IMMDevice interface, see the following topics:


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


The IMMDevice interface has these methods.


The Activate method creates a COM object with the specified interface.

The GetId method retrieves an endpoint ID string that identifies the audio endpoint device.

The GetState method retrieves the current device state.

The OpenPropertyStore method retrieves an interface to the device's property store.


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

IMMDeviceCollection Interface




IMMEndpoint Interface

MMDevice API