Partilhar via


Exemplo do StockTicker: Exibe informações de Web em um controle ATL

A amostra StockTicker baixa informações sobre ações de Web e o exibe em um controle ATL que percorre os dados da direita para a esquerda.O controle atualiza os dados em conjunto intervalos, que o usuário conjunto s.

StockTicker contém quatro partes:

  • Componente compartilhado do ATL (stockquotes).

  • Controle ATL (stocktickeratl).

  • Extensão ISAPI DLL (stocksourcemfc).

  • Aplicativo de contêiner do MFC (containermfc). Você pode renomear este arquivo exe.

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 criar e executar a amostra StockTicker

  1. Abra a solução StockTicker.sln.

  2. Sobre o Compilação menu, clicar Compilação.

  3. Use regsvr32 para registrar duas DLLs: stockquotes.dll e stocktickeratl.dll.Talvez você precise registrar ATL.dll, também.

    A DLL de extensão ISAPI imita uma fonte de dados de ações.Ele deve ser instalado em um computador no qual o software de servidor Web (sistema autônomo o Serviços de Informações da Internet da Microsoft [IIS]) foi instalado.Você deve informar StockTicker onde essa DLL está localizada.Para obter instruções sobre como usar a DLL de extensão ISAPI, consulte abaixo.

  4. Execute containermfc.exe.clicar com o botão direito do mouse na área de cliente do aplicativo para exibir um menu de atalho.Use este menu para alterar o comportamento e sistema autônomo propriedades de StockTicker, conforme descrito em uma seção a seguir.

Como adicionar ações fonte Web Sites

Siga estas etapas para adicionar sua própria fonte ações Web site.

  1. edição stockquotes\stockquotes_.h. Examine o CSQSISAPIDll classe. Você pode usar a classe sistema autônomo um exemplo para a criação de novas classes de cotação de ações.

  2. Criar uma nova classe derivada de CStockQuoteSource.

  3. No construtor da classe nova, defina m_strURL para o URL completo do Web site a partir de onde recuperar dados. Certifique-se de incluir o comando para recuperar os dados de estoque.

  4. O formato do HTML retornado do site pode exigir que substituem SetStockInfo e/ou ParseStockInfo.

  5. Recriar o componente e registrá-lo.

Se o site selecionado retorna dados semelhante a CONAME: <NA>, onde CONAME é o símbolo das ações, o site não pôde ser acessado tanto a classe de fonte que você criou não localizou a informações sobre ações do HTML.

Observação:

O formato, decimal ou fracionário de estoque dados podem ser diferentes entre as ações que você escolher monitor.StockTicker não faz nenhuma tentativa de alterar os dados para torná-la consistente.

Propriedades de StockTicker e comportamento

  • Ações
    Exibe uma caixa de diálogo através da qual você pode adicionar ou remover os símbolos de ações para monitorar.A caixa de diálogo é inicializada com a lista corrente de símbolos de ações.

  • Atualizar agora
    Atualiza as informações das ações da Web.

  • Propriedades
    A caixa de diálogo de propriedades possui três propriedade páginas: cor, fonte e personalizado.Se as páginas de propriedades de cor e fonte ações não são exibidos na caixa de diálogo Propriedades, certifique-se de que você registrou msstkprp.dll.

    Você pode alterar as propriedades a seguir.

    • Barra de cotação rápida   Mova o controle deslizante para aumentar ou diminuir a taxa na qual a informações sobre ações rola da direita para a esquerda.

    • Intervalo de atualização   time em minutos entre as atualizações.

    • URL de DLL de extensão ISAPI   Digite a URL completa para a DLL de extensão ISAPI.Anexar o texto a seguir ao participante da URL: ?QueryForStock?Symbol=.

      Ao especificar a URL para a DLL de extensão ISAPI, você precisa incluir o componente é responsável por retornar o HTML que contém as informações de estoque.

  • Sobre a cotação de ações
    Abre a caixa de diálogo sobre.

  • Manter visível
    StockTicker permanecerá na parte superior de todos os outros aplicativos; caso contrário, ele poderá ser oculto por outros aplicativos.

Recursos usados pelo StockTicker

  • Objeto COM ATL

  • Objeto Dialog do ATL

  • Controle ATL

  • Classes MFC Internet (WinInet)

  • DLL de extensão ISAPI do MFC

  • Pontos de conexão

  • Persistência

  • Enumeradores personalizados

  • Biblioteca C++ padrão

Componentes StockTicker

