アセンブリファイルにリソースとしてHTMLファイルを埋め込み、表示する方法を紹介します。埋め込まれたHTMLファイルを一時ファイルに書き込み、それを表示するようにすれば済む話ですが、ここでは直接表示する方法を紹介します。
Internet Explorer 4以降(?)では、res://プロトコルがサポートされています。これは、埋め込まれているリソースを表示するものですので、これを使えば埋め込んだHTMLファイルを表示できます。ところが、res://で対応しているリソースはWin32リソースで、これは通常.NET Frameworkで使用されるマネージリソースとは異なります。
.NETでWin32リソースを埋め込む方法は、「Win32リソースを実行ファイルに埋め込む」で詳しく紹介していますので、そちらをご覧ください。
Win32リソースとして埋め込まれたリソースへは、Internet Explorerから、
res://(アセンブリファイルのフルパス)/(リソース名)
としてアクセスできます。例えばリソース名を"README.HTML"とした場合は、
res://(アセンブリファイルのフルパス)/README.HTML
で埋め込まれたHTMLが表示されます。
最後に、Microsoft Web Browserコントロールで自分自身のアセンブリに埋め込んだHTML(リソース名が"README.HTML")を表示する例を示します。ラッパーDLLが作成されており、これを使用するものとします。
Dim url As String = "res://" + _ System.Reflection.Assembly.GetExecutingAssembly().Location + _ "/README.HTML" 'WebBrowserに表示する AxWebBrowser1.Navigate(url)
string url = "res://" + System.Reflection.Assembly.GetExecutingAssembly().Location + "/README.HTML"; //WebBrowserに表示する object refmissing = System.Reflection.Missing.Value; AxWebBrowser1.Navigate(url, ref refmissing, ref refmissing, ref refmissing, ref refmissing);
(この記事は、「.NETプログラミング研究 第51号」で紹介したものを基にしています。)
注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。