==== VioGetCp ====
**Bindings**: [[getcp#C bindings|C]], [[getcp#MASM bindings|MASM]]
This call allows a process to query the code page currently used to display text data. 
//VioGetCp// (Reserved, CodePageID, VioHandle) 
//Reserved// (**USHORT**) - input 
A reserved word of 0s. 
//CodePageID// (**PUSHORT**) - output 
Address of a word in the application's data area. The current video code page is returned in this word. 
//VioHandle// (**HVIO**) - input 
This must be zero unless the caller is a Presentation Manager application, in which case it must be the value returned by [[en:ibm:prcp:vio:getps|VioGetPs]]. 
//rc// (**USHORT**) - return 
Return code descriptions are: 
|0 |NO_ERROR |
|355 |ERROR_VIO_MODE |
|436 |ERROR_VIO_INVALID_HANDLE |
|465 |ERROR_VIO_DETACHED |
|468 |ERROR_VIO_USER_FONT |
**Remarks** 
The display code page ID previously set by [[en:ibm:prcp:vio:setcp|VioSetCp]], or inherited from the requesting process, is returned to the caller. 
The code page tag returned is the currently active code page. A value of 0000 indicates that the code page in use is the ROM code page provided by the hardware. 
If ERROR_VIO_USER_FONT is returned, it indicates a user font that was previously loaded with [[en:ibm:prcp:vio:setfont|VioSetFont]] is the active code page. 
=== C bindings ===
#define INCL_VIO
USHORT  rc = VioGetCp(Reserved, CodePageID, VioHandle);
USHORT           Reserved;      /* Reserved (must be zero) */
PUSHORT          CodePageID;    /* Code page ID */
HVIO             VioHandle;     /* Video handle */
USHORT           rc;            /* return code */
=== MASM bindings ===
EXTRN  VioGetCp:FAR
INCL_VIO            EQU 1
PUSH   WORD    Reserved      ;Reserved (must be zero)
PUSH@  WORD    CodePageID    ;Code page ID
PUSH   WORD    VioHandle     ;Video handle
CALL   VioGetCp
Returns WORD