-#include "precomp.h"\r
-\r
-#define NDEBUG\r
-#include <debug.h>\r
-\r
-/*\r
- * @implemented\r
- */\r
-BOOL\r
-STDCALL\r
-FixBrushOrgEx(\r
- HDC hDC,\r
- INT nXOrg,\r
- INT nYOrg,\r
- LPPOINT lpPoint)\r
-{\r
- return FALSE;\r
-}\r
-\r
-/*\r
- * @implemented\r
- */\r
-HBRUSH STDCALL\r
-CreateDIBPatternBrush(\r
- HGLOBAL hglbDIBPacked,\r
- UINT fuColorSpec)\r
-{\r
- PVOID lpPackedDIB;\r
- HBRUSH hBrush = NULL;\r
- PBITMAPINFO pConvertedInfo;\r
- UINT ConvertedInfoSize;\r
-\r
- lpPackedDIB = GlobalLock(hglbDIBPacked); \r
- if (lpPackedDIB == NULL)\r
- return 0;\r
-\r
- pConvertedInfo = ConvertBitmapInfo((PBITMAPINFO)lpPackedDIB, fuColorSpec,\r
- &ConvertedInfoSize, TRUE);\r
- if (pConvertedInfo)\r
- {\r
- hBrush = NtGdiCreateDIBBrush(pConvertedInfo, fuColorSpec,\r
- ConvertedInfoSize, lpPackedDIB);\r
- if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo)\r
- RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo);\r
- }\r
- \r
- GlobalUnlock(hglbDIBPacked);\r
-\r
- return hBrush;\r
-}\r
-\r
-/*\r
- * @implemented\r
- */\r
-HBRUSH STDCALL\r
-CreateDIBPatternBrushPt(\r
- CONST VOID *lpPackedDIB,\r
- UINT fuColorSpec)\r
-{\r
- HBRUSH hBrush = NULL;\r
- PBITMAPINFO pConvertedInfo;\r
- UINT ConvertedInfoSize;\r
-\r
- if (lpPackedDIB == NULL)\r
- return 0;\r
-\r
- pConvertedInfo = ConvertBitmapInfo((PBITMAPINFO)lpPackedDIB, fuColorSpec,\r
- &ConvertedInfoSize, TRUE);\r
- if (pConvertedInfo)\r
- {\r
- hBrush = NtGdiCreateDIBBrush(pConvertedInfo, fuColorSpec,\r
- ConvertedInfoSize, lpPackedDIB);\r
- if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo)\r
- RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo);\r
- }\r
-\r
- return hBrush;\r
-}\r
-\r
-/*\r
- * @implemented\r
- */\r
-HBRUSH STDCALL\r
-CreateBrushIndirect(\r
- CONST LOGBRUSH *LogBrush)\r
-{\r
- HBRUSH hBrush;\r
-\r
- switch (LogBrush->lbStyle)\r
- {\r
- case BS_DIBPATTERN8X8:\r
- case BS_DIBPATTERN:\r
- hBrush = CreateDIBPatternBrush((HGLOBAL)LogBrush->lbHatch,\r
- LogBrush->lbColor);\r
- break;\r
-\r
- case BS_DIBPATTERNPT:\r
- hBrush = CreateDIBPatternBrushPt((PVOID)LogBrush->lbHatch,\r
- LogBrush->lbColor);\r
- break;\r
-\r
- case BS_PATTERN:\r
- case BS_PATTERN8X8:\r
- hBrush = NtGdiCreatePatternBrush((HBITMAP)LogBrush->lbHatch);\r
- break;\r
-\r
- case BS_SOLID:\r
- hBrush = NtGdiCreateSolidBrush(LogBrush->lbColor);\r
- break;\r
-\r
- case BS_HATCHED:\r
- hBrush = NtGdiCreateHatchBrush(LogBrush->lbHatch, LogBrush->lbColor);\r
- break;\r
- \r
- case BS_NULL:\r
- hBrush = NtGdiGetStockObject(NULL_BRUSH);\r
- break;\r
-\r
- default:\r
- SetLastError(ERROR_INVALID_PARAMETER);\r
- hBrush = NULL;\r
- break;\r
- }\r
-\r
- return hBrush;\r
-}\r
-\r
+#include "precomp.h"
+
+#define NDEBUG
+#include <debug.h>
+
+/*
+ * @implemented
+ */
+BOOL
+STDCALL
+FixBrushOrgEx(
+ HDC hDC,
+ INT nXOrg,
+ INT nYOrg,
+ LPPOINT lpPoint)
+{
+ return FALSE;
+}
+
+/*
+ * @implemented
+ */
+HBRUSH STDCALL
+CreateDIBPatternBrush(
+ HGLOBAL hglbDIBPacked,
+ UINT fuColorSpec)
+{
+ PVOID lpPackedDIB;
+ HBRUSH hBrush = NULL;
+ PBITMAPINFO pConvertedInfo;
+ UINT ConvertedInfoSize;
+
+ lpPackedDIB = GlobalLock(hglbDIBPacked);
+ if (lpPackedDIB == NULL)
+ return 0;
+
+ pConvertedInfo = ConvertBitmapInfo((PBITMAPINFO)lpPackedDIB, fuColorSpec,
+ &ConvertedInfoSize, TRUE);
+ if (pConvertedInfo)
+ {
+ hBrush = NtGdiCreateDIBBrush(pConvertedInfo, fuColorSpec,
+ ConvertedInfoSize, FALSE, FALSE, lpPackedDIB);
+ if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo)
+ RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo);
+ }
+
+ GlobalUnlock(hglbDIBPacked);
+
+ return hBrush;
+}
+
+/*
+ * @implemented
+ */
+HBRUSH STDCALL
+CreateDIBPatternBrushPt(
+ CONST VOID *lpPackedDIB,
+ UINT fuColorSpec)
+{
+ HBRUSH hBrush = NULL;
+ PBITMAPINFO pConvertedInfo;
+ UINT ConvertedInfoSize;
+
+ if (lpPackedDIB == NULL)
+ return 0;
+
+ pConvertedInfo = ConvertBitmapInfo((PBITMAPINFO)lpPackedDIB, fuColorSpec,
+ &ConvertedInfoSize, TRUE);
+ if (pConvertedInfo)
+ {
+ hBrush = NtGdiCreateDIBBrush(pConvertedInfo, fuColorSpec,
+ ConvertedInfoSize, FALSE, FALSE, (PVOID)lpPackedDIB);
+ if ((PBITMAPINFO)lpPackedDIB != pConvertedInfo)
+ RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo);
+ }
+
+ return hBrush;
+}
+
+/*
+ * @implemented
+ */
+HBRUSH
+STDCALL
+CreateHatchBrush(INT fnStyle,
+ COLORREF clrref)
+{
+ return NtGdiCreateHatchBrushInternal(fnStyle, clrref, FALSE);
+}
+
+/*
+ * @implemented
+ */
+HBRUSH
+STDCALL
+CreatePatternBrush(HBITMAP hbmp)
+{
+ return NtGdiCreatePatternBrushInternal(hbmp, FALSE, FALSE);
+}
+
+/*
+ * @implemented
+ */
+HBRUSH
+STDCALL
+CreateSolidBrush(IN COLORREF crColor)
+{
+ /* Call Server-Side API */
+ return NtGdiCreateSolidBrush(crColor, NULL);
+}
+
+/*
+ * @implemented
+ */
+HBRUSH STDCALL
+CreateBrushIndirect(
+ CONST LOGBRUSH *LogBrush)
+{
+ HBRUSH hBrush;
+
+ switch (LogBrush->lbStyle)
+ {
+ case BS_DIBPATTERN8X8:
+ case BS_DIBPATTERN:
+ hBrush = CreateDIBPatternBrush((HGLOBAL)LogBrush->lbHatch,
+ LogBrush->lbColor);
+ break;
+
+ case BS_DIBPATTERNPT:
+ hBrush = CreateDIBPatternBrushPt((PVOID)LogBrush->lbHatch,
+ LogBrush->lbColor);
+ break;
+
+ case BS_PATTERN:
+ hBrush = NtGdiCreatePatternBrushInternal((HBITMAP)LogBrush->lbHatch,
+ FALSE,
+ FALSE);
+ break;
+
+ case BS_PATTERN8X8:
+ hBrush = NtGdiCreatePatternBrushInternal((HBITMAP)LogBrush->lbHatch,
+ FALSE,
+ TRUE);
+ break;
+
+ case BS_SOLID:
+ hBrush = NtGdiCreateSolidBrush(LogBrush->lbColor, 0);
+ break;
+
+ case BS_HATCHED:
+ hBrush = NtGdiCreateHatchBrushInternal(LogBrush->lbHatch,
+ LogBrush->lbColor,
+ FALSE);
+ break;
+
+ case BS_NULL:
+ hBrush = NtGdiGetStockObject(NULL_BRUSH);
+ break;
+
+ default:
+ SetLastError(ERROR_INVALID_PARAMETER);
+ hBrush = NULL;
+ break;
+ }
+
+ return hBrush;
+}
+