CreateUnoListener Function

λ¦¬μŠ€λ„ˆ μΈμŠ€ν„΄μŠ€λ₯Ό λ§Œλ“­λ‹ˆλ‹€.

λ§Žμ€ Uno μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•˜μ—¬ νŠΉμ • λ¦¬μŠ€λ„ˆ μΈν„°νŽ˜μ΄μŠ€μ—μ„œ λ¦¬μŠ€λ„ˆλ₯Ό 등둝할 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ©΄ νŠΉμ • 이벀트λ₯Ό μˆ˜μ‹  λŒ€κΈ°ν•˜κ³  ν•΄λ‹Ή λ¦¬μŠ€λ„ˆ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•  수 μžˆμŠ΅λ‹ˆλ‹€. CreateUnoListener ν•¨μˆ˜λŠ” 호좜된 λ¦¬μŠ€λ„ˆ μΈν„°νŽ˜μ΄μŠ€λ₯Ό λŒ€κΈ°ν•œ λ‹€μŒ μΈν„°νŽ˜μ΄μŠ€κ°€ μ§€μ›ν•˜λŠ” 개체λ₯Ό μΈν„°νŽ˜μ΄μŠ€μ— μ „λ‹¬ν•©λ‹ˆλ‹€. 그런 λ‹€μŒ λ¦¬μŠ€λ„ˆ 등둝을 μœ„ν•΄ λ©”μ†Œλ“œμ— 이 κ°œμ²΄κ°€ μ „λ‹¬λ©λ‹ˆλ‹€.

ꡬ문:

oListener = CreateUnoListener( Prefixname, ListenerInterfaceName )

예:

λ‹€μŒμ˜ μ˜ˆλŠ” Basic 라이브러리 κ°œμ²΄μ— κΈ°μ΄ˆν•©λ‹ˆλ‹€.

Dim oListener

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

CreateUnoListener λ©”μ†Œλ“œμ—λŠ” 두 개의 맀개 λ³€μˆ˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€. 첫 번째 맀개 λ³€μˆ˜λŠ” 접두사이며 μžμ„Έν•œ λ‚΄μš©μ€ μ•„λž˜ μ„€λͺ…λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€. 두 번째 맀개 λ³€μˆ˜λŠ” μ‚¬μš©ν•  λ¦¬μŠ€λ„ˆ μΈν„°νŽ˜μ΄μŠ€μ˜ 전체 μ΄λ¦„μž…λ‹ˆλ‹€.

λ¦¬μŠ€λ„ˆλŠ” 그런 λ‹€μŒ Broadcaster κ°œμ²΄μ— μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ΄λ ‡κ²Œ ν•˜λ €λ©΄ λ¦¬μŠ€λ„ˆ μΆ”κ°€λ₯Ό μœ„ν•œ μ μ ˆν•œ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ λ©”μ†Œλ“œλŠ” 항상 "addFooListener" νŒ¨ν„΄(μ—¬κΈ°μ—μ„œ "Foo"λŠ” 'X'κ°€ μ—†λŠ” λ¦¬μŠ€λ„ˆ μΈν„°νŽ˜μ΄μŠ€ μœ ν˜•)을 λ”°λ¦…λ‹ˆλ‹€. 이 μ˜ˆμ—μ„œλŠ” XContainerListenerλ₯Ό λ“±λ‘ν•˜κΈ° μœ„ν•΄ addContainerListener λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€.

Dim oLib

oLib = BasicLibraries.Library1 ' Library1 must exist!

oLib.addContainerListener( oListener ) ' Register the listener

이제 λ¦¬μŠ€λ„ˆκ°€ λ“±λ‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ΄λ²€νŠΈκ°€ λ°œμƒν•˜λ©΄ ν•΄λ‹Ή λ¦¬μŠ€λ„ˆκ°€ com.sun.star.container.XContainerListener μΈν„°νŽ˜μ΄μŠ€μ—μ„œ ν•΄λ‹Ή λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€.

