Partager via


Interface IKsControl (ks.h)

L’interface IKsControl est une interface de style COM implémentée sur les filtres et broches AVStream. Il permet aux clients en mode noyau d’accéder aux objets d’automatisation AVStream (propriétés, méthodes et événements).

Consultez la IKsControl (ksproxy.h) interface COM du proxy de streaming de noyau pour plus d’informations sur l’équivalent en mode noyau de cette interface.

Héritage

L’interface IKsControl hérite de l’interface IUnknown.

Méthode

L’interface IKsControl possède ces méthodes.

 
IKsControl ::KsEvent

La méthode IKsControl ::KsEvent active ou désactive un événement, ainsi que d’autres opérations de support définies disponibles sur un jeu d’événements.
IKsControl ::KsMethod

La méthode IKsControl ::KsMethod envoie une méthode à un objet KS, ainsi que d’autres opérations de support définies disponibles sur un jeu de méthodes.
IKsControl ::KsProperty

La méthode IKsControl ::KsProperty définit une propriété ou récupère des informations de propriété, ainsi que d’autres opérations de support définies disponibles sur un jeu de propriétés.

Remarques

REMARQUE : l’interface IKsControl ne doit pas être utilisée avec des propriétés KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY sous KSPROPERTYSETID_ExtendedCameraControl ensemble de propriétés, utilisez IMFExtendedCameraController.

Les minidrivers acquièrent généralement l’interface IKsControl via un appel à KsPinGetConnectedFilterInterface ou KsPinGetConnectedPinInterface. Étant donné qu’il s’agit d’une interface de style COM, l’appel de fonction pour obtenir cette interface appelle la méthode QueryInterface, qui appelle à son tour la méthode AddRef. Par conséquent, le minidriver n’a pas besoin d’effectuer ces étapes.

Toutefois, dès que le client est terminé avec l’interface IKsControl, il doit libérer IKsControl avec un appel à la méthode Release.

Les minidrivers écrits en C manipulent l’interface IKsControl en tant que structure qui contient un pointeur vers une table de fonctions au lieu d’une classe de base abstraite C++.

Un client écrit en C++ effectue les opérations suivantes :

IKsControl *Control;

if (NT_SUCCESS (
  KsPinGetConnectedPinInterface (
    Pin,
    IID_IKsControl,
    (PVOID *)&Control) )
) {
  Control -> KsProperty (...);
  Control -> Release ();
}

Toutefois, un client écrit en C utilise ce code à la place :

IKsControl *Control;

    If (NT_SUCCESS (
      KsPinGetConnectedPinInterface (
        Pin,
        IID_IKsControl,
        (PVOID *)&Control) )
    ) {
      Control -> lpVtbl -> KsProperty (...);
      Control -> lpVtbl -> Release ();
    }

Pour plus d’informations, consultez vue d’ensemble d’AVStream.

Exigences

Exigence Valeur
plateforme cible Windows
d’en-tête ks.h (include Ks.h)

Voir aussi

IKsControl(ksproxy.h)

KsPinGetConnectedFilterInterface

KsPinGetConnectedPinInterface