#lang racket/base
(require ffi/com)
(let ([com (com-create-instance "MSScriptControl.ScriptControl")])
(com-set-property! com "Language" "VBScript")
(com-invoke com "AddCode" "Function Test() \n Test=false \n End Function")
(com-invoke (com-get-property com "CodeObject") "Test"))
Returns #t
(Racket 6.0 win32) If I send to COM, all is ok:
(let ([com (com-create-instance "MSScriptControl.ScriptControl")])
(com-set-property! com "Language" "VBScript")
(com-invoke com "AddCode" "Function Test(x) \n If x then \n Test = 1 \n else
\n Test =2 \n End if \n End Function")
(com-invoke (com-get-property com "CodeObject") "Test" #f)) ; => 2
(let ([com (com-create-instance "MSScriptControl.ScriptControl")])
(com-set-property! com "Language" "VBScript")
(com-invoke com "AddCode" "Function Test(x) \n If x then \n Test = 1 \n else
\n Test =2 \n End if \n End Function")
(com-invoke (com-get-property com "CodeObject") "Test" #t)) ; => 1
And even
(let ([com (com-create-instance "MSScriptControl.ScriptControl")])
(com-set-property! com "Language" "VBScript")
(com-invoke com "AddCode" "Function Test(x) \n If x = false then \n Test =
false \n End if \n End Function")
(com-invoke (com-get-property com "CodeObject") "Test" #f))
; => #t
(let ([com (com-create-instance "MSScriptControl.ScriptControl")])
(com-set-property! com "Language" "VBScript")
(com-invoke com "AddCode" "Function Test(x) \n If x = false then \n Test =
x \n End if \n End Function")
(com-invoke (com-get-property com "CodeObject") "Test" #f))
; => #f
--
Roman Klochkov
____________________
Racket Users list:
http://lists.racket-lang.org/users