/''
 ' This example shows how you can simulate getting a class method pointer, 
 ' until support is properly implemented in the compiler.
 '
 ' When this is supported, you will only need to remove the static wrapper
 ' function presented here, to maintain compatibility. 
 '/

type MyFavoriteType
	
	declare function myFavoriteMethod(byval number as integer) as integer
	declare static function myFavoriteMethod(byref this as MyFavoriteType, byval number as integer) as integer
	
	dim as integer myFavoriteNumber = 420
	
end type

function MyFavoriteType.myFavoriteMethod(byval number as integer) as integer

	return myFavoriteNumber + number

end function

function MyFavoriteType.myFavoriteMethod(byref this as MyFavoriteType, byval number as integer) as integer

	return this.myFavoriteMethod(number)

end function

dim methodPointer as function(byref as MyFavoriteType, byval as integer) as integer
methodPointer = ProcPtr(MyFavoriteType.myFavoriteMethod)

dim as MyFavoriteType obj

print methodPointer(obj, 69) '' prints 489
