Finalización de la llamada asincrónica
Con una excepción, Microsoft® Host Integration Server permite una llamada asincrónica de Windows® SNA pendiente por conexión y un verbo de bloqueo por subproceso. La excepción a esto es que al emitir una llamada de recepción asincrónica, se pueden emitir las siguientes llamadas mientras la recepción está pendiente:
-
Esto permite que una aplicación, en particular un emulador de 5250, use una recepción asincrónica para recibir datos. Se recomienda encarecidamente usar esta característica.
En el ejemplo siguiente se muestra cómo usar la finalización asincrónica de llamadas con Host Integration Server:
void ProcessVerbCompletion (WPARAM wParam LPARAM lParam)
{
for ( i = 0; i<nPendingVerbs; i++ )
if (memcmp (pPending [i].ConvID, (Conversation_ID) lParam)== 0)
ProcessCommand (wParam, lParam);
}
LRESULT CALLBACK SampleWndProc ( . . .)
{
if (msg = = uAsyncCPIC ) {
ProcessVerbCompletion (wParam, lParam);
}
else switch (msg) {
case WM_USER:
Initialize_Conversation (lpConvId, "GORDM", &lError );
if (lError ! = CM_OK ) {
ErrorDisplay ( ) ;
break ;
}
Set_Processing_Mode (lpConvId, CM_NON_BLOCKING, &lError ) ;
if ( lError ! = CM_OK ) {
ErrorDisplay ( ) ;
break ;
}
Allocate (lpConvId, &lError ) ;
switch (lError ) {
case CM_OK:
break ;
case CM_OPERATION_INCOMPLETE:
memcopy (pPending [nPending ++].ConvId, lpConvId, sizeof (C) ;
break ;
default:
ErrorDisplay ( ) ;
}
break ;
}
WinMain ( . . . )
{
if ( ( WinCPICStartup ( . . . ) = = FALSE ) {
return FALSE;
}
uAsyncCPIC = RegisterWindowMessage ("WinAsyncCPIC"");
Specify_Windows_Handle (hwndSample) ;
while (GetMessage ( . . . ) ) {
. . . . .
}
WinCPICCleanup ( . . . )
}
Para obtener más información sobre las llamadas CPI-C y las extensiones de Windows, vea Cpi-C Calls and Extensions for the Windows Environment. Para obtener más información sobre el uso de CPI-C, consulte referencia de comunicaciones de interfaz de programación común de arquitectura de aplicaciones de IBM Systems, número de pieza SC26-4399-04.