Ativação (C++)
Este artigo explica a função de ativação na edição visual de itens OLE. Depois que um usuário tiver inserido um item OLE em um documento de contêiner, talvez ele precise ser usado. Para fazer isso, o usuário clica duas vezes no item, o que o ativa. A atividade mais frequente para ativação é a edição. Muitos itens OLE atuais, quando ativados para edição, fazem com que os menus e as barras de ferramentas na janela de quadro atual sejam alterados para refletir aqueles que pertencem ao aplicativo de servidor que criou o item. Esse comportamento, conhecido como ativação in loco, permite que o usuário edite qualquer item inserido em um documento composto sem sair da janela do documento de contêiner.
Também é possível editar itens OLE inseridos em uma janela separada. Isso ocorrerá se o aplicativo de contêiner ou servidor não der suporte à ativação in loco. Nesse caso, quando o usuário clica duas vezes em um item inserido, o aplicativo de servidor é iniciado em uma janela separada e o item inserido aparece como o próprio documento. O usuário edita o item nesta janela. Quando a edição for concluída, o usuário fechará o aplicativo de servidor e retornará ao aplicativo de contêiner.
Como alternativa, o usuário pode escolher "abrir edição" com o comando <objeto> Abrir no menu Editar. Isso abre o objeto em uma janela separada.
Observação
A edição de itens inseridos em uma janela separada era um comportamento padrão na versão 1 do OLE, e alguns aplicativos OLE podem dar suporte apenas a esse estilo de edição.
A ativação in loco promove uma abordagem centrada em documento para a criação de documentos. O usuário pode tratar um documento composto como uma entidade, trabalhando nele sem alternar entre aplicativos. No entanto, a ativação in loco é usada apenas para itens inseridos, não para itens vinculados: eles devem ser editados em uma janela separada. Isso ocorre porque um item vinculado é de fato armazenado em um local diferente. A edição de um item vinculado ocorre dentro do contexto real dos dados, ou seja, onde os dados são armazenados. Editar um item vinculado em uma janela separada lembra ao usuário que os dados pertencem a outro documento.
O MFC não dá suporte à ativação in loco aninhada. Se você criar um aplicativo de contêiner/servidor e esse contêiner/servidor estiver inserido em outro contêiner e for ativado in loco, ele não poderá ativar n loco objetos inseridos dentro dele.
O que acontece com um item inserido quando o usuário clica duas vezes nele depende dos verbos definidos para o item. Para saber mais, confira Ativação: verbos.