Table of Contents
This is part of Family API which allow to create dual-os version of program runs under OS/2 and DOS
Note: This is legacy API call. It is recommended to use 32-bit equivalent
VioSetFont
This call downloads a display font. The font being set must be compatible with the current mode.
Syntax
VioSetFont (RequestBlock, VioHandle)
Parameters
- RequestBlock (PVIOFONTINFO) - input: Address of the font structure containing the request.
- VioHandle (HVIO) - input: Reserved word of 0s.
Return Code
rc (USHORT) - return:Return code descriptions are:
- 0 NO_ERROR
- 355 ERROR_VIO_MODE
- 421 ERROR_VIO_INVALID_PARMS
- 436 ERROR_VIO_INVALID_HANDLE
- 438 ERROR_VIO_INVALID_LENGTH
- 465 ERROR_VIO_DETACHED
- 467 ERROR_VIO_FONT
- 468 ERROR_VIO_USER_FONT
- 494 ERROR_VIO_EXTENDED_SG
Remarks
VioSetFont is applicable only for the enhanced graphics adapter, VGA or IBM Personal System/2 Display Adapter.
Note: Although graphics mode support is provided in VioSetFont, this support is not provided by the Base Video Handlers provided with OS/2.
When VioSetFont is issued, the current code page is reset. If VioGetCp is subsequently issued, the error code ERROR_VIO_USER_FONT is returned. Return code, ERROR_VIO_USER_FONT represents a warning. It indicates that although the font could not be loaded into the adapter using the current mode, the font was saved as part of a special user font code page for use with a later VioSetMode. Successfully setting a user font sets the special user font code page, just as if a code page of -1 was specified using VioSetCp.
The user font code page consists of the most recent user font of each size that was set by VioSetFont. For example, if two 8×12 fonts and three 8×16 fonts had been set, only two fonts, the most recent of the 8×12 and 8×16 fonts, would be saved.
The special code page is used in the same way as those code pages specified on the CODEPAGE = statement in CONFIG.SYS.
Bindings
C
typedef struct _VIOFONTINFO{ /* viofi */ USHORT cb; /* length of this structure */ USHORT type; /* request type */ USHORT cxCell; /* pel columns in character cell */ USHORT cyCell; /* pel rows in character cell */ PVOID pbData; /* requested font table (returned) */ USHORT cbData; /* length of caller supplied data area (in bytes) */ } VIOFONTINFO; #define INCL_VIO USHORT rc = VioSetFont(RequestBlock, VioHandle); PVIOFONTINFO RequestBlock; /* Request block */ HVIO VioHandle; /* Video handle */ USHORT rc; /* return code */
MASM
VIOFONTINFO struc viofi_cb dw ? ;length of this structure viofi_type dw ? ;request type viofi_cxCell dw ? ;pel columns in character cell viofi_cyCell dw ? ;pel rows in character cell viofi_pbData dd ? ;requested font table (returned) viofi_cbData dw ? ;length of caller supplied data area (in bytes) VIOFONTINFO ends EXTRN VioSetFont:FAR INCL_VIO EQU 1 PUSH@ OTHER RequestBlock ;Request block PUSH WORD VioHandle ;Video handle CALL VioSetFont Returns WORD