私はこのコードスニペットを持っています:
internal class MTool : NativeWindow
{
private const int WM_LBUTTONDOWN = 0x0201;
public event TipDeactivateEventHandler Deactivate;
protected override void WndProc(ref System.Windows.Forms.Message m)
{
if( m.Msg == WM_LBUTTONDOWN )
{
if( this.Deactivate != null)
{
this.Deactivate();
}
}
base.WndProc(ref m);
}
}
プログラムを実行すると、その行で AccessViolationException エラーが発生し、そのbase.WndProc(ref m);
理由がわかりません。
どうやらこれは .NET 2.0 から 4.0 に移植されたようで、私の理論では、WndProc をオーバーライドする代わりに現在使用されている別の方法があるかもしれません。この場合ですか?そうでない場合、なぜこの例外が発生するのですか?