Interface IProcedureInvoker
The execution engine's side of a procedure call: runs the source code of a procedure declared in the workspace.
public interface IProcedureInvoker
Remarks
A CallableBindingHandle knows which procedure it stands for, not how to run it: running it takes an activation of the procedure, a ICallStackFrame pushed on the session's call stack, and the executor that steps through the procedure's statements. An invoker is what a runtime provides for that, once, for the procedures of a session.
Methods
Invoke(VBTypeMemberSymbol, ISymbolResolver, IRuntimeValue[])
Runs procedure with the specified arguments, and returns the outcome of the call.
RuntimeSemanticsEvaluationResult Invoke(VBTypeMemberSymbol procedure, ISymbolResolver resolver, IRuntimeValue[] arguments)
Parameters
procedureVBTypeMemberSymbolThe
Sub,Functionor property accessor to run.resolverISymbolResolverA read-only interface over the current execution context.
argumentsIRuntimeValue[]The arguments of the call, in the order of the parameter list of the procedure. For a member of a class, the first argument is the object the member is invoked on, which is the procedure's
Me(RD-VBAL:Meis the implicit parameter at index0of the parameter list of every member). An argument passedByRefis a VBRuntimeReference.
Returns
- RuntimeSemanticsEvaluationResult
A successful result with the value the procedure returns - the
Voidvalue, for aSub- or the run-time error that was raised in the procedure, and that nothing handled. Never throws for an error of the running program.