Compartir a través de


Cómo implementar IUnknown

[La característica asociada a esta página, DirectShow, es una característica heredada. Se ha reemplazado por MediaPlayer, IMFMediaEngine y Captura de audio/vídeo en Media Foundation. Esas características se han optimizado para Windows 10 y Windows 11. Microsoft recomienda encarecidamente que el nuevo código use MediaPlayer, IMFMediaEngine y Audio/Video Capture en Media Foundation en lugar de DirectShow, siempre que sea posible. Microsoft sugiere que el código existente que usa las API heredadas se reescriba para usar las nuevas API si es posible.

Microsoft DirectShow se basa en el modelo de objetos componentes (COM). Si escribe su propio filtro, debe implementarlo como un objeto COM. Las clases base directShow proporcionan un marco desde el que hacerlo. No es necesario usar las clases base, pero puede simplificar el proceso de desarrollo. En este artículo se describen algunos de los detalles internos de los objetos COM y su implementación en las clases base directShow.

En este artículo se da por supuesto que sabe cómo programar aplicaciones cliente COM(es decir, que comprende los métodos de IUnknown), pero no asume ninguna experiencia previa en el desarrollo de objetos COM. DirectShow controla muchos de los detalles del desarrollo de un objeto COM. Si tiene experiencia en el desarrollo de objetos COM, debe leer la sección Uso de CUnknown, que describe la clase base CUnknown .

COM es una especificación, no una implementación. Define las reglas que debe seguir un componente; poner esas reglas en vigor se deja al desarrollador. En DirectShow, todos los objetos derivan de un conjunto de clases base de C++. Los constructores y métodos de clase base realizan la mayor parte del trabajo de "contabilidad" COM, como mantener un recuento de referencias coherente. Al derivar el filtro de una clase base, hereda la funcionalidad de la clase . Para usar las clases base de forma eficaz, necesita un conocimiento general de cómo implementan la especificación COM.

Este artículo contiene los temas siguientes.

DirectShow y COM