ID do artigo: 136218 - Última revisão: terça-feira, 21 de novembro de 2006 - Revisão: 2.2

Erro: DdeConnect nunca retorna

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sintomas

Um aplicativo de 32-bits chama DdeConnect quando todos os inicialização DDEML anterior foi executada. DdeConnect nunca retorna.

Causa

Qualquer segmento que cria uma janela de nível superior e não tem um loop de mensagem fará com que DdeConnect bloquear. Isso ocorre porque DdeConnect chama SendMessage(HWND_BROADCAST...). Nessa chamada, SendMessage irá colocar a mensagem na fila de mensagens do thread de destino e bloquear o thread de chamada. Se o thread-alvo não tiver um loop de mensagem, ele será nunca processar esta mensagem e, portanto, nunca retornará.

Uma complicação é que algumas coisas criar janelas sem o conhecimento de thread de chamada. Ele é conhecido que algumas chamadas de função SQL, RPC e DDEML fazer isso. Qualquer janela de nível superior é criada por um thread que não possui nenhum loop de mensagem fará com que isso aconteça.

Resolução

A solução somente atual é adicionar um loop de mensagem ao thread que criou a janela.

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no começo deste artigo.

A informação contida neste artigo aplica-se a:
  • Interface de Programação de Aplicativos do Microsoft Win32 nas seguintes plataformas
    • Microsoft Windows NT Server 3.51
    • Microsoft Windows NT Workstation 3.51
    • Microsoft Windows 95
    • Microsoft Win32s 1.3
Palavras-chave: 
kbmt kbbug KB136218 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 136218  (http://support.microsoft.com/kb/136218/en-us/ )