PBCallInfo structure
The PBCallInfo structure is used to hold data and return type information for calls between extensions and the PBVM. It has three public members:
IPB_Arguments* pArgs;
IPB_Value* returnValue;
pbclass returnClass;
The following code initializes a PBCallInfo structure using the IPB_Session InitCallInfo method. After allocating a PBCallInfo structure called ci, the IPB_Session GetClass and GetMethodID methods are used to get the class and method ID of the current method. Then, these parameters are used to initialize the ci structure:
pbclass cls;
pbmethodID mid;
PBCallInfo* ci = new PBCallInfo;
cls = Session -> GetClass(myobj);
mid = Session -> GetMethodID(cls, "myfunc",
PBRT_FUNCTION, "II");
Session -> InitCallInfo(cls, mid, ci);
When you have finished using a PBCallInfo structure, you must call FreeCallInfo to release the allocated memory:
Session -> FreeCallInfo(ci);
delete ci;
The IPB_Arguments and IPB_Value interfaces have methods that enable you to pass values between the PBVM and PowerBuilder extension modules using PBCallInfo to hold the data.