XSIApplication.LoadPlugin

Description

Loads a self-installable plug-in file. Files with the following extensions are considered valid: .dll,.so,.vbs, .pys,.ps,.js. This method returns a Plugin object representing the newly loaded plug-in.

If the plugin is already loaded, the existing plug-in is returned.

Scripting Syntax

oReturn = XSIApplication.LoadPlugin( Path );

Return Value

Plugin

Parameters

Parameter Type Description
Path String The full file path of the plug-in to load.

Examples

JScript Example

//--------------------------------------------------------------------
//      This example shows how to define and load a plug-in in Softimage
//
// README: Copy and paste the example into the script editor 
// and run (F5).
//--------------------------------------------------------------------
function ExLoadPluginDemo(filename)
{
        // manually load the plugin
        var oPlugin = Application.LoadPlugin( filename );
        // Display the plug-in information
        Application.LogMessage( "Name: "                + oPlugin.Name );
        Application.LogMessage( "Author: "              + oPlugin.Author );
        Application.LogMessage( "Major: "               + oPlugin.Major );
        Application.LogMessage( "Minor: "               + oPlugin.Minor );
        Application.LogMessage( "Language: "    + oPlugin.Language );
        Application.LogMessage( "Filename: "    + oPlugin.Filename );
        Application.LogMessage( "URL: "                 + oPlugin.URL );
        Application.LogMessage( "Email: "               + oPlugin.Email );
        Application.LogMessage( "Help: "                + oPlugin.Help );
        Application.LogMessage( "OriginPath: "  + oPlugin.OriginPath );
        Application.LogMessage( "Categories: "  + oPlugin.Categories.toArray().join(",") );
        Application.LogMessage( "Loaded: "              + oPlugin.Loaded );
        // The above script logs the following results:
        //INFO : Name: XSIApplication.LoadPlugin Example
        //INFO : Author: Softimage Co.
        //INFO : Major: 1
        //INFO : Minor: 0
        //INFO : Language: JScript
        //INFO : Filename: [userpath]\Addons\XSISDKDocExamples\Application\Plugins\ExXSIApplicationLoadPlugin.js
        //INFO : URL: www.softimage.com
        //INFO : Email: xsi@softimage.com
        //INFO : Help: [factorypath]\Addons\XSISDKDocExamples\Application\Plugins\doc\ExXSIApplicationLoadPlugin.html
        //INFO : OriginPath: [userpath]\Addons\XSISDKDocExamples\Application\Plugins\
        //INFO : Categories: Demo
        //INFO : Loaded: True
}
function  XSILoadPlugin( in_reg )
{
        in_reg.Name = "XSIApplication.LoadPlugin Example";
        in_reg.Author = "Softimage Co."; 
        in_reg.Major = 1;
        in_reg.Minor = 0;
        in_reg.URL = "www.softimage.com"; 
        in_reg.Email = "xsi@softimage.com"; 
        in_reg.Categories = "Demo"; 
        // generate help files
        GeneratePluginHelpFile(in_reg);
        return true;
} 
function GeneratePluginHelpFile( in_reg )
{
        var fso = XSIFactory.CreateActiveXObject("Scripting.FileSystemObject");
        var pluginfolder = fso.GetParentFolderName( in_reg.filename );
        var helpfolder = fso.BuildPath( pluginfolder, "Doc" );
        if ( ! fso.FolderExists(helpfolder ) )
        {
                fso.CreateFolder(helpfolder);   
        }
        var helpfilename = fso.GetBaseName(in_reg.filename);
        var helpfile = fso.BuildPath( helpfolder, helpfilename + ".html" );
        var file = fso.CreateTextFile ( helpfile );
        file .WriteLine( "<html>" );
        file .WriteLine( "<head>" );
        file .WriteLine( "\t<title>" + in_reg.name + "Help</title>" );
        file .WriteLine( "</head>");
        file .WriteLine( "<body>");
        file .WriteLine( "\t<p>description of "+in_reg.name+" plugin</p>" );
        file .WriteLine( "</body>" );
        file .WriteLine( "</html>" );
        file.close();
}
//--------------------------------------------------------------------
// Code to bootstrap example into system
//--------------------------------------------------------------------
function ExampleSourceCode()
{
        return "// XSISDK Doc Example\n" +
                GeneratePluginHelpFile.toString() + "\n" +
                XSILoadPlugin.toString();
}
// if we are running from script editor save code to 
// examples addon folder in the user's directory.
if (GetUserPref("ScriptingSessionActive"))
{
        var ex_name             = "ExXSIApplicationLoadPlugin";
        var ex_subfolder        = "Plugins";
        var ex_folder           = "XSISDKDocExamples";
        var ex_langsuffix       = ".js";
        CreateAddonDirectories( InstallationPath(siUserPath), ex_folder );
        var fso = XSIFactory.CreateActiveXObject("Scripting.FileSystemObject");
        var filename = XSIUtils.BuildPath( 
                InstallationPath(siUserAddonPath), 
                ex_folder,
                "Application",
                ex_subfolder,
                ex_name+ex_langsuffix );
        if (!fso.FileExists(filename))
        {
                var f = fso.CreateTextFile ( filename );
                f.write( ExampleSourceCode() );
                f.close();
        }
        ExLoadPluginDemo( filename );
}

See Also

XSIApplication.UnloadPlugin XSIApplication.Plugins