投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/6/9 19:27:27
> ・リンクをクリックしたらwavを鳴らす
wav ファイルを鳴らす方法については、Visual Basic 中学校で既に紹介されていますね。
http://homepage1.nifty.com/rucio/main/Samples/s_mm1.htm

WebBrowser に表示された HTML ドキュメントのクリックは、onclick イベントで取得できます。
http://msdn.microsoft.com/en-us/library/ms536913.aspx
http://support.microsoft.com/kb/246247/ja

上記では document オブジェクトの onclick をとらえていますが、A オブジェクトの場合にも応用できるはずです。

なお、クリック以外あるいは A タグ以外のページ遷移にも対応させたければ、BeforeNavigate2 イベントを利用できます。
http://msdn.microsoft.com/en-us/library/aa768326.aspx


> ・リンクをクリックしてそれがjpg,gif,png画像ファイルだったら別なウィンドウを発生させる
少々面倒ですが、こんな手順で実装できるかと思います。

 (1) BeforeNavigate2 イベントで URL を拾う。

 (2) ServerXMLHttpRequest オブジェクトで、その URL をバックグラウンドでリクエスト。

 (3) 返却された結果が画像かどうかを調べる。
  → Content-Type ヘッダで判断するか、実際に受け取ったバイナリの内容から調査。

 (4) 画像では無い場合、そのまま BeforeNavigate2 イベントを Exit Sub する。

 (5) 画像だった場合、WebBrowser を貼った別フォームを New で生成し、空ページを表示。
  → Navigate "about:blank" させた後、読み込み完了まで待つ。

 (6) 自ウィンドウで開かれてしまうのを防ぐため、BeforeNavigate2 イベントの
  Cancel 引数に True を代入しておく。

 (7) (5) の WebBrowser の Document プロパティを、IPersistStreamInit 型の変数に Set する。
  → IPersistStreamInit は、下記の OLELIB.TLB を参照設定すると使えます。
   http://www.mvps.org/emorcillo/en/code/vb6/index.shtml

 (8) (7) の変数を通じて、IPersistStreamInit の Load メソッドを呼び出し、
  その Load メソッド引数に、(2) の ServerXMLHttpRequest の responseStream プロパティを渡す。

 (9) 最後に、(5) で生成したフォームを Show メソッドで表示させて完成。