Esta seção fornece mais detalhes sobre os componentes StockTicker.

  • Componente de cotações das ações
    O componente compartilhado, o objeto ATL, é criado com o Assistente para aplicativo do projeto ATL.Ele usa suporte a MFC WinInet e outras classes de utilitário.Cotações mantém registro das ações a serem monitorados e atualiza as informações das ações da Internet.Um aplicativo pode usar este componente para atualizações síncronas ou assíncrono.Se o StartUpdating método é chamado, uma criança thread é criado e a função retorna imediatamente. O segmento filho cria um timer e aguarda até que o intervalo de atualização tiver decorrido.Em seguida, ele solicita uma atualização do componente de cotações de ações.As chamadas subseqüentes a Update postar uma mensagem de thread para o segmento filho que indica que, se ocorrer uma atualização, e Update retorna imediatamente. No modo síncrono, Update blocos até que o baixar seja concluído.

    O componente de cotações de ações mantém registro de objetos de fonte de dados de ações que representam os sites dos quais as informações de estoque são baixadas.Quando StockTicker atualiza as informações de estoque, o componente de cotações de ações percorre a lista de fontes de dados de ações e tenta baixar as informações.Se a tentativa falhar, o componente tenta baixar dados de ações da fonte do próxima.Se todas as fontes de dados de ações de não fazer o baixar das informações, <NA> aparecerá na janela da barra de cotação após o símbolo das ações.

    Ações de dados são provenientes de site da Web no formulário em HTML.Os dados devem ser analisados para encontrar que o preço corrente e o preço alterados desde a última atualização.O componente de cotações de ações trata essa análise procurando por duas palavras-chave: Por exemplo, Current: ou Change:. O componente lê os dados após as palavras-chave se esses dados são um número decimal ou fracionário (fracionário ou decimal).

    Porque o estoque de sites da Web pode ser alterado da maneira que fornecem dados, talvez seja necessário alterar o algoritmo usado pelo para obter as informações das ações cotações de ações.

    Veja a seguir instruções sobre como adicionar suas próprias fontes de dados de estoque.

  • DLL de extensão ISAPI
    A fonte de dados de ações padrão é a DLL de extensão ISAPI local.A DLL de extensão ISAPI não retorna dados de ações real.Em vez disso, ao solicitar dados de uma ação, a DLL verifica se o símbolo de ação está em sua lista de ações conhecidas.Se o símbolo de ação estiver na lista, a DLL recupera os dados e aleatoriamente ajusta o preço da ação corrente para cima ou para baixo.Se o símbolo de ação for novo, ele é adicionado à lista e um preço da ação inicial é definido.

  • Controle de cotação das ações
    Esse controle foi criado com o Assistente de objeto ATL.Ele usa MFC para facilitar algumas coisas.

    Você pode usar esse controle fora do StockTicker.

    Controle Stock Ticker usa o componente de cotações de ações para lidar com as atualizações e informações sobre ações.Quando se trata de time para salvar o próprio em um fluxo, o controle também irá perguntar o componente de cotações de ações para salvar propriamente dito.

    Na inicialização, o controle de Stock Ticker cria o componente de cotações de ações e pede para iniciar a atualizar as informações de estoque.O controle, em seguida, inicia um cronômetro que será usada para o loop de processamento/empate.Quando dados de ações foi atualizados, o componente de cotações de ações notifica o controle (por meio de um ponto de conexão).O controle, em seguida, obtém todas as informações das ações do componente de cotações de ações e cria uma seqüência de caracteres fora dele.Essa seqüência é desenhada no controle e rola da direita para a esquerda.

  • Stock Ticker contêiner
    O contêiner de Stock Ticker é um contêiner de controle ativo MFC, criado com o Assistente de aplicativo do MFC.Ele salva seu dimensionar e posição ao sair e restaura o estado anterior quando for reiniciado.

    O contêiner também lida com os menus StockTicker.

Palavras-chave

Este exemplo demonstra as seguintes palavras-chave:

IEnumXXX, CWinThread, std::vector, IConnectionPointContainer, CInternetSession, CInternetException, AfxParseURL, CHttpConnection, CHttpFile, COleClientItem, COleDocument, COleDispatchDriver, CreateILockBytesOnHGlobal, StgCreateDocfileOnILockBytes, OleSave, StgIsStorageILockBytes, GetHGlobalFromILockBytes, COleFont, std::basic_istream, std::basic_ostream, CHttpServer, CComPtr, CDialogImpl, std::lista, IPersistStreamInit, IFontDisp, IViewObjectEx, CComControl, IOleControl, IPropertyPageImpl, CBitmap, CDC, IPersistStreamInit_Load, IPersistStreamInit_Save, IConnectionPointImpl

Observação:

Alguns exemplos, sistema autônomo esta, não foram modificados para refletir sistema autônomo alterações nos assistentes, bibliotecas e compilador Visual C++, mas ainda Demonstre sistema autônomo concluir a tarefa desejada.

Consulte também

Outros recursos

Exemplos do MFC