Leaked source code of windows server 2003
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

217 lines
4.3 KiB

/*++
Copyright (c) 1996 - 1999 Microsoft Corporation
Module Name:
common.h
Abstract:
This file contain information and function prototypes for helper
library functions provided by the Control module
Environment:
Windows NT Unidrv driver
Revision History:
10/12/96 -amandan-
Created
dd-mm-yy -author-
description
--*/
#ifndef _COMMON_H_
#define _COMMON_H_
#ifdef __cplusplus
extern "C" {
#endif
#include "ddint5.h"
INT
WriteSpoolBuf(
PDEV *pPDev,
BYTE *pbBuf,
INT iCount
);
VOID WriteAbortBuf(
PDEV *pPDev,
BYTE *pbBuf,
INT iCount,
DWORD dwWait
);
BOOL
FlushSpoolBuf(
PDEV *pPDev
);
INT
WriteChannel(
PDEV *pPDev,
COMMAND *pCmd
);
INT
WriteChannelEx(
PDEV *pPDev,
COMMAND *pCmd,
INT iRequestedValue,
INT iDeviceScaleFac
);
VOID
SetRop3(
PDEV *pPDev,
DWORD dwRop3
);
INT
XMoveTo(
PDEV *pPDev,
INT iXIn,
INT fFlags
);
INT
YMoveTo(
PDEV *pPDev,
INT iYIn,
INT fFlags
);
BOOL
BIntersectRect(
OUT PRECTL prcDest,
IN PRECTL prcRect1,
IN PRECTL prcRect2
);
BOOL
bIsRegionWhite (
SURFOBJ *,
RECTL *
);
VOID
CheckBitmapSurface(
SURFOBJ *,
RECTL *
);
ULONG
DrawPatternRect(
PDEV *,
PDRAWPATRECT
);
/*
* Flags to use when calling the [XY]Moveto functions.
*
* MV_UPDATE is used when it is desired to change our record of where
* the cursor is now located. Typically this will happen after some
* operation such as printing a glyph, or sending graphics.
*
* MV_RELATIVE means add the value passed to the current position. This
* would be used after printing a glyph, and passing in the glyph
* width as parameter, rather than calculating the new position.
*
* MV_GRAPHICS indicates that the value is in GRAPHICS RESOLUTION units.
* Otherwise MASTER UNITS are assumed. If set, the value will be
* converted to master units before processing. Typically used to
* pass information when sending scan lines of graphics data.
*
* MV_PHYSICAL is used to indicate that the value passed in is relative
* to the printers print origin, and not the printable area, which
* is the case otherwise. Typically this flag would be used to
* allow setting the position to the printer's X = 0 position after
* sending a <CR>.
*
* MV_FINE requests sending graphics data (nulls) to position the cursor
* to finer position than can otherwise be achieved. Typically
* only available in the direction of movement of the head on a
* dot matrix printer. This command may be ignored. It must not
* be issued for a LaserJet, since it will cause all sorts of other
* problems.
*/
//
// 4/7/97 Zhanw
// the first 4 constants are defined in "printoem.h" since we now export
// XMoveTo and YMoveTo to OEM DLL's
//
//#define MV_UPDATE 0x0001
//#define MV_RELATIVE 0x0002
//#define MV_GRAPHICS 0x0004
//#define MV_PHYSICAL 0x0008
//
// Internal use only!!! update warning in oak\inc\printoem.h
// whenever new flags are added.
//
#define MV_FORCE_CR 0x4000
#define MV_FINE 0x8000
BOOL
BSelectProgrammableBrushColor(
PDEV *pPDev,
ULONG Color
);
VOID
VResetProgrammableBrushColor(
PDEV *pPDev
);
DWORD
BestMatchDeviceColor(
PDEV *pPDev,
DWORD Color
);
BYTE
BGetMask(
PDEV * pPDev,
RECTL * pRect
);
BOOL
BGetStandardVariable(
PDEV *pPDev,
DWORD dwIndex,
PVOID pBuffer,
DWORD cbSize,
PDWORD pcbNeeded
);
DWORD
ConvertRGBToGrey(
DWORD Color
);
BOOL
BGetGPDData(
PDEV *pPDev,
DWORD dwType, // Type of the data
PVOID pInputData, // reserved. Should be set to 0
PVOID pBuffer, // Caller allocated Buffer to be copied
DWORD cbSize, // Size of the buffer
PDWORD pcbNeeded // New Size of the buffer if needed.
) ;
#ifdef __cplusplus
}
#endif
#endif