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 概述

要求

要求 价值
目标平台 窗户
标头 ks.h (包括 Ks.h)

另请参阅

IKsControl(ksproxy.h)

KsPinGetConnectedFilterInterface

KsPinGetConnectedPinInterface