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。
微型驱动程序通常通过调用 KsPinGetConnectedFilterInterface 或 KsPinGetConnectedPinInterface获取 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) |