Contêineres: estados de item do cliente
Este artigo explica os diferentes estados pelos quais um item de cliente passa em seu tempo de vida.
Um item de cliente passa por vários estados à medida que é criado, ativado, modificado e salvo. Cada vez que o estado do item é alterado, a estrutura chama COleClientItem::OnChange com a notificação OLE_CHANGED_STATE. O segundo parâmetro é um valor da enumeração COleClientItem::ItemState
. Pode ser um dos seguintes:
COleClientItem::emptyState
COleClientItem::loadedState
COleClientItem::openState
COleClientItem::activeState
COleClientItem::activeUIState
No estado vazio, um item de cliente ainda não é completamente um item. A memória foi alocada para ele, mas ainda não foi inicializada com os dados do item OLE. Esse é o estado em que um item de cliente está quando foi criado por meio de uma chamada para new
, mas ainda não passou pela segunda etapa da criação típica em duas etapas.
Na segunda etapa, executada por meio de uma chamada para COleClientItem::CreateFromFile
ou outra CreateFrom
função xxxx, o item é completamente criado. Os dados OLE (de um arquivo ou de alguma outra fonte, como a Área de Transferência) foram associados ao objeto derivado de COleClientItem
. Agora, o item está no estado carregado.
Quando um item foi aberto na janela do servidor em vez de no documento do contêiner, ele fica no estado aberto (ou totalmente aberto). Nesse estado, um hachurado cruzado geralmente é desenhado sobre a representação do item na janela do contêiner para indicar que o item está ativo em outro lugar.
Quando um item foi ativado no local, ele passa, geralmente brevemente, pelo estado ativo. Em seguida, ele entra no estado ativo da interface do usuário, no qual o servidor mesclou seus menus, barras de ferramentas e outros componentes da interface do usuário com os do contêiner. A presença desses componentes da interface do usuário distingue o estado ativo da interface do usuário do estado ativo. Caso contrário, o estado ativo se assemelha ao estado ativo da interface do usuário. Se o servidor der suporte a Desfazer, ele precisará manter as informações de estado de desfazer do item OLE até ele atingir o estado carregado ou aberto.
Confira também
Contêineres
Ativação
Contêineres: notificações de item do cliente
Controladores
Classe CRectTracker