Поделиться через


Функция DrvSaveScreenBits (winddi.h)

Функция DrvSaveScreenBits заставляет драйвер дисплея сохранять или восстанавливать заданный прямоугольник отображаемого изображения.

Синтаксис

ULONG_PTR DrvSaveScreenBits(
  SURFOBJ   *pso,
  ULONG     iMode,
  ULONG_PTR ident,
  RECTL     *prcl
);

Параметры

pso

Указатель на структуру SURFOBJ , описывающую поверхность.

iMode

Задает подлежащую выполнению операцию. Этот параметр может иметь одно из следующих значений:

SS_SAVE

Драйвер должен сохранить данные из прямоугольника, определенного prcl. Драйвер отвечает за управление этими данными в памяти вне экрана. Параметр ident игнорируется.

После успешного выполнения DrvSaveScreenBits должен вернуть идентификатор сохраненных данных. Драйвер может возвращать дескриптор или даже указатель на память вне экрана. Эта функция возвращает ноль в случае сбоя.

SS_RESTORE

Драйвер должен восстановить данные, определяемые идентификатором , в прямоугольник prcl на дисплее; то есть драйвер должен восстановить растровое изображение в исходное положение. Драйвер может предположить, что прямоугольник в prcl точно такой же размер, как и сохраненный прямоугольник. Данные должны быть удалены после этого вызова.

DrvSaveScreenBits должен возвращать значение TRUE , если данные были восстановлены на дисплее, или FALSE , если данные не могут быть восстановлены.

SS_FREE

Данные, определяемые ident , больше не нужны и могут быть освобождены. Значение prcl не определено и не должно использоваться. Драйвер не должен восстанавливать сохраненный прямоугольник на дисплее.

DrvSaveScreenBits должен возвращать значение TRUE.

ident

Указатель на определенное драйвером значение, возвращенное предыдущим вызовом DrvSaveScreenBits , если iMode SS_RESTORE или SS_FREE. Драйвер должен игнорировать этот параметр, если iMode SS_SAVE.

prcl

Указатель на структуру RECTL , которая определяет часть экрана для сохранения или восстановления.

Возвращаемое значение

Возвращаемое значение зависит от значения параметра iMode .

Комментарии

Некоторые драйверы дисплея могут перемещать данные в память за пределы экрана или из нее гораздо быстрее, чем область может быть перерисовывается. Это может быть полезно, если диспетчер окон должен отображать меню или диалоговое окно.

DrvSaveScreenBits является необязательным для драйверов дисплея.

Требования

Требование Значение
Целевая платформа Персональный компьютер
Верхняя часть winddi.h (включая Winddi.h)

См. также раздел

SURFOBJ