diff --git a/BUILD.gn b/BUILD.gn
index 847e47f..7b634a7 100644
--- a/BUILD.gn
+++ b/BUILD.gn
@@ -1183,7 +1183,18 @@
       "xfa/fwl/core/cfwl_listbox.h",
       "xfa/fwl/core/cfwl_listitem.cpp",
       "xfa/fwl/core/cfwl_listitem.h",
+      "xfa/fwl/core/cfwl_message.cpp",
       "xfa/fwl/core/cfwl_message.h",
+      "xfa/fwl/core/cfwl_msgkey.cpp",
+      "xfa/fwl/core/cfwl_msgkey.h",
+      "xfa/fwl/core/cfwl_msgkillfocus.cpp",
+      "xfa/fwl/core/cfwl_msgkillfocus.h",
+      "xfa/fwl/core/cfwl_msgmouse.cpp",
+      "xfa/fwl/core/cfwl_msgmouse.h",
+      "xfa/fwl/core/cfwl_msgmousewheel.cpp",
+      "xfa/fwl/core/cfwl_msgmousewheel.h",
+      "xfa/fwl/core/cfwl_msgsetfocus.cpp",
+      "xfa/fwl/core/cfwl_msgsetfocus.h",
       "xfa/fwl/core/cfwl_picturebox.cpp",
       "xfa/fwl/core/cfwl_picturebox.h",
       "xfa/fwl/core/cfwl_pushbutton.cpp",
diff --git a/xfa/fwl/core/cfwl_event.h b/xfa/fwl/core/cfwl_event.h
index 4b74c02..e7bc15a 100644
--- a/xfa/fwl/core/cfwl_event.h
+++ b/xfa/fwl/core/cfwl_event.h
@@ -10,7 +10,8 @@
 #include "core/fxcrt/fx_coordinates.h"
 #include "core/fxcrt/fx_string.h"
 #include "core/fxcrt/fx_system.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgkey.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
 #include "xfa/fwl/core/fwl_error.h"
 
 enum class FWL_SCBCODE {
diff --git a/xfa/fwl/core/cfwl_message.cpp b/xfa/fwl/core/cfwl_message.cpp
new file mode 100644
index 0000000..e233900
--- /dev/null
+++ b/xfa/fwl/core/cfwl_message.cpp
@@ -0,0 +1,20 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fwl/core/cfwl_message.h"
+
+CFWL_Message::CFWL_Message()
+    : m_pSrcTarget(nullptr), m_pDstTarget(nullptr), m_dwExtend(0) {}
+
+CFWL_Message::~CFWL_Message() {}
+
+std::unique_ptr<CFWL_Message> CFWL_Message::Clone() {
+  return nullptr;
+}
+
+CFWL_MessageType CFWL_Message::GetClassID() const {
+  return CFWL_MessageType::None;
+}
diff --git a/xfa/fwl/core/cfwl_message.h b/xfa/fwl/core/cfwl_message.h
index 56e8185..1ad43a6 100644
--- a/xfa/fwl/core/cfwl_message.h
+++ b/xfa/fwl/core/cfwl_message.h
@@ -7,6 +7,8 @@
 #ifndef XFA_FWL_CORE_CFWL_MESSAGE_H_
 #define XFA_FWL_CORE_CFWL_MESSAGE_H_
 
+#include <memory>
+
 #include "core/fxcrt/fx_basic.h"
 #include "core/fxcrt/fx_string.h"
 #include "core/fxcrt/fx_system.h"
@@ -21,21 +23,6 @@
   SetFocus
 };
 
-enum class FWL_MouseCommand {
-  LeftButtonDown,
-  LeftButtonUp,
-  LeftButtonDblClk,
-  RightButtonDown,
-  RightButtonUp,
-  RightButtonDblClk,
-  Move,
-  Enter,
-  Leave,
-  Hover
-};
-
-enum class FWL_KeyCommand { KeyDown, KeyUp, Char };
-
 class IFWL_Widget;
 
 class CFWL_Message {
@@ -43,84 +30,13 @@
   CFWL_Message();
   virtual ~CFWL_Message();
 
-  virtual CFWL_Message* Clone();
+  virtual std::unique_ptr<CFWL_Message> Clone();
   virtual CFWL_MessageType GetClassID() const;
 
-  uint32_t Release();
-  CFWL_Message* Retain();
-
   IFWL_Widget* m_pSrcTarget;
   IFWL_Widget* m_pDstTarget;
   uint32_t m_dwExtend;
-
- private:
-  uint32_t m_dwRefCount;
 };
 
