LOG_MESSAGE
Solo para OS/2, el verbo LOG_MESSAGE registra un mensaje en el archivo de registro de errores y, opcionalmente, muestra el mensaje en la pantalla de los usuarios. Este verbo se incluye por compatibilidad con las aplicaciones existentes.
La estructura siguiente describe el bloque de control de verbo (VCB) que usa el verbo LOG_MESSAGE.
Sintaxis
struct log_message {
unsigned short opcode;
unsigned char opext;
unsigned char reserv2;
unsigned short primary_rc;
unsigned long secondary_rc;
unsigned short msg_num;
unsigned char origntr_id[8];
unsigned char msg_file_name[3];
unsigned char msg_act;
unsigned short msg_ins_len;
unsigned char FAR * msg_ins_ptr;
};
Miembros
opcode
Parámetro proporcionado. Verbo que identifica el código de operación, SV_LOG_MESSAGE.
opext
Campo reservado.
reserv2
Campo reservado.
primary_rc
Parámetro devuelto. Especifica el código de retorno principal que establece APPC al finalizar el verbo. Los códigos de retorno válidos varían en función del verbo APPC que se emita. Consulte la sección de códigos de retorno para obtener los códigos de error válidos para este verbo.
secondary_rc
Parámetro devuelto. Especifica el código de retorno secundario que establece APPC al finalizar el verbo. Los códigos de retorno válidos varían en función del verbo APPC que se emita. Consulte la sección de códigos de retorno para ver los códigos de error válidos para este verbo.
msg_num
Parámetro proporcionado. Especifica el número del mensaje en el archivo de mensajes que especifica msg_file_name.
origntr_id
Parámetro proporcionado. Especifica el nombre del componente que emite LOG_MESSAGE o una cadena de 8 bytes proporcionada por el usuario.
msg_file_name
Parámetro proporcionado. Especifica el nombre del archivo que contiene el mensaje que se va a registrar.
msg_act
Parámetro proporcionado. Especifica la acción que se llevará a cabo al procesar el mensaje:
Use SV_INTRV para registrar la intervención con un nivel de gravedad de 12 y mostrar el mensaje en la pantalla de los usuarios. El usuario debe presionar una tecla para quitar el mensaje de la pantalla.
Use SV_NO_INTRV para registrar la intervención con un nivel de gravedad de 12, pero no mostrar el mensaje.
msg_ins_len
Parámetro proporcionado. Especifica la longitud de los datos que se van a insertar en el mensaje. Establezca este parámetro en cero si no se va a insertar ningún dato.
msg_ins_ptr
Parámetro proporcionado. Especifica la dirección de los datos que se van a insertar en el mensaje.
Use este parámetro solo si msg_ins_len es mayor que cero.
Códigos de retorno
SV_OK
Código de retorno principal; el verbo se ha ejecutado correctamente.
SV_PARAMETER_CHECK
Código de retorno principal; el verbo no se ejecutó debido a un error de parámetro.
SV_INVALID_DATA_SEGMENT
Código de retorno secundario; los datos que se iban a insertar en el mensaje se han extendido más allá del límite del segmento.
SV_INVALID_MESSAGE_ACTION
Código de retorno secundario; el parámetro msg_act contenía un valor no válido.
SV_COMM_SUBSYSTEM_NOT_LOADED
Código de retorno principal; no se pudo cargar o finalizar un componente necesario durante el procesamiento del verbo. Por tanto, no se pudo establecer la comunicación. Consulte al administrador del sistema para aplicar una acción correctiva.
SV_INVALID_VERB
Código de retorno principal; el parámetro opcode no coincide con el código de operación de ningún verbo. No se ha ejecutado ningún verbo.
SV_INVALID_VERB_SEGMENT
Código de retorno principal; el bloque de control de verbo (VCB) se extendía más allá del final del segmento de datos.
SV_UNEXPECTED_DOS_ERROR
Código de retorno principal; se ha producido una de las condiciones siguientes:
El sistema Microsoft Windows encontró un error al procesar el verbo. El código de retorno del sistema operativo se devolvió mediante el código de retorno secundario. Si el problema persiste, póngase en contacto con el administrador del sistema para aplicar una acción correctiva.
Se emitió un CSV desde un bucle de mensajes invocado por otra aplicación que emite una llamada a la función SendMessage de Windows, en lugar de la llamada a la función PostMessage de Windows, más común. No se pueden procesar verbos.
Se emitió un CSV cuando SendMessage invocó la aplicación. Para averiguar si la aplicación se invocó con SendMessage, use la llamada a la función de la API de Windows InSendMessage.
Comentarios
El valor de msg_file_name debe tener una longitud de tres caracteres. Si es necesario, rellene con espacios. La extensión .MSG se agrega de forma automática.
La longitud total de msg_ins_len, incluida la información de encabezado (40 bytes), el texto del mensaje y los datos insertados, no debe superar los 256 bytes. Si la longitud es superior a 256 bytes, el sistema de comunicación intentará registrar solo la información de encabezado y el texto insertado; el texto del mensaje no se incluirá.
Al crear el archivo de mensajes del registro, puede especificar en qué parte del mensaje se insertarán los datos adicionales. A continuación se proporciona más información.
Los datos de msg_ins_ptr se componen de una serie de hasta nueve cadenas terminadas en NULL. (Dado que IBM OS/2 ES versión 1.0 solo admite tres cadenas de datos, puede limitar el texto insertado a tres cadenas para garantizar la compatibilidad).
Creación de un archivo de mensajes
Si desea crear su propio archivo de mensajes, debe usar la utilidad MKMSGF.
Los tres primeros caracteres del número de mensaje deben coincidir con el nombre de tres caracteres del archivo de mensajes del registro. Estos tres caracteres también se declaran en la parte superior del archivo.
El sistema busca el archivo de mensajes de la manera siguiente:
Si usa su propio archivo de mensajes, el sistema asume que el archivo está en el mismo directorio que el archivo ejecutable de programas.
Si usa el archivo de mensajes predeterminado, COM.MSG, el sistema busca el archivo de forma automática, siempre que se haya cargado SnaBase para Microsoft Host Integration Server.
Si usa el archivo de mensajes predeterminado sin cargar el software mencionado anteriormente, el sistema espera que DPATH indique la ruta de acceso al archivo de mensajes. Esto solo se aplica a los sistemas operativos Windows versión 3.x y OS/2.