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.

C# Syntax

Plugin XSIApplication.LoadPlugin( String in_pluginName );

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