WinAsyncAPPCEx
Die WinAsyncAPPCEx-Funktion stellt einen asynchronen Einstiegspunkt für alle APPC-Verben bereit. Verwenden Sie diese Funktion anstelle der blockierenden Versionen der Verben, damit mehrere Sitzungen im selben Thread mithilfe von Ereignissen verarbeitet werden können. Dieses Verb wird nur unter Microsoft Windows unterstützt und verwendet Win32-Ereignisse®.
Syntax
HANDLE WINAPI WinAsyncAPPCEx(
HANDLEevent_handle,
longlpVcb);
Parameter
event_handle
Behandeln sie für Ereignisbenachrichtigungen mithilfe von Win32-Ereignissen.
lpVcb
Zeiger auf den Verb-Steuerelementblock.
Rückgabewert
Der Rückgabewert gibt an, ob die asynchrone Lösungsanforderung erfolgreich war. Wenn die Funktion erfolgreich war, ist der Rückgabewert ein asynchrones Aufgabenhandle. Wenn die Funktion nicht erfolgreich war, wird eine Null zurückgegeben.
Wenn diese Funktion mit einem erfolgreichen Wert zurückgegeben wird, bedeutet dies nicht, dass der APPC-Aufruf letztendlich erfolgreich zurückgegeben wird. Sie gibt nur an, dass es der APPC-Bibliothek möglich war, den APPC-Aufruf asynchron mithilfe von Ereignissen für Benachrichtigungen zu versuchen.
Hinweise
Diese Funktion ist für die Verwendung mit WaitForSingleObject oder WaitForMultipleObjects in der Win32-API vorgesehen. Diese Funktionen werden im Abschnitt "Referenz" der Dokumentation zum Microsoft Platform SDK beschrieben.
Ein Beispiel für die Verwendung dieses Verbs in Multithread-TPs finden Sie in den Multithread-Sende- und Empfangs-Beispiel-TPs (MRCV). C, MSEND. C und MSENDRCV. C im Ordner MSENDRCV) im SDK enthalten.
AppC-Verben, die in einfachen Unterhaltungen verwendet werden, die blockieren können, sind wie folgt:
-
AppC-Verben, die in zugeordneten Unterhaltungen verwendet werden, die blockiert werden können, sind wie folgt:
-
Bei Verwendung der synchronen oder asynchronen Versionen eines Verbs kann eine Anwendung jeweils nur eine herausragende Funktion für eine Unterhaltung ausführen. Ein Versuch, eine zweite Funktion zu initiieren, führt dazu, dass der Fehlercode AP_CONV_BUSY.
Hinweis
Ausnahmen vom vorherigen Absatz sind RECEIVE_AND_POST, MC_RECEIVE_AND_POST, RECEIVE_AND_WAIT und MC_RECEIVE_AND_WAIT.
Hinweis
Um die vollständige Verwendung der asynchronen Unterstützung zu ermöglichen, wurden asynchron ausgegebene RECEIVE_AND_WAIT und MC_RECEIVE_AND_WAIT Verben so geändert, dass sie wie die RECEIVE_AND_POST und MC_RECEIVE_AND_POST Verben fungieren. Während eine asynchrone Version eines dieser Verben hervorragend ist, können die folgenden Verben für dieselbe Konversation ausgegeben werden:
DEALLOCATE (AP_ABEND_PROG, AP_ABEND_SVC oder AP_ABEND_TIMER)
SEND_ERROR oder MC_SEND_ERROR
TEST_RTS oder MC_TEST_RTS
Hinweis
Dadurch kann eine Anwendung, insbesondere eine Serveranwendung, eine asynchrone RECEIVE_AND_WAIT oder MC_RECEIVE_AND_WAIT zum Empfangen von Daten verwenden. Der RECEIVE_AND_POST, MC_RECEIVE_AND_POST, RECEIVE_AND_WAIT oder MC_RECEIVE_AND_WAIT kann jedoch weiterhin SEND_ERROR oder MC_SEND_ERROR und REQUEST_TO_SEND oder MC_REQUEST_TO_SEND verwenden. Es wird empfohlen, dieses Feature für die vollständige asynchrone Unterstützung und insbesondere für die Unterstützung mehrerer Unterhaltungen im selben Thread zu verwenden.
Wenn der asynchrone Vorgang abgeschlossen ist, wird die Anwendung über die Signalisierung des Ereignisses benachrichtigt. Untersuchen Sie nach der Signalisierung des Ereignisses den primären APPC-Rückgabecode und den sekundären Rückgabecode im Verb-Steuerelementblock auf alle Fehlerbedingungen.