-inline CFWL_Message::CFWL_Message()
-    : m_pSrcTarget(nullptr),
-      m_pDstTarget(nullptr),
-      m_dwExtend(0),
-      m_dwRefCount(1) {}
-
-inline CFWL_Message::~CFWL_Message() {}
-
-inline CFWL_Message* CFWL_Message::Clone() {
-  return nullptr;
-}
-
-inline CFWL_MessageType CFWL_Message::GetClassID() const {
-  return CFWL_MessageType::None;
-}
-
-inline uint32_t CFWL_Message::Release() {
-  m_dwRefCount--;
-  uint32_t dwRefCount = m_dwRefCount;
-  if (!m_dwRefCount)
-    delete this;
-  return dwRefCount;
-}
-
-inline CFWL_Message* CFWL_Message::Retain() {
-  m_dwRefCount++;
-  return this;
-}
-
-#define FWL_MESSAGE_DEF(classname, msgType, ...)                           \
-  class classname : public CFWL_Message {                                  \
-   public:                                                                 \
-    classname();                                                           \
-    ~classname() override;                                                 \
-    CFWL_Message* Clone() override;                                        \
-    CFWL_MessageType GetClassID() const override;                          \
-    __VA_ARGS__                                                            \
-  };                                                                       \
-  inline classname::classname() {}                                         \
-  inline classname::~classname() {}                                        \
-  inline CFWL_Message* classname::Clone() { return new classname(*this); } \
-  inline CFWL_MessageType classname::GetClassID() const { return msgType; }
-
-FWL_MESSAGE_DEF(CFWL_MsgMouse, CFWL_MessageType::Mouse, FX_FLOAT m_fx;
-                FX_FLOAT m_fy;
-                uint32_t m_dwFlags;
-                FWL_MouseCommand m_dwCmd;)
-
-FWL_MESSAGE_DEF(CFWL_MsgMouseWheel, CFWL_MessageType::MouseWheel, FX_FLOAT m_fx;
-                FX_FLOAT m_fy;
-                FX_FLOAT m_fDeltaX;
-                FX_FLOAT m_fDeltaY;
-                uint32_t m_dwFlags;)
-
-FWL_MESSAGE_DEF(CFWL_MsgSetFocus,
-                CFWL_MessageType::SetFocus,
-                IFWL_Widget* m_pKillFocus;)
-
-FWL_MESSAGE_DEF(CFWL_MsgKillFocus,
-                CFWL_MessageType::KillFocus,
-                IFWL_Widget* m_pSetFocus;)
-
-FWL_MESSAGE_DEF(CFWL_MsgKey, CFWL_MessageType::Key, uint32_t m_dwKeyCode;
-                uint32_t m_dwFlags;
-                FWL_KeyCommand m_dwCmd;)
 
 #endif  // XFA_FWL_CORE_CFWL_MESSAGE_H_
