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


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

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

Синтаксис

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

Параметры

pdevobj

Указатель на структуру DEVOBJ вызываемого абонента.

x

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

dwFlags

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

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

Если параметр не задан, значение параметра x выражается в основных единицах. Например, если главный блок x равен 600, а x равен 300, то движение равно ?? дюйм.

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

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

Невозможно задать, если задано MV_RELATIVE.

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

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

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

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

[out] piResult

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

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

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

Возвращаемый код Описание
S_OK
Операция завершилась успешно.
E_FAIL
Сбой операции.
E_NOTIMPL
Метод не реализован.

Замечания

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

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

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

Требования

Требование Ценность
целевая платформа Настольный
заголовка prcomoem.h (include Prcomoem.h)