Exemplo do DispSink: Alças de eventos acionados de singleton COM servidor por meio de uma interface dispatch
O exemplo DispSink demonstra um objeto de servidor singleton (um objeto que pode ter apenas uma instância) que tenha sua própria interface dupla e uma interface dispatch usado para desativar eventos de acionamento.
The Exemplo de atributos DispSink é a versão atribuída neste exemplo.
Observação de segurança: |
---|
Este código de exemplo é fornecido para ilustrar um conceito e não deve ser usado em aplicativos ou sites da Web, pois ele não pode ilustrar sistema autônomo práticas de codificação mais seguras.Microsoft sistema autônomo sumes nenhuma responsabilidade por danos incidentais ou conseqüenciais deve o código de exemplo ser usado para fins diferentes de sistema autônomo se destina. |
Para obter exemplos e instruções para instalá-los:
Sobre o Visual Studio Ajuda menu, clicar Exemplos.
Para obter mais informações, consulte Localizando arquivos de exemplo.
A versão mais recente e a lista completa das Exemplos está disponível online a partir de O Visual Studio 2008 Exemplos página.
Você também pode localizar exemplos no disco rígido do seu computador.Por padrão, exemplos e um arquivo Leiame são copiados para uma pasta sob \programa Files\Visual Studio 9.0\Samples\.Para edições Express do Visual Studio, todos os exemplos estão localizados online.
Criando e executando o exemplo
Para compilação e executar esse exemplo
em aberto DispSink.sln do arquivo de solução.
From a Compilação menu, clicar Criar solução.
Abra dois ou mais instâncias do contêiner de teste de controle ActiveX e insira o controle de cliente DispCtl, cada instância.See Teste de propriedades e eventos com o contêiner de teste para obter informações sobre como acessar o contêiner de teste.
Invocar o Conectar-se método em todos os controles.
Invocar o Enviar método em um dos controles.Alterar o Tipo de parâmetro campo de do Invocar métodos caixa de diálogo VT_BSTR e, em seguida, digite qualquer seqüência de caracteres para o Valor de parâmetro box.Clique no botão Invoke.A seqüência de caracteres será exibida no centralizar de todos os controles conectados.
Invocar o Desconectar método em todos os controles antes de excluí-los.
Como funciona o exemplo
O servidor é um objeto singleton que tem sua própria interface dupla, bem sistema autônomo uma interface dispatch usado para desativar eventos de acionamento.O objeto de servidor recebe dados por meio de sua interface dupla Enviar método e o transmite para todos os componentes conectados por meio do Transferência evento na sua interface dispatch.
O cliente é um controle ActiveX que contém um objeto de servidor.O controle responde à Transferência eventos acionados pelo objeto do servidor.Ele tem uma interface dupla tem Conectar-se, Enviar, and Desconectar métodos.Se o Transferência evento é acionado por uma variante contendo um BSTR, a seqüência é exibida no centralizar do controle.
Palavras-chave
Este exemplo utiliza as seguintes palavras-chave:
# Import CComAutoThreadModule CComSimpleThreadAllocator; CoCreateInstance; DECLARE_CLASSFACTORY_AUTO_THREAD(); FireViewChange