[475]  1  Class EnumBase<T As EnumBase>


[1]  2  Protected


[210]  3  value As Long


[282]  4  lpszName As LPTSTR


[1]  5  Public


[282]  6  Sub EnumBase(value As Long,lpszName As LPTSTR)


[210]  7  This.value = value


 8  This.lpszName = lpszName


[1]  9  End Sub


[282]  10 


[446]  11  Sub EnumBase( enumBase As EnumBase )


 12  This.value = enumBase.value


 13  This.lpszName = enumBase.lpszName


 14  End Sub


 15 


[1]  16  Sub ~EnumBase()


 17  End Sub


 18 


[210]  19  Override Function ToString() As String


 20  Return New String( lpszName )


 21  End Function


[1]  22 


[210]  23  Sub Copy(obj As EnumBase)


 24  This.value = obj.value


 25  This.lpszName = obj.lpszName


[1]  26  End Sub


[282]  27 


[396]  28  Function Operator() As Int64


 29  Return This.value


 30  End Function


[1]  31  Function Operator() As Long


[210]  32  Return This.value


[1]  33  End Function


[396]  34  Function Operator() As DWord


 35  Return This.value


 36  End Function


 37  Function Operator() As Boolean


 38  Return ( This.value <> 0 )


 39  End Function


[26]  40 


[210]  41  Function Operator == (value As Long) As Boolean


[475]  42  Return ( This.value = value )


[26]  43  End Function


[131]  44 


[475]  45  Function Operator == (enumObj As T) As Boolean


 46  Return ( This.value = enumObj.value )


[131]  47  End Function


[396]  48 


[406]  49  Function Operator <> (value As Long) As Boolean


 50  Return Not( This = value)


 51  End Function


 52 


[475]  53  Function Operator <> (enumObj As T) As Boolean


 54  Return Not( This = enumObj)


[406]  55  End Function


 56 


[475]  57  Function Operator or (enumObj As T) As T


 58  Return New EnumBase( This.value or enumObj.value, This.lpszName )


[406]  59  End Function


 60 


[475]  61  Function Operator and (enumObj As T) As T


 62  Return New EnumBase( This.value and enumObj.value, This.lpszName )


[406]  63  End Function


[210]  64  End Class

