pCall


include vmm.inc

pCall Procedure
pCall Procedure, Param1
pCall Procedure, <Param1, Param2, Param3, ..., ParamN>

Pushes the specified parameters on the stack and calls the specified procedure. The called procedure is expected to remove the parameters from the stack.

Procedure

Name of the procedure to call. This parameter can be either a local or public procedure, but must be defined within the virtual device making the call.

Param1, Param2, Param3, ..., ParamN

Parameters to pass to the procedure. If more than one parameter is given, they must be separated with commas and enclosed in angle brackets (<>). Parameters are optional.

This macro pushes the parameters using the Pascal-language calling convention, in order from left to right. It also assumes that the called procedure follows the Pascal-language register conventions, viz., that the EAX, ECX, EDX, and flags registers may be modified by the call, and that the return value is placed in the EAX register (and sometimes also the EDX register). If your procedure does not follow these rules, you should not use the pCall macro.

See also VMMCall, VxDCall