El modelo de objetos componentes

Seleccione idioma Seleccione idioma
Id. de artículo: 104140 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Resumen

El modelo de objetos componentes es una especificación que describe el proceso de comunicación a través de interfaces, adquirir acceso a las interfaces mediante el método QueryInterface, determinar la duración de puntero a través de recuento de referencias y objetos re-using mediante agregación.

Más información

Objeto

Un objeto es un elemento en el sistema que expone interfaces para manipular los datos o las propiedades del objeto. Se crea un objeto llamando directamente o indirectamente la interfaz de programación de aplicaciones (API) CoCreateInstance() que a su vez crea una nueva instancia del objeto y devuelve un puntero a una interfaz solicitada. Para obtener más información, vea páginas 93 y 94 de la "OLE 2.0 especificación de diseño."

Interfaces

Una interfaz es un grupo de funciones relacionadas. La comunicación entre dos objetos en un sistema se produce llamando a las funciones en una interfaz a través de un puntero a esa interfaz. Originalmente se obtiene un puntero de interfaz en el momento en que se crea el objeto.

Un buen ejemplo de una interfaz es una ventana que permite arrastrar y colocar. La ventana se expone una interfaz con métodos que podrían utilizarse durante arrastrar y colocar. El objeto arrastrado pudo comunicarse con la ventana a través de esta interfaz. Una interfaz se parecería a la siguiente:
   interface IDropTarget : IUnknown {
       virtual HRESULT DragEnter() = 0; // Mouse entered the window.
       virtual HRESULT DragOver()  = 0; // Called each mouse move.
       virtual HRESULT DragLeave() = 0; // Mouse left the window.
       virtual HRESULT Drop()      = 0; // Item dropped on the window.
       };
				
para obtener más información sobre interfaces, consulte 57-60 de las páginas de la "OLE 2.0 especificación de diseño."

IUnknown

Todas las interfaces utilizadas en el modelo de objeto componente se derivan de una interfaz base denominada IUnknown. Los métodos dentro de IUnknown están relacionados porque tratan con mantenimiento de objeto. La interfaz IUnknown se define como:
   interface IUnknown {
       virtual HRESULT QueryInterface( REFIID, VOID FAR *) = 0;
       virtual ULONG   AddRef() = 0;
       virtual ULONG   Release() = 0;
   };
				
IUnknown:: QueryInterface se utiliza para la negociación de interfaz. Los otros métodos se utilizan para recuentos de referencias al control de la vida del objeto.

Obtener más información sobre la interfaz IUnknown puede encontrarse en páginas 83 81 de la "OLE 2.0 especificación de diseño."

Negociación de interfaz

Suministra un puntero a una interfaz determinada, un objeto puede consultarse para otra interfaz. Esto se hace llamando al método QueryInterface() en una interfaz. El código siguiente muestra consultar la interfaz IOleObject:
   // Assume that a pointer to an arbitrary interface, pint,
   // exists.

   LPOLEOBJECT pOleObject;
   HRESULT hErr;

   // Query the interface.
   hErr = pint->QueryInterface(IID_IOleObject, (LPVOID FAR *)
                                               &pOleObject);

   if (hErr == NOERROR)
       // Object supports this IOleObject. The IOleObject
       // methods can now be called through pOleObject.
   else
       // Object does not support IOleObject.
				

Recuento de referencia

Duración de la interfaz se controla mediante recuento de referencias. Para incrementar el recuento de referencias en una interfaz, llame al método AddRef(). Para reducir el recuento de referencia en una interfaz, llame al método Release(). Una vez recuento de referencias la interfaz con un llega a cero, el puntero a la interfaz ya no es válido. Si el recuento de referencias en todas las interfaces de un objeto es cero, se puede liberar el objeto, porque ya no hay ningún punteros al objeto.

Puede encontrar más información en el recuento de referencias en las páginas 83 y 84 de la "OLE 2.0 especificación de diseño."

Agregación

Agregación es la capacidad de un objeto para volver a utilizar o extender dinámicamente, sin tener que volver a compilar el código de objeto original. Para obtener más información sobre el proceso de agregación, consulte la "OLE 2.0 diseño especificación," páginas 61 63.

Propiedades

Id. de artículo: 104140 - Última revisión: miércoles, 03 de diciembre de 2003 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft OLE 2.0
  • Microsoft OLE 4.0 sobre las siguientes plataformas
    • Microsoft Windows NT 4.0
    • Microsoft Windows NT 3.51 Service Pack 5
    • Microsoft Windows NT 4.0
    • Microsoft Windows 95
    • the operating system: Microsoft Windows 2000
Palabras clave: 
kbmt KB104140 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 104140

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com