ISelector interface

The ISelector interface is used to select source nodes in a stream class driver. Applications can use this interface to select which input is active on the device. For example, if a USB video capture device has a camera and a tape transport, these inputs could be represented as source nodes.


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


The ISelector interface has these methods.


Returns the number of source nodes connected to the selector node.


Returns the index of the active source node.


Activates a source node.



A kernel-streaming (KS) filter contains one or more nodes. Each node encapsulates a processing task that is applied to the stream. In the following diagram, nodes 1 and 2 are source nodes and node 3 is a selector node.

KsProxy nodes

The source nodes represent input streams—for example, a camera or a tape transport. The selector node controls which stream is sent to the filter's output pin. To switch between inputs, an application would do the following:

  1. Use the IKsTopologyInfo interface to enumerate the nodes and discover the node types, identifiers, and names.
  2. Call IKsTopologyInfo::CreateNodeInstance to create the selector node, passing in the node identifier and the interface identifier IID_ISelector. The method returns an ISelector interface pointer.
  3. Use the ISelector interface to select the source node.

The ISelector interface is available if the selector node supports the PROPSETID_VIDCAP_SELECTOR property set. For more information, see the Windows DDK documentation.


Minimum supported client

Windows XP with SP2 [desktop apps only]

Minimum supported server

Windows Server 2003 R2 [desktop apps only]