IPart interface (devicetopology.h)

The IPart interface represents a part (connector or subunit) of a device topology. A client obtains a reference to an IPart interface by calling the IDeviceTopology::GetPartById or IPartsList::GetPart method, or by calling the QueryInterface method of the IConnector or ISubunit interface on a part object and setting the method's iid parameter to REFIID IID_IPart.

An object with an IPart interface can encapsulate one of the following device topology parts:

  • Connector. This is a part that connects to another device to form a data path for transmitting an audio stream between devices.
  • Subunit. This is a part that processes an audio stream (for example, volume control).
The IPart interface of a connector or subunit object represents the generic functions that are common to all parts, and the object's IConnector or ISubunit interface represents the functions that are specific to a connector or subunit. In addition, a part might support one or more control interfaces for controlling or monitoring the function of the part. For example, the client controls a volume-control subunit through its IAudioVolumeLevel interface.

The IPart interface provides methods for getting the name, local ID, global ID, and part type of a connector or subunit. In addition, IPart can activate a control interface on a connector or subunit.

For code examples that use the IPart interface, see the implementations of the GetHardwareDeviceTopology and SelectCaptureDevice functions in Device Topologies.

Inheritance

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

Methods

The IPart interface has these methods.

 
IPart::Activate

The Activate method activates a function-specific interface on a connector or subunit.
IPart::EnumPartsIncoming

The EnumPartsIncoming method gets a list of all the incoming parts�that is, the parts that reside on data paths that are upstream from this part.
IPart::EnumPartsOutgoing

The EnumPartsOutgoing method retrieves a list of all the outgoing parts�that is, the parts that reside on data paths that are downstream from this part.
IPart::GetControlInterface

The GetControlInterface method gets a reference to the specified control interface, if this part supports it.
IPart::GetControlInterfaceCount

The GetControlInterfaceCount method gets the number of control interfaces that this part supports.
IPart::GetGlobalId

The GetGlobalId method gets the global ID of this part.
IPart::GetLocalId

The GetLocalId method gets the local ID of this part.
IPart::GetName

The GetName method gets the friendly name of this part.
IPart::GetPartType

The GetPartType method gets the part type of this part.
IPart::GetSubType

The GetSubType method gets the part subtype of this part.
IPart::GetTopologyObject

The GetTopologyObject method gets a reference to the IDeviceTopology interface of the device-topology object that contains this part.
IPart::RegisterControlChangeCallback

The RegisterControlChangeCallback method registers the IControlChangeNotify interface, which the client implements to receive notifications of status changes in this part.
IPart::UnregisterControlChangeCallback

The UnregisterControlChangeCallback method removes the registration of an IControlChangeNotify interface that the client previously registered by a call to the IPart::RegisterControlChangeCallback method.

Requirements

Requirement Value
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

IAudioVolumeLevel Interface

IConnector Interface

IDeviceTopology::GetPartById

IPartsList::GetPart

ISubunit Interface