DrvDrawEscape

ULONG DrvDrawEscape(

IN SURFOBJ *pso,
IN ULONG iEsc,
IN CLIPOBJ *pco,
IN RECTL *prcl,
IN ULONG cjIn,
IN PVOID *pvIn
);

This entry point serves more than one function call; the particular function depends on the value of the iEsc parameter. The escapes that a device supports are determined by a call to DrvEscape.

Parameters

pso

Identifies the surface to which the call is directed.

iEsc

Specifies the operation to be performed. The meanings of the remaining parameters depend on this parameter. This parameter can be the following value.

Value Meaning
ESC_PASSTHROUGH Passes raw device data to the device driver. The number of bytes of raw data is indicated by cjIn. The data is pointed to by pvIn. The return value is the number of bytes written if the function is successful. Otherwise, it is zero, and an error code is logged.

pco

Points to a CLIPOBJ structure that can be queried to find the area on the surface that the caller can overwrite.

prcl

Points to a RECTL structure that defines the window rectangle on the surface. The application does not know the position of the window on the surface. GDI supplies this rectangle and holds a lock that ensures the rectangle is stable for the duration of the call. Coordinates received from the application are relative to the upper left corner of the window rectangle.

cjIn

The size, in bytes, of the buffer pointed to by pvIn.

pvIn

The input data for the call. The format of the input data depends on the function specified by iEsc.

Return Value

The return value depends on the function specified by iEsc. The driver should return 0xFFFFFFFF if an unsupported function is called.

Comments

This entry point differs from DrvEscape in that a CLIPOBJ structure is provided. This allows a driver to implement its own drawing functions in a windowed environment.

DrvDrawEscape is optional for all drivers.

See Also

CLIPOBJ, DrvEnableDriver, DrvEscape