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 nachrichtenposten mithilfe von Windows-Handles für den asynchronen Verbabschluss verwenden möchten.

Syntax

  
HANDLE WINAPI WinAsyncAPPC(   
HANDLE hWnd,  
Long lpVcb  
);  

Parameter

hWnd
Ein Fensterhandle, das zum Veröffentlichen von Nachrichten verwendet wird, um eine Anwendung zu benachrichtigen, wenn ein APPC-Verb abgeschlossen ist.

lpVcb
Zeigen Sie auf den Verb-Steuerelementblock.

Rückgabewert

Der Rückgabewert gibt an, ob die asynchrone Anforderung erfolgreich war. Wenn die Funktion erfolgreich war, ist der Rückgabewert ein asynchroner Aufgabenhandle. Wenn die Funktion nicht erfolgreich war, wird eine Null zurückgegeben.

Wenn diese Funktion einen erfolgreichen Wert zurückgibt, gibt dies nicht an, dass der APPC-Aufruf letztendlich erfolgreich zurückgegeben wird. Es gibt nur an, dass es für die APPC-Bibliothek möglich war, den APPC-Aufruf asynchron mithilfe der Benachrichtigungspostung zu versuchen.

Bemerkungen

Ein Beispiel für die Verwendung dieses Verbs in Transaktionsprogrammen (TPs) finden Sie im Sende- und Empfangsbeispiel TP (SENDRECV). C im APPC-Ordner) 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 blockieren 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 nur eine herausragende Funktion gleichzeitig für eine Unterhaltung ausführen. Ein Versuch, eine zweite Funktion zu initiieren, führt zum 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 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 funktionieren. Während eine asynchrone Version eines dieser Verben ausstehende ist, können die folgenden Verben in derselben Unterhaltung 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

    Dadurch kann eine Anwendung, insbesondere ein 5250-Emulator, eine asynchrone RECEIVE_AND_WAIT oder MC_RECEIVE_AND_WAIT verwenden, um Daten zu empfangen. Während die RECEIVE_AND_POST, MC_RECEIVE_AND_POST, RECEIVE_AND_WAIT oder MC_RECEIVE_AND_WAIT noch ausstehend sind, 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 die vollständige asynchrone Unterstützung zu verwenden.

    Nach Abschluss des asynchronen Vorgangs empfängt der Fenster-hWnd der Anwendung die von RegisterWindowMessage mit "WinAsyncAPPC" als Eingabezeichenfolge zurückgegebene Nachricht. Das wParam-Argument enthält das asynchrone Aufgabenhandle, das vom ursprünglichen Funktionsaufruf zurückgegeben wird. Das lParam-Argument enthält den ursprünglichen VCB-Zeiger und kann abgeleitet werden, um den endgültigen Rückgabecode zu bestimmen.

    Im Rahmen der Windows APPC-Definition ermöglicht WinAPPCCancelAsyncRequest einer Anwendung das Abbrechen einer asynchronen APPC-Aktion; beendet jedoch die zugehörige Unterhaltung oder TP entsprechend. 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 gepostet, wenn der Vorgang abgeschlossen ist oder die Unterhaltung abgebrochen wird.