A self-installing plug-in is a script file or a compiled .dll/.so that implements a function named XSILoadPlugin.
When Softimage starts, it looks in certain folders, such as Application\Plugins, for plug-ins that implement XSILoadPlugin. When Softimage finds a self-installing plug-in, Softimage loads the plug-in and calls its XSILoadPlugin function.
XSILoadPlugin sets some plug-in properties (such as the name of the plug-in and the location of its help file) and then registers the items that the plug-in implements. Plug-in items can be commands, events, filters, menus, properties, as well as custom displays, viewport modes or callbacks (graphic sequencer).
For example, this XSILoadPlugin registers a command and a menu:
// JScript
function XSILoadPlugin( in_pluginRegistrar )
{
in_pluginRegistrar.Author = "Command Wizard";
in_pluginRegistrar.Name = "My Commands";
// Register command
in_pluginRegistrar.RegisterCommand("MyCommand","MyCommand");
// Register a custom menu
in_pluginRegistrar.RegisterMenu( siMenuMainHelpID, "MyHelp_Menu", false, false );
in_pluginRegistrar.RegisterMenu(siMenuTbGetPropertyID,"MyProperty_Menu",false,false);
return true;
}For each plug-in item registered in XSILoadPlugin, a self-installing plug-in also implements a number of callback functions. For example, if a plug-in registers a command named "MyCommand", then the plug-in will also provide an Execute callback, and possibly an Init callback too, for the command.
// JScript
// Init and Execute callbacks for the custom command named "MyCommand"
function MyCommand_Init() {
// Add arguments to the command
}
function MyCommand_Execute() {
// Implement the command
}A self-installing plug-in can also implement an XSIUnloadPlugin function. Softimage calls XSIUnloadPlugin whenever the plug-in is unloaded (for example, from the Plug-in Manager or when Softimage exits). XSIUnloadPlugin allows you to clean up any resources allocated by XSILoadPlugin.