David,
You are only partially correct here.
You can have a method in a custom class DLL
which creates a visual object as in:
oform= createobject("myform")
return oform
But you CANNOT invoke any visual aspect
of those objects.
Everything makes sense in someone's mind
public class SystemCrasher :ICrashable
In addition, an integer field is not for irrational people