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