Legacy Plug-in Callbacks
 
 
 

Legacy plug-ins expose certain functions so that Softimage can communicate with the implementation library file. These callback functions must have exactly the correct name and parameter signature in order to function properly with Softimage. This section describes the specific signatures for each supported legacy plug-in type (signatures for self-installing plug-ins are described in Callbacks for Self-Installing Plug-ins).

On Linux your functions are automatically exported from your .SO. On Windows you can use the XSIPLUGINCALLBACK macro instead of explicitly exporting them in a DEF file.

Event Callbacks

To use the XSIOnEventCPP callback function to declare your event handler

You need to implement this routine in your DLL or SO file:

XSIPLUGINCALLBACK XSI::CStatus XSIOnEventCPP( long in_eventID,  XSI::CValueArray& in_args);

Parameter

Description

in_eventID

Event ID to process

in_args

Array of arguments for this specific event

To export your event handler function (on Windows)

To export a function from a DLL, add the XSIPLUGINCALLBACK macro to the function definition. On Windows, this macro resolves to:

extern "C" __declspec(dllexport)

and on Linux to:

extern "C"

XSIPLUGINCALLBACK is defined in sicppsdk.h.

Command Callbacks

To use the XSIOnCommandCPP callback function to declare your command handler

You need to implement this function in your DLL or SO file:

XSIPLUGINCALLBACK XSI::CStatus XSIOnCommandCPP( const XSI::CString& in_name,  XSI::CValueArray& in_args, XSI::CValue& out_value);

Parameter

Description

in_name

Command name.

in_args

Array of arguments for this specific command.

out_value

Return value.

Note

Starting with Softimage, v4.0 custom commands can be fully implemented as self-installing plug-ins which is now the recommended approach (see Custom Commands for detailed instructions on implementing self-installing command plug-ins). However, this approach (often called a v1.0 plug-in type) is still fully supported.

To export your command handler function (on Windows)

To export a function from a DLL, add the XSIPLUGINCALLBACK macro to the function definition. On Windows, this macro resolves to:

extern "C" __declspec(dllexport)

and on Linux to:

extern "C"

XSIPLUGINCALLBACK is defined in sicppsdk.h.