diff --git a/xfa/fwl/core/cfwl_msgkey.cpp b/xfa/fwl/core/cfwl_msgkey.cpp
new file mode 100644
index 0000000..0163da9
--- /dev/null
+++ b/xfa/fwl/core/cfwl_msgkey.cpp
@@ -0,0 +1,21 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fwl/core/cfwl_msgkey.h"
+
+#include "third_party/base/ptr_util.h"
+
+CFWL_MsgKey::CFWL_MsgKey() {}
+
+CFWL_MsgKey::~CFWL_MsgKey() {}
+
+std::unique_ptr<CFWL_Message> CFWL_MsgKey::Clone() {
+  return pdfium::MakeUnique<CFWL_MsgKey>(*this);
+}
+
+CFWL_MessageType CFWL_MsgKey::GetClassID() const {
+  return CFWL_MessageType::Key;
+}
diff --git a/xfa/fwl/core/cfwl_msgkey.h b/xfa/fwl/core/cfwl_msgkey.h
new file mode 100644
index 0000000..492e53f
--- /dev/null
+++ b/xfa/fwl/core/cfwl_msgkey.h
@@ -0,0 +1,28 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FWL_CORE_CFWL_MSGKEY_H_
+#define XFA_FWL_CORE_CFWL_MSGKEY_H_
+
+#include "xfa/fwl/core/cfwl_message.h"
+
+enum class FWL_KeyCommand { KeyDown, KeyUp, Char };
+
+class CFWL_MsgKey : public CFWL_Message {
+ public:
+  CFWL_MsgKey();
+  ~CFWL_MsgKey() override;
+
+  // CFWL_Message
+  std::unique_ptr<CFWL_Message> Clone() override;
+  CFWL_MessageType GetClassID() const override;
+
+  uint32_t m_dwKeyCode;
+  uint32_t m_dwFlags;
+  FWL_KeyCommand m_dwCmd;
+};
+
+#endif  // XFA_FWL_CORE_CFWL_MSGKEY_H_
diff --git a/xfa/fwl/core/cfwl_msgkillfocus.cpp b/xfa/fwl/core/cfwl_msgkillfocus.cpp
new file mode 100644
index 0000000..c2407ed
--- /dev/null
+++ b/xfa/fwl/core/cfwl_msgkillfocus.cpp
@@ -0,0 +1,21 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fwl/core/cfwl_msgkillfocus.h"
+
+#include "third_party/base/ptr_util.h"
+
+CFWL_MsgKillFocus::CFWL_MsgKillFocus() {}
+
+CFWL_MsgKillFocus::~CFWL_MsgKillFocus() {}
+
+std::unique_ptr<CFWL_Message> CFWL_MsgKillFocus::Clone() {
+  return pdfium::MakeUnique<CFWL_MsgKillFocus>(*this);
+}
+
+CFWL_MessageType CFWL_MsgKillFocus::GetClassID() const {
+  return CFWL_MessageType::KillFocus;
+}
diff --git a/xfa/fwl/core/cfwl_msgkillfocus.h b/xfa/fwl/core/cfwl_msgkillfocus.h
new file mode 100644
index 0000000..d2a1f20
--- /dev/null
+++ b/xfa/fwl/core/cfwl_msgkillfocus.h
@@ -0,0 +1,24 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FWL_CORE_CFWL_MSGKILLFOCUS_H_
+#define XFA_FWL_CORE_CFWL_MSGKILLFOCUS_H_
+
+#include "xfa/fwl/core/cfwl_message.h"
+
+class CFWL_MsgKillFocus : public CFWL_Message {
+ public:
+  CFWL_MsgKillFocus();
+  ~CFWL_MsgKillFocus() override;
+
+  // CFWL_Message
+  std::unique_ptr<CFWL_Message> Clone() override;
+  CFWL_MessageType GetClassID() const override;
+
+  IFWL_Widget* m_pSetFocus;
+};
+
+#endif  // XFA_FWL_CORE_CFWL_MSGKILLFOCUS_H_
diff --git a/xfa/fwl/core/cfwl_msgmouse.cpp b/xfa/fwl/core/cfwl_msgmouse.cpp
new file mode 100644
index 0000000..ff28cdc
--- /dev/null
+++ b/xfa/fwl/core/cfwl_msgmouse.cpp
@@ -0,0 +1,21 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fwl/core/cfwl_msgmouse.h"
+
+#include "third_party/base/ptr_util.h"
+
+CFWL_MsgMouse::CFWL_MsgMouse() {}
+
+CFWL_MsgMouse::~CFWL_MsgMouse() {}
+
+std::unique_ptr<CFWL_Message> CFWL_MsgMouse::Clone() {
+  return pdfium::MakeUnique<CFWL_MsgMouse>(*this);
+}
+
+CFWL_MessageType CFWL_MsgMouse::GetClassID() const {
+  return CFWL_MessageType::Mouse;
+}
diff --git a/xfa/fwl/core/cfwl_msgmouse.h b/xfa/fwl/core/cfwl_msgmouse.h
new file mode 100644
index 0000000..c617ac1
--- /dev/null
+++ b/xfa/fwl/core/cfwl_msgmouse.h
@@ -0,0 +1,40 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FWL_CORE_CFWL_MSGMOUSE_H_
+#define XFA_FWL_CORE_CFWL_MSGMOUSE_H_
+
+#include "xfa/fwl/core/cfwl_message.h"
+
+enum class FWL_MouseCommand {
+  LeftButtonDown,
+  LeftButtonUp,
+  LeftButtonDblClk,
+  RightButtonDown,
+  RightButtonUp,
+  RightButtonDblClk,
+  Move,
+  Enter,
+  Leave,
+  Hover
+};
+
+class CFWL_MsgMouse : public CFWL_Message {
+ public:
+  CFWL_MsgMouse();
+  ~CFWL_MsgMouse() override;
+
+  // CFWL_Message
+  std::unique_ptr<CFWL_Message> Clone() override;
+  CFWL_MessageType GetClassID() const override;
+
+  FX_FLOAT m_fx;
+  FX_FLOAT m_fy;
+  uint32_t m_dwFlags;
+  FWL_MouseCommand m_dwCmd;
+};
+
+#endif  // XFA_FWL_CORE_CFWL_MSGMOUSE_H_
diff --git a/xfa/fwl/core/cfwl_msgmousewheel.cpp b/xfa/fwl/core/cfwl_msgmousewheel.cpp
new file mode 100644
index 0000000..b5cbd14
--- /dev/null
+++ b/xfa/fwl/core/cfwl_msgmousewheel.cpp
@@ -0,0 +1,21 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fwl/core/cfwl_msgmousewheel.h"
+
+#include "third_party/base/ptr_util.h"
+
+CFWL_MsgMouseWheel::CFWL_MsgMouseWheel() {}
+
+CFWL_MsgMouseWheel::~CFWL_MsgMouseWheel() {}
+
+std::unique_ptr<CFWL_Message> CFWL_MsgMouseWheel::Clone() {
+  return pdfium::MakeUnique<CFWL_MsgMouseWheel>(*this);
+}
+
+CFWL_MessageType CFWL_MsgMouseWheel::GetClassID() const {
+  return CFWL_MessageType::MouseWheel;
+}
diff --git a/xfa/fwl/core/cfwl_msgmousewheel.h b/xfa/fwl/core/cfwl_msgmousewheel.h
new file mode 100644
index 0000000..c913eae
--- /dev/null
+++ b/xfa/fwl/core/cfwl_msgmousewheel.h
@@ -0,0 +1,28 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FWL_CORE_CFWL_MSGMOUSEWHEEL_H_
+#define XFA_FWL_CORE_CFWL_MSGMOUSEWHEEL_H_
+
+#include "xfa/fwl/core/cfwl_message.h"
+
+class CFWL_MsgMouseWheel : public CFWL_Message {
+ public:
+  CFWL_MsgMouseWheel();
+  ~CFWL_MsgMouseWheel() override;
+
+  // CFWL_Message
+  std::unique_ptr<CFWL_Message> Clone() override;
+  CFWL_MessageType GetClassID() const override;
+
+  FX_FLOAT m_fx;
+  FX_FLOAT m_fy;
+  FX_FLOAT m_fDeltaX;
+  FX_FLOAT m_fDeltaY;
+  uint32_t m_dwFlags;
+};
+
+#endif  // XFA_FWL_CORE_CFWL_MSGMOUSEWHEEL_H_
diff --git a/xfa/fwl/core/cfwl_msgsetfocus.cpp b/xfa/fwl/core/cfwl_msgsetfocus.cpp
new file mode 100644
index 0000000..7fe3501
--- /dev/null
+++ b/xfa/fwl/core/cfwl_msgsetfocus.cpp
@@ -0,0 +1,21 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#include "xfa/fwl/core/cfwl_msgsetfocus.h"
+
+#include "third_party/base/ptr_util.h"
+
+CFWL_MsgSetFocus::CFWL_MsgSetFocus() {}
+
+CFWL_MsgSetFocus::~CFWL_MsgSetFocus() {}
+
+std::unique_ptr<CFWL_Message> CFWL_MsgSetFocus::Clone() {
+  return pdfium::MakeUnique<CFWL_MsgSetFocus>(*this);
+}
+
+CFWL_MessageType CFWL_MsgSetFocus::GetClassID() const {
+  return CFWL_MessageType::SetFocus;
+}
diff --git a/xfa/fwl/core/cfwl_msgsetfocus.h b/xfa/fwl/core/cfwl_msgsetfocus.h
new file mode 100644
index 0000000..ffcf5b3
--- /dev/null
+++ b/xfa/fwl/core/cfwl_msgsetfocus.h
@@ -0,0 +1,24 @@
+// Copyright 2016 PDFium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+// Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
+
+#ifndef XFA_FWL_CORE_CFWL_MSGSETFOCUS_H_
+#define XFA_FWL_CORE_CFWL_MSGSETFOCUS_H_
+
+#include "xfa/fwl/core/cfwl_message.h"
+
+class CFWL_MsgSetFocus : public CFWL_Message {
+ public:
+  CFWL_MsgSetFocus();
+  ~CFWL_MsgSetFocus() override;
+
+  // CFWL_Message
+  std::unique_ptr<CFWL_Message> Clone() override;
+  CFWL_MessageType GetClassID() const override;
+
+  IFWL_Widget* m_pKillFocus;
+};
+
+#endif  // XFA_FWL_CORE_CFWL_MSGSETFOCUS_H_
diff --git a/xfa/fwl/core/cfwl_widgetmgr.cpp b/xfa/fwl/core/cfwl_widgetmgr.cpp
index 5ef1790..9172d79 100644
--- a/xfa/fwl/core/cfwl_widgetmgr.cpp
+++ b/xfa/fwl/core/cfwl_widgetmgr.cpp
@@ -6,7 +6,6 @@
 
 #include "xfa/fwl/core/cfwl_widgetmgr.h"
 
