Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Observação
A biblioteca Microsoft Foundation Classes (MFC) continua sendo suportada. No entanto, não estamos mais adicionando recursos ou atualizando a documentação.
Este artigo descreve as etapas necessárias para incorporar recursos avançados opcionais em aplicativos de contêiner existentes. Esses recursos são:
Criando um aplicativo de contêiner/servidor
Um aplicativo de contêiner/servidor é um aplicativo que atua como um contêiner e um servidor. O Microsoft Word para Windows é um exemplo disso. Você pode inserir documentos do Word para Windows em outros aplicativos e também pode inserir itens em documentos do Word para Windows. O processo para modificar seu aplicativo de contêiner para ser um contêiner e um servidor completo (você não pode criar um aplicativo de contêiner/miniservador de combinação) é semelhante ao processo de criação de um servidor completo.
O artigo Servidores: A implementação de um servidor lista várias tarefas necessárias para implementar um aplicativo de servidor. Se você converter um aplicativo de contêiner em um aplicativo de contêiner/servidor, precisará executar algumas dessas mesmas tarefas, adicionando código ao contêiner. O seguinte lista as coisas importantes a serem consideradas:
O código de contêiner criado pelo assistente de aplicativo já inicializa o subsistema OLE. Você não precisará alterar nem adicionar nada para esse suporte.
Onde quer que a classe base de uma classe de documento esteja
COleDocument, altere a classe base paraCOleServerDoc.Substitua
COleClientItem::CanActivatepara evitar a edição de itens no local enquanto o próprio servidor está sendo usado para editar no local.Por exemplo, o exemplo OLE OCLIENT do MFC inseriu um item criado pelo aplicativo contêiner/servidor. Você abre o aplicativo OCLIENT e edita diretamente o item criado pelo seu aplicativo de contêiner/servidor. Ao editar o item do aplicativo, você decide que deseja inserir um item criado pelo HIERSVR de exemplo OLE do MFC. Para fazer isso, você não pode usar a ativação in-loco. Você deve abrir totalmente o HIERSVR para ativar este item. Como a Biblioteca de Classes da Microsoft Foundation não dá suporte a esse recurso OLE, sobrescrever
COleClientItem::CanActivatepermite verificar essa situação e evitar um possível erro em tempo de execução em seu aplicativo.
Se você estiver criando um novo aplicativo e quiser que ele funcione como um aplicativo de contêiner/servidor, escolha essa opção na caixa de diálogo Opções OLE no assistente de aplicativo e esse suporte será criado automaticamente. Para obter mais informações, consulte o artigo Visão geral: criando um contêiner de controle ActiveX. Para obter informações sobre exemplos de MFC, consulte Exemplos de MFC.
Observe que você não pode inserir um aplicativo MDI em si mesmo. Um aplicativo que é um contêiner/servidor não pode ser inserido em si mesmo, a menos que seja um aplicativo SDI.
Links para objetos inseridos
O recurso Links to Embedded Objects permite que um usuário crie um documento com um link OLE para um objeto inserido dentro de seu aplicativo de contêiner. Por exemplo, crie um documento em um processador de palavras que contenha uma planilha inserida. Se o aplicativo der suporte a links para objetos inseridos, ele poderá colar um link para a planilha contida no documento do processador de palavras. Esse recurso permite que seu aplicativo use as informações contidas na planilha sem saber onde o processador de palavras o obteve originalmente.
Para vincular a objetos inseridos em seu aplicativo
Derivar sua classe de documento em
COleLinkingDocvez deCOleDocument.Crie uma ID de classe OLE (CLSID) para seu aplicativo usando o Gerador de ID de Classe incluído nas Ferramentas de Desenvolvimento OLE.
Registre o aplicativo com o OLE.
Crie um
COleTemplateServerobjeto como membro da classe de aplicativo.Na função membro da classe
InitInstancedo seu aplicativo, faça o seguinte:Conecte o objeto
COleTemplateServeraos seus modelos de documento chamando a função membro do objetoConnectTemplate.Chame a
COleTemplateServer::RegisterAllfunção membro para registrar todos os objetos de classe com o sistema OLE.Chamar
COleTemplateServer::UpdateRegistry. O único parâmetro paraUpdateRegistrydeve ser OAT_CONTAINER se o aplicativo não for iniciado com a alternativa "/Embedded". Isso registra o aplicativo como um contêiner que pode dar suporte a links para objetos inseridos.Se o aplicativo for iniciado com o comutador "/Embedded", ele não deverá mostrar sua janela principal, semelhante a um aplicativo de servidor.
A amostra OLE do MFC OCLIENT implementa esse recurso. Para obter um exemplo de como isso é feito, consulte a InitInstance função do OCLIENT.CPP deste aplicativo de exemplo.
Consulte também
Contêineres
Servidores