LoadPlugin (XSIApplication)

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

    XSIApplication.LoadPlugin( Path )

C# Syntax

    Plugin XSIApplication.LoadPlugin( String in_pluginName );

Parameters

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

Return Value

Plugin

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

Autodesk Softimage v7.5