2008/09/06

アドインの話

MSDN Library に System.AddIn名前空間たるものがあります。アプリケーションを拡張できるようにするものです。

これを使って、UIを返すアドインを WindowsForm で実装しようとしていたんですが、できません。どうやら、アプリケーションドメイン間でコントロールがうまく動いてくれないようです。

System.Windows.Forms.Control は MarshalByRefObject を継承してるくせにできません。ControlCollection.Add()とかで追加しようとすると、internal なメソッドにアクセスしたとか言うエラーが出ます。

ためしに、Control.Handleプロパティから取得したハンドルを渡して、Control.FromChildHandle()とかいうので取得しようとしてもだめです。null帰ってきます。アプリケーションドメインが違うとメモリ空間も違うってことでしょうか?

誰か解決法があったら教えてください。よろしくお願いします。

0 件のコメント: