Esempio n. 1
0
 private void DisplayChangedHandler(object sender, EventArgs e)
 {
     try
     {
         lock (instanceMutex)
         {
             Log("DisplayChangedHandler");
             if (_windowlessControl != null)
             {
                 _windowlessControl.DisplayModeChanged();
             }
         }
     }
     catch (Exception ex)
     {
         ErrorLogger.DumpToDebug(ex);
     }
 }
        protected virtual IntPtr OnWndProc(IntPtr hWnd, uint msg, IntPtr wParam, IntPtr lParam)
        {
            MessageReceivedEventArgs args = new MessageReceivedEventArgs(hWnd, msg, wParam, lParam);

            OnMessageReceived(args);

            if (!args.ReturnValue.HasValue)
            {
                switch (msg)
                {
                case (int)WindowsMessages.WM_PAINT:
                    var processed = Paint();
                    if (processed)
                    {
                        args.ReturnValue = IntPtr.Zero;
                    }
                    break;

                case (int)WindowsMessages.WM_ERASEBKGND:
                    args.ReturnValue = new IntPtr(1);     // return non-zero to indicate no further erasing is required
                    break;

                case (int)WindowsMessages.WM_DISPLAYCHANGE:
                    if (_VMRWindowlessControl != null)
                    {
                        _VMRWindowlessControl.DisplayModeChanged();
                    }
                    else if (_VMRWindowlessControl9 != null)
                    {
                        _VMRWindowlessControl9.DisplayModeChanged();
                    }
                    break;
                }
            }

            return(args.ReturnValue ?? WindowsManagement.DefWindowProc(hWnd, msg, wParam, lParam));
        }