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