A major problem for the programmer of a screen saver is that many applications know nothing about what is currently happening before the user's eyes on the screen. Accordingly they continue to output their information to the screen, even though actually it has now been taken over by the screen saver. So that an application can be certain of the state of the screen saver, and in some circumstances may even influence it, there exists the so-called XSSI standard (where XSSI stands for 'eXtended ScreenSaver Interface'), which was suggested by Julian Reschke.
The value of the XSSI cookie is a pointer to the following structure:
typedef struct { LONG id; WORD version; WORD save_stat; WORD prg_stat; LONG vec_stat; } INFOXSSI;
id | Each screen saver enters its XBRA identifier as id.
| ||||||||||||||||||||||
version | The version number of the XSSI protocol is entered in
version. 'Before Dawn' at present uses the version number
0x101.
| ||||||||||||||||||||||
save_stat | An application can find out whether the saver is active at the
time with save_stat. A value of 0 means that the saver is not
active, a negative value means that it has kicked in.
| ||||||||||||||||||||||
prg_stat | With prg_stat an application can inform 'Before Dawn'
how it is to behave. prg_stat can take the following values:
prg_stat = 0 Save normally prg_stat = 1 Never save prg_stat = -1 Save immediately | ||||||||||||||||||||||
vec_stat | vec_stat indicates which system vectors are monitored.
This value represents a bit-field. Its assignment is as follows:
|