Class EnumBase
Protected
	value As Long
	lpszName As LPTSTR
Public
	Sub EnumBase(value As Long,lpszName As LPTSTR)
		This.value = value
		This.lpszName = lpszName
	End Sub

	Sub ~EnumBase()
	End Sub

	Override Function ToString() As String
		Return New String( lpszName )
	End Function

	Sub Copy(obj As EnumBase)
		This.value = obj.value
		This.lpszName = obj.lpszName
	End Sub

	Function Operator() As Long
		Return This.value
	End Function

	Function Operator == (value As Long) As Boolean
		If This.value = value Then
			Return True
		Else
			Return False
		End If
	End Function

	Function Operator == (enumBase As EnumBase) As Boolean
		If This.value = enumBase.value Then
			Return True
		Else
			Return False
		End If
	End Function
/*
	Function Operator or (enumBase As EnumBase) As EnumBase
		Return New EnumBase(This.value Or enumBase.value)
	End Function

	Function Operator and (enumBase As EnumBase) As EnumBase
		Return New EnumBase(This.value And enumBase.value)
	End Function

	Function Operator xor (enumBase As EnumBase) As EnumBase
		Return New EnumBase(This.value Xor enumBase.value)
	End Function
*/
End Class
