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