| File: System\Windows\Forms\Dialogs\TaskDialog\TaskDialog.WindowSubclassHandler.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. namespace System.Windows.Forms; public partial class TaskDialog { private class WindowSubclassHandler : Forms.WindowSubclassHandler { private readonly TaskDialog _taskDialog; public WindowSubclassHandler(TaskDialog taskDialog) : base((HWND)taskDialog.OrThrowIfNull().Handle) { _taskDialog = taskDialog; } protected override void WndProc(ref Message m) { switch (m.MsgInternal) { case ContinueButtonClickHandlingMessage: // We received the message which we posted earlier when // handling a TDN_BUTTON_CLICKED notification, so we should // no longer ignore such notifications. // We do not forward the message to the base class. _taskDialog._ignoreButtonClickedNotifications = false; break; default: base.WndProc(ref m); break; } } protected override bool CanCatchWndProcException(Exception ex) => CanCatchCallbackException(); protected override void HandleWndProcException(Exception ex) => HandleCallbackException(ex); } }