μ ‘λ‘μ‚¬λŠ” Basic μ„œλΈŒλ£¨ν‹΄μ—μ„œ λ“±λ‘λœ λ¦¬μŠ€λ„ˆλ₯Ό ν˜ΈμΆœν•©λ‹ˆλ‹€. Basic λŸ°νƒ€μž„ μ‹œμŠ€ν…œμ€ "PrefixListenerMethode"λΌλŠ” μ΄λ¦„μ˜ Basic μ„œλΈŒλ£¨ν‹΄ λ˜λŠ” ν•¨μˆ˜λ₯Ό κ²€μƒ‰ν•˜μ—¬ 발견될 경우 ν˜ΈμΆœν•©λ‹ˆλ‹€. μ΄λŸ¬ν•œ μ„œλΈŒλ£¨ν‹΄μ΄λ‚˜ ν•¨μˆ˜κ°€ λ°œκ²¬λ˜μ§€ μ•Šμ„ 경우 λŸ°νƒ€μž„ 였λ₯˜κ°€ λ°œμƒν•©λ‹ˆλ‹€.

이 μ˜ˆμ—μ„œ λ¦¬μŠ€λ„ˆ μΈν„°νŽ˜μ΄μŠ€λŠ” λ‹€μŒ λ©”μ†Œλ“œλ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.

이 μ˜ˆμ—μ„œ μ ‘λ‘μ‚¬λŠ” ContListener_μž…λ‹ˆλ‹€. λ”°λΌμ„œ λ‹€μŒ μ„œλΈŒλ£¨ν‹΄μ„ Basicμ—μ„œ κ΅¬ν˜„ν•΄μ•Ό ν•©λ‹ˆλ‹€.

μ΄λ²€νŠΈμ— λŒ€ν•œ 정보λ₯Ό ν¬ν•¨ν•˜λŠ” 이벀트 ꡬ쑰 μœ ν˜•μ΄ λͺ¨λ“  λ¦¬μŠ€λ„ˆ μœ ν˜•μ— λŒ€ν•΄ μ‘΄μž¬ν•©λ‹ˆλ‹€. λ¦¬μŠ€λ„ˆ λ©”μ†Œλ“œκ°€ 호좜되면 이 이벀트의 μΈμŠ€ν„΄μŠ€κ°€ λ©”μ†Œλ“œμ— 맀개 λ³€μˆ˜λ‘œ μ „λ‹¬λ©λ‹ˆλ‹€. λ˜ν•œ ν•΄λ‹Ή 맀개 λ³€μˆ˜κ°€ Sub μ„ μ–Έμ—μ„œ 전달될 경우 Basic λ¦¬μŠ€λ„ˆ λ©”μ†Œλ“œκ°€ μ΄λŸ¬ν•œ 이벀트 개체λ₯Ό ν˜ΈμΆœν•  μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 예λ₯Ό λ“€λ©΄ λ‹€μŒκ³Ό κ°™μŠ΅λ‹ˆλ‹€.

Sub ContListener_disposing( oEvent )

    MsgBox "disposing"

    MsgBox oEvent.Dbg_Properties

End Sub

 

Sub ContListener_elementInserted( oEvent )

    MsgBox "elementInserted"

    MsgBox oEvent.Dbg_Properties

End Sub

 

Sub ContListener_elementRemoved( oEvent )

    MsgBox "elementRemoved"

    MsgBox oEvent.Dbg_Properties

End Sub

 

Sub ContListener_elementReplaced( oEvent )

    MsgBox "elementReplaced"

    MsgBox oEvent.Dbg_Properties

End Sub

λ‹€μŒκ³Ό 같이 이벀트 개체λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ„ 경우 개체의 맀개 λ³€μˆ˜λ₯Ό 포함할 ν•„μš”κ°€ μ—†μŠ΅λ‹ˆλ‹€.

' Minimal implementation of Sub disposing

Sub ContListener_disposing

End Sub

κ²½κ³  μ•„μ΄μ½˜

Basic λŸ°νƒ€μž„ 였λ₯˜λ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•΄ λ¦¬μŠ€λ„ˆ λ©”μ†Œλ“œλ₯Ό 항상 κ΅¬ν˜„ν•΄μ•Ό ν•©λ‹ˆλ‹€.