| ■No90590 (TanuTanu さん) に返信 > Delegate Function TESTAAADelegate() As Boolean このデリゲートのシグネチャは、 引数:0個 戻り値:Boolean となっています。
> Sub TESTAAA(ByVal e As mshtml.IHTMLEventObj) 一方、このメソッドのシグネチャは、 引数:1個(IHTMLEventObj) 戻り値:なし ですよね。
そのため、 > New TESTAAADelegate(AddressOf TESTAAA) と書かれた部分で、 > メソッド 'Public Sub TESTAAA(e As IHTMLEventObj)' に、デリゲート 'Delegate Function Form1.TESTDelegate() As Boolean' > と互換性があるシグネチャがありません。 というエラーが生じているというわけです。
本来必要なのは WebDisp_click と同じシグネチャなので、 ひとまずコンパイルを通すだけで良いなら、たとえばこんな感じ。
' Func(Of mshtml.IHTMLEventObj, Boolean) デリゲートでも可 Private Delegate Function ExampleDelegate(ByVal e As mshtml.IHTMLEventObj) As Boolean
Private Function Example(ByVal e As mshtml.IHTMLEventObj) As Boolean Return CBool(CallByName(〜〜)) End Function
Private Function WebDisp_click(ByVal e As mshtml.IHTMLEventObj) As Boolean Return CBool(Invoke(New ExampleDelegate(AddressOf Example), e)) End Function
> これを何とか動くようにする方法をお教え頂くことは出来ますでしょうか。 このパターンでワーカースレッドを立てるのは、パフォーマンス面でも管理面でもデメリットになるかも。 |