## XSIFactory.CreateActiveXObject

### Introduced

v4.0

### Description

Creates and returns an ActiveX object specified by a scripting ProgID for example "XSI.Collection". This method can be useful within the context of NetView based html pages as it can be used to create Automation Object (COM object) such as the "Scripting.FileSystemObject" object without any NetView warning dialogs. It is also more convenient method than having to remember the various different ways of creating activeX objects with other scripting languages such as JScript, Python and PerlScript.
Each scripting language natively supports the ability to create Automation Objects, for example "new ActiveXObject" in JScript. However, when called from Netview, the native methods may result in a warning message being displayed. This is because many ActiveX objects, including objects like "Scripting.FileSystemObject", and "Microsoft.XMLDOM", are not marked as being safe to be part of a web page. However in the context of a Netview page running within Softimage these security warnings do not make sense, so this mechanism makes it possible to bypass them.
All Softimage Automation objects, such as Application, XSIFactory and XSIMath are marked as safe so this method is not required to create them.

### C# Syntax

    Object XSIFactory.CreateActiveXObject( String Name );

### Scripting Syntax

    oReturn = XSIFactory.CreateActiveXObject( ProgID );

### Return Value

The newly created object

### Parameters

Parameter | Type | Description
--- | --- | ---
ProgID | String | Name of the object as a ProgID, in the format "servername.typename". For example "Scripting.FileSystemObject", or "Excel.Sheet".

### Examples

#### 1. VBScript Example

    '

    ' This function is a useful tool within Netview Scripts that want to use

    ' Automation objects like "Scripting.FileSystemObject"

    '

    function SafeCreateObject( in_ProgID )

    	on error resume next

    	' First create our ActiveX (which is marked as safe)

    	set oXSIFactory = CreateObject( "XSI.Factory" )

    	' Use xsifactory to create the object

    	set oOBj = oXSIFactory.CreateActiveXObject( in_ProgID )

    	if err.number <> 0 then

    		' Problem might be that user is running an older version of Softimage, so

    		' try the old version (this method might pop a ActiveX warning dialog)

    		err.Clear

    		set oObj = CreateObject( in_ProgID )

    	end if

    	set SafeCreateObject = oObj

    end function

    ' Example use

    set oXML = SafeCreateObject( "Microsoft.XMLDOM" )

    oXML.load "c:\info.xml"

#### 2. JScript Example

    function getFileSystemObject()

    {

    	// Avoid the warning dialog that will appear NetView

    	// by getting Softimage to create the object for us

    	var oXSIFactory = new ActiveXObject( 'XSI.Factory' );

    	var fso = oXSIFactory.CreateActiveXObject( 'Scripting.FileSystemObject' );

    	return fso ;

    }

#### 3. Python Example

    import win32com.client

    my_xsifactory = win32com.client.Dispatch( "XSI.Factory" )

    my_fso = my_xsifactory.CreateActiveXObject( "Scripting.FileSystemObject" )

    Application.LogMessage( my_fso.FolderExists( 'C:\\temp' ) )