All parameters are passed by reference. This means that when an item is passed as a parameter, a reference to the item is passed, not a copy of the item’s value. This has implications if you alter the value of the item that has been passed as a parameter. For example, if you pass a window field as an in parameter to a procedure and then alter the field’s value directly in the window, the value of the in parameter in the procedure will have changed.
When a value is passed into a procedure, you may want to pass the parameter in a call to another procedure. There are restrictions on the type of parameters that you can pass to other procedures. The following is a list of the types of parameter passing that are allowed.
These cases are summarized in the following illustration.