Index: /Include/Classes/System/Drawing/Color.ab
===================================================================
--- /Include/Classes/System/Drawing/Color.ab	(revision 30)
+++ /Include/Classes/System/Drawing/Color.ab	(revision 20)
@@ -18,9 +18,5 @@
 Public
 	Sub Color()
-		argb = MakeARGB(255, 0, 0, 0) ' Black
-	End Sub
-
-	Sub Color(ByRef c As Color)
-		argb = c.argb
+		Argb = 0 ' Black
 	End Sub
 
@@ -30,13 +26,13 @@
 
 	Sub Color(a As Byte, r As Byte, g As Byte, b As Byte)
-		argb = MakeARGB(a, r, g, b)
-	End Sub
-
-	Sub Color(newArgb As ARGB)
-		argb = newArgb
+		Argb = MakeARGB(a, r, g, b)
+	End Sub
+
+	Sub Color(argb As ARGB)
+		Argb = argb
 	End Sub
 
 	Sub Operator =(c As Color)
-		argb = c.argb
+		SetValue(c)
 	End Sub
 
@@ -65,18 +61,14 @@
 	End Function
 
-	Function Value() As ARGB
-		Return argb
-	End Function
-
-	Sub Value(value As ARGB)
+	Function GetValue() As ARGB
+		GetValue = argb
+	End Function
+
+	Sub SetValue(value As ARGB)
 		argb = value
 	End Sub
 
 	Sub SetFromCOLORREF(rgb As COLORREF)
-		If (rgb And &hff000000) = &h01000000 Then
-			Exit Sub ' インデックス指定は無効
-		Else
-			argb = Color_MakeARGB(255, GetRValue(rgb), GetGValue(rgb), GetBValue(rgb))
-		End If
+		argb = Color_MakeARGB(255, GetRValue(rgb), GetGValue(rgb), GetBValue(rgb))
 	End Sub
 
@@ -99,10 +91,10 @@
 	End Function
 
-	Static Function FromArgb(r As Byte, g As Byte, b As Byte) As Color
+	Static Function FromArgb(r As Byte, g As Byte, b As Byte)
 		Dim c As Color(r, g, b)
 		Return c
 	End Function
 
-	Static Function FromArgb(a As Byte, r As Byte, g As Byte, b As Byte) As Color
+	Static Function FromArgb(a As Byte, r As Byte, g As Byte, b As Byte)
 		Dim c As Color(a, r, g, b)
 		Return c
@@ -305,5 +297,10 @@
 	End Enum
 */
