000
24.11.2003, 12:59 Uhr
~schuetze
Gast
|
Hallo Leute,
ich bin ein C++-Anfänger und deswegen kann ich folgendes Problem leider nicht ohne Eure Hilfe lösen. Für einen C++-Profi ist es wahrscheinlich eine Minuten-Sache ...
Das ScriptControl-OCX von Microsoft ermöglicht es, eigene Programme mit VBS/JS scriptfähig zu machen. Das ist einfach zu integrieren und gut dokumentiert. Nur ein wichtiges Feature fehlt: man kann ein Script nicht abbrechen. Jedenfalls nicht, wenn man wie ich als VisualBasic-Programmierer das OCX-Control verwendet. Im "Microsoft Windows Script Interfaces" gibt es allerdings folgende Routine:
IActiveScript::InterruptScriptThread
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/IActiveScript_InterruptScriptThread.asp
Als Erklärung gibt es dazu: "Interrupts the execution of a running script thread [...]. This method can be used to terminate a script that is stuck (in an infinite loop, for example). [...]"
Das hört sich ja genau nach dem an, was ich gesucht habe! Eine Funktion, mit der man den Ablauf eines ScriptControl.Run-Aufrufs abbrechen kann. Dummerweise ist das Interface "IActiveScript" nicht in die VisualBasic-Welt gezogen worden.
Es müßte doch möglich sein, das ScriptControl nochmals mittels eines OCX (geschrieben in C++) zu kapseln und darin alle bisher in VisualBasic vorhandenen Routinen durchzureichen (zB. "Run") und zusätzlich noch die Routinen des Interfaces "IActiveScript" anzubieten. Leider habe ich kein Ahnung von OCX-Programmierung in C++ ... Kann da jemand helfen?
www.codeguru.com/activex/ScriptControlMacro.html
Unter diesem Link ist eine "Anleitung" für ScriptControl-Programmierung zu finden. Darin scheitere ich aber schon an einem der ersten Sätze: "Create a dispatch classes from the Script Control type-library using ClassWizard." Wo bitte finde ich die Type-Library für das ScriptControl. Ich habe nur das OCX-File, aber keine TLB ...
Für Hilfe und/oder Tips wäre ich sehr dankbar!
Gruß, Oliver |