axWebBrowser.BeforeNavigate2 その2

http://support.microsoft.com/default.aspx?scid=kb;EN-US;325079 のようにしたら動いた。ポイントを紹介。

1. フォームをSHDocVw.DWebBrowserEventsインタフェースの実装とする

public class MainForm : System.Windows.Forms.Form, SHDocVw.DWebBrowserEvents

2. 1.に伴って17個のメソッドを実装。中身は空。

#region DWebBrowserEvents の実装
public void BeforeNavigate(string URL, int Flags, string TargetFrameName, ref object PostData, string Headers, ref bool Cancel){}
public void PropertyChange(string Property){}
public void NavigateComplete(string URL){}
public void WindowActivate(){}
public void FrameBeforeNavigate(string URL, int Flags, string TargetFrameName, ref object PostData, string Headers, ref bool Cancel){}
public void NewWindow(string URL, int Flags, string TargetFrameName, ref object PostData, string Headers, ref bool Processed){}
public void FrameNewWindow(string URL, int Flags, string TargetFrameName, ref object PostData, string Headers, ref bool Processed){}
public void TitleChange(string Text){}
public void DownloadBegin(){}
public void DownloadComplete(){}
public void WindowMove(){}
public void WindowResize(){}
public void Quit(ref bool Cancel){}
public void ProgressChange(int Progress, int ProgressMax){}
public void StatusTextChange(string Text){}
public void CommandStateChange(int Command, bool Enable){}
public void FrameNavigateComplete(string URL){}
#endregion

3. COMインタフェースと接続

public MainForm()
{
//
// Windows フォーム デザイナ サポートに必要です。
//
InitializeComponent();
UCOMIConnectionPointContainer icpc = (UCOMIConnectionPointContainer)axWebBrowser1.GetOcx(); // ADDed

Guid g = typeof(DWebBrowserEvents).GUID;
icpc.FindConnectionPoint(ref g, out icp);
icp.Advise(this, out cookie);
}

あとは終了処理。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です