' Classes/System/Drawing/Brush.ab #require Namespace System Namespace Drawing Class Brush 'Inherits ICloneable, IDisposable Public Virtual Sub ~Brush() Dispose() End Sub Sub Dispose() If nativeBrush <> 0 Then Gdiplus.DllExports.GdipDeleteBrush(nativeBrush) nativeBrush = 0 End If End Sub /*Const Override*/ Virtual Function Clone() As Brush Dim brush = 0 As *GpBrush SetStatus(GdiPlus.DllExports.GdipCloneBrush(nativeBrush, brush)) Clone = New Brush(brush, lastResult) If newBrush = Nothing Then GdiPlus.DllExports.GdipDeleteBrush(brush) End If End Sub /* Const Function GetType() As BrushType GetType = -1 As BrushType SetStatus(GdiPlus.DllExports.GdipGetBrushType(nativeBrush, GetType)) End Function */ Function GetLastStatus() As Gdiplus.Status GetLastStatus = lastResult lastResult = Gdiplus.Status.Ok End Function Function NativeBrush() AS *GpBrush Return nativeBrush End Function 'Protected Sub Brush() SetStatus(Gdiplus.Status.NotImplemented) End Sub 'Protected Sub Brush(nativeBrush As *GpBrush, status As Gdiplus.Status) lastResult = status SetNativeBrush(nativeBrush) End Sub Protected Sub SetNativeBrush(nativeBrush As *GpBrush) This.nativeBrush = nativeBrush End Sub Function SetStatus(status As Gdiplus.Status) As Gdiplus.Status If status != Gdiplus.Status.Ok Then lastResult = status End If Return status End Function nativeBrush As *GpBrush /*Mutable*/ lastResult As Gdiplus.Status End Class class SolidBrush Inherits Brush Public Sub SolidBrush(color As Color) Dim brush = 0 As *GpSolidFill lastResult = GdiPlus.DllExports.GdipCreateSolidFill(color.Value, brush) SetNativeBrush(brush) End Sub Const Function GetColor(ByRef color As Color) As Gdiplus.Status Dim argb As ARGB SetStatus(GdiPlus.DllExports.GdipGetSolidFillColor(nativeBrush As *GpSolidFill, argb)) color = New Color(argb) Return lastResult End Function Function SetColor(color As Color) As Gdiplus.Status Return SetStatus(GdiPlus.DllExports.GdipSetSolidFillColor(nativeBrush As *GpSolidFill, color.Value)) End Function 'Protected Sub SolidBrush() End Sub End Class End Namespace 'Drawing End Namespace 'System