en:docs:fapi:viogetbuf

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
en:docs:fapi:viogetbuf [2018/08/31 15:40] – created prokusheven:docs:fapi:viogetbuf [2021/09/19 01:42] (current) prokushev
Line 1: Line 1:
 +{{page>en:templates:fapiint}}
 +
 +====== VioGetBuf ======
  
 This call returns the address of the logical video buffer (LVB). This call returns the address of the logical video buffer (LVB).
  
-==Syntax==+===== Syntax ===== 
 +<code c>
  VioGetBuf (LVBPtr, Length, VioHandle)  VioGetBuf (LVBPtr, Length, VioHandle)
 +</code>
  
-==Parameters== +===== Parameters ===== 
-;LVBPtr (PULONG) - output : Address of the selector and offset of the logical video buffer. Applications should not assume the offset portion of this far address is 0. + 
-;Length (PUSHORT) - output : Address of the length buffer in bytes. The length is: number of rows * number of columns * size of cell. +  * LVBPtr ([[PULONG]]) - output : Address of the selector and offset of the logical video buffer. Applications should not assume the offset portion of this far address is 0. 
-;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 VioGetPs.+  Length ([[PUSHORT]]) - output : Address of the length buffer in bytes. The length is: number of rows * number of columns * size of cell. 
 +  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 VioGetPs. 
 + 
 +===== Return Code ===== 
 + 
 +rc ([[USHORT]]) - return
  
-==Return Code== 
- rc (USHORT) - return 
 Return code descriptions are: Return code descriptions are:
-* 0          NO_ERROR  
-* 355        ERROR_VIO_MODE  
-* 430        ERROR_VIO_ILLEGAL_DURING_POPUP  
-* 436        ERROR_VIO_INVALID_HANDLE  
-* 465        ERROR_VIO_DETACHED 
  
-==Remarks== +  * 0          NO_ERROR  
-An application using VioGetBuf can prepare a screen in the application's own logical video buffer (LVB) offline. When the application is in the foreground, the physical screen buffer is updated from the LVB when VioShowBuf is issued. When the application runs in the background, the physical screen buffer is updated when the application is switched to the foreground.+  * 355        ERROR_VIO_MODE  
 +  * 430        ERROR_VIO_ILLEGAL_DURING_POPUP  
 +  * 436        ERROR_VIO_INVALID_HANDLE  
 +  * 465        ERROR_VIO_DETACHED
  
-Once VioGetBuf is issued, all VioWrtXX calls issued while the application is running in the foreground are written to the physical display buffer and LVB. If a VioGetPhysBuf is subsequently issued, then the VioWrtXX calls are only written to the physical display buffer. They are no longer written to the LVB.+===== Remarks =====
  
-VioGetMode may be used to determine the dimensions of the buffer.+An application using VioGetBuf can prepare a screen in the application's own logical video buffer (LVB) offline. When the application is in the foreground, the physical screen buffer is updated from the LVB when [[VioShowBuf]] is issued. When the application runs in the background, the physical screen buffer is updated when the application is switched to the foreground.
  
-If VioSetMode is issued following a VioGetBuf call, the size of the logical video buffer is adjusted to correspond to the new mode. There is one logical video buffer per session (or presentation space if AVIO application) that corresponds to the current mode on the current display configuration.+Once VioGetBuf is issued, all VioWrtXX calls issued while the application is running in the foreground are written to the physical display buffer and LVB. If a [[VioGetPhysBuf]] is subsequently issued, then the VioWrtXX calls are only written to the physical display buffer. They are no longer written to the LVB. 
 + 
 +[[VioGetMode]] may be used to determine the dimensions of the buffer. 
 + 
 +If [[VioSetMode]] is issued following a VioGetBuf call, the size of the logical video buffer is adjusted to correspond to the new mode. There is one logical video buffer per session (or presentation space if AVIO application) that corresponds to the current mode on the current display configuration. 
 + 
 +==== PM Considerations ====
  
-===PM Considerations=== 
 This function returns the address and length of the Advanced VIO presentation space. The presentation space may be used to directly manipulate displayed information.  This function returns the address and length of the Advanced VIO presentation space. The presentation space may be used to directly manipulate displayed information. 
  
-==Example Code== +===== Bindings ===== 
-=== C Binding=== +==== C Binding ===
-<PRE>+ 
 +<code c>
 #define INCL_VIO #define INCL_VIO
  
Line 43: Line 55:
  
 USHORT           rc;            /* return code */ USHORT           rc;            /* return code */
-</PRE>+</code>
  
-===MASM Binding=== +====MASM Binding==== 
-<PRE>+<code asm>
 EXTRN  VioGetBuf:FAR EXTRN  VioGetBuf:FAR
 INCL_VIO            EQU 1 INCL_VIO            EQU 1
Line 56: Line 68:
  
 Returns WORD Returns WORD
-</PRE>+</code>
  
  
  
-====== Note ======+===== Note =====
  
 Text based on [[http://www.edm2.com/index.php/VioGetBuf_(FAPI)]] Text based on [[http://www.edm2.com/index.php/VioGetBuf_(FAPI)]]