VioGetAnsi
VioGetAnsi devuelve el estado actual del ANSI (on/off).
#define INCL_BASE
#include <os2.h>
PUSHORT Indicator;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioGetAnsi(Indicator, VioHandle);
||
Parámetros
||
|| Indicator || Puntero a una posición de memoria donde OS/2 devolverá el estado del ANSI. Un valor 1 indica ANSI activo; un valor 0 indica ANSI desactivado. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioGetBuf
VioGetBuf devuelve un puntero al buffer de video virtual (
LVB) para poder acceder a él directamente.
#define INCL_BASE
#include <os2.h>
PUSHORT LVBPtr;
PUSHORT Length;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioGetBuf(LVBPtr, Length, VioHandle);
||
Parámetros
||
|| LVBPtr || Puntero a una dirección de memoria donde OS/2 devolverá un selector y un offset (desplazamiento) al buffer de video virtual. El programa no debe suponer que el offset es 0. ||
|| Length || Puntero a una dirección de memoria donde OS/2 devolverá la longitud del buffer. La longitud es: numero de filas * numero de columnas * tamaño de la celda. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 430 || Ilegal durante POPUP ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioGetCurPos
VioGetCurPos devuelve la posición del cursor en la pantalla.
#define INCL_BASE
#include <os2.h>
PUSHORT Row;
PUSHORT Column;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioGetCurPos(Row, Column, VioHandle);
||
Parámetros
||
|| Row || Puntero a una posicion de memoria donde OS/2 devolverá la fila actual del cursor. ||
|| Column || Puntero a una posicion de memoria donde OS/2 devolverá la columna actual del cursor. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioGetCurType
VioGetCurType devuelve información sobre el tamaño físico del cursor, así como su estado.
#define INCL_BASE
#include <os2.h>
PVIOCURSORINFO CursorData;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioGetCurType(CursorData, VioHandle);
||
Parámetros
||
|| CursorData || Puntero a una estructura de características del cursor, con los siguientes campos: ||
|| || || yStart (USHORT) || Linea horizontal del caracter en el que empieza la parte superior del cursor. Si el caracter tiene n lineas, 0 es la superior, y (n-1) es la inferior. || || cEnd (USHORT) || Linea horizontal del caracter en que termina el cursor. Las lineas se numeran igual que en
yStart. || || cx (USHORT) || Ancho del cursor. En modos de texto, es el número de columnas. El valor máximo soportado por OS/2 es 1. || || attr (USHORT) || Un valor de -1 indica un cursor oculto. El resto de los valores indican cursor visible. || ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioGetMode
VioGetMode devuelve el modo gráfico actual.
#define INCL_BASE
#include <os2.h>
PVIOMODEINFO ModeData;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioGetMode(ModeData, VioHandle);
||
Parámetros
||
|| ModeData || Estructura con los siguientes elementos: ||
|| || || cb (USHORT) || Indica la longitud de la estructura incluyendo
cb. El valor especificado determina la cantidad de datos devueltos. El tamaño mínimo es 2 bytes, y el máximo es 34 bytes. || || fbType (UCHAR) || Máscara de bits con las características del modo.
||
Bit ||
Descripción || || 7-4 || Reservados || || 3 || 0 = Modos compatibles con VGA (del modo 0 al 13H)
1 = Modo propio de la tarjeta || || 2 || 0 = Modo en color
1 = Modo en blanco y negro || || 1 || 0 = Modo texto
1 = Modo gráfico || || || 0 = Adaptador monocromo/impresora
1 = Otro adaptador || || || color (UCHAR) || Número de colores definido como potencia de dos (0 = modos monocromos 7, 7+ y F; 1 = 2 colores; 2 = 4 colores; 4 = 16 colores; 8 = 256 colores) || || col (USHORT) || Numero de columnas de texto || || row (USHORT) || Numero de filas de texto || || hres (USHORT) || Resolución horizontal (columnas de pixels) || || vres (USHORT) || Resolución vertical (filas de pixels) || || fmt_ID (UCHAR) || Formato de los atributos || || attrib (UCHAR) || Numero de atributos en un caracter || || buf_addr (ULONG) || Dirección física (32 bits) del buffer físico de pantalla en este modo || || buf_length (ULONG) || Longitud del buffer físico de pantalla para este modo || || full_length (ULONG) || Tamaño del buffer necesario para guardar totalmente el buffer físico de pantalla en este modo || || partial_length (ULONG) || Tamaño del buffer necesario para guardar parcialmente (pop-up) el buffer físico de pantalla para este modo || || ext_data_addr (PCH) || Puntero a una estructura extendida, o cero si no la hay. El formato de ésta está determinada por el driver, y es desconocido por OS/2 || ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 436 || Handle VIO no válido ||
|| 438 || Longitud no válida ||
|| 465 || VIO inactivo (proceso en
detached) ||
|| 494 || VIO Extended SG ||
VioGetPhysBuf
VioGetPhysBuf devuelve un conjunto de selectores que apuntan al buffer físico de vídeo. Permite acceder directamente a la pantalla. Si se ejecuta esta llamada después de un
VioGetBuf, todas las llamadas
VioWrtXX dejarán de ir al LVB, siendo escritas directamente en pantalla.
#define INCL_BASE
#include <os2.h>
PVIOPHYSBUF DisplayBuf;
USHORT Reserved;
APIRET rc; /* Codigo de error */
rc = VioGetPhysBuf(DisplayBuf, Reserved);
||
Parámetros
||
|| DisplayBuf || Puntero a una estructura que contiene la siguiente información: ||
|| || || pBuf (PBYTE) || Dirección del buffer de pantalla (32 bits) || || cb (ULONG) || Longitud total del buffer || || asel[n] (SEL) || Lista de selectores. Debe reservarse tanto espacio como bloques de 64Ks compongan el modo de vídeo actual. NOTA: en el fichero OS2EMX.H, n vale 1. Si se van a reservar mas selectores, es necesario crear la estructura de nuevo. || ||
|| Reserved || Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 350 || Puntero no válido ||
|| 429 || El proceso está en background ||
|| 430 || Ilegal durante POPUP ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
|| 494 || VIO Extended SG ||
VioGetState
VioGetState devuelve la configuración actual de registros de paleta, color del borde, modo de parpadeo/brillo o registros de color.
#define INCL_BASE
#include <os2.h>
PVOID RequestBlock;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioGetState(RequestBlock, VioHandle);
||
Parámetros
||
|| RequestBlock || Puntero a una estructura de estado, que consiste en una de las seis posibles estructuras, en función del tipo pedido: ||
|| || ||
Tipo ||
Definición || || || Obtiene registros de paleta || || 1 || Obtiene color del borde || || 2 || Obtiene modo parpadeo/brillo || || 3 || Obtiene registros de color || || 4 || Reservado || || 5 || Obtiene la línea para subrayado || ||
|| || Las estructuras, según el tipo, son: ||
|| ||
VIOPALSTATE Válido para tarjetas EGA, VGA o IBM PS/2|| cb (USHORT) || Longitud de la estructura, incluyendose a ella misma. 38 es el valor máximo. || || type (USHORT) || El tipo es 0 || || iFirst (USHORT) || Primer registro de paleta a obtener. Tiene que valer entre 0 y 15. El número de registros devueltos se deduce en función del campo
length || || acolor[n] (USHORT*(
cb-6)/2) || Valores de color para cada registro de paleta. El número máximo es de 16. NOTA: en el fichero OS2EMX.H, n vale 1. Si se van a cambiar mas colores, es necesario crear la estructura de nuevo. || ||
|| ||
VIOOVERSCAN Válido para CGA, VGA o IBM PS/2|| cb (USHORT) || Longitud de la estructura, incluyendose a ella misma. Tiene que ser 6. || || type (USHORT) || El tipo es 1 || || color (USHORT) || Color deseado para el borde || ||
|| ||
VIOINTENSITY Válido para CGA, EGA, MCGA, VGA o IBM PS/2|| cb (USHORT) || Longitud de la estructura, incluyendose ella misma. Tiene que ser 6. || || type (USHORT) || El tipo es 2 || || fs (USHORT) || 0: el parpadeo está activo; 1: el brillo está activo || ||
|| ||
VIOCOLORREG Válido para VGA o IBM PS/2|| cb (USHORT) || Longitud de la estructura, incluyendose a sí misma. Tiene que ser 12. || || type (USHORT) || El tipo es 3 || || firstcolorreg (USHORT) || Primer registro a obtener. Tiene que estar contenido entre 0 y 255 || || numcolorregs (USHORT) || Número de registros de color a obtener. Tiene que valer entre 1 y 256 || || colorregaddr (PCH) || Puntero a una zona donde los registros son devueltos. El tamaño debe ser suficiente para que entren todos, teniendo en cuenta que cada registro ocupa 3 bytes. El orden en que se almacena es: rojo-verde-azul || ||
|| ||
VIOSETULINELOC Válido para EGA, VGA o IBM PS/2|| cb (USHORT) || Longitud de la estructura, incluyendose a sí misma. Tiene que ser 6. || || type (USHORT) || El tipo es 5. El subrayado está activo solo cuando el color de tinta está entre 1 y 9. || || scanline (USHORT) || El valor devuelto está entre 0 y 31, y es la línea menos 1. Un valor de 32 indica que el subrayado está desactivado. || ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 421 || Parámetros no validos ||
|| 436 || Handle VIO no válido ||
|| 438 || Longitud no válida ||
|| 465 || VIO inactivo (proceso en
detached) ||
|| 494 || VIO Extended SG ||
VioReadCellStr
VioReadCellStr lee una cadena de parejas caracter-atributo de la pantalla, empezando en la posición indicada. Si se excede el final de una línea, se continua en la siguiente. Si se excede la longitud de la pantalla, la lectura termina y la longitud es ajustada a la cantidad de parejas leidas.
#define INCL_BASE
#include <os2.h>
PCH CellStr;
PUSHORT Length;
USHORT Row;
USHORT Column;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioReadCellStr(CellStr, Length, Row, Column, VioHandle);
||
Parámetros
||
|| CellStr || Puntero a una zona de memoria donde OS/2 almacenará la cadena leída. ||
|| Length || Puntero a una posición de memoria donde estará almacenada la longitud del buffer
CellStr. Se debe tener en cuenta que cada pareja puede medir 2 o 4 bytes. Si la longitud del buffer no es suficiente, se dejará sin completar la lectura. ||
|| Row || Fila inicial de la zona a leer. 0 es la parte superior del monitor. ||
|| Column || Columna inicial de la zona a leer. 0 es la columna izquierda. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 358 || Fila no válida ||
|| 359 || Columna no válida ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioReadCharStr
VioReadCharStr lee una cadena de caracteres de la pantalla, empezando en la posición indicada.
#define INCL_BASE
#include <os2.h>
PCH CharStr;
PUSHORT Length;
USHORT Row;
USHORT Column;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioReadCharStr(CharStr, Length, Row, Column, VioHandle);
||
Parámetros
||
|| CharStr || Puntero a una posición de memoria a partir de la cual OS/2 devolverá la cadena de caracteres leída. ||
|| Length || Puntero a la longitud del buffer en bytes. ||
|| Row || Fila inicial de la zona a leer. 0 es la parte superior. ||
|| Column || Columna inicial de la zona a leer. 0 es la parte izquierda. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 358 || Fila no válida ||
|| 359 || Columna no válida ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioSavRedrawWait
VioSavRedrawWait notifica a una aplicación gráfica cuando debe guardar o repintar la pantalla.
#define INCL_BASE
#include <os2.h>
USHORT SavRedrawIndic;
PUSHORT NotifyType;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioSavRedrawWait(SavRedrawIndic, NotifyType, VioHandle);
||
Parámetros
||
|| SavRedrawIndic || Indica qué evento espera la aplicación: 0 para ser notificada tanto por operaciones de guardar como de repintar; 1 para ser notificada solo por operaciones de repintar. ||
|| NotifyType || Puntero a una posición de memoria donde OS/2 devolverá la acción a realizar: 0 para guardar la imagen; 1 para repintar la imagen. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 421 || Parámetros no validos ||
|| 422 || El thread SavRestoreWait ya tiene dueño ||
|| 423 || El thread SavRestoreWait ha sido liberado ||
|| 430 || Ilegal durante POPUP ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
|| 494 || VIO Extended SG ||
VioScrLock
VioScrLock espera a que la sesión que lo ha ejecutado pase a primer plano, y bloquea el selector de programas, de modo que se tiene acceso al buffer físico de vídeo..
#define INCL_BASE
#include <os2.h>
USHORT WaitFlag;
PUCHAR Status;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioScrLock(WaitFlag, Status, VioHandle);
||
Parámetros
||
|| WaitFlag || Indica qué debe hacer la llamada si la sesión está en segundo plano. Si vale 0, retorna aunque no esté disponible el acceso; si vale 1, espera a que esté disponible. ||
|| Status || Puntero a una posición de memoria donde OS/2 devolverá el resultado de la operación. Si vale 0, el bloqueo ha tenido éxito; si vale 1, no ha tenido éxito. El valor sólo es válido cuando el error devuelto es 0 (no error). El valor 1 sólo es devuelto cuando
WaitFlag es 0. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 366 || Valor de
WaitFlag no válido ||
|| 430 || Ilegal durante POPUP ||
|| 434 || Ya está bloqueado ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
|| 494 || VIO Extended SG ||
VioScrollDn
VioScrollDn desplaza un área definida de la pantalla hacia abajo. Si se indica como inicio del bloque (0,0) y como final y número de líneas 65535, la pantalla se rellenará con la pareja de caracter-atributos indicada.
#define INCL_BASE
#include <os2.h>
USHORT TopRow;
USHORT LeftCol;
USHORT BotRow;
USHORT RightCol;
USHORT Lines;
PBYTE Cell;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioScrollDn(TopRow, LeftCol, BotRow, RightCol, Lines, Cell, VioHandle);
||
Parámetros
||
|| TopRow || Fila superior de la zona a desplazar. ||
|| LeftCol || Columna izquierda de la zona a desplazar. ||
|| BotRow || Fila inferior de la zona a desplazar. ||
|| RightCol || Columna derecha de la zona a desplazar. ||
|| Lines || Número de líneas que se desplazará el bloque. ||
|| Cell || Puntero a una posición de memoria con la pareja de caracter-atributos que se usarán para rellenar la zona que queda libre. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 358 || Fila no válida ||
|| 359 || Columna no válida ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioScrollLf
VioScrollLf desplaza un área definida de la pantalla hacia la izquierda. Si se indica como inicio del bloque (0,0) y como final y número de líneas 65535, la pantalla se rellenará con la pareja de caracter-atributos indicada.
#define INCL_BASE
#include <os2.h>
USHORT TopRow;
USHORT LeftCol;
USHORT BotRow;
USHORT RightCol;
USHORT Lines;
PBYTE Cell;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioScrollLf(TopRow, LeftCol, BotRow, RightCol, Lines, Cell, VioHandle);
||
Parámetros
||
|| TopRow || Fila superior de la zona a desplazar. ||
|| LeftCol || Columna izquierda de la zona a desplazar. ||
|| BotRow || Fila inferior de la zona a desplazar. ||
|| RightCol || Columna derecha de la zona a desplazar. ||
|| Lines || Número de columnas que se desplazará el bloque. ||
|| Cell || Puntero a una posición de memoria con la pareja de caracter-atributos que se usarán para rellenar la zona que queda libre. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 358 || Fila no válida ||
|| 359 || Columna no válida ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioScrollRt
VioScrollRt desplaza un área definida de la pantalla hacia la derecha. Si se indica como inicio del bloque (0,0) y como final y número de líneas 65535, la pantalla se rellenará con la pareja de caracter-atributos indicada.
#define INCL_BASE
#include <os2.h>
USHORT TopRow;
USHORT LeftCol;
USHORT BotRow;
USHORT RightCol;
USHORT Lines;
PBYTE Cell;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioScrollRt(TopRow, LeftCol, BotRow, RightCol, Lines, Cell, VioHandle);
||
Parámetros
||
|| TopRow || Fila superior de la zona a desplazar. ||
|| LeftCol || Columna izquierda de la zona a desplazar. ||
|| BotRow || Fila inferior de la zona a desplazar. ||
|| RightCol || Columna derecha de la zona a desplazar. ||
|| Lines || Número de columnas que se desplazará el bloque. ||
|| Cell || Puntero a una posición de memoria con la pareja de caracter-atributos que se usarán para rellenar la zona que queda libre. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 358 || Fila no válida ||
|| 359 || Columna no válida ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioScrollUp
VioScrollUp desplaza un área definida de la pantalla hacia arriba. Si se indica como inicio del bloque (0,0) y como final y número de líneas 65535, la pantalla se rellenará con la pareja de caracter-atributos indicada.
#define INCL_BASE
#include <os2.h>
USHORT TopRow;
USHORT LeftCol;
USHORT BotRow;
USHORT RightCol;
USHORT Lines;
PBYTE Cell;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioScrollUp(TopRow, LeftCol, BotRow, RightCol, Lines, Cell, VioHandle);
||
Parámetros
||
|| TopRow || Fila superior de la zona a desplazar. ||
|| LeftCol || Columna izquierda de la zona a desplazar. ||
|| BotRow || Fila inferior de la zona a desplazar. ||
|| RightCol || Columna derecha de la zona a desplazar. ||
|| Lines || Número de líneas que se desplazará el bloque. ||
|| Cell || Puntero a una posición de memoria con la pareja de caracter-atributos que se usarán para rellenar la zona que queda libre. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 358 || Fila no válida ||
|| 359 || Columna no válida ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioScrUnLock
VioScrUnLock desbloquea el conmutador de sesiones bloqueados por
VioScrLock.
#define INCL_BASE
#include <os2.h>
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioScrUnLock(VioHandle);
||
Parámetros
||
|| || ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 367 || No está bloqueado ||
|| 430 || Ilegal durante POPUP ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
|| 494 || VIO Extended SG ||
VioSetAnsi
VioSetAnsi activa o desactiva el tratamiento de códigos ANSI. Por defecto se encuentra activo.
#define INCL_BASE
#include <os2.h>
USHORT Indicator;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioSetAnsi(Indicator, VioHandle);
||
Parámetros
||
|| Indicator || Si vale 1, se activa el soporte ANSI; si vale 0 se desactiva. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 421 || Parámetros no válidos ||
|| 430 || Ilegal durante POPUP ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioSetCurPos
VioSetCurPos cambia la posición actual del cursor.
#define INCL_BASE
#include <os2.h>
USHORT Row;
USHORT Column;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioSetCurPos(Row, Column, VioHandle);
||
Parámetros
||
|| Row || Nueva fila del cursor. 0 es la parte superior. ||
|| Column || Nueva columna del cursor. 0 es la parte izquierda. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 358 || Fila no válida ||
|| 359 || Columna no válida ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioSetCurType
VioSetCurType permite cambiar el tamaño, forma, etc del cursor.
#define INCL_BASE
#include <os2.h>
PVIOCURSORINFO CursorData;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioSetCurType(CursorData, VioHandle);
||
Parámetros
||
|| CursorData || Puntero a una estructura de características del cursor, con los siguientes campos: ||
|| || || yStart (USHORT) || Linea horizontal del caracter en el que empieza la parte superior del cursor. Si el caracter tiene n lineas, 0 es la superior, y (n-1) es la inferior. Es posible indicar un porcentaje, de modo que la posición no dependerá del tamaño de la celda. Para ello, debe darse un valor negativo (-100 para 100%, -80 para 80% etc). || || cEnd (USHORT) || Linea horizontal del caracter en que termina el cursor. Las lineas se numeran igual que en
yStart. Es posible indicar un porcentaje, de modo que la posición no dependerá del tamaño de la celda. Para ello, debe darse un valor negativo (-100 para 100%, -80 para 80% etc). || || cx (USHORT) || Ancho del cursor. En modos de texto, es el número de columnas. El valor máximo soportado por OS/2 es 1. || || attr (USHORT) || Un valor de -1 indica un cursor oculto. El resto de los valores indican cursor visible. || ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 356 || Ancho no válido ||
|| 421 || Parámetros no válidos ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioSetMode
VioSetMode cambia el modo gráfico actual. Se pueden poner modos de 40/80 columnas y modos gráficos. Esta llamada no borra la pantalla. Para ello se pueden usar las llamadas
VioScrollXX. Para los modos de texto en pantalla completa, el número de filas de la columna está determinado por la existencia de una fuente de tamaño adecuado.
#define INCL_BASE
#include <os2.h>
PVIOMODEINFO ModeData;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioSetMode(ModeData, VioHandle);
||
Parámetros
||
|| ModeData || Estructura con los siguientes elementos: ||
|| || || cb (USHORT) || Indica la longitud de la estructura incluyendo
cb. El tamaño mínimo es 3 bytes. OS/2 buscará el modo que más se aproxime a los datos enviados. || || fbType (UCHAR) || Máscara de bits con las características del modo.
||
Bit ||
Descripción || || 7-4 || Reservados || || 3 || 0 = Modos compatibles con VGA (del modo 0 al 13H)
1 = Modo propio de la tarjeta || || 2 || Determina si la señal enviada al monitor es monócroma o color:
0 = Modo en color
1 = Modo en blanco y negro || || 1 || 0 = Modo texto
1 = Modo gráfico || || || 0 = Adaptador monocromo
1 = Otro adaptador || || || color (UCHAR) || Número de colores definido como potencia de dos (0 = modos monocromos 7, 7+ y F; 1 = 2 colores; 2 = 4 colores; 4 = 16 colores; 8 = 256 colores) || || col (USHORT) || Numero de columnas de texto || || row (USHORT) || Numero de filas de texto || || hres (USHORT) || Resolución horizontal (columnas de pixels) || || vres (USHORT) || Resolución vertical (filas de pixels) || || fmt_ID (UCHAR) || Formato de los atributos || || attrib (UCHAR) || Numero de atributos en un caracter || || buf_addr (ULONG) || Dirección física (32 bits) del buffer físico de pantalla en este modo || || buf_length (ULONG) || Longitud del buffer físico de pantalla para este modo || || full_length (ULONG) || Tamaño del buffer necesario para guardar totalmente el buffer físico de pantalla en este modo || || partial_length (ULONG) || Tamaño del buffer necesario para guardar parcialmente (pop-up) el buffer físico de pantalla para este modo || || ext_data_addr (PCH) || Puntero a una estructura extendida, o cero si no la hay. El formato de ésta está determinada por el driver, y es desconocido por OS/2 || ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 430 || Ilegal durante POPUP ||
|| 436 || Handle VIO no válido ||
|| 438 || Longitud no válida ||
|| 465 || VIO inactivo (proceso en
detached) ||
|| 467 || No hay una fuente adecuada para ese modo ||
|| 468 || Una fuente de usuario está activa ||
|| 494 || VIO Extended SG ||
VioSetState
VioSetState cambia la configuración actual de registros de paleta, color del borde, modo de parpadeo/brillo o registros de color.
#define INCL_BASE
#include <os2.h>
PVOID RequestBlock;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioSetState(RequestBlock, VioHandle);
||
Parámetros
||
|| RequestBlock || Puntero a una estructura de estado, que consiste en una de las seis posibles estructuras, en función del tipo pedido: ||
|| || ||
Tipo ||
Definición || || || Cambia registros de paleta || || 1 || Cambia color del borde || || 2 || Cambia modo parpadeo/brillo || || 3 || Cambia registros de color || || 4 || Reservado || || 5 || Cambia la línea para subrayado || ||
|| || Las estructuras, según el tipo, son: ||
|| ||
VIOPALSTATE Válido para tarjetas EGA, VGA o IBM PS/2|| cb (USHORT) || Longitud de la estructura, incluyendose a ella misma. 38 es el valor máximo. || || type (USHORT) || El tipo es 0 || || iFirst (USHORT) || Primer registro de paleta a cambiar. Tiene que valer entre 0 y 15. El número de registros devueltos se deduce en función del campo
length || || acolor[n] (USHORT*(
cb-6)/2) || Valores de color para cada registro de paleta. El número máximo es de 16. NOTA: en el fichero OS2EMX.H, n vale 1. Si se van a reservar mas selectores, es necesario crear la estructura de nuevo. || ||
|| ||
VIOOVERSCAN Válido para CGA, VGA o IBM PS/2|| cb (USHORT) || Longitud de la estructura, incluyendose a ella misma. Tiene que ser 6. || || type (USHORT) || El tipo es 1 || || color (USHORT) || Color deseado para el borde || ||
|| ||
VIOINTENSITY Válido para CGA, EGA, MCGA, VGA o IBM PS/2|| cb (USHORT) || Longitud de la estructura, incluyendose ella misma. Tiene que ser 6. || || type (USHORT) || El tipo es 2 || || fs (USHORT) || 0: el parpadeo está activo; 1: el brillo está activo || ||
|| ||
VIOCOLORREG Válido para VGA o IBM PS/2|| cb (USHORT) || Longitud de la estructura, incluyendose a sí misma. Tiene que ser 12. || || type (USHORT) || El tipo es 3 || || firstcolorreg (USHORT) || Primer registro a cambiar. Tiene que estar contenido entre 0 y 255 || || numcolorregs (USHORT) || Número de registros de color a cambiar. Tiene que valer entre 1 y 256 || || colorregaddr (PCH) || Puntero a una zona donde están almacenadas las ternas de color a introducir en cada registro. El tamaño debe ser suficiente para que entren todos, teniendo en cuenta que cada registro ocupa 3 bytes. El orden en que se almacena es: rojo-verde-azul || ||
|| ||
VIOSETULINELOC Válido para EGA, VGA o IBM PS/2|| cb (USHORT) || Longitud de la estructura, incluyendose a sí misma. Tiene que ser 6. || || type (USHORT) || El tipo es 5. El subrayado está activo solo cuando el color de tinta está entre 1 y 9. || || scanline (USHORT) || Linea en la que se coloca el subrayado. El valor debe estar entre 0 y 31, y es la línea menos 1. Un valor de 32 indica que el subrayado está desactivado. || ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 421 || Parámetros no validos ||
|| 436 || Handle VIO no válido ||
|| 438 || Longitud no válida ||
|| 465 || VIO inactivo (proceso en
detached) ||
|| 494 || VIO Extended SG ||
VioShowBuf
VioShowBuf repinta la imagen de pantalla a partir de la información del LVB. Es necesario hacerlo cuando se accede a traves del LVB (obtenido con
VioGetBuf).
#define INCL_BASE
#include <os2.h>
USHORT Offset;
USHORT Length;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioShowBuf(Offset, Length, VioHandle);
||
Parámetros
||
|| Offset || Desplazamiento de la zona desde la que debe empezar a repintar la pantalla. ||
|| Length || Longitud de la zona de la pantalla a repintar. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 430 || Ilegal durante POPUP ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioWrtCellStr
VioWrtCellStr escribe una cadena de parejas caracter-atributo en la pantalla. Si la cadena excede una línea, se seguirá en la siguiente. Si llega al final de la pantalla, no se escribe más.
#define INCL_BASE
#include <os2.h>
PCH CellStr;
USHORT Length;
USHORT Row;
USHORT Column;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioWrtCellStr(CellStr, Length, Row, Column, VioHandle);
||
Parámetros
||
|| CellStr || Puntero a una posición de memoria que contenga las parejas caracter-atributo a escribir. ||
|| Length || Longitud, en bytes, de la cadena a escribir. Cada pareja caracter-atributo mide 2 o 4 bytes. ||
|| Row || Fila inicial. ||
|| Column || Columna inicial. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 358 || Fila no válida ||
|| 359 || Columna no válida ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioWrtCharStr
VioWrtCharStr escribe una cadena de caracteres en la pantalla. Si la cadena excede una línea, se seguirá en la siguiente. Si llega al final de la pantalla, no se escribe más.
#define INCL_BASE
#include <os2.h>
PCH CharStr;
USHORT Length;
USHORT Row;
USHORT Column;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioWrtCharStr(CharStr, Length, Row, Column, VioHandle);
||
Parámetros
||
|| CharStr || Puntero a una zona de memoria que contenga los caracteres a imprimir. ||
|| Length || Longitud, en bytes, de la cadena de caracteres. ||
|| Row || Fila inicial. ||
|| Column || Columna inicial. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 358 || Fila no válida ||
|| 359 || Columna no válida ||
|| 436 || Handle VIO no válido ||
|| 465 || VIO inactivo (proceso en
detached) ||
VioWrtCharStrAtt
VioWrtCharStrAtt escribe una cadena de caracteres con un determinado atributo repetido para todos ellos. Si la cadena excede una línea, se seguirá en la siguiente. Si llega al final de la pantalla, no se escribe más.
#define INCL_BASE
#include <os2.h>
PCH CharStr;
USHORT Length;
USHORT Row;
USHORT Column;
PBYTE Attr;
HVIO VioHandle;
APIRET rc; /* Codigo de error */
rc = VioWrtCharStrAtt(CharStr, Length, Row, Column, Attr, VioHandle);
||
Parámetros
||
|| CharStr || Puntero a una zona de memoria que contenga los caracteres a escribir. ||
|| Length || Longitud, en bytes, de la cadena de caracteres. ||
|| Row || Fila inicial. ||
|| Column || Columna inicial. ||
|| Attr || Puntero al/los atributo/s (1 o 3 bytes) a usar con cada caracter de la cadena. ||
|| VioHandle || Handle VIO. Debe valer cero. ||
||
Codigos de error
||
|| || Sin error ||
|| 355 || Modo no valido ||
|| 358 || Fila no válida ||