Compartir a través de


Contenedores: Estados de elementos de cliente

En este artículo se explican los distintos estados a los que pasa un elemento de cliente durante su vigencia.

Un elemento de cliente pasa a través de varios estados a medida que se crea, activa, modifica y guarda. Cada vez que cambia el estado del elemento, el marco llama a COleClientItem::OnChange con la notificación OLE_CHANGED_STATE . El segundo parámetro es un valor desde la enumeración COleClientItem::ItemState. Puede tener uno de los valores siguientes:

  • COleClientItem::emptyState

  • COleClientItem::loadedState

  • COleClientItem::openState

  • COleClientItem::activeState

  • COleClientItem::activeUIState

En el estado vacío, un elemento de cliente aún no es completamente un elemento. Se le ha asignado memoria, pero aún no se ha inicializado con los datos del elemento OLE. Este es el estado en el que se encuentra un elemento de cliente cuando se ha creado a través de una llamada a new, pero aún no se ha sometido al segundo paso de la creación típica de dos pasos.

En el segundo paso, realizado a través de una llamada a COleClientItem::CreateFromFile u otra CreateFrom función xxxx, el elemento se crea por completo. Los datos OLE (de un archivo o algún otro origen, como el Portapapeles) se han asociado con el objeto derivado de COleClientItem. Ahora el elemento está en estado cargado.

Cuando se ha abierto un elemento en la ventana del servidor en lugar de abrirlo en el documento del contenedor, está en estado abierto (o totalmente abierto). En este estado, un sombreado cruzado normalmente se dibuja sobre la representación del elemento en la ventana del contenedor para indicar que el elemento está activo en otro lugar.

Cuando un elemento se ha activado en su lugar, suele pasar, normalmente brevemente, a través del estado activo. A continuación, entra en el estado activo de la interfaz de usuario, en el que el servidor ha combinado sus menús, barras de herramientas y otros componentes de interfaz de usuario con los del contenedor. La presencia de estos componentes de interfaz de usuario distingue el estado activo de la interfaz de usuario del estado activo. De lo contrario, el estado activo es similar al estado activo de la interfaz de usuario. Si el servidor admite Deshacer, se requiere que el servidor conserve la información de estado de deshacer del elemento OLE hasta que alcance el estado cargado o abierto.

Consulte también

Contenedores
Activación
Contenedores: Notificaciones de elementos de cliente
Seguimiento
CRectTracker (clase)