WinAsyncAPPCEx
La función WinAsyncAPPCEx proporciona un punto de entrada asincrónico para todos los verbos APPC. Use esta función en lugar de las versiones de bloqueo de los verbos para permitir que varias sesiones se controlen en el mismo subproceso mediante eventos. Este verbo solo se admite en Microsoft Windows y usa eventos Win32®.
Sintaxis
HANDLE WINAPI WinAsyncAPPCEx(
HANDLEevent_handle,
longlpVcb);
Parámetros
event_handle
Control que se usa para la notificación de eventos mediante eventos Win32.
lpVcb
Puntero al bloque de control de verbo.
Valor devuelto
El valor devuelto especifica si la solicitud de resolución asincrónica se realizó correctamente. Si la función se realizó correctamente, el valor devuelto es un identificador de tarea asincrónico. Si la función no se realizó correctamente, se devuelve un cero.
Cuando esta función vuelve con un valor correcto, esto no indica que la llamada a APPC se devolverá correctamente. Solo indica que era posible que la biblioteca APPC intentara la llamada de APPC de forma asincrónica mediante eventos para la notificación.
Comentarios
Esta función está pensada para su uso con WaitForSingleObject o WaitForMultipleObjects en la API win32. Estas funciones se describen en la sección "Referencia" de la documentación de Microsoft Platform SDK.
Para obtener un ejemplo de cómo usar este verbo en TPs multiproceso, consulte los TPs de ejemplo de envío y recepción de muestras (MRCV). C, MSEND. C y MSENDRCV. C ubicado en la carpeta MSENDRCV) incluido en el SDK.
Los verbos de APPC que se usan en conversaciones básicas que pueden bloquear son los siguientes:
-
Los verbos appC usados en las conversaciones asignadas que pueden bloquear son los siguientes:
-
Cuando se usan las versiones sincrónicas o asincrónicas de un verbo, una aplicación solo puede tener una función pendiente en curso en una conversación a la vez. Un intento de iniciar una segunda función da como resultado el código de error AP_CONV_BUSY.
Nota
Las excepciones al párrafo anterior se RECEIVE_AND_POST, MC_RECEIVE_AND_POST, RECEIVE_AND_WAIT y MC_RECEIVE_AND_WAIT.
Nota
Para permitir el uso completo de la compatibilidad asincrónica, se han modificado los verbos RECEIVE_AND_WAIT emitidos de forma asincrónica y MC_RECEIVE_AND_WAIT para que actúen como los verbos RECEIVE_AND_POST y MC_RECEIVE_AND_POST . En concreto, mientras que una versión asincrónica de uno de estos verbos está pendiente, se pueden emitir los siguientes verbos en la misma conversación:
DEALLOCATE (AP_ABEND_PROG, AP_ABEND_SVC o AP_ABEND_TIMER)
Nota
Esto permite a una aplicación, en particular, una aplicación de servidor usar un RECEIVE_AND_WAIT asincrónico o MC_RECEIVE_AND_WAIT recibir datos. Aunque el RECEIVE_AND_POST, MC_RECEIVE_AND_POST, RECEIVE_AND_WAIT o MC_RECEIVE_AND_WAIT está pendiente, todavía puede usar SEND_ERROR o MC_SEND_ERROR y REQUEST_TO_SEND o MC_REQUEST_TO_SEND. Se recomienda usar esta característica para obtener compatibilidad asincrónica completa y, en particular, para admitir varias conversaciones en el mismo subproceso.
Una vez completada la operación asincrónica, se notifica a la aplicación a través de la señalización del evento. Tras la señalización del evento, examine el código de retorno principal de APPC y el código de retorno secundario en el bloque de control de verbos para ver si hay condiciones de error.