void WebBrowserEx_ShowMessage(object sender, WebBrowserShowMessageEventArgs e)
 {
     Trace.WriteLine(string.Format("Caption=\"{0}\", Text=\"{1}\", Buttons={2}, Icon={3}, >>Result={4}, >>Handled={5}", e.Caption, e.Text, e.Buttons, e.Icon, e.Result, e.Handled), "[" + this.instance + "] WebBrowserEx.EncryptionLevelChanged");
     e.Result  = MessageBox.Show(e.Window, e.Text, (string.Format("WebBrowserEx {0}", this.instance)), e.Buttons, e.Icon);
     e.Handled = true;
     Trace.WriteLine(string.Format("Caption=\"{0}\", Text=\"{1}\", Buttons={2}, Icon={3}, <<Result={4}, <<Handled={5}", e.Caption, e.Text, e.Buttons, e.Icon, e.Result, e.Handled), "[" + this.instance + "] WebBrowserEx.EncryptionLevelChanged");
 }
            uint UnsafeNativeMethods.IDocHostShowUI.ShowMessage(IntPtr hwnd, string lpstrText, string lpstrCaption, uint dwType, string lpstrHelpFile, uint dwHelpContext, out int lpResult)
            {
                WebBrowserShowMessageEventArgs showMessageEventArgs = new WebBrowserShowMessageEventArgs(
                    NativeWindow.FromHandle(hwnd),
                    lpstrText,
                    lpstrCaption,
                    (MessageBoxButtons)(dwType & 0xF),
                    (MessageBoxIcon)(dwType & 0xF0),
                    lpstrHelpFile,
                    dwHelpContext);

                this.Host.OnShowMessage(showMessageEventArgs);

                if (showMessageEventArgs.Handled)
                {
                    lpResult = (int)(showMessageEventArgs.Result);
                    return(UnsafeNativeMethods.HRESULT.S_OK);
                }
                else
                {
                    lpResult = 0;
                    return(UnsafeNativeMethods.HRESULT.S_FALSE);
                }
            }