IKsControl 接口 (ks.h)

IKsControl 接口是在 AVStream 筛选器和引脚上实现的 COM 样式接口。 它使内核模式下的客户端能够访问 AVStream 自动化对象 (属性、方法和事件) 。

有关此接口的内核模式等效的信息,请参阅 IKsControl (ksproxy.h) 内核流式处理代理 COM 接口。

继承

IKsControl 接口继承自 IUnknown 接口。

方法

IKsControl 接口具有这些方法。

 
IKsControl::KsEvent

IKsControl::KsEvent 方法启用或禁用事件,以及事件集上可用的任何其他已定义支持操作。
IKsControl::KsMethod

IKsControl::KsMethod 方法将方法连同方法集上可用的任何其他定义支持操作一起发送到 KS 对象。
IKsControl::KsProperty

IKsControl::KsProperty 方法设置属性或检索属性信息,以及属性集上可用的任何其他定义的支持操作。

注解

注意:IKsControl 接口不应与KSPROPERTYSETID_ExtendedCameraControl属性集下的KSPROPERTY_CAMERACONTROL_EXTENDED_PROPERTY属性一起使用,请使用 IMFExtendedCameraController

微型驱动程序通常通过调用 KsPinGetConnectedFilterInterfaceKsPinGetConnectedPinInterface 来获取 IKsControl 接口。 由于这是 COM 样式接口,因此获取此接口的函数调用将调用 QueryInterface 方法,后者又调用 AddRef 方法。 因此,微型驱动程序不必执行这些步骤。

但是,一旦客户端完成 IKsControl 接口,它就必须通过调用 Release 方法释放 IKsControl

用 C 编写的微型驱动程序将 IKsControl 接口操作为一个结构,该结构包含指向函数表的指针,而不是 C++ 抽象基类。

使用 C++ 编写的客户端执行以下操作:

IKsControl *Control;

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

但是,用 C 编写的客户端会改用以下代码:

IKsControl *Control;

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

有关详细信息,请参阅 AVStream 概述

要求

要求
目标平台 Windows
标头 ks.h (包括 Ks.h)

另请参阅

IKsControl (ksproxy.h)

KsPinGetConnectedFilterInterface

KsPinGetConnectedPinInterface