Defining External Functions

An external function is a routine that is not necessarily associated with a specific class.

As external functions are global to the schema in which they are defined and are not supported at class level, an external function name must be unique to the schema in which it is defined.

An external function is a function that has been exported from a Dynamic Link Library (DLL) and can be called directly from a method written in the JADE language. This enables you to directly call entry points exported from existing third-party libraries or the operating system without having to write an external method wrapper.

An external function defines a mapping between JADE parameters and the external parameters. Parameter mapping is made interpretively at run time when an external function is called.

Defining an external function is very much like defining an external method and a subset of the same information is captured. However, external functions are viewed and maintained from the External Functions Browser, accessed from the Browse menu at schema level, unlike external methods that are viewed and maintained from the Class Browser or the Primitive Types Browser.

External function calls are invoked with the JADE language call instruction, to make a clear distinction between function calls (that are not invoked on an object) and object method invocations.

For details about parameter mapping, see "Using External Functions", in Chapter 1 of the JADE External Interface Developer’s Reference.

If you want to add an external function to a library defined in the RootSchema (for example, to the kernel32 or the user32 library), you must first view the superschema (RootSchema) from the External Functions Browser in your own schema. To do this, select the Superschemas command from the View menu in the External Functions Browser, select the appropriate library, and then add the external function that you require; for example, sendMessage.