Vervollständigung von asynchronen Aufrufen
Mit einer Ausnahme lässt Microsoft® Host Integration Server einen ausstehenden asynchronen Windows® SNA-Aufruf pro Verbindung und ein blockierende Verb pro Thread zu. Die Ausnahme ist, dass beim Ausgeben eines asynchronen Empfangsaufrufs die folgenden Aufrufe ausgegeben werden können, während der Empfang aussteht:
-
Dadurch kann eine Anwendung, insbesondere ein 5250-Emulator, einen asynchronen Empfang zum Empfangen von Daten verwenden. Die Verwendung dieses Features wird dringend empfohlen.
Das folgende Beispiel veranschaulicht die Verwendung der asynchronen Aufrufvervollständigung mit 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 ( . . . )
}
Weitere Informationen zu CPI-C-Aufrufen und Windows-Erweiterungen finden Sie unter CPI-C-Aufrufe und -Erweiterungen für die Windows-Umgebung. Weitere Informationen zur Verwendung von CPI-C finden Sie in der Referenz zur IBM Systems Application Architecture Common Programming Interface Communications, Teilnummer SC26-4399-04.