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


Метод IPrintOemDriverUni::D rvYMoveTo (prcomoem.h)

Метод IPrintOemDriverUni::DrvYMoveTo предоставляется драйвером Unidrv, чтобы подключаемый модуль отрисовки может уведомлять драйвер об изменениях положения курсора по оси Y.

Синтаксис

HRESULT DrvYMoveTo(
        PDEVOBJ pdevobj,
        INT     y,
        DWORD   dwFlags,
  [out] OUT INT *piResult
);

Параметры

pdevobj

Предоставленный вызывающим объектом указатель на структуру DEVOBJ .

y

Указанное вызывающим абонентом значение, представляющее количество единиц, которые должны быть перемещены курсором. Единица измерения определяется флагами MV_GRAPHICS в dwFlags.

dwFlags

Один или несколько из следующих битовых флагов, предоставленных вызывающим абонентом:

Флаг Определение
MV_GRAPHICS Если значение задано, значение параметра y выражается точками в зависимости от текущего разрешения принтера. Например, если разрешение y равно 150 точек на дюйм, а y — 75, то перемещение равно ?? Дюймовый.

Если значение не задано, значение параметра y выражается в master единицах. Например, если единица master y — 600, а y — 300, то движение равно ?? Дюймовый.

MV_PHYSICAL Если задано значение, значение параметра y определяется относительно источника курсора.

Если значение не задано, значение параметра y определяется относительно источника печатаемой области.

Не удается задать, если задано MV_RELATIVE.

MV_RELATIVE Если задано значение , указывает, что курсор должен быть перемещен из текущего положения в единицах y .

Если значение не задано, указывает, что курсор должен быть перемещен в единицах y из его источника.

MV_UPDATE Если задано, указывает, что Unidrv должен обновить текущее вычисление позиции курсора без фактического перемещения курсора. (Должно быть задано, если IPrintOemUni::ImageProcessing переместил курсор.)

Если значение не задано, указывает, что Unidrv должен обновить текущее вычисление позиции курсора, а также переместить курсор.

[out] piResult

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

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

Метод должен возвращать одно из следующих значений.

Код возврата Описание
S_OK
Операция успешно выполнена.
E_FAIL
Операция не удалась.
E_NOTIMPL
Метод не реализован.

Комментарии

Методы IPrintOemDriverUni::D rvXMoveTo позволяют IPrintOemDriverUni::DrvYMoveTo подключаемом модулю отрисовки отправлять данные изображений в очередь печати принтера, не приводя к тому, что драйвер принтера потеряет положение курсора принтера. Если вы предоставляете метод IPrintOemUni::ImageProcessing , который отправляет данные изображения непосредственно в очередь печати, а не возвращает их в драйвер принтера, метод должен вызвать IPrintOemDriverUni::DrvXMoveTo и IPrintOemDriverUni::DrvYMoveTo.

Для обновления положения курсора можно использовать один из двух методов:

  • Всякий раз, когда методУ IPrintOemUni::ImageProcessing требуется обновить позицию курсора, он может вызывать IPrintOemDriverUni::DrvXMoveTo или IPrintOemDriverUni::DrvYMoveTo с снятым флагом MV_UPDATE. Это приводит к тому, что Unidrv отправляет команды курсора в очередь печати и обновляет внутреннее вычисление текущей позиции курсора.
  • Метод IPrintOemUni::ImageProcessing может обновлять курсор, отправляя команды курсора непосредственно в очередь печати. После завершения операции spooling метод может вызвать IPrintOemDriverUni::DrvXMoveTo или IPrintOemDriverUni::DrvYMoveTo с установленным флагом MV_UPDATE. Это приводит к тому, что Unidrv обновляет внутреннее вычисление текущей позиции курсора без отправки команд курсора в очередь печати.

Требования

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