Compartilhar via


Função DdeInitializeA (ddeml.h)

Registra um aplicativo com o DDEML (Biblioteca de Gerenciamento do Exchange de Dados Dinâmicos) do . Um aplicativo deve chamar essa função antes de chamar qualquer outra função DDEML (Dynamic Data Exchange Management Library).

Sintaxe

UINT DdeInitializeA(
  [in, out] LPDWORD     pidInst,
  [in]      PFNCALLBACK pfnCallback,
  [in]      DWORD       afCmd,
            DWORD       ulRes
);

Parâmetros

[in, out] pidInst

Tipo: LPDWORD

O identificador da instância do aplicativo. Na inicialização, esse parâmetro deve apontar para 0. Se a função for bem-sucedida, esse parâmetro apontará para o identificador de instância do aplicativo. Esse valor deve ser passado como o parâmetro idInst em todas as outras funções DDEML que o exigem. Se um aplicativo usar várias instâncias da DLL (biblioteca de vínculo dinâmico) DDEML, o aplicativo deverá fornecer uma função de retorno de chamada diferente para cada instância.

Se pidInst apontar para um valor diferente de zero, a reinicialização do DDEML estará implícita. Nesse caso, pidInst deve apontar para um identificador de instância de aplicativo válido.

[in] pfnCallback

Tipo: PFNCALLBACK

Um ponteiro para a função de retorno de chamada DDE definida pelo aplicativo. Essa função processa transações DDE enviadas pelo sistema. Para obter mais informações, consulte a função DdeCallback de retorno de chamada.

[in] afCmd

Tipo: DWORD

Um conjunto de sinalizadores APPCMD_, CBF_e MF_. Os sinalizadores APPCMD_ fornecem instruções especiais para DdeInitialize. Os sinalizadores CBF_ especificam filtros que impedem que tipos específicos de transações atinjam a função de retorno de chamada. Os sinalizadores MF_ especificam os tipos de atividade DDE que um aplicativo de monitoramento de DDE monitora. O uso desses sinalizadores aprimora o desempenho de um aplicativo DDE eliminando chamadas desnecessárias para a função de retorno de chamada.

Esse parâmetro pode ser um ou mais dos valores a seguir.

