WinAsyncAPPC
La funzione WinAsyncAPPC fornisce un punto di ingresso asincrono per tutti i verbi APPC. Usare questa funzione anziché le versioni di blocco dei verbi se si esegue l'applicazione e si vuole usare la registrazione dei messaggi usando gli handle di Windows per il completamento asincrono dei verbi.
Sintassi
HANDLE WINAPI WinAsyncAPPC(
HANDLE hWnd,
Long lpVcb
);
Parametri
hWnd
Handle di finestra che verrà usato per la pubblicazione di messaggi per notificare a un'applicazione il completamento di un verbo APPC.
lpVcb
Puntatore al blocco di controllo verbo.
Valore restituito
Il valore restituito specifica se la richiesta asincrona ha avuto esito positivo. Se la funzione ha avuto esito positivo, il valore restituito è un handle di attività asincrono. Se la funzione non ha esito positivo, viene restituito uno zero.
Quando questa funzione viene restituita con un valore riuscito, ciò non indica che la chiamata APPC restituirà correttamente. Indica solo che è stato possibile per la libreria APPC tentare la chiamata APPC in modo asincrono usando la registrazione dei messaggi per la notifica.
Commenti
Per un esempio di come usare questo verbo nei programmi di transazione (TP), vedere l'esempio di invio e ricezione (SENDRECV). C che si trova nella cartella APPC) inclusa nell'SDK.
I verbi APPC usati nelle conversazioni di base che possono bloccare sono i seguenti:
-
I verbi APPC usati nelle conversazioni mappate che possono bloccare sono i seguenti:
-
Quando si usano le versioni sincrone o asincrone di un verbo, un'applicazione può avere una sola funzione in sospeso in corso in una conversazione alla volta. Un tentativo di avviare una seconda funzione genera il codice di errore AP_CONV_BUSY.
Le eccezioni al paragrafo precedente sono:
-
Per consentire l'uso completo del supporto asincrono, i verbi RECEIVE_AND_WAIT rilasciati in modo asincrono e MC_RECEIVE_AND_WAIT sono stati modificati per agire come i verbi RECEIVE_AND_POST e MC_RECEIVE_AND_POST . In particolare, mentre una versione asincrona di uno di questi verbi è in sospeso, è possibile eseguire i verbi seguenti nella stessa conversazione:
DEALLOCATE (AP_ABEND_PROG, AP_ABEND_SVC o AP_ABEND_TIMER)
-
In questo modo un'applicazione, in particolare, un emulatore 5250, può usare un RECEIVE_AND_WAIT asincrono o un MC_RECEIVE_AND_WAIT per ricevere i dati. Anche se il RECEIVE_AND_POST, MC_RECEIVE_AND_POST, RECEIVE_AND_WAIT o MC_RECEIVE_AND_WAIT è in sospeso, può comunque usare SEND_ERROR o MC_SEND_ERROR e REQUEST_TO_SEND o MC_REQUEST_TO_SEND. È consigliabile usare questa funzionalità per il supporto asincrono completo.
Al termine dell'operazione asincrona, la finestra dell'applicazione hWnd riceve il messaggio restituito da RegisterWindowMessage con "WinAsyncAPPC" come stringa di input. L'argomento wParam contiene l'handle di attività asincrono restituito dalla chiamata di funzione originale. L'argomento lParam contiene il puntatore VCB originale e può essere dereferenziato per determinare il codice restituito finale.
Come parte della definizione APPC di Windows, WinAPPCCancelAsyncRequest consente a un'applicazione di annullare qualsiasi azione APPC asincrona; ma termina la conversazione correlata o tp in base alle esigenze. Tutte le operazioni in sospeso restituiscono con AP_CANCELED come codice restituito.
Se la funzione viene restituita correttamente, all'applicazione viene inviato un messaggio WinAsyncAPPC quando l'operazione viene completata o la conversazione viene annullata.