using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace US.Browser.IE { /// /// webbrower 封装 /// public class BrowerWeb : WebIfaces { public BrowerWeb() : base() { } //WindowClosing 活动扩展 public enum GETWINDOWCMD { GW_HWNDFIRST = 0, GW_HWNDLAST = 1, GW_HWNDNEXT = 2, GW_HWNDPREV = 3, GW_OWNER = 4, GW_CHILD = 5, GW_ENABLEDPOPUP = 6 } [DllImport("user32.dll")] private static extern IntPtr GetWindow(IntPtr hWnd, GETWINDOWCMD uCmd); public event EventHandler WindowClosing; protected virtual void OnWindowClosing(EventArgs e) { if (WindowClosing != null) { WindowClosing(this, e); } } protected override void WndProc(ref System.Windows.Forms.Message m) { const Int32 WM_PARENTNOTIFY = 0x210; const Int32 WM_DESTROY = 0x2; if (m.Msg == WM_PARENTNOTIFY) { if (m.WParam.ToInt32() == WM_DESTROY) { if (m.LParam == GetWindow(this.Handle, GETWINDOWCMD.GW_CHILD)) { EventArgs e = new EventArgs(); OnWindowClosing(e); return; } } } base.WndProc(ref m); } } }