| File: System\Windows\Forms\Controls\WebBrowser\WebBrowserBase.WebBrowserBaseNativeWindow.cs | Web Access |
| Project: src\winforms\src\System.Windows.Forms\System.Windows.Forms.csproj (System.Windows.Forms) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. using System.Drawing; namespace System.Windows.Forms; public partial class WebBrowserBase { /// <summary> /// Defines a window that the ActiveX window is attached to so that we can override it's wndproc. /// </summary> private class WebBrowserBaseNativeWindow : NativeWindow { private readonly WebBrowserBase _webBrowserBase; public WebBrowserBaseNativeWindow(WebBrowserBase ax) { _webBrowserBase = ax; } /// <summary> /// Pass messages on to the NotifyIcon object's wndproc handler. /// </summary> protected override void WndProc(ref Message m) { switch (m.MsgInternal) { case PInvokeCore.WM_WINDOWPOSCHANGING: WmWindowPosChanging(ref m); break; default: base.WndProc(ref m); break; } } private unsafe void WmWindowPosChanging(ref Message m) { WINDOWPOS* wp = (WINDOWPOS*)m.LParamInternal; wp->x = 0; wp->y = 0; Size s = _webBrowserBase._webBrowserBaseChangingSize; if (s.Width == -1) { // Invalid value. Use WebBrowserBase.Bounds instead, when this is the case. wp->cx = _webBrowserBase.Width; wp->cy = _webBrowserBase.Height; } else { wp->cx = s.Width; wp->cy = s.Height; } m.ResultInternal = (LRESULT)0; } } }