Compartir a través de


Función DdeInitializeA (ddeml.h)

Registra una aplicación con la Biblioteca de administración dinámica de Intercambio de datos (DDEML). Una aplicación debe llamar a esta función antes de llamar a cualquier otra función de la Biblioteca de administración de Exchange de datos dinámicos (DDEML).

Sintaxis

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

Parámetros

[in, out] pidInst

Tipo: LPDWORD

Identificador de instancia de aplicación. En la inicialización, este parámetro debe apuntar a 0. Si la función se ejecuta correctamente, este parámetro apunta al identificador de instancia de la aplicación. Este valor debe pasarse como parámetro idInst en todas las demás funciones DDEML que lo requieran. Si una aplicación usa varias instancias de la biblioteca de vínculos dinámicos (DLL) DDEML, la aplicación debe proporcionar una función de devolución de llamada diferente para cada instancia.

Si pidInst apunta a un valor distinto de cero, se implica la reinicialización del DDEML. En este caso, pidInst debe apuntar a un identificador de instancia de aplicación válido.

[in] pfnCallback

Tipo: PFNCALLBACK

Puntero a la función de devolución de llamada DDE definida por la aplicación. Esta función procesa las transacciones DDE enviadas por el sistema. Para obtener más información, consulte la función de devolución de llamada DdeCallback .

[in] afCmd

Tipo: DWORD

Conjunto de marcas de APPCMD_, CBF_ y MF_ . Las marcas de APPCMD_ proporcionan instrucciones especiales para DdeInitialize. Las marcas de CBF_ especifican filtros que impiden que determinados tipos de transacciones lleguen a la función de devolución de llamada. Las marcas de MF_ especifican los tipos de actividad DDE que supervisa una aplicación de supervisión de DDE. El uso de estas marcas mejora el rendimiento de una aplicación DDE mediante la eliminación de llamadas innecesarias a la función de devolución de llamada.

Este parámetro puede ser uno o más de los siguientes valores.

