3.1.1 Standard and Extended Functions

A grabber provides a set of standard functions that initialize the display and save and restore the video context.

The InquireGrab function returns the size of the grabber buffer, which holds screen data when copying data to the clipboard. This function also carries out extended functions, depending on the value Windows passes to it in the AX register. The InquireSave function returns the size of the save buffer, the buffer used to hold the screen contents and video context when Windows switches away from the non-Windows application. Either InquireGrab or InquireSave (whichever Windows calls first) is responsible for initializing the grabber the first time the function is called.

The SaveScreen and RestoreScreen functions save and restore the video con-text needed to support switching away and back to the non-Windows application. Windows supplies the buffer to receive or contain the data; the functions are responsible for copying the data to or from the display device.

The optional InitScreen function initializes the display to a text mode (one that Windows supports). Windows calls this function before the non-Windows application starts and when Windows switches away from the application.

A display grabber also includes several extended functions. Windows calls the extended functions by supplying an extended-function number in the AX register when it calls the InquireGrab function.

The GetVersion function (0FFFAh) returns the version number of the grabber, and the GetInfo function (0FFFEh) returns information about the grabber and screen. The EnableSave and DisableSave functions (0FFFCh and 0FFFBh) enable and disable video-context switching. Using these functions allow a grabber to install or remove hooks needed to support video-context switching. The SetSwapDrive function (0FFFDh) sets the current swap drive and path that the grabber can use to create swap files during a context switch. The GetBlock function (0FFF8h) copies a block of screen data to a specified buffer.

Windows calls grabber functions in real mode, not in protected mode. This means the grabber can carry out its work using the same techniques as MS-DOS programs or drivers.