Obtaining the Real Function Pointer
The IDL_SysRtnGetRealPtr() routine returns the pointer to the actual internal IDL function that implements the system function or procedure of the specified name.
This routine can be used to interpose your own code in between IDL and the actual routine. This process is sometimes called hooking in other systems. To implement such a hook function, you must use the IDL_SysRtnEnable() function to register the interposed routine, which in turn uses IDL_SysRtnGetRealPtr() to obtain the actual IDLfunction pointer for the routine.
Syntax
IDL_SYSRTN_GENERIC IDL_SysRtnGetRealPtr(int is_function,
char *name)
Arguments
is_function
Set to TRUE if functions are being manipulated, FALSE for procedures.
name
The name of function or procedure for which the real function pointer is required.
Result
If the specified routine...
- exists and is not disabled, it's function pointer is returned.
- does not exist, a NULL pointer is returned.
- has been disabled by the user, its actual function pointer is returned.
- has been disabled for licensing reasons, the real function pointer does not exist, and the pointer to its stub is returned.
Note
This routine can cause an IDL_MSG_LONGJMP message to be issued if the function comes from a DLM and the DLM load fails due to memory allocation errors. Therefore, it must not be called unless the IDL interpreter is active. The prime intent for this routine is to call it from the stub routine of a disabled function when the interpreter invokes the associated system routine.