Valor Significado
APPCLASS_MONITOR
0x00000001L
Torna possível que o aplicativo monitore a atividade de DDE no sistema. Esse sinalizador é usado por aplicativos de monitoramento de DDE. O aplicativo especifica os tipos de atividade DDE a serem monitoradas combinando um ou mais sinalizadores de monitor com o sinalizador APPCLASS_MONITOR. Para obter detalhes, consulte a seção Comentários a seguir.
APPCLASS_STANDARD
0x00000000L
Registra o aplicativo como um aplicativo DDEML padrão (não monitorado).
APPCMD_CLIENTONLY
0x00000010L
Impede que o aplicativo se torne um servidor em uma conversa DDE. O aplicativo só pode ser um cliente. Esse sinalizador reduz o consumo de recursos pelo DDEML. Ele inclui a funcionalidade do sinalizador CBF_FAIL_ALLSVRXACTIONS.
APPCMD_FILTERINITS
0x00000020L
Impede que o DDEML envie transações de XTYP_CONNECT e XTYP_WILDCONNECT para o aplicativo até que o aplicativo tenha criado seus identificadores de cadeia de caracteres e registrado seus nomes de serviço ou desabilitado a filtragem por uma chamada subsequente à função DdeNameService ou DdeInitialize. Esse sinalizador está sempre em vigor quando um aplicativo chama DdeInitialize pela primeira vez, independentemente de o aplicativo especificar o sinalizador. Em chamadas subsequentes para DdeInitialize, não especificar esse sinalizador desativa os filtros de nome de serviço do aplicativo, mas especificá-lo ativa os filtros de nome de serviço do aplicativo.
CBF_FAIL_ALLSVRXACTIONS
0x0003f000
Impede que a função de retorno de chamada receba transações de servidor. O sistema retorna DDE_FNOTPROCESSED para cada cliente que envia uma transação para esse aplicativo. Esse sinalizador é equivalente à combinação de todos os sinalizadores CBF_FAIL_.
CBF_FAIL_ADVISES
0x00004000
Impede que a função de retorno de chamada receba transações XTYP_ADVSTART e XTYP_ADVSTOP. O sistema retorna DDE_FNOTPROCESSED para cada cliente que envia uma transação XTYP_ADVSTART ou XTYP_ADVSTOP para o servidor.
CBF_FAIL_CONNECTIONS
0x00002000
Impede que a função de retorno de chamada receba transações XTYP_CONNECT e XTYP_WILDCONNECT.
CBF_FAIL_EXECUTES
0x00008000
Impede que a função de retorno de chamada receba transações XTYP_EXECUTE. O sistema retorna DDE_FNOTPROCESSED a um cliente que envia uma transação XTYP_EXECUTE para o servidor.
CBF_FAIL_POKES
0x00010000
Impede que a função de retorno de chamada receba transações XTYP_POKE. O sistema retorna DDE_FNOTPROCESSED a um cliente que envia uma transação XTYP_POKE para o servidor.
CBF_FAIL_REQUESTS
0x00020000
Impede que a função de retorno de chamada receba transações XTYP_REQUEST. O sistema retorna DDE_FNOTPROCESSED para um cliente que envia uma transação XTYP_REQUEST para o servidor.
CBF_FAIL_SELFCONNECTIONS
0x00001000
Impede que a função de retorno de chamada receba transações XTYP_CONNECT da própria instância do aplicativo. Esse sinalizador impede que um aplicativo estabeleça uma conversa DDE com sua própria instância. Um aplicativo deve usar esse sinalizador se precisar se comunicar com outras instâncias de si mesmo, mas não consigo mesmo.
CBF_SKIP_ALLNOTIFICATIONS
0x003c0000
Impede que a função de retorno de chamada receba notificações. Esse sinalizador é equivalente a combinar todos os sinalizadores CBF_SKIP_.
CBF_SKIP_CONNECT_CONFIRMS
0x00040000
Impede que a função de retorno de chamada receba XTYP_CONNECT_CONFIRM notificações.
CBF_SKIP_DISCONNECTS
0x00200000
Impede que a função de retorno de chamada receba XTYP_DISCONNECT notificações.
CBF_SKIP_REGISTRATIONS
0x00080000
Impede que a função de retorno de chamada receba XTYP_REGISTER notificações.
CBF_SKIP_UNREGISTRATIONS
0x00100000
Impede que a função de retorno de chamada receba XTYP_UNREGISTER notificações.
MF_CALLBACKS
0x08000000
Notifica a função de retorno de chamada sempre que uma transação é enviada para qualquer função de retorno de chamada DDE no sistema.
MF_CONV
0x40000000
Notifica a função de retorno de chamada sempre que uma conversa é estabelecida ou encerrada.
MF_ERRORS
0x10000000
Notifica a função de retorno de chamada sempre que ocorrer um erro DDE.
MF_HSZ_INFO
0x01000000
Notifica a função de retorno de chamada sempre que um aplicativo DDE cria, libera ou incrementa a contagem de uso de um identificador de cadeia de caracteres ou sempre que um identificador de cadeia de caracteres é liberado como resultado de uma chamada para a função DdeUninitialize.
MF_LINKS
0x20000000
Notifica a função de retorno de chamada sempre que um loop de aconselhamento é iniciado ou encerrado.
MF_POSTMSGS
0x04000000
Notifica a função de retorno de chamada sempre que o sistema ou um aplicativo posta uma mensagem DDE.
MF_SENDMSGS
0x02000000
Notifica a função de retorno de chamada sempre que o sistema ou um aplicativo envia uma mensagem DDE.

ulRes

Tipo: DWORD

Reservado; deve ser definido como zero.

Valor de retorno

Tipo: UINT

Se a função for bem-sucedida, o valor retornado será DMLERR_NO_ERROR.

Se a função falhar, o valor retornado será um dos seguintes valores:

Observações

Um aplicativo que usa várias instâncias do DDEML não deve passar objetos DDEML entre instâncias.

Um aplicativo de monitoramento de DDE não deve tentar executar operações DDE (estabelecer conversas, emitir transações e assim por diante) no contexto da mesma instância do aplicativo.

Uma transação síncrona falhará com um erro de DMLERR_REENTRANCY se qualquer instância da mesma tarefa tiver uma transação síncrona já em andamento.

O sinalizador CBF_FAIL_ALLSVRXACTIONS faz com que o DDEML filtre todas as transações de servidor e pode ser alterado por uma chamada subsequente para DdeInitialize. O sinalizador APPCMD_CLIENTONLY impede que o DDEML crie recursos importantes para o servidor e não pode ser alterado por uma chamada subsequente para DdeInitialize.

Há uma versão ANSI e uma versão Unicode do DdeInitialize. A versão chamada determina o tipo dos procedimentos de janela usados para controlar conversas DDE (ANSI ou Unicode) e o valor padrão do iCodePage membro da estrutura de CONVCONTEXT (CP_WINANSI ou CP_WINUNICODE).

Nota

O cabeçalho ddeml.h define DdeInitialize como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

Requisito Valor
de cliente com suporte mínimo Windows 2000 Professional [somente aplicativos da área de trabalho]
servidor com suporte mínimo Windows 2000 Server [somente aplicativos da área de trabalho]
da Plataforma de Destino Windows
cabeçalho ddeml.h (inclua Windows.h)
biblioteca User32.lib
de DLL User32.dll

Consulte também

Visão geral biblioteca de gerenciamento dinâmico do Data Exchange