0 Members and 1 Guest are viewing this topic.
' ########################################################################################' 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 pModules AS IScriptModuleCollection LOCAL pModule AS IScriptModule LOCAL pCodeObject AS IDispatch LOCAL oCodeObject AS DISPATCH ' Creates 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") ' *** Add a new module and a procedure and call it using PB automation *** ' Get a reference to the modules collection pModules = pSc.Modules IF ISOBJECT(pModules) THEN pModule = pModules.Add(UCODE$("MyModule")) IF ISOBJECT(pModule) THEN ' Add a procedure to the module strScript = "Sub Hello" & $CRLF & _ " Msgbox ""Hello World""" & $CRLF & _ "End Sub" pModule.AddCode UCODE$(strScript) ' Get the dispatch interface of the module pCodeObject = pModule.CodeObject IF ISOBJECT(pCodeObject) THEN oCodeObject = pCodeObject pCodeObject = NOTHING END IF ' Use PB automation to call the procedure OBJECT CALL oCodeObject.Hello END IF END IF CATCH MSGBOX MSScriptControl_GetErrorInfo(pSc, OBJRESULT) FINALLY oCodeObject = NOTHING pModule = NOTHING pModules = NOTHING END TRY ' Releases the interface pSc = NOTHINGEND FUNCTION' ========================================================================================