Troca De Dados Dinâmicas Forex


Esta documentação é arquivada e não está sendo mantida. Sobre o Dynamic Data Exchange O Windows fornece vários métodos para transferir dados entre aplicativos. Um método é usar o protocolo Dynamic Data Exchange (DDE). O protocolo DDE é um conjunto de mensagens e diretrizes. Ele envia mensagens entre aplicativos que compartilham dados e usa memória compartilhada para trocar dados entre aplicativos. As aplicações podem usar o protocolo DDE para transferências de dados únicas e para intercâmbios contínuos nos quais os aplicativos enviam atualizações entre si à medida que novos dados se tornam disponíveis. O Windows também suporta o Dynamic Data Exchange Management Library (DDEML). O DDEML é uma biblioteca de vínculo dinâmico (DLL) que os aplicativos podem usar para compartilhar dados. O DDEML fornece funções e mensagens que simplificam a tarefa de adicionar capacidade DDE a um aplicativo. Em vez de enviar, publicar e processar mensagens DDE diretamente, uma aplicação usa as funções DDEML para gerenciar conversas DDE. (Uma conversação DDE é a interação entre aplicativos cliente e servidor.) O DDEML também fornece uma facilidade para gerenciar as seqüências de caracteres e dados que compartilham compartilhamentos DDE. Em vez de usar átomos e ponteiros para objetos de memória compartilhada, aplicativos DDE criar e trocar alças de seqüência de caracteres, que identificam seqüências de caracteres e alças de dados, que identificam objetos de memória. O DDEML também torna possível para um aplicativo servidor registrar os nomes de serviço que ele oferece suporte. Os nomes são transmitidos para outros aplicativos no sistema, que pode usar os nomes para se conectar ao servidor. Além disso, o DDEML assegura a compatibilidade entre aplicações DDE forçando-os a implementar o protocolo DDE de forma consistente. Os aplicativos existentes que utilizam o protocolo DDE baseado em mensagens são totalmente compatíveis com aqueles que usam DDEML. Ou seja, um aplicativo que usa DDE baseado em mensagem pode estabelecer conversas e executar transações com aplicativos que usam o DDEML. Devido às muitas vantagens do DDEML, as novas aplicações devem usá-lo em vez das mensagens DDE. Para usar os elementos da API do DDEML, você deve incluir o arquivo de cabeçalho DDEML nos arquivos de origem, o link com a biblioteca DDEML e garantir que a biblioteca de links dinâmicos DDEML esteja no caminho de pesquisa de sistemas. Os tópicos a seguir são discutidos nesta seção. Protocolo de troca dinâmica de dados Como o Windows possui uma arquitetura baseada em mensagem, passar mensagens é o método mais apropriado para transferir informações automaticamente entre aplicativos. No entanto, as mensagens contêm apenas dois parâmetros (wParam e lParam) para passar dados. Como resultado, esses parâmetros devem se referir indiretamente a outras partes de dados quando mais de algumas palavras de informação passam entre as aplicações. O protocolo DDE define exatamente como os aplicativos devem usar os parâmetros wParam e lParam para transmitir grandes pedaços de dados por meio de átomos globais e identificadores de memória compartilhada. O protocolo DDE possui regras específicas para alocar e excluir átomos globais e objetos de memória compartilhada. Um átomo global é uma referência a uma seqüência de caracteres. No protocolo DDE, os átomos identificam as aplicações que trocam dados, a natureza dos dados que estão sendo trocados e os próprios itens de dados. Para obter mais informações sobre átomos, consulte Sobre átomos. Usos para o Windows Dynamic Data Exchange O DDE é o mais apropriado para trocas de dados que não requerem a interação permanente do usuário. Geralmente, um aplicativo fornece um método para o usuário estabelecer o link entre as aplicações que trocam dados. Uma vez estabelecido esse link, no entanto, as aplicações trocam dados sem mais envolvimento do usuário. O DDE pode ser usado para implementar uma ampla gama de recursos de aplicativos, por exemplo: Vinculação a dados em tempo real, como atualizações do mercado de ações, instrumentos científicos ou controle de processos. Criação de documentos compostos, como um documento de processamento de texto que inclui um gráfico produzido por um aplicativo gráfico. Usando DDE, o gráfico será alterado quando os dados de origem são alterados, enquanto o restante do documento permanece o mesmo. Realizando consultas de dados entre aplicativos, como uma planilha consultando um banco de dados por contas devidas. Intercâmbio dinâmico de dados do ponto de vista dos usuários O exemplo a seguir ilustra como dois aplicativos DDE podem cooperar, visto do ponto de vista dos usuários. Um usuário de planilha deseja usar o Microsoft Excel para rastrear o preço de um determinado estoque na Bolsa de Valores de Nova York. O usuário tem um aplicativo chamado Quote que, por sua vez, tem acesso aos dados NYSE. A conversa DDE entre Excel e Quote ocorre da seguinte forma: o usuário inicia a conversa fornecendo o nome do aplicativo (Citação) que fornecerá os dados e o tópico de interesse específico (NYSE). A conversação DDE resultante é usada para solicitar cotações em ações específicas. Excel difunde os nomes de aplicativo e tópico para todos os aplicativos DDE atualmente em execução no sistema. Quote responde, estabelecendo uma conversa com o Excel sobre o tópico NYSE. O usuário pode então criar uma fórmula de planilha em uma célula que solicita que a planilha seja atualizada automaticamente sempre que uma cotação em estoque particular muda. Por exemplo, o usuário pode solicitar uma atualização automática sempre que ocorrer uma alteração no preço de venda do estoque ZAXX, especificando a seguinte fórmula do Excel: QuoteNYSEZAXX O usuário pode encerrar a atualização automática da cotação do estoque ZAXX a qualquer momento. Outros links de dados que foram estabelecidos separadamente (como para cotações para outras ações) ainda permanecerão ativos sob a mesma conversa na NYSE. O usuário também pode encerrar toda a conversa entre o Excel eo Quote no tópico da NYSE, de modo que nenhum link de dados específico sobre esse tópico possa ser estabelecido sem iniciar uma nova conversa. Conceitos Dinâmicos de Intercâmbio de Dados As seções a seguir explicam os conceitos e terminologia importantes que são fundamentais para a compreensão da troca dinâmica de dados. Cliente, Servidor e Conversação Dois aplicativos que participam do DDE dizem estar envolvidos em uma conversa DDE. O aplicativo que inicia a conversa é o aplicativo cliente DDE o aplicativo que responde ao cliente é o aplicativo servidor DDE. Um aplicativo pode se envolver em várias conversas ao mesmo tempo, atuando como o cliente em alguns e como o servidor em outros. Uma conversação DDE ocorre entre duas janelas, uma para cada uma das aplicações participantes. Uma janela pode ser a janela principal do aplicativo uma janela associada a um documento específico, como em um aplicativo de interface de documento múltiplo (MDI) ou uma janela oculta (invisível) cujo único propósito é processar mensagens DDE. Uma vez que uma conversa DDE é identificada pelo par de alças para as janelas envolvidas na conversa, nenhuma janela deve estar envolvida em mais de uma conversa com outra janela. O aplicativo cliente ou o aplicativo servidor deve fornecer uma janela diferente para cada uma de suas conversas com um determinado servidor ou aplicativo cliente. Um aplicativo pode garantir que um par de janelas cliente e servidor nunca esteja envolvido em mais de uma conversação criando uma janela oculta para cada conversação. O único propósito desta janela é processar mensagens DDE. Nomes de Aplicativos, Tópicos e Itens O protocolo DDE identifica as unidades de dados passadas entre o cliente eo servidor com uma hierarquia de três níveis de nomes de aplicativos, tópicos e itens. Cada conversação DDE é definida exclusivamente pelo nome e tópico do aplicativo. No início de uma conversação DDE, o cliente eo servidor determinar o nome do aplicativo e tópico. O nome do aplicativo geralmente é o nome do aplicativo do servidor. Por exemplo, quando o Excel atua como servidor em uma conversa, o nome do aplicativo é Excel. O tópico DDE é uma classificação geral de dados dentro da qual vários itens de dados podem ser discutidos (trocados) durante a conversa. Para aplicativos que operam em documentos baseados em arquivo, o tópico geralmente é um nome de arquivo. Para outros aplicativos, o tópico é um nome específico do aplicativo. Como a janela do cliente e do servidor manipula em conjunto identificar uma conversação DDE, o nome do aplicativo eo tópico que definem uma conversa não podem ser alterados durante o curso da conversa. Um item de dados DDE é uma informação relacionada ao tópico de conversação trocado entre os aplicativos. Os valores para o item de dados podem ser passados ​​do servidor para o cliente ou do cliente para o servidor. Os dados podem ser passados ​​com qualquer um dos formatos de clipboard padrão ou com um formato de área de transferência registrado. Um formato especial e registrado chamado Link identifica um item em uma conversa DDE. Para obter mais informações sobre os formatos da área de transferência, consulte Área de transferência. As aplicações do tópico do sistema devem suportar o tópico do sistema em todos os momentos. Este tópico fornece um contexto para informações que podem ser de interesse geral para outro aplicativo. Os valores dos itens de dados devem ser renderizados no formato da área de transferência CFTEXT. Elementos individuais de valores de item para um tópico do sistema devem ser delimitados por caracteres de tabulação. A tabela a seguir sugere alguns itens para o tópico do sistema. Termina um link de dados permanente. Um aplicativo chama SendMessage para emitir a mensagem WMDDEINITIATE ou uma mensagem WMDDEACK enviada em resposta a WMDDEINITIATE. Todas as outras mensagens são enviadas pelo PostMessage. O primeiro parâmetro destas chamadas é um identificador para a janela de recepção o segundo parâmetro contém a mensagem a ser enviada o terceiro parâmetro identifica a janela de envio eo quarto parâmetro contém os argumentos específicos da mensagem. Fluxo de mensagens de troca de dados dinâmico Uma conversação DDE típica consiste nos seguintes eventos: O aplicativo cliente inicia a conversação eo aplicativo do servidor responde. Os aplicativos trocam dados por qualquer um ou todos os seguintes métodos: O aplicativo servidor envia dados para o cliente na solicitação dos clientes. O aplicativo cliente envia dados não solicitados para o aplicativo de servidor. O aplicativo cliente solicita que o aplicativo do servidor notifique o cliente sempre que um item de dados for alterado (link de dados quentes). O aplicativo cliente solicita ao aplicativo servidor que envie dados sempre que as mudanças de dados (link de dados hot). O aplicativo de servidor executa um comando na solicitação dos clientes. O aplicativo cliente ou servidor encerra a conversação. Uma janela de aplicativo que processa solicitações de um cliente ou servidor deve processá-los estritamente na ordem em que são recebidos. Um cliente pode estabelecer conversas com mais de um servidor, um servidor pode ter conversas com mais de um cliente. Ao manusear mensagens de mais de uma fonte, um cliente ou servidor deve processar as mensagens de uma conversação de forma síncrona, mas não precisa processar todas as mensagens de forma síncrona. Em outras palavras, ele pode mudar de uma conversa para outra, conforme necessário. Se um aplicativo não conseguir processar uma solicitação de entrada porque está aguardando uma resposta DDE, ele deve impedir o bloqueio postando uma mensagem WMDDEACK com o membro fBusy da estrutura DDEACK definido como 1. Uma aplicação também pode enviar uma mensagem WMDDEACK ocupada se , Por qualquer motivo, não pode processar um pedido recebido dentro de um prazo razoável. Um aplicativo deve ser capaz de lidar com a falha de um cliente ou servidor para responder a uma mensagem dentro de um determinado tempo. Uma vez que o intervalo de tempo limite pode variar dependendo da natureza do aplicativo e da configuração do sistema de usuários (incluindo se ele está conectado a uma rede), o aplicativo deve fornecer uma maneira para o usuário especificar o intervalo. Funções de Embalagem de Parâmetros O parâmetro lParam de muitas mensagens DDE contém duas partes de dados. Por exemplo, o lParam da mensagem WMDDEDATA contém um identificador de dados e um átomo. Aplicativos devem usar a função PackDDElParam para compactar o identificador e o átomo em um parâmetro lParam ea função UnpackDDElParam para remover os valores. Aplicativos DDE devem usar PackDDElParam e UnpackDDElParam para todas as mensagens postadas durante uma conversa DDE. Aplicativos também podem usar as funções ReuseDDElParam e FreeDDElParam. ReuseDDElParam permite que um aplicativo DDE reutilize um parâmetro lParam compactado, ajudando a reduzir o número de realocações de memória que o aplicativo deve executar durante uma conversação. Um aplicativo pode usar FreeDDElParam para liberar a memória associada com um identificador de dados recebido durante uma conversação DDE. Dynamic Data Exchange e representação Para permitir que um servidor para representar um cliente, o cliente chama a função DdeSetQualityOfService. A estrutura SECURITYIMPERSONATIONLEVEL é usada para controlar o nível de representação que o servidor pode executar. Um servidor DDE pode representar um cliente DDE chamando a função ImpersonateDdeClientWindow. Um servidor DDEML deve usar a função DdeImpersonateClient. Dynamic Data Exchange Especifica a qualidade de serviço (QOS) um aplicativo de DDE (Dynamic Data Exchange) cru deseja para conversas DDE futuras ele inicia. O QOS especificado aplica-se a qualquer conversa iniciada enquanto essas configurações estiverem instaladas. A conversação DDE qualidade de serviço dura para a duração das chamadas de conversação para a função DdeSetQualityOfService durante uma conversação não afetam QOS essas conversas. Libera a memória especificada pelo parâmetro lParam de uma mensagem DDE publicada. Um aplicativo que recebe uma mensagem DDE postada deve chamar essa função depois que ele usou a função UnpackDDElParam para descompactar o valor lParam. Permite que um aplicativo de servidor DDE se faça representar um contexto de segurança de aplicativos de cliente DDE. Isso protege os dados de servidor seguro de clientes DDE não autorizados. Embala um valor lParam DDE em uma estrutura interna usada para compartilhar dados DDE entre processos. Habilita um aplicativo para reutilizar um pacote DDE parâmetro lParam, em vez de alocar um novo pacote lParam. Usando essa função reduz as realocações para aplicativos que passam mensagens DDE compactadas. Descompacta um valor DDE lParam recebido de uma mensagem DDE publicada. Mensagens DDE Inicia uma conversa com um aplicativo de servidor que responde aos nomes de aplicativo e tópico especificados. Ao receber esta mensagem, todos os aplicativos de servidor com nomes que correspondam ao aplicativo especificado e que suportam o tópico especificado devem reconhecê-lo. Notificações DDE Notifica um aplicativo DDE do recebimento e processamento das seguintes mensagens: WMDDEPOKE. WMDDEEXECUTE. WMDDEDATA. WMDDEADVISE. WMDDEUNADVISE. WMDDEINITIATE. Ou WMDDEREQUEST (em alguns casos). Um aplicativo cliente DDE postna a mensagem WMDDEADVISE para um aplicativo de servidor DDE para solicitar que o servidor forneça uma atualização para um item de dados sempre que o item é alterado. Um aplicativo servidor DDE postna uma mensagem WMDDEDATA para um aplicativo cliente DDE para transmitir um item de dados para o cliente ou para notificar o cliente da disponibilidade de um item de dados. Um aplicativo cliente DDE postna uma mensagem WMDDEEXECUTE para um aplicativo servidor DDE para enviar uma seqüência de caracteres para o servidor a ser processado como uma série de comandos. Espera-se que o aplicativo do servidor publique uma mensagem WMDDEACK em resposta. Um aplicativo cliente DDE postna uma mensagem WMDDEPOKE para um aplicativo servidor DDE. Um cliente usa essa mensagem para solicitar que o servidor aceite um item de dados não solicitados. Espera-se que o servidor responda com uma mensagem WMDDEACK indicando se aceitou o item de dados. Um aplicativo cliente DDE postna uma mensagem WMDDEREQUEST para um aplicativo de servidor DDE para solicitar o valor de um item de dados.

Comments