IControlChangeNotify interface (devicetopology.h)

The IControlChangeNotify interface provides notifications when the status of a part (connector or subunit) changes. Unlike the other interfaces in this section, which are implemented by the DeviceTopology API, the IControlChangeNotify interface must be implemented by a client. To receive notifications, the client passes a pointer to its IControlChangeNotify interface instance as a parameter to the IPart::RegisterControlChangeCallback method.

After registering its IControlChangeNotify interface, the client receives event notifications in the form of callbacks through the OnNotify method in the interface.

In implementing the IControlChangeNotify interface, the client should observe these rules to avoid deadlocks and undefined behavior:

  • The methods in the interface must be nonblocking. The client should never wait on a synchronization object during an event callback.
  • The client should never call the IPart::UnregisterControlChangeCallback method during an event callback.
  • The client should never release the final reference on an MMDevice API object during an event callback.


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


The IControlChangeNotify interface has these methods.


The OnNotify method notifies the client when the status of a connector or subunit changes.


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

See also

Core Audio Interfaces

DeviceTopology API