Função DdeInitializeA (ddeml.h)

Registra um aplicativo com a DDEML (Biblioteca de Gerenciamento do Dynamic Data Exchange ). 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 de retorno de chamada DdeCallback .

[in] afCmd

Tipo: DWORD

Um conjunto de sinalizadores APPCMD_, CBF_ e MF_ . Os sinalizadores de 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 melhora o desempenho de um aplicativo DDE eliminando chamadas desnecessárias para a função de retorno de chamada.

Esse parâmetro pode usar um dos valores a seguir.

Valor Significado
APPCLASS_MONITOR
0x00000001L
Possibilita que o aplicativo monitore a atividade DDE no sistema. Esse sinalizador é usado por aplicativos de monitoramento de DDE. O aplicativo especifica os tipos de atividade DDE a serem monitorados 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 XTYP_CONNECT e XTYP_WILDCONNECT transações para o aplicativo até que o aplicativo tenha criado seus identificadores de cadeia de caracteres e registrado seus nomes de serviço ou tenha desativado a filtragem por uma chamada subsequente para a 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 a combinar 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 de 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 a 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 quaisquer 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 ocorre 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 aviso é 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

Reservados; deve ser definido como zero.

Retornar valor

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:

Comentários

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) dentro do 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 de chave 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 de 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 para o membro iCodePage da estrutura CONVCONTEXT (CP_WINANSI ou CP_WINUNICODE).

Observação

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 de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

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

Confira também

Visão geral da biblioteca de gerenciamento do Dynamic Data Exchange