Reflection is not easy the first time ;)
It can work like this (this is just one of many possible ways):
Dim typeName = "Q12008"
Dim t As Type = Type.GetTypeFromProgID(typeName)
Dim x As Object = Activator.CreateInstance(t)
Dim flags As BindingFlags = BindingFlags.IgnoreCase Or BindingFlags.Instance Or BindingFlags.InvokeMethod Or BindingFlags.Public
Dim myParam As Object = "hello world"
Dim arguments As Object() = {myParam}
Dim pm As ParameterModifier() = {New ParameterModifier(1)}
pm(0)(0) = False ' false for input param, true for output param
t.InvokeMember("DoThisProcedure", flags, Nothing, x, arguments, pm, Nothing, Nothing)
See .. its simple ;)
JK