[Toc][Index]

VioSavRedrawWait


Bindings:  C, MASM 

This call notifies a graphics mode application when it must save or redraw 
its screen image. 
 VioSavRedrawWait     (SavRedrawIndic, NotifyType, VioHandle) 
 
 SavRedrawIndic (USHORT) - input 
    Indicates which events the application is waiting for: 
    Value     Definition 
    0         The session manager notifies the application for both save 
              and redraw operations. 
    1         The session manager notifies the application for redraw 
              operations only. 
 NotifyType (PUSHORT) - output 
    Address that specifies the operation to be performed by the 
    application upon return from VioSavRedrawWait: 
    Value     Definition 
    0         Save screen image 
    1         Restore screen image. 
 VioHandle (HVIO) - input 
    Reserved word of 0s. 
 rc (USHORT) - return 
    Return code descriptions are: 
    0         NO_ERROR 
    421       ERROR_VIO_INVALID_PARMS 
    422       ERROR_VIO_FUNCTION_OWNED 
    423       ERROR_VIO_RETURN 
    430       ERROR_VIO_ILLEGAL_DURING_POPUP 
    436       ERROR_VIO_INVALID_HANDLE 
    465       ERROR_VIO_DETACHED 
    494       ERROR_VIO_EXTENDED_SG 
 
 Remarks 
 OS/2 uses VioSavRedrawWait to notify a graphics mode application to save 
 or restore its screen image at screen switch time.  The application in 
 the outgoing foreground session is notified to perform a save.  The 
 application in the incoming foreground session is notified to perform a 
 restore.  The application must perform the action requested and 
 immediately re-issue VioSavRedrawWait.  When an application performs a 
 save, it saves its physical display buffer, video mode, and any other 
 information the application needs to completely redraw its screen at 
 restore time. 
 Only one process per session can issue VioSavRedrawWait.  The process 
 that first issues VioSavRedrawWait becomes the owner of the function. 
 A text mode application must issue VioSavRedrawWait only if the 
 application writes directly to the registers on the display adapter. 
 Assuming VioSavRedrawWait is not issued by a text mode application, OS/2 
 performs the required saves and restores. 
 An application that issues VioSavRedrawWait may also need to issue 
 VioModeWait.  This would allow the application to be notified when it 
 must restore its mode at the completion of an application or hard error 
 pop-up.  Refer to VioModeWait for more information.  Two application 
 threads would be required to perform these operations in this case. 
 At the time a VioSavRedrawWait thread is notified, the session is in 
 transition to/from the background.  Although the session's official 
 status is background, any selector to the physical display buffer 
 previously obtained by the VioSavRedrawWait process (through 
 VioGetPhysBuf) is valid at this time.  The physical display buffer must 
 be accessed without issuing VioScrLock.  Since the session's official 
 status is background, any thread waits if it issues VioScrLock with the 
 "wait if unsuccessful" option. 
 An application containing a VioSavRedrawWait thread should be designed so 
 that the process does not cause any hard errors while the 
 VioSavRedrawWait thread is running, otherwise a system lockout may occur. 
 
 An application's VioSavRedrawWait thread may be notified to perform a 
 restore before it is notified to perform a save.  This happens if the 
 application was running in the background the first time it issued 
 VioSavRedrawWait.  The return from this function call provides the 
 notification.  The thread that issues the call performs the save or 
 redraw and then reissues VioSavRedrawWait to wait until its screen image 
 must be saved or redrawn again. 

Created using Inf-PHP v.2 (c) 2003 Yuri Prokushev
Created using Inf-HTML v.0.9b (c) 1995 Peter Childs