Valor Significado
APPCLASS_MONITOR
0x00000001L
Permite que la aplicación supervise la actividad de DDE en el sistema. Esta marca la usan las aplicaciones de supervisión de DDE. La aplicación especifica los tipos de actividad DDE que se van a supervisar mediante la combinación de una o varias marcas de monitor con la marca APPCLASS_MONITOR . Para obtener más información, consulte la siguiente sección Comentarios.
APPCLASS_STANDARD
0x00000000L
Registra la aplicación como una aplicación DDEML estándar (no supervisada).
APPCMD_CLIENTONLY
0x00000010L
Impide que la aplicación se convierta en un servidor en una conversación DDE. La aplicación solo puede ser un cliente. Esta marca reduce el consumo de recursos por DDEML. Incluye la funcionalidad de la marca CBF_FAIL_ALLSVRXACTIONS .
APPCMD_FILTERINITS
0x00000020L
Impide que DDEML envíe XTYP_CONNECT y XTYP_WILDCONNECT transacciones a la aplicación hasta que la aplicación haya creado sus identificadores de cadena y haya registrado sus nombres de servicio o haya desactivado el filtrado mediante una llamada posterior a la función DdeNameService o DdeInitialize . Esta marca siempre está en vigor cuando una aplicación llama a DdeInitialize por primera vez, independientemente de si la aplicación especifica la marca. En las llamadas posteriores a DdeInitialize, no especificar esta marca desactiva los filtros de nombre de servicio de la aplicación, pero si se especifica, se activan los filtros de nombre de servicio de la aplicación.
CBF_FAIL_ALLSVRXACTIONS
0x0003f000
Impide que la función de devolución de llamada reciba transacciones del servidor. El sistema devuelve DDE_FNOTPROCESSED a cada cliente que envía una transacción a esta aplicación. Esta marca equivale a combinar todas las marcas de CBF_FAIL_.
CBF_FAIL_ADVISES
0x00004000
Impide que la función de devolución de llamada reciba XTYP_ADVSTART y XTYP_ADVSTOP transacciones. El sistema devuelve DDE_FNOTPROCESSED a cada cliente que envía una transacción XTYP_ADVSTART o XTYP_ADVSTOP al servidor.
CBF_FAIL_CONNECTIONS
0x00002000
Impide que la función de devolución de llamada reciba XTYP_CONNECT y XTYP_WILDCONNECT transacciones.
CBF_FAIL_EXECUTES
0x00008000
Impide que la función de devolución de llamada reciba transacciones XTYP_EXECUTE . El sistema devuelve DDE_FNOTPROCESSED a un cliente que envía una transacción XTYP_EXECUTE al servidor.
CBF_FAIL_POKES
0x00010000
Impide que la función de devolución de llamada reciba transacciones XTYP_POKE . El sistema devuelve DDE_FNOTPROCESSED a un cliente que envía una transacción XTYP_POKE al servidor.
CBF_FAIL_REQUESTS
0x00020000
Impide que la función de devolución de llamada reciba transacciones XTYP_REQUEST . El sistema devuelve DDE_FNOTPROCESSED a un cliente que envía una transacción XTYP_REQUEST al servidor.
CBF_FAIL_SELFCONNECTIONS
0x00001000
Impide que la función de devolución de llamada reciba XTYP_CONNECT transacciones de la propia instancia de la aplicación. Esta marca impide que una aplicación establezca una conversación DDE con su propia instancia. Una aplicación debe usar esta marca si necesita comunicarse con otras instancias de sí misma, pero no con sí misma.
CBF_SKIP_ALLNOTIFICATIONS
0x003c0000
Impide que la función de devolución de llamada reciba notificaciones. Esta marca equivale a combinar todas las marcas de CBF_SKIP_.
CBF_SKIP_CONNECT_CONFIRMS
0x00040000
Impide que la función de devolución de llamada reciba notificaciones XTYP_CONNECT_CONFIRM .
CBF_SKIP_DISCONNECTS
0x00200000
Impide que la función de devolución de llamada reciba notificaciones XTYP_DISCONNECT .
CBF_SKIP_REGISTRATIONS
0x00080000
Impide que la función de devolución de llamada reciba notificaciones de XTYP_REGISTER .
CBF_SKIP_UNREGISTRATIONS
0x00100000
Impide que la función de devolución de llamada reciba notificaciones de XTYP_UNREGISTER .
MF_CALLBACKS
0x08000000
Notifica a la función de devolución de llamada cada vez que se envía una transacción a cualquier función de devolución de llamada DDE en el sistema.
MF_CONV
0x40000000
Notifica a la función de devolución de llamada cada vez que se establece o finaliza una conversación.
MF_ERRORS
0x10000000
Notifica a la función de devolución de llamada cada vez que se produce un error de DDE.
MF_HSZ_INFO
0x01000000
Notifica a la función de devolución de llamada cada vez que una aplicación DDE crea, libera o incrementa el recuento de uso de un identificador de cadena o cada vez que se libera un identificador de cadena como resultado de una llamada a la función DdeUninitialize .
MF_LINKS
0x20000000
Notifica a la función de devolución de llamada cada vez que se inicia o finaliza un bucle de aviso.
MF_POSTMSGS
0x04000000
Notifica a la función de devolución de llamada cada vez que el sistema o una aplicación publique un mensaje DDE.
MF_SENDMSGS
0x02000000
Notifica a la función de devolución de llamada cada vez que el sistema o una aplicación envían un mensaje DDE.

ulRes

Tipo: DWORD

Reservados; debe establecerse en cero.

Valor devuelto

Tipo: UINT

Si la función se ejecuta correctamente, se DMLERR_NO_ERROR el valor devuelto.

Si se produce un error en la función, el valor devuelto es uno de los siguientes valores:

Comentarios

Una aplicación que usa varias instancias de DDEML no debe pasar objetos DDEML entre instancias.

Una aplicación de supervisión de DDE no debe intentar realizar operaciones DDE (establecer conversaciones, emitir transacciones, etc.) dentro del contexto de la misma instancia de aplicación.

Se produce un error en una transacción sincrónica con un error de DMLERR_REENTRANCY si alguna instancia de la misma tarea ya tiene una transacción sincrónica en curso.

La marca CBF_FAIL_ALLSVRXACTIONS hace que DDEML filtre todas las transacciones del servidor y se pueda cambiar mediante una llamada posterior a DdeInitialize. La marca APPCMD_CLIENTONLY impide que DDEML cree recursos clave para el servidor y no se pueda cambiar mediante una llamada posterior a DdeInitialize.

Hay una versión ANSI y una versión Unicode de DdeInitialize. La versión denominada determina el tipo de los procedimientos de ventana utilizados para controlar las conversaciones DDE (ANSI o Unicode) y el valor predeterminado para el miembro iCodePage de la estructura CONVCONTEXT (CP_WINANSI o CP_WINUNICODE).

Nota

El encabezado ddeml.h define DdeInitialize como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado ddeml.h (incluye Windows.h)
Library User32.lib
Archivo DLL User32.dll

Consulte también

Información general de la biblioteca de administración dinámica de Intercambio de datos