[Contents] [index] [Help] [Retrace] [browse <] [Browse >]

The main calls for accessing an existing public screen are lockpubscreen()
and unlockpubscreen().  to use these functions you need to know the name
of the public screen you want to access.  If you do not know the name of
the public screen or if you are not sure, you can lock the default public
screen with LockPubScreen(NULL).

    struct Screen *LockPubScreen( UBYTE * )
     VOID        UnlockPubScreen( UBYTE * , struct Screen *)

These calls enable the application to determine that a public screen
exists, and to ensure its continued existence while opening a window on
it.  This function also serves as an improvement over the old
getscreendata() function from v34 by returning a pointer to the screen
structure of the locked screen so that its attributes can be examined.

Be sure to unlock the public screen when done with it.  note that once a
window is open on the screen the program does not need to hold the screen
lock, as the window acts as a lock on the screen.  The pointer to the
screen structure is valid as long as a lock on the screen is held by the
application, or the application has a window open on the screen.

Locks should not be held without reason.  Holding unnecessary locks on
screens may prevent the user from closing a public screen that has no
apparent activity.  Keep in mind that as long as you have a window open on
a public screen, the window acts as a lock preventing the screen from
closing.

Shown here is a simple example of how to find the workbench public screen
using lockpubscreen() and unlockpubscreen().

     pubscreenbeep.c