Freigeben über


WinAsyncAPPC

Die WinAsyncAPPC-Funktion stellt einen asynchronen Einstiegspunkt für alle APPC-Verben bereit. Verwenden Sie diese Funktion anstelle der blockierenden Versionen der Verben, wenn Sie Ihre Anwendung ausführen und die Nachrichtenveröffentlichung mithilfe von Windows-Handles für die asynchrone Verbvervollständigung verwenden möchten.

Syntax

  
HANDLE WINAPI WinAsyncAPPC(   
HANDLE hWnd,  
Long lpVcb  
);  

Parameter

hWnd
Ein Fensterhandle, das für die Nachrichtenveröffentlichung verwendet wird, um eine Anwendung zu benachrichtigen, wenn ein APPC-Verb abgeschlossen ist.

lpVcb
Zeiger auf den Verb-Kontrollblock.

Rückgabewert

Der Rückgabewert gibt an, ob die asynchrone Anforderung 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ückgibt, bedeutet dies nicht, dass der APPC-Aufruf letztendlich erfolgreich zurückgegeben wird. Es gibt nur an, dass die APPC-Bibliothek den APPC-Aufruf asynchron mithilfe der Nachrichtenveröffentlichung für Benachrichtigungen versuchen konnte.

Hinweise

Ein Beispiel für die Verwendung dieses Verbs in Transaktionsprogrammen (TPs) finden Sie unter Send and Receive Sample TP (SENDRECV. C im Ordner APPC) im SDK enthalten.

AppC-Verben, die in einfachen Unterhaltungen verwendet werden, die blockieren können, sind wie folgt:

  • ALLOCATE

  • BESTÄTIGEN

  • BESTÄTIGT

  • DEALLOCATE

  • FLUSH

  • PREPARE_TO_RECEIVE

  • RECEIVE_ALLOCATE

  • RECEIVE_AND_WAIT

  • REQUEST_TO_SEND

  • SEND_CONVERSATION

  • SEND_DATA

  • SEND_ERROR

  • TP_ENDED

  • TP_STARTED

    AppC-Verben, die in zugeordneten Unterhaltungen verwendet werden, die blockiert werden können, sind wie folgt:

  • MC_ALLOCATE

  • MC_CONFIRM

  • MC_CONFIRMED

  • MC_DEALLOCATE

  • MC_FLUSH

  • MC_PREPARE_TO_RECEIVE

  • MC_RECEIVE_AND_WAIT

  • MC_REQUEST_TO_SEND

  • MC_SEND_CONVERSATION

  • MC_SEND_DATA

  • MC_SEND_ERROR

    Bei Verwendung der synchronen oder asynchronen Versionen eines Verbs kann eine Anwendung jeweils nur über eine ausstehende Funktion in einer Unterhaltung verfügen. Beim Versuch, eine zweite Funktion zu initiieren, wird der Fehlercode AP_CONV_BUSY.

    Die Ausnahmen vom vorherigen Absatz sind:

  • RECEIVE_AND_POST

  • MC_RECEIVE_AND_POST

  • RECEIVE_AND_WAIT

  • MC_RECEIVE_AND_WAIT

    Um die vollständige Verwendung der asynchronen Unterstützung zu ermöglichen, wurden asynchron ausgestellte 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. Insbesondere, während eine asynchrone Version eines dieser Verben aussteht, können die folgenden Verben für die gleiche Konversation ausgegeben werden:

  • DEALLOCATE (AP_ABEND_PROG, AP_ABEND_SVC oder AP_ABEND_TIMER)

  • GET_ATTRIBUTES oder MC_GET_ATTRIBUTES

  • GET_TYPE

  • REQUEST_TO_SEND oder MC_REQUEST_TO_SEND

  • SEND_ERROR oder MC_SEND_ERROR

  • TEST_RTS oder MC_TEST_RTS

  • TP_ENDED

    Dies ermöglicht es einer Anwendung, insbesondere einem 5250-Emulator, eine asynchrone RECEIVE_AND_WAIT oder MC_RECEIVE_AND_WAIT zum Empfangen von Daten zu verwenden. Während die RECEIVE_AND_POST, MC_RECEIVE_AND_POST, RECEIVE_AND_WAIT oder MC_RECEIVE_AND_WAIT ausstehend ist, kann sie weiterhin SEND_ERROR oder MC_SEND_ERROR und REQUEST_TO_SEND oder MC_REQUEST_TO_SEND verwenden. Es wird empfohlen, dieses Feature für vollständige asynchrone Unterstützung zu verwenden.

    Wenn der asynchrone Vorgang abgeschlossen ist, empfängt das Fenster der Anwendung hWnd die von RegisterWindowMessage zurückgegebene Nachricht mit "WinAsyncAPPC" als Eingabezeichenfolge. Das Argument wParam enthält das asynchrone Aufgabenhandle, das vom ursprünglichen Funktionsaufruf zurückgegeben wurde. Das Argument lParam enthält den ursprünglichen VCB-Zeiger und kann dereferenziert werden, um den endgültigen Rückgabecode zu bestimmen.

    Als Teil der Windows APPC-Definition ermöglicht WinAPPCCancelAsyncRequest einer Anwendung, jede asynchrone APPC-Aktion abzubrechen. beendet jedoch die zugehörige Unterhaltung oder den entsprechenden TP. Alle ausstehenden Vorgänge werden mit AP_CANCELED als Rückgabecode zurückgegeben.

    Wenn die Funktion erfolgreich zurückgegeben wird, wird eine WinAsyncAPPC-Nachricht an die Anwendung gesendet, wenn der Vorgang abgeschlossen oder die Unterhaltung abgebrochen wird.