2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS System Libraries
4 * FILE: lib/gdi32/include/gdi32p.h
5 * PURPOSE: User-Mode Win32 GDI Library Private Header
6 * PROGRAMMER: Alex Ionescu (alex@relsoft.net)
10 /* DATA **********************************************************************/
12 extern PGDI_TABLE_ENTRY GdiHandleTable
;
13 extern PGDI_SHARED_HANDLE_TABLE GdiSharedHandleTable
;
14 extern HANDLE hProcessHeap
;
15 extern HANDLE CurrentProcessId
;
16 extern DWORD GDI_BatchLimit
;
17 extern PDEVCAPS GdiDevCaps
;
20 (CALLBACK
* EMFPLAYPROC
)(
26 /* DEFINES *******************************************************************/
28 #define HANDLE_LIST_INC 20
30 #define METAFILE_MEMORY 1
31 #define METAFILE_DISK 2
33 /* MACRO ********************************************************************/
35 #define ROP_USES_SOURCE(Rop) (((Rop) << 2 ^ Rop) & 0xCC0000)
37 /* TYPES *********************************************************************/
39 // Based on wmfapi.h and Wine.
40 typedef struct tagMETAFILEDC
{
45 UINT handles_size
, cur_handles
;
48 // more DC object stuff.
54 WCHAR Filename
[MAX_PATH
+2];
56 } METAFILEDC
,*PMETAFILEDC
;
58 // Metafile Entry handle
59 typedef struct tagMF_ENTRY
{
61 HGDIOBJ hmDC
; // Handle return from NtGdiCreateClientObj.
63 } MF_ENTRY
, *PMF_ENTRY
;
65 typedef struct tagENHMETAFILE
{
67 HANDLE hFile
; /* Handle for disk based MetaFile */
71 UINT handles_size
, cur_handles
;
74 INT horzsize
, vertsize
;
75 INT logpixelsx
, logpixelsy
;
81 } ENHMETAFILE
,*PENHMETAFILE
;
84 #define PDEV_UMPD_ID 0xFEDCBA98
86 #define UMPDEV_NO_ESCAPE 0x0002
87 #define UMPDEV_SUPPORT_ESCAPE 0x0004
88 typedef struct _UMPDEV
90 DWORD Sig
; // Init with PDEV_UMPD_ID
91 struct _UMPDEV
*pumpdNext
;
92 PDRIVER_INFO_5W pdi5Info
;
95 DWORD dwDriverAttributes
;
96 DWORD dwConfigVersion
; // Number of times the configuration
97 // file for this driver has been upgraded
98 // or downgraded since the last spooler restart.
99 DWORD dwDriverCount
; // After init should be 2
105 #define LOCALFONT_COUNT 10
106 typedef struct _LOCALFONT
108 FONT_ATTR lfa
[LOCALFONT_COUNT
];
109 } LOCALFONT
, *PLOCALFONT
;
111 /* FUNCTIONS *****************************************************************/
114 HEAP_alloc(DWORD len
);
123 HEAP_free(LPVOID memory
);
142 NEWTEXTMETRICEXA
*tma
,
143 NEWTEXTMETRICEXW
*tmw
148 DeleteRegion( HRGN
);
151 GdiIsHandleValid(HGDIOBJ hGdiObj
);
154 GdiGetHandleUserData(
165 GdiFixUpHandle(HGDIOBJ hGO
);
169 CalculateColorTableSize(
170 CONST BITMAPINFOHEADER
*BitmapInfoHeader
,
178 CONST BITMAPINFO
*BitmapInfo
,
180 UINT
*BitmapInfoSize
,
186 GdiConvertToDevmodeW(DEVMODEA
*dm
);
190 GetAndSetDCDWord( HDC
, INT
, DWORD
, DWORD
, DWORD
, DWORD
);
194 GetDCDWord( HDC
, INT
, DWORD
);
198 GetDCObject( HDC
, INT
);
217 LPENUMLOGFONTEXA fontA
,
218 CONST ENUMLOGFONTEXW
*fontW
);
220 /* FIXME: Put in some public header */
223 UserRealizePalette(HDC hDC
);
227 GdiAddFontResourceW(LPCWSTR lpszFilename
,FLONG fl
,DESIGNVECTOR
*pdv
);
231 GdiSetLastError( DWORD dwErrCode
);
233 DWORD WINAPI
GdiGetCodePage(HDC
);
234 UINT FASTCALL
DIB_BitmapBitsSize( PBITMAPINFO
);
238 GdiGetBitmapBitsSize(BITMAPINFO
*lpbmi
);