The following code illustrates the use of the
State 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 nState AS LONG
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_TRUE
' Make an script
strScript = "Sub Main" & $CRLF & _
" MsgBox ""Hello everybody.""" & $CRLF & _
"End Sub"
pSc.AddCode UCODE$(StrScript)
' Reterieve the state of the ScriptControl object
nState = pSc.State
IF nState = 0 THEN
MSGBOX "State: Initialized"
ELSEIF nState = 1 THEN
MSGBOX "State: Connected"
END IF
' 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
' ========================================================================================