## 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