-#include "xfa/fwl/core/cfwl_message.h"
 #include "xfa/fwl/core/fwl_noteimp.h"
 #include "xfa/fwl/core/ifwl_app.h"
 #include "xfa/fwl/core/ifwl_form.h"
@@ -474,23 +473,17 @@
   if (!pNoteDriver)
     return;
 
-  if (IsThreadEnabled())
-    pMessage = static_cast<CFWL_Message*>(pMessage->Clone());
+  std::unique_ptr<CFWL_Message> pClonedMessage = pMessage->Clone();
   if (IsFormDisabled())
-    pNoteDriver->ProcessMessage(pMessage);
+    pNoteDriver->ProcessMessage(pClonedMessage.get());
   else
-    pNoteDriver->QueueMessage(pMessage);
+    pNoteDriver->QueueMessage(std::move(pClonedMessage));
 
 #if (_FX_OS_ == _FX_MACOSX_)
   CFWL_NoteLoop* pTopLoop = pNoteDriver->GetTopLoop();
   if (pTopLoop)
     pNoteDriver->UnqueueMessage(pTopLoop);
 #endif
-
-  if (IsThreadEnabled())
-    pMessage->Release();
-
-  return;
 }
 
 void CFWL_WidgetMgr::OnDrawWidget(IFWL_Widget* pWidget,
diff --git a/xfa/fwl/core/cfwl_widgetmgr.h b/xfa/fwl/core/cfwl_widgetmgr.h
index 10176c2..cdfa24a 100644
--- a/xfa/fwl/core/cfwl_widgetmgr.h
+++ b/xfa/fwl/core/cfwl_widgetmgr.h
@@ -14,7 +14,6 @@
 #include "xfa/fwl/core/fwl_error.h"
 #include "xfa/fxgraphics/cfx_graphics.h"
 
-#define FWL_WGTMGR_DisableThread 0x00000001
 #define FWL_WGTMGR_DisableForm 0x00000002
 
 class CFWL_Message;
@@ -45,8 +44,7 @@
 
 class IFWL_WidgetMgrDelegate {
  public:
-  virtual void OnSetCapability(
-      uint32_t dwCapability = FWL_WGTMGR_DisableThread) = 0;
+  virtual void OnSetCapability(uint32_t dwCapability) = 0;
   virtual void OnProcessMessageToForm(CFWL_Message* pMessage) = 0;
   virtual void OnDrawWidget(IFWL_Widget* pWidget,
                             CFX_Graphics* pGraphics,
@@ -59,8 +57,7 @@
   ~CFWL_WidgetMgr();
 
   // IFWL_WidgetMgrDelegate
-  void OnSetCapability(
-      uint32_t dwCapability = FWL_WGTMGR_DisableThread) override;
+  void OnSetCapability(uint32_t dwCapability) override;
   void OnProcessMessageToForm(CFWL_Message* pMessage) override;
   void OnDrawWidget(IFWL_Widget* pWidget,
                     CFX_Graphics* pGraphics,
@@ -117,10 +114,6 @@
 
   void ResetRedrawCounts(IFWL_Widget* pWidget);
 
-  bool IsThreadEnabled() const {
-    return !(m_dwCapability & FWL_WGTMGR_DisableThread);
-  }
-
   void DrawChild(IFWL_Widget* pParent,
                  const CFX_RectF& rtClip,
                  CFX_Graphics* pGraphics,
diff --git a/xfa/fwl/core/fwl_noteimp.cpp b/xfa/fwl/core/fwl_noteimp.cpp
index 1e2b7bf..857fdfb 100644
--- a/xfa/fwl/core/fwl_noteimp.cpp
+++ b/xfa/fwl/core/fwl_noteimp.cpp
@@ -9,7 +9,11 @@
 #include "core/fxcrt/fx_ext.h"
 #include "third_party/base/ptr_util.h"
 #include "third_party/base/stl_util.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgkey.h"
+#include "xfa/fwl/core/cfwl_msgkillfocus.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
+#include "xfa/fwl/core/cfwl_msgmousewheel.h"
+#include "xfa/fwl/core/cfwl_msgsetfocus.h"
 #include "xfa/fwl/core/cfwl_widgetmgr.h"
 #include "xfa/fwl/core/ifwl_app.h"
 #include "xfa/fwl/core/ifwl_tooltip.h"
@@ -182,23 +186,21 @@
   m_forms.RemoveAt(nIndex);
 }
 
-void CFWL_NoteDriver::QueueMessage(CFWL_Message* pMessage) {
-  pMessage->Retain();
-  m_noteQueue.Add(pMessage);
+void CFWL_NoteDriver::QueueMessage(std::unique_ptr<CFWL_Message> pMessage) {
+  m_noteQueue.push_back(std::move(pMessage));
 }
 
 void CFWL_NoteDriver::UnqueueMessage(CFWL_NoteLoop* pNoteLoop) {
-  if (m_noteQueue.GetSize() < 1)
+  if (m_noteQueue.empty())
     return;
 
-  CFWL_Message* pMessage = m_noteQueue[0];
-  m_noteQueue.RemoveAt(0);
-  if (!IsValidMessage(pMessage)) {
-    pMessage->Release();
+  std::unique_ptr<CFWL_Message> pMessage = std::move(m_noteQueue[0]);
+  m_noteQueue.pop_front();
+
+  if (!IsValidMessage(pMessage.get()))
     return;
-  }
-  ProcessMessage(pMessage);
-  pMessage->Release();
+
+  ProcessMessage(pMessage.get());
 }
 
 CFWL_NoteLoop* CFWL_NoteDriver::GetTopLoop() const {
diff --git a/xfa/fwl/core/fwl_noteimp.h b/xfa/fwl/core/fwl_noteimp.h
index 9eaaed5..ec7855d 100644
--- a/xfa/fwl/core/fwl_noteimp.h
+++ b/xfa/fwl/core/fwl_noteimp.h
@@ -7,11 +7,11 @@
 #ifndef XFA_FWL_CORE_FWL_NOTEIMP_H_
 #define XFA_FWL_CORE_FWL_NOTEIMP_H_
 
+#include <deque>
 #include <memory>
 #include <unordered_map>
 
 #include "xfa/fwl/core/cfwl_event.h"
-#include "xfa/fwl/core/cfwl_message.h"
 #include "xfa/fwl/core/ifwl_tooltip.h"
 #include "xfa/fwl/core/ifwl_widget.h"
 #include "xfa/fxgraphics/cfx_graphics.h"
@@ -67,7 +67,7 @@
   void RegisterForm(IFWL_Widget* pForm);
   void UnRegisterForm(IFWL_Widget* pForm);
 
-  void QueueMessage(CFWL_Message* pMessage);
+  void QueueMessage(std::unique_ptr<CFWL_Message> pMessage);
   void UnqueueMessage(CFWL_NoteLoop* pNoteLoop);
   void ProcessMessage(CFWL_Message* pMessage);
 
@@ -84,7 +84,7 @@
   IFWL_Widget* GetMessageForm(IFWL_Widget* pDstTarget);
 
   CFX_ArrayTemplate<IFWL_Widget*> m_forms;
-  CFX_ArrayTemplate<CFWL_Message*> m_noteQueue;
+  std::deque<std::unique_ptr<CFWL_Message>> m_noteQueue;
   CFX_ArrayTemplate<CFWL_NoteLoop*> m_noteLoopQueue;
   std::unordered_map<uint32_t, CFWL_EventTarget*> m_eventTargets;
   IFWL_Widget* m_pHover;
diff --git a/xfa/fwl/core/ifwl_checkbox.cpp b/xfa/fwl/core/ifwl_checkbox.cpp
index 6c54801..62bf636 100644
--- a/xfa/fwl/core/ifwl_checkbox.cpp
+++ b/xfa/fwl/core/ifwl_checkbox.cpp
@@ -10,7 +10,8 @@
 
 #include "third_party/base/ptr_util.h"
 #include "xfa/fde/tto/fde_textout.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgkey.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
 #include "xfa/fwl/core/cfwl_themebackground.h"
 #include "xfa/fwl/core/cfwl_themetext.h"
 #include "xfa/fwl/core/cfwl_widgetmgr.h"
diff --git a/xfa/fwl/core/ifwl_combobox.cpp b/xfa/fwl/core/ifwl_combobox.cpp
index c26a9fc..f47e4a1 100644
--- a/xfa/fwl/core/ifwl_combobox.cpp
+++ b/xfa/fwl/core/ifwl_combobox.cpp
@@ -9,7 +9,10 @@
 #include "third_party/base/ptr_util.h"
 #include "xfa/fde/cfde_txtedtengine.h"
 #include "xfa/fde/tto/fde_textout.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgkey.h"
+#include "xfa/fwl/core/cfwl_msgkillfocus.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
+#include "xfa/fwl/core/cfwl_msgsetfocus.h"
 #include "xfa/fwl/core/cfwl_themebackground.h"
 #include "xfa/fwl/core/cfwl_themepart.h"
 #include "xfa/fwl/core/cfwl_themetext.h"
diff --git a/xfa/fwl/core/ifwl_comboboxproxy.cpp b/xfa/fwl/core/ifwl_comboboxproxy.cpp
index 4bc1e29..03bfca2 100644
--- a/xfa/fwl/core/ifwl_comboboxproxy.cpp
+++ b/xfa/fwl/core/ifwl_comboboxproxy.cpp
@@ -6,6 +6,8 @@
 
 #include "xfa/fwl/core/ifwl_comboboxproxy.h"
 
+#include "xfa/fwl/core/cfwl_msgkillfocus.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
 #include "xfa/fwl/core/fwl_noteimp.h"
 #include "xfa/fwl/core/ifwl_app.h"
 #include "xfa/fwl/core/ifwl_combobox.h"
@@ -42,10 +44,10 @@
       break;
     }
     case CFWL_MessageType::KillFocus:
-      OnFocusChanged(static_cast<CFWL_MsgKillFocus*>(pMessage), false);
+      OnFocusChanged(pMessage, false);
       break;
     case CFWL_MessageType::SetFocus:
-      OnFocusChanged(static_cast<CFWL_MsgKillFocus*>(pMessage), true);
+      OnFocusChanged(pMessage, true);
       break;
     default:
       break;
@@ -58,7 +60,7 @@
   m_pComboBox->DrawStretchHandler(pGraphics, pMatrix);
 }
 
-void IFWL_ComboBoxProxy::OnLButtonDown(CFWL_MsgMouse* pMsg) {
+void IFWL_ComboBoxProxy::OnLButtonDown(CFWL_Message* pMessage) {
   const IFWL_App* pApp = GetOwnerApp();
   if (!pApp)
     return;
@@ -68,6 +70,8 @@
   CFX_RectF rtWidget;
   GetWidgetRect(rtWidget);
   rtWidget.left = rtWidget.top = 0;
+
+  CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
   if (rtWidget.Contains(pMsg->m_fx, pMsg->m_fy)) {
     m_bLButtonDown = true;
     pDriver->SetGrab(this, true);
@@ -78,7 +82,7 @@
   }
 }
 
-void IFWL_ComboBoxProxy::OnLButtonUp(CFWL_MsgMouse* pMsg) {
+void IFWL_ComboBoxProxy::OnLButtonUp(CFWL_Message* pMessage) {
   m_bLButtonDown = false;
   const IFWL_App* pApp = GetOwnerApp();
   if (!pApp)
@@ -92,6 +96,7 @@
     return;
   }
 
+  CFWL_MsgMouse* pMsg = static_cast<CFWL_MsgMouse*>(pMessage);
   CFX_RectF rect;
   GetWidgetRect(rect);
   rect.left = rect.top = 0;
@@ -101,9 +106,11 @@
   }
 }
 
-void IFWL_ComboBoxProxy::OnFocusChanged(CFWL_MsgKillFocus* pMsg, bool bSet) {
+void IFWL_ComboBoxProxy::OnFocusChanged(CFWL_Message* pMessage, bool bSet) {
   if (bSet)
     return;
+
+  CFWL_MsgKillFocus* pMsg = static_cast<CFWL_MsgKillFocus*>(pMessage);
   if (!pMsg->m_pSetFocus)
     m_pComboBox->ShowDropList(false);
 }
diff --git a/xfa/fwl/core/ifwl_comboboxproxy.h b/xfa/fwl/core/ifwl_comboboxproxy.h
index 2439377..7ff5623 100644
--- a/xfa/fwl/core/ifwl_comboboxproxy.h
+++ b/xfa/fwl/core/ifwl_comboboxproxy.h
@@ -27,9 +27,9 @@
   void Reset() { m_bLButtonUpSelf = false; }
 
  private:
-  void OnLButtonDown(CFWL_MsgMouse* pMsg);
-  void OnLButtonUp(CFWL_MsgMouse* pMsg);
-  void OnFocusChanged(CFWL_MsgKillFocus* pMsg, bool bSet);
+  void OnLButtonDown(CFWL_Message* pMsg);
+  void OnLButtonUp(CFWL_Message* pMsg);
+  void OnFocusChanged(CFWL_Message* pMsg, bool bSet);
 
   bool m_bLButtonDown;
   bool m_bLButtonUpSelf;
diff --git a/xfa/fwl/core/ifwl_comboedit.cpp b/xfa/fwl/core/ifwl_comboedit.cpp
index 73ca146..965ba00 100644
--- a/xfa/fwl/core/ifwl_comboedit.cpp
+++ b/xfa/fwl/core/ifwl_comboedit.cpp
@@ -7,6 +7,7 @@
 #include "xfa/fwl/core/ifwl_comboedit.h"
 
 #include "xfa/fde/cfde_txtedtengine.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
 #include "xfa/fwl/core/ifwl_combobox.h"
 
 IFWL_ComboEdit::IFWL_ComboEdit(
diff --git a/xfa/fwl/core/ifwl_combolist.cpp b/xfa/fwl/core/ifwl_combolist.cpp
index 13847ee..be167be 100644
--- a/xfa/fwl/core/ifwl_combolist.cpp
+++ b/xfa/fwl/core/ifwl_combolist.cpp
@@ -7,6 +7,9 @@
 #include "xfa/fwl/core/ifwl_combolist.h"
 
 #include "third_party/base/ptr_util.h"
+#include "xfa/fwl/core/cfwl_msgkey.h"
+#include "xfa/fwl/core/cfwl_msgkillfocus.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
 #include "xfa/fwl/core/ifwl_combobox.h"
 #include "xfa/fwl/core/ifwl_comboedit.h"
 
diff --git a/xfa/fwl/core/ifwl_datetimeedit.cpp b/xfa/fwl/core/ifwl_datetimeedit.cpp
index f612f50..6362097 100644
--- a/xfa/fwl/core/ifwl_datetimeedit.cpp
+++ b/xfa/fwl/core/ifwl_datetimeedit.cpp
@@ -7,6 +7,7 @@
 #include "xfa/fwl/core/ifwl_datetimeedit.h"
 
 #include "third_party/base/ptr_util.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
 #include "xfa/fwl/core/cfwl_widgetmgr.h"
 #include "xfa/fwl/core/ifwl_datetimepicker.h"
 
diff --git a/xfa/fwl/core/ifwl_datetimeedit.h b/xfa/fwl/core/ifwl_datetimeedit.h
index 1649d39..7174550 100644
--- a/xfa/fwl/core/ifwl_datetimeedit.h
+++ b/xfa/fwl/core/ifwl_datetimeedit.h
@@ -7,7 +7,6 @@
 #ifndef XFA_FWL_CORE_IFWL_DATETIMEEDIT_H_
 #define XFA_FWL_CORE_IFWL_DATETIMEEDIT_H_
 
-#include "xfa/fwl/core/cfwl_message.h"
 #include "xfa/fwl/core/cfwl_widgetproperties.h"
 #include "xfa/fwl/core/fwl_error.h"
 #include "xfa/fwl/core/ifwl_edit.h"
diff --git a/xfa/fwl/core/ifwl_datetimepicker.cpp b/xfa/fwl/core/ifwl_datetimepicker.cpp
index 71ff7ef..1cd96c6 100644
--- a/xfa/fwl/core/ifwl_datetimepicker.cpp
+++ b/xfa/fwl/core/ifwl_datetimepicker.cpp
@@ -7,7 +7,8 @@
 #include "xfa/fwl/core/ifwl_datetimepicker.h"
 
 #include "third_party/base/ptr_util.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
+#include "xfa/fwl/core/cfwl_msgsetfocus.h"
 #include "xfa/fwl/core/cfwl_themebackground.h"
 #include "xfa/fwl/core/cfwl_widgetmgr.h"
 #include "xfa/fwl/core/fwl_noteimp.h"
diff --git a/xfa/fwl/core/ifwl_edit.cpp b/xfa/fwl/core/ifwl_edit.cpp
index 65a54dc..b3b2e1c 100644
--- a/xfa/fwl/core/ifwl_edit.cpp
+++ b/xfa/fwl/core/ifwl_edit.cpp
@@ -17,7 +17,8 @@
 #include "xfa/fde/fde_render.h"
 #include "xfa/fde/ifde_txtedtpage.h"
 #include "xfa/fgas/font/fgas_gefont.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgkey.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
 #include "xfa/fwl/core/cfwl_themebackground.h"
 #include "xfa/fwl/core/cfwl_themepart.h"
 #include "xfa/fwl/core/cfwl_widgetmgr.h"
diff --git a/xfa/fwl/core/ifwl_form.cpp b/xfa/fwl/core/ifwl_form.cpp
index 989da19..616ec77 100644
--- a/xfa/fwl/core/ifwl_form.cpp
+++ b/xfa/fwl/core/ifwl_form.cpp
@@ -8,7 +8,7 @@
 
 #include "third_party/base/ptr_util.h"
 #include "xfa/fde/tto/fde_textout.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
 #include "xfa/fwl/core/cfwl_themebackground.h"
 #include "xfa/fwl/core/cfwl_themepart.h"
 #include "xfa/fwl/core/cfwl_themetext.h"
diff --git a/xfa/fwl/core/ifwl_listbox.cpp b/xfa/fwl/core/ifwl_listbox.cpp
index 6696d4c..1f5a50c 100644
--- a/xfa/fwl/core/ifwl_listbox.cpp
+++ b/xfa/fwl/core/ifwl_listbox.cpp
@@ -8,7 +8,9 @@
 
 #include "third_party/base/ptr_util.h"
 #include "xfa/fde/tto/fde_textout.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgkey.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
+#include "xfa/fwl/core/cfwl_msgmousewheel.h"
 #include "xfa/fwl/core/cfwl_themebackground.h"
 #include "xfa/fwl/core/cfwl_themepart.h"
 #include "xfa/fwl/core/cfwl_themetext.h"
diff --git a/xfa/fwl/core/ifwl_monthcalendar.cpp b/xfa/fwl/core/ifwl_monthcalendar.cpp
index c5c7780..8be7383 100644
--- a/xfa/fwl/core/ifwl_monthcalendar.cpp
+++ b/xfa/fwl/core/ifwl_monthcalendar.cpp
@@ -10,7 +10,7 @@
 
 #include "third_party/base/ptr_util.h"
 #include "xfa/fde/tto/fde_textout.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
 #include "xfa/fwl/core/cfwl_themebackground.h"
 #include "xfa/fwl/core/cfwl_themetext.h"
 #include "xfa/fwl/core/fwl_noteimp.h"
diff --git a/xfa/fwl/core/ifwl_pushbutton.cpp b/xfa/fwl/core/ifwl_pushbutton.cpp
index 387a01a..414c144 100644
--- a/xfa/fwl/core/ifwl_pushbutton.cpp
+++ b/xfa/fwl/core/ifwl_pushbutton.cpp
@@ -8,7 +8,8 @@
 
 #include "third_party/base/ptr_util.h"
 #include "xfa/fde/tto/fde_textout.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgkey.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
 #include "xfa/fwl/core/cfwl_themebackground.h"
 #include "xfa/fwl/core/cfwl_themetext.h"
 #include "xfa/fwl/core/fwl_noteimp.h"
diff --git a/xfa/fwl/core/ifwl_scrollbar.cpp b/xfa/fwl/core/ifwl_scrollbar.cpp
index db2164b..78360d0 100644
--- a/xfa/fwl/core/ifwl_scrollbar.cpp
+++ b/xfa/fwl/core/ifwl_scrollbar.cpp
@@ -7,7 +7,8 @@
 #include "xfa/fwl/core/ifwl_scrollbar.h"
 
 #include "third_party/base/ptr_util.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
+#include "xfa/fwl/core/cfwl_msgmousewheel.h"
 #include "xfa/fwl/core/cfwl_themebackground.h"
 #include "xfa/fwl/core/cfwl_themepart.h"
 #include "xfa/fwl/core/fwl_noteimp.h"
diff --git a/xfa/fwl/core/ifwl_spinbutton.cpp b/xfa/fwl/core/ifwl_spinbutton.cpp
index 6ae2f6a..f3b8e48 100644
--- a/xfa/fwl/core/ifwl_spinbutton.cpp
+++ b/xfa/fwl/core/ifwl_spinbutton.cpp
@@ -7,7 +7,8 @@
 #include "xfa/fwl/core/ifwl_spinbutton.h"
 
 #include "third_party/base/ptr_util.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgkey.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
 #include "xfa/fwl/core/cfwl_themebackground.h"
 #include "xfa/fwl/core/cfwl_widgetproperties.h"
 #include "xfa/fwl/core/fwl_noteimp.h"
diff --git a/xfa/fwl/core/ifwl_widget.cpp b/xfa/fwl/core/ifwl_widget.cpp
index b885210..f8288eb 100644
--- a/xfa/fwl/core/ifwl_widget.cpp
+++ b/xfa/fwl/core/ifwl_widget.cpp
@@ -9,7 +9,11 @@
 #include <algorithm>
 
 #include "xfa/fde/tto/fde_textout.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgkey.h"
+#include "xfa/fwl/core/cfwl_msgkillfocus.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
+#include "xfa/fwl/core/cfwl_msgmousewheel.h"
+#include "xfa/fwl/core/cfwl_msgsetfocus.h"
 #include "xfa/fwl/core/cfwl_themebackground.h"
 #include "xfa/fwl/core/cfwl_themepart.h"
 #include "xfa/fwl/core/cfwl_themetext.h"
diff --git a/xfa/fxfa/app/xfa_ffapp.cpp b/xfa/fxfa/app/xfa_ffapp.cpp
index b38e590..d65a611 100644
--- a/xfa/fxfa/app/xfa_ffapp.cpp
+++ b/xfa/fxfa/app/xfa_ffapp.cpp
@@ -134,8 +134,7 @@
     IFWL_WidgetMgrDelegate* pDelegate) {
   if (!m_pAdapterWidgetMgr) {
     m_pAdapterWidgetMgr.reset(new CXFA_FWLAdapterWidgetMgr);
-    pDelegate->OnSetCapability(FWL_WGTMGR_DisableThread |
-                               FWL_WGTMGR_DisableForm);
+    pDelegate->OnSetCapability(FWL_WGTMGR_DisableForm);
     m_pWidgetMgrDelegate = pDelegate;
   }
   return m_pAdapterWidgetMgr.get();
diff --git a/xfa/fxfa/app/xfa_ffcheckbutton.cpp b/xfa/fxfa/app/xfa_ffcheckbutton.cpp
index 391d76c..39bfe50 100644
--- a/xfa/fxfa/app/xfa_ffcheckbutton.cpp
+++ b/xfa/fxfa/app/xfa_ffcheckbutton.cpp
@@ -7,7 +7,7 @@
 #include "xfa/fxfa/app/xfa_ffcheckbutton.h"
 
 #include "xfa/fwl/core/cfwl_checkbox.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
 #include "xfa/fwl/core/cfwl_widgetmgr.h"
 #include "xfa/fwl/core/fwl_noteimp.h"
 #include "xfa/fxfa/app/xfa_ffexclgroup.h"
diff --git a/xfa/fxfa/app/xfa_fffield.cpp b/xfa/fxfa/app/xfa_fffield.cpp
index 073e997..83a4c62 100644
--- a/xfa/fxfa/app/xfa_fffield.cpp
+++ b/xfa/fxfa/app/xfa_fffield.cpp
@@ -7,7 +7,11 @@
 #include "xfa/fxfa/app/xfa_fffield.h"
 
 #include "xfa/fwl/core/cfwl_edit.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgkey.h"
+#include "xfa/fwl/core/cfwl_msgkillfocus.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
+#include "xfa/fwl/core/cfwl_msgmousewheel.h"
+#include "xfa/fwl/core/cfwl_msgsetfocus.h"
 #include "xfa/fwl/core/cfwl_picturebox.h"
 #include "xfa/fwl/core/cfwl_widgetmgr.h"
 #include "xfa/fwl/core/ifwl_edit.h"
diff --git a/xfa/fxfa/app/xfa_ffimageedit.cpp b/xfa/fxfa/app/xfa_ffimageedit.cpp
index 216cf5b..1cbb9bc 100644
--- a/xfa/fxfa/app/xfa_ffimageedit.cpp
+++ b/xfa/fxfa/app/xfa_ffimageedit.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/app/xfa_ffimageedit.h"
 
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
 #include "xfa/fwl/core/cfwl_picturebox.h"
 #include "xfa/fwl/core/fwl_noteimp.h"
 #include "xfa/fwl/core/ifwl_app.h"
diff --git a/xfa/fxfa/app/xfa_fftextedit.cpp b/xfa/fxfa/app/xfa_fftextedit.cpp
index e851cb2..1c6c283 100644
--- a/xfa/fxfa/app/xfa_fftextedit.cpp
+++ b/xfa/fxfa/app/xfa_fftextedit.cpp
@@ -10,7 +10,9 @@
 
 #include "xfa/fwl/core/cfwl_datetimepicker.h"
 #include "xfa/fwl/core/cfwl_edit.h"
-#include "xfa/fwl/core/cfwl_message.h"
+#include "xfa/fwl/core/cfwl_msgkillfocus.h"
+#include "xfa/fwl/core/cfwl_msgmouse.h"
+#include "xfa/fwl/core/cfwl_msgsetfocus.h"
 #include "xfa/fwl/core/fwl_noteimp.h"
 #include "xfa/fwl/core/ifwl_edit.h"
 #include "xfa/fxfa/app/xfa_fffield.h"