-	Static Function MakeARGB(a As Byte, r As Byte, g As Byte, b As Byte) As ARGB
+	' Assemble A, R, G, B values into a 32-bit integer
+Private
+	Static Function MakeARGB(/*IN*/ a As Byte,
+	                         /*IN*/ r As Byte,
+	                         /*IN*/ g As Byte,
+	                         /*IN*/ b As Byte) As ARGB
 		MakeARGB = (((b As ARGB) <<  Color_BlueShift) Or _
 		            ((g As ARGB) << Color_GreenShift) Or _
Index: /Include/Classes/System/Drawing/Point.ab
===================================================================
--- /Include/Classes/System/Drawing/Point.ab	(revision 30)
+++ /Include/Classes/System/Drawing/Point.ab	(revision 20)
@@ -4,5 +4,4 @@
 #define __SYSTEM_DRAWING_POINT_AB__
 
-#include <Classes/System/Drawing/PointF.ab>
 #include <Classes/System/Drawing/Size.ab>
 #include <Classes/System/Drawing/SizeF.ab>
@@ -65,17 +64,17 @@
 
 	Function Operator + (pt As Point) As Point
-		Return Add(This, pt)
+		Return Add(pt)
 	End Function
 
 	Function Operator + (sz As Size) As Point
-		Return Add(This, sz)
+		Return Add(sz)
 	End Function
 
 	Function Operator - (pt As Point) As Point
-		Return Substract(This, pt)
+		Return Substract(pt)
 	End Function
 
 	Function Operator - (sz As Size) As Point
-		Return Substract(This, sz)
+		Return Substract(sz)
 	End Function
 
@@ -88,11 +87,11 @@
 	End Function
 
-	Static Function Add(pt1 As Point, pt2 As Point) As Point
-		Dim ret As Point(pt1.x + pt2.x, pt1.y + pt2.y)
+	Function Add(pt As Point) As Point
+		Dim ret As Point(x + pt.x, y + pt.y)
 		Return ret
 	End Function
 
-	Static Function Add(pt As Point, sz As Size) As Point
-		Dim ret As Point(pt.x + sz.Width, pt.y + sz.Height)
+	Function Add(sz As Size) As Point
+		Dim ret As Point(x + sz.width, y + sz.height)
 		Return ret
 	End Function
@@ -100,19 +99,17 @@
 	Function Offset(pt As Point) As Point
 		Dim ret As Point(x + pt.x, y + pt.y)
+	End Function
+
+	Function Offset(dx As Long, dy As Long) As Point
+		Dim ret As Point(x + dx, y + dy)
+	End Function
+
+	Function Substract(pt As Point) As Point
+		Dim ret As Point(x - pt.x, y - pt.y)
 		Return ret
 	End Function
 
-	Sub Offset(dx As Long, dy As Long)
-		x += dx
-		y += dy
-	End Sub
-
-	Static Function Substract(pt1 As Point, pt2 As Point) As Point
-		Dim ret As Point(pt1.x - pt2.x, pt1.y - pt2.y)
-		Return ret
-	End Function
-
-	Static Function Substract(pt As Point, sz As Size) As Point
-		Dim ret As Point(pt.x - sz.Width, pt.y - sz.Height)
+	Function Substract(sz As Size) As Point
+		Dim ret As Point(x - sz.width, y - sz.height)
 		Return ret
 	End Function
Index: /Include/Classes/System/Drawing/PointF.ab
===================================================================
--- /Include/Classes/System/Drawing/PointF.ab	(revision 30)
+++ /Include/Classes/System/Drawing/PointF.ab	(revision 20)
@@ -58,31 +58,26 @@
 	End Sub
 
-	Function Operator () As PointF
-		Dim ptf As PointF(X, Y)
-		Return ptf
-	End Function
-
 	Function Operator + (pt As PointF) As PointF
-		Return Add(This, pt)
+		Return Add(pt)
 	End Function
 
 	Function Operator + (sz As Size) As PointF
-		Return Add(This, sz)
+		Return Add(sz)
 	End Function
 
 	Function Operator + (sz As SizeF) As PointF
-		Return Add(This, sz)
+		Return Add(sz)
 	End Function
 
 	Function Operator - (pt As PointF) As PointF
-		Return Substract(This, pt)
+		Return Substract(pt)
 	End Function
 
 	Function Operator - (sz As Size) As PointF
-		Return Substract(This, sz)
+		Return Substract(sz)
 	End Function
 
 	Function Operator - (sz As SizeF) As PointF
-		Return Substract(This, sz)
+		Return Substract(sz)
 	End Function
 
@@ -95,31 +90,31 @@
 	End Function
 
-	Static Function Add(pt1 As PointF, pt2 As PointF) As PointF
-		Dim ret As PointF(pt1.x + pt2.x, pt1.y + pt2.y)
+	Function Add(pt As PointF) As PointF
+		Dim ret As PointF(x + pt.x, y + pt.y)
 		Return ret
 	End Function
 
-	Static Function Add(pt As PointF, sz As Size) As PointF
-		Dim ret As PointF(pt.x + sz.Width, pt.y + sz.Height)
+	Function Add(sz As Size) As PointF
+		Dim ret As PointF(x + sz.width, y + sz.height)
 		Return ret
 	End Function
 
-	Static Function Add(pt As PointF, sz As SizeF) As PointF
-		Dim ret As PointF(pt.x + sz.Width, pt.y + sz.Height)
+	Function Add(sz As SizeF) As PointF
+		Dim ret As PointF(x + sz.width, y + sz.height)
 		Return ret
 	End Function
 
-	Static Function Substract((pt1 As PointF, pt2 As PointF) As PointF
-		Dim ret As PointF(pt1.x - pt2.x, pt1.y - pt2.y)
+	Function Substract(pt As PointF) As PointF
+		Dim ret As PointF(x - pt.x, y - pt.y)
 		Return ret
 	End Function
 
-	Static Function Substract(pt As PointF, sz As Size) As PointF
-		Dim ret As PointF(pt.x - sz.Width, pt.y - sz.Height)
+	Function Substract(sz As Size) As PointF
+		Dim ret As PointF(x - sz.width, y - sz.height)
 		Return ret
 	End Function
 
-	Static Function Substract(pt As PointF, sz As SizeF) As PointF
-		Dim ret As PointF(pt.x - sz.Width, pt.y - sz.Height)
+	Function Substract(sz As SizeF) As PointF
+		Dim ret As PointF(x - sz.width, y - sz.height)
 		Return ret
 	End Function
Index: /Include/Classes/System/Drawing/Rectangle.ab
===================================================================
--- /Include/Classes/System/Drawing/Rectangle.ab	(revision 30)
+++ /Include/Classes/System/Drawing/Rectangle.ab	(revision 20)
@@ -27,7 +27,7 @@
 	Sub Rectangle(location As Point, size As Size)
 		x = location.X
-		y = location.Y
+		y = lccation.Y
 		width = size.Height
-		height = size.Height
+		hegiht = size.Height
 	End Sub
 
@@ -35,5 +35,5 @@
 		x = rc.x
 		y = rc.y
-		width = rc.width
+		widht = rc.width
 		height = rc.height
 	End Sub
@@ -107,8 +107,8 @@
 
 	Function IsEmpty() As BOOL
-		If Width <= 0 Or Height <= 0 Then
-			IsEmpty = _System_TRUE
-		Else
-			IsEmpty = _System_FALSE
+		If Width <= Single_EPSILON Or Height <= Single_EPSILON Then
+			IsEmptyArea = _System_TRUE
+		Else
+			IsEmptyArea = _System_FALSE
 		End If
 	End Function
@@ -145,6 +145,6 @@
 
 	Static Function FromLTRB(l As Single, t As Single, r As Single, b As Single) As Rectangle
-		Dim rect As Rectangle(l, t, r - l, r - b)
-		return rect
+		Dim r As Rectangle(left, top, right - left, bottom - top)
+		return r
 	End Function
 
@@ -162,5 +162,5 @@
 
 	Function Contains(ByRef rc As Rectangle) As BOOL
-		If X <= rc.X And rc.Right <= Right And Y <= rc.Y And rc.Bottom <= Bottom Then
+		If X <= rc.X && rc.Right <= Right && Y <= rc.Y && rc.Bottom <= Bottom Then
 			ContainsRCF = _System_TRUE
 		Else
@@ -172,10 +172,14 @@
 		X -= dx
 		Y -= dy
-		Width += dx + dx
-		Height += dy + dy
+		Width = dx + dx
+		Height = dy + dy
 	End Sub
 
 	Sub Inflate(sz As Size)
 		Inflate(sz.Width, sz.Height)
+	End Sub
+
+	Sub Inflate(pt As Point)
+		Inflate(pt.X, pt.Y)
 	End Sub
 
@@ -185,7 +189,7 @@
 	End Function
 
-	Sub Intersect(ByRef rect As Rectangle)
-		This = Rectangle.Intersect(This, rect)
-	End Sub
+	Function Intersect(ByRef rect As Rectangle) As BOOL
+		Intersect = Intersect(This, This, rect)
+	End Function
 
 	Static Function Intersect(ByRef a As Rectangle, ByRef b As Rectangle) As Rectangle
@@ -195,5 +199,5 @@
 		left = Math.Min(a.Left, b.Left)
 		top = Math.Min(a.Top, b.Top)
-		Return Rectangle.FromLTRB(left, top, right, bottom)
+		Return FromLTRB(left, top, right, bottom)
 	End Function
 
@@ -211,8 +215,8 @@
 	Static Function Union(ByRef a As Rectangle, ByRef b As Rectangle) As Rectangle
 		Dim right As Single, bottom As Single, left As Single, top As Single
-		right = Math.Max(a.Right(), b.Right())
-		bottom = Math.Max(a.Bottom(), b.Bottom())
-		left = Math.Max(a.Left(), b.Left())
-		top = Math.Max(a.Top(), b.Top())
+		right = Math.Max(a.GetRight(), b.GetRight())
+		bottom = Math.Max(a.GetBottom(), b.GetBottom())
+		left = Math.Max(a.GetLeft(), b.GetLeft())
+		top = Math.Max(a.GetTop(), b.GetTop())
 		Return FromLTRB(left, top, right, bottom)
 	End Function
Index: /Include/Classes/System/Math.ab
===================================================================
--- /Include/Classes/System/Math.ab	(revision 30)
+++ /Include/Classes/System/Math.ab	(revision 20)
@@ -546,8 +546,8 @@
 					last = Sqrt
 					Sqrt = (x /Sqrt + Sqrt) * 0.5
-				Loop While Sqrt <> last
+				Loop While s <> last
 			End If
 		ElseIf x < 0 Then
-			Sqrt = _System_GetNaN()
+			Sqr = _System_GetNaN()
 		Else
 			'x = 0 Or NaN
Index: /Include/Classes/System/String.ab
===================================================================
--- /Include/Classes/System/String.ab	(revision 30)
+++ /Include/Classes/System/String.ab	(revision 20)
@@ -1,10 +1,10 @@
 Class String
-	m_Chars As LPSTR
-	m_Length As Long
 Public
+	Chars As LPSTR
+	Length As Long
 
 	Sub String()
-		m_Chars = _System_calloc(1)
-		m_Length = 0
+		Chars = _System_calloc(1)
+		Length = 0
 	End Sub
 
@@ -13,6 +13,6 @@
 		Assign(initStr)
 	End Sub
-
-/*	Sub String(ByRef initStr As String)
+/*
+	Sub String(ByRef initStr As String)
 		String()
 		Assign(initStr)
@@ -29,25 +29,17 @@
 
 	Sub ~String()
-		_System_free(m_Chars)
-		m_Chars = 0
+		_System_free(Chars)
+		Chars = 0
 #ifdef _DEBUG
-		m_Length = 0
+		Length = 0
 #endif
 	End Sub
 
-	Function Chars() As LPSTR
-		Return m_Chars
-	End Function
-
-	Function Length() As Long
-		Return m_Length
-	End Function
-
 	Function Operator() As LPSTR
-		Return m_Chars
+		Return Chars
 	End Function
 
 	Sub Operator = (ByRef objString As String)
-		Assign(objString.m_Chars, objString.m_Length)
+		Assign(objString.Chars, objString.Length)
 	End Sub
 
@@ -57,9 +49,9 @@
 
 	Function Operator[] (n As Long) As Byte
-		Return m_Chars[n]
+		Return Chars[n]
 	End Function
 
 	Sub Operator[]= (n As Long, c As Byte)
-		m_Chars[n] = c
+		Chars[n] = c
 	End Sub
 
@@ -69,5 +61,5 @@
 
 	Function Operator+ (ByRef objString As String) As String
-		Return Concat(objString, objString.m_Length)
+		Return Concat(objString, objString.Length)
 	End Function
 
@@ -173,18 +165,18 @@
 
 	Function StrPtr() As LPSTR
-		Return m_Chars
+		Return Chars
 	End Function
 
 	Sub ReSize(allocLength As Long)
 		If allocLength < 0 Then Exit Sub
-		If allocLength > m_Length Then
+		If allocLength > Length Then
 			Dim oldLength As Long
-			oldLength = m_Length
+			oldLength = Length
 			If AllocStringBuffer(allocLength) <> 0 Then
-				ZeroMemory(m_Chars + oldLength, m_Length - oldLength + 1)
+				ZeroMemory(Chars + oldLength, Length - oldLength + 1)
 			End If
 		Else
-			m_Length = allocLength
-			m_Chars[m_Length] = 0
+			Length = allocLength
+			Chars[Length] = 0
 		End If
 	End Sub
@@ -193,26 +185,26 @@
 		If allocLength < 0 Then
 			Exit Sub
-		ElseIf allocLength > m_Length Then
+		ElseIf allocLength > Length Then
 			Dim oldLength As Long
-			oldLength = m_Length
+			oldLength = Length
 			If AllocStringBuffer(allocLength) <> 0 Then
-				FillMemory(m_Chars + oldLength, m_Length - oldLength, c)
+				FillMemory(Chars + oldLength, Length - oldLength, c)
 			End If
 		Else
-			m_Length = allocLength
-		End If
-		m_Chars[m_Length] = 0
+			Length = allocLength
+		End If
+		Chars[Length] = 0
 	End Sub
 
 	Sub Assign(lpszText As LPSTR, textLength As Long)
-		If lpszText = m_Chars Then Exit Sub
+		If lpszText = Chars Then Exit Sub
 		If AllocStringBuffer(textLength) <> 0 Then
-			memcpy(m_Chars, lpszText, textLength)
-			m_Chars[m_Length] = 0
+			memcpy(Chars, lpszText, textLength)
+			Chars[Length] = 0
 		End If		
 	End Sub
 
 	Sub Assign(ByRef objString As String)
-		Assign(objString.m_Chars, objString.m_Length)
+		Assign(objString.Chars, objString.Length)
 	End Sub
 
@@ -221,7 +213,7 @@
 			Assign(lpszText, lstrlen(lpszText))
 		Else
-			'm_Chars=_System_realloc(m_Chars,1)
-			m_Chars[0] = 0
-			m_Length = 0
+			'Chars=_System_realloc(Chars,1)
+			Chars[0] = 0
+			Length = 0
 		End If
 	End Sub
@@ -229,8 +221,8 @@
 	Sub Append(lpszText As LPSTR, textLength As Long)
 		Dim prevLen As Long
-		prevLen = m_Length
-		If AllocStringBuffer(m_Length + textLength) <> 0 Then
-			memcpy(m_Chars + prevLen, lpszText, textLength)
-			m_Chars[m_Length] = 0
+		prevLen = Length
+		If AllocStringBuffer(Length + textLength) <> 0 Then
+			memcpy(Chars + prevLen, lpszText, textLength)
+			Chars[Length] = 0
 		End If
 	End Sub
@@ -241,5 +233,5 @@
 
 	Sub Append(ByRef str As String)
-		Append(str.m_Chars, str.m_Length)
+		Append(str.Chars, str.Length)
 	End Sub
 
@@ -247,8 +239,8 @@
 		Dim tempString As String
 		With tempString
-			.AllocStringBuffer(This.m_Length + textLength)
-			memcpy(.m_Chars, This.m_Chars, This.m_Length)
-			memcpy(.m_Chars + This.m_Length, lpszText, textLength)
-			.m_Chars[.m_Length] = 0
+			.AllocStringBuffer(This.Length + textLength)
+			memcpy(.Chars, This.Chars, This.Length)
+			memcpy(.Chars + This.Length, lpszText, textLength)
+			.Chars[.Length] = 0
 		End With
 		Return tempString
@@ -256,5 +248,5 @@
 
 	Function Contains(ByRef objString As String) As BOOL
-		If IndexOf(objString, 0, m_Length) >= 0 Then
+		If IndexOf(objString, 0, Length) >= 0 Then
 			Return _System_TRUE
 		Else
@@ -264,5 +256,5 @@
 
 	Function Contains(lpszText As LPSTR) As BOOL
-		If IndexOf(lpszText, 0, m_Length) >= 0 Then
+		If IndexOf(lpszText, 0, Length) >= 0 Then
 			Return _System_TRUE
 		Else
@@ -272,9 +264,9 @@
 
 	Function IndexOf(lpszText As LPSTR) As Long
-		Return IndexOf(lpszText, 0, m_Length)
+		Return IndexOf(lpszText, 0, Length)
 	End Function
 
 	Function IndexOf(lpszText As LPSTR, startIndex As Long) As Long
-		Return IndexOf(lpszText, startIndex, m_Length - startIndex)
+		Return IndexOf(lpszText, startIndex, Length - startIndex)
 	End Function
 
@@ -284,6 +276,6 @@
 
 		If startIndex < 0 Then Return -1
-		If count < 1 Or count + startIndex > m_Length Then Return -1
-		If length > m_Length Then Return -1
+		If count < 1 Or count + startIndex > Length Then Return -1
+		If length > Length Then Return -1
 
 		If length = 0 Then Return startIndex
@@ -292,5 +284,5 @@
 		For i = startIndex To startIndex + count - 1
 			For j = 0 To length - 1
-				If m_Chars[i + j] = lpszText[j] Then
+				If Chars[i + j] = lpszText[j] Then
 					If j = length - 1 Then Return i
 				Else
@@ -303,5 +295,5 @@
 
 	Function LastIndexOf(lpszText As LPSTR) As Long
-		Return LastIndexOf(lpszText, m_Length - 1, m_Length)
+		Return LastIndexOf(lpszText, Length - 1, Length)
 	End Function
 
@@ -314,7 +306,7 @@
 		length = lstrlen(lpszText)
 
-		If startIndex < 0 Or startIndex > m_Length - 1 Then Return -1
+		If startIndex < 0 Or startIndex > Length - 1 Then Return -1
 		If count < 1 Or count > startIndex + 2 Then Return -1
-		If length > m_Length Then Return -1
+		If length > Length Then Return -1
 
 		If length = 0 Then Return startIndex
@@ -323,5 +315,5 @@
 		For i = startIndex To  startIndex - count + 1 Step -1
 			For j = length - 1 To 0 Step -1
-				If m_Chars[i + j] = lpszText[j] Then
+				If Chars[i + j] = lpszText[j] Then
 					If j = 0 Then Return i
 				Else
@@ -342,5 +334,5 @@
 
 	Function EndsWith(lpszText As LPSTR) As BOOL
-		If LastIndexOf(lpszText) = m_Length - lstrlen(lpszText) Then
+		If LastIndexOf(lpszText) = Length - lstrlen(lpszText) Then
 			Return _System_TRUE
 		Else
@@ -353,62 +345,62 @@
 		length = lstrlen(lpszText)
 
-		If startIndex < 0 Or startIndex > m_Length Then Return -1
+		If startIndex < 0 Or startIndex > Length Then Return -1
 
 		Dim newChars As LPSTR
-		newChars = _System_malloc(length + m_Length + 1)
+		newChars = _System_malloc(length + Length + 1)
 		If newChars = 0 Then Return -1
 
-		memcpy(newChars, m_Chars, startIndex)
+		memcpy(newChars, Chars, startIndex)
 		memcpy(newChars + startIndex, lpszText, length)
-		memcpy(newChars + startIndex + length, m_Chars + startIndex, m_Length - startIndex + 1)
-
-		_System_free(m_Chars)
-		m_Chars = newChars
-		m_Length = length + m_Length
-		Return m_Length
+		memcpy(newChars + startIndex + length, Chars + startIndex, Length - startIndex + 1)
+
+		_System_free(Chars)
+		Chars = newChars
+		Length = length + Length
+		Return Length
 	End Function
 
 	Function SubString(startIndex As Long) As String
-		Return SubString(startIndex, m_Length - startIndex)
+		Return SubString(startIndex, Length - startIndex)
 	End Function
 
 	Function SubString(startIndex As Long, length As Long) As String
 		If startIndex < 0 Or length <= 0 Then Return ""
-		If startIndex + length > m_Length Then Return ""
+		If startIndex + length > Length Then Return ""
 
 		Dim temp As String
 		temp.AllocStringBuffer(length)
-		memcpy(temp.m_Chars, VarPtr(m_Chars[startIndex]), length)
-		m_Chars[m_Length] = 0
+		memcpy(temp.Chars, VarPtr(Chars[startIndex]), length)
+		Chars[Length] = 0
 		Return temp
 	End Function
 
 	Function Remove(startIndex As Long) As Long
-		If startIndex < 0 Or startIndex > m_Length Then Return -1
-		m_Chars[startIndex] = 0
-		m_Length = startIndex
-		Return m_Length
+		If startIndex < 0 Or startIndex > Length Then Return -1
+		Chars[startIndex] = 0
+		Length = startIndex
+		Return Length
 	End Function
 
 	Function Remove(startIndex As Long, count As Long) As Long
 		If startIndex < 0 Or count < 0 Then Return -1
-		If startIndex + count > m_Length Then Return -1
+		If startIndex + count > Length Then Return -1
 
 		Dim newChars As LPSTR
-		newChars = _System_malloc(m_Length - count + 1)
+		newChars = _System_malloc(Length - count + 1)
 		If newChars = 0 Then Return -1
 
-		memcpy(newChars, m_Chars, startIndex)
-		memcpy(newChars + startIndex, m_Chars + startIndex + count, m_Length - startIndex - count)
-		newChars[m_Length - count] = 0
-
-		_System_free(m_Chars)
-		m_Chars = newChars
-		m_Length = m_Length - count
-		Return m_Length
+		memcpy(newChars, Chars, startIndex)
+		memcpy(newChars + startIndex, Chars + startIndex + count, Length - startIndex - count)
+		newChars[Length - count] = 0
+
+		_System_free(Chars)
+		Chars = newChars
+		Length = Length - count
+		Return Length
 	End Function
 
 	Function IsNullOrEmpty() As BOOL
-		If m_Length = 0 Then
+		If Length = 0 Then
 			Return _System_TRUE
 		Else
@@ -419,7 +411,7 @@
 	Sub Replace(oldChar As Byte, newChar As Byte)
 		Dim i As Long
-		For i = 0 To ELM(m_Length)
-			If m_Chars[i] = oldChar Then
-				m_Chars[i] = newChar
+		For i = 0 To ELM(Length)
+			If Chars[i] = oldChar Then
+				Chars[i] = newChar
 			End If
 		Next
@@ -427,5 +419,5 @@
 
 	Sub Replace(ByRef oldStr As String, ByRef newStr As String)
-		Replace(oldStr, oldStr.m_Length, newStr, newStr.m_Length)
+		Replace(oldStr, oldStr.Length, newStr, newStr.Length)
 	End Sub
 
@@ -444,9 +436,9 @@
 					Exit Do
 				End If
-				.Append(m_Chars + current, pos - current)
+				.Append(Chars + current, pos - current)
 				.Append(newStr, newLen)
 				current = pos + oldLen
 			Loop
-			.Append(m_Chars + current, m_Length - current)
+			.Append(Chars + current, Length - current)
 		End With
 		Swap(tempString)
@@ -454,9 +446,9 @@
 
 	Sub ToLower()
-		CharLower(m_Chars)
+		CharLower(Chars)
 	End Sub
 
 	Sub ToUpper()
-		CharUpper(m_Chars)
+		CharUpper(Chars)
 	End Sub
 
@@ -464,10 +456,10 @@
 		Dim tempLen As Long
 		Dim tempChars As PSTR
-		tempLen = x.m_Length
-		tempChars = x.m_Chars
-		x.m_Length = This.m_Length
-		x.m_Chars = This.m_Chars
-		This.m_Length = tempLen
-		This.m_Chars = tempChars
+		tempLen = x.Length
+		tempChars = x.Chars
+		x.Length = This.Length
+		x.Chars = This.Chars
+		This.Length = tempLen
+		This.Chars = tempChars
 	End Sub
 
@@ -477,13 +469,13 @@
 		If textLength < 0 Then
 			Return 0
-		ElseIf textLength > m_Length Then
-			AllocStringBuffer = _System_realloc(m_Chars, textLength + 1)
+		ElseIf textLength > Length Then
+			AllocStringBuffer = _System_realloc(Chars, textLength + 1)
 			If AllocStringBuffer <> 0 Then
-				m_Length = textLength
-				m_Chars = AllocStringBuffer
+				Length = textLength
+				Chars = AllocStringBuffer
 			End If
 		Else
-			m_Length = textLength
-			AllocStringBuffer = m_Chars
+			Length = textLength
+			AllocStringBuffer = Chars
 		End If
 	End Function
Index: /Include/api_winsock2.sbp
===================================================================
--- /Include/api_winsock2.sbp	(revision 30)
+++ /Include/api_winsock2.sbp	(revision 20)
@@ -238,8 +238,4 @@
 Const INADDR_ANY = &h0
 
-Declare Function htons Lib "ws2_32.dll" (netshort As Word) As Word 
-Declare Function htonl Lib "ws2_32.dll" (netshort As DWord)  As DWord 
-Declare Function ntohs Lib "ws2_32.dll" (netshort As Word) As Word 
-Declare Function ntohl Lib "ws2_32.dll" (netshort As DWord)  As DWord
 
 #endif '_INC_WINSOCK2
Index: /Include/basic/command.sbp
===================================================================
--- /Include/basic/command.sbp	(revision 30)
+++ /Include/basic/command.sbp	(revision 20)
@@ -35,5 +35,5 @@
 
 Macro EXEC(lpFilePath As *Byte)(lpCmdLine As *Byte)
-	ShellExecute(0,"open",lpFilePath,lpCmdLine,0,SW_SHOWNORMAL)
+	ShellExecute(0, "open", lpFilePath, lpCmdLine, 0, SW_SHOWNORMAL)
 End Macro
 
@@ -56,17 +56,17 @@
 '----------------
 
-Macro MSGBOX(hWnd As HWND, lpStr As String)(lpTitle As String, BoxType As DWord, ByRef retAns As DWord)
+Macro MSGBOX(hWnd As HWND, ByRef str As String)(ByRef title As String, boxType As DWord, ByRef retAns As DWord)
 	If VarPtr(retAns) Then
-		retAns=MessageBox(hWnd,lpStr,lpTitle,BoxType)
+		retAns = MessageBox(hWnd, str, title, boxType)
 	Else
-		MessageBox(hWnd,lpStr,lpTitle,BoxType)
+		MessageBox(hWnd, str, title, boxType)
 	End If
 End Macro
 
-Macro WINDOW(ByRef hWnd As Long, hOwner As Long, x As Long, y As Long, nWidth As Long, nHeight As Long, lpTitle As String, dwStyle As DWord)(lpClass As String, id As DWord, lpFunc As DWord, dwExStyle As DWord)
+Macro WINDOW(ByRef hWnd As Long, hOwner As HWND, x As Long, y As Long, nWidth As Long, nHeight As Long, ByRef title As String, dwStyle As DWord)(ByRef className As String, id As DWord, lpFunc As DWord, dwExStyle As DWord)
 	If VarPtr(hWnd) Then
-		hWnd=CreateWindowEx(dwExStyle,lpClass,lpTitle,dwStyle,x,y,nWidth,nHeight,hOwner,id,GetModuleHandle(0),NULL)
+		hWnd = CreateWindowEx(dwExStyle, className.Chars, title, dwStyle, x, y, nWidth, nHeight, hOwner, id, GetModuleHandle(0), NULL)
 	Else
-		CreateWindowEx(dwExStyle,lpClass,lpTitle,dwStyle,x,y,nWidth,nHeight,hOwner,id,GetModuleHandle(0),NULL)
+		CreateWindowEx(dwExStyle, className.Chars, title, dwStyle, x, y, nWidth, nHeight, hOwner, id, GetModuleHandle(0), NULL)
 	End If
 End Macro
@@ -76,26 +76,28 @@
 End Macro
 
-Macro INSMENU(hMenu As HMENU, PosID As Long, flag As Long)(lpString As String, id As Long, hSubMenu As HMENU, state As Long)
+Macro INSMENU(hMenu As HMENU, PosID As Long, flag As Long)(ByRef str As String, id As Long, hSubMenu As HMENU, state As Long)
 	Dim mii As MENUITEMINFO
 
-	FillMemory(VarPtr(mii),Len(mii),0)
-	mii.cbSize=Len(mii)
-	mii.fMask=MIIM_TYPE
-
-	If lpString.Length=0 Then
-		mii.fType=MFT_SEPARATOR
-	Else
-		mii.fType=MFT_STRING
-		mii.fMask=mii.fMask or MIIM_STATE or MIIM_ID
-		mii.dwTypeData=StrPtr(lpString)
-		mii.wID=id
-		If hSubMenu Then
-			mii.fMask=mii.fMask or MIIM_SUBMENU
-			mii.hSubMenu=hSubMenu
+	ZeroMemory(VarPtr(mii), Len(mii))
+	With mii
+		.cbSize = Len(mii)
+		.fMask = IIM_TYPE
+
+		If str.Length = 0 Then
+			.fType = MFT_SEPARATOR
+		Else
+			.fType  = MFT_STRING
+			.fMask = .fMask or MIIM_STATE or MIIM_ID
+			.dwTypeData = str.Chars
+			.wID = id
+			If hSubMenu Then
+				.fMask = .fMask or MIIM_SUBMENU
+				.hSubMenu = hSubMenu
+			End If
+			.fState = state
 		End If
-		mii.fState=state
-	End If
-
-	InsertMenuItem(hMenu,PosID,flag,mii)
+	End With
+
+	InsertMenuItem(hMenu, PosID, flag, mii)
 End Macro
 
@@ -105,11 +107,12 @@
 '--------------
 
-Dim _System_hFile(255) As Long
-Macro OPEN(lpFileName As String, AccessFor As Long, FileNumber As Long)
+Dim _System_hFile[255] As HANDLE
+
+Macro OPEN(ByRef fileName As String, AccessFor As Long, FileNumber As Long)
 	Dim dwAccess As Long
 	Dim bAppend As Long
 	Dim dwCreationDisposition As Long
 
-	FileNumber=FileNumber-1
+	FileNumber--
 
 	bAppend=0
@@ -130,14 +133,15 @@
 	End Select
 
-	_System_hFile(FileNumber)=CreateFile(lpFileName,dwAccess,0,ByVal NULL,dwCreationDisposition,FILE_ATTRIBUTE_NORMAL,NULL)
-
-	If bAppend Then SetFilePointer(_System_hFile(FileNumber),0,NULL,FILE_END)
-End Macro
+	_System_hFile[FileNumber] = CreateFile(fileName, dwAccess, 0, ByVal 0, dwCreationDisposition, FILE_ATTRIBUTE_NORMAL, 0)
+
+	If bAppend Then SetFilePointer(_System_hFile[FileNumber], 0, 0, FILE_END)
+End Macro
+
 Macro CLOSE()(FileNumber As Long)
-	FileNumber=FileNumber-1
+	FileNumber--
 
 	If _System_hFile(FileNumber) Then
-		CloseHandle(_System_hFile(FileNumber))
-		_System_hFile(FileNumber)=0
+		CloseHandle(_System_hFile[FileNumber])
+		_System_hFile(FileNumber) = 0
 	End If
 End Macro
@@ -147,5 +151,5 @@
 Dim _System_InputDataType[_System_MAX_PARMSNUM] As DWord
 Sub INPUT_FromFile(FileNumber As Long)
-	Dim i As Long ,i2 As Long, i3 As Long
+	Dim i As Long, i2 As Long, i3 As Long
 	Dim buffer As String
 	Dim temp[1] As Byte
@@ -153,5 +157,5 @@
 	Dim IsStr As Long
 
-	FileNumber=FileNumber-1
+	FileNumber--
 
 	buffer=ZeroString(GetFileSize(_System_hFile[FileNumber],0))
@@ -173,5 +177,5 @@
 		IsStr=0
 		While 1
-			i3=i3+1
+			i3++
 
 			i2=ReadFile(_System_hFile[FileNumber],temp,1,VarPtr(dwAccessBytes),ByVal 0)
@@ -197,5 +201,5 @@
 						If dwAccessBytes=0 Then Exit While
 						If temp[0]=Asc(",") Then Exit While
-						If Not(temp[0]=32 or temp[0]=9) Then
+						If temp[0] <> 32 And temp[0] <> 9 Then
 							SetFilePointer(_System_hFile[FileNumber],-1,0,FILE_CURRENT)
 							Exit While
@@ -227,12 +231,8 @@
 				Dim pTempStr As *String
 				pTempStr=_System_InputDataPtr[i] As *String
-
-				pTempStr->Length=i3
-				pTempStr->Chars=_System_realloc(pTempStr->Chars,pTempStr->Length+1)
-				memcpy(pTempStr->Chars,buffer.Chars,pTempStr->Length)
-				pTempStr->Chars[pTempStr->Length]=0
+				pTempStr->Assign(buffer.Chars, i3)
 		End Select
 
-		i=i+1
+		i++
 		If _System_InputDataPtr[i]=0 Then Exit While
 	Wend
@@ -241,5 +241,5 @@
 Sub PRINT_ToFile(FileNumber As Long, buf As String)
 	Dim dwAccessByte As DWord
-	FileNumber=FileNumber-1
+	FileNumber--
 
 	WriteFile(_System_hFile(FileNumber),buf,Len(buf),VarPtr(dwAccessByte),ByVal NULL)
@@ -263,6 +263,6 @@
 			buffer[i3]=UsingStr[i2]
 			If UsingStr[i2]=0 Then Exit While
-			i2=i2+1
-			i3=i3+1
+			i2++
+			i3++
 		Wend
 
@@ -274,5 +274,5 @@
 
 			Dim length_num As Long, length_buf As Long
-			Dim dblRoundOff=0 As Double
+			Dim dblRoundOff = 0 As Double
 
 
@@ -283,12 +283,12 @@
 			i4=i2
 			While UsingStr[i4]=Asc("#")
-				i4=i4+1
+				i4++
 			Wend
 			If UsingStr[i4]=Asc(".") Then
-				i4=i4+1
+				i4++
 
 				dblRoundOff=0.5
 				While UsingStr[i4]=Asc("#")
-					i4=i4+1
+					i4++
 					dblRoundOff=dblRoundOff/10
 				Wend
@@ -304,10 +304,10 @@
 
 			'符号が有る場合は、一文字分のスペースを考慮する
-			If sign Then length_num=length_num+1
+			If sign Then length_num++
 
 			length_buf=0
 			Do
-				i2=i2+1
-				length_buf=length_buf+1
+				i2++
+				length_buf++
 			Loop While UsingStr[i2]=Asc("#")
 
@@ -315,11 +315,11 @@
 				'通常時
 				FillMemory(StrPtr(buffer)+i3,length_buf-length_num,Asc(" "))
-				i3=i3+(length_buf-length_num)
+				i3 += length_buf - length_num
 
 				If sign Then
 					buffer[i3]=Asc("-")
-					i3=i3+1
-
-					length_num=length_num-1
+					i3++
+
+					length_num--
 				End If
 
@@ -330,15 +330,15 @@
 				End If
 
-				i3=i3+length_num
+				i3 += length_num
 			Else
 				'表示桁が足りないとき
 				FillMemory(StrPtr(buffer)+i3,length_buf,Asc("#"))
-				i3=i3+length_buf
+				i3 += length_buf
 			End If
 
 			If UsingStr[i2]=Asc(".") Then
 				buffer[i3]=UsingStr[i2]
-				i2=i2+1
-				i3=i3+1
+				i2++
+				i3++
 
 				i4=dec
@@ -349,25 +349,25 @@
 						buffer[i3]=temp2[i4]
 					End If
-					i3=i3+1
-					i4=i4+1
-
-					i2=i2+1
+					i3++
+					i4++
+
+					i2++
 				Wend
 			End If
 		ElseIf UsingStr[i2]=Asc("@") Then
-			i2=i2+1
+			i2++1
 
 			lstrcat(StrPtr(buffer)+i3,_System_UsingStrData[ParmNum])
-			i3=i3+lstrlen(_System_UsingStrData[ParmNum])
+			i3 += lstrlen(_System_UsingStrData[ParmNum])
 		ElseIf UsingStr[i2]=Asc("&") Then
 			i4=0
 			Do
-				i4=i4+1
-				i2=i2+1
+				i4++
+				i2++
 			Loop While UsingStr[i2]=Asc(" ")
 
 			If UsingStr[i2]=Asc("&") Then
-				i4=i4+1
-				i2=i2+1
+				i4++
+				i2++
 				i5=lstrlen(_System_UsingStrData[ParmNum])
 				If i4<=i5 Then
@@ -377,24 +377,25 @@
 				End If
 				memcpy(StrPtr(buffer)+i3,_System_UsingStrData[ParmNum],i5)
-				i3=i3+i4
+				i3 += i4
 			Else
-				i2=i2-i4
+				i2 -= i4
 				buffer[i3]=Asc("&")
-				i2=i2+1
-				i3=i3+1
+				i2++
+				i3++
 				Continue
 			End If
 		End If
 
-		ParmNum=ParmNum+1
+		ParmNum++
 	Wend
 
 	_System_GetUsingFormat=Left$(buffer,lstrlen(buffer))
 End Function
+
 Sub PRINTUSING_ToFile(FileNumber As Long, UsingStr As String)
 	Dim dwAccessByte As DWord
 	Dim buf As String
 
-	FileNumber=FileNumber-1
+	FileNumber--
 	buf=_System_GetUsingFormat(UsingStr)
 
@@ -403,14 +404,16 @@
 
 Dim _System_FieldSize(255) As Long
+
 Macro FIELD(FileNumber As Long, FieldSize As Long)
-	FileNumber=FileNumber-1
+	FileNumber--
 
 	_System_FieldSize(FileNumber)=FieldSize
 End Macro
+
 Macro GET(FileNumber As Long, RecodeNumber As Long, ByRef lpBuffer As String)
 	Dim dwAccessByte As Long
 
-	FileNumber=FileNumber-1
-	RecodeNumber=RecodeNumber-1
+	FileNumber--
+	RecodeNumber--
 
 	SetFilePointer(_System_hFile(FileNumber),RecodeNumber*_System_FieldSize(FileNumber),NULL,FILE_BEGIN)
@@ -421,9 +424,10 @@
 	End If
 End Macro
+
 Macro PUT(FileNumber As Long, RecodeNumber As Long, ByRef lpBuffer As String)
 	Dim dwAccessByte As Long
 
-	FileNumber=FileNumber-1
-	RecodeNumber=RecodeNumber-1
+	FileNumber--
+	RecodeNumber--
 
 	SetFilePointer(_System_hFile(FileNumber),RecodeNumber*_System_FieldSize(FileNumber),NULL,FILE_BEGIN)
@@ -431,11 +435,13 @@
 End Macro
 
-Macro CHDIR(path As String)
+Macro CHDIR(ByRef path As String)
 	SetCurrentDirectory(path)
 End Macro
-Macro MKDIR(path As String)
+
+Macro MKDIR(ByRef path As String)
 	CreateDirectory(path,ByVal 0)
 End Macro
-Macro KILL(path As String)
+
+Macro KILL(ByRef path As String)
 	DeleteFile(path)
 End Macro
Index: /Include/basic/function.sbp
===================================================================
--- /Include/basic/function.sbp	(revision 30)
+++ /Include/basic/function.sbp	(revision 20)
@@ -769,5 +769,5 @@
 			i64data=1
 			While i>=2
-				Val += (i64data*TempPtr[i]) As Double
+				Val += i64data*TempPtr[i]
 
 				i64data *= &H10
@@ -957,5 +957,5 @@
 	Loop
 	If dir Then dir[i3]=0
-	i3 += i-i2
+	i3 += ii-i2
 
 	'ファイル名をコピー
Index: /Include/system/enum.sbp
===================================================================
--- /Include/system/enum.sbp	(revision 30)
+++ /Include/system/enum.sbp	(revision 20)
@@ -18,11 +18,3 @@
 		Return m_Value
 	End Function
-
-	Function Operator == (Value As Long) As Long
-		If m_Value = Value Then
-			Return _System_TRUE
-		Else
-			Return _System_FALSE
-		End If
-	End Function
 End Class
