Interfaz IKsDataTypeHandler (ksproxy.h)
La interfaz IKsDataTypeHandler proporciona métodos que realizan el preprocesamiento opcional y el postprocesamiento de muestras multimedia. Esta interfaz también puede devolver el tamaño de la información adicional del encabezado de secuencia necesaria para el procesamiento y puede determinar si un tipo de medio determinado está dentro de un conjunto determinado de intervalos de datos de streaming de kernel.
El IID de esta interfaz es IID_IKsDataTypeHandler.
Herencia
La interfaz IKsDataTypeHandler hereda de la interfaz IUnknown.
Métodos
La interfaz IKsDataTypeHandler tiene estos métodos.
IKsDataTypeHandler::KsCompleteIoOperation El método KsCompleteIoOperation limpia el encabezado extendido y completa la operación de entrada y salida (E/S). |
IKsDataTypeHandler::KsIsMediaTypeInRanges El método KsIsMediaTypeInRanges valida que un tipo de medio está dentro de los intervalos de datos proporcionados. |
IKsDataTypeHandler::KsPrepareIoOperation El método KsPrepareIoOperation inicializa el encabezado extendido y prepara el ejemplo multimedia para una operación de E/S. |
IKsDataTypeHandler::KsQueryExtendedSize El método KsQueryExtendedSize recupera la información de encabezado extendida necesaria para las operaciones de entrada y salida (E/S). |
IKsDataTypeHandler::KsSetMediaType El método KsSetMediaType establece el tipo de medio para un controlador de tipos de datos. |
Observaciones
Para mantener el tipo de datos proxy neutro, los controladores de tipos de datos opcionales se pueden cargar para masajear el flujo de datos a medida que pasa o desde filtros en modo kernel. Debe implementar un controlador de tipos de datos como servidor COM que, al menos, admita la interfaz IKsDataTypeHandler. El controlador de tipos de datos puede admitir opcionalmente la interfaz IKsDataTypeCompletion.
Normalmente, un controlador de tipos de datos se carga durante el proceso de conexión de patillas y se descarga cuando se interrumpe la conexión. Sin embargo, un controlador de tipos de datos a veces se carga brevemente con otros fines. Por ejemplo, si una aplicación usa el método IAMStreamConfig::SetFormat de DirectShow, la aplicación puede usar un controlador de tipos de datos para completar un parámetro de tipo multimedia parcial enviado al método .
El proxy usa los GUID del tipo de medio como clases de servidor COM para determinar qué ocurre si se carga algún controlador de tipos de datos. Siempre que el controlador de tipos de datos se registre como un servidor COM en una clase GUID esperada que busca el proxy, se carga el controlador de tipos de datos. El tipo de formato principal se usa primero para intentar abrir un servidor COM del controlador de tipos de datos, seguido del especificador de subtipo y formato si se produce un error al abrir el controlador de tipos de datos mediante el tipo de formato principal. Si alguno de los intentos se realiza correctamente, el proxy consulta el IKsDataTypeHandler interfaz y llama al método KsSetMediaType de la interfaz para establecer el tipo de medio actual que se usa con el controlador, en caso de que el controlador admita muchos tipos. Si no se encuentra ningún controlador, el proxy supone que no es necesario al serializar la secuencia hacia o desde el modo kernel, o para realizar cualquier otra tarea necesaria.
En un controlador de tipos de datos, cree una solicitud a través de CoCreateInstance, el servidor siempre presenta una externa IUnknown con la que crear el objeto COM. Este IUnknown es una interfaz en el objeto pin que está cargando este controlador. El puntero de interfaz IUnknown se puede usar para consultar información o interfaces desde el pin, como el IKsPin o interfaces de IKsControl, aunque es posible que el pin en modo kernel no se haya creado en el momento en que se carga el controlador. No se debe dejar ninguna referencia en el objeto externo mediante la adquisición de ninguna interfaz, ya que dará como resultado un recuento de referencias circular. El uso de las interfaces sin un recuento de referencias es aceptable, ya que el objeto externo posee el controlador y, por definición, se destruye cuando el recuento de referencias del objeto externo alcanza cero.
Para obtener más información sobre IAMStreamConfig::SetFormat y CoCreateInstance, consulte la documentación de Microsoft Windows SDK.
Requisitos
Requisito | Valor |
---|---|
de la plataforma de destino de | Windows |
encabezado de | ksproxy.h |