==== 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