IPrintOemDriverUni::DrvYMoveTo method

The IPrintOemDriverUni::DrvYMoveTo method is provided by the Unidrv driver so that a rendering plug-in can notify the driver of cursor y-position changes.

Syntax


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

Parameters

pdevobj

Caller-supplied pointer to a DEVOBJ structure.

y

Caller-supplied value representing the number of units the cursor should be moved. The unit is defined by the MV_GRAPHICS flags in dwFlags.

dwFlags

One or more of the following caller-supplied bit flags:

FlagDefinition

MV_GRAPHICS

If set, the y parameter's value is expressed in dots, based on the printer's current resolution. For example, if the y resolution is 150 DPI and y is 75, the movement is ?? inch.

If not set, the y parameter's value is expressed in master units. For example, if the y master unit is 600 and y is 300, the movement is ?? inch.

MV_PHYSICAL

If set, the y parameter's value is relative to the cursor origin.

If not set, the y parameter's value is relative to the printable area's origin.

Cannot be set if MV_RELATIVE is set.

MV_RELATIVE

If set, specifies that the cursor should be moved y units from its current position.

If not set, specifies that the cursor should be moved y units from its origin.

MV_UPDATE

If set, specifies that Unidrv should update its current calculation of the cursor position without actually moving the cursor. (Should be set if IPrintOemUni::ImageProcessing has moved the cursor.)

If not set, specifies that Unidrv should update its current calculation of the cursor position and also move the cursor.

 

piResult [out]

Receives the method-supplied result of subtracting the actual new cursor position from the requested new cursor position. This value might be zero, but it is always nonnegative.

Return value

The method must return one of the following values.

Return codeDescription
S_OK

The operation succeeded.

E_FAIL

The operation failed.

E_NOTIMPL

The method is not implemented.

 

Remarks

The IPrintOemDriverUni::DrvXMoveTo and IPrintOemDriverUni::DrvYMoveTo methods allow a rendering plug-in to send image data to the printer spooler without causing the printer driver to lose track of the printer's cursor position. If you provide an IPrintOemUni::ImageProcessing method that sends image data directly to the print spooler instead of returning it to the printer driver, the method should call IPrintOemDriverUni::DrvXMoveTo and IPrintOemDriverUni::DrvYMoveTo.

Either of two techniques can be used for updating the cursor position:

  • Whenever an IPrintOemUni::ImageProcessing method needs to update the cursor position, it can call IPrintOemDriverUni::DrvXMoveTo or IPrintOemDriverUni::DrvYMoveTo with the MV_UPDATE flag cleared. This causes Unidrv to send cursor commands to the print spooler and to update its internal calculation of the current cursor position.

  • The IPrintOemUni::ImageProcessing method can update the cursor by sending cursor commands directly to the print spooler. When the method has finished its spooling operation, it can call IPrintOemDriverUni::DrvXMoveTo or IPrintOemDriverUni::DrvYMoveTo with the MV_UPDATE flag set. This causes Unidrv to update its internal calculation of the current cursor position without sending cursor commands to the print spooler.

Requirements

Header

Prcomoem.h (include Prcomoem.h)

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft