Try OpenEdge Now
skip to main content
ABL Reference
Handle Attributes and Methods Reference : CALL-NAME attribute

CALL-NAME attribute

The name of one of the following:
*An external procedure, internal procedure, or user-defined function you want to invoke dynamically
*A Windows DLL routine or Unix shared library routine you want to invoke dynamically
*An attribute you want to get or set dynamically
*A method you want to run dynamically
Data type: CHARACTER
Access: Readable/Writable
Applies to: Call object handle


CALL-NAME [ = char-expression ]
A CHARACTER expression indicating the name of the procedure, user-defined function, attribute, method, or shared library routine. The default is the Unknown value (?). In Windows, the expression cannot contain characters outside of the non-Unicode code page. See OpenEdge Development: Internationalizing Applications for more information about Unicode and code pages.
If char-expression is a procedure, the rules for finding the procedure are the same as those of the RUN statement, including the treatment of SUPER. However, the actual instance of the file, procedure name, or attribute is not determined until the dynamic invoke is executed.
If char-expression is a user-defined function, an attribute, or a method, the rules for finding the function or attribute are the same as those for finding a function or attribute invoked statically.
If char-expression is a shared library routine, at least the following attributes must be set:
If char-expression is a shared library routine and LIBRARY specifies a full path name, the AVM searches only that path for the shared library. Otherwise, the AVM first determines if the shared library is loaded in memory. If it is not loaded in memory, the AVM looks for the shared library in the current working directory. If the shared library cannot be found at this point:
*On Windows the AVM uses the standard Windows search algorithm to find the DLL, the same algorithm used to find Windows executable (.exe) files
*On UNIX the AVM continues searching for the shared library using the ABL PROPATH
Using the call object handle, there are two alternate methods for invoking a DLL routine—either by specifying the routine's name with the CALL-NAME attribute or by specifying the routine's position in the DLL with the ORDINAL attribute. You can specify an ORDINAL value or a CALL-NAME value, but not both. Specifying an ORDINAL value and setting CALL-NAME at the same time causes the AVM to raise error at run time.

See also

ORDINAL attribute