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.
 
 
 
 
 
 

160 lines
6.5 KiB

/****************************************************************************/
/* nddapi.h */
/* */
/* RDP DD functions. */
/* */
/* Copyright(c) Microsoft 1996-2000 */
/****************************************************************************/
#ifndef _H_NDDAPI
#define _H_NDDAPI
/****************************************************************************/
/* Structure: DD_PDEV */
/* */
/* Contents of the handle that the GDI always passes to the display driver. */
/* This structure is filled in from DrvEnablePDEV. */
/****************************************************************************/
typedef struct tagDD_PDEV
{
ULONG iBitmapFormat; /* Current colour depth as defined */
/* by the BMF_xBPP flags. */
/************************************************************************/
/* Rendering extensions colour information. */
/************************************************************************/
HANDLE hDriver; /* Handle to \Device\Screen */
HDEV hdevEng; /* Engine's handle to PDEV */
HSURF hsurfFrameBuf; /* Frame Buffer surface (bitmap) */
HSURF hsurfDevice; /* Device surface (used by engine) */
SURFOBJ *psoFrameBuf; /* pointer to frame buffer SURFOBJ */
LONG cxScreen; /* Visible screen width */
LONG cyScreen; /* Visible screen height */
LONG cClientBitsPerPel; /* Client display bpp (4,8,15,etc) */
LONG cProtocolBitsPerPel; /* Protocol bpp (8) */
ULONG ulMode; /* Mode the mini-port driver is in. */
FLONG flHooks; /* What we're hooking from GDI */
/************************************************************************/
/* Pointer to the Frame Buffer */
/************************************************************************/
PBYTE pFrameBuf;
HANDLE SectionObject; /* Section Object for Frame Buffer */
/************************************************************************/
/* Palette stuff. */
/************************************************************************/
HPALETTE hpalDefault; /* GDI handle to the default palette*/
FLONG flRed; /* Red mask for bitmask modes */
FLONG flGreen; /* Green mask for bitmask modes */
FLONG flBlue; /* Blue mask for bitmask modes */
// NOTE!! This must be the last entry else the memset(0) code in nddapi.c
// will get messed up.
PALETTEENTRY Palette[256]; /* The palette if palette managed */
} DD_PDEV, * PDD_PDEV;
/****************************************************************************/
// Structure: DD_DSURF
//
// Device surface for the offscreen bitmaps
/****************************************************************************/
typedef struct tagDD_DSURF
{
ULONG bitmapId;
INT shareId;
SIZEL sizl; // size of the offscreen bitmap
ULONG iBitmapFormat; // color depth for the bitmap,
// defined by the BMF_xBPP flags.
PDD_PDEV ppdev; // Need this for deleting the bitmap
SURFOBJ *pso; // points to the backup GDI surface
ULONG flags;
#define DD_NO_OFFSCREEN 0x1 // If this flag is on, it indicates that the bitmap
// has been punt off the offscreen list,
// or there is a client offscreen error.
// Either case, the server has to send the offscreen
// bitmap as regular memory cached bitmap.
} DD_DSURF, * PDD_DSURF;
/****************************************************************************/
/* Number of functions supported by our display driver. */
/****************************************************************************/
#ifdef DRAW_GDIPLUS
#ifdef DRAW_NINEGRID
#define DD_NUM_DRIVER_INTERCEPTS 38
#else
#define DD_NUM_DRIVER_INTERCEPTS 37
#endif
#else // DRAW_GDIPLUS
#ifdef DRAW_NINEGRID
#define DD_NUM_DRIVER_INTERCEPTS 37
#else
#define DD_NUM_DRIVER_INTERCEPTS 36
#endif
#endif //DRAWGDIPLUS
#ifdef DRAW_NINEGRID
#define INDEX_DrvNineGrid 91L
#define GCAPS2_REMOTEDRIVER 0x00000400
typedef struct NINEGRID
{
ULONG flFlags;
LONG ulLeftWidth;
LONG ulRightWidth;
LONG ulTopHeight;
LONG ulBottomHeight;
COLORREF crTransparent;
} NINEGRID, *PNINEGRID;
BOOL DrvNineGrid(
SURFOBJ *psoDst,
SURFOBJ *psoSrc,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
PRECTL prclDst,
PRECTL prclSrc,
PNINEGRID png,
BLENDOBJ *pBlendObj,
PVOID pvReserved
);
BOOL APIENTRY EngNineGrid(
SURFOBJ *psoDst,
SURFOBJ *psoSrc,
CLIPOBJ *pco,
XLATEOBJ *pxlo,
PRECTL prclDst,
PRECTL prclSrc,
PNINEGRID png,
BLENDOBJ *pBlendObj,
PVOID pvReserved
);
#endif
/****************************************************************************/
/* Name of the display driver as passed back in the DEVMODEW structure. */
/****************************************************************************/
#define DD_DLL_NAME L"rdpdd"
/****************************************************************************/
/* Prototypes. */
/****************************************************************************/
#ifdef DC_DEBUG
void DrvDebugPrint(char *, ...);
#endif
#endif /* _H_NDDAPI */