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