2017-10-31 5 views
2

Wie importieren wir die Listener-Ereignisse von LibreOffice Writer in Visual Basic 6?Wie importieren wir die Listener-Ereignisse von LibreOffice Writer in Visual Basic 6

Ich versuche, einen UNO-Dienst zu erstellen wie folgenden Code Container-Listener Ereignis zu bekommen,

Dim oListener As Object 
oListener = CreateUnoListener("ContListener_", 
    "com.sun.star.container.XContainerListener") 

I

Compile Fehler eine Störung erhält: Sub oder Funktion nicht

definiert

Kann mir bitte jemand helfen?

Antwort

1

Wie in here erläutert, funktioniert CreateUnoListener nicht in VB6. Stattdessen ist es notwendig, die Listener-Schnittstelle auf andere Weise zu implementieren.

Hier ist ein VBScript-Beispiel von https://wiki.openoffice.org/wiki/Documentation/DevGuide/OfficeDev/Document_Events.

set xContext = objServiceManager.getPropertyValue("DefaultContext") 
set xCoreReflection = xContext.getValueByName("/singletons/com.sun.star.reflection.theCoreReflection") 
set xClass = xCoreReflection.forName("com.sun.star.document.XEventBroadcaster") 
set xMethod = xClass.getMethod("addEventListener") 

dim invokeargs(0) 
invokeargs(0) = myListener 

set value = objServiceManager.Bridge_GetValueObject() 
call value.InitInOutParam("[]any", invokeargs) 
call xMethod.invoke(objDocument, value) 

ein Unterprogramm myListener genannt definieren.

Es kann auch helfen, die Informationen unter https://www.openoffice.org/udk/common/man/tutorial/office_automation.html zu überprüfen.

Es gibt eine Diskussion über jemanden, der ähnlichen Code unter https://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=14217 versucht, obwohl die endgültige Lösung Javascript verwendet.

Haftungsausschluss: Ich habe keine Möglichkeit, VB6-Code zu testen, so dass diese Informationen möglicherweise nicht ganz genau sind. Wenn Sie zu Python oder einer anderen Sprache wechseln, die häufig mit LibreOffice verwendet wird, kann ich Ihnen mehr helfen.

+0

Vielen Dank für Ihre schnelle Antwort. Ich brauche noch ein Beispiel für die Implementierung eines Listeners mit Listener-Schnittstelle mit einer Erklärung, weil neu in der UNO-Technologie. –

+0

Wahrscheinlich werden Sie keine guten Beispiele für VB6 finden, daher empfehle ich Ihnen eine populärere Sprache zu verwenden, da Sie unerfahren sind. Ich kann leicht Beispiele für Python, LO Basic oder Java bereitstellen. Javascript, C++ und C# sind ebenfalls möglich. –

+0

Ich kann hier noch kein Beispiel dazu finden. Können Sie andere Wege vorschlagen, mit denen Sie geklärt werden können? In meinem Job brauche ich diese Information wirklich. –

Verwandte Themen