C#/.NET で ActiveX ドキュメントを実装するにはどうすればよいですか? (ActiveX ドキュメントは IE でそれ自体を描画できます)
更新: IE ウィンドウで独自のドキュメント タイプを描画するためのソリューションが必要です (MS Word や MS Excel が IE でドキュメントを描画するように)。
4 に答える
そのためには、OLEに飛び込む必要があります。
IOleDocument、IOleInPlaceSiteなど(詳細についてはMSDNを参照してください)。クライアントに必要なインターフェース(IEがコンテナーであり、インターフェースの実装と通信する必要があるため)と、通信がどのように行われているのか(たとえば、いつ呼び出されるのか)を把握します。これはロケット科学ではありませんが、それでも信じています。かなりの量の仕事。
これは可能ですが、難しいです。悪いのは、ドキュメントが不足していることです...マイクロソフトはこのシナリオをサポートすることに関心がありません。もう1つの難しい部分は、HTML/DOMとActiveXコントロールの間の境界をデバッグすることです。
あなたがしていることについては、Silverlightがより良い選択であるように思われます。.Netのサブセットのみをサポートしますが、グラフィックの描画をサポートします。ドキュメントを見つけるのがはるかに簡単になります。また、Windows以外のコンピューターでも実行できます。
ただし、Silverlightにはない機能(オーディオ入力のサポートなど)が必要な場合もあります。その場合、さまざまな品質をテーマにしたさまざまなブログがあります。これが私にとって最も役立つものとして際立っていた2つです:
http://www.codeproject.com/KB/cs/CreateActiveXDotNet.aspx
http://blog.ianchivers.com/wordpress/?p=22
OleViewを使用して、作成するタイプライブラリを検査し、期待どおりであることを確認することをお勧めします。これを実行して、イベントプロパティをget / set関数に分割する方法を確認することもできます。これは、いくつかのシナリオをデバッグするために実行する必要がありました。
また、「デバッガーをプロセスにアタッチする」ことと、スクリプト化されたデバッグまたは管理されたデバッグとの違いにも注意してください。ある時点で、もう一方を使用したと思うときに、一方にアタッチします。
http://msdn.microsoft.com/en-us/library/system.windows.forms.htmldocument.domdocument.aspxを見てください。DOM Document の .NET ラッパーです。
私の最初の考えは、WPF ウィンドウまたは IE でホストできる WPF Pageを使用できるということです。
MSDN から:
Windows Internet Explorer、NavigationWindow、および Frame でナビゲートおよびホストできるコンテンツのページをカプセル化します。