25 ExtCreatePen(DWORD dwPenStyle
,
31 /* Call NTGDI (hack... like most of gdi32..sigh) */
32 return NtGdiExtCreatePen(dwPenStyle
,
49 CreateDIBPatternBrush(
50 HGLOBAL hglbDIBPacked
,
55 PBITMAPINFO pConvertedInfo
;
56 UINT ConvertedInfoSize
;
58 lpPackedDIB
= GlobalLock(hglbDIBPacked
);
59 if (lpPackedDIB
== NULL
)
62 pConvertedInfo
= ConvertBitmapInfo((PBITMAPINFO
)lpPackedDIB
, fuColorSpec
,
63 &ConvertedInfoSize
, TRUE
);
66 hBrush
= NtGdiCreateDIBBrush(pConvertedInfo
, fuColorSpec
,
67 ConvertedInfoSize
, FALSE
, FALSE
, lpPackedDIB
);
68 if ((PBITMAPINFO
)lpPackedDIB
!= pConvertedInfo
)
69 RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo
);
72 GlobalUnlock(hglbDIBPacked
);
81 CreateDIBPatternBrushPt(
82 CONST VOID
*lpPackedDIB
,
86 PBITMAPINFO pConvertedInfo
;
87 UINT ConvertedInfoSize
;
89 if (lpPackedDIB
== NULL
)
92 pConvertedInfo
= ConvertBitmapInfo((PBITMAPINFO
)lpPackedDIB
, fuColorSpec
,
93 &ConvertedInfoSize
, TRUE
);
96 hBrush
= NtGdiCreateDIBBrush(pConvertedInfo
, fuColorSpec
,
97 ConvertedInfoSize
, FALSE
, FALSE
, (PVOID
)lpPackedDIB
);
98 if ((PBITMAPINFO
)lpPackedDIB
!= pConvertedInfo
)
99 RtlFreeHeap(RtlGetProcessHeap(), 0, pConvertedInfo
);
110 CreateHatchBrush(INT fnStyle
,
113 return NtGdiCreateHatchBrushInternal(fnStyle
, clrref
, FALSE
);
121 CreatePatternBrush(HBITMAP hbmp
)
123 return NtGdiCreatePatternBrushInternal(hbmp
, FALSE
, FALSE
);
131 CreateSolidBrush(IN COLORREF crColor
)
133 /* Call Server-Side API */
134 return NtGdiCreateSolidBrush(crColor
, NULL
);
142 CONST LOGBRUSH
*LogBrush
)
146 switch (LogBrush
->lbStyle
)
148 case BS_DIBPATTERN8X8
:
150 hBrush
= CreateDIBPatternBrush((HGLOBAL
)LogBrush
->lbHatch
,
154 case BS_DIBPATTERNPT
:
155 hBrush
= CreateDIBPatternBrushPt((PVOID
)LogBrush
->lbHatch
,
160 hBrush
= NtGdiCreatePatternBrushInternal((HBITMAP
)LogBrush
->lbHatch
,
166 hBrush
= NtGdiCreatePatternBrushInternal((HBITMAP
)LogBrush
->lbHatch
,
172 hBrush
= NtGdiCreateSolidBrush(LogBrush
->lbColor
, 0);
176 hBrush
= NtGdiCreateHatchBrushInternal(LogBrush
->lbHatch
,
182 hBrush
= NtGdiGetStockObject(NULL_BRUSH
);
186 SetLastError(ERROR_INVALID_PARAMETER
);