Clase COleClientItem
Define la interfaz del contenedor a elementos de OLE.
Sintaxis
class COleClientItem : public CDocItem
Miembros
Constructores públicos
Nombre | Descripción |
---|---|
COleClientItem::COleClientItem | Construye un objeto COleClientItem . |
Métodos públicos
Nombre | Descripción |
---|---|
COleClientItem::Activate | Abre el elemento OLE para una operación y, a continuación, ejecuta el verbo especificado. |
COleClientItem::ActivateAs | Activa el elemento como otro tipo. |
COleClientItem::AttachDataObject | Obtiene acceso a los datos del objeto OLE. |
COleClientItem::CanCreateFromData | Indica si una aplicación contenedora puede crear un objeto incrustado. |
COleClientItem::CanCreateLinkFromData | Indica si una aplicación contenedora puede crear un objeto vinculado. |
COleClientItem::CanPaste | Indica si el Portapapeles contiene un elemento OLE incrustable o estático. |
COleClientItem::CanPasteLink | Indica si el Portapapeles contiene un elemento OLE vinculable. |
COleClientItem::Close | Cierra un vínculo a un servidor, pero no destruye el elemento OLE. |
COleClientItem::ConvertTo | Convierte el elemento a otro tipo. |
COleClientItem::CopyToClipboard | Copia el elemento OLE al Portapapeles. |
COleClientItem::CreateCloneFrom | Crea un duplicado de un elemento existente. |
COleClientItem::CreateFromClipboard | Crea un elemento incrustado desde el Portapapeles. |
COleClientItem::CreateFromData | Crea un elemento incrustado a partir de un objeto de datos. |
COleClientItem::CreateFromFile | Crea un elemento incrustado a partir de un archivo. |
COleClientItem::CreateLinkFromClipboard | Crea un elemento vinculado desde el Portapapeles. |
COleClientItem::CreateLinkFromData | Crea un elemento vinculado a partir de un objeto de datos. |
COleClientItem::CreateLinkFromFile | Crea un elemento vinculado a partir de un archivo. |
COleClientItem::CreateNewItem | Crea un nuevo elemento incrustado al iniciar la aplicación de servidor. |
COleClientItem::CreateStaticFromClipboard | Crea un elemento vinculado desde el Portapapeles. |
COleClientItem::CreateStaticFromData | Crea un elemento estático a partir de un objeto de datos. |
COleClientItem::Deactivate | Desactiva el elemento. |
COleClientItem::DeactivateUI | Restaura la interfaz de usuario de la aplicación contenedora a su estado original. |
COleClientItem::Delete | Elimina o cierra el elemento OLE si se trata de un elemento vinculado. |
COleClientItem::DoDragDrop | Realiza una operación de arrastrar y colocar. |
COleClientItem::DoVerb | Ejecuta el verbo especificado. |
COleClientItem::Draw | Dibuja el elemento OLE. |
COleClientItem::GetActiveView | Obtiene la vista en la que se activa el elemento local. |
COleClientItem::GetCachedExtent | Devuelve los límites del rectángulo del elemento OLE. |
COleClientItem::GetClassID | Obtiene el identificador de clase del elemento actual. |
COleClientItem::GetClipboardData | Obtiene los datos que se colocarían en el Portapapeles al llamar a la función miembro CopyToClipboard . |
COleClientItem::GetDocument | Devuelve el objeto COleDocument que contiene el elemento presente. |
COleClientItem::GetDrawAspect | Obtiene la vista actual del elemento para la representación. |
COleClientItem::GetExtent | Devuelve los límites del rectángulo del elemento OLE. |
COleClientItem::GetIconFromRegistry | Recupera un manipulador de un icono asociado al servidor de un CLSID determinado. |
COleClientItem::GetIconicMetafile | Obtiene el metarchivo utilizado para dibujar el icono del elemento. |
COleClientItem::GetInPlaceWindow | Devuelve un puntero a la ventana de edición local del elemento. |
COleClientItem::GetItemState | Obtiene el estado actual del elemento. |
COleClientItem::GetLastStatus | Devuelve el estado de la última operación OLE. |
COleClientItem::GetLinkUpdateOptions | Devuelve el modo de actualización para un elemento vinculado (característica avanzada). |
COleClientItem::GetType | Devuelve el tipo (incrustado, vinculado o estático) del elemento OLE. |
COleClientItem::GetUserType | Obtiene una cadena que describe el tipo del elemento. |
COleClientItem::IsInPlaceActive | Devuelve TRUE si el elemento está activo en entorno local. |
COleClientItem::IsLinkUpToDate | Devuelve TRUE si un elemento vinculado está actualizado con su documento de origen. |
COleClientItem::IsModified | Devuelve TRUE si el elemento se ha modificado desde que se guardó por última vez. |
COleClientItem::IsOpen | Devuelve TRUE si el elemento está abierto actualmente en la aplicación de servidor. |
COleClientItem::IsRunning | Devuelve TRUE si se está ejecutando la aplicación de servidor del elemento. |
COleClientItem::OnActivate | El marco de trabajo llama a esta función para notificar al elemento que está activado. |
COleClientItem::OnActivateUI | El marco de trabajo llama a esta función para notificar al elemento que está activado y debe mostrar su interfaz de usuario. |
COleClientItem::OnChange | Se llama a esta función cuando el servidor cambia el elemento OLE. Se requiere la implementación. |
COleClientItem::OnDeactivate | El marco de trabajo llama a esta función cuando se desactiva un elemento. |
COleClientItem::OnDeactivateUI | El marco de trabajo llama a esta función cuando el servidor ha quitado su interfaz de usuario local. |
COleClientItem::OnGetClipboardData | El marco de trabajo llama a esta función para obtener los datos que se van a copiar en el Portapapeles. |
COleClientItem::OnInsertMenus | El marco de trabajo llama a esta función para crear un menú compuesto. |
COleClientItem::OnRemoveMenus | El marco de trabajo llama a esta función para quitar los menús del contenedor de un menú compuesto. |
COleClientItem::OnSetMenu | El marco de trabajo llama a esta función para instalar y quitar un menú compuesto. |
COleClientItem::OnShowControlBars | El maco de trabajo llama a esta función para mostrar y ocultar barras de control. |
COleClientItem::OnUpdateFrameTitle | El marco de trabajo llama a esta función para actualizar la barra de título de la ventana de marco. |
COleClientItem::ReactivateAndUndo | Reactiva el elemento y deshace la última operación de edición local. |
COleClientItem::Release | Libera la conexión a un elemento vinculado OLE y la cierra si estaba abierta. No destruye el elemento de cliente. |
COleClientItem::Reload | Recarga el elemento después de una llamada a ActivateAs . |
COleClientItem::Run | Ejecuta la aplicación asociada al elemento. |
COleClientItem::SetDrawAspect | Establece la vista actual del elemento para la representación. |
COleClientItem::SetExtent | Establece el rectángulo delimitador del elemento OLE. |
COleClientItem::SetHostNames | Establece los nombres que muestra el servidor al editar el elemento OLE. |
COleClientItem::SetIconicMetafile | Almacena en caché el metarchivo utilizado para dibujar el icono del elemento. |
COleClientItem::SetItemRects | Establece el rectángulo delimitador del elemento. |
COleClientItem::SetLinkUpdateOptions | Establece el modo de actualización para un elemento vinculado (característica avanzada). |
COleClientItem::SetPrintDevice | Establece el dispositivo de destino de impresión para este elemento de cliente. |
COleClientItem::UpdateLink | Actualiza la caché de presentación de un elemento. |
Métodos protegidos
Nombre | Descripción |
---|---|
COleClientItem::CanActivate | El marco de trabajo llama a esta función para determinar si se permite la activación local. |
COleClientItem::OnChangeItemPosition | El marco de trabajo llama a esta función cuando cambia la posición de un elemento. |
COleClientItem::OnDeactivateAndUndo | El marco de trabajo llama a esta función para deshacer la operación después de la activación. |
COleClientItem::OnDiscardUndoState | El marco de trabajo llama a esta función para descartar la información de estado de deshacer el elemento. |
COleClientItem::OnGetClipRect | El marco de trabajo llama a esta función para obtener las coordenadas del rectángulo de recorte del elemento. |
COleClientItem::OnGetItemPosition | El marco de trabajo llama a esta función para obtener la posición del elemento en relación con la vista. |
COleClientItem::OnGetWindowContext | El marco de trabajo llama a esta función cuando se activa un elemento en el entorno local. |
COleClientItem::OnScrollBy | El marco de trabajo llama a esta función para desplazar el elemento a la vista. |
COleClientItem::OnShowItem | El marco de trabajo llama a esta función para mostrar el elemento OLE. |
Comentarios
Un elemento OLE representa los datos, creados y mantenidos por una aplicación de servidor, que se pueden incorporar "sin problemas" en un documento para que parezca que el usuario es un único documento. El resultado es un "documento compuesto" formado por el elemento OLE y un documento contenedor.
Un elemento OLE se puede incrustar o vincular. Si se incrusta, sus datos se almacenan como parte del documento compuesto. Si se vincula, sus datos se almacenan como parte de un archivo independiente creado por la aplicación de servidor y solo se almacena un vínculo a ese archivo en el documento compuesto. Todos los elementos OLE contienen información que especifica la aplicación de servidor a la que se debe llamar para la edición.
COleClientItem
define varias funciones reemplazables a las que se llama en respuesta a las solicitudes de la aplicación de servidor; estos elementos reemplazables suelen actuar como notificaciones. Esto permite a la aplicación de servidor informar al contenedor de los cambios que realiza el usuario al editar el elemento OLE o recuperar la información necesaria durante la edición.
COleClientItem
se puede usar con la clase COleDocument, COleLinkingDoc o COleServerDoc. Para usar COleClientItem
, derive una clase de ella e implemente la función miembro OnChange, que define cómo responde el contenedor a los cambios realizados en el elemento. Para admitir la activación local, invalide la función miembro OnGetItemPosition. Esta función proporciona información sobre la posición mostrada del elemento OLE.
Para obtener más información sobre el uso de la interfaz de contenedor, consulte los artículos Contenedores: implementación de un contenedor y Activación.
Nota:
Windows SDK hace referencia a elementos incrustados y vinculados como "objetos" y hace referencia a los tipos de elementos como "clases". Esta referencia usa el término "elemento" para distinguir la entidad OLE del objeto de C++ correspondiente y el término "tipo" para distinguir la categoría OLE de la clase de C++.
Jerarquía de herencia
COleClientItem
Requisitos
Encabezado: afxole.h
COleClientItem::Activate
Llame a esta función para ejecutar el verbo especificado en lugar de DoVerb para que pueda realizar su propio procesamiento cuando se produzca una excepción.
void Activate(
LONG nVerb,
CView* pView,
LPMSG lpMsg = NULL);
Parámetros
nVerb
Especifica el verbo que se va a ejecutar. Puede tener uno de los valores siguientes:
Valor | Significado | Símbolo |
---|---|---|
- 0 | verbo principal | OLEIVERB_PRIMARY |
- 1 | Verbo secundario | (Ninguna) |
- 1 | Mostrar el elemento para su edición | OLEIVERB_SHOW |
- 2 | Edición del elemento en una ventana independiente | OLEIVERB_OPEN |
- 3 | Ocultar el elemento | OLEIVERB_HIDE |
El valor -1 suele ser un alias para otro verbo. Si no se admite la edición abierta, -2 tiene el mismo efecto que -1. Para obtener valores adicionales, consulte IOleObject::DoVerb en Windows SDK.
pView
Puntero a la ventana de vista de contenedor que contiene el elemento OLE; la aplicación de servidor usa este elemento para la activación local. Este parámetro debe ser NULL si el contenedor no admite la activación local.
lpMsg
Puntero al mensaje que provocó la activación del elemento.
Comentarios
Si la aplicación de servidor se escribió mediante la Biblioteca de Microsoft Foundation Class, esta función hace que se ejecute la función miembro OnDoVerb del objeto COleServerItem
correspondiente.
Si el verbo principal es Edit y se especifica zero en el parámetro nVerb, se inicia la aplicación de servidor para permitir que se edite el elemento OLE. Si la aplicación contenedora admite la activación local, la edición se puede realizar en contexto. Si el contenedor no admite la activación local (o si se especifica el verbo Open), el servidor se inicia en una ventana independiente y se puede editar allí. Normalmente, cuando el usuario de la aplicación contenedora hace doble clic en el elemento OLE, el valor del verbo principal en el parámetro nVerb determina qué acción puede realizar el usuario. Sin embargo, si el servidor solo admite una acción, realiza esa acción, independientemente del valor especificado en el parámetro nVerb.
Para obtener más información, vea IOleObject::D oVerb en Windows SDK.
COleClientItem::ActivateAs
Usa las instalaciones de conversión de objetos de OLE para activar el elemento como si fuera un elemento del tipo especificado por clsidNew.
virtual BOOL ActivateAs(
LPCTSTR lpszUserType,
REFCLSID clsidOld,
REFCLSID clsidNew);
Parámetros
lpszUserType
Puntero a una cadena que representa el tipo de usuario de destino, como, por ejemplo, "Documento de Word".
clsidOld
Referencia al identificador de clase actual del elemento. El identificador de clase debe representar el tipo del objeto real, como se almacena, a menos que sea un vínculo. En ese caso, debe ser el CLSID del elemento al que hace referencia el vínculo. COleConvertDialog proporciona automáticamente el identificador de clase correcto para el elemento.
clsidNew
Referencia al identificador de clase de destino.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
COleConvertDialog::D oConvert realiza la llamada automáticamente. Normalmente, la llamada no se realiza directamente.
COleClientItem::AttachDataObject
Llame a esta función para inicializar un COleDataObject para tener acceso a los datos del elemento OLE.
void AttachDataObject(COleDataObject& rDataObject) const;
Parámetros
rDataObject
Referencia a un objeto COleDataObject
que se inicializará para permitir el acceso a los datos del elemento OLE.
COleClientItem::CanActivate
El marco de trabajo llama a esta función cuando el usuario solicita la activación local del elemento OLE; el valor que devuelve esta función determina si se permite la activación local.
virtual BOOL CanActivate();
Valor devuelto
Distinto de cero si se permite la activación local; de lo contrario, 0.
Comentarios
La implementación predeterminada permite la activación local si el contenedor tiene una ventana válida. Invalide esta función para implementar lógica especial para aceptar o rechazar la solicitud de activación. Por ejemplo, se puede rechazar una solicitud de activación si el elemento OLE es demasiado pequeño o no está visible actualmente.
Para obtener más información, vea IOleInPlaceSite::CanInPlaceActivate en Windows SDK.
COleClientItem::CanCreateFromData
Comprueba si una aplicación contenedora puede crear un objeto incrustado a partir del objeto especificado COleDataObject
.
static BOOL PASCAL CanCreateFromData(const COleDataObject* pDataObject);
Parámetros
pDataObject
Puntero al objeto COleDataObject desde el que se va a crear el elemento OLE.
Valor devuelto
Distinto de cero si el contenedor puede crear un objeto incrustado a partir del objeto COleDataObject
; en caso contrario, 0.
Comentarios
La clase COleDataObject
se usa en las transferencias de datos para recuperar datos en diferentes formatos del Portapapeles, mediante arrastrar y colocar o a partir de un elemento OLE incrustado.
Los contenedores pueden usar esta función para decidir si se debe habilitar o deshabilitar sus comandos Edit Paste y Edite Paste Special.
Para obtener más información, consulte el artículo Objetos de datos y orígenes de datos (OLE).
COleClientItem::CanCreateLinkFromData
Comprueba si una aplicación contenedora puede crear un objeto vinculado a partir del objeto COleDataObject
especificado.
static BOOL PASCAL CanCreateLinkFromData(const COleDataObject* pDataObject);
Parámetros
pDataObject
Puntero al objeto COleDataObject desde el que se va a crear el elemento OLE.
Valor devuelto
Distinto de cero si el contenedor puede crear un objeto vinculado a partir del objeto COleDataObject
.
Comentarios
La clase COleDataObject
se usa en las transferencias de datos para recuperar datos en diferentes formatos del Portapapeles, mediante arrastrar y colocar o a partir de un elemento OLE incrustado.
Los contenedores pueden usar esta función para decidir si se debe habilitar o deshabilitar sus comandos Edit Paste Special y Edite Paste Link.
Para obtener más información, consulte el artículo Objetos de datos y orígenes de datos (OLE).
COleClientItem::CanPaste
Llame a esta función para ver si se puede pegar un elemento OLE incrustado desde el Portapapeles.
static BOOL PASCAL CanPaste();
Valor devuelto
Distinto de cero si se puede pegar un elemento OLE incrustado desde el Portapapeles; de lo contrario, 0.
Comentarios
Para obtener más información, consulte OleGetClipboard y OleQueryCreateFromData en Windows SDK.
COleClientItem::CanPasteLink
Llame a esta función para ver si se puede pegar un elemento OLE incrustado desde el Portapapeles.
static BOOL PASCAL CanPasteLink();
Valor devuelto
Distinto de cero si se puede pegar un elemento OLE vinculado desde el Portapapeles; de lo contrario, 0.
Comentarios
Para obtener más información, consulte OleGetClipboard y OleQueryLinkFromData en Windows SDK.
COleClientItem::Close
Llame a esta función para cambiar el estado de un elemento OLE del estado en ejecución al estado cargado, es decir, cargado con su controlador en memoria, pero cuando el servidor no se esté ejecutando.
void Close(OLECLOSE dwCloseOption = OLECLOSE_SAVEIFDIRTY);
Parámetros
dwCloseOption
Marca que especifica en qué circunstancias se guarda el elemento OLE cuando vuelve al estado cargado. Puede tener uno de los siguientes valores:
OLECLOSE_SAVEIFDIRTY guarda el elemento OLE.
OLECLOSE_NOSAVE no guarda el elemento OLE.
OLECLOSE_PROMPTSAVE pregunta al usuario si desea guardar el elemento OLE.
Comentarios
Esta función no tiene ningún efecto cuando el elemento OLE no se está ejecutando.
Para obtener más información, vea IOleObject::Close en Windows SDK.
COleClientItem::COleClientItem
Construye un objeto COleClientItem
y lo agrega a la colección del documento contenedor de elementos de documento, que construye solo el objeto de C++ y no realiza ninguna inicialización OLE.
COleClientItem(COleDocument* pContainerDoc = NULL);
Parámetros
pContainerDoc
Puntero al documento contenedor que contendrá este elemento. Puede ser cualquier derivado de COleDocument.
Comentarios
Si pasa un puntero NULL, no se realiza ninguna adición al documento contenedor. Debe llamar explícitamente a la funciónCOleDocument::AddItem.
Debe llamar a una de las siguientes funciones miembro de creación antes de usar el elemento OLE:
COleClientItem::ConvertTo
Llame a esta función miembro para convertir el elemento en el tipo especificado por clsidNew.
virtual BOOL ConvertTo(REFCLSID clsidNew);
Parámetros
clsidNew
Identificador de clase del tipo de destino.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
COleConvertDialog realiza la llamada automáticamente. No es necesario realizar la llamada directa.
COleClientItem::CopyToClipboard
Llame a esta función para copiar el elemento OLE en el Portapapeles.
void CopyToClipboard(BOOL bIncludeLink = FALSE);
Parámetros
bIncludeLink
TRUE si se debe copiar la información del vínculo en el Portapapeles, lo que permite pegar un elemento vinculado; en caso contrario, FALSE.
Comentarios
Normalmente, se llama a esta función al escribir controladores de mensajes para los comandos Copiar o Cortar desde el menú Editar. Debe implementar la selección de elementos en la aplicación contenedora si desea implementar los comandos Copiar o Cortar.
Para más información, consulte OleSetClipboard en Windows SDK.
COleClientItem::CreateCloneFrom
Llame a esta función para crear una copia del elemento OLE especificado.
BOOL CreateCloneFrom(const COleClientItem* pSrcItem);
Parámetros
pSrcItem
Puntero al elemento OLE que se va a duplicar.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
La copia es idéntica al elemento de origen. Puede usar esta función para admitir operaciones de deshacer.
COleClientItem::CreateFromClipboard
Llame a esta función para crear un elemento incrustado a partir del contenido del Portapapeles.
BOOL CreateFromClipboard(
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parámetros
render
Marca que especifica cómo el servidor representará el elemento OLE. Para conocer los valores posibles, consulte OLERENDER en Windows SDK.
cfFormat
Especifica el formato de datos del Portapapeles que se va a almacenar en caché al crear el elemento OLE.
lpFormatEtc
Puntero a una estructura FORMATETC que se usa si render es OLERENDER_FORMAT o OLERENDER_DRAW. Proporcione un valor para este parámetro solo si desea especificar información de formato adicional más allá del formato del Portapapeles especificado por cfFormat. Si omite este parámetro, se usarán los valores predeterminados para los demás campos de la estructuraFORMATETC
.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Esta función suele llamarse desde el controlador de mensajes para el comando Pegar en el menú Editar. (El marco de trabajo habilita el comando Paste si la función miembro CanPaste devuelve un valor distinto de cero).
Para obtener más información, consulte OLERENDER y FORMATETC en Windows SDK.
COleClientItem::CreateFromData
Llame a esta función para crear un elemento incrustado a partir de un objeto COleDataObject
.
BOOL CreateFromData(
COleDataObject* pDataObject,
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parámetros
pDataObject
Puntero al objeto COleDataObject desde el que se va a crear el elemento OLE.
render
Marca que especifica cómo el servidor representará el elemento OLE. Para conocer los valores posibles, consulte OLERENDER en Windows SDK.
cfFormat
Especifica el formato de datos del Portapapeles que se va a almacenar en caché al crear el elemento OLE.
lpFormatEtc
Puntero a una estructura FORMATETC que se usa si render es OLERENDER_FORMAT o OLERENDER_DRAW. Proporcione un valor para este parámetro solo si desea especificar información de formato adicional más allá del formato del Portapapeles especificado por cfFormat. Si omite este parámetro, se usarán los valores predeterminados para los demás campos de la estructuraFORMATETC
.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Las operaciones de transferencia de datos, como pegar datos desde el Portapapeles o las operaciones de arrastrar y colocar, proporcionan objetos COleDataObject
que contienen la información que ofrece una aplicación de servidor. Normalmente se usa en la invalidación de CView::OnDrop.
Para obtener más información, consulte OleCreateFromData, OLERENDER y FORMATETC en Windows SDK.
COleClientItem::CreateFromFile
Llame a esta función para crear un elemento OLE incrustado a partir de un archivo.
BOOL CreateFromFile(
LPCTSTR lpszFileName,
REFCLSID clsid = CLSID_NULL,
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parámetros
lpszFileName
Puntero al nombre del archivo desde el que se va a crear el elemento OLE.
clsid
Reservado para uso futuro.
render
Marca que especifica cómo el servidor representará el elemento OLE. Para conocer los valores posibles, consulte OLERENDER en Windows SDK.
cfFormat
Especifica el formato de datos del Portapapeles que se va a almacenar en caché al crear el elemento OLE.
lpFormatEtc
Puntero a una estructura FORMATETC que se usa si render es OLERENDER_FORMAT o OLERENDER_DRAW. Proporcione un valor para este parámetro solo si desea especificar información de formato adicional más allá del formato del Portapapeles especificado por cfFormat. Si omite este parámetro, se usarán los valores predeterminados para los demás campos de la estructuraFORMATETC
.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
El marco de trabajo llama a esta función desde COleInsertDialog::CreateItem si el usuario elige Aceptar en el cuadro de diálogo Insertar objeto cuando se selecciona el botón Crear desde archivo.
Para obtener más información, consulte OleCreateFromFile, OLERENDER y FORMATETC en Windows SDK.
COleClientItem::CreateLinkFromClipboard
Llame a esta función para crear un elemento vinculado a partir del contenido del Portapapeles.
BOOL CreateLinkFromClipboard(
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parámetros
render
Marca que especifica cómo el servidor representará el elemento OLE. Para conocer los valores posibles, consulte OLERENDER en Windows SDK.
cfFormat
Especifica el formato de datos del Portapapeles que se va a almacenar en caché al crear el elemento OLE.
lpFormatEtc
Puntero a una estructura FORMATETC que se usa si render es OLERENDER_FORMAT o OLERENDER_DRAW. Proporcione un valor para este parámetro solo si desea especificar información de formato adicional más allá del formato del Portapapeles especificado por cfFormat. Si omite este parámetro, se usarán los valores predeterminados para los demás campos de la estructuraFORMATETC
.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Esta función suele llamarse desde el controlador de mensajes para el comando Paste Link en el menú Editar. (El comando Paste Link está habilitado en la implementación predeterminada de COleDocument si el Portapapeles contiene un elemento OLE al que se puede vincular).
Para obtener más información, consulte OLERENDER y FORMATETC en Windows SDK.
COleClientItem::CreateLinkFromData
Llame a esta función para crear un elemento vinculado a partir de un objeto COleDataObject
.
BOOL CreateLinkFromData(
COleDataObject* pDataObject,
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parámetros
pDataObject
Puntero al objeto COleDataObject desde el que se va a crear el elemento OLE.
render
Marca que especifica cómo el servidor representará el elemento OLE. Para conocer los valores posibles, consulte OLERENDER en Windows SDK.
cfFormat
Especifica el formato de datos del Portapapeles que se va a almacenar en caché al crear el elemento OLE.
lpFormatEtc
Puntero a una estructura FORMATETC que se usa si render es OLERENDER_FORMAT o OLERENDER_DRAW. Proporcione un valor para este parámetro solo si desea especificar información de formato adicional más allá del formato del Portapapeles especificado por cfFormat. Si omite este parámetro, se usarán los valores predeterminados para los demás campos de la estructuraFORMATETC
.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Llame a esta función durante una operación de eliminación cuando el usuario indique que se debe crear un vínculo. También se puede usar para controlar el comando Edit Paste. El marco de trabajo llama esta función en COleClientItem::CreateLinkFromClipboard
y en COlePasteSpecialDialog::CreateItem cuando se ha seleccionado la opción Link.
Para obtener más información, consulte OleCreateLinkFromData, OLERENDER y FORMATETC en Windows SDK.
COleClientItem::CreateLinkFromFile
Llame a esta función para crear un elemento OLE vinculado a partir de un archivo.
BOOL CreateLinkFromFile(
LPCTSTR lpszFileName,
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parámetros
lpszFileName
Puntero al nombre del archivo desde el que se va a crear el elemento OLE.
render
Marca que especifica cómo el servidor representará el elemento OLE. Para conocer los valores posibles, consulte OLERENDER en Windows SDK.
cfFormat
Especifica el formato de datos del Portapapeles que se va a almacenar en caché al crear el elemento OLE.
lpFormatEtc
Puntero a una estructura FORMATETC que se usa si render es OLERENDER_FORMAT o OLERENDER_DRAW. Proporcione un valor para este parámetro solo si desea especificar información de formato adicional más allá del formato del Portapapeles especificado por cfFormat. Si omite este parámetro, se usarán los valores predeterminados para los demás campos de la estructuraFORMATETC
.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
El marco de trabajo llama a esta función desde si el usuario elige Aceptar en el cuadro de diálogo Insertar objeto cuando se selecciona el botón Crear desde archivo y se activa la casilla de verificación Vínculo. Esta función se llama desde COleInsertDialog::CreateItem.
Para obtener más información, consulte OleCreateLinkToFile, OLERENDER y FORMATETC en Windows SDK.
COleClientItem::CreateNewItem
Llame a esta función para crear un elemento incrustado; esta función inicia la aplicación de servidor que permite al usuario crear el elemento OLE.
BOOL CreateNewItem(
REFCLSID clsid,
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parámetros
clsid
Identificador que identifica de forma única el tipo de elemento OLE que se va a crear.
render
Marca que especifica cómo el servidor representará el elemento OLE. Para conocer los valores posibles, consulte OLERENDER en Windows SDK.
cfFormat
Especifica el formato de datos del Portapapeles que se va a almacenar en caché al crear el elemento OLE.
lpFormatEtc
Puntero a una estructura FORMATETC que se usa si render es OLERENDER_FORMAT o OLERENDER_DRAW. Proporcione un valor para este parámetro solo si desea especificar información de formato adicional más allá del formato del Portapapeles especificado por cfFormat. Si omite este parámetro, se usarán los valores predeterminados para los demás campos de la estructuraFORMATETC
.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
El marco llama a esta función si el usuario elige Aceptar en el cuadro de diálogo Insertar objeto cuando se selecciona el botón Crear nuevo.
Para obtener más información, consulte OleCreate, OLERENDER y FORMATETC en Windows SDK.
COleClientItem::CreateStaticFromClipboard
Llame a esta función para crear un elemento estático a partir del contenido del Portapapeles.
BOOL CreateStaticFromClipboard(
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parámetros
render
Marca que especifica cómo el servidor representará el elemento OLE. Para conocer los valores posibles, consulte OLERENDER en Windows SDK.
cfFormat
Especifica el formato de datos del Portapapeles que se va a almacenar en caché al crear el elemento OLE.
lpFormatEtc
Puntero a una estructura FORMATETC que se usa si render es OLERENDER_FORMAT o OLERENDER_DRAW. Proporcione un valor para este parámetro solo si desea especificar información de formato adicional más allá del formato del Portapapeles especificado por cfFormat. Si omite este parámetro, se usarán los valores predeterminados para los demás campos de la estructuraFORMATETC
.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Un elemento estático contiene los datos de presentación, pero no los datos nativos; por lo tanto, no se puede editar. Esta función se suele llamar si se produce un error en la función miembro CreateFromClipboard.
Para obtener más información, consulte OLERENDER y FORMATETC en Windows SDK.
COleClientItem::CreateStaticFromData
Llame a esta función para crear un elemento estático a partir de un objeto COleDataObject
.
BOOL CreateStaticFromData(
COleDataObject* pDataObject,
OLERENDER render = OLERENDER_DRAW,
CLIPFORMAT cfFormat = 0,
LPFORMATETC lpFormatEtc = NULL);
Parámetros
pDataObject
Puntero al objeto COleDataObject desde el que se va a crear el elemento OLE.
render
Marca que especifica cómo el servidor representará el elemento OLE. Para conocer los valores posibles, consulte OLERENDER en Windows SDK.
cfFormat
Especifica el formato de datos del Portapapeles que se va a almacenar en caché al crear el elemento OLE.
lpFormatEtc
Puntero a una estructura FORMATETC que se usa si render es OLERENDER_FORMAT o OLERENDER_DRAW. Proporcione un valor para este parámetro solo si desea especificar información de formato adicional más allá del formato del Portapapeles especificado por cfFormat. Si omite este parámetro, se usarán los valores predeterminados para los demás campos de la estructuraFORMATETC
.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Un elemento estático contiene los datos de presentación, pero no los datos nativos; por lo tanto, no se puede editar. Básicamente, esto es lo mismo que CreateStaticFromClipboard, excepto que se puede crear un elemento estático a partir de un elemento COleDataObject
arbitrario, no solo desde el Portapapeles.
Se usa en COlePasteSpecialDialog::CreateItem cuando se selecciona Static.
Para obtener más información, consulte OleCreateStaticFromData, OLERENDER y FORMATETC en Windows SDK.
COleClientItem::Deactivate
Llame a esta función para desactivar el elemento OLE y liberar los recursos asociados.
void Deactivate();
Comentarios
Normalmente, desactiva un elemento OLE activo local cuando el usuario hace clic en el mouse en el área cliente fuera de los límites del elemento. Tenga en cuenta que la desactivación del elemento OLE descartará su estado de deshacer, lo que hace imposible llamar a la función miembro ReactivateAndUndo.
Si la aplicación admite deshacer, no llame a Deactivate
; en su lugar, llame a DeactivateUI.
Para obtener más información, vea IOleInPlaceObject::InPlaceDeactivate en Windows SDK.
COleClientItem::DeactivateUI
Llame a esta función cuando el usuario desactive un elemento que se activó en su lugar.
void DeactivateUI();
Comentarios
Esta función restaura la interfaz de usuario de la aplicación contenedora a su estado original y oculta los menús junto con otros controles creados para la activación local.
Esta función no vacía la información de estado de deshacer para el elemento. Esa información se conserva para que ReactivateAndUndo se pueda usar más adelante para ejecutar un comando de deshacer en la aplicación de servidor, en caso de que el comando de deshacer del contenedor se elija inmediatamente después de desactivar el elemento.
Para obtener más información, vea IOleInPlaceObject::InPlaceDeactivate en Windows SDK.
COleClientItem::Delete
Llame a esta función para eliminar el elemento OLE del documento de contenedor.
void Delete(BOOL bAutoDelete = TRUE);
Parámetros
bAutoDelete
Especifica si el elemento se va a quitar del documento.
Comentarios
Esta función llama a la función miembro Release, que a su vez elimina el objeto de C++ para el elemento, quitando permanentemente el elemento OLE del documento. Si el elemento OLE está incrustado, se eliminan los datos nativos del elemento. Siempre cierra un servidor en ejecución; por lo tanto, si el elemento es un vínculo abierto, esta función la cierra.
COleClientItem::DoDragDrop
Llame a la función miembro DoDragDrop
para realizar una operación de arrastrar y colocar.
DROPEFFECT DoDragDrop(
LPCRECT lpItemRect,
CPoint ptOffset,
BOOL bIncludeLink = FALSE,
DWORD dwEffects = DROPEFFECT_COPY | DROPEFFECT_MOVE,
LPCRECT lpRectStartDrag = NULL);
Parámetros
lpItemRect
Rectángulo del elemento en pantalla en coordenadas de cliente (píxeles).
ptOffset
El desplazamiento en lpItemRect donde se encontraba la posición del ratón en el momento del arrastre.
bIncludeLink
Establezca este elemento en TRUE si los datos del vínculo se deben copiar en el Portapapeles. Establezca este elemento en FALSE si la aplicación de servidor no admite vínculos.
dwEffects
Determina los efectos que permitirá el origen de arrastre en la operación de arrastre.
lpRectStartDrag
Puntero al rectángulo que define dónde se inicia realmente el arrastre. Para obtener más información, vea la sección Comentarios que se muestra más adelante.
Valor devuelto
Valor DROPEFFECT. Si es DROPEFFECT_MOVE, se deben quitar los datos originales.
Comentarios
La operación de arrastrar y colocar no se inicia inmediatamente. Espera hasta que el cursor del mouse salga del rectángulo especificado por lpRectStartDrag o hasta que haya transcurrido un número especificado de milisegundos. Si lpRectStartDrag es NULL, el tamaño del rectángulo es de un píxel.
El tiempo de retraso se especifica con una configuración de clave del Registro. Llame a CWinApp::WriteProfileString o CWinApp::WriteProfileInt para cambiar el tiempo de retraso. Si no especifica el tiempo de retraso, se usará un valor predeterminado de 200 milisegundos. El tiempo de retraso de arrastre se almacena de la siguiente manera:
El tiempo de retraso de arrastre de Windows NT se almacena en HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\NT\CurrentVersion\IniFileMapping\win.ini\Windows\DragDelay.
El tiempo de retraso de arrastre de Windows 3.x se almacena en el archivo WIN.INI, en la sección [Windows}.
El tiempo de retraso de arrastre de Windows 95/98 se almacena en una versión almacenada en caché de WIN.INI.
Para obtener más información sobre cómo se almacena la información de retraso de arrastre en el Registro o en el archivo .INI, consulte WriteProfileString en Windows SDK.
COleClientItem::DoVerb
Llame a DoVerb
para ejecutar el verbo especificado.
virtual BOOL DoVerb(
LONG nVerb,
CView* pView,
LPMSG lpMsg = NULL);
Parámetros
nVerb
Especifica el verbo que se va a ejecutar. Puede incluir uno de los siguientes valores:
Valor | Significado | Símbolo |
---|---|---|
- 0 | verbo principal | OLEIVERB_PRIMARY |
- 1 | Verbo secundario | (Ninguna) |
- 1 | Mostrar el elemento para su edición | OLEIVERB_SHOW |
- 2 | Edición del elemento en una ventana independiente | OLEIVERB_OPEN |
- 3 | Ocultar el elemento | OLEIVERB_HIDE |
El valor -1 suele ser un alias para otro verbo. Si no se admite la edición abierta, -2 tiene el mismo efecto que -1. Para obtener valores adicionales, consulte IOleObject::DoVerb en Windows SDK.
pView
Puntero a la ventana de vista; el servidor usa esto para la activación local. Este parámetro debe ser NULL si la aplicación contenedora no permite la activación local.
lpMsg
Puntero al mensaje que provocó la activación del elemento.
Valor devuelto
Distinto de cero si el verbo se ejecutó correctamente; de lo contrario, 0.
Comentarios
Esta función llama a la función miembro Activate para ejecutar el verbo. También detecta excepciones y muestra un cuadro de mensaje al usuario si se produce uno.
Si el verbo principal es Edit y se especifica zero en el parámetro nVerb, se inicia la aplicación de servidor para permitir que se edite el elemento OLE. Si la aplicación contenedora admite la activación local, la edición se puede realizar en contexto. Si el contenedor no admite la activación local (o si se especifica el verbo Open), el servidor se inicia en una ventana independiente y se puede editar allí. Normalmente, cuando el usuario de la aplicación contenedora hace doble clic en el elemento OLE, el valor del verbo principal en el parámetro nVerb determina qué acción puede realizar el usuario. Sin embargo, si el servidor solo admite una acción, realiza esa acción, independientemente del valor especificado en el parámetro nVerb.
COleClientItem::Draw
Llame a esta función para dibujar el elemento OLE en el rectángulo delimitador especificado mediante el contexto de dispositivo especificado.
BOOL Draw(
CDC* pDC,
LPCRECT lpBounds,
DVASPECT nDrawAspect = (DVASPECT)-1);
Parámetros
pDC
Puntero a un objeto CDC que se usa para dibujar el elemento OLE.
lpBounds
Puntero a un objeto CRect o estructura RECT
que define el rectángulo delimitador en el que se va a dibujar el elemento OLE (en unidades lógicas determinadas por el contexto del dispositivo).
nDrawAspect
Especifica el aspecto del elemento OLE, es decir, cómo se debe mostrar. Si nDrawAspect es -1, se usa el último conjunto de aspectos mediante SetDrawAspect. Para obtener más información sobre posibles valores para esta marca, vea SetDrawAspect.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
La función puede usar la representación del metarchivo del elemento OLE que creó la función miembro OnDraw de COleServerItem
.
Normalmente se usa Draw
para la pantalla, pasando el contexto del dispositivo de pantalla como pDC. En este caso, solo debe especificar los dos primeros parámetros.
El parámetro lpBounds identifica el rectángulo en el contexto del dispositivo de destino (en relación con su modo de asignación actual). La representación puede implicar el escalado de la imagen y se puede usar en las aplicaciones contenedoras para imponer una vista que se escala entre la vista mostrada y la imagen impresa final.
Para obtener más información, vea IViewObject::Draw en Windows SDK.
COleClientItem::GetActiveView
Devuelve la vista en la que se activa el elemento local.
CView* GetActiveView() const;
Valor devuelto
Puntero a la vista; de lo contrario, NULL si el elemento no está activado de forma local.
COleClientItem::GetCachedExtent
Llame a esta función para recuperar el tamaño del elemento OLE.
BOOL GetCachedExtent(
LPSIZE lpSize,
DVASPECT nDrawAspect = (DVASPECT)-1);
Parámetros
lpSize
Puntero a una estructura SIZE
o un objeto CSize que recibirá la información de tamaño.
nDrawAspect
Especifica el aspecto del elemento OLE cuyos límites se van a recuperar. Para ver los valores posibles, consulte SetDrawAspect.
Valor devuelto
Distinto de cero si se realiza correctamente; 0 si el elemento OLE está en blanco.
Comentarios
Esta función proporciona la misma información que GetExtent. Sin embargo, puede llamar a GetCachedExtent
para obtener información de extensión durante el procesamiento de otros controladores OLE, como OnChange. Las dimensiones están en unidades de MM_HIMETRIC.
Esto es posible porque GetCachedExtent
usa la interfaz IViewObject2 en lugar de usar la interfaz IOleObject para obtener la extensión de este elemento. El objeto COM IViewObject2
almacena en caché la información de extensión utilizada en la llamada anterior a IViewObject::Draw.
Para obtener más información, vea IViewObject2::GetExtent en Windows SDK.
COleClientItem::GetClassID
Devuelve el identificador de clase del elemento en la memoria a la que apunta pClassID.
void GetClassID(CLSID* pClassID) const;
Parámetros
pClassID
Puntero a un identificador de tipo CLSID para recuperar el identificador de clase. Para obtener información sobre CLSID, consulte Windows SDK.
Comentarios
El identificador de clase es un número de 128 bits que identifica de forma única la aplicación que edita el elemento.
Para obtener más información, vea IPersist::GetClassID en Windows SDK.
COleClientItem::GetClipboardData
Llame a esta función para obtener un objeto COleDataSource
que contenga todos los datos que se colocarían en el Portapapeles mediante una llamada a la función miembro CopyToClipboard.
void GetClipboardData(
COleDataSource* pDataSource,
BOOL bIncludeLink = FALSE,
LPPOINT lpOffset = NULL,
LPSIZE lpSize = NULL);
Parámetros
pDataSource
Puntero a un objeto COleDataSource que recibirá los datos contenidos en el elemento OLE.
bIncludeLink
TRUE si se deben incluir datos de vínculo; en caso contrario, FALSE.
lpOffset
El desplazamiento del cursor del ratón desde el origen del objeto en píxeles.
lpSize
El tamaño del objeto en píxeles.
Comentarios
GetClipboardData
se llama como implementación predeterminada de OnGetClipboardData. Invalide OnGetClipboardData
solo si desea ofrecer formatos de datos además de los que ofrece CopyToClipboard
. Coloque esos formatos en el objeto COleDataSource
antes o después de llamar a CopyToClipboard
y, a continuación, pase el objeto COleDataSource
a la función COleDataSource::SetClipboard. Por ejemplo, si desea que la posición del elemento OLE en su documento contenedor lo acompañe en el Portapapeles, debe definir su propio formato para pasar esa información y colocarla en COleDataSource
antes de llamar a CopyToClipboard
.
COleClientItem::GetDocument
Llame a esta función para obtener un puntero al documento que contiene el elemento OLE.
COleDocument* GetDocument() const;
Valor devuelto
Puntero al documento que contiene el elemento OLE. NULL si el elemento no forma parte de un documento.
Comentarios
Este puntero permite el acceso al objeto COleDocument
que pasó como argumento al constructor COleClientItem
.
COleClientItem::GetDrawAspect
Llame a la función miembro GetDrawAspect
para determinar el "aspecto" actual o la vista del elemento.
DVASPECT GetDrawAspect() const;
Valor devuelto
Valor de la enumeración DVASPECT, cuyos valores se enumeran en la referencia de SetDrawAspect.
Comentarios
El aspecto especifica cómo se va a representar el elemento.
COleClientItem::GetExtent
Llame a esta función para recuperar el tamaño del elemento OLE.
BOOL GetExtent(
LPSIZE lpSize,
DVASPECT nDrawAspect = (DVASPECT)- 1);
Parámetros
lpSize
Puntero a una estructura SIZE
o un objeto CSize
que recibirá la información de tamaño.
nDrawAspect
Especifica el aspecto del elemento OLE cuyos límites se van a recuperar. Para ver los valores posibles, consulte SetDrawAspect.
Valor devuelto
Distinto de cero si se realiza correctamente; 0 si el elemento OLE está en blanco.
Comentarios
Si la aplicación de servidor se escribió mediante la Biblioteca de Microsoft Foundation Class, esta función hace que se llame la función miembro OnGetExtent del objeto COleServerItem
correspondiente. Tenga en cuenta que el tamaño recuperado puede diferir del último conjunto establecido por la función miembro SetExtent; el tamaño especificado por SetExtent
se trata como una sugerencia. Las dimensiones están en unidades de MM_HIMETRIC.
Nota:
No llame a GetExtent
durante el procesamiento de un controlador OLE, como, por ejemplo, OnChange. Llame a GetCachedExtent en su lugar.
Para obtener más información, vea IOleObject::GetExtent en Windows SDK.
COleClientItem::GetIconFromRegistry
Llame a esta función miembro para recuperar un manipulador de un recurso de icono asociado al servidor de un CLSID determinado.
HICON GetIconFromRegistry() const;
static HICON GetIconFromRegistry(CLSID& clsid);
Parámetros
clsid
Referencia al CLSID del servidor asociado al icono.
Valor devuelto
Identificador válido para el recurso de icono, o NULL si no se encuentra el icono del servidor o un icono predeterminado.
Comentarios
Esta función miembro no iniciará el servidor ni obtendrá un icono dinámicamente, incluso si el servidor ya se está ejecutando. En su lugar, esta función miembro abre la imagen ejecutable del servidor y recupera el icono estático asociado al servidor tal como se registró.
COleClientItem::GetIconicMetafile
Almacena en caché el metarchivo utilizado para dibujar el icono del elemento.
HGLOBAL GetIconicMetafile();
Valor devuelto
Identificador del metarchivo si se ejecuta correctamente; en caso contrario, NULL.
Comentarios
Si no hay ningún icono actual, se devuelve un icono predeterminado. Los diálogos MFC/OLE llaman automáticamente a esta función y normalmente no se llama directamente.
Esta función también llama a SetIconicMetafile para almacenar en caché el metarchivo para su uso posterior.
COleClientItem::GetInPlaceWindow
Llame a la función miembro GetInPlaceWindow
para obtener un puntero a la ventana en la que se ha abierto el elemento para la edición local.
CWnd* GetInPlaceWindow();
Valor devuelto
Puntero a la ventana de edición local del elemento; NULL si el elemento no está activo o si su servidor no está disponible.
Comentarios
Solo se debe llamar a esta función para los elementos que están activos de forma local.
COleClientItem::GetItemState
Llame a esta función para obtener el estado actual del elemento OLE.
UINT GetItemState() const;
Valor devuelto
Valor enumerado COleClientItem::ItemState
, que puede ser uno de los siguientes: emptyState
, loadedState
, openState
, activeState
, activeUIState
. Para obtener información sobre estos estados, consulte el artículo Contenedores: estados cliente-elemento.
Comentarios
Para recibir una notificación cuando cambie el estado del elemento OLE, use la función miembro OnChange.
Para obtener más información, consulte el artículo Contenedores: estados cliente-elemento.
COleClientItem::GetLastStatus
Devuelve el código de estado de la última operación OLE.
SCODE GetLastStatus() const;
Valor devuelto
Valor SCODE.
Comentarios
Para las funciones miembro que devuelven un valor BOOL FALSE u otras funciones miembro que devuelven NULL, GetLastStatus
devuelve información de error más detallada. Tenga en cuenta que la mayoría de las funciones miembro OLE producen excepciones para errores más graves. La información específica sobre la interpretación del SCODE depende de la llamada OLE subyacente que devolvió por última vez un valor SCODE.
Para obtener más información sobre SCODE, vea Estructura de códigos de error COM en la documentación de Windows SDK.
COleClientItem::GetLinkUpdateOptions
Llame a esta función para obtener el valor actual de la opción link-update para el elemento OLE.
OLEUPDATE GetLinkUpdateOptions();
Valor devuelto
Uno de los siguientes valores:
OLEUPDATE_ALWAYS Actualiza el elemento vinculado siempre que sea posible. Esta opción admite el botón de radio Actualización automática de vínculos en el cuadro de diálogo Vínculos.
OLEUPDATE_ONCALL Actualiza el elemento vinculado solo a petición de la aplicación contenedora (cuando se llama a la función miembro UpdateLink). Esta opción admite el botón de radio Actualización manual de vínculos en el cuadro de diálogo Vínculos.
Comentarios
Se trata de una operación avanzada.
La clase COleLinksDialog llama automáticamente a esta función.
Para obtener más información, vea IOleLink::GetUpdateOptions en Windows SDK.
COleClientItem::GetType
Llame a esta función para determinar si el elemento OLE está incrustado, vinculado o si es estático.
OLE_OBJTYPE GetType() const;
Valor devuelto
Entero sin signo con uno de los valores siguientes:
OT_LINK El elemento OLE es un vínculo.
OT_EMBEDDED El elemento OLE está incrustado.
OT_STATIC El elemento OLE es estático, es decir, solo contiene datos de presentación sin datos nativos y, por lo tanto, no se puede editar.
COleClientItem::GetUserType
Llame a esta función para obtener la cadena visible para el usuario que describe el tipo del elemento OLE, como, por ejemplo, "Documento de Word".
void GetUserType(
USERCLASSTYPE nUserClassType,
CString& rString);
Parámetros
nUserClassType
Valor que indica la variante deseada de la cadena que describe el tipo del elemento OLE. Puede tener uno de los siguientes valores:
USERCLASSTYPE_FULL Nombre de tipo completo que se muestra al usuario.
USERCLASSTYPE_SHORT Nombre corto (máximo de 15 caracteres) para el uso en menús emergentes y el cuadro de diálogo Editar vínculos.
USERCLASSTYPE_APPNAME Nombre de la aplicación que presta servicio a la clase.
rString
Referencia a un objeto CString al que se va a devolver la cadena que describe el tipo del elemento OLE.
Comentarios
Suele ser la entrada en la base de datos de registro del sistema.
Si se solicita el nombre de tipo completo, pero este no está disponible, se usará en su lugar el nombre corto. Si no se encuentra ninguna entrada para el tipo de elemento OLE en la base de datos de registro o si no hay ningún tipo de usuario registrado para el tipo de elemento OLE, se usará el tipo de usuario almacenado actualmente en el elemento OLE. Si ese nombre de tipo de usuario es una cadena vacía, se usará "Objeto desconocido".
Para obtener más información, vea IOleObject::GetUserType en Windows SDK.
COleClientItem::IsInPlaceActive
Llame a esta función para ver si el elemento OLE está activo en el entorno local.
BOOL IsInPlaceActive() const;
Valor devuelto
Distinto de cero si el elemento OLE está activo en el entorno local; de lo contrario, 0.
Comentarios
Es habitual ejecutar una lógica diferente en función de si el elemento se está editando en el entorno local. La función comprueba si el estado del elemento actual es igual aactiveState
o activeUIState
.
COleClientItem::IsLinkUpToDate
Llame a esta función para ver si el elemento OLE está actualizado.
BOOL IsLinkUpToDate() const;
Valor devuelto
Distinto de cero si el elemento OLE está actualizado; de lo contrario, 0.
Comentarios
Un elemento vinculado puede estar obsoleto si se ha actualizado su documento de origen. Un elemento incrustado que contiene vínculos dentro de él puede quedar obsoleto de forma similar. La función realiza una comprobación recursiva del elemento OLE. Tenga en cuenta que determinar si un elemento OLE está obsoleto puede ser tan costoso como si se realiza una actualización.
La implementación de COleLinksDialog llama automáticamente a esta función.
Para obtener más información, vea IOleObject::IsUpToDate en Windows SDK.
COleClientItem::IsModified
Llame a esta función para ver si el elemento OLE está sucio (modificado desde que se guardó por última vez).
BOOL IsModified() const;
Valor devuelto
Distinto de cero si el elemento OLE está sucio; de lo contrario, 0.
Comentarios
Para obtener más información, vea IPersistStorage::IsDirty en Windows SDK.
COleClientItem::IsOpen
Llame a esta función para ver si el elemento OLE está abierto; es decir, si está abierto en una instancia de la aplicación de servidor que se ejecuta en una ventana independiente.
BOOL IsOpen() const;
Valor devuelto
Distinto de cero si el elemento OLE está abierto; de lo contrario, 0.
Comentarios
Se usa para determinar cuándo dibujar el objeto con un patrón de sombreado. Un objeto abierto debe tener un patrón de sombreado dibujado sobre el objeto. Puede usar el objeto CRectTracker para hacerlo.
COleClientItem::IsRunning
Llame a esta función para ver si el elemento OLE se está ejecutando; es decir, si el elemento se carga y se ejecuta en la aplicación de servidor.
BOOL IsRunning() const;
Valor devuelto
Distinto de cero si el elemento OLE está en ejecución; de lo contrario, 0.
Comentarios
Para más información, consulte OleIsRunning en Windows SDK.
COleClientItem::OnActivate
El marco de trabajo llama a esta clase para notificar al elemento que acaba de activarse en el entorno local.
virtual void OnActivate();
Comentarios
Tenga en cuenta que se llama a esta función para indicar que el servidor se está ejecutando, no para indicar que su interfaz de usuario se ha instalado en la aplicación contenedora. En este momento, el objeto no tiene una interfaz de usuario activa (no es activeUIState
). No ha instalado sus menús ni la barra de herramientas. Cuando esto sucede, se llama a la función miembro OnActivateUI.
La implementación predeterminada llama a la función miembro OnChange con OLE_CHANGEDSTATE como parámetro. Invalide esta función para realizar el procesamiento personalizado cuando un elemento se activa en el entorno local.
COleClientItem::OnActivateUI
El marco de trabajo llama a OnActivateUI
cuando el objeto ha entrado en el estado de la interfaz de usuario activa.
virtual void OnActivateUI();
Comentarios
El objeto ha instalado ahora su barra de herramientas y sus menús.
La implementación predeterminada recuerda el HWND del servidor para las llamadas posteriores a GetServerWindow
.
COleClientItem::OnChange
El marco de trabajo llama a esta clase cuando el usuario modifica, guarda o cierra el elemento OLE.
virtual void OnChange(
OLE_NOTIFICATION nCode,
DWORD dwParam);
Parámetros
nCode
Motivo por el que el servidor cambió este elemento. Puede tener uno de los siguientes valores:
OLE_CHANGED Ha cambiado la apariencia del elemento OLE.
OLE_SAVED Se ha guardado el elemento OLE.
OLE_CLOSED Se ha cerrado el elemento OLE.
OLE_CHANGED_STATE El elemento OLE ha cambiado de un estado a otro.
dwParam
Si nCode es OLE_SAVED o OLE_CLOSED, este parámetro no se usa. Si nCode es OLE_CHANGED, este parámetro especifica el aspecto del elemento OLE que ha cambiado. Para conocer los valores posibles, consulte el parámetro dwParam de COleClientItem::Draw. Si nCode es OLE_CHANGED_STATE, este parámetro es un valor enumerado COleClientItem::ItemState
y describe el estado especificado. Puede tener uno de los siguientes valores: emptyState
, loadedState
, openState
, activeState
o activeUIState
.
Comentarios
(Si la aplicación de servidor se escribe mediante la biblioteca Microsoft Foundation Class, se llama a esta función en respuesta a las funciones miembro Notify
de COleServerDoc
o COleServerItem
). La implementación predeterminada marca el documento contenedor como modificado si nCode es OLE_CHANGED o OLE_SAVED.
Para OLE_CHANGED_STATE, el estado actual devuelto de GetItemState seguirá siendo el estado anterior, es decir, el estado que era el actual antes de este cambio de estado.
Invalide esta función para responder a los cambios en el estado del elemento OLE. Normalmente, se actualiza la apariencia del elemento al invalidar el área en la que se muestra el elemento. Llame a la implementación de la clase base al principio de la invalidación.
COleClientItem::OnChangeItemPosition
El marco de trabajo llama a esta clase para notificar al contenedor de que la extensión del elemento OLE ha cambiado durante la activación local.
virtual BOOL OnChangeItemPosition(const CRect& rectPos);
Parámetros
rectPos
Indica la posición del elemento en relación con el área cliente de la aplicación contenedora.
Valor devuelto
Distinto de cero si la posición del elemento se cambia correctamente; de lo contrario, 0.
Comentarios
La implementación predeterminada determina el nuevo rectángulo visible del elemento OLE y llama a SetItemRects con los nuevos valores. La implementación predeterminada calcula el rectángulo visible para el elemento y pasa esa información al servidor.
Invalide esta función para aplicar reglas especiales a la operación de cambio de tamaño o movimiento. Si la aplicación está escrita en MFC, esta llamada se produce porque el servidor llamó a COleServerDoc::RequestPositionChange.
COleClientItem::OnDeactivate
El marco de trabajo llama a esta función cuando el elemento OLE pasa del estado activo local (activeState
) al estado cargado, lo que significa que se desactiva después de una activación local.
virtual void OnDeactivate();
Comentarios
Tenga en cuenta que se llama a esta función para indicar que el elemento OLE está cerrado, no que su interfaz de usuario se haya quitado de la aplicación contenedora. Cuando esto sucede, se llama a la función miembro OnDeactivateUI.
La implementación predeterminada llama a la función miembro OnChange con OLE_CHANGEDSTATE como parámetro. Invalide esta función para realizar el procesamiento personalizado cuando se desactiva un elemento activo en el entorno local. Por ejemplo, si admite el comando deshacer en la aplicación contenedora, puede invalidar esta función para descartar el estado de deshacer, lo que indica que la última operación realizada en el elemento OLE no se puede deshacer una vez desactivado el elemento.
COleClientItem::OnDeactivateAndUndo
El marco de trabajo llama a esta función cuando el usuario invoca el comando tras activar el elemento OLE en el entorno local.
virtual void OnDeactivateAndUndo();
Comentarios
La implementación predeterminada llama a DeactivateUI para desactivar la interfaz de usuario del servidor. Invalide esta función si va a implementar el comando deshacer en la aplicación contenedora. En la invalidación, llame a la versión de clase base de la función y, a continuación, deshaga el último comando ejecutado en la aplicación.
Para obtener más información, vea IOleInPlaceSite::DeactivateAndUndo en Windows SDK.
COleClientItem::OnDeactivateUI
Se llama a esta función cuando el usuario desactiva un elemento que estaba activo en el entorno local.
virtual void OnDeactivateUI(BOOL bUndoable);
Parámetros
bUndoable
Especifica si los cambios de edición se pueden deshacer.
Comentarios
Esta función restaura la interfaz de usuario de la aplicación contenedora a su estado original y oculta los menús junto con otros controles creados para la activación local.
Si bUndoable es FALSE, el contenedor debe deshabilitar el comando deshacer en efecto, lo que descarta el estado de deshacer del contenedor, ya que indica que la última operación realizada por el servidor no se puede deshacer.
COleClientItem::OnDiscardUndoState
El marco de trabajo llama a esta función cuando el usuario realiza una acción que descarta el estado de deshacer mientras edita el elemento OLE.
virtual void OnDiscardUndoState();
Comentarios
La implementación predeterminada no hace nada. Invalide esta función si va a implementar el comando deshacer en la aplicación contenedora. En la invalidación, descarte el estado de deshacer de la aplicación contenedora.
Si el servidor se escribió con la biblioteca Microsoft Foundation Class (MFC), el servidor puede hacer que se llame a esta función al llamar a COleServerDoc::DiscardUndoState.
Para obtener más información, vea IOleInPlaceSite::DiscardUndoState en Windows SDK.
COleClientItem::OnGetClipboardData
El marco de trabajo llama a esta función para obtener un objeto COleDataSource
que contiene todos los datos que se colocarían en el Portapapeles mediante una llamada a la función miembro CopyToClipboard o DoDragDrop.
virtual COleDataSource* OnGetClipboardData(
BOOL bIncludeLink,
LPPOINT lpOffset,
LPSIZE lpSize);
Parámetros
bIncludeLink
Establezca este elemento en TRUE si los datos del vínculo se deben copiar en el Portapapeles. Establezca este elemento en FALSE si la aplicación de servidor no admite vínculos.
lpOffset
Puntero al desplazamiento del cursor del mouse desde el origen del objeto en píxeles.
lpSize
Puntero al tamaño del objeto en píxeles.
Valor devuelto
Puntero a un objeto COleDataSource que contiene los datos del Portapapeles.
Comentarios
La implementación predeterminada de esta función llama a GetClipboardData.
COleClientItem::OnGetClipRect
El marco de trabajo llama a la función miembro OnGetClipRect
para obtener las coordenadas del rectángulo de recorte del elemento que se está editando en el entorno local.
virtual void OnGetClipRect(CRect& rClipRect);
Parámetros
rClipRect
Puntero a un objeto de la clase CRect que contendrá las coordenadas del rectángulo de recorte del elemento.
Comentarios
Las coordenadas se proporcionan en píxeles en relación con el área cliente de la ventana de la aplicación contenedora.
La implementación predeterminada simplemente devuelve el rectángulo de cliente de la vista en la que el elemento está activo en el entorno local.
COleClientItem::OnGetItemPosition
El marco de trabajo llama a la función miembro OnGetItemPosition
para obtener las coordenadas del elemento que se está editando en el entorno local.
virtual void OnGetItemPosition(CRect& rPosition);
Parámetros
rPosition
Referencia al objeto CRect que contendrá las coordenadas de posición del elemento.
Comentarios
Las coordenadas se proporcionan en píxeles en relación con el área cliente de la ventana de la aplicación contenedora.
La implementación predeterminada de esta función no hace nada. Las aplicaciones que admiten la edición local requieren su implementación.
COleClientItem::OnGetWindowContext
El marco de trabajo llama a esta función cuando se activa un elemento en el entorno local.
virtual BOOL OnGetWindowContext(
CFrameWnd** ppMainFrame,
CFrameWnd** ppDocFrame,
LPOLEINPLACEFRAMEINFO lpFrameInfo);
Parámetros
ppMainFrame
Puntero a un puntero a la ventana de marco principal.
ppDocFrame
Puntero a un puntero a la ventana de marco del documento.
lpFrameInfo
Puntero a una estructura OLEINPLACEFRAMEINFO que recibirá información de la ventana de marco.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Esta función se usa para recuperar información acerca de la ventana primaria del elemento OLE.
Si el contenedor es una aplicación MDI, la implementación predeterminada devuelve un puntero al objeto CMDIFrameWnd en ppMainFrame y un puntero al objeto CMDIChildWnd activo en ppDocFrame. Si el contenedor es una aplicación SDI, la implementación predeterminada devuelve un puntero al objeto CFrameWnd en ppMainFrame y devuelve NULL en ppDocFrame. La implementación predeterminada también rellena los miembros de lpFrameInfo.
Invalide esta función solo si la implementación predeterminada no se ajusta a la aplicación; Por ejemplo, si la aplicación tiene un paradigma de interfaz de usuario que difiere de SDI o MDI. Se trata de una invalidación avanzada.
Para obtener más información, vea IOleInPlaceSite::GetWindowContext y la estructura OLEINPLACEFRAMEINFO en Windows SDK.
COleClientItem::OnInsertMenus
El marco de trabajo llama a esta función durante la activación local para insertar los menús de la aplicación contenedora en un menú vacío.
virtual void OnInsertMenus(
CMenu* pMenuShared,
LPOLEMENUGROUPWIDTHS lpMenuWidths);
Parámetros
pMenuShared
Apunta a un menú vacío.
lpMenuWidths
Apunta a una matriz de seis valores LONG que indican cuántos menús hay en cada uno de los siguientes grupos de menús: Archivo, Edición, Contenedor, Objeto, Ventana, Ayuda. La aplicación contenedora es responsable de los grupos de menús Archivo, Contenedor y Ventana, correspondientes a los elementos 0, 2 y 4 de esta matriz.
Comentarios
A continuación, este menú se pasa al servidor, que inserta sus propios menús, creando un menú compuesto. Se puede llamar a esta función repetidamente para crear varios menús compuestos.
La implementación predeterminada inserta en pMenuShared los menús de contenedor en contexto; es decir, los grupos de menús Archivo, Contenedor y Ventana. CDocTemplate::SetContainerInfo se usa para establecer este recurso de menú. La implementación predeterminada también asigna los valores adecuados a los elementos 0, 2 y 4 en lpMenuWidths en función del recurso de menú. Invalide esta función si la implementación predeterminada no es adecuada para la aplicación; por ejemplo, si la aplicación no usa plantillas de documento para asociar recursos con tipos de documento. Si invalida esta función, también debe invalidar OnSetMenu y OnRemoveMenus. Se trata de una invalidación avanzada.
Para obtener más información, vea IOleInPlaceFrame::InsertMenus en Windows SDK.
COleClientItem::OnRemoveMenus
El marco de trabajo llama a esta función para quitar los menús del contenedor del menú compuesto especificado cuando finaliza la activación en contexto.
virtual void OnRemoveMenus(CMenu* pMenuShared);
Parámetros
pMenuShared
Apunta al menú compuesto construido mediante llamadas a la función miembro OnInsertMenus.
Comentarios
La implementación predeterminada elimina de pMenuShared los menús de contenedor en contexto; es decir, los grupos de menús Archivo, Contenedor y Ventana. Invalide esta función si la implementación predeterminada no es adecuada para la aplicación; por ejemplo, si la aplicación no usa plantillas de documento para asociar recursos con tipos de documento. Si invalida esta función, probablemente también debe invalidar OnInsertMenus y OnSetMenu. Se trata de una invalidación avanzada.
Los submenús de pMenuShared pueden compartirse mediante más de un menú compuesto si el servidor ha llamado repetidamente a OnInsertMenus
. Por lo tanto, no debe eliminar ningún submenú en la invalidación de OnRemoveMenus
; solo debe desasociarlos.
Para obtener más información, vea IOleInPlaceFrame::RemoveMenus en Windows SDK.
COleClientItem::OnScrollBy
El marco de trabajo llama a esta función para desplazar el elemento OLE en respuesta a las solicitudes del servidor.
virtual BOOL OnScrollBy(CSize sizeExtent);
Parámetros
sizeExtent
Especifica las distancias, en píxeles, para desplazarse en las direcciones x e y.
Valor devuelto
Distinto de cero si el elemento se ha desplazado; 0 si no se pudo desplazar el elemento.
Comentarios
Por ejemplo, si el elemento OLE es parcialmente visible y el usuario se mueve fuera de la región visible mientras se realiza la edición local, se llama a esta función para mantener el cursor visible. La implementación predeterminada no hace nada. Invalide esta función para desplazar el elemento por la cantidad especificada. Tenga en cuenta que, como resultado del desplazamiento, la parte visible del elemento OLE puede cambiar. Llame a SetItemRects para actualizar el rectángulo visible del elemento.
Para obtener más información, vea IOleInPlaceSite::Scroll en Windows SDK.
COleClientItem::OnSetMenu
El marco de trabajo llama a esta función dos veces cuando comienza y finaliza la activación local: la primera vez cuando se instala el menú compuesto y la segunda vez (con holemenu igual a NULL) para quitarlo.
virtual void OnSetMenu(
CMenu* pMenuShared,
HOLEMENU holemenu,
HWND hwndActiveObject);
Parámetros
pMenuShared
Apunta al menú compuesto construido mediante llamadas a la función miembro OnInsertMenus y la función InsertMenu
.
holemenu
Manipulador del descriptor de menú que devuelve la función OleCreateMenuDescriptor
, o NULL si se va a quitar el código de distribución.
hwndActiveObject
Manipulador de la ventana de edición del elemento OLE. Esta es la ventana que recibirá comandos de edición de OLE.
Comentarios
La implementación predeterminada instala o quita el menú compuesto y, a continuación, llama a la función OleSetMenuDescriptor para instalar o quitar el código de distribución. Invalide esta función si la implementación predeterminada no es adecuada para su aplicación. Si invalida esta función, probablemente también deba invalidar OnInsertMenus y OnRemoveMenu. Se trata de una invalidación avanzada.
Para obtener más información, vea OleCreateMenuDescriptor, OleSetMenuDescriptor e IOleInPlaceFrame::SetMenu en Windows SDK.
COleClientItem::OnShowControlBars
El marco de trabajo llama a esta función para mostrar y ocultar las barras de control de la aplicación contenedora.
virtual BOOL OnShowControlBars(
CFrameWnd* pFrameWnd,
BOOL bShow);
Parámetros
pFrameWnd
Puntero a la ventana del marco de la aplicación contenedora. Puede ser una ventana de marco principal o una ventana secundaria MDI.
bShow
Especifica si las barras de control se van a mostrar u ocultar.
Valor devuelto
Distinto de cero si la llamada de función provoca un cambio en el estado de las barras de control; 0 si la llamada no produce ningún cambio o si pFrameWnd no apunta a la ventana de marco del contenedor.
Comentarios
Esta función devuelve 0 si las barras de control ya están en el estado especificado por bShow. Esto ocurriría, por ejemplo, si las barras de control están ocultas y bShow es FALSE.
La implementación predeterminada quita la barra de herramientas de la ventana de marco de nivel superior.
COleClientItem::OnShowItem
El marco de trabajo llama a esta función para mostrar el elemento OLE, lo que hace que sea totalmente visible durante la edición.
virtual void OnShowItem();
Comentarios
Se usa cuando la aplicación contenedora admite vínculos a elementos incrustados (es decir, si ha derivado la clase de documento de COleLinkingDoc). Se llama a esta función durante la activación local o cuando el elemento OLE es un origen de vínculo y el usuario quiere editarla. La implementación predeterminada activa la primera vista del documento de contenedor. Invalide esta función para desplazar el documento para que el elemento OLE esté visible.
COleClientItem::OnUpdateFrameTitle
El marco de trabajo llama a esta función durante la activación local para actualizar la barra de título de la ventana de marco.
virtual BOOL OnUpdateFrameTitle();
Valor devuelto
Distinto de cero si esta función actualizó correctamente el título del marco; de lo contrario, cero.
Comentarios
La implementación predeterminada no cambia el título de la ventana de marco. Invalide esta función si desea un título de marco diferente para la aplicación, por ejemplo "elemento de aplicación - de servidor en docname" (como en "Microsoft Excel - hoja de cálculo en REPORT.DOC"). Se trata de una invalidación avanzada.
COleClientItem::ReactivateAndUndo
Llame a esta función para reactivar el elemento OLE y deshacer la última operación realizada por el usuario durante la edición en contexto.
BOOL ReactivateAndUndo();
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Si la aplicación contenedora admite el comando deshacer, llame a esta función si el usuario elige el comando deshacer inmediatamente después de desactivar el elemento OLE.
Si la aplicación de servidor se escribe con las bibliotecas de Microsoft Foundation Class, esta función hace que el servidor llame a COleServerDoc::OnReactivateAndUndo.
Para obtener más información, vea IOleInPlaceObject::ReactivateAndUndo en Windows SDK.
COleClientItem::Release
Llame a esta función para limpiar los recursos utilizados por el elemento OLE.
virtual void Release(OLECLOSE dwCloseOption = OLECLOSE_NOSAVE);
Parámetros
dwCloseOption
Marca que especifica en qué circunstancias se guarda el elemento OLE cuando vuelve al estado cargado. Para una lista de valores posibles, consulte COleClientItem::Close.
Comentarios
el destructor COleClientItem
llama a Release
.
Para obtener más información, vea IUnknown::Release en Windows SDK.
COleClientItem::Reload
Cierra y vuelve a cargar el elemento.
BOOL Reload();
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Llame a la función Reload
después de activar el elemento como un elemento de otro tipo mediante una llamada a ActivateAs.
COleClientItem::Run
Ejecuta la aplicación asociada a este elemento.
void Run();
Comentarios
Llame a la función miembro Run
para iniciar la aplicación de servidor antes de activar el elemento. Esto se realiza automáticamente mediante Activate y DoVerb, por lo que normalmente no es necesario llamar a esta función. Llame a esta función si es necesario ejecutar el servidor para establecer un atributo de elemento, como SetExtent, antes de ejecutar DoVerb.
COleClientItem::SetDrawAspect
Llame a la función miembro SetDrawAspect
para establecer el "aspecto" o la vista del elemento.
virtual void SetDrawAspect(DVASPECT nDrawAspect);
Parámetros
nDrawAspect
Un valor de la enumeración DVASPECT. Este parámetro puede tener uno de los valores siguientes:
El elemento DVASPECT_CONTENT se representa de forma que se pueda mostrar como un objeto insertado dentro de su contenedor.
El elemento DVASPECT_THUMBNAIL se representa en una representación de "miniatura", para que se pueda mostrar en una herramienta de exploración.
El elemento DVASPECT_ICON se representa mediante un icono.
El elemento DVASPECT_DOCPRINT se representa como si estuviera impreso con el comando Imprimir del menú Archivo.
Comentarios
El aspecto especifica cómo se va a representar el elemento mediante Draw cuando se usa el valor predeterminado para el argumento nDrawAspect de esa función.
El icono de cambio llama a esta función automáticamente (y otros cuadros de diálogo que llaman directamente al cuadro de diálogo Cambiar icono) para habilitar el aspecto de visualización emblemático cuando lo solicite el usuario.
COleClientItem::SetExtent
Llame a esta función para especificar la cantidad de espacio que hay disponible para el elemento OLE.
void SetExtent(
const CSize& size,
DVASPECT nDrawAspect = DVASPECT_CONTENT);
Parámetros
size
Objeto CSize que contiene la información de tamaño.
nDrawAspect
Especifica el aspecto del elemento OLE cuyos límites se van a establecer. Para ver los valores posibles, consulte SetDrawAspect.
Comentarios
Si la aplicación de servidor se escribió mediante la Biblioteca de Microsoft Foundation Class (MFC), esta función hace que se llame la función miembro OnSetExtent del objeto COleServerItem
correspondiente. Después, el elemento OLE puede ajustar su presentación en consecuencia. Las dimensiones deben estar en unidades de MM_HIMETRIC. Llame a esta función cuando el usuario cambie el tamaño del elemento OLE o si admite alguna forma de negociación de diseño.
Para obtener más información, vea IOleObject::SetExtent en Windows SDK.
COleClientItem::SetHostNames
Llame a esta función para especificar el nombre de la aplicación contenedora y el nombre del contenedor para un elemento OLE incrustado.
void SetHostNames(
LPCTSTR lpszHost,
LPCTSTR lpszHostObj);
Parámetros
lpszHost
Puntero al nombre visible para el usuario de la aplicación contenedora.
lpszHostObj
Puntero a una cadena de identificación del contenedor que contiene el elemento OLE.
Comentarios
Si la aplicación de servidor se escribió con la biblioteca Microsoft Foudation Class (MFC), esta función llama a la función miembro OnSetHostNames del documento COleServerDoc
que contiene el elemento OLE. Esta información se usa en títulos de ventana cuando se está editando el elemento OLE. Cada vez que se carga un documento de contenedor, el marco de trabajo llama a esta función para todos los elementos OLE del documento. SetHostNames
solo es aplicable a los elementos incrustados. No es necesario llamar a esta función cada vez que se activa un elemento OLE incrustado para su edición.
También se llama automáticamente con el nombre de la aplicación y el nombre del documento cuando se carga un objeto o cuando se guarda un archivo con un nombre diferente. Por lo tanto, no suele ser necesario llamar directamente a esta función.
Para obtener más información, vea IOleObject::SetHostNames en Windows SDK.
COleClientItem::SetIconicMetafile
Almacena en caché el metarchivo utilizado para dibujar el icono del elemento.
BOOL SetIconicMetafile(HGLOBAL hMetaPict);
Parámetros
hMetaPict
Manipulador del metarchivo que se usa para dibujar el icono del elemento.
Valor devuelto
Si es correcta, su valor es distinto de cero. En caso contrario, es cero.
Comentarios
Use GetIconicMetafile para recuperar el metarchivo.
El parámetro hMetaPict se copia en el elemento; por lo tanto, el autor de la llamada debe liberar hMetaPict.
COleClientItem::SetItemRects
Llame a esta función para establecer el rectángulo delimitador o el rectángulo visible del elemento OLE.
BOOL SetItemRects(
LPCRECT lpPosRect = NULL,
LPCRECT lpClipRect = NULL);
Parámetros
lprcPosRect
Puntero al rectángulo que contiene los límites del elemento OLE relativo a su ventana primaria, en coordenadas de cliente.
lprcClipRect
Puntero al rectángulo que contiene los límites de la parte visible del elemento OLE en relación con su ventana primaria, en coordenadas de cliente.
Valor devuelto
Distinto de cero si se realiza correctamente; en caso contrario, 0.
Comentarios
La implementación predeterminada de la función miembro OnChangeItemPosition llama a esta función. Debe llamar a esta función cada vez que cambie la posición o la parte visible del elemento OLE. Normalmente esto significa que se llama desde las funciones miembro OnSize y OnScrollBy de la vista.
Para obtener más información, vea IOleInPlaceObject::SetObjectRects en Windows SDK.
COleClientItem::SetLinkUpdateOptions
Llame a esta función para establecer la opción link-update para la presentación del elemento vinculado especificado.
void SetLinkUpdateOptions(OLEUPDATE dwUpdateOpt);
Parámetros
dwUpdateOpt
Valor de la opción link-update para este elemento. Este valor debe ser uno de los siguientes:
OLEUPDATE_ALWAYS Actualiza el elemento vinculado siempre que sea posible. Esta opción admite el botón de radio Actualización automática de vínculos en el cuadro de diálogo Vínculos.
OLEUPDATE_ONCALL Actualiza el elemento vinculado solo a petición de la aplicación contenedora (cuando se llama a la función miembro UpdateLink). Esta opción admite el botón de radio Actualización manual de vínculos en el cuadro de diálogo Vínculos.
Comentarios
Normalmente, no debe cambiar las opciones de actualización elegidas por el usuario en el cuadro de diálogo Vínculos.
Para obtener más información, vea IOleLink::SetUpdateOptions en Windows SDK.
COleClientItem::SetPrintDevice
Llame a esta función para cambiar el dispositivo de destino de impresión de este elemento.
BOOL SetPrintDevice(const DVTARGETDEVICE* ptd);
BOOL SetPrintDevice(const PRINTDLG* ppd);
Parámetros
ptd
Puntero a una estructura de datos DVTARGETDEVICE, que contiene información sobre el nuevo dispositivo de destino de impresión. Puede ser NULL.
ppd
Puntero a una estructura de datos PRINTDLG, que contiene información sobre el nuevo dispositivo de destino de impresión. Puede ser NULL.
Valor devuelto
Distinto de cero si la función se realizó correctamente; de lo contrario, 0.
Comentarios
Esta función actualiza el dispositivo de destino de impresión del elemento, pero no actualiza la memoria caché de presentación. Para actualizar la memoria caché de presentación de un elemento, llame a UpdateLink.
Los argumentos de esta función contienen información que el sistema OLE usa para identificar el dispositivo de destino. La estructura PRINTDLG
contiene información que Windows usa para inicializar el cuadro de diálogo común Imprimir. Una vez que el usuario cierra el cuadro de diálogo, Windows devuelve información sobre las selecciones del usuario en esta estructura. El miembro m_pd
de un objeto CPrintDialog es una estructura PRINTDLG
.
Para obtener más información sobre esta estructura, vea PRINTDLG en Windows SDK.
Para obtener más información, vea DVTARGETDEVICE en Windows SDK.
COleClientItem::UpdateLink
Llame a esta función para actualizar inmediatamente los datos de presentación del elemento OLE.
BOOL UpdateLink();
Valor devuelto
Distinto de cero en caso de éxito; en caso contrario, es 0.
Comentarios
Para los elementos vinculados, la función busca el origen del vínculo para obtener una nueva presentación para el elemento OLE. Este proceso puede implicar la ejecución de una o varias aplicaciones de servidor, lo que puede llevar mucho tiempo. En el caso de los elementos incrustados, la función funciona de forma recursiva y comprueba si el elemento incrustado contiene vínculos que podrían estar obsoletos para actualizarlos. El usuario también puede actualizar manualmente vínculos individuales mediante el cuadro de diálogo Vínculos.
Para obtener más información, vea IOleLink::Update en Windows SDK.
Consulte también
Ejemplo MFC de MFCBIND
Ejemplo MFC de OCLIENT
CDocItem (clase)
Gráfico de jerarquías
COleServerItem (clase)