Events

www.altova.com Dieses Kapitel drucken Vorherige Seite Eine Ebene nach oben Nächste Seite

Startseite >  Referenz für Programmierer > Applikations-API > Übersicht > Programmiersprachen > VBScript >

Events

COM definiert einen Client, der sich über den Connection Point-Mechanismus als Server für Callbacks registrieren muss. Das Automation Interface für XMLSpy definiert die dafür erforderlichen Event Interfaces. Wie eine Verbindung zu diesen Events hergestellt wird, hängt von der Programmiersprache ab, die Sie auf Ihrem Client verwenden. Im folgenden Codefragment wird gezeigt, wie dies im VBScript erfolgt.

 

Die Methode WScript.ConnectObject dient zum Empfangen von Events.

 

Um diesen Code auszuführen, fügen Sie ihn in eine Datei mit der Erweiterung .vbs ein und doppelklicken Sie entweder in Windows Explorer darauf oder führen Sie die Datei über die Befehlszeile aus.

 

' the event handler function
Function DocEvent_OnBeforeCloseDocument(objDocument)
  Call WScript.Echo("received event - before closing document")
End Function
 
' create or connect to XmlSpy
Set objWshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = WScript.CreateObject("Scripting.FileSystemObject")
Set objSpy = WScript.GetObject("", "XMLSpy.Application")
' If only Authentic is installed (and XMLSpy is not installed) use:
' Set objSpy = WScript.GetObject("", "AuthenticDesktop.Application")
' If only XMLSpy 64-bit is intalled, use:
' Set objSpy = WScript.GetObject("", "XMLSpy_x64.Application")
 
' create document object and connect to its events
objSpy.Visible = True
 
' Find out user's personal folder and locate one of the installed examples.
personalFolder = objWshShell.ExpandEnvironmentStrings("%UserProfile%")
majorVersionYear = objSpy.MajorVersion + 1998
xmlspyExamplesFolder = personalFolder & "\Documents\Altova\XMLSpy" & majorVersionYear  & "\Examples\"
docPath = xmlspyExamplesFolder & "ExpReport.xml"
 
' open a document
Set objDoc = objSpy.Documents.OpenFile (docPath, False)
Call WScript.ConnectObject(objDoc, "DocEvent_")
 
' keep running while waiting on the event
' in the meantime close the document in XMLSPY manually
Call WScript.Echo ("sleeping for 10 seconds ...")
Call WScript.Sleep (10000)
 
Set objDoc = Nothing
Call WScript.Echo ("stopped listening for event")
Call objSpy.Quit

 

Anmerkung:Für die 32-Bit-Version von Authentic Desktop lautet der registrierte Name oder der programmatische Identifier (ProgId) des COM-Objekts AuthenticDesktop.Application. Für die 64-Bit-Version von Authentic Desktop lautet der Name AuthenticDesktop_x64.Application.

© 2019 Altova GmbH