The following code illustrates the use of the
AllowUI property.
' ########################################################################################
' Microsoft Script Control example.
' 2008 José Roca - Use at your own risk.
' ########################################################################################
' SED_PBWIN ' Use the PBWIN compiler
#COMPILE EXE
#DIM ALL
#INCLUDE "MSSCRIPT.INC"
' ========================================================================================
' Main
' ========================================================================================
FUNCTION PBMAIN
LOCAL pSc AS IScriptControl
LOCAL strScript AS STRING
LOCAL vRes AS VARIANT
LOCAL vPrms AS VARIANT
LOCAL rgsabound AS SAFEARRAYBOUND
LOCAL psa AS DWORD
LOCAL vPrm AS VARIANT
LOCAL vEmpty AS VARIANT
LOCAL ix AS LONG
' Create an instance of the Microsoft Script Control
pSc = NEWCOM "MSScriptControl.ScriptControl"
IF ISNOTHING(pSc) THEN
MSGBOX "Error creating an instance of the Microsoft Script Control"
EXIT FUNCTION
END IF
TRY
' Set the language. It can be "VBScript" or "JScript"
pSc.Language = UCODE$("VBScript")
' Deactivate the user interface
pSc.AllowUI = %VARIANT_FALSE
' Make an script
strScript = "Sub Main" & $CRLF & _
" MsgBox ""The user interface is activated.""" & $CRLF & _
"End Sub"
pSc.AddCode UCODE$(StrScript)
' Create a safearray with zero elements
' Note: Parameters are passed as a safearray by reference. Therefore, we
' need to always pass a valid pointer.
rgsabound.lLBound = 1
rgsabound.cElements = 0
psa = SafeArrayCreate(%VT_VARIANT, 1, rgsabound)
' Run the script
vRes = pSc.Run(UCODE$("Main"), psa)
CATCH
MSGBOX MSScriptControl_GetErrorInfo(pSc, OBJRESULT)
FINALLY
' Destroy the safearray
IF psa THEN SafeArrayDestroy psa
psa = %NULL
END TRY
' Releases the interface
pSc = NOTHING
END FUNCTION
' ========================================================================================