Método IRunnableObject::SetContainedObject (objidl.h)

Notifica a un objeto que está incrustado en un contenedor OLE, lo que garantiza que el recuento de referencias se realiza correctamente para los contenedores que admiten vínculos a objetos incrustados.

Sintaxis

HRESULT SetContainedObject(
  [in] BOOL fContained
);

Parámetros

[in] fContained

TRUE especifica que el objeto está contenido en un contenedor OLE. FALSE indica que no lo es.

Valor devuelto

Este método puede devolver los valores devueltos estándar E_INVALIDARG, E_OUTOFMEMORY, E_UNEXPECTED y S_OK.

Comentarios

El método SetContainedObject permite a un contenedor informar a un controlador de objetos de que está incrustado en el contenedor, en lugar de actuar como un vínculo. Esta llamada cambia la referencia del contenedor en el objeto de fuerte, el valor predeterminado para las conexiones externas, a débil. Cuando el objeto se ejecuta visiblemente, este método es de poca importancia porque el usuario final tiene un bloqueo en el objeto. Sin embargo, durante una actualización silenciosa de un origen de vínculo incrustado, el contenedor no debe ser capaz de contener un objeto en estado en ejecución después de que se haya interrumpido el vínculo. Por este motivo, la referencia del contenedor al objeto debe ser débil.

Notas a los autores de llamadas

Una aplicación contenedora debe llamar a SetContainedObject si admite la vinculación a objetos incrustados. Normalmente realiza la llamada inmediatamente después de llamar a OleLoad u OleCreate y nunca llama al método de nuevo, incluso antes de que se cierre. Además, un contenedor casi siempre llama a este método con fContained establecido en TRUE. El uso de este método con fContained establecido en FALSE es poco frecuente.

Llamar a SetContainedObject solo es opcional cuando se sabe que ningún cliente distinto del contenedor no hará referencia al objeto incrustado. Si la aplicación contenedora no admite la vinculación a objetos incrustados; es preferible, pero no necesario, llamar a SetContainedObject.

OleSetContainedObject es una función auxiliar que vuelve a empaquetar convenientemente la funcionalidad que ofrece SetContainedObject. Con el lanzamiento de OLE 2.01, la implementación de OleSetContainedObject se cambió para llamar a QueryInterface, pedir IRunnableObject y, a continuación, llamar a IRunnableObject::SetContainedObject. En otras palabras, puede usar la interfaz y la función auxiliar indistintamente.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado objidl.h

Consulte también

IRunnableObject

OleSetContainedObject