Partilhar via


Menus e recursos: adições de servidor

Este artigo explica as alterações que precisam ser feitas nos menus e em outros recursos em um aplicativo de servidor de edição visual (componente). Um aplicativo de servidor requer muitas adições à estrutura de menu e outros recursos porque ele pode ser iniciado em um dos três modos: autônomo, inserido ou no local. Conforme descrito no artigo Menus e Recursos (OLE), há no máximo quatro conjuntos de menus. Todos os quatro são usados para um aplicativo de servidor completo MDI, enquanto apenas três são usados para um miniservidor. O assistente de aplicativo criará o layout de menu necessário para o tipo de servidor desejado. Alguma personalização pode ser necessária.

Se você não usar o assistente de aplicativo, talvez queira examinar o HIERSVR.RC, o script de recurso do aplicativo de exemplo do MFC HIERSVR, para ver como essas alterações são implementadas.

Os tópicos abordados neste artigo incluem:

Adições de menu do servidor

Aplicativos de servidor (componente) devem ter recursos de menu adicionados para dar suporte à edição visual do OLE. Os menus usados quando o aplicativo é executado no modo autônomo não precisam ser alterados, mas você deve adicionar dois novos recursos de menu antes de criar o aplicativo: um para dar suporte à ativação in-loco e outro para dar suporte ao servidor totalmente aberto. Ambos os recursos de menu são usados por aplicativos completos e miniservidores.

  • Para dar suporte à ativação in-loco, você deve criar um recurso de menu muito semelhante àquele usado quando executado no modo autônomo. A diferença neste menu é que os itens Arquivo e Janela (e quaisquer outros itens de menu que lidam com o aplicativo e não com os dados) estão ausentes. O aplicativo contêiner fornecerá esses itens de menu. Para obter mais informações e ver um exemplo dessa técnica de mesclagem de menus, consulte o artigo Menus e Recursos: Mesclagem de Menus.

  • Para dar suporte à ativação totalmente aberta, você deve criar um recurso de menu quase idêntico àquele usado quando executado no modo autônomo. A única modificação nesse recurso de menu é que alguns itens são reformulados para refletir o fato de que o servidor está operando em um item inserido em um documento composto.

Além das alterações listadas neste artigo, seu arquivo de recurso precisa incluir o AFXOLESV.RC, que é necessário para a implementação da biblioteca Microsoft Foundation Class. Esse arquivo está no subdiretório MFC\Include.

Adições de tabela de aceleradores dos aplicativos de servidor

Dois novos recursos de tabela de aceleradores devem ser adicionados aos aplicativos de servidor. Eles correspondem diretamente aos novos recursos de menu descritos anteriormente. A primeira tabela de aceleradores é usada quando o aplicativo de servidor é ativado no local. Ela consiste em todas as entradas na tabela de aceleradores do modo de exibição, exceto aquelas vinculadas aos menus Arquivo e Janela.

A segunda tabela é quase uma cópia exata da tabela de aceleradores do modo de exibição. Quaisquer diferenças de alterações paralelas feitas no menu totalmente aberto mencionado nas Adições de Menu do Servidor.

Para obter um exemplo dessas alterações na tabela de aceleradores, compare as tabelas de aceleradores de IDR_HIERSVRTYPE_SRVR_IP e IDR_HIERSVRTYPE_SRVR_EMB com IDR_MAINFRAME no arquivo HIERSVR.RC incluído no HIERSVR de exemplo do OLE do MFC. Os aceleradores de Arquivo e Janela estão ausentes da tabela in-loco e suas cópias exatas estão na tabela inserida.

Adições de tabela de cadeia de caracteres para aplicativos de servidor

Somente uma adição de tabela de cadeia de caracteres é necessária em um aplicativo de servidor – uma cadeia de caracteres para significar que a inicialização OLE falhou. Como exemplo, aqui está a entrada da tabela de cadeia de caracteres que o assistente de aplicativo gera:

ID String
IDP_OLE_INIT_FAILED Falha na inicialização do OLE. Verifique se as bibliotecas OLE estão na versão correta.

Adições de miniservidor

As mesmas adições listadas acima para servidores completos se aplicam para miniservidores. Como um miniservidor não pode ser executado no modo autônomo, seu menu principal é muito menor. O menu principal criado pelo assistente de aplicativo tem apenas um menu Arquivo, contendo apenas os itens Sair e Sobre. Os menus e aceleradores inseridos e in-loco para servidores completos são os mesmos usados para miniservidores.

Confira também

Menus e recursos (OLE)
Menus e recursos: mesclagem de menu