FoxProで何かをしてから何年も経ちますが、作業が必要なレガシーシステムがあります。さて、FoxProからMapPointやExcelなどのCOMベースのアプリケーションを呼び出すことができます。私は前にそれをしました。ただし、関数またはオブジェクトメソッドをイベントコールバックとして渡すにはどうすればよいですか?それも可能ですか?(オンラインで何も見つからないか、追跡できたFoxProの本が見つかりません)
以下は、MapPointのドキュメントから抜粋したVB6の例です。たまたまOnConnection()
それ自体がコールバックです。ただし、への呼び出しはmoaApp.AddCommand()
、コールバック関数()への参照をメニューコールバックとしてSayHello()
MapPoint( )に渡します。moApp
質問にとって重要というわけではありませんが、おそらくSave、Quit、およびMenuコールバックイベントをトラップする必要があります。
Dim moaApp As MapPoint.Application
Public Sub SayHello()
MsgBox "Hello"
End Sub
Private Sub AddinInstance_OnConnection(ByVal Application As Object, ByVal ConnectMode As
AddInDesignerObjects.ext_ConnectMode, ByVal AddInInst As Object, custom() As Variant)
On Error GoTo error_handler
Set moaApp = Application
'Add this command to the menu (HOW DO I DO THIS IN FOXPRO?)
moaApp.AddCommand "Saying Hello", "SayHello", Me
Exit Sub
error_handler:
MsgBox Err.Description
End Sub