Compartir a través de


Modelo de objetos de componente OLE

Los objetos usados por la biblioteca AVIFile forman parte del modelo de objetos componentes OLE. Principalmente, esto significa que comparten ciertos métodos que facilitan su trabajo y los valores que devuelven son comunes a la mayoría de los métodos de interfaz OLE.

El modelo de objetos componentes OLE de los controladores de archivos y secuencias usa la interfaz IClassFactory OLE para crear instancias de su clase de objeto. Como objetos de componente, implementan la interfaz IUnknown , que consta de los métodos QueryInterface, Release y AddRef . La interfaz IUnknown permite a una aplicación obtener punteros a otras interfaces compatibles con el mismo objeto.

Puede determinar si un objeto admite una interfaz específica mediante el método QueryInterface . Si un objeto admite una interfaz especificada, QueryInterface devuelve un puntero a esa interfaz.

Puede incrementar y disminuir el recuento de referencias asociado a un objeto mediante los métodos AddRef y Release . El recuento de referencias permite a varios clientes acceder a un objeto. Cuando la primera aplicación usa un objeto, su recuento de referencias se establece en 1. Las aplicaciones usan posteriormente el método AddRef para incrementar el recuento para permitir que el objeto realice un seguimiento del número de veces que se accede a él.

Cuando una aplicación se realiza mediante un objeto , llama al método Release para disminuir el recuento de referencias. Cuando el recuento de referencias es cero, el objeto ya no es necesario y Release libera los recursos que usa y destruye el objeto. Dado que un objeto usa recursos internos transparentes para la aplicación, el objeto es responsable de liberarlos. Por ejemplo, un controlador de archivos podría necesitar cerrar los archivos de disco abiertos y liberar memoria del búfer cuando se libere.

La mayoría de los métodos de interfaz OLE devuelven identificadores de resultados definidos mediante el tipo de datos HRESULT . Este tipo de datos se compone de un código de gravedad, información contextual, un código de instalación y un código de estado. Un identificador de resultado devuelto que indica que el éxito tiene el valor cero. Un valor distinto de cero indica un error y el miembro de código de estado del identificador de resultado devuelto proporciona una base para una interpretación adicional. Para obtener información adicional sobre los identificadores de resultados devueltos OLE, vea referencia del programador ole.