2017-10-31 14 views
2

Visual Basic 6でLibreOfficeライターのリスナーイベントをインポートするにはどうすればよいですか?Visual Basic 6でLibreOffice Writerのリスナーイベントをインポートする方法

私は次のコードのようなコンテナリスナーイベントを取得するにはUNOサービスを作成しようとしています、

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

が、私はエラー

コンパイルエラー取得しています:定義されていないSubまたはFunction

誰でも助けてくれますか?

答えて

1

hereのように、CreateUnoListenerはVB6では動作しません。代わりに、リスナインタフェースを別の方法で実装する必要があります。

https://wiki.openoffice.org/wiki/Documentation/DevGuide/OfficeDev/Document_EventsのVBScriptの例を示します。

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) 

myListenerというサブルーチンを定義します。

また、https://www.openoffice.org/udk/common/man/tutorial/office_automation.htmlで情報を確認するのに役立つ場合があります。

https://forum.openoffice.org/en/forum/viewtopic.php?f=45&t=14217で同様のコードを試している人について議論していますが、最終的な解決策ではJavascriptを使用しています。

免責事項:私はVB6コードをテストする方法がないため、この情報が完全ではない可能性があります。 LibreOfficeで一般的に使用されているPythonやその他の言語に切り替えると、私はもっと助けになることができます。

+0

お返事ありがとうございます。それでも、私は、UNO技術に慣れていないので、リスナインタフェースを使ってリスナを実装する例が必要です。 –

+0

ほとんどの場合、VB6の良い例は見つからないので、経験の浅いので、より一般的な言語を使用することをお勧めします。 Python、LO Basic、Javaのサンプルを簡単に提供できます。 Javascript、C++、C#も可能です。 –

+0

私はこれまでのところ例を得ることができません。他の方法で明らかにすることを提案できますか?私の仕事では、私は本当にこの情報が必要です。 –

関連する問題