Registro
Quando um usuário desejar inserir um item OLE em um aplicativo, OLE apresenta uma lista de tipos de objeto para escolher.OLE obtém essa lista do banco de dados de registro do sistema, que contém as informações fornecidas por todos os aplicativos de servidor.Quando um servidor é registrado, as entradas que ele coloca no banco de dados de registro do sistema (o registro) descrevem cada tipo de objeto fornece, extensões de arquivo e o caminho para si, entre outras informações.
A estrutura e as bibliotecas de vínculo dinâmico do sistema OLE (DLL) usam esse registro para determinar quais tipos de itens OLE disponíveis no sistema.O sistema OLE DLLs também usam esse registro para determinar como iniciar um aplicativo do servidor quando um objeto vinculado ou incorporado é ativado.
Este artigo descreve o que cada aplicativo do servidor precisa fazer quando ele é instalado e cada vez que ele é executado.
Para obter informações detalhadas sobre o banco de dados de registro do sistema e o formato dos arquivos. reg usados para atualizá-lo, consulte o OLE Programmer referência.
Instalação do servidor
Quando você instala o aplicativo de servidor, ele deve registrar todos os tipos de itens OLE que ofereça suporte a ele.Você também pode ter o servidor atualizar o banco de dados de registro do sistema sempre que ele é executado como um aplicativo independente.Isso mantém o banco de dados do registro atualizadas se o arquivo executável do servidor é movido.
Observação |
---|
Aplicativos MFC gerados automaticamente pelo Assistente de aplicativo registram próprios quando eles são executados como aplicativos autônomos. |
Se você deseja registrar seu aplicativo durante a instalação, use o programa Regedit. exe.(No Windows 95, Windows 98 e Windows ME, RegEdit está no diretório do Windows.Windows NT e o Windows 2000, RegEdit é no diretório System32 do Windows.) Se você incluir um programa de instalação com o aplicativo, ter o programa de instalação execute "RegEdit /S appname. reg".(O sinalizador /S indica operação silenciosa, ou seja, não exibe a caixa de diálogo Relatório de conclusão bem-sucedida do comando). Caso contrário, instrua o usuário a executar RegEdit manualmente.
Observação |
---|
O arquivo. reg criado pelo Assistente de aplicativo não inclui o caminho completo para o executável.O programa de instalação deve modificar o arquivo. reg para incluir o caminho completo para o executável ou modificar a variável de ambiente PATH para incluir o diretório de instalação. |
RegEdit mescla o conteúdo do arquivo de texto. reg no banco de dados do registro.Para verificar se o banco de dados ou repará-lo, use o editor do registro.Tome cuidado para evitar a exclusão de entradas OLE essenciais.(No Windows 95, Windows 98 e Windows ME, o editor do registro é Regedit. exe.No Windows NT e no Windows 2000, é regedit32.)
Inicialização do servidor
Quando você cria um aplicativo de servidor com o Assistente de aplicativo, o assistente concluir todas as tarefas de inicialização para você automaticamente.Esta seção descreve o que deve fazer se você escrever um aplicativo de servidor manualmente.
Quando um aplicativo de servidor é iniciado por um aplicativo de contêiner, o sistema OLE DLLs adicione a opção "/ incorporação" linha de comando do servidor.O comportamento do aplicativo de servidor difere dependendo se foi iniciado por um contêiner, portanto a primeira coisa que um aplicativo deve fazer quando ele inicia a execução é verificar a "/ incorporação" ou "-incorporação de objetos" opção de linha de comando.Se esta chave existir, carregar um conjunto de recursos que mostram o servidor como sendo o ativo no local diferente ou abra totalmente.Para obter mais informações, consulte Menus e recursos: servidor adições.
O aplicativo de servidor também deve chamar o CWinApp::RunEmbedded função para analisar a linha de comando.Se ela retorna um valor diferente de zero, o aplicativo não deve mostrar sua janela porque ele foi executado de um aplicativo de contêiner, não como um aplicativo independente.Essa função atualiza a entrada do servidor no banco de dados do sistema registro e chama o RegisterAll função de membro para você realizar o registro de ocorrência.
Ao iniciar o aplicativo de servidor, certifique-se de que ele pode realizar o registro de ocorrência.Registro de ocorrência informa ao sistema OLE DLLs que o servidor está ativo e pronto para receber solicitações de recipientes.Ele não adiciona uma entrada no banco de dados do registro.Realizar o registro da instância do servidor chamando o ConnectTemplate função de membro definida pelo COleTemplateServer.Isso conecta o CDocTemplate o objeto para o COleTemplateServer objeto.
O ConnectTemplate função usa três parâmetros: o servidor CLSID, um ponteiro para o CDocTemplate objeto e um sinalizador que indica se o servidor oferece suporte a várias instâncias.Um miniserver deve ser capaz de suportar várias instâncias, isto é, deve ser possível para várias instâncias do servidor para executar simultaneamente, um para cada recipiente.Conseqüentemente, passar TRUE para esse sinalizador quando iniciar um miniserver.
Se você estiver escrevendo um miniserver, por definição, que sempre será iniciado por um contêiner.Você ainda deve analisar a linha de comando para verificar se a opção "/ incorporação".A ausência dessa opção na linha de comando significa que o usuário tentou iniciar miniserver como um aplicativo independente.Se isso ocorrer, registrar o servidor com o banco de dados de registro do sistema e exibir uma caixa de mensagem informando ao usuário para iniciar o miniserver de um aplicativo de contêiner.