Code: Select all
Procedure.l Ansi2Uni(ansi.s)
SHStrDup_(@ansi,@memziel)
ProcedureReturn memziel
EndProcedure
Procedure.s Uni2Ansi(*Unicode.l)
size.l = WideCharToMultiByte_(#CP_ACP, 0, *Unicode, -1, #Null, #Null, #Null, #Null)
ansi.s=Space(size)
WideCharToMultiByte_(#CP_ACP, 0, *Unicode, -1, @ansi, size, #Null, #Null)
ProcedureReturn ansi
EndProcedure
x.VARIANT
x\vt = #VT_BSTR
Interface IScriptProcedure Extends IDispatch
get_Name(a)
get_NumArgs(a)
get_HasReturnValue(a)
EndInterface
Interface IScriptProcedureCollection Extends IDispatch
get__NewEnum(a)
get_Item(a,b,c,d,e)
get_Count(a)
EndInterface
Interface IScriptModule Extends IDispatch
get_Name(a)
get_CodeObject(a)
get_Procedures(a)
AddCode(a)
Eval(a,b)
ExecuteStatement(a)
Run(a,b,c)
EndInterface
Interface IScriptModuleCollection Extends IDispatch
get__NewEnum(a)
get_Item(a,b,c,d,e)
get_Count(a)
Add(a,b,c)
EndInterface
Interface IScriptError Extends IDispatch
get_Number(a)
get_Source(a)
get_Description(a)
get_HelpFile(a)
get_HelpContext(a)
get_Text(a)
get_Line(a)
get_Column(a)
Clear()
EndInterface
Interface IScriptControl Extends IDispatch
get_Language(a)
put_Language(a)
get_State(a)
put_State(a)
put_SitehWnd(a)
get_SitehWnd(a)
get_Timeout(a)
put_Timeout(a)
get_AllowUI(a)
put_AllowUI(a)
get_UseSafeSubset(a)
put_UseSafeSubset(a)
get_Modules(a)
get_Error(a)
get_CodeObject(a)
get_Procedures(a)
_AboutBox()
AddObject(a,b,c)
Reset()
AddCode(a)
Eval(a,b)
ExecuteStatement(a)
Run(a,b,c)
EndInterface
CoInitialize_(0)
If CoCreateInstance_(?CLSID_ScriptControl,0,1,?IID_IScriptControl,@Object.IScriptControl) = 0
object\reset()
object\put_Language(Ansi2Uni("vbscript"))
object\AddCode(Ansi2Uni(PeekS(?sample_vbs)))
object\Eval(Ansi2Uni("sample"),@x)
Debug uni2ansi(x\bstrVal)
object\reset()
object\release()
Else
MessageRequester("error", "msscriptcontrol error [msscript.ocx] !", #MB_ICONHAND)
End
EndIf
CoUninitialize_()
DataSection
CLSID_ScriptControl:
Data.l $0e59f1d5
Data.w $1fbe,$11d0
Data.b $8f,$f2,$00,$a0,$d1,$00,$38,$bc
IID_IScriptControl:
Data.l $0e59f1d3
Data.w $1fbe,$11d0
Data.b $8f,$f2,$00,$a0,$d1,$00,$38,$bc
EndDataSection
;sample vbs
DataSection
sample_vbs:
Data.s "a=1:b=2:sample=cstr(a+b):msgbox(sample)"
Data.b 0
EndDataSection
