XSIApplication.UnloadPlugin

Description

Unloads a self-installable plug-in from Softimage. All registered plug-in items are unregistered when a plug-in is unloaded; therefore you will not be able to use these items in Softimage until you reload the plug-in.

Unloaded plug-ins are still part of the XSIApplication.Plugins collection. They can be distinguished from other plug-ins by using the Plugin.Loaded property. An unloaded plug-in always has zero entries in its Plugin.Items collection.

C# Syntax

XSIApplication.UnloadPlugin( String in_pluginFileName, Boolean in_bRemove );

Scripting Syntax

XSIApplication.UnloadPlugin( Plugin, bRemove );

Parameters

Parameter Type Description
Plugin String The plug-in file name which includes the full path.
bRemove Boolean Option to completely remove the plug-in file from the list of plug-ins that Softimage maintains. This option does not remove the actual plug-in file from the disk, so the plug-in file may be reloaded the next time that Softimage is restarted.

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 ExUnLoadPluginDemo()
{
	// lookup installed plugin
	var oPlugin = Application.Plugins( "XSIApplication.UnLoadPlugin Example" );
	// manually unload plugin
	Application.UnloadPlugin( oPlugin.FileName );
	// The above script logs the following results:
	//INFO : XSIUnloadPlugin called"
	//INFO :  	Name: XSIApplication.UnLoadPlugin Example"
	//INFO : 	Author: Softimage Co.
	//INFO : 	Major: 1
	//INFO : 	Minor: 0
	//INFO : 	Language: JScript
	//INFO : 	Filename: [userpath]\Addons\XSISDKDocExamples\Application\Plugins\ExXSIApplicationUnLoadPlugin.js
	//INFO : 	URL: www.softimage.com
	//INFO : 	Email: xsi@softimage.com
	//INFO : 	Help: 
	//INFO : 	OriginPath: [userpath]\Addons\XSISDKDocExamples\Application\Plugins\
	//INFO : 	Categories: Doc Example
	//INFO : Loaded: True
}
function  XSILoadPlugin( in_reg )
{
	in_reg.Name = "XSIApplication.UnLoadPlugin 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 = "Doc Example"; 
	return true;
} 
function  XSIUnloadPlugin( in_reg )
{
	Application.LogMessage( "XSIUnloadPlugin called" );
	Application.LogMessage( "\tName: " + in_reg.Name );
	Application.LogMessage( "\tAuthor: " + in_reg.Author);
	Application.LogMessage( "\tMajor: " + in_reg.Major);
	Application.LogMessage( "\tMinor: " + in_reg.Minor);
	Application.LogMessage( "\tLanguage: " + in_reg.Language);
	Application.LogMessage( "\tURL: " + in_reg.URL);
	Application.LogMessage( "\tEmail: " + in_reg.Email);
	Application.LogMessage( "\tHelp: " + in_reg.Help);
	Application.LogMessage( "\tOriginPath: " + in_reg.OriginPath);
	Application.LogMessage( "\tCategories: " + in_reg.Categories);
}
//--------------------------------------------------------------------
// Code to bootstrap example into system
//--------------------------------------------------------------------
function ExampleSourceCode()
{
	return "// XSISDK Doc Example\n" +
		XSIUnloadPlugin.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 		= "ExXSIApplicationUnLoadPlugin";
	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();
		Application.LoadPlugin(filename);
	}
	ExUnLoadPluginDemo();
}

See Also

XSIApplication.LoadPlugin XSIApplication.Plugins Plugin Plugin.Loaded