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


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

Функция DrvResetPDEV позволяет графическому драйверу передавать состояние драйвера из старой структуры PDEV в новую структуру PDEV, когда приложение Win32 вызывает ResetDC.

Синтаксис

BOOL DrvResetPDEV(
  DHPDEV dhpdevOld,
  DHPDEV dhpdevNew
);

Параметры

dhpdevOld

Дескриптор исходной структуры PDEV устройства. Этот дескриптор ранее предоставлялся драйвером в качестве возвращаемого значения для DrvEnablePDEV.

dhpdevNew

Дескриптор новой структуры PDEV, предоставленный вызывающим абонентом.

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

Это возвращаемое значение равно TRUE , если функция выполнена успешно. В противном случае это false, и код ошибки регистрируется.

Комментарии

Функция DrvResetPDEV графического драйвера должна использоваться для изменения содержимого новой структуры PDEV на основе содержимого старой (в настоящее время используемой) структуры PDEV.

Драйверы отображения OpenGL, которым необходимо знать об изменениях режима, должны реализовывать DrvResetPDEV. В противном случае все остальные драйверы отображения обычно не должны реализовывать эту функцию.

Примечание. Следующие сведения относятся к библиотекам DLL графики принтера.

Функция вызывается в результате вызова приложением функции Win32 ResetDC , что, в свою очередь, заставляет GDI вызвать DrvEnablePDEV драйвера для получения новой структуры PDEV. Так как драйвер может изменять содержимое структуры PDEV во время отрисовки задания печати, функция DrvResetPDEV позволяет драйверу перенести эти изменения из старой структуры PDEV в новую.

Примерами типов сведений, которые библиотека DLL графики принтера может захотеть добавить в новую структуру PDEV, являются указатели на кэшированные файлы шрифтов или флаги, указывающие, должна ли инициализация страницы выполняться при следующем вызове DrvStartDoc или DrvStartPage .

Если во время отрисовки печатного документа вызывается ResetDC , библиотека DLL графического принтера получает следующую последовательность вызовов:

    dhpdevNew = DrvEnablePDEV();
    DrvResetPDEV(dhpdevOld, dhpdevNew);
    DrvDisableSurface(dhpdevOld);
    DrvDisablePDEV(dhpdevOld);
    DrvEnableSurface(dhpdevNew);
    DrvStartDoc(dhpdevNew);

При вызове ResetDC между документами поверхность не связана с PDEV, поэтому выполняется только следующая последовательность вызовов:

    dhpdevNew = DrvEnablePDEV();
    DrvResetPDEV(dhpdevOld,dhpdevNew);
    DrvDisablePDEV(dhpdevOld);

Требования

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

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

DrvDisablePDEV

DrvDisableSurface

DrvEnablePDEV

DrvEnableSurface

DrvStartDoc

DrvStartPage