[WIN32K:NTUSER] Correctly delete menus in failure cases in MENU_GetSystemMenu. CORE...
[reactos.git] / win32ss / gdi / ntgdi / intgdi.h
1 #pragma once
2
3 /* Convert WIN32 ROP into an ENG ROP */
4 #define WIN32_ROP3_TO_ENG_ROP4(dwRop4) ((((dwRop4) & 0x00FF0000) >> 16) | (((dwRop4) & 0x00FF0000) >> 8))
5 #define WIN32_ROP4_TO_ENG_ROP4(dwRop4) ((dwRop4) >> 16)
6
7 #define WIN32_ROP4_USES_SOURCE(Rop) ((((Rop) & 0xCCCC0000) >> 2) != ((Rop) & 0x33330000))
8
9 /* The range of valid ROP2 values is 1 .. 16 */
10 #define FIXUP_ROP2(rop2) ((((rop2) - 1) & 0xF) + 1)
11
12 /* Brush functions */
13
14 extern HDC hSystemBM;
15 extern HSEMAPHORE hsemDriverMgmt;
16
17 /* Line functions */
18
19 BOOL FASTCALL
20 IntGdiLineTo(DC *dc,
21 int XEnd,
22 int YEnd);
23
24 BOOL FASTCALL
25 IntGdiMoveToEx(DC *dc,
26 int X,
27 int Y,
28 LPPOINT Point);
29
30 BOOL FASTCALL
31 IntGdiPolyBezier(DC *dc,
32 LPPOINT pt,
33 DWORD Count);
34
35 BOOL FASTCALL
36 IntGdiPolyline(DC *dc,
37 LPPOINT pt,
38 int Count);
39
40 BOOL FASTCALL
41 IntGdiPolyBezierTo(DC *dc,
42 LPPOINT pt,
43 DWORD Count);
44
45 BOOL FASTCALL
46 IntGdiPolyPolyline(DC *dc,
47 LPPOINT pt,
48 PULONG PolyPoints,
49 DWORD Count);
50
51 BOOL FASTCALL
52 IntGdiPolylineTo(DC *dc,
53 LPPOINT pt,
54 DWORD Count);
55
56 BOOL FASTCALL
57 GreMoveTo( HDC hdc,
58 INT x,
59 INT y,
60 LPPOINT pptOut);
61
62 /* Shape functions */
63
64 BOOL
65 NTAPI
66 GreGradientFill(
67 HDC hdc,
68 PTRIVERTEX pVertex,
69 ULONG nVertex,
70 PVOID pMesh,
71 ULONG nMesh,
72 ULONG ulMode);
73
74 /* DC functions */
75
76 HDC FASTCALL
77 IntGdiCreateDC(PUNICODE_STRING Driver,
78 PUNICODE_STRING Device,
79 PVOID pUMdhpdev,
80 CONST PDEVMODEW InitData,
81 BOOL CreateAsIC);
82
83 /* Stock objects */
84
85 VOID FASTCALL
86 IntSetSysColors(UINT nColors, CONST INT *Elements, CONST COLORREF *Colors);
87
88 HGDIOBJ FASTCALL
89 IntGetSysColorBrush(INT Object);
90
91 DWORD FASTCALL
92 IntGetSysColor(INT nIndex);
93
94 /* Other Stuff */
95
96 NTSTATUS
97 APIENTRY
98 NtGdiFlushUserBatch(
99 VOID);
100
101 DWORD
102 APIENTRY
103 NtDxEngGetRedirectionBitmap(
104 DWORD Unknown0);
105
106 HBITMAP
107 FASTCALL
108 IntCreateCompatibleBitmap(
109 _In_ PDC Dc,
110 _In_ INT Width,
111 _In_ INT Height,
112 _In_ UINT Bpp,
113 _In_ UINT Planes);
114
115 WORD APIENTRY IntGdiSetHookFlags(HDC hDC, WORD Flags);
116
117 UINT APIENTRY IntSetDIBColorTable(HDC hDC, UINT StartIndex, UINT Entries, CONST RGBQUAD *Colors);
118
119 UINT APIENTRY IntGetDIBColorTable(HDC hDC, UINT StartIndex, UINT Entries, RGBQUAD *Colors);
120
121 UINT APIENTRY
122 IntGetPaletteEntries(HPALETTE hpal,
123 UINT StartIndex,
124 UINT Entries,
125 LPPALETTEENTRY pe);
126
127 UINT APIENTRY
128 IntGetSystemPaletteEntries(HDC hDC,
129 UINT StartIndex,
130 UINT Entries,
131 LPPALETTEENTRY pe);
132
133 VOID FASTCALL CreateStockObjects (VOID);
134 VOID FASTCALL CreateSysColorObjects (VOID);
135
136 PPOINT GDI_Bezier (const POINT *Points, INT count, PINT nPtsOut);
137
138 BOOL FASTCALL IntFillArc( PDC dc, INT XLeft, INT YLeft, INT Width, INT Height, double StartArc, double EndArc, ARCTYPE arctype);
139 BOOL FASTCALL IntDrawArc( PDC dc, INT XLeft, INT YLeft, INT Width, INT Height, double StartArc, double EndArc, ARCTYPE arctype, PBRUSH pbrush);
140
141 BOOL FASTCALL IntFillEllipse( PDC dc, INT XLeft, INT YLeft, INT Width, INT Height, PBRUSH pbrush);
142 BOOL FASTCALL IntDrawEllipse( PDC dc, INT XLeft, INT YLeft, INT Width, INT Height, PBRUSH pbrush);
143 BOOL FASTCALL IntFillRoundRect( PDC dc, INT Left, INT Top, INT Right, INT Bottom, INT Wellipse, INT Hellipse, PBRUSH pbrush);
144 BOOL FASTCALL IntDrawRoundRect( PDC dc, INT Left, INT Top, INT Right, INT Bottom, INT Wellipse, INT Hellipse, PBRUSH pbrush);