Condividi tramite


Emissione di un verbo APPC

Per eseguire un verbo APPC di blocco, è necessaria la procedura seguente. Nel codice di esempio il verbo emesso viene MC_SEND_DATA.

Per emettere un verbo APPC di blocco

  1. Creare una variabile di struttura dalla struttura VCB (Verb Control Block) che si applica al verbo APPC da emettere.

    #include <winappc.h>  
        .  
        .  
    struct mc_send_data  mcsend;  
    The VCB structures are declared in WINAPPC.H; one of these structures is:  
    mc_send_data  
    
  2. Cancella (impostato su zero) le variabili all'interno della struttura VCB.

    memset( mcsend, '\0', sizeof( mcsend ) );  
    
  3. Assegnare valori alle variabili VCB che forniscono informazioni ad APPC.

    mcsend.opcode = AP_M_SEND_DATA;  
    mcsend.opext = AP_MAPPED_CONVERSATION;  
    memcpy( mcsend.tp_id, tp_id, sizeof( tp_id ) );  
    mcsend.conv_id = conv_id;  
    mcsend.dlen = datalen;  
    mcsend.dptr = sharebufptr;  
    

    I valori AP_MAPPED_CONVERSATION e AP_M_SEND_DATA sono costanti simboliche che rappresentano numeri interi. Queste costanti sono definite in WINAPPC.H.

  4. Richiamare la funzione APPC . L'unico parametro è un puntatore all'indirizzo della struttura contenente vcb per il verbo desiderato.

    APPC ( ( long ) (void FAR * ) &mcsend );  
    

    Usare WinAsyncAPPC se si esegue l'applicazione in Windows versione 3. x.

    Per chiamare WinAsyncAPPC:

    HANDLE WINAPI WinAsyncAPPC (hWnd, 1pVCB)  
    

    Al termine dell'operazione asincrona, la finestra dell'applicazione hWnd riceve il messaggio restituito da RegisterWindowMessage con "WinAsyncAPPC" come stringa di input.

  5. Usare le variabili restituite da APPC.

    if( mcsend.primary_rc != AP_OK )   
    /* Do error routine */  
        .  
        .  
        .