AddEnumValue(name, value)
Adds new Enum Name to MfEnum derived class that represents an instance of MfEnum.EnumItem.
name
the name of the new MfEnum to add to derived class. Can be MfString or var containing string value.
value
the numeric value for to for the instance of MfEnum.EnumItem. Can be MfInteger or var containing integer value.
Each name represents an object instance of MfEnum.EnumItem.
Each name adds a new Property of name that is an instance of MfEnum.EnumItem.
This method is intended to be used as a Protected method in derived classes.
However if called directly on a class derived from MfEnum then it would add new enum to the instance.
This method is usually called inside of the AddEnums method of derived classes.
Protected Method
Throws MfArgumentNullException if name is null.
Throws MfArgumentException if name is not a string var.
Throws MfException with innerException if any other errors occur.
; create a new enumeration class by inheriting/extending the MfEnum
class RegOptEnum extends MfEnum
{
static m_Instance := MfNull.Null
__New(args*)
{
if (this.base.__Class != "RegOptEnum")
{
throw new MfNotSupportedException(MfEnvironment.Instance.GetResourceString("NotSupportedException_Sealed_Class"
,"RegOptEnum"))
}
base.__New(args*)
; set MfObject m_isInherited flag for testing if Class is inherited/extended if needed
; This could be set to false as this class cannot be inherited/extended as set in this constructor above
; but will do it the standard way.
this.m_isInherited := this.__Class != "RegOptEnum"
}
; override the base AddEnums, this is required
; add all the enum values for your enum here
AddEnums() {
this.AddEnumValue("RegDword", 0)
this.AddEnumValue("KeysRegDword", 1)
this.AddEnumValue("RegSz", 2)
this.AddEnumValue("KeysRegSz", 3)
this.AddEnumValue("RegBinary", 4)
this.AddEnumValue("KeysRegBinary", 5)
this.AddEnumValue("AutoresponseRegSz", 6)
this.AddEnumValue("KeysAutoresponseRegSz", 7)
this.AddEnumValue("AutoupdateRegSz", 8)
this.AddEnumValue("KeysAutoupdateRegSz", 9)
this.AddEnumValue("AutoupdateRegBinary", 10)
this.AddEnumValue("KeysAutoupdateRegBinary", 11)
this.AddEnumValue("KeypathsRegSz", 12)
this.AddEnumValue("KeysKeypathsRegSz", 13)
this.AddEnumValue("KeypathsRegDword", 14)
this.AddEnumValue("KeysKeypathsRegDword", 15)
this.AddEnumValue("WindowplacementRegBinary", 16)
this.AddEnumValue("KeysWindowplacementRegBinary", 17)
}
; override the base DestroyInstance, this is required
DestroyInstance() {
RegOptEnum.m_Instance := Null
}
; override the base GetInstance, this is required
; Get a static default instance, create if not exist yet
GetInstance() {
if (MfNull.IsNull(RegOptEnum.m_Instance))
{
RegOptEnum.m_Instance := new RegOptEnum(0)
}
return RegOptEnum.m_Instance
}
}