Emisión de un verbo de APPC
El siguiente procedimiento es necesario para emitir un verbo APPC de bloqueo. En el código de ejemplo, el verbo emitido es MC_SEND_DATA.
Para emitir un verbo APPC de bloqueo
Cree una variable de estructura a partir de la estructura del bloque de control de verbos (VCB) que se aplica al verbo APPC que se va a emitir.
#include <winappc.h> . . struct mc_send_data mcsend; The VCB structures are declared in WINAPPC.H; one of these structures is: mc_send_data
Borrar (establecido en cero) las variables dentro de la estructura VCB.
memset( mcsend, '\0', sizeof( mcsend ) );
Asigne valores a las variables VCB que proporcionan información a 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;
Los valores AP_MAPPED_CONVERSATION y AP_M_SEND_DATA son constantes simbólicas que representan enteros. Estas constantes se definen en WINAPPC.H.
Invoque la función APPC . El único parámetro es un puntero a la dirección de la estructura que contiene el VCB para el verbo deseado.
APPC ( ( long ) (void FAR * ) &mcsend );
Use WinAsyncAPPC si ejecuta la aplicación en Windows versión 3. x.
Para llamar a WinAsyncAPPC:
HANDLE WINAPI WinAsyncAPPC (hWnd, 1pVCB)
Una vez completada la operación asincrónica, la ventana de la aplicación hWnd recibe el mensaje devuelto por RegisterWindowMessage con "WinAsyncAPPC" como cadena de entrada.
Use las variables devueltas por APPC.
if( mcsend.primary_rc != AP_OK ) /* Do error routine */ . . .