XSIFactory.CreateActiveXObject

導入

v4.0

詳細

ProgID のスクリプトによって指定された ActiveX オブジェクトを作成して戻します(例:"XSI.Collection")。このメソッドは、NetView ベースの HTML ページのコンテキスト内で使用すると便利です。"Scripting.FileSystemObject"オブジェクトのようなオートメーションオブジェクト(COm オブジェクト)を作成する場合に NetView の警告ダイアログが表示されません。また、他のスクリプト言語(JScript、Python、PerlScript など)を使用して ActiveX オブジェクトを作成するさまざまな方法を覚えるよりも、このメソッドを使う方が便利です。

各種スクリプト言語では、オートメーションオブジェクトを作成する機能がサポートされています(たとえばJScript の"new ActiveXObject"など)。ただし、Netview から呼び出すと、ネイティブメソッドでは警告メッセージが表示されてしまいます。これは、多くの ActiveX オブジェクト("Scripting.FileSystemObject"や"Microsoft.XMLDOM"などのオブジェクト)が Web ページに含まれると問題が生じる可能性があると判断されるためです。ただし、Softimage で Netviewページを実行するうえでは、これらのセキュリティに関する警告は意味をなさないため、このメカニズムを用いて警告を省略することができます。

Softimage のオートメーションオブジェクト(ApplicationXSIFactoryXSIMath など)はすべて安全と判断されるため、作成時にこのメソッドを使用する必要はありません。

C#構文

Object XSIFactory.CreateActiveXObject( String Name );

スクリプト構文

oReturn = XSIFactory.CreateActiveXObject( ProgID );

戻り値

新しく作成されたオブジェクト

パラメータ

パラメータ タイプ 説明
ProgID String ProgID としてのオブジェクトの名前("servername.typename")。たとえば、"Scripting.FileSystemObject"や"Excel.Sheet"となります。

1. VBScript の例

' 

' 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 の例

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 の例

import win32com.client

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

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

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