Author: tkreuzer
Date: Mon Dec 29 13:11:31 2014
New Revision: 65879
URL:
http://svn.reactos.org/svn/reactos?rev=65879&view=rev
Log:
[GDI32]
Improve code in painting.c:
- Add annotations
- Use consitent formatting
- Use better parameter/variable names
Modified:
trunk/reactos/win32ss/gdi/gdi32/objects/painting.c
Modified: trunk/reactos/win32ss/gdi/gdi32/objects/painting.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/gdi/gdi32/objects/…
==============================================================================
--- trunk/reactos/win32ss/gdi/gdi32/objects/painting.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/gdi/gdi32/objects/painting.c [iso-8859-1] Mon Dec 29 13:11:31
2014
@@ -6,81 +6,88 @@
*/
BOOL
WINAPI
-LineTo( HDC hDC, INT x, INT y )
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return MFDRV_MetaParam2( hDC, META_LINETO, x, y);
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
- if ( !pLDC )
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (pLDC->iType == LDC_EMFLDC)
- {
- return MFDRV_LineTo( hDC, x, y )
+LineTo(
+ _In_ HDC hdc,
+ _In_ INT x,
+ _In_ INT y )
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return MFDRV_MetaParam2(hdc, META_LINETO, x, y);
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
+ if (!pLDC)
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (pLDC->iType == LDC_EMFLDC)
+ {
+ return MFDRV_LineTo(hdc, x, y )
}
return FALSE;
}
}
#endif
- return NtGdiLineTo( hDC, x, y);
-}
-
-
-BOOL
-WINAPI
-MoveToEx( HDC hDC, INT x, INT y, LPPOINT Point )
-{
- PDC_ATTR Dc_Attr;
-#if 0
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return MFDRV_MetaParam2( hDC, META_MOVETO, x, y);
- else
- {
- PLDC pLDC = Dc_Attr->pvLDC;
- if ( !pLDC )
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (pLDC->iType == LDC_EMFLDC)
- {
- if (!EMFDRV_MoveTo( hDC, x, y)) return FALSE;
- }
- }
- }
-#endif
- if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr))
return FALSE;
-
- if ( Point )
- {
- if ( Dc_Attr->ulDirty_ & DIRTY_PTLCURRENT ) // Double hit!
- {
- Point->x = Dc_Attr->ptfxCurrent.x; // ret prev before change.
- Point->y = Dc_Attr->ptfxCurrent.y;
- DPtoLP ( hDC, Point, 1); // reconvert back.
- }
- else
- {
- Point->x = Dc_Attr->ptlCurrent.x;
- Point->y = Dc_Attr->ptlCurrent.y;
- }
- }
-
- Dc_Attr->ptlCurrent.x = x;
- Dc_Attr->ptlCurrent.y = y;
-
- Dc_Attr->ulDirty_ &= ~DIRTY_PTLCURRENT;
- Dc_Attr->ulDirty_ |= ( DIRTY_PTFXCURRENT|DIRTY_STYLESTATE); // Set dirty
+ return NtGdiLineTo(hdc, x, y);
+}
+
+
+BOOL
+WINAPI
+MoveToEx(
+ _In_ HDC hdc,
+ _In_ INT x,
+ _In_ INT y,
+ _Out_opt_ LPPOINT ppt)
+{
+ PDC_ATTR pdcattr;
+#if 0
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return MFDRV_MetaParam2(hdc, META_MOVETO, x, y);
+ else
+ {
+ PLDC pLDC = pdcattr->pvLDC;
+ if ( !pLDC )
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (pLDC->iType == LDC_EMFLDC)
+ {
+ if (!EMFDRV_MoveTo(hdc, x, y)) return FALSE;
+ }
+ }
+ }
+#endif
+ if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &pdcattr))
return FALSE;
+
+ if (ppt)
+ {
+ if ( pdcattr->ulDirty_ & DIRTY_PTLCURRENT ) // Double hit!
+ {
+ ppt->x = pdcattr->ptfxCurrent.x; // ret prev before change.
+ ppt->y = pdcattr->ptfxCurrent.y;
+ DPtoLP (hdc, ppt, 1); // reconvert back.
+ }
+ else
+ {
+ ppt->x = pdcattr->ptlCurrent.x;
+ ppt->y = pdcattr->ptlCurrent.y;
+ }
+ }
+
+ pdcattr->ptlCurrent.x = x;
+ pdcattr->ptlCurrent.y = y;
+
+ pdcattr->ulDirty_ &= ~DIRTY_PTLCURRENT;
+ pdcattr->ulDirty_ |= ( DIRTY_PTFXCURRENT|DIRTY_STYLESTATE); // Set dirty
return TRUE;
}
@@ -90,100 +97,116 @@
*/
BOOL
WINAPI
-Ellipse(HDC hDC, INT Left, INT Top, INT Right, INT Bottom)
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return MFDRV_MetaParam4(hDC, META_ELLIPSE, Left, Top, Right, Bottom );
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
- if ( !pLDC )
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (pLDC->iType == LDC_EMFLDC)
- {
- return EMFDRV_Ellipse( hDC, Left, Top, Right, Bottom );
- }
- return FALSE;
- }
- }
-#endif
- return NtGdiEllipse( hDC, Left, Top, Right, Bottom);
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-Rectangle(HDC hDC, INT Left, INT Top, INT Right, INT Bottom)
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return MFDRV_MetaParam4(hDC, META_RECTANGLE, Left, Top, Right, Bottom );
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
- if ( !pLDC )
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (pLDC->iType == LDC_EMFLDC)
- {
- return EMFDRV_Rectangle( hDC, Left, Top, Right, Bottom );
- }
- return FALSE;
- }
- }
-#endif
- return NtGdiRectangle( hDC, Left, Top, Right, Bottom);
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-RoundRect(HDC hDC, INT Left, INT Top, INT Right, INT Bottom,
- INT ell_Width, INT ell_Height)
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return MFDRV_MetaParam6( hDC, META_ROUNDRECT, Left, Top, Right, Bottom,
- ell_Width, ell_Height );
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
- if ( !pLDC )
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (pLDC->iType == LDC_EMFLDC)
- {
- return EMFDRV_RoundRect( hDC, Left, Top, Right, Bottom,
- ell_Width, ell_Height );
- }
- return FALSE;
- }
- }
-#endif
- return NtGdiRoundRect( hDC, Left, Top, Right, Bottom, ell_Width, ell_Height);
+Ellipse(
+ _In_ HDC hdc,
+ _In_ INT left,
+ _In_ INT top,
+ _In_ INT right,
+ _In_ INT bottom)
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return MFDRV_MetaParam4(hdc, META_ELLIPSE, left, top, right, bottom );
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
+ if ( !pLDC )
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (pLDC->iType == LDC_EMFLDC)
+ {
+ return EMFDRV_Ellipse(hdc, left, top, right, bottom );
+ }
+ return FALSE;
+ }
+ }
+#endif
+ return NtGdiEllipse(hdc, left, top, right, bottom);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+Rectangle(
+ _In_ HDC hdc,
+ _In_ INT left,
+ _In_ INT top,
+ _In_ INT right,
+ _In_ INT bottom)
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return MFDRV_MetaParam4(hdc, META_RECTANGLE, left, top, right, bottom);
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
+ if ( !pLDC )
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (pLDC->iType == LDC_EMFLDC)
+ {
+ return EMFDRV_Rectangle(hdc, left, top, right, bottom);
+ }
+ return FALSE;
+ }
+ }
+#endif
+ return NtGdiRectangle(hdc, left, top, right, bottom);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+RoundRect(
+ _In_ HDC hdc,
+ _In_ INT left,
+ _In_ INT top,
+ _In_ INT right,
+ _In_ INT bottom,
+ _In_ INT width,
+ _In_ INT height)
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return MFDRV_MetaParam6(hdc, META_ROUNDRECT, left, top, right, bottom,
+ width, height );
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
+ if ( !pLDC )
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (pLDC->iType == LDC_EMFLDC)
+ {
+ return EMFDRV_RoundRect(hdc, left, top, right, bottom,
+ width, height );
+ }
+ return FALSE;
+ }
+ }
+#endif
+ return NtGdiRoundRect(hdc, left, top, right, bottom, width, height);
}
@@ -192,11 +215,14 @@
*/
COLORREF
WINAPI
-GetPixel( HDC hDC, INT x, INT y )
-{
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC) return CLR_INVALID;
- if (!GdiIsHandleValid((HGDIOBJ) hDC)) return CLR_INVALID;
- return NtGdiGetPixel( hDC, x, y);
+GetPixel(
+ _In_ HDC hdc,
+ _In_ INT x,
+ _In_ INT y)
+{
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC) return CLR_INVALID;
+ if (!GdiIsHandleValid((HGDIOBJ) hdc)) return CLR_INVALID;
+ return NtGdiGetPixel(hdc, x, y);
}
@@ -205,18 +231,22 @@
*/
COLORREF
WINAPI
-SetPixel( HDC hDC, INT x, INT y, COLORREF Color )
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return MFDRV_MetaParam4(hDC, META_SETPIXEL, x, y, HIWORD(Color),
- LOWORD(Color));
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
+SetPixel(
+ _In_ HDC hdc,
+ _In_ INT x,
+ _In_ INT y,
+ _In_ COLORREF crColor)
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return MFDRV_MetaParam4(hdc, META_SETPIXEL, x, y, HIWORD(crColor),
+ LOWORD(crColor));
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
if ( !pLDC )
{
SetLastError(ERROR_INVALID_HANDLE);
@@ -224,182 +254,202 @@
}
if (pLDC->iType == LDC_EMFLDC)
{
- return EMFDRV_SetPixel( hDC, x, y, Color );
+ return EMFDRV_SetPixel(hdc, x, y, crColor);
}
return 0;
}
}
#endif
- return NtGdiSetPixel( hDC, x, y, Color);
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-SetPixelV( HDC hDC, INT x, INT y, COLORREF Color )
-{
- COLORREF Cr = SetPixel( hDC, x, y, Color );
- if (Cr != CLR_INVALID) return TRUE;
- return FALSE;
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-FillRgn( HDC hDC, HRGN hRgn, HBRUSH hBrush )
-{
-
- if ( (!hRgn) || (!hBrush) ) return FALSE;
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return MFDRV_FillRgn( hDC, hRgn, hBrush);
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
- if ( !pLDC )
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (pLDC->iType == LDC_EMFLDC)
- {
- return EMFDRV_FillRgn(( hDC, hRgn, hBrush);
+ return NtGdiSetPixel(hdc, x, y, crColor);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+SetPixelV(
+ _In_ HDC hdc,
+ _In_ INT x,
+ _In_ INT y,
+ _In_ COLORREF crColor)
+{
+ return SetPixel(hdc, x, y, crColor) != CLR_INVALID;
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+FillRgn(
+ _In_ HDC hdc,
+ _In_ HRGN hrgn,
+ _In_ HBRUSH hbr)
+{
+
+ if ((hrgn == NULL) || (hbr == NULL))
+ return FALSE;
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return MFDRV_FillRgn(hdc, hrgn, hbr);
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
+ if ( !pLDC )
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (pLDC->iType == LDC_EMFLDC)
+ {
+ return EMFDRV_FillRgn((hdc, hrgn, hbr);
}
return FALSE;
}
}
#endif
- return NtGdiFillRgn( hDC, hRgn, hBrush);
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-FrameRgn( HDC hDC, HRGN hRgn, HBRUSH hBrush, INT nWidth, INT nHeight )
-{
-
- if ( (!hRgn) || (!hBrush) ) return FALSE;
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return MFDRV_FrameRgn( hDC, hRgn, hBrush, nWidth, nHeight );
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
- if ( !pLDC )
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (pLDC->iType == LDC_EMFLDC)
- {
- return EMFDRV_FrameRgn( hDC, hRgn, hBrush, nWidth, nHeight );
- }
- return FALSE;
- }
- }
-#endif
- return NtGdiFrameRgn( hDC, hRgn, hBrush, nWidth, nHeight);
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-InvertRgn( HDC hDC, HRGN hRgn )
-{
-
- if ( !hRgn ) return FALSE;
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return MFDRV_InvertRgn( hDC, HRGN hRgn ); // Use this instead of
MFDRV_MetaParam.
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
- if ( !pLDC )
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (pLDC->iType == LDC_EMFLDC)
- {
- return EMFDRV_PaintInvertRgn( hDC, hRgn, EMR_INVERTRGN );
- }
- return FALSE;
- }
- }
-#endif
- return NtGdiInvertRgn( hDC, hRgn);
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-PaintRgn( HDC hDC, HRGN hRgn )
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return MFDRV_PaintRgn( hDC, HRGN hRgn ); // Use this instead of
MFDRV_MetaParam.
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
- if ( !pLDC )
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (pLDC->iType == LDC_EMFLDC)
- {
- return EMFDRV_PaintInvertRgn( hDC, hRgn, EMR_PAINTRGN );
- }
- return FALSE;
- }
- }
-#endif
-// Could just use Dc_Attr->hbrush? No.
- HBRUSH hBrush = (HBRUSH)GetCurrentObject(hDC, OBJ_BRUSH);
-
- return NtGdiFillRgn( hDC, hRgn, hBrush);
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-PolyBezier(HDC hDC ,const POINT* Point, DWORD cPoints)
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
+ return NtGdiFillRgn(hdc, hrgn, hbr);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+FrameRgn(
+ _In_ HDC hdc,
+ _In_ HRGN hrgn,
+ _In_ HBRUSH hbr,
+ _In_ INT nWidth,
+ _In_ INT nHeight)
+{
+
+ if ((hrgn == NULL) || (hbr == NULL))
+ return FALSE;
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return MFDRV_FrameRgn(hdc, hrgn, hbr, nWidth, nHeight );
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
+ if ( !pLDC )
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (pLDC->iType == LDC_EMFLDC)
+ {
+ return EMFDRV_FrameRgn(hdc, hrgn, hbr, nWidth, nHeight );
+ }
+ return FALSE;
+ }
+ }
+#endif
+ return NtGdiFrameRgn(hdc, hrgn, hbr, nWidth, nHeight);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+InvertRgn(
+ _In_ HDC hdc,
+ _In_ HRGN hrgn)
+{
+
+ if (hrgn == NULL)
+ return FALSE;
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return MFDRV_InvertRgn(hdc, HRGN hrgn ); // Use this instead of
MFDRV_MetaParam.
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
+ if ( !pLDC )
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (pLDC->iType == LDC_EMFLDC)
+ {
+ return EMFDRV_PaintInvertRgn(hdc, hrgn, EMR_INVERTRGN );
+ }
+ return FALSE;
+ }
+ }
+#endif
+ return NtGdiInvertRgn(hdc, hrgn);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+PaintRgn(
+ _In_ HDC hdc,
+ _In_ HRGN hrgn)
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return MFDRV_PaintRgn(hdc, HRGN hrgn ); // Use this instead of
MFDRV_MetaParam.
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
+ if ( !pLDC )
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (pLDC->iType == LDC_EMFLDC)
+ {
+ return EMFDRV_PaintInvertRgn(hdc, hrgn, EMR_PAINTRGN );
+ }
+ return FALSE;
+ }
+ }
+#endif
+// Could just use pdcattr->hbrush? No.
+ HBRUSH hbr = GetCurrentObject(hdc, OBJ_BRUSH);
+
+ return NtGdiFillRgn(hdc, hrgn, hbr);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+PolyBezier(
+ _In_ HDC hdc,
+ _In_reads_(cpt) const POINT *apt,
+ _In_ DWORD cpt)
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
/*
* Since MetaFiles don't record Beziers and they don't even record
* approximations to them using lines.
@@ -407,7 +457,7 @@
return FALSE;
else
{
- PLDC pLDC = GdiGetLDC(hDC);
+ PLDC pLDC = GdiGetLDC(hdc);
if ( !pLDC )
{
SetLastError(ERROR_INVALID_HANDLE);
@@ -421,26 +471,29 @@
}
}
#endif
- return NtGdiPolyPolyDraw( hDC ,(PPOINT) Point, &cPoints, 1, GdiPolyBezier );
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-PolyBezierTo(HDC hDC, const POINT* Point ,DWORD cPoints)
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return FALSE;
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
+ return NtGdiPolyPolyDraw(hdc ,(PPOINT)apt, &cpt, 1, GdiPolyBezier);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+PolyBezierTo(
+ _In_ HDC hdc,
+ _In_reads_(cpt) const POINT *apt,
+ _In_ DWORD cpt)
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return FALSE;
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
if ( !pLDC )
{
SetLastError(ERROR_INVALID_HANDLE);
@@ -454,26 +507,30 @@
}
}
#endif
- return NtGdiPolyPolyDraw( hDC , (PPOINT) Point, &cPoints, 1, GdiPolyBezierTo );
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-PolyDraw(HDC hDC, const POINT* Point, const BYTE *lpbTypes, int cCount )
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return FALSE;
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
+ return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, &cpt, 1, GdiPolyBezierTo);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+PolyDraw(
+ _In_ HDC hdc,
+ _In_reads_(cpt) const POINT *apt,
+ _In_reads_(cpt) const BYTE *aj,
+ _In_ INT cpt)
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return FALSE;
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
if ( !pLDC )
{
SetLastError(ERROR_INVALID_HANDLE);
@@ -487,92 +544,101 @@
}
}
#endif
- return NtGdiPolyDraw( hDC , (PPOINT) Point, (PBYTE)lpbTypes, cCount );
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-Polygon(HDC hDC, const POINT *Point, int Count)
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return MFDRV_Polygon( hDC, Point, Count );
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
- if ( !pLDC )
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (pLDC->iType == LDC_EMFLDC)
- {
- return EMFDRV_Polygon( hDC, Point, Count );
- }
- return FALSE;
- }
- }
-#endif
- return NtGdiPolyPolyDraw( hDC , (PPOINT) Point, (PULONG)&Count, 1, GdiPolyPolygon
);
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-Polyline(HDC hDC, const POINT *Point, int Count)
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return MFDRV_Polyline( hDC, Point, Count );
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
- if ( !pLDC )
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (pLDC->iType == LDC_EMFLDC)
- {
- return EMFDRV_Polyline( hDC, Point, Count );
- }
- return FALSE;
- }
- }
-#endif
- return NtGdiPolyPolyDraw( hDC , (PPOINT) Point, (PULONG)&Count, 1,
GdiPolyPolyLine );
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-PolylineTo(HDC hDC, const POINT* Point, DWORD Count)
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return FALSE;
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
+ return NtGdiPolyDraw(hdc, (PPOINT)apt, (PBYTE)aj, cpt);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+Polygon(
+ _In_ HDC hdc,
+ _In_reads_(cpt) const POINT *apt,
+ _In_ INT cpt)
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return MFDRV_Polygon(hdc, apt, cpt );
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
+ if ( !pLDC )
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (pLDC->iType == LDC_EMFLDC)
+ {
+ return EMFDRV_Polygon(hdc, apt, cpt );
+ }
+ return FALSE;
+ }
+ }
+#endif
+ return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, (PULONG)&cpt, 1, GdiPolyPolygon);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+Polyline(
+ _In_ HDC hdc,
+ _In_reads_(cpt) const POINT *apt,
+ _In_ INT cpt)
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return MFDRV_Polyline(hdc, apt, cpt);
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
+ if ( !pLDC )
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (pLDC->iType == LDC_EMFLDC)
+ {
+ return EMFDRV_Polyline(hdc, apt, cpt);
+ }
+ return FALSE;
+ }
+ }
+#endif
+ return NtGdiPolyPolyDraw(hdc, (PPOINT)apt, (PULONG)&cpt, 1, GdiPolyPolyLine);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+PolylineTo(
+ _In_ HDC hdc,
+ _In_reads_(cpt) const POINT *apt,
+ _In_ DWORD cpt)
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return FALSE;
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
if ( !pLDC )
{
SetLastError(ERROR_INVALID_HANDLE);
@@ -586,73 +652,81 @@
}
}
#endif
- return NtGdiPolyPolyDraw( hDC , (PPOINT) Point, &Count, 1, GdiPolyLineTo );
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-PolyPolygon(HDC hDC, const POINT* Point, const INT* Count, int Polys)
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return MFDRV_PolyPolygon( hDC, Point, Count, Polys);
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
- if ( !pLDC )
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (pLDC->iType == LDC_EMFLDC)
- {
- return EMFDRV_PolyPolygon( hDC, Point, Count, Polys );
- }
- return FALSE;
- }
- }
-#endif
- return NtGdiPolyPolyDraw( hDC , (PPOINT)Point, (PULONG)Count, Polys, GdiPolyPolygon
);
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-PolyPolyline(HDC hDC, const POINT* Point, const DWORD* Counts, DWORD Polys)
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return FALSE;
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
- if ( !pLDC )
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (pLDC->iType == LDC_EMFLDC)
- {
- return EMFDRV_PolyPolyline(hDC, Point, Counts, Polys);
- }
- return FALSE;
- }
- }
-#endif
- return NtGdiPolyPolyDraw( hDC , (PPOINT)Point, (PULONG)Counts, Polys, GdiPolyPolyLine
);
+ return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, &cpt, 1, GdiPolyLineTo);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+PolyPolygon(
+ _In_ HDC hdc,
+ _In_ const POINT *apt,
+ _In_reads_(csz) const INT *asz,
+ _In_ INT csz)
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return MFDRV_PolyPolygon(hdc, apt, asz, csz);
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
+ if ( !pLDC )
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (pLDC->iType == LDC_EMFLDC)
+ {
+ return EMFDRV_PolyPolygon(hdc, apt, asz, csz );
+ }
+ return FALSE;
+ }
+ }
+#endif
+ return NtGdiPolyPolyDraw(hdc, (PPOINT)apt, (PULONG)asz, csz, GdiPolyPolygon);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+PolyPolyline(
+ _In_ HDC hdc,
+ _In_ CONST POINT *apt,
+ _In_reads_(csz) CONST DWORD *asz,
+ _In_ DWORD csz)
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return FALSE;
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
+ if ( !pLDC )
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (pLDC->iType == LDC_EMFLDC)
+ {
+ return EMFDRV_PolyPolyline(hdc, apt, asz, csz);
+ }
+ return FALSE;
+ }
+ }
+#endif
+ return NtGdiPolyPolyDraw(hdc , (PPOINT)apt, (PULONG)asz, csz, GdiPolyPolyLine);
}
@@ -662,36 +736,35 @@
BOOL
WINAPI
ExtFloodFill(
- HDC hDC,
- int nXStart,
- int nYStart,
- COLORREF crFill,
- UINT fuFillType
-)
-{
-#if 0
-// Handle something other than a normal dc object.
- if (GDI_HANDLE_GET_TYPE(hDC) != GDI_OBJECT_TYPE_DC)
- {
- if (GDI_HANDLE_GET_TYPE(hDC) == GDI_OBJECT_TYPE_METADC)
- return MFDRV_ExtFloodFill( hDC, nXStart, nYStart, crFill, fuFillType );
- else
- {
- PLDC pLDC = GdiGetLDC(hDC);
- if ( !pLDC )
- {
- SetLastError(ERROR_INVALID_HANDLE);
- return FALSE;
- }
- if (pLDC->iType == LDC_EMFLDC)
- {
- return EMFDRV_ExtFloodFill( hDC, nXStart, nYStart, crFill, fuFillType );
- }
- return FALSE;
- }
- }
-#endif
- return NtGdiExtFloodFill(hDC, nXStart, nYStart, crFill, fuFillType);
+ _In_ HDC hdc,
+ _In_ INT xStart,
+ _In_ INT yStart,
+ _In_ COLORREF crFill,
+ _In_ UINT fuFillType)
+{
+#if 0
+// Handle something other than a normal dc object.
+ if (GDI_HANDLE_GET_TYPE(hdc) != GDI_OBJECT_TYPE_DC)
+ {
+ if (GDI_HANDLE_GET_TYPE(hdc) == GDI_OBJECT_TYPE_METADC)
+ return MFDRV_ExtFloodFill(hdc, xStart, yStart, crFill, fuFillType );
+ else
+ {
+ PLDC pLDC = GdiGetLDC(hdc);
+ if ( !pLDC )
+ {
+ SetLastError(ERROR_INVALID_HANDLE);
+ return FALSE;
+ }
+ if (pLDC->iType == LDC_EMFLDC)
+ {
+ return EMFDRV_ExtFloodFill(hdc, xStart, yStart, crFill, fuFillType );
+ }
+ return FALSE;
+ }
+ }
+#endif
+ return NtGdiExtFloodFill(hdc, xStart, yStart, crFill, fuFillType);
}
@@ -701,12 +774,12 @@
BOOL
WINAPI
FloodFill(
- HDC hDC,
- int nXStart,
- int nYStart,
- COLORREF crFill)
-{
- return ExtFloodFill(hDC, nXStart, nYStart, crFill, FLOODFILLBORDER);
+ _In_ HDC hdc,
+ _In_ INT xStart,
+ _In_ INT yStart,
+ _In_ COLORREF crFill)
+{
+ return ExtFloodFill(hdc, xStart, yStart, crFill, FLOODFILLBORDER);
}
/*
@@ -715,34 +788,34 @@
BOOL
WINAPI
BitBlt(
- HDC hdcDest, /* handle to destination DC */
- int nXOriginDest, /* x-coord of destination upper-left corner */
- int nYOriginDest, /* y-coord of destination upper-left corner */
- int nWidthDest, /* width of destination rectangle */
- int nHeightDest, /* height of destination rectangle */
- HDC hdcSrc, /* handle to source DC */
- int nXSrc, /* x-coordinate of source upper-left corner */
- int nYSrc, /* y-coordinate of source upper-left corner */
- DWORD dwRop) /* raster operation code */
-{
- /* use patBlt for no source blt Like windows does */
+ _In_ HDC hdcDest,
+ _In_ INT xDest,
+ _In_ INT yDest,
+ _In_ INT cx,
+ _In_ INT cy,
+ _In_opt_ HDC hdcSrc,
+ _In_ INT xSrc,
+ _In_ INT ySrc,
+ _In_ DWORD dwRop)
+{
+ /* Use PatBlt for no source blt, like windows does */
if (!ROP_USES_SOURCE(dwRop))
{
- return PatBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest,
dwRop);
- }
-
- return NtGdiBitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest,
hdcSrc, nXSrc,
- nYSrc, dwRop, 0, 0);
-}
-
-BOOL
-WINAPI
-PatBlt(HDC hdc,
- int nXLeft,
- int nYLeft,
- int nWidth,
- int nHeight,
- DWORD dwRop)
+ return PatBlt(hdcDest, xDest, yDest, cx, cy, dwRop);
+ }
+
+ return NtGdiBitBlt(hdcDest, xDest, yDest, cx, cy, hdcSrc, xSrc, ySrc, dwRop, 0, 0);
+}
+
+BOOL
+WINAPI
+PatBlt(
+ _In_ HDC hdc,
+ _In_ INT nXLeft,
+ _In_ INT nYLeft,
+ _In_ INT nWidth,
+ _In_ INT nHeight,
+ _In_ DWORD dwRop)
{
/* FIXME some part need be done in user mode */
return NtGdiPatBlt( hdc, nXLeft, nYLeft, nWidth, nHeight, dwRop);
@@ -750,14 +823,15 @@
BOOL
WINAPI
-PolyPatBlt(IN HDC hdc,
- IN DWORD rop4,
- IN PPOLYPATBLT pPoly,
- IN DWORD Count,
- IN DWORD Mode)
+PolyPatBlt(
+ _In_ HDC hdc,
+ _In_ DWORD dwRop,
+ _In_ PPOLYPATBLT pPoly,
+ _In_ DWORD nCount,
+ _In_ DWORD dwMode)
{
/* FIXME some part need be done in user mode */
- return NtGdiPolyPatBlt(hdc, rop4, pPoly,Count,Mode);
+ return NtGdiPolyPatBlt(hdc, dwRop, pPoly, nCount, dwMode);
}
/*
@@ -766,56 +840,75 @@
BOOL
WINAPI
StretchBlt(
- HDC hdcDest, /* handle to destination DC */
- int nXOriginDest, /* x-coord of destination upper-left corner */
- int nYOriginDest, /* y-coord of destination upper-left corner */
- int nWidthDest, /* width of destination rectangle */
- int nHeightDest, /* height of destination rectangle */
- HDC hdcSrc, /* handle to source DC */
- int nXOriginSrc, /* x-coord of source upper-left corner */
- int nYOriginSrc, /* y-coord of source upper-left corner */
- int nWidthSrc, /* width of source rectangle */
- int nHeightSrc, /* height of source rectangle */
- DWORD dwRop) /* raster operation code */
-
-{
- if ((nWidthDest != nWidthSrc) || (nHeightDest != nHeightSrc))
- {
- return NtGdiStretchBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest,
nHeightDest, hdcSrc,
- nXOriginSrc, nYOriginSrc, nWidthSrc, nHeightSrc, dwRop, 0);
- }
-
- return NtGdiBitBlt(hdcDest, nXOriginDest, nYOriginDest, nWidthDest, nHeightDest,
hdcSrc,
- nXOriginSrc, nYOriginSrc, dwRop, 0, 0);
-}
-
-
-/*
- * @implemented
- */
-BOOL WINAPI
+ _In_ HDC hdcDest,
+ _In_ INT xDest,
+ _In_ INT yDest,
+ _In_ INT cxDest,
+ _In_ INT cyDest,
+ _In_opt_ HDC hdcSrc,
+ _In_ INT xSrc,
+ _In_ INT ySrc,
+ _In_ INT cxSrc,
+ _In_ INT cySrc,
+ _In_ DWORD dwRop)
+{
+ if ((cxDest != cxSrc) || (cyDest != cySrc))
+ {
+ return NtGdiStretchBlt(hdcDest,
+ xDest,
+ yDest,
+ cxDest,
+ cyDest,
+ hdcSrc,
+ xSrc,
+ ySrc,
+ cxSrc,
+ cySrc,
+ dwRop,
+ 0);
+ }
+
+ return NtGdiBitBlt(hdcDest,
+ xDest,
+ yDest,
+ cxDest,
+ cyDest,
+ hdcSrc,
+ xSrc,
+ ySrc,
+ dwRop,
+ 0,
+ 0);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
MaskBlt(
- HDC hdcDest,
- INT nXDest,
- INT nYDest,
- INT nWidth,
- INT nHeight,
- HDC hdcSrc,
- INT nXSrc,
- INT nYSrc,
- HBITMAP hbmMask,
- INT xMask,
- INT yMask,
- DWORD dwRop)
+ _In_ HDC hdcDest,
+ _In_ INT xDest,
+ _In_ INT yDest,
+ _In_ INT cx,
+ _In_ INT cy,
+ _In_ HDC hdcSrc,
+ _In_ INT xSrc,
+ _In_ INT ySrc,
+ _In_ HBITMAP hbmMask,
+ _In_ INT xMask,
+ _In_ INT yMask,
+ _In_ DWORD dwRop)
{
return NtGdiMaskBlt(hdcDest,
- nXDest,
- nYDest,
- nWidth,
- nHeight,
+ xDest,
+ yDest,
+ cx,
+ cy,
hdcSrc,
- nXSrc,
- nYSrc,
+ xSrc,
+ ySrc,
hbmMask,
xMask,
yMask,
@@ -830,24 +923,24 @@
BOOL
WINAPI
PlgBlt(
- HDC hdcDest,
- const POINT *lpPoint,
- HDC hdcSrc,
- INT nXSrc,
- INT nYSrc,
- INT nWidth,
- INT nHeight,
- HBITMAP hbmMask,
- INT xMask,
- INT yMask)
+ _In_ HDC hdcDest,
+ _In_reads_(3) const POINT * ppt,
+ _In_ HDC hdcSrc,
+ _In_ INT xSrc,
+ _In_ INT ySrc,
+ _In_ INT cx,
+ _In_ INT cy,
+ _In_opt_ HBITMAP hbmMask,
+ _In_ INT xMask,
+ _In_ INT yMask)
{
return NtGdiPlgBlt(hdcDest,
- (LPPOINT)lpPoint,
+ (LPPOINT)ppt,
hdcSrc,
- nXSrc,
- nYSrc,
- nWidth,
- nHeight,
+ xSrc,
+ ySrc,
+ cx,
+ cy,
hbmMask,
xMask,
yMask,
@@ -857,58 +950,57 @@
BOOL
WINAPI
GdiAlphaBlend(
- HDC hDCDst,
- int DstX,
- int DstY,
- int DstCx,
- int DstCy,
- HDC hDCSrc,
- int SrcX,
- int SrcY,
- int SrcCx,
- int SrcCy,
- BLENDFUNCTION BlendFunction)
-{
- if ( hDCSrc == NULL ) return FALSE;
-
- if (GDI_HANDLE_GET_TYPE(hDCSrc) == GDI_OBJECT_TYPE_METADC) return FALSE;
-
- return NtGdiAlphaBlend(
- hDCDst,
- DstX,
- DstY,
- DstCx,
- DstCy,
- hDCSrc,
- SrcX,
- SrcY,
- SrcCx,
- SrcCy,
- BlendFunction,
- 0 );
-}
-
-
-/*
- * @implemented
- */
-BOOL
-WINAPI
-GdiTransparentBlt(IN HDC hdcDst,
- IN INT xDst,
- IN INT yDst,
- IN INT cxDst,
- IN INT cyDst,
- IN HDC hdcSrc,
- IN INT xSrc,
- IN INT ySrc,
- IN INT cxSrc,
- IN INT cySrc,
- IN UINT TransColor
- )
+ _In_ HDC hdcDst,
+ _In_ INT xDst,
+ _In_ INT yDst,
+ _In_ INT cxDst,
+ _In_ INT cyDst,
+ _In_ HDC hdcSrc,
+ _In_ INT xSrc,
+ _In_ INT ySrc,
+ _In_ INT cxSrc,
+ _In_ INT cySrc,
+ _In_ BLENDFUNCTION blendfn)
+{
+ if (hdcSrc == NULL ) return FALSE;
+
+ if (GDI_HANDLE_GET_TYPE(hdcSrc) == GDI_OBJECT_TYPE_METADC) return FALSE;
+
+ return NtGdiAlphaBlend(hdcDst,
+ xDst,
+ yDst,
+ cxDst,
+ cyDst,
+ hdcSrc,
+ xSrc,
+ ySrc,
+ cxSrc,
+ cySrc,
+ blendfn,
+ 0);
+}
+
+
+/*
+ * @implemented
+ */
+BOOL
+WINAPI
+GdiTransparentBlt(
+ _In_ HDC hdcDst,
+ _In_ INT xDst,
+ _In_ INT yDst,
+ _In_ INT cxDst,
+ _In_ INT cyDst,
+ _In_ HDC hdcSrc,
+ _In_ INT xSrc,
+ _In_ INT ySrc,
+ _In_ INT cxSrc,
+ _In_ INT cySrc,
+ _In_ UINT crTransparent)
{
/* FIXME some part need be done in user mode */
- return NtGdiTransparentBlt(hdcDst, xDst, yDst, cxDst, cyDst, hdcSrc, xSrc, ySrc,
cxSrc, cySrc, (COLORREF)TransColor);
+ return NtGdiTransparentBlt(hdcDst, xDst, yDst, cxDst, cyDst, hdcSrc, xSrc, ySrc,
cxSrc, cySrc, crTransparent);
}
/*
@@ -917,13 +1009,13 @@
BOOL
WINAPI
GdiGradientFill(
- IN HDC hdc,
- IN PTRIVERTEX pVertex,
- IN ULONG nVertex,
- IN PVOID pMesh,
- IN ULONG nMesh,
- IN ULONG ulMode)
+ _In_ HDC hdc,
+ _In_reads_(nVertex) PTRIVERTEX pVertex,
+ _In_ ULONG nVertex,
+ _In_ PVOID pMesh,
+ _In_ ULONG nCount,
+ _In_ ULONG ulMode)
{
/* FIXME some part need be done in user mode */
- return NtGdiGradientFill(hdc, pVertex, nVertex, pMesh, nMesh, ulMode);
-}
+ return NtGdiGradientFill(hdc, pVertex, nVertex, pMesh, nCount, ulMode);
+}