Replace FX_CHAR and FX_WCHAR with underlying types.

Change-Id: I96e0a20d66b9184d22f64d8e4ce0dadd5a78c1e8
Reviewed-on: https://pdfium-review.googlesource.com/2967
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: Tom Sepez <tsepez@chromium.org>
diff --git a/core/fdrm/crypto/fx_crypt_sha.cpp b/core/fdrm/crypto/fx_crypt_sha.cpp
index 79ff503..6837649 100644
--- a/core/fdrm/crypto/fx_crypt_sha.cpp
+++ b/core/fdrm/crypto/fx_crypt_sha.cpp
@@ -359,7 +359,7 @@
   CRYPT_SHA256Finish(&ctx, digest);
 }
 
-uint64_t FX_ato64i(const FX_CHAR* str) {
+uint64_t FX_ato64i(const char* str) {
   ASSERT(str);
   uint64_t ret = 0;
   int len = (int)FXSYS_strlen(str);
@@ -426,7 +426,7 @@
     0,    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
 };
 
-static const FX_CHAR* constants[] = {
+static const char* constants[] = {
     "428a2f98d728ae22", "7137449123ef65cd", "b5c0fbcfec4d3b2f",
     "e9b5dba58189dbbc", "3956c25bf348b538", "59f111f1b605d019",
     "923f82a4af194f9b", "ab1c5ed5da6d8118", "d807aa98a3030242",
diff --git a/core/fpdfapi/edit/fpdf_edit_create.cpp b/core/fpdfapi/edit/fpdf_edit_create.cpp
index fec0de9..75d6765 100644
--- a/core/fpdfapi/edit/fpdf_edit_create.cpp
+++ b/core/fpdfapi/edit/fpdf_edit_create.cpp
@@ -778,7 +778,7 @@
     if (pFile->AppendString("/Prev ") < 0) {
       return false;
     }
-    FX_CHAR offset_buf[20];
+    char offset_buf[20];
     FXSYS_memset(offset_buf, 0, sizeof(offset_buf));
     FXSYS_i64toa(m_PrevOffset, offset_buf, 10);
     int32_t offset_len = (int32_t)FXSYS_strlen(offset_buf);
@@ -1090,7 +1090,7 @@
       CPDF_Encryptor encryptor(m_pCryptoHandler, objnum, (uint8_t*)str.c_str(),
                                str.GetLength());
       CFX_ByteString content = PDF_EncodeString(
-          CFX_ByteString((const FX_CHAR*)encryptor.m_pData, encryptor.m_dwSize),
+          CFX_ByteString((const char*)encryptor.m_pData, encryptor.m_dwSize),
           bHex);
       if ((len = m_File.AppendString(content.AsStringC())) < 0) {
         return -1;
@@ -1778,7 +1778,7 @@
         if (m_File.AppendString("/Prev ") < 0) {
           return -1;
         }
-        FX_CHAR offset_buf[20];
+        char offset_buf[20];
         FXSYS_memset(offset_buf, 0, sizeof(offset_buf));
         FXSYS_i64toa(prev, offset_buf, 10);
         if (m_File.AppendBlock(offset_buf, FXSYS_strlen(offset_buf)) < 0) {
@@ -1860,7 +1860,7 @@
   if (m_File.AppendString("\r\nstartxref\r\n") < 0) {
     return -1;
   }
-  FX_CHAR offset_buf[20];
+  char offset_buf[20];
   FXSYS_memset(offset_buf, 0, sizeof(offset_buf));
   FXSYS_i64toa(m_XrefStart, offset_buf, 10);
   if (m_File.AppendBlock(offset_buf, FXSYS_strlen(offset_buf)) < 0) {
diff --git a/core/fpdfapi/font/cpdf_cidfont.cpp b/core/fpdfapi/font/cpdf_cidfont.cpp
index b0ae05c..6e050c4 100644
--- a/core/fpdfapi/font/cpdf_cidfont.cpp
+++ b/core/fpdfapi/font/cpdf_cidfont.cpp
@@ -136,9 +136,9 @@
   }
 }
 
-FX_WCHAR EmbeddedUnicodeFromCharcode(const FXCMAP_CMap* pEmbedMap,
-                                     CIDSet charset,
-                                     uint32_t charcode) {
+wchar_t EmbeddedUnicodeFromCharcode(const FXCMAP_CMap* pEmbedMap,
+                                    CIDSet charset,
+                                    uint32_t charcode) {
   if (!IsValidEmbeddedCharcodeFromUnicodeCharset(charset))
     return 0;
 
@@ -151,7 +151,7 @@
 
 uint32_t EmbeddedCharcodeFromUnicode(const FXCMAP_CMap* pEmbedMap,
                                      CIDSet charset,
-                                     FX_WCHAR unicode) {
+                                     wchar_t unicode) {
   if (!IsValidEmbeddedCharcodeFromUnicodeCharset(charset))
     return 0;
 
@@ -239,15 +239,15 @@
   CFX_WideString str = CPDF_Font::UnicodeFromCharCode(charcode);
   if (!str.IsEmpty())
     return str;
-  FX_WCHAR ret = GetUnicodeFromCharCode(charcode);
+  wchar_t ret = GetUnicodeFromCharCode(charcode);
   return ret ? ret : CFX_WideString();
 }
 
-FX_WCHAR CPDF_CIDFont::GetUnicodeFromCharCode(uint32_t charcode) const {
+wchar_t CPDF_CIDFont::GetUnicodeFromCharCode(uint32_t charcode) const {
   switch (m_pCMap->m_Coding) {
     case CIDCODING_UCS2:
     case CIDCODING_UTF16:
-      return static_cast<FX_WCHAR>(charcode);
+      return static_cast<wchar_t>(charcode);
     case CIDCODING_CID:
       if (!m_pCID2UnicodeMap || !m_pCID2UnicodeMap->IsLoaded())
         return 0;
@@ -257,15 +257,15 @@
     return m_pCID2UnicodeMap->UnicodeFromCID(CIDFromCharCode(charcode));
 
 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
-  FX_WCHAR unicode;
+  wchar_t unicode;
   int charsize = 1;
   if (charcode > 255) {
     charcode = (charcode % 256) * 256 + (charcode / 256);
     charsize = 2;
   }
-  int ret = FXSYS_MultiByteToWideChar(
-      g_CharsetCPs[m_pCMap->m_Coding], 0,
-      reinterpret_cast<const FX_CHAR*>(&charcode), charsize, &unicode, 1);
+  int ret = FXSYS_MultiByteToWideChar(g_CharsetCPs[m_pCMap->m_Coding], 0,
+                                      reinterpret_cast<const char*>(&charcode),
+                                      charsize, &unicode, 1);
   return ret == 1 ? unicode : 0;
 #else
   if (!m_pCMap->m_pEmbedMap)
@@ -275,7 +275,7 @@
 #endif
 }
 
-uint32_t CPDF_CIDFont::CharCodeFromUnicode(FX_WCHAR unicode) const {
+uint32_t CPDF_CIDFont::CharCodeFromUnicode(wchar_t unicode) const {
   uint32_t charcode = CPDF_Font::CharCodeFromUnicode(unicode);
   if (charcode)
     return charcode;
@@ -290,7 +290,7 @@
         return 0;
       uint32_t CID = 0;
       while (CID < 65536) {
-        FX_WCHAR this_unicode =
+        wchar_t this_unicode =
             m_pCID2UnicodeMap->UnicodeFromCID(static_cast<uint16_t>(CID));
         if (this_unicode == unicode)
           return CID;
@@ -611,7 +611,7 @@
 
   if (!m_pFontFile && !m_pStreamAcc) {
     uint16_t cid = CIDFromCharCode(charcode);
-    FX_WCHAR unicode = 0;
+    wchar_t unicode = 0;
     if (m_bCIDIsGID) {
 #if _FXM_PLATFORM_ != _FXM_PLATFORM_APPLE_
       return cid;
@@ -649,7 +649,7 @@
         iBaseEncoding = PDFFONT_ENCODING_WINANSI;
       else if (bMacRoman)
         iBaseEncoding = PDFFONT_ENCODING_MACROMAN;
-      const FX_CHAR* name = GetAdobeCharName(
+      const char* name = GetAdobeCharName(
           iBaseEncoding, std::vector<CFX_ByteString>(), charcode);
       if (!name)
         return charcode ? static_cast<int>(charcode) : -1;
@@ -693,16 +693,16 @@
       for (i = 0; i < FXFT_Get_Face_CharmapCount(face); i++) {
         uint32_t ret = FT_CharCodeFromUnicode(
             FXFT_Get_Charmap_Encoding(FXFT_Get_Face_Charmaps(face)[i]),
-            static_cast<FX_WCHAR>(charcode));
+            static_cast<wchar_t>(charcode));
         if (ret == 0)
           continue;
         FXFT_Set_Charmap(face, FXFT_Get_Face_Charmaps(face)[i]);
-        unicode = static_cast<FX_WCHAR>(ret);
+        unicode = static_cast<wchar_t>(ret);
         break;
       }
       if (i == FXFT_Get_Face_CharmapCount(face) && i) {
         FXFT_Set_Charmap(face, FXFT_Get_Face_Charmaps(face)[0]);
-        unicode = static_cast<FX_WCHAR>(charcode);
+        unicode = static_cast<wchar_t>(charcode);
       }
     }
     if (FXFT_Get_Face_Charmap(face)) {
@@ -744,7 +744,7 @@
   return pdata[0] * 256 + pdata[1];
 }
 
-uint32_t CPDF_CIDFont::GetNextChar(const FX_CHAR* pString,
+uint32_t CPDF_CIDFont::GetNextChar(const char* pString,
                                    int nStrLen,
                                    int& offset) const {
   return m_pCMap->GetNextChar(pString, nStrLen, offset);
@@ -754,11 +754,11 @@
   return m_pCMap->GetCharSize(charcode);
 }
 
-int CPDF_CIDFont::CountChar(const FX_CHAR* pString, int size) const {
+int CPDF_CIDFont::CountChar(const char* pString, int size) const {
   return m_pCMap->CountChar(pString, size);
 }
 
-int CPDF_CIDFont::AppendChar(FX_CHAR* str, uint32_t charcode) const {
+int CPDF_CIDFont::AppendChar(char* str, uint32_t charcode) const {
   return m_pCMap->AppendChar(str, charcode);
 }
 
diff --git a/core/fpdfapi/font/cpdf_cidfont.h b/core/fpdfapi/font/cpdf_cidfont.h
index 79ec7cb..e256be1 100644
--- a/core/fpdfapi/font/cpdf_cidfont.h
+++ b/core/fpdfapi/font/cpdf_cidfont.h
@@ -45,16 +45,16 @@
   int GlyphFromCharCode(uint32_t charcode, bool* pVertGlyph) override;
   int GetCharWidthF(uint32_t charcode) override;
   FX_RECT GetCharBBox(uint32_t charcode) override;
-  uint32_t GetNextChar(const FX_CHAR* pString,
+  uint32_t GetNextChar(const char* pString,
                        int nStrLen,
                        int& offset) const override;
-  int CountChar(const FX_CHAR* pString, int size) const override;
-  int AppendChar(FX_CHAR* str, uint32_t charcode) const override;
+  int CountChar(const char* pString, int size) const override;
+  int AppendChar(char* str, uint32_t charcode) const override;
   bool IsVertWriting() const override;
   bool IsUnicodeCompatible() const override;
   bool Load() override;
   CFX_WideString UnicodeFromCharCode(uint32_t charcode) const override;
-  uint32_t CharCodeFromUnicode(FX_WCHAR Unicode) const override;
+  uint32_t CharCodeFromUnicode(wchar_t Unicode) const override;
 
   uint16_t CIDFromCharCode(uint32_t charcode) const;
   const uint8_t* GetCIDTransform(uint16_t CID) const;
@@ -70,7 +70,7 @@
                         std::vector<uint32_t>* result,
                         int nElements);
   void LoadSubstFont();
-  FX_WCHAR GetUnicodeFromCharCode(uint32_t charcode) const;
+  wchar_t GetUnicodeFromCharCode(uint32_t charcode) const;
 
   CFX_MaybeOwned<CPDF_CMap> m_pCMap;
   CPDF_CID2UnicodeMap* m_pCID2UnicodeMap;
diff --git a/core/fpdfapi/font/cpdf_font.cpp b/core/fpdfapi/font/cpdf_font.cpp
index 36d7d6a..7988ec7 100644
--- a/core/fpdfapi/font/cpdf_font.cpp
+++ b/core/fpdfapi/font/cpdf_font.cpp
@@ -118,7 +118,7 @@
   return false;
 }
 
-int CPDF_Font::CountChar(const FX_CHAR* pString, int size) const {
+int CPDF_Font::CountChar(const char* pString, int size) const {
   return size;
 }
 
@@ -131,8 +131,8 @@
   return pCIDFont ? pCIDFont->IsVertWriting() : m_Font.IsVertical();
 }
 
-int CPDF_Font::AppendChar(FX_CHAR* buf, uint32_t charcode) const {
-  *buf = static_cast<FX_CHAR>(charcode);
+int CPDF_Font::AppendChar(char* buf, uint32_t charcode) const {
+  *buf = static_cast<char>(charcode);
   return 1;
 }
 
@@ -153,7 +153,7 @@
   return m_pToUnicodeMap ? m_pToUnicodeMap->Lookup(charcode) : CFX_WideString();
 }
 
-uint32_t CPDF_Font::CharCodeFromUnicode(FX_WCHAR unicode) const {
+uint32_t CPDF_Font::CharCodeFromUnicode(wchar_t unicode) const {
   if (!m_bToUnicodeLoaded)
     LoadUnicodeMap();
 
@@ -281,7 +281,7 @@
   m_pToUnicodeMap->Load(pStream);
 }
 
-int CPDF_Font::GetStringWidth(const FX_CHAR* pString, int size) {
+int CPDF_Font::GetStringWidth(const char* pString, int size) {
   int offset = 0;
   int width = 0;
   while (offset < size) {
@@ -341,7 +341,7 @@
   return pFont->Load() ? std::move(pFont) : nullptr;
 }
 
-uint32_t CPDF_Font::GetNextChar(const FX_CHAR* pString,
+uint32_t CPDF_Font::GetNextChar(const char* pString,
                                 int nStrLen,
                                 int& offset) const {
   if (offset < 0 || nStrLen < 1) {
@@ -429,7 +429,7 @@
   return true;
 }
 
-const FX_CHAR* CPDF_Font::GetAdobeCharName(
+const char* CPDF_Font::GetAdobeCharName(
     int iBaseEncoding,
     const std::vector<CFX_ByteString>& charnames,
     int charcode) {
@@ -441,7 +441,7 @@
   if (!charnames.empty() && !charnames[charcode].IsEmpty())
     return charnames[charcode].c_str();
 
-  const FX_CHAR* name = nullptr;
+  const char* name = nullptr;
   if (iBaseEncoding)
     name = PDF_CharNameFromPredefinedCharSet(iBaseEncoding, charcode);
   return name && name[0] ? name : nullptr;
diff --git a/core/fpdfapi/font/cpdf_font.h b/core/fpdfapi/font/cpdf_font.h
index 6025a82..6dac3f2 100644
--- a/core/fpdfapi/font/cpdf_font.h
+++ b/core/fpdfapi/font/cpdf_font.h
@@ -50,15 +50,15 @@
 
   virtual bool IsVertWriting() const;
   virtual bool IsUnicodeCompatible() const;
-  virtual uint32_t GetNextChar(const FX_CHAR* pString,
+  virtual uint32_t GetNextChar(const char* pString,
                                int nStrLen,
                                int& offset) const;
-  virtual int CountChar(const FX_CHAR* pString, int size) const;
-  virtual int AppendChar(FX_CHAR* buf, uint32_t charcode) const;
+  virtual int CountChar(const char* pString, int size) const;
+  virtual int AppendChar(char* buf, uint32_t charcode) const;
   virtual int GlyphFromCharCode(uint32_t charcode, bool* pVertGlyph) = 0;
   virtual int GlyphFromCharCodeExt(uint32_t charcode);
   virtual CFX_WideString UnicodeFromCharCode(uint32_t charcode) const;
-  virtual uint32_t CharCodeFromUnicode(FX_WCHAR Unicode) const;
+  virtual uint32_t CharCodeFromUnicode(wchar_t Unicode) const;
 
   const CFX_ByteString& GetBaseFont() const { return m_BaseFont; }
   CFX_SubstFont* GetSubstFont() const { return m_Font.GetSubstFont(); }
@@ -71,7 +71,7 @@
   void GetFontBBox(FX_RECT& rect) const { rect = m_FontBBox; }
   int GetTypeAscent() const { return m_Ascent; }
   int GetTypeDescent() const { return m_Descent; }
-  int GetStringWidth(const FX_CHAR* pString, int size);
+  int GetStringWidth(const char* pString, int size);
   uint32_t FallbackFontFromCharcode(uint32_t charcode);
   int FallbackGlyphFromCharcode(int fallbackFont, uint32_t charcode);
 
@@ -96,9 +96,9 @@
   void LoadFontDescriptor(CPDF_Dictionary* pDict);
   void CheckFontMetrics();
 
-  const FX_CHAR* GetAdobeCharName(int iBaseEncoding,
-                                  const std::vector<CFX_ByteString>& charnames,
-                                  int charcode);
+  const char* GetAdobeCharName(int iBaseEncoding,
+                               const std::vector<CFX_ByteString>& charnames,
+                               int charcode);
 
   CFX_ByteString m_BaseFont;
   CPDF_StreamAcc* m_pFontFile;
diff --git a/core/fpdfapi/font/cpdf_fontencoding.cpp b/core/fpdfapi/font/cpdf_fontencoding.cpp
index 88b2c8d..be4eaff 100644
--- a/core/fpdfapi/font/cpdf_fontencoding.cpp
+++ b/core/fpdfapi/font/cpdf_fontencoding.cpp
@@ -236,7 +236,7 @@
     0x27BC, 0x27BD, 0x27BE, 0x0000,
 };
 
-const FX_CHAR* const StandardEncodingNames[224] = {
+const char* const StandardEncodingNames[224] = {
     "space",
     "exclam",
     "quotedbl",
@@ -463,7 +463,7 @@
     nullptr,
 };
 
-const FX_CHAR* const AdobeWinAnsiEncodingNames[224] = {
+const char* const AdobeWinAnsiEncodingNames[224] = {
     "space",
     "exclam",
     "quotedbl",
@@ -690,7 +690,7 @@
     "ydieresis",
 };
 
-const FX_CHAR* const MacRomanEncodingNames[224] = {
+const char* const MacRomanEncodingNames[224] = {
     "space",
     "exclam",
     "quotedbl",
@@ -917,7 +917,7 @@
     "caron",
 };
 
-const FX_CHAR* const MacExpertEncodingNames[224] = {
+const char* const MacExpertEncodingNames[224] = {
     "space",
     "exclamsmall",
     "Hungarumlautsmall",
@@ -1144,7 +1144,7 @@
     nullptr,
 };
 
-const FX_CHAR* const PDFDocEncodingNames[232] = {
+const char* const PDFDocEncodingNames[232] = {
     "breve",
     "caron",
     "circumflex",
@@ -1379,7 +1379,7 @@
     "ydieresis",
 };
 
-const FX_CHAR* const AdobeSymbolEncodingNames[224] = {
+const char* const AdobeSymbolEncodingNames[224] = {
     "space",
     "exclam",
     "universal",
@@ -1606,7 +1606,7 @@
     nullptr,
 };
 
-const FX_CHAR* const ZapfEncodingNames[224] = {
+const char* const ZapfEncodingNames[224] = {
     "space", "a1",    "a2",    "a202",  "a3",    "a4",    "a5",    "a119",
     "a118",  "a117",  "a11",   "a12",   "a13",   "a14",   "a15",   "a16",
     "a105",  "a17",   "a18",   "a19",   "a20",   "a21",   "a22",   "a23",
@@ -1649,7 +1649,7 @@
   FXSYS_memset(m_Unicodes, 0, sizeof(m_Unicodes));
 }
 
-int CPDF_FontEncoding::CharCodeFromUnicode(FX_WCHAR unicode) const {
+int CPDF_FontEncoding::CharCodeFromUnicode(wchar_t unicode) const {
   for (int i = 0; i < 256; i++)
     if (m_Unicodes[i] == unicode) {
       return i;
@@ -1717,7 +1717,7 @@
   return std::move(pDict);
 }
 
-uint32_t FT_CharCodeFromUnicode(int encoding, FX_WCHAR unicode) {
+uint32_t FT_CharCodeFromUnicode(int encoding, wchar_t unicode) {
   switch (encoding) {
     case FXFT_ENCODING_UNICODE:
       return unicode;
@@ -1758,18 +1758,17 @@
   return nullptr;
 }
 
-FX_WCHAR PDF_UnicodeFromAdobeName(const FX_CHAR* name) {
-  return (FX_WCHAR)(FXFT_unicode_from_adobe_name(name) & 0x7FFFFFFF);
+wchar_t PDF_UnicodeFromAdobeName(const char* name) {
+  return (wchar_t)(FXFT_unicode_from_adobe_name(name) & 0x7FFFFFFF);
 }
 
-CFX_ByteString PDF_AdobeNameFromUnicode(FX_WCHAR unicode) {
+CFX_ByteString PDF_AdobeNameFromUnicode(wchar_t unicode) {
   char glyph_name[64];
   FXFT_adobe_name_from_unicode(glyph_name, unicode);
   return CFX_ByteString(glyph_name);
 }
 
-const FX_CHAR* PDF_CharNameFromPredefinedCharSet(int encoding,
-                                                 uint8_t charcode) {
+const char* PDF_CharNameFromPredefinedCharSet(int encoding, uint8_t charcode) {
   if (encoding == PDFFONT_ENCODING_PDFDOC) {
     if (charcode < 24)
       return nullptr;
@@ -1800,7 +1799,7 @@
   return nullptr;
 }
 
-FX_WCHAR FT_UnicodeFromCharCode(int encoding, uint32_t charcode) {
+wchar_t FT_UnicodeFromCharCode(int encoding, uint32_t charcode) {
   switch (encoding) {
     case FXFT_ENCODING_UNICODE:
       return (uint16_t)charcode;
diff --git a/core/fpdfapi/font/cpdf_fontencoding.h b/core/fpdfapi/font/cpdf_fontencoding.h
index 6c0de90..7a94db9 100644
--- a/core/fpdfapi/font/cpdf_fontencoding.h
+++ b/core/fpdfapi/font/cpdf_fontencoding.h
@@ -24,15 +24,14 @@
 #define PDFFONT_ENCODING_MS_SYMBOL 8
 #define PDFFONT_ENCODING_UNICODE 9
 
-uint32_t FT_CharCodeFromUnicode(int encoding, FX_WCHAR unicode);
-FX_WCHAR FT_UnicodeFromCharCode(int encoding, uint32_t charcode);
+uint32_t FT_CharCodeFromUnicode(int encoding, wchar_t unicode);
+wchar_t FT_UnicodeFromCharCode(int encoding, uint32_t charcode);
 
-FX_WCHAR PDF_UnicodeFromAdobeName(const FX_CHAR* name);
-CFX_ByteString PDF_AdobeNameFromUnicode(FX_WCHAR unicode);
+wchar_t PDF_UnicodeFromAdobeName(const char* name);
+CFX_ByteString PDF_AdobeNameFromUnicode(wchar_t unicode);
 
 const uint16_t* PDF_UnicodesForPredefinedCharSet(int encoding);
-const FX_CHAR* PDF_CharNameFromPredefinedCharSet(int encoding,
-                                                 uint8_t charcode);
+const char* PDF_CharNameFromPredefinedCharSet(int encoding, uint8_t charcode);
 
 class CPDF_Object;
 
@@ -45,19 +44,19 @@
 
   bool IsIdentical(CPDF_FontEncoding* pAnother) const;
 
-  FX_WCHAR UnicodeFromCharCode(uint8_t charcode) const {
+  wchar_t UnicodeFromCharCode(uint8_t charcode) const {
     return m_Unicodes[charcode];
   }
-  int CharCodeFromUnicode(FX_WCHAR unicode) const;
+  int CharCodeFromUnicode(wchar_t unicode) const;
 
-  void SetUnicode(uint8_t charcode, FX_WCHAR unicode) {
+  void SetUnicode(uint8_t charcode, wchar_t unicode) {
     m_Unicodes[charcode] = unicode;
   }
 
   std::unique_ptr<CPDF_Object> Realize(CFX_WeakPtr<CFX_ByteStringPool> pPool);
 
  public:
-  FX_WCHAR m_Unicodes[256];
+  wchar_t m_Unicodes[256];
 };
 
 #endif  // CORE_FPDFAPI_FONT_CPDF_FONTENCODING_H_
diff --git a/core/fpdfapi/font/cpdf_simplefont.cpp b/core/fpdfapi/font/cpdf_simplefont.cpp
index c414270..94a690f 100644
--- a/core/fpdfapi/font/cpdf_simplefont.cpp
+++ b/core/fpdfapi/font/cpdf_simplefont.cpp
@@ -198,13 +198,13 @@
   CFX_WideString unicode = CPDF_Font::UnicodeFromCharCode(charcode);
   if (!unicode.IsEmpty())
     return unicode;
-  FX_WCHAR ret = m_Encoding.UnicodeFromCharCode((uint8_t)charcode);
+  wchar_t ret = m_Encoding.UnicodeFromCharCode((uint8_t)charcode);
   if (ret == 0)
     return CFX_WideString();
   return ret;
 }
 
-uint32_t CPDF_SimpleFont::CharCodeFromUnicode(FX_WCHAR unicode) const {
+uint32_t CPDF_SimpleFont::CharCodeFromUnicode(wchar_t unicode) const {
   uint32_t ret = CPDF_Font::CharCodeFromUnicode(unicode);
   if (ret)
     return ret;
diff --git a/core/fpdfapi/font/cpdf_simplefont.h b/core/fpdfapi/font/cpdf_simplefont.h
index 592290b..3e414fa 100644
--- a/core/fpdfapi/font/cpdf_simplefont.h
+++ b/core/fpdfapi/font/cpdf_simplefont.h
@@ -25,7 +25,7 @@
   int GlyphFromCharCode(uint32_t charcode, bool* pVertGlyph) override;
   bool IsUnicodeCompatible() const override;
   CFX_WideString UnicodeFromCharCode(uint32_t charcode) const override;
-  uint32_t CharCodeFromUnicode(FX_WCHAR Unicode) const override;
+  uint32_t CharCodeFromUnicode(wchar_t Unicode) const override;
 
   CPDF_FontEncoding* GetEncoding() { return &m_Encoding; }
 
diff --git a/core/fpdfapi/font/cpdf_truetypefont.cpp b/core/fpdfapi/font/cpdf_truetypefont.cpp
index b8bee29..a87370f 100644
--- a/core/fpdfapi/font/cpdf_truetypefont.cpp
+++ b/core/fpdfapi/font/cpdf_truetypefont.cpp
@@ -96,8 +96,7 @@
     }
     bool bToUnicode = m_pFontDict->KeyExist("ToUnicode");
     for (int charcode = 0; charcode < 256; charcode++) {
-      const FX_CHAR* name =
-          GetAdobeCharName(baseEncoding, m_CharNames, charcode);
+      const char* name = GetAdobeCharName(baseEncoding, m_CharNames, charcode);
       if (!name) {
         m_GlyphIndex[charcode] =
             m_pFontFile ? FXFT_Get_Char_Index(m_Font.GetFace(), charcode) : -1;
@@ -170,7 +169,7 @@
     if (bFound) {
       if (baseEncoding != PDFFONT_ENCODING_BUILTIN) {
         for (int charcode = 0; charcode < 256; charcode++) {
-          const FX_CHAR* name =
+          const char* name =
               GetAdobeCharName(baseEncoding, m_CharNames, charcode);
           if (name)
             m_Encoding.m_Unicodes[charcode] = PDF_UnicodeFromAdobeName(name);
@@ -204,7 +203,7 @@
       if (m_pFontFile) {
         m_Encoding.m_Unicodes[charcode] = charcode;
       } else {
-        const FX_CHAR* name = GetAdobeCharName(0, m_CharNames, charcode);
+        const char* name = GetAdobeCharName(0, m_CharNames, charcode);
         if (name)
           m_Encoding.m_Unicodes[charcode] = PDF_UnicodeFromAdobeName(name);
         else if (pUnicodes)
diff --git a/core/fpdfapi/font/cpdf_type1font.cpp b/core/fpdfapi/font/cpdf_type1font.cpp
index 1a37555..4c7b86a 100644
--- a/core/fpdfapi/font/cpdf_type1font.cpp
+++ b/core/fpdfapi/font/cpdf_type1font.cpp
@@ -19,8 +19,8 @@
 
 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
 struct GlyphNameMap {
-  const FX_CHAR* m_pStrAdobe;
-  const FX_CHAR* m_pStrUnicode;
+  const char* m_pStrAdobe;
+  const char* m_pStrUnicode;
 };
 
 const GlyphNameMap g_GlyphNameSubsts[] = {{"ff", "uniFB00"},
@@ -30,11 +30,11 @@
                                           {"fl", "uniFB02"}};
 
 int compareString(const void* key, const void* element) {
-  return FXSYS_stricmp(static_cast<const FX_CHAR*>(key),
+  return FXSYS_stricmp(static_cast<const char*>(key),
                        static_cast<const GlyphNameMap*>(element)->m_pStrAdobe);
 }
 
-const FX_CHAR* GlyphNameRemap(const FX_CHAR* pStrAdobe) {
+const char* GlyphNameRemap(const char* pStrAdobe) {
   const GlyphNameMap* found = static_cast<const GlyphNameMap*>(FXSYS_bsearch(
       pStrAdobe, g_GlyphNameSubsts, FX_ArraySize(g_GlyphNameSubsts),
       sizeof(GlyphNameMap), compareString));
@@ -161,7 +161,7 @@
       m_BaseEncoding = PDFFONT_ENCODING_STANDARD;
     }
     for (int charcode = 0; charcode < 256; charcode++) {
-      const FX_CHAR* name =
+      const char* name =
           GetAdobeCharName(m_BaseEncoding, m_CharNames, charcode);
       if (!name)
         continue;
@@ -191,7 +191,7 @@
   if (bCoreText) {
     if (m_Flags & FXFONT_SYMBOLIC) {
       for (int charcode = 0; charcode < 256; charcode++) {
-        const FX_CHAR* name =
+        const char* name =
             GetAdobeCharName(m_BaseEncoding, m_CharNames, charcode);
         if (name) {
           m_Encoding.m_Unicodes[charcode] = PDF_UnicodeFromAdobeName(name);
@@ -201,12 +201,12 @@
         } else {
           m_GlyphIndex[charcode] =
               FXFT_Get_Char_Index(m_Font.GetFace(), charcode);
-          FX_WCHAR unicode = 0;
+          wchar_t unicode = 0;
           if (m_GlyphIndex[charcode]) {
             unicode =
                 FT_UnicodeFromCharCode(PDFFONT_ENCODING_STANDARD, charcode);
           }
-          FX_CHAR name_glyph[256];
+          char name_glyph[256];
           FXSYS_memset(name_glyph, 0, sizeof(name_glyph));
           FXFT_Get_Glyph_Name(m_Font.GetFace(), m_GlyphIndex[charcode],
                               name_glyph, 256);
@@ -225,13 +225,13 @@
       bUnicode = true;
     }
     for (int charcode = 0; charcode < 256; charcode++) {
-      const FX_CHAR* name =
+      const char* name =
           GetAdobeCharName(m_BaseEncoding, m_CharNames, charcode);
       if (!name) {
         continue;
       }
       m_Encoding.m_Unicodes[charcode] = PDF_UnicodeFromAdobeName(name);
-      const FX_CHAR* pStrUnicode = GlyphNameRemap(name);
+      const char* pStrUnicode = GlyphNameRemap(name);
       if (pStrUnicode &&
           0 == FXFT_Get_Name_Index(m_Font.GetFace(), (char*)name)) {
         name = pStrUnicode;
@@ -259,7 +259,7 @@
 #endif  // _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
   if (m_Flags & FXFONT_SYMBOLIC) {
     for (int charcode = 0; charcode < 256; charcode++) {
-      const FX_CHAR* name =
+      const char* name =
           GetAdobeCharName(m_BaseEncoding, m_CharNames, charcode);
       if (name) {
         m_Encoding.m_Unicodes[charcode] = PDF_UnicodeFromAdobeName(name);
@@ -269,10 +269,10 @@
         m_GlyphIndex[charcode] =
             FXFT_Get_Char_Index(m_Font.GetFace(), charcode);
         if (m_GlyphIndex[charcode]) {
-          FX_WCHAR unicode =
+          wchar_t unicode =
               FT_UnicodeFromCharCode(PDFFONT_ENCODING_STANDARD, charcode);
           if (unicode == 0) {
-            FX_CHAR name_glyph[256];
+            char name_glyph[256];
             FXSYS_memset(name_glyph, 0, sizeof(name_glyph));
             FXFT_Get_Glyph_Name(m_Font.GetFace(), m_GlyphIndex[charcode],
                                 name_glyph, 256);
@@ -297,8 +297,7 @@
     bUnicode = true;
   }
   for (int charcode = 0; charcode < 256; charcode++) {
-    const FX_CHAR* name =
-        GetAdobeCharName(m_BaseEncoding, m_CharNames, charcode);
+    const char* name = GetAdobeCharName(m_BaseEncoding, m_CharNames, charcode);
     if (!name) {
       continue;
     }
@@ -323,7 +322,7 @@
 }
 
 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
-void CPDF_Type1Font::SetExtGID(const FX_CHAR* name, int charcode) {
+void CPDF_Type1Font::SetExtGID(const char* name, int charcode) {
   CFStringRef name_ct = CFStringCreateWithCStringNoCopy(
       kCFAllocatorDefault, name, kCFStringEncodingASCII, kCFAllocatorNull);
   m_ExtGID[charcode] =
@@ -333,7 +332,7 @@
 }
 
 void CPDF_Type1Font::CalcExtGID(int charcode) {
-  FX_CHAR name_glyph[256];
+  char name_glyph[256];
   FXFT_Get_Glyph_Name(m_Font.GetFace(), m_GlyphIndex[charcode], name_glyph,
                       256);
   name_glyph[255] = 0;
diff --git a/core/fpdfapi/font/cpdf_type1font.h b/core/fpdfapi/font/cpdf_type1font.h
index f5f3785..8039583 100644
--- a/core/fpdfapi/font/cpdf_type1font.h
+++ b/core/fpdfapi/font/cpdf_type1font.h
@@ -30,7 +30,7 @@
   void LoadGlyphMap() override;
 
 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_
-  void SetExtGID(const FX_CHAR* name, int charcode);
+  void SetExtGID(const char* name, int charcode);
   void CalcExtGID(int charcode);
 #endif
 
diff --git a/core/fpdfapi/font/cpdf_type3font.cpp b/core/fpdfapi/font/cpdf_type3font.cpp
index f6cd6ec..b7ff8c9 100644
--- a/core/fpdfapi/font/cpdf_type3font.cpp
+++ b/core/fpdfapi/font/cpdf_type3font.cpp
@@ -89,7 +89,7 @@
   if (it != m_CacheMap.end())
     return it->second.get();
 
-  const FX_CHAR* name = GetAdobeCharName(m_BaseEncoding, m_CharNames, charcode);
+  const char* name = GetAdobeCharName(m_BaseEncoding, m_CharNames, charcode);
   if (!name)
     return nullptr;
 
diff --git a/core/fpdfapi/font/font_int.h b/core/fpdfapi/font/font_int.h
index 41d821e..23513d4 100644
--- a/core/fpdfapi/font/font_int.h
+++ b/core/fpdfapi/font/font_int.h
@@ -148,9 +148,9 @@
   bool IsVertWriting() const;
   uint16_t CIDFromCharCode(uint32_t charcode) const;
   int GetCharSize(uint32_t charcode) const;
-  uint32_t GetNextChar(const FX_CHAR* pString, int nStrLen, int& offset) const;
-  int CountChar(const FX_CHAR* pString, int size) const;
-  int AppendChar(FX_CHAR* str, uint32_t charcode) const;
+  uint32_t GetNextChar(const char* pString, int nStrLen, int& offset) const;
+  int CountChar(const char* pString, int size) const;
+  int AppendChar(char* str, uint32_t charcode) const;
 
  private:
   friend class CPDF_CMapParser;
@@ -176,7 +176,7 @@
 
   bool IsLoaded();
   void Load(CPDF_CMapManager* pMgr, CIDSet charset, bool bPromptCJK);
-  FX_WCHAR UnicodeFromCID(uint16_t CID);
+  wchar_t UnicodeFromCID(uint16_t CID);
 
  private:
   CIDSet m_Charset;
@@ -192,7 +192,7 @@
   void Load(CPDF_Stream* pStream);
 
   CFX_WideString Lookup(uint32_t charcode) const;
-  uint32_t ReverseLookup(FX_WCHAR unicode) const;
+  uint32_t ReverseLookup(wchar_t unicode) const;
 
  private:
   friend class fpdf_font_StringToCode_Test;
diff --git a/core/fpdfapi/font/fpdf_font.cpp b/core/fpdfapi/font/fpdf_font.cpp
index 86becca..706ae62 100644
--- a/core/fpdfapi/font/fpdf_font.cpp
+++ b/core/fpdfapi/font/fpdf_font.cpp
@@ -100,11 +100,11 @@
   auto it = m_Map.find(charcode);
   if (it != m_Map.end()) {
     uint32_t value = it->second;
-    FX_WCHAR unicode = (FX_WCHAR)(value & 0xffff);
+    wchar_t unicode = (wchar_t)(value & 0xffff);
     if (unicode != 0xffff) {
       return unicode;
     }
-    const FX_WCHAR* buf = m_MultiCharBuf.GetBuffer();
+    const wchar_t* buf = m_MultiCharBuf.GetBuffer();
     uint32_t buf_len = m_MultiCharBuf.GetLength();
     if (!buf || buf_len == 0) {
       return CFX_WideString();
@@ -125,7 +125,7 @@
   return CFX_WideString();
 }
 
-uint32_t CPDF_ToUnicodeMap::ReverseLookup(FX_WCHAR unicode) const {
+uint32_t CPDF_ToUnicodeMap::ReverseLookup(wchar_t unicode) const {
   for (const auto& pair : m_Map) {
     if (pair.second == static_cast<uint32_t>(unicode))
       return pair.first;
@@ -155,9 +155,9 @@
 static CFX_WideString StringDataAdd(CFX_WideString str) {
   CFX_WideString ret;
   int len = str.GetLength();
-  FX_WCHAR value = 1;
+  wchar_t value = 1;
   for (int i = len - 1; i >= 0; --i) {
-    FX_WCHAR ch = str[i] + value;
+    wchar_t ch = str[i] + value;
     if (ch < str[i]) {
       ret.Insert(0, 0);
     } else {
@@ -181,7 +181,7 @@
   CFX_WideString result;
   if (str[0] == '<') {
     int byte_pos = 0;
-    FX_WCHAR ch = 0;
+    wchar_t ch = 0;
     for (int i = 1; i < len && std::isxdigit(str[i]); ++i) {
       ch = ch * 16 + FXSYS_toHexDigit(str[i]);
       byte_pos++;
diff --git a/core/fpdfapi/font/fpdf_font_cid.cpp b/core/fpdfapi/font/fpdf_font_cid.cpp
index afb186d..e6be712 100644
--- a/core/fpdfapi/font/fpdf_font_cid.cpp
+++ b/core/fpdfapi/font/fpdf_font_cid.cpp
@@ -23,12 +23,12 @@
 
 namespace {
 
-const FX_CHAR* const g_CharsetNames[CIDSET_NUM_SETS] = {
-    nullptr, "GB1", "CNS1", "Japan1", "Korea1", "UCS"};
+const char* const g_CharsetNames[CIDSET_NUM_SETS] = {nullptr,  "GB1",    "CNS1",
+                                                     "Japan1", "Korea1", "UCS"};
 
 class CPDF_PredefinedCMap {
  public:
-  const FX_CHAR* m_pName;
+  const char* m_pName;
   CIDSet m_Charset;
   CIDCoding m_Coding;
   CPDF_CMap::CodingScheme m_CodingScheme;
@@ -306,7 +306,7 @@
     const CFX_ByteString& name,
     bool bPromptCJK) {
   auto pCMap = pdfium::MakeUnique<CPDF_CMap>();
-  const FX_CHAR* pname = name.c_str();
+  const char* pname = name.c_str();
   if (*pname == '/')
     pname++;
 
@@ -451,7 +451,7 @@
   }
 
   for (int i = 0; i < word.GetLength() && std::isdigit(word.GetAt(i)); ++i) {
-    num = num * 10 + FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(word.GetAt(i)));
+    num = num * 10 + FXSYS_toDecimalDigit(static_cast<wchar_t>(word.GetAt(i)));
     if (!num.IsValid())
       return 0;
   }
@@ -610,7 +610,7 @@
   return m_pMapping[charcode];
 }
 
-uint32_t CPDF_CMap::GetNextChar(const FX_CHAR* pString,
+uint32_t CPDF_CMap::GetNextChar(const char* pString,
                                 int nStrLen,
                                 int& offset) const {
   switch (m_CodingScheme) {
@@ -676,7 +676,7 @@
   }
   return 1;
 }
-int CPDF_CMap::CountChar(const FX_CHAR* pString, int size) const {
+int CPDF_CMap::CountChar(const char* pString, int size) const {
   switch (m_CodingScheme) {
     case OneByte:
       return size;
@@ -704,7 +704,7 @@
   return size;
 }
 
-int CPDF_CMap::AppendChar(FX_CHAR* str, uint32_t charcode) const {
+int CPDF_CMap::AppendChar(char* str, uint32_t charcode) const {
   switch (m_CodingScheme) {
     case OneByte:
       str[0] = (uint8_t)charcode;
@@ -757,7 +757,7 @@
   return m_EmbeddedCount != 0;
 }
 
-FX_WCHAR CPDF_CID2UnicodeMap::UnicodeFromCID(uint16_t CID) {
+wchar_t CPDF_CID2UnicodeMap::UnicodeFromCID(uint16_t CID) {
   if (m_Charset == CIDSET_UNICODE) {
     return CID;
   }
diff --git a/core/fpdfapi/page/cpdf_image.cpp b/core/fpdfapi/page/cpdf_image.cpp
index 6b0bfd7..fea03c7 100644
--- a/core/fpdfapi/page/cpdf_image.cpp
+++ b/core/fpdfapi/page/cpdf_image.cpp
@@ -88,7 +88,7 @@
   pDict->SetNewFor<CPDF_Name>("Subtype", "Image");
   pDict->SetNewFor<CPDF_Number>("Width", width);
   pDict->SetNewFor<CPDF_Number>("Height", height);
-  const FX_CHAR* csname = nullptr;
+  const char* csname = nullptr;
   if (num_comps == 1) {
     csname = "DeviceGray";
   } else if (num_comps == 3) {
@@ -200,13 +200,13 @@
       pCS->AddNew<CPDF_Name>("DeviceRGB");
       pCS->AddNew<CPDF_Number>(1);
       CFX_ByteString ct;
-      FX_CHAR* pBuf = ct.GetBuffer(6);
-      pBuf[0] = (FX_CHAR)reset_r;
-      pBuf[1] = (FX_CHAR)reset_g;
-      pBuf[2] = (FX_CHAR)reset_b;
-      pBuf[3] = (FX_CHAR)set_r;
-      pBuf[4] = (FX_CHAR)set_g;
-      pBuf[5] = (FX_CHAR)set_b;
+      char* pBuf = ct.GetBuffer(6);
+      pBuf[0] = (char)reset_r;
+      pBuf[1] = (char)reset_g;
+      pBuf[2] = (char)reset_b;
+      pBuf[3] = (char)set_r;
+      pBuf[4] = (char)set_g;
+      pBuf[5] = (char)set_b;
       ct.ReleaseBuffer(6);
       pCS->AddNew<CPDF_String>(ct, true);
     }
diff --git a/core/fpdfapi/page/cpdf_psengine.h b/core/fpdfapi/page/cpdf_psengine.h
index 659ca82..eba3e9b 100644
--- a/core/fpdfapi/page/cpdf_psengine.h
+++ b/core/fpdfapi/page/cpdf_psengine.h
@@ -83,7 +83,7 @@
   CPDF_PSEngine();
   ~CPDF_PSEngine();
 
-  bool Parse(const FX_CHAR* str, int size);
+  bool Parse(const char* str, int size);
   bool Execute();
   bool DoOperator(PDF_PSOP op);
   void Reset() { m_StackCount = 0; }
diff --git a/core/fpdfapi/page/cpdf_streamcontentparser.cpp b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
index 102ec79..fe277f2 100644
--- a/core/fpdfapi/page/cpdf_streamcontentparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamcontentparser.cpp
@@ -135,8 +135,8 @@
 }
 
 struct AbbrPair {
-  const FX_CHAR* abbr;
-  const FX_CHAR* full_name;
+  const char* abbr;
+  const char* full_name;
 };
 
 const AbbrPair InlineKeyAbbr[] = {
diff --git a/core/fpdfapi/page/cpdf_streamparser.cpp b/core/fpdfapi/page/cpdf_streamparser.cpp
index 294d72c..978617e 100644
--- a/core/fpdfapi/page/cpdf_streamparser.cpp
+++ b/core/fpdfapi/page/cpdf_streamparser.cpp
@@ -500,7 +500,7 @@
         break;
       case 1:
         if (ch >= '0' && ch <= '7') {
-          iEscCode = FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(ch));
+          iEscCode = FXSYS_toDecimalDigit(static_cast<wchar_t>(ch));
           status = 2;
           break;
         }
@@ -526,7 +526,7 @@
       case 2:
         if (ch >= '0' && ch <= '7') {
           iEscCode =
-              iEscCode * 8 + FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(ch));
+              iEscCode * 8 + FXSYS_toDecimalDigit(static_cast<wchar_t>(ch));
           status = 3;
         } else {
           buf.AppendChar(iEscCode);
@@ -537,7 +537,7 @@
       case 3:
         if (ch >= '0' && ch <= '7') {
           iEscCode =
-              iEscCode * 8 + FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(ch));
+              iEscCode * 8 + FXSYS_toDecimalDigit(static_cast<wchar_t>(ch));
           buf.AppendChar(iEscCode);
           status = 0;
         } else {
diff --git a/core/fpdfapi/page/cpdf_textobject.cpp b/core/fpdfapi/page/cpdf_textobject.cpp
index da69de8..1c940bc 100644
--- a/core/fpdfapi/page/cpdf_textobject.cpp
+++ b/core/fpdfapi/page/cpdf_textobject.cpp
@@ -149,7 +149,7 @@
   m_CharPos.resize(nChars - 1);
   int index = 0;
   for (int i = 0; i < nsegs; ++i) {
-    const FX_CHAR* segment = pStrs[i].c_str();
+    const char* segment = pStrs[i].c_str();
     int len = pStrs[i].GetLength();
     int offset = 0;
     while (offset < len)
diff --git a/core/fpdfapi/page/fpdf_page_func.cpp b/core/fpdfapi/page/fpdf_page_func.cpp
index f81ec9e..9c0cc94 100644
--- a/core/fpdfapi/page/fpdf_page_func.cpp
+++ b/core/fpdfapi/page/fpdf_page_func.cpp
@@ -25,7 +25,7 @@
 namespace {
 
 struct PDF_PSOpName {
-  const FX_CHAR* name;
+  const char* name;
   PDF_PSOP op;
 };
 
@@ -95,7 +95,7 @@
 bool CPDF_PSFunc::v_Init(CPDF_Object* pObj) {
   CPDF_StreamAcc acc;
   acc.LoadAllData(pObj->AsStream(), false);
-  return m_PS.Parse(reinterpret_cast<const FX_CHAR*>(acc.GetData()),
+  return m_PS.Parse(reinterpret_cast<const char*>(acc.GetData()),
                     acc.GetSize());
 }
 
@@ -200,7 +200,7 @@
   }
   return m_Stack[--m_StackCount];
 }
-bool CPDF_PSEngine::Parse(const FX_CHAR* str, int size) {
+bool CPDF_PSEngine::Parse(const char* str, int size) {
   CPDF_SimpleParser parser((uint8_t*)str, size);
   CFX_ByteStringC word = parser.GetWord();
   if (word != "{") {
diff --git a/core/fpdfapi/parser/cpdf_document.cpp b/core/fpdfapi/parser/cpdf_document.cpp
index 21eb61a..ed88a4f 100644
--- a/core/fpdfapi/parser/cpdf_document.cpp
+++ b/core/fpdfapi/parser/cpdf_document.cpp
@@ -231,8 +231,8 @@
 
 void InsertWidthArray1(CFX_Font* pFont,
                        CFX_UnicodeEncoding* pEncoding,
-                       FX_WCHAR start,
-                       FX_WCHAR end,
+                       wchar_t start,
+                       wchar_t end,
                        CPDF_Array* pWidthArray) {
   int size = end - start + 1;
   int* widths = FX_Alloc(int, size);
@@ -765,7 +765,7 @@
   m_PageList.erase(m_PageList.begin() + iPage);
 }
 
-CPDF_Font* CPDF_Document::AddStandardFont(const FX_CHAR* font,
+CPDF_Font* CPDF_Document::AddStandardFont(const char* font,
                                           CPDF_FontEncoding* pEncoding) {
   CFX_ByteString name(font);
   if (PDF_GetStandardFontName(&name) < 0)
@@ -804,7 +804,7 @@
     int charset,
     bool bVert,
     CFX_ByteString basefont,
-    std::function<void(FX_WCHAR, FX_WCHAR, CPDF_Array*)> Insert) {
+    std::function<void(wchar_t, wchar_t, CPDF_Array*)> Insert) {
   CPDF_Dictionary* pFontDict = NewIndirect<CPDF_Dictionary>();
   CFX_ByteString cmap;
   CFX_ByteString ordering;
@@ -914,12 +914,11 @@
     ProcessNonbCJK(pBaseDict, pFont->IsBold(), pFont->IsItalic(), basefont,
                    std::move(pWidths));
   } else {
-    pFontDict = ProcessbCJK(pBaseDict, charset, bVert, basefont,
-                            [pFont, &pEncoding](FX_WCHAR start, FX_WCHAR end,
-                                                CPDF_Array* widthArr) {
-                              InsertWidthArray1(pFont, pEncoding.get(), start,
-                                                end, widthArr);
-                            });
+    pFontDict = ProcessbCJK(
+        pBaseDict, charset, bVert, basefont,
+        [pFont, &pEncoding](wchar_t start, wchar_t end, CPDF_Array* widthArr) {
+          InsertWidthArray1(pFont, pEncoding.get(), start, end, widthArr);
+        });
   }
   int italicangle =
       pFont->GetSubstFont() ? pFont->GetSubstFont()->m_ItalicAngle : 0;
@@ -934,7 +933,7 @@
   if (pFont->GetSubstFont()) {
     nStemV = pFont->GetSubstFont()->m_Weight / 5;
   } else {
-    static const FX_CHAR stem_chars[] = {'i', 'I', '!', '1'};
+    static const char stem_chars[] = {'i', 'I', '!', '1'};
     const size_t count = FX_ArraySize(stem_chars);
     uint32_t glyph = pEncoding->GlyphFromCharCode(stem_chars[0]);
     nStemV = pFont->GetGlyphWidth(glyph);
@@ -1032,7 +1031,7 @@
   } else {
     pFontDict =
         ProcessbCJK(pBaseDict, pLogFont->lfCharSet, bVert, basefont,
-                    [&hDC](FX_WCHAR start, FX_WCHAR end, CPDF_Array* widthArr) {
+                    [&hDC](wchar_t start, wchar_t end, CPDF_Array* widthArr) {
                       InsertWidthArray(hDC, start, end, widthArr);
                     });
   }
diff --git a/core/fpdfapi/parser/cpdf_document.h b/core/fpdfapi/parser/cpdf_document.h
index 3848ad6..3524231 100644
--- a/core/fpdfapi/parser/cpdf_document.h
+++ b/core/fpdfapi/parser/cpdf_document.h
@@ -89,7 +89,7 @@
   void CreateNewDoc();
   CPDF_Dictionary* CreateNewPage(int iPage);
 
-  CPDF_Font* AddStandardFont(const FX_CHAR* font, CPDF_FontEncoding* pEncoding);
+  CPDF_Font* AddStandardFont(const char* font, CPDF_FontEncoding* pEncoding);
   CPDF_Font* AddFont(CFX_Font* pFont, int charset, bool bVert);
 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
   CPDF_Font* AddWindowsFont(LOGFONTA* pLogFont,
@@ -119,7 +119,7 @@
       int charset,
       bool bVert,
       CFX_ByteString basefont,
-      std::function<void(FX_WCHAR, FX_WCHAR, CPDF_Array*)> Insert);
+      std::function<void(wchar_t, wchar_t, CPDF_Array*)> Insert);
   bool InsertDeletePDFPage(CPDF_Dictionary* pPages,
                            int nPagesToGo,
                            CPDF_Dictionary* pPageDict,
diff --git a/core/fpdfapi/parser/cpdf_parser.cpp b/core/fpdfapi/parser/cpdf_parser.cpp
index f9d9eb3..323f917 100644
--- a/core/fpdfapi/parser/cpdf_parser.cpp
+++ b/core/fpdfapi/parser/cpdf_parser.cpp
@@ -143,13 +143,13 @@
     return FORMAT_ERROR;
 
   if (std::isdigit(ch))
-    m_FileVersion = FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(ch)) * 10;
+    m_FileVersion = FXSYS_toDecimalDigit(static_cast<wchar_t>(ch)) * 10;
 
   if (!m_pSyntax->GetCharAt(7, ch))
     return FORMAT_ERROR;
 
   if (std::isdigit(ch))
-    m_FileVersion += FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(ch));
+    m_FileVersion += FXSYS_toDecimalDigit(static_cast<wchar_t>(ch));
 
   if (m_pSyntax->m_FileLen < m_pSyntax->m_HeaderOffset + 9)
     return FORMAT_ERROR;
@@ -627,7 +627,7 @@
           if (std::isdigit(byte)) {
             start_pos = pos + i;
             state = ParserState::kObjNum;
-            objnum = FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(byte));
+            objnum = FXSYS_toDecimalDigit(static_cast<wchar_t>(byte));
           } else if (byte == 't') {
             state = ParserState::kTrailer;
             inside_index = 1;
@@ -643,7 +643,7 @@
         case ParserState::kObjNum:
           if (std::isdigit(byte)) {
             objnum =
-                objnum * 10 + FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(byte));
+                objnum * 10 + FXSYS_toDecimalDigit(static_cast<wchar_t>(byte));
           } else if (PDFCharIsWhitespace(byte)) {
             state = ParserState::kPostObjNum;
           } else {
@@ -657,7 +657,7 @@
           if (std::isdigit(byte)) {
             start_pos1 = pos + i;
             state = ParserState::kGenNum;
-            gennum = FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(byte));
+            gennum = FXSYS_toDecimalDigit(static_cast<wchar_t>(byte));
           } else if (byte == 't') {
             state = ParserState::kTrailer;
             inside_index = 1;
@@ -670,7 +670,7 @@
         case ParserState::kGenNum:
           if (std::isdigit(byte)) {
             gennum =
-                gennum * 10 + FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(byte));
+                gennum * 10 + FXSYS_toDecimalDigit(static_cast<wchar_t>(byte));
           } else if (PDFCharIsWhitespace(byte)) {
             state = ParserState::kPostGenNum;
           } else {
@@ -685,7 +685,7 @@
             inside_index = 1;
           } else if (std::isdigit(byte)) {
             objnum = gennum;
-            gennum = FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(byte));
+            gennum = FXSYS_toDecimalDigit(static_cast<wchar_t>(byte));
             start_pos = start_pos1;
             start_pos1 = pos + i;
             state = ParserState::kGenNum;
diff --git a/core/fpdfapi/parser/cpdf_parser.h b/core/fpdfapi/parser/cpdf_parser.h
index f8ff7a1..0b73857 100644
--- a/core/fpdfapi/parser/cpdf_parser.h
+++ b/core/fpdfapi/parser/cpdf_parser.h
@@ -48,7 +48,7 @@
   Error StartLinearizedParse(const CFX_RetainPtr<IFX_SeekableReadStream>& pFile,
                              CPDF_Document* pDocument);
 
-  void SetPassword(const FX_CHAR* password) { m_Password = password; }
+  void SetPassword(const char* password) { m_Password = password; }
   CFX_ByteString GetPassword() { return m_Password; }
   CPDF_Dictionary* GetTrailer() const { return m_pTrailer.get(); }
   FX_FILESIZE GetLastXRefOffset() const { return m_LastXRefOffset; }
diff --git a/core/fpdfapi/parser/cpdf_parser_unittest.cpp b/core/fpdfapi/parser/cpdf_parser_unittest.cpp
index 3518f7d..a90477f 100644
--- a/core/fpdfapi/parser/cpdf_parser_unittest.cpp
+++ b/core/fpdfapi/parser/cpdf_parser_unittest.cpp
@@ -49,7 +49,7 @@
   ~CPDF_TestParser() {}
 
   // Setup reading from a file and initial states.
-  bool InitTestFromFile(const FX_CHAR* path) {
+  bool InitTestFromFile(const char* path) {
     CFX_RetainPtr<IFX_SeekableReadStream> pFileAccess =
         IFX_SeekableReadStream::CreateFromFilename(path);
     if (!pFileAccess)
diff --git a/core/fpdfapi/parser/cpdf_syntax_parser.cpp b/core/fpdfapi/parser/cpdf_syntax_parser.cpp
index 1b81b98..2a0bf36 100644
--- a/core/fpdfapi/parser/cpdf_syntax_parser.cpp
+++ b/core/fpdfapi/parser/cpdf_syntax_parser.cpp
@@ -225,7 +225,7 @@
         break;
       case ReadStatus::Backslash:
         if (ch >= '0' && ch <= '7') {
-          iEscCode = FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(ch));
+          iEscCode = FXSYS_toDecimalDigit(static_cast<wchar_t>(ch));
           status = ReadStatus::Octal;
           break;
         }
@@ -251,7 +251,7 @@
       case ReadStatus::Octal:
         if (ch >= '0' && ch <= '7') {
           iEscCode =
-              iEscCode * 8 + FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(ch));
+              iEscCode * 8 + FXSYS_toDecimalDigit(static_cast<wchar_t>(ch));
           status = ReadStatus::FinishOctal;
         } else {
           buf.AppendChar(iEscCode);
@@ -263,7 +263,7 @@
         status = ReadStatus::Normal;
         if (ch >= '0' && ch <= '7') {
           iEscCode =
-              iEscCode * 8 + FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(ch));
+              iEscCode * 8 + FXSYS_toDecimalDigit(static_cast<wchar_t>(ch));
           buf.AppendChar(iEscCode);
         } else {
           buf.AppendChar(iEscCode);
@@ -358,7 +358,7 @@
 
 CFX_ByteString CPDF_SyntaxParser::GetNextWord(bool* bIsNumber) {
   GetNextWordInternal(bIsNumber);
-  return CFX_ByteString((const FX_CHAR*)m_WordBuffer, m_WordSize);
+  return CFX_ByteString((const char*)m_WordBuffer, m_WordSize);
 }
 
 CFX_ByteString CPDF_SyntaxParser::GetKeyword() {
@@ -781,7 +781,7 @@
     return 0;
 
   m_WordBuffer[m_WordSize] = 0;
-  return FXSYS_atoui(reinterpret_cast<const FX_CHAR*>(m_WordBuffer));
+  return FXSYS_atoui(reinterpret_cast<const char*>(m_WordBuffer));
 }
 
 bool CPDF_SyntaxParser::IsWholeWord(FX_FILESIZE startpos,
diff --git a/core/fpdfapi/parser/fpdf_parser_decode.cpp b/core/fpdfapi/parser/fpdf_parser_decode.cpp
index 480e2c1..98bb4ee 100644
--- a/core/fpdfapi/parser/fpdf_parser_decode.cpp
+++ b/core/fpdfapi/parser/fpdf_parser_decode.cpp
@@ -432,7 +432,7 @@
     if (src_data[0] == 0xff) {
       bBE = !src_data[2];
     }
-    FX_WCHAR* dest_buf = result.GetBuffer(max_chars);
+    wchar_t* dest_buf = result.GetBuffer(max_chars);
     const uint8_t* uni_str = src_data + 2;
     int dest_pos = 0;
     for (uint32_t i = 0; i < max_chars * 2; i += 2) {
@@ -453,7 +453,7 @@
     }
     result.ReleaseBuffer(dest_pos);
   } else {
-    FX_WCHAR* dest_buf = result.GetBuffer(src_len);
+    wchar_t* dest_buf = result.GetBuffer(src_len);
     for (uint32_t i = 0; i < src_len; i++)
       dest_buf[i] = PDFDocEncoding[src_data[i]];
     result.ReleaseBuffer(src_len);
@@ -465,12 +465,12 @@
   return PDF_DecodeText((const uint8_t*)bstr.c_str(), bstr.GetLength());
 }
 
-CFX_ByteString PDF_EncodeText(const FX_WCHAR* pString, int len) {
+CFX_ByteString PDF_EncodeText(const wchar_t* pString, int len) {
   if (len == -1) {
     len = FXSYS_wcslen(pString);
   }
   CFX_ByteString result;
-  FX_CHAR* dest_buf1 = result.GetBuffer(len);
+  char* dest_buf1 = result.GetBuffer(len);
   int i;
   for (i = 0; i < len; i++) {
     int code;
diff --git a/core/fpdfapi/parser/fpdf_parser_decode.h b/core/fpdfapi/parser/fpdf_parser_decode.h
index dc8ecf0..0c74e41 100644
--- a/core/fpdfapi/parser/fpdf_parser_decode.h
+++ b/core/fpdfapi/parser/fpdf_parser_decode.h
@@ -23,7 +23,7 @@
 CFX_ByteString PDF_EncodeString(const CFX_ByteString& src, bool bHex = false);
 CFX_WideString PDF_DecodeText(const uint8_t* pData, uint32_t size);
 CFX_WideString PDF_DecodeText(const CFX_ByteString& bstr);
-CFX_ByteString PDF_EncodeText(const FX_WCHAR* pString, int len = -1);
+CFX_ByteString PDF_EncodeText(const wchar_t* pString, int len = -1);
 CFX_ByteString PDF_EncodeText(const CFX_WideString& str);
 
 bool FlateEncode(const uint8_t* src_buf,
diff --git a/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp b/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp
index 30d30a4..f8c9863 100644
--- a/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp
+++ b/core/fpdfapi/parser/fpdf_parser_decode_unittest.cpp
@@ -79,8 +79,8 @@
 
 TEST(fpdf_parser_decode, EncodeText) {
   struct EncodeTestData {
-    const FX_WCHAR* input;
-    const FX_CHAR* expected_output;
+    const wchar_t* input;
+    const char* expected_output;
     FX_STRSIZE expected_length;
   } test_data[] = {
       // Empty src string.
@@ -102,7 +102,7 @@
     CFX_ByteString output = PDF_EncodeText(test_case.input);
     ASSERT_EQ(test_case.expected_length, output.GetLength()) << "for case "
                                                              << i;
-    const FX_CHAR* str_ptr = output.c_str();
+    const char* str_ptr = output.c_str();
     for (FX_STRSIZE j = 0; j < test_case.expected_length; ++j) {
       EXPECT_EQ(test_case.expected_output[j], str_ptr[j]) << "for case " << i
                                                           << " char " << j;
diff --git a/core/fpdfapi/parser/fpdf_parser_utility.cpp b/core/fpdfapi/parser/fpdf_parser_utility.cpp
index 9583ea7..10ba231 100644
--- a/core/fpdfapi/parser/fpdf_parser_utility.cpp
+++ b/core/fpdfapi/parser/fpdf_parser_utility.cpp
@@ -93,8 +93,8 @@
 
   int size = bstr.GetLength();
   CFX_ByteString result;
-  FX_CHAR* pDestStart = result.GetBuffer(size);
-  FX_CHAR* pDest = pDestStart;
+  char* pDestStart = result.GetBuffer(size);
+  char* pDest = pDestStart;
   for (int i = 0; i < size; i++) {
     if (bstr[i] == '#' && i < size - 2) {
       *pDest++ =
@@ -132,7 +132,7 @@
     return orig;
 
   CFX_ByteString res;
-  FX_CHAR* dest_buf = res.GetBuffer(dest_len);
+  char* dest_buf = res.GetBuffer(dest_len);
   dest_len = 0;
   for (i = 0; i < src_len; i++) {
     uint8_t ch = src_buf[i];
diff --git a/core/fpdfapi/render/cpdf_type3cache.cpp b/core/fpdfapi/render/cpdf_type3cache.cpp
index 63cc780..a5de13b 100644
--- a/core/fpdfapi/render/cpdf_type3cache.cpp
+++ b/core/fpdfapi/render/cpdf_type3cache.cpp
@@ -19,7 +19,7 @@
 
 struct CPDF_UniqueKeyGen {
   void Generate(int count, ...);
-  FX_CHAR m_Key[128];
+  char m_Key[128];
   int m_KeyLen;
 };
 
diff --git a/core/fpdfdoc/cpdf_aaction.cpp b/core/fpdfdoc/cpdf_aaction.cpp
index 39120fc..7dc4282 100644
--- a/core/fpdfdoc/cpdf_aaction.cpp
+++ b/core/fpdfdoc/cpdf_aaction.cpp
@@ -8,9 +8,9 @@
 
 namespace {
 
-const FX_CHAR* g_sAATypes[] = {"E",  "X",  "D",  "U",  "Fo", "Bl", "PO", "PC",
-                               "PV", "PI", "O",  "C",  "K",  "F",  "V",  "C",
-                               "WC", "WS", "DS", "WP", "DP", ""};
+const char* g_sAATypes[] = {"E",  "X",  "D",  "U",  "Fo", "Bl", "PO", "PC",
+                            "PV", "PI", "O",  "C",  "K",  "F",  "V",  "C",
+                            "WC", "WS", "DS", "WP", "DP", ""};
 
 }  // namespace
 
diff --git a/core/fpdfdoc/cpdf_action.cpp b/core/fpdfdoc/cpdf_action.cpp
index dabc0bb..f523f86 100644
--- a/core/fpdfdoc/cpdf_action.cpp
+++ b/core/fpdfdoc/cpdf_action.cpp
@@ -13,7 +13,7 @@
 
 namespace {
 
-const FX_CHAR* const g_sATypes[] = {
+const char* const g_sATypes[] = {
     "Unknown",     "GoTo",       "GoToR",     "GoToE",      "Launch",
     "Thread",      "URI",        "Sound",     "Movie",      "Hide",
     "Named",       "SubmitForm", "ResetForm", "ImportData", "JavaScript",
diff --git a/core/fpdfdoc/cpdf_annot.cpp b/core/fpdfdoc/cpdf_annot.cpp
index 89c4785..f15d39d 100644
--- a/core/fpdfdoc/cpdf_annot.cpp
+++ b/core/fpdfdoc/cpdf_annot.cpp
@@ -163,7 +163,7 @@
   if (!pAP) {
     return nullptr;
   }
-  const FX_CHAR* ap_entry = "N";
+  const char* ap_entry = "N";
   if (mode == CPDF_Annot::Down)
     ap_entry = "D";
   else if (mode == CPDF_Annot::Rollover)
diff --git a/core/fpdfdoc/cpdf_bookmark.cpp b/core/fpdfdoc/cpdf_bookmark.cpp
index c2c3705..ba1e18c 100644
--- a/core/fpdfdoc/cpdf_bookmark.cpp
+++ b/core/fpdfdoc/cpdf_bookmark.cpp
@@ -44,9 +44,9 @@
   if (!len)
     return CFX_WideString();
 
-  std::unique_ptr<FX_WCHAR[]> buf(new FX_WCHAR[len]);
+  std::unique_ptr<wchar_t[]> buf(new wchar_t[len]);
   for (int i = 0; i < len; i++) {
-    FX_WCHAR w = title[i];
+    wchar_t w = title[i];
     buf[i] = w > 0x20 ? w : 0x20;
   }
   return CFX_WideString(buf.get(), len);
diff --git a/core/fpdfdoc/cpdf_dest.cpp b/core/fpdfdoc/cpdf_dest.cpp
index 51e2d0b..11264f7 100644
--- a/core/fpdfdoc/cpdf_dest.cpp
+++ b/core/fpdfdoc/cpdf_dest.cpp
@@ -13,8 +13,8 @@
 
 namespace {
 
-const FX_CHAR* const g_sZoomModes[] = {"XYZ",  "Fit",   "FitH",  "FitV", "FitR",
-                                       "FitB", "FitBH", "FitBV", nullptr};
+const char* const g_sZoomModes[] = {"XYZ",  "Fit",   "FitH",  "FitV", "FitR",
+                                    "FitB", "FitBH", "FitBV", nullptr};
 
 }  // namespace
 
diff --git a/core/fpdfdoc/cpdf_filespec.cpp b/core/fpdfdoc/cpdf_filespec.cpp
index ce6f9a2..e5f026e 100644
--- a/core/fpdfdoc/cpdf_filespec.cpp
+++ b/core/fpdfdoc/cpdf_filespec.cpp
@@ -17,7 +17,7 @@
 
 #if _FXM_PLATFORM_ == _FXM_PLATFORM_APPLE_ || \
     _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
-CFX_WideString ChangeSlashToPlatform(const FX_WCHAR* str) {
+CFX_WideString ChangeSlashToPlatform(const wchar_t* str) {
   CFX_WideString result;
   while (*str) {
     if (*str == '/') {
@@ -34,7 +34,7 @@
   return result;
 }
 
-CFX_WideString ChangeSlashToPDF(const FX_WCHAR* str) {
+CFX_WideString ChangeSlashToPDF(const wchar_t* str) {
   CFX_WideString result;
   while (*str) {
     if (*str == '\\' || *str == ':')
diff --git a/core/fpdfdoc/cpdf_formcontrol.cpp b/core/fpdfdoc/cpdf_formcontrol.cpp
index 54edb49..0a5363e 100644
--- a/core/fpdfdoc/cpdf_formcontrol.cpp
+++ b/core/fpdfdoc/cpdf_formcontrol.cpp
@@ -20,7 +20,7 @@
 
 namespace {
 
-const FX_CHAR* const g_sHighlightingMode[] = {
+const char* const g_sHighlightingMode[] = {
     // Must match order of HighlightingMode enum.
     "N", "I", "O", "P", "T"};
 
diff --git a/core/fpdfdoc/cpdf_formfield.cpp b/core/fpdfdoc/cpdf_formfield.cpp
index f9187d8..c697cbb 100644
--- a/core/fpdfdoc/cpdf_formfield.cpp
+++ b/core/fpdfdoc/cpdf_formfield.cpp
@@ -48,7 +48,7 @@
 }  // namespace
 
 CPDF_Object* FPDF_GetFieldAttr(CPDF_Dictionary* pFieldDict,
-                               const FX_CHAR* name,
+                               const char* name,
                                int nLevel) {
   if (nLevel > kMaxRecursion)
     return nullptr;
diff --git a/core/fpdfdoc/cpdf_formfield.h b/core/fpdfdoc/cpdf_formfield.h
index 42608b1..0cb0a48 100644
--- a/core/fpdfdoc/cpdf_formfield.h
+++ b/core/fpdfdoc/cpdf_formfield.h
@@ -36,7 +36,7 @@
 class CPDF_String;
 
 CPDF_Object* FPDF_GetFieldAttr(CPDF_Dictionary* pFieldDict,
-                               const FX_CHAR* name,
+                               const char* name,
                                int nLevel = 0);
 CFX_WideString FPDF_GetFullName(CPDF_Dictionary* pFieldDict);
 
diff --git a/core/fpdfdoc/cpdf_interform.cpp b/core/fpdfdoc/cpdf_interform.cpp
index d9f0db9..9b2c2eb 100644
--- a/core/fpdfdoc/cpdf_interform.cpp
+++ b/core/fpdfdoc/cpdf_interform.cpp
@@ -29,7 +29,7 @@
 const int nMaxRecursion = 32;
 
 const struct SupportFieldEncoding {
-  const FX_CHAR* m_name;
+  const char* m_name;
   uint16_t m_codePage;
 } g_fieldEncoding[] = {
     {"BigFive", 950},
@@ -307,7 +307,7 @@
     m_pEnd = m_pCur + m_FullName.GetLength();
   }
 
-  void GetNext(const FX_WCHAR*& pSubName, FX_STRSIZE& size) {
+  void GetNext(const wchar_t*& pSubName, FX_STRSIZE& size) {
     pSubName = m_pCur;
     while (m_pCur < m_pEnd && m_pCur[0] != L'.')
       m_pCur++;
@@ -319,8 +319,8 @@
 
  protected:
   CFX_WideString m_FullName;
-  const FX_WCHAR* m_pCur;
-  const FX_WCHAR* m_pEnd;
+  const wchar_t* m_pCur;
+  const wchar_t* m_pEnd;
 };
 
 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
@@ -372,8 +372,8 @@
 #endif  // _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
 
 int CompareFieldName(const CFX_WideString& name1, const CFX_WideString& name2) {
-  const FX_WCHAR* ptr1 = name1.c_str();
-  const FX_WCHAR* ptr2 = name2.c_str();
+  const wchar_t* ptr1 = name1.c_str();
+  const wchar_t* ptr2 = name2.c_str();
   if (name1.GetLength() == name2.GetLength())
     return name1 == name2 ? 1 : 0;
 
@@ -523,7 +523,7 @@
     return;
 
   CFieldNameExtractor name_extractor(full_name);
-  const FX_WCHAR* pName;
+  const wchar_t* pName;
   FX_STRSIZE nLength;
   name_extractor.GetNext(pName, nLength);
   Node* pNode = &m_Root;
@@ -546,7 +546,7 @@
     return nullptr;
 
   CFieldNameExtractor name_extractor(full_name);
-  const FX_WCHAR* pName;
+  const wchar_t* pName;
   FX_STRSIZE nLength;
   name_extractor.GetNext(pName, nLength);
   Node* pNode = &m_Root;
@@ -565,7 +565,7 @@
     return nullptr;
 
   CFieldNameExtractor name_extractor(full_name);
-  const FX_WCHAR* pName;
+  const wchar_t* pName;
   FX_STRSIZE nLength;
   name_extractor.GetNext(pName, nLength);
   Node* pNode = &m_Root;
@@ -687,9 +687,9 @@
 
 CFX_ByteString CPDF_InterForm::GenerateNewResourceName(
     const CPDF_Dictionary* pResDict,
-    const FX_CHAR* csType,
+    const char* csType,
     int iMinLen,
-    const FX_CHAR* csPrefix) {
+    const char* csPrefix) {
   CFX_ByteString csStr = csPrefix;
   CFX_ByteString csBType = csType;
   if (csStr.IsEmpty()) {
diff --git a/core/fpdfdoc/cpdf_interform.h b/core/fpdfdoc/cpdf_interform.h
index cbaaa7b..fdf08ac 100644
--- a/core/fpdfdoc/cpdf_interform.h
+++ b/core/fpdfdoc/cpdf_interform.h
@@ -39,9 +39,9 @@
   static void SetUpdateAP(bool bUpdateAP);
   static bool IsUpdateAPEnabled();
   static CFX_ByteString GenerateNewResourceName(const CPDF_Dictionary* pResDict,
-                                                const FX_CHAR* csType,
+                                                const char* csType,
                                                 int iMinLen,
-                                                const FX_CHAR* csPrefix);
+                                                const char* csPrefix);
   static CPDF_Font* AddStandardFont(CPDF_Document* pDocument,
                                     CFX_ByteString csFontName);
   static CFX_ByteString GetNativeFont(uint8_t iCharSet, void* pLogFont);
diff --git a/core/fpdfdoc/cpdf_pagelabel.cpp b/core/fpdfdoc/cpdf_pagelabel.cpp
index 2a79d77..4200a28 100644
--- a/core/fpdfdoc/cpdf_pagelabel.cpp
+++ b/core/fpdfdoc/cpdf_pagelabel.cpp
@@ -44,7 +44,7 @@
 
   int count = num / nLetterCount + 1;
   count %= nMaxCount;
-  FX_WCHAR ch = L'a' + num % nLetterCount;
+  wchar_t ch = L'a' + num % nLetterCount;
   for (int i = 0; i < count; i++)
     wsLetters += ch;
   return wsLetters;
diff --git a/core/fpdfdoc/cpdf_variabletext.cpp b/core/fpdfdoc/cpdf_variabletext.cpp
index 94b3425..aa393f7 100644
--- a/core/fpdfdoc/cpdf_variabletext.cpp
+++ b/core/fpdfdoc/cpdf_variabletext.cpp
@@ -338,7 +338,7 @@
 }
 
 CPVT_WordPlace CPDF_VariableText::InsertText(const CPVT_WordPlace& place,
-                                             const FX_WCHAR* text) {
+                                             const wchar_t* text) {
   CFX_WideString swText = text;
   CPVT_WordPlace wp = place;
   for (int32_t i = 0, sz = swText.GetLength(); i < sz; i++) {
diff --git a/core/fpdfdoc/cpdf_variabletext.h b/core/fpdfdoc/cpdf_variabletext.h
index 8e7c0c9..3bec89a 100644
--- a/core/fpdfdoc/cpdf_variabletext.h
+++ b/core/fpdfdoc/cpdf_variabletext.h
@@ -114,7 +114,7 @@
   CPVT_WordPlace InsertSection(const CPVT_WordPlace& place,
                                const CPVT_SecProps* pSecProps,
                                const CPVT_WordProps* pWordProps);
-  CPVT_WordPlace InsertText(const CPVT_WordPlace& place, const FX_WCHAR* text);
+  CPVT_WordPlace InsertText(const CPVT_WordPlace& place, const wchar_t* text);
   CPVT_WordPlace DeleteWords(const CPVT_WordRange& PlaceRange);
   CPVT_WordPlace DeleteWord(const CPVT_WordPlace& place);
   CPVT_WordPlace BackSpaceWord(const CPVT_WordPlace& place);
diff --git a/core/fpdftext/cpdf_linkextract.cpp b/core/fpdftext/cpdf_linkextract.cpp
index a1fc93e..686b6a2 100644
--- a/core/fpdftext/cpdf_linkextract.cpp
+++ b/core/fpdftext/cpdf_linkextract.cpp
@@ -45,7 +45,7 @@
       strBeCheck = m_pTextPage->GetPageText(start, nCount);
       if (strBeCheck.GetLength() > 5) {
         while (strBeCheck.GetLength() > 0) {
-          FX_WCHAR ch = strBeCheck.GetAt(strBeCheck.GetLength() - 1);
+          wchar_t ch = strBeCheck.GetAt(strBeCheck.GetLength() - 1);
           if (ch == L')' || ch == L',' || ch == L'>' || ch == L'.') {
             strBeCheck = strBeCheck.Mid(0, strBeCheck.GetLength() - 1);
             nCount--;
@@ -101,7 +101,7 @@
   // Check the local part.
   int pPos = aPos;  // Used to track the position of '@' or '.'.
   for (int i = aPos - 1; i >= 0; i--) {
-    FX_WCHAR ch = str.GetAt(i);
+    wchar_t ch = str.GetAt(i);
     if (ch == L'_' || ch == L'-' || FXSYS_iswalnum(ch))
       continue;
 
@@ -137,7 +137,7 @@
   int nLen = str.GetLength();
   pPos = 0;  // Used to track the position of '.'.
   for (int i = aPos + 1; i < nLen; i++) {
-    FX_WCHAR wch = str.GetAt(i);
+    wchar_t wch = str.GetAt(i);
     if (wch == L'-' || FXSYS_iswalnum(wch))
       continue;
 
diff --git a/core/fpdftext/cpdf_textpage.cpp b/core/fpdftext/cpdf_textpage.cpp
index 73a1a7e..1a1edcb 100644
--- a/core/fpdftext/cpdf_textpage.cpp
+++ b/core/fpdftext/cpdf_textpage.cpp
@@ -66,9 +66,9 @@
   return baseSpace;
 }
 
-FX_STRSIZE Unicode_GetNormalization(FX_WCHAR wch, FX_WCHAR* pDst) {
+FX_STRSIZE Unicode_GetNormalization(wchar_t wch, wchar_t* pDst) {
   wch = wch & 0xFFFF;
-  FX_WCHAR wFind = g_UnicodeData_Normalization[wch];
+  wchar_t wFind = g_UnicodeData_Normalization[wch];
   if (!wFind) {
     if (pDst)
       *pDst = wch;
@@ -84,12 +84,12 @@
   const uint16_t* pMap = g_UnicodeData_Normalization_Maps[wFind];
   if (pMap == g_UnicodeData_Normalization_Map4) {
     pMap = g_UnicodeData_Normalization_Map4 + wch;
-    wFind = (FX_WCHAR)(*pMap++);
+    wFind = (wchar_t)(*pMap++);
   } else {
     pMap += wch;
   }
   if (pDst) {
-    FX_WCHAR n = wFind;
+    wchar_t n = wFind;
     while (n--)
       *pDst++ = *pMap++;
   }
@@ -568,7 +568,7 @@
   return TextOrientation::Unknown;
 }
 
-void CPDF_TextPage::AppendGeneratedCharacter(FX_WCHAR unicode,
+void CPDF_TextPage::AppendGeneratedCharacter(wchar_t unicode,
                                              const CFX_Matrix& formMatrix) {
   PAGECHAR_INFO generateChar;
   if (!GenerateCharInfo(unicode, generateChar))
@@ -639,7 +639,7 @@
   return pFont->GetCharBBox(charCode).Width();
 }
 
-void CPDF_TextPage::AddCharInfoByLRDirection(FX_WCHAR wChar,
+void CPDF_TextPage::AddCharInfoByLRDirection(wchar_t wChar,
                                              PAGECHAR_INFO info) {
   if (IsControlChar(info)) {
     info.m_Index = -1;
@@ -649,10 +649,10 @@
 
   info.m_Index = m_TextBuf.GetLength();
   if (wChar >= 0xFB00 && wChar <= 0xFB06) {
-    FX_WCHAR* pDst = nullptr;
+    wchar_t* pDst = nullptr;
     FX_STRSIZE nCount = Unicode_GetNormalization(wChar, pDst);
     if (nCount >= 1) {
-      pDst = FX_Alloc(FX_WCHAR, nCount);
+      pDst = FX_Alloc(wchar_t, nCount);
       Unicode_GetNormalization(wChar, pDst);
       for (int nIndex = 0; nIndex < nCount; nIndex++) {
         PAGECHAR_INFO info2 = info;
@@ -669,7 +669,7 @@
   m_CharList.push_back(info);
 }
 
-void CPDF_TextPage::AddCharInfoByRLDirection(FX_WCHAR wChar,
+void CPDF_TextPage::AddCharInfoByRLDirection(wchar_t wChar,
                                              PAGECHAR_INFO info) {
   if (IsControlChar(info)) {
     info.m_Index = -1;
@@ -679,10 +679,10 @@
 
   info.m_Index = m_TextBuf.GetLength();
   wChar = FX_GetMirrorChar(wChar, true, false);
-  FX_WCHAR* pDst = nullptr;
+  wchar_t* pDst = nullptr;
   FX_STRSIZE nCount = Unicode_GetNormalization(wChar, pDst);
   if (nCount >= 1) {
-    pDst = FX_Alloc(FX_WCHAR, nCount);
+    pDst = FX_Alloc(wchar_t, nCount);
     Unicode_GetNormalization(wChar, pDst);
     for (int nIndex = 0; nIndex < nCount; nIndex++) {
       PAGECHAR_INFO info2 = info;
@@ -858,7 +858,7 @@
 
   bExist = false;
   for (FX_STRSIZE i = 0; i < nItems; i++) {
-    FX_WCHAR wChar = actText.GetAt(i);
+    wchar_t wChar = actText.GetAt(i);
     if ((wChar > 0x80 && wChar < 0xFFFD) || (wChar <= 0x80 && isprint(wChar))) {
       bExist = true;
       break;
@@ -895,7 +895,7 @@
   matrix.Concat(Obj.m_formMatrix);
 
   for (FX_STRSIZE k = 0; k < nItems; k++) {
-    FX_WCHAR wChar = actText.GetAt(k);
+    wchar_t wChar = actText.GetAt(k);
     if (wChar <= 0x80 && !isprint(wChar))
       wChar = 0x20;
     if (wChar >= 0xFFFD)
@@ -934,7 +934,7 @@
     std::swap(m_TempCharList[i], m_TempCharList[j]);
     std::swap(m_TempCharList[i].m_Index, m_TempCharList[j].m_Index);
   }
-  FX_WCHAR* pTempBuffer = m_TempTextBuf.GetBuffer();
+  wchar_t* pTempBuffer = m_TempTextBuf.GetBuffer();
   i = iBufStartAppend;
   j = m_TempTextBuf.GetLength() - 1;
   for (; i < j; i++, j--)
@@ -951,9 +951,9 @@
     if (item.m_CharCode == static_cast<uint32_t>(-1))
       continue;
     CFX_WideString wstrItem = pFont->UnicodeFromCharCode(item.m_CharCode);
-    FX_WCHAR wChar = wstrItem.GetAt(0);
+    wchar_t wChar = wstrItem.GetAt(0);
     if ((wstrItem.IsEmpty() || wChar == 0) && item.m_CharCode)
-      wChar = (FX_WCHAR)item.m_CharCode;
+      wChar = (wchar_t)item.m_CharCode;
     if (wChar)
       str += wChar;
   }
@@ -1010,8 +1010,8 @@
           CFX_WideString wstrItem =
               pTextObj->GetFont()->UnicodeFromCharCode(item.m_CharCode);
           if (wstrItem.IsEmpty())
-            wstrItem += (FX_WCHAR)item.m_CharCode;
-          FX_WCHAR curChar = wstrItem.GetAt(0);
+            wstrItem += (wchar_t)item.m_CharCode;
+          wchar_t curChar = wstrItem.GetAt(0);
           if (curChar == 0x2D || curChar == 0xAD)
             return;
         }
@@ -1112,7 +1112,7 @@
     CFX_WideString wstrItem = pFont->UnicodeFromCharCode(item.m_CharCode);
     bool bNoUnicode = false;
     if (wstrItem.IsEmpty() && item.m_CharCode) {
-      wstrItem += static_cast<FX_WCHAR>(item.m_CharCode);
+      wstrItem += static_cast<wchar_t>(item.m_CharCode);
       bNoUnicode = true;
     }
     charinfo.m_Index = -1;
@@ -1223,18 +1223,18 @@
   return m_TextlineDir;
 }
 
-bool CPDF_TextPage::IsHyphen(FX_WCHAR curChar) {
+bool CPDF_TextPage::IsHyphen(wchar_t curChar) {
   CFX_WideString strCurText = m_TempTextBuf.MakeString();
   if (strCurText.IsEmpty())
     strCurText = m_TextBuf.AsStringC();
   FX_STRSIZE nCount = strCurText.GetLength();
   int nIndex = nCount - 1;
-  FX_WCHAR wcTmp = strCurText.GetAt(nIndex);
+  wchar_t wcTmp = strCurText.GetAt(nIndex);
   while (wcTmp == 0x20 && nIndex <= nCount - 1 && nIndex >= 0)
     wcTmp = strCurText.GetAt(--nIndex);
   if (0x2D == wcTmp || 0xAD == wcTmp) {
     if (--nIndex > 0) {
-      FX_WCHAR preChar = strCurText.GetAt((nIndex));
+      wchar_t preChar = strCurText.GetAt((nIndex));
       if (((preChar >= L'A' && preChar <= L'Z') ||
            (preChar >= L'a' && preChar <= L'z')) &&
           ((curChar >= L'A' && curChar <= L'Z') ||
@@ -1275,8 +1275,8 @@
   CFX_WideString wstrItem =
       pObj->GetFont()->UnicodeFromCharCode(item.m_CharCode);
   if (wstrItem.IsEmpty())
-    wstrItem += static_cast<FX_WCHAR>(item.m_CharCode);
-  FX_WCHAR curChar = wstrItem.GetAt(0);
+    wstrItem += static_cast<wchar_t>(item.m_CharCode);
+  wchar_t curChar = wstrItem.GetAt(0);
   if (WritingMode == TextOrientation::Horizontal) {
     if (this_rect.Height() > 4.5 && prev_rect.Height() > 4.5) {
       FX_FLOAT top =
@@ -1368,7 +1368,7 @@
   }
   CFX_WideString PrevStr =
       m_pPreTextObj->GetFont()->UnicodeFromCharCode(PrevItem.m_CharCode);
-  FX_WCHAR preChar = PrevStr.GetAt(PrevStr.GetLength() - 1);
+  wchar_t preChar = PrevStr.GetAt(PrevStr.GetLength() - 1);
   CFX_Matrix matrix = pObj->GetTextMatrix();
   matrix.Concat(formMatrix);
 
@@ -1482,7 +1482,7 @@
   return false;
 }
 
-bool CPDF_TextPage::GenerateCharInfo(FX_WCHAR unicode, PAGECHAR_INFO& info) {
+bool CPDF_TextPage::GenerateCharInfo(wchar_t unicode, PAGECHAR_INFO& info) {
   const PAGECHAR_INFO* preChar;
   if (!m_TempCharList.empty())
     preChar = &m_TempCharList.back();
diff --git a/core/fpdftext/cpdf_textpage.h b/core/fpdftext/cpdf_textpage.h
index 91942d1..e8de620 100644
--- a/core/fpdftext/cpdf_textpage.h
+++ b/core/fpdftext/cpdf_textpage.h
@@ -49,8 +49,8 @@
   FPDF_CHAR_INFO();
   ~FPDF_CHAR_INFO();
 
-  FX_WCHAR m_Unicode;
-  FX_WCHAR m_Charcode;
+  wchar_t m_Unicode;
+  wchar_t m_Charcode;
   int32_t m_Flag;
   FX_FLOAT m_FontSize;
   CFX_PointF m_Origin;
@@ -72,7 +72,7 @@
 
   int m_Index;
   int m_CharCode;
-  FX_WCHAR m_Unicode;
+  wchar_t m_Unicode;
   int32_t m_Flag;
   CFX_PointF m_Origin;
   CFX_FloatRect m_CharBox;
@@ -125,7 +125,7 @@
     Hyphen,
   };
 
-  bool IsHyphen(FX_WCHAR curChar);
+  bool IsHyphen(wchar_t curChar);
   bool IsControlChar(const PAGECHAR_INFO& charInfo);
   void ProcessObject();
   void ProcessFormObject(CPDF_FormObject* pFormObj,
@@ -137,7 +137,7 @@
                          CPDF_PageObjectList::const_iterator ObjPos);
   GenerateCharacter ProcessInsertObject(const CPDF_TextObject* pObj,
                                         const CFX_Matrix& formMatrix);
-  bool GenerateCharInfo(FX_WCHAR unicode, PAGECHAR_INFO& info);
+  bool GenerateCharInfo(wchar_t unicode, PAGECHAR_INFO& info);
   bool IsSameAsPreTextObject(CPDF_TextObject* pTextObj,
                              const CPDF_PageObjectList* pObjList,
                              CPDF_PageObjectList::const_iterator ObjPos);
@@ -148,12 +148,12 @@
   void ProcessMarkedContent(PDFTEXT_Obj pObj);
   void CheckMarkedContentObject(int32_t& start, int32_t& nCount) const;
   void FindPreviousTextObject();
-  void AddCharInfoByLRDirection(FX_WCHAR wChar, PAGECHAR_INFO info);
-  void AddCharInfoByRLDirection(FX_WCHAR wChar, PAGECHAR_INFO info);
+  void AddCharInfoByLRDirection(wchar_t wChar, PAGECHAR_INFO info);
+  void AddCharInfoByRLDirection(wchar_t wChar, PAGECHAR_INFO info);
   TextOrientation GetTextObjectWritingMode(
       const CPDF_TextObject* pTextObj) const;
   TextOrientation FindTextlineFlowOrientation() const;
-  void AppendGeneratedCharacter(FX_WCHAR unicode, const CFX_Matrix& formMatrix);
+  void AppendGeneratedCharacter(wchar_t unicode, const CFX_Matrix& formMatrix);
 
   void SwapTempTextBuf(int32_t iCharListStartAppend, int32_t iBufStartAppend);
   bool IsRightToLeft(const CPDF_TextObject* pTextObj,
diff --git a/core/fpdftext/cpdf_textpagefind.cpp b/core/fpdftext/cpdf_textpagefind.cpp
index a79b5e7..e268975 100644
--- a/core/fpdftext/cpdf_textpagefind.cpp
+++ b/core/fpdftext/cpdf_textpagefind.cpp
@@ -17,7 +17,7 @@
 
 namespace {
 
-bool IsIgnoreSpaceCharacter(FX_WCHAR curChar) {
+bool IsIgnoreSpaceCharacter(wchar_t curChar) {
   if (curChar < 255 || (curChar >= 0x0600 && curChar <= 0x06FF) ||
       (curChar >= 0xFE70 && curChar <= 0xFEFF) ||
       (curChar >= 0xFB50 && curChar <= 0xFDFF) ||
@@ -150,7 +150,7 @@
     CFX_WideString csWord = m_csFindWhatArray[iWord];
     if (csWord.IsEmpty()) {
       if (iWord == nCount - 1) {
-        FX_WCHAR strInsert = m_strText.GetAt(nStartPos);
+        wchar_t strInsert = m_strText.GetAt(nStartPos);
         if (strInsert == TEXT_LINEFEED_CHAR || strInsert == TEXT_SPACE_CHAR ||
             strInsert == TEXT_RETURN_CHAR || strInsert == 160) {
           nResultPos = nStartPos + 1;
@@ -183,7 +183,7 @@
         bMatch = false;
       }
       for (int d = PreResEndPos; d < nResultPos; d++) {
-        FX_WCHAR strInsert = m_strText.GetAt(d);
+        wchar_t strInsert = m_strText.GetAt(d);
         if (strInsert != TEXT_LINEFEED_CHAR && strInsert != TEXT_SPACE_CHAR &&
             strInsert != TEXT_RETURN_CHAR && strInsert != 160) {
           bMatch = false;
@@ -192,7 +192,7 @@
       }
     } else if (bSpaceStart) {
       if (nResultPos > 0) {
-        FX_WCHAR strInsert = m_strText.GetAt(nResultPos - 1);
+        wchar_t strInsert = m_strText.GetAt(nResultPos - 1);
         if (strInsert != TEXT_LINEFEED_CHAR && strInsert != TEXT_SPACE_CHAR &&
             strInsert != TEXT_RETURN_CHAR && strInsert != 160) {
           bMatch = false;
@@ -293,7 +293,7 @@
     int pos = 0;
     while (pos < csWord.GetLength()) {
       CFX_WideString curStr = csWord.Mid(pos, 1);
-      FX_WCHAR curChar = csWord.GetAt(pos);
+      wchar_t curChar = csWord.GetAt(pos);
       if (IsIgnoreSpaceCharacter(curChar)) {
         if (pos > 0 && curChar == 0x2019) {
           pos++;
@@ -321,8 +321,8 @@
 bool CPDF_TextPageFind::IsMatchWholeWord(const CFX_WideString& csPageText,
                                          int startPos,
                                          int endPos) {
-  FX_WCHAR char_left = 0;
-  FX_WCHAR char_right = 0;
+  wchar_t char_left = 0;
+  wchar_t char_right = 0;
   int char_count = endPos - startPos + 1;
   if (char_count < 1)
     return false;
@@ -362,9 +362,9 @@
 }
 
 bool CPDF_TextPageFind::ExtractSubString(CFX_WideString& rString,
-                                         const FX_WCHAR* lpszFullString,
+                                         const wchar_t* lpszFullString,
                                          int iSubString,
-                                         FX_WCHAR chSep) {
+                                         wchar_t chSep) {
   if (!lpszFullString)
     return false;
   while (iSubString--) {
@@ -377,12 +377,11 @@
     while (*lpszFullString == chSep)
       lpszFullString++;
   }
-  const FX_WCHAR* lpchEnd = std::wcschr(lpszFullString, chSep);
+  const wchar_t* lpchEnd = std::wcschr(lpszFullString, chSep);
   int nLen = lpchEnd ? (int)(lpchEnd - lpszFullString)
                      : (int)FXSYS_wcslen(lpszFullString);
   ASSERT(nLen >= 0);
-  FXSYS_memcpy(rString.GetBuffer(nLen), lpszFullString,
-               nLen * sizeof(FX_WCHAR));
+  FXSYS_memcpy(rString.GetBuffer(nLen), lpszFullString, nLen * sizeof(wchar_t));
   rString.ReleaseBuffer();
   return true;
 }
diff --git a/core/fpdftext/cpdf_textpagefind.h b/core/fpdftext/cpdf_textpagefind.h
index c60cb57..dd50901 100644
--- a/core/fpdftext/cpdf_textpagefind.h
+++ b/core/fpdftext/cpdf_textpagefind.h
@@ -32,9 +32,9 @@
                         int startPos,
                         int endPos);
   bool ExtractSubString(CFX_WideString& rString,
-                        const FX_WCHAR* lpszFullString,
+                        const wchar_t* lpszFullString,
                         int iSubString,
-                        FX_WCHAR chSep);
+                        wchar_t chSep);
   CFX_WideString MakeReverse(const CFX_WideString& str);
   int GetCharIndex(int index) const;
 
diff --git a/core/fxcodec/codec/ccodec_bmpmodule.cpp b/core/fxcodec/codec/ccodec_bmpmodule.cpp
index 9d64199..f237b14 100644
--- a/core/fxcodec/codec/ccodec_bmpmodule.cpp
+++ b/core/fxcodec/codec/ccodec_bmpmodule.cpp
@@ -27,7 +27,7 @@
 }
 };
 static void bmp_error_data(bmp_decompress_struct_p bmp_ptr,
-                           const FX_CHAR* err_msg) {
+                           const char* err_msg) {
   FXSYS_strncpy((char*)bmp_ptr->err_ptr, err_msg, BMP_MAX_ERROR_SIZE - 1);
   longjmp(bmp_ptr->jmpbuf, 1);
 }
diff --git a/core/fxcodec/codec/ccodec_bmpmodule.h b/core/fxcodec/codec/ccodec_bmpmodule.h
index 11d5931..d07d985 100644
--- a/core/fxcodec/codec/ccodec_bmpmodule.h
+++ b/core/fxcodec/codec/ccodec_bmpmodule.h
@@ -33,7 +33,7 @@
   int32_t LoadImage(FXBMP_Context* pContext) override;
 
  protected:
-  FX_CHAR m_szLastError[256];
+  char m_szLastError[256];
 };
 
 #endif  // CORE_FXCODEC_CODEC_CCODEC_BMPMODULE_H_
diff --git a/core/fxcodec/codec/ccodec_gifmodule.cpp b/core/fxcodec/codec/ccodec_gifmodule.cpp
index a85bc5e..91c64a0 100644
--- a/core/fxcodec/codec/ccodec_gifmodule.cpp
+++ b/core/fxcodec/codec/ccodec_gifmodule.cpp
@@ -29,7 +29,7 @@
 };
 
 static void gif_error_data(gif_decompress_struct_p gif_ptr,
-                           const FX_CHAR* err_msg) {
+                           const char* err_msg) {
   FXSYS_strncpy((char*)gif_ptr->err_ptr, err_msg, GIF_MAX_ERROR_SIZE - 1);
   longjmp(gif_ptr->jmpbuf, 1);
 }
diff --git a/core/fxcodec/codec/ccodec_gifmodule.h b/core/fxcodec/codec/ccodec_gifmodule.h
index 7721d7a..6830064 100644
--- a/core/fxcodec/codec/ccodec_gifmodule.h
+++ b/core/fxcodec/codec/ccodec_gifmodule.h
@@ -39,7 +39,7 @@
                     CFX_DIBAttribute* pAttribute) override;
 
  protected:
-  FX_CHAR m_szLastError[256];
+  char m_szLastError[256];
 };
 
 #endif  // CORE_FXCODEC_CODEC_CCODEC_GIFMODULE_H_
diff --git a/core/fxcodec/codec/ccodec_pngmodule.cpp b/core/fxcodec/codec/ccodec_pngmodule.cpp
index 028513b..4bd4cfc 100644
--- a/core/fxcodec/codec/ccodec_pngmodule.cpp
+++ b/core/fxcodec/codec/ccodec_pngmodule.cpp
@@ -57,7 +57,7 @@
     png_get_tIME(png_ptr, info_ptr, &t);
     if (t) {
       FXSYS_memset(pAttribute->m_strTime, 0, sizeof(pAttribute->m_strTime));
-      FXSYS_snprintf((FX_CHAR*)pAttribute->m_strTime,
+      FXSYS_snprintf((char*)pAttribute->m_strTime,
                      sizeof(pAttribute->m_strTime), "%4u:%2u:%2u %2u:%2u:%2u",
                      t->year, t->month, t->day, t->hour, t->minute, t->second);
       pAttribute->m_strTime[sizeof(pAttribute->m_strTime) - 1] = 0;
@@ -67,7 +67,7 @@
 #if defined(PNG_TEXT_SUPPORTED)
     int i;
     FX_STRSIZE len;
-    const FX_CHAR* buf;
+    const char* buf;
     int num_text;
     png_textp text = nullptr;
     png_get_text(png_ptr, info_ptr, &text, &num_text);
diff --git a/core/fxcodec/codec/ccodec_pngmodule.h b/core/fxcodec/codec/ccodec_pngmodule.h
index 1f3a3d9..0ca33f0 100644
--- a/core/fxcodec/codec/ccodec_pngmodule.h
+++ b/core/fxcodec/codec/ccodec_pngmodule.h
@@ -25,7 +25,7 @@
              CFX_DIBAttribute* pAttribute) override;
 
  protected:
-  FX_CHAR m_szLastError[PNG_ERROR_SIZE];
+  char m_szLastError[PNG_ERROR_SIZE];
 };
 
 #endif  // CORE_FXCODEC_CODEC_CCODEC_PNGMODULE_H_
diff --git a/core/fxcodec/codec/ccodec_tiffmodule.cpp b/core/fxcodec/codec/ccodec_tiffmodule.cpp
index 7367728..3d7db88 100644
--- a/core/fxcodec/codec/ccodec_tiffmodule.cpp
+++ b/core/fxcodec/codec/ccodec_tiffmodule.cpp
@@ -193,7 +193,7 @@
 void Tiff_Exif_GetStringInfo(TIFF* tif_ctx,
                              ttag_t tag,
                              CFX_DIBAttribute* pAttr) {
-  FX_CHAR* buf = nullptr;
+  char* buf = nullptr;
   TIFFGetField(tif_ctx, tag, &buf);
   if (!buf)
     return;
diff --git a/core/fxcodec/lbmp/fx_bmp.cpp b/core/fxcodec/lbmp/fx_bmp.cpp
index 6d4fb51..c31886d 100644
--- a/core/fxcodec/lbmp/fx_bmp.cpp
+++ b/core/fxcodec/lbmp/fx_bmp.cpp
@@ -34,7 +34,7 @@
   p[0] = (uint8_t)v;
   p[1] = (uint8_t)(v >> 8);
 }
-void bmp_error(bmp_decompress_struct_p bmp_ptr, const FX_CHAR* err_msg) {
+void bmp_error(bmp_decompress_struct_p bmp_ptr, const char* err_msg) {
   if (bmp_ptr && bmp_ptr->bmp_error_fn) {
     bmp_ptr->bmp_error_fn(bmp_ptr, err_msg);
   }
diff --git a/core/fxcodec/lbmp/fx_bmp.h b/core/fxcodec/lbmp/fx_bmp.h
index b0233d1..5d1f799 100644
--- a/core/fxcodec/lbmp/fx_bmp.h
+++ b/core/fxcodec/lbmp/fx_bmp.h
@@ -70,8 +70,8 @@
 typedef bmp_decompress_struct_p* bmp_decompress_struct_pp;
 struct tag_bmp_decompress_struct {
   jmp_buf jmpbuf;
-  FX_CHAR* err_ptr;
-  void (*bmp_error_fn)(bmp_decompress_struct_p gif_ptr, const FX_CHAR* err_msg);
+  char* err_ptr;
+  void (*bmp_error_fn)(bmp_decompress_struct_p gif_ptr, const char* err_msg);
 
   void* context_ptr;
 
@@ -111,7 +111,7 @@
   uint32_t skip_size;
   int32_t decode_status;
 };
-void bmp_error(bmp_decompress_struct_p bmp_ptr, const FX_CHAR* err_msg);
+void bmp_error(bmp_decompress_struct_p bmp_ptr, const char* err_msg);
 bmp_decompress_struct_p bmp_create_decompress();
 void bmp_destroy_decompress(bmp_decompress_struct_pp bmp_ptr_ptr);
 int32_t bmp_read_header(bmp_decompress_struct_p bmp_ptr);
diff --git a/core/fxcodec/lgif/fx_gif.cpp b/core/fxcodec/lgif/fx_gif.cpp
index d62dacb..c4661b0 100644
--- a/core/fxcodec/lgif/fx_gif.cpp
+++ b/core/fxcodec/lgif/fx_gif.cpp
@@ -18,7 +18,7 @@
   return avail_in;
 }
 
-CGifLZWDecoder::CGifLZWDecoder(FX_CHAR* error_ptr)
+CGifLZWDecoder::CGifLZWDecoder(char* error_ptr)
     : code_size(0),
       code_size_cur(0),
       code_clear(0),
@@ -506,12 +506,12 @@
   FX_Free(gif_ptr->pte_ptr);
   FX_Free(gif_ptr);
 }
-void gif_error(gif_decompress_struct_p gif_ptr, const FX_CHAR* err_msg) {
+void gif_error(gif_decompress_struct_p gif_ptr, const char* err_msg) {
   if (gif_ptr && gif_ptr->gif_error_fn) {
     gif_ptr->gif_error_fn(gif_ptr, err_msg);
   }
 }
-void gif_warn(gif_decompress_struct_p gif_ptr, const FX_CHAR* err_msg) {}
+void gif_warn(gif_decompress_struct_p gif_ptr, const char* err_msg) {}
 int32_t gif_read_header(gif_decompress_struct_p gif_ptr) {
   if (!gif_ptr)
     return 0;
@@ -680,7 +680,7 @@
           return 2;
         }
         *(gif_ptr->cmt_data_ptr) +=
-            CFX_ByteString((const FX_CHAR*)data_ptr, data_size);
+            CFX_ByteString((const char*)data_ptr, data_size);
       }
     } break;
     case GIF_D_STATUS_EXT_PTE: {
@@ -731,7 +731,7 @@
           return 2;
         }
         *(gif_pt_ptr->string_ptr) +=
-            CFX_ByteString((const FX_CHAR*)data_ptr, data_size);
+            CFX_ByteString((const char*)data_ptr, data_size);
       }
       gif_ptr->pt_ptr_arr_ptr->push_back(gif_pt_ptr);
     } break;
diff --git a/core/fxcodec/lgif/fx_gif.h b/core/fxcodec/lgif/fx_gif.h
index a8b780b..5027c44 100644
--- a/core/fxcodec/lgif/fx_gif.h
+++ b/core/fxcodec/lgif/fx_gif.h
@@ -122,7 +122,7 @@
     uint8_t suffix;
   };
 
-  explicit CGifLZWDecoder(FX_CHAR* error_ptr);
+  explicit CGifLZWDecoder(char* error_ptr);
   ~CGifLZWDecoder();
 
   void InitTable(uint8_t code_len);
@@ -152,7 +152,7 @@
   uint8_t bits_left;
   uint32_t code_store;
 
-  FX_CHAR* err_msg_ptr;
+  char* err_msg_ptr;
 };
 
 class CGifLZWEncoder {
@@ -208,8 +208,8 @@
 static const int32_t s_gif_interlace_step[4] = {8, 8, 4, 2};
 struct tag_gif_decompress_struct {
   jmp_buf jmpbuf;
-  FX_CHAR* err_ptr;
-  void (*gif_error_fn)(gif_decompress_struct_p gif_ptr, const FX_CHAR* err_msg);
+  char* err_ptr;
+  void (*gif_error_fn)(gif_decompress_struct_p gif_ptr, const char* err_msg);
   void* context_ptr;
   int width;
   int height;
@@ -280,8 +280,8 @@
   uint32_t pte_data_len;
 };
 
-void gif_error(gif_decompress_struct_p gif_ptr, const FX_CHAR* err_msg);
-void gif_warn(gif_decompress_struct_p gif_ptr, const FX_CHAR* err_msg);
+void gif_error(gif_decompress_struct_p gif_ptr, const char* err_msg);
+void gif_warn(gif_decompress_struct_p gif_ptr, const char* err_msg);
 gif_decompress_struct_p gif_create_decompress();
 void gif_destroy_decompress(gif_decompress_struct_pp gif_ptr_ptr);
 gif_compress_struct_p gif_create_compress();
diff --git a/core/fxcrt/cfx_string_c_template.h b/core/fxcrt/cfx_string_c_template.h
index 3bfcc91..3e3972c 100644
--- a/core/fxcrt/cfx_string_c_template.h
+++ b/core/fxcrt/cfx_string_c_template.h
@@ -164,7 +164,7 @@
   return rhs != lhs;
 }
 
-extern template class CFX_StringCTemplate<FX_CHAR>;
-extern template class CFX_StringCTemplate<FX_WCHAR>;
+extern template class CFX_StringCTemplate<char>;
+extern template class CFX_StringCTemplate<wchar_t>;
 
 #endif  // CORE_FXCRT_CFX_STRING_C_TEMPLATE_H_
diff --git a/core/fxcrt/cfx_string_data_template.h b/core/fxcrt/cfx_string_data_template.h
index c3e090f..2e87a81 100644
--- a/core/fxcrt/cfx_string_data_template.h
+++ b/core/fxcrt/cfx_string_data_template.h
@@ -110,7 +110,7 @@
   ~CFX_StringDataTemplate() = delete;
 };
 
-extern template class CFX_StringDataTemplate<FX_CHAR>;
-extern template class CFX_StringDataTemplate<FX_WCHAR>;
+extern template class CFX_StringDataTemplate<char>;
+extern template class CFX_StringDataTemplate<wchar_t>;
 
 #endif  // CORE_FXCRT_CFX_STRING_DATA_TEMPLATE_H_
diff --git a/core/fxcrt/fx_arabic.cpp b/core/fxcrt/fx_arabic.cpp
index 11743e4..103271c 100644
--- a/core/fxcrt/fx_arabic.cpp
+++ b/core/fxcrt/fx_arabic.cpp
@@ -236,7 +236,7 @@
 };
 
 const FX_ARBFORMTABLE* ParseChar(const CFX_Char* pTC,
-                                 FX_WCHAR& wChar,
+                                 wchar_t& wChar,
                                  FX_CHARTYPE& eType) {
   if (!pTC) {
     eType = FX_CHARTYPE_Unknown;
@@ -244,7 +244,7 @@
     return nullptr;
   }
   eType = pTC->GetCharType();
-  wChar = (FX_WCHAR)pTC->m_wCharCode;
+  wChar = (wchar_t)pTC->m_wCharCode;
   const FX_ARBFORMTABLE* pFT = FX_GetArabicFormTable(wChar);
   if (!pFT || eType >= FX_CHARTYPE_ArabicNormal)
     eType = FX_CHARTYPE_Unknown;
@@ -254,13 +254,13 @@
 
 }  // namespace
 
-const FX_ARBFORMTABLE* FX_GetArabicFormTable(FX_WCHAR unicode) {
+const FX_ARBFORMTABLE* FX_GetArabicFormTable(wchar_t unicode) {
   if (unicode < 0x622 || unicode > 0x6d5) {
     return nullptr;
   }
   return g_FX_ArabicFormTables + unicode - 0x622;
 }
-FX_WCHAR FX_GetArabicFromAlefTable(FX_WCHAR alef) {
+wchar_t FX_GetArabicFromAlefTable(wchar_t alef) {
   static const int32_t s_iAlefCount =
       sizeof(gs_FX_AlefTable) / sizeof(FX_ARAALEF);
   for (int32_t iStart = 0; iStart < s_iAlefCount; iStart++) {
@@ -271,7 +271,7 @@
   }
   return alef;
 }
-FX_WCHAR FX_GetArabicFromShaddaTable(FX_WCHAR shadda) {
+wchar_t FX_GetArabicFromShaddaTable(wchar_t shadda) {
   static const int32_t s_iShaddaCount =
       sizeof(gs_FX_ShaddaTable) / sizeof(FX_ARASHADDA);
   for (int32_t iStart = 0; iStart < s_iShaddaCount; iStart++) {
@@ -286,30 +286,30 @@
 namespace pdfium {
 namespace arabic {
 
-FX_WCHAR GetFormChar(FX_WCHAR wch, FX_WCHAR prev, FX_WCHAR next) {
+wchar_t GetFormChar(wchar_t wch, wchar_t prev, wchar_t next) {
   CFX_Char c(wch, kTextLayoutCodeProperties[(uint16_t)wch]);
   CFX_Char p(prev, kTextLayoutCodeProperties[(uint16_t)prev]);
   CFX_Char n(next, kTextLayoutCodeProperties[(uint16_t)next]);
   return GetFormChar(&c, &p, &n);
 }
 
-FX_WCHAR GetFormChar(const CFX_Char* cur,
-                     const CFX_Char* prev,
-                     const CFX_Char* next) {
+wchar_t GetFormChar(const CFX_Char* cur,
+                    const CFX_Char* prev,
+                    const CFX_Char* next) {
   FX_CHARTYPE eCur;
-  FX_WCHAR wCur;
+  wchar_t wCur;
   const FX_ARBFORMTABLE* ft = ParseChar(cur, wCur, eCur);
   if (eCur < FX_CHARTYPE_ArabicAlef || eCur >= FX_CHARTYPE_ArabicNormal) {
     return wCur;
   }
   FX_CHARTYPE ePrev;
-  FX_WCHAR wPrev;
+  wchar_t wPrev;
   ParseChar(prev, wPrev, ePrev);
   if (wPrev == 0x0644 && eCur == FX_CHARTYPE_ArabicAlef) {
     return 0xFEFF;
   }
   FX_CHARTYPE eNext;
-  FX_WCHAR wNext;
+  wchar_t wNext;
   ParseChar(next, wNext, eNext);
   bool bAlef = (eNext == FX_CHARTYPE_ArabicAlef && wCur == 0x644);
   if (ePrev < FX_CHARTYPE_ArabicAlef) {
@@ -336,10 +336,10 @@
                           int32_t iCount) {
   ASSERT(iStart > -1 && iStart < wsText.GetLength());
   ASSERT(iCount >= 0 && iStart + iCount <= wsText.GetLength());
-  FX_WCHAR wch;
-  FX_WCHAR* pStart = const_cast<FX_WCHAR*>(wsText.c_str());
+  wchar_t wch;
+  wchar_t* pStart = const_cast<wchar_t*>(wsText.c_str());
   pStart += iStart;
-  FX_WCHAR* pEnd = pStart + iCount - 1;
+  wchar_t* pEnd = pStart + iCount - 1;
   while (pStart < pEnd) {
     wch = *pStart;
     *pStart++ = *pEnd;
diff --git a/core/fxcrt/fx_arabic.h b/core/fxcrt/fx_arabic.h
index 1856f10..8adb419 100644
--- a/core/fxcrt/fx_arabic.h
+++ b/core/fxcrt/fx_arabic.h
@@ -20,10 +20,10 @@
 namespace pdfium {
 namespace arabic {
 
-FX_WCHAR GetFormChar(FX_WCHAR wch, FX_WCHAR prev, FX_WCHAR next);
-FX_WCHAR GetFormChar(const CFX_Char* cur,
-                     const CFX_Char* prev,
-                     const CFX_Char* next);
+wchar_t GetFormChar(wchar_t wch, wchar_t prev, wchar_t next);
+wchar_t GetFormChar(const CFX_Char* cur,
+                    const CFX_Char* prev,
+                    const CFX_Char* next);
 
 }  // namespace arabic
 }  // namespace pdfium
@@ -160,9 +160,9 @@
   uint16_t wIsolated;
 };
 
-const FX_ARBFORMTABLE* FX_GetArabicFormTable(FX_WCHAR unicode);
-FX_WCHAR FX_GetArabicFromAlefTable(FX_WCHAR alef);
-FX_WCHAR FX_GetArabicFromShaddaTable(FX_WCHAR shadda);
+const FX_ARBFORMTABLE* FX_GetArabicFormTable(wchar_t unicode);
+wchar_t FX_GetArabicFromAlefTable(wchar_t alef);
+wchar_t FX_GetArabicFromShaddaTable(wchar_t shadda);
 
 void FX_BidiLine(std::vector<CFX_Char>& chars,
                  int32_t iCount,
diff --git a/core/fxcrt/fx_basic.h b/core/fxcrt/fx_basic.h
index 18413b2..007c362 100644
--- a/core/fxcrt/fx_basic.h
+++ b/core/fxcrt/fx_basic.h
@@ -70,7 +70,7 @@
   CFX_ByteTextBuf& operator<<(int i);
   CFX_ByteTextBuf& operator<<(uint32_t i);
   CFX_ByteTextBuf& operator<<(double f);
-  CFX_ByteTextBuf& operator<<(const FX_CHAR* pStr) {
+  CFX_ByteTextBuf& operator<<(const char* pStr) {
     return *this << CFX_ByteStringC(pStr);
   }
   CFX_ByteTextBuf& operator<<(const CFX_ByteString& str) {
@@ -82,29 +82,29 @@
 
 class CFX_WideTextBuf : public CFX_BinaryBuf {
  public:
-  void AppendChar(FX_WCHAR wch);
-  FX_STRSIZE GetLength() const { return m_DataSize / sizeof(FX_WCHAR); }
-  FX_WCHAR* GetBuffer() const {
-    return reinterpret_cast<FX_WCHAR*>(m_pBuffer.get());
+  void AppendChar(wchar_t wch);
+  FX_STRSIZE GetLength() const { return m_DataSize / sizeof(wchar_t); }
+  wchar_t* GetBuffer() const {
+    return reinterpret_cast<wchar_t*>(m_pBuffer.get());
   }
 
   CFX_WideStringC AsStringC() const {
-    return CFX_WideStringC(reinterpret_cast<const FX_WCHAR*>(m_pBuffer.get()),
-                           m_DataSize / sizeof(FX_WCHAR));
+    return CFX_WideStringC(reinterpret_cast<const wchar_t*>(m_pBuffer.get()),
+                           m_DataSize / sizeof(wchar_t));
   }
   CFX_WideString MakeString() const {
-    return CFX_WideString(reinterpret_cast<const FX_WCHAR*>(m_pBuffer.get()),
-                          m_DataSize / sizeof(FX_WCHAR));
+    return CFX_WideString(reinterpret_cast<const wchar_t*>(m_pBuffer.get()),
+                          m_DataSize / sizeof(wchar_t));
   }
 
   void Delete(int start_index, int count) {
-    CFX_BinaryBuf::Delete(start_index * sizeof(FX_WCHAR),
-                          count * sizeof(FX_WCHAR));
+    CFX_BinaryBuf::Delete(start_index * sizeof(wchar_t),
+                          count * sizeof(wchar_t));
   }
 
   CFX_WideTextBuf& operator<<(int i);
   CFX_WideTextBuf& operator<<(double f);
-  CFX_WideTextBuf& operator<<(const FX_WCHAR* lpsz);
+  CFX_WideTextBuf& operator<<(const wchar_t* lpsz);
   CFX_WideTextBuf& operator<<(const CFX_WideStringC& str);
   CFX_WideTextBuf& operator<<(const CFX_WideString& str);
   CFX_WideTextBuf& operator<<(const CFX_WideTextBuf& buf);
@@ -168,7 +168,7 @@
  public:
   CFX_UTF8Encoder() {}
 
-  void Input(FX_WCHAR unicode);
+  void Input(wchar_t unicode);
   void AppendStr(const CFX_ByteStringC& str) { m_Buffer << str; }
   CFX_ByteStringC GetResult() const { return m_Buffer.AsStringC(); }
 
diff --git a/core/fxcrt/fx_basic_bstring.cpp b/core/fxcrt/fx_basic_bstring.cpp
index 2669474..cbd8b37 100644
--- a/core/fxcrt/fx_basic_bstring.cpp
+++ b/core/fxcrt/fx_basic_bstring.cpp
@@ -13,8 +13,8 @@
 #include "core/fxcrt/fx_basic.h"
 #include "third_party/base/numerics/safe_math.h"
 
-template class CFX_StringDataTemplate<FX_CHAR>;
-template class CFX_StringCTemplate<FX_CHAR>;
+template class CFX_StringDataTemplate<char>;
+template class CFX_StringCTemplate<char>;
 template class CFX_StringPoolTemplate<CFX_ByteString>;
 template struct std::hash<CFX_ByteString>;
 
@@ -32,7 +32,7 @@
     u = -i;
   }
   int base = 10;
-  const FX_CHAR* str = "0123456789abcdef";
+  const char* str = "0123456789abcdef";
   if (flags & FXFORMAT_HEX) {
     base = 16;
     if (flags & FXFORMAT_CAPITAL) {
@@ -53,14 +53,14 @@
   return len;
 }
 
-const FX_CHAR* FX_strstr(const FX_CHAR* haystack,
-                         int haystack_len,
-                         const FX_CHAR* needle,
-                         int needle_len) {
+const char* FX_strstr(const char* haystack,
+                      int haystack_len,
+                      const char* needle,
+                      int needle_len) {
   if (needle_len > haystack_len || needle_len == 0) {
     return nullptr;
   }
-  const FX_CHAR* end_ptr = haystack + haystack_len - needle_len;
+  const char* end_ptr = haystack + haystack_len - needle_len;
   while (haystack <= end_ptr) {
     int i = 0;
     while (1) {
@@ -79,10 +79,10 @@
 
 }  // namespace
 
-static_assert(sizeof(CFX_ByteString) <= sizeof(FX_CHAR*),
+static_assert(sizeof(CFX_ByteString) <= sizeof(char*),
               "Strings must not require more space than pointers");
 
-CFX_ByteString::CFX_ByteString(const FX_CHAR* pStr, FX_STRSIZE nLen) {
+CFX_ByteString::CFX_ByteString(const char* pStr, FX_STRSIZE nLen) {
   if (nLen < 0)
     nLen = pStr ? FXSYS_strlen(pStr) : 0;
 
@@ -93,7 +93,7 @@
 CFX_ByteString::CFX_ByteString(const uint8_t* pStr, FX_STRSIZE nLen) {
   if (nLen > 0) {
     m_pData.Reset(
-        StringData::Create(reinterpret_cast<const FX_CHAR*>(pStr), nLen));
+        StringData::Create(reinterpret_cast<const char*>(pStr), nLen));
   }
 }
 
@@ -111,7 +111,7 @@
   m_pData->m_String[0] = ch;
 }
 
-CFX_ByteString::CFX_ByteString(const FX_CHAR* ptr)
+CFX_ByteString::CFX_ByteString(const char* ptr)
     : CFX_ByteString(ptr, ptr ? FXSYS_strlen(ptr) : 0) {}
 
 CFX_ByteString::CFX_ByteString(const CFX_ByteStringC& stringSrc) {
@@ -132,7 +132,7 @@
 
 CFX_ByteString::~CFX_ByteString() {}
 
-const CFX_ByteString& CFX_ByteString::operator=(const FX_CHAR* pStr) {
+const CFX_ByteString& CFX_ByteString::operator=(const char* pStr) {
   if (!pStr || !pStr[0])
     clear();
   else
@@ -159,7 +159,7 @@
   return *this;
 }
 
-const CFX_ByteString& CFX_ByteString::operator+=(const FX_CHAR* pStr) {
+const CFX_ByteString& CFX_ByteString::operator+=(const char* pStr) {
   if (pStr)
     Concat(pStr, FXSYS_strlen(pStr));
 
@@ -257,7 +257,7 @@
   return true;
 }
 
-void CFX_ByteString::AssignCopy(const FX_CHAR* pSrcData, FX_STRSIZE nSrcLen) {
+void CFX_ByteString::AssignCopy(const char* pSrcData, FX_STRSIZE nSrcLen) {
   AllocBeforeWrite(nSrcLen);
   m_pData->CopyContents(pSrcData, nSrcLen);
   m_pData->m_nDataLength = nSrcLen;
@@ -324,7 +324,7 @@
   GetBuffer(len);
 }
 
-FX_CHAR* CFX_ByteString::GetBuffer(FX_STRSIZE nMinBufLength) {
+char* CFX_ByteString::GetBuffer(FX_STRSIZE nMinBufLength) {
   if (!m_pData) {
     if (nMinBufLength == 0)
       return nullptr;
@@ -372,7 +372,7 @@
   return m_pData->m_nDataLength;
 }
 
-void CFX_ByteString::Concat(const FX_CHAR* pSrcData, FX_STRSIZE nSrcLen) {
+void CFX_ByteString::Concat(const char* pSrcData, FX_STRSIZE nSrcLen) {
   if (!pSrcData || nSrcLen <= 0)
     return;
 
@@ -438,7 +438,7 @@
   return CFX_ByteString(buf, Buffer_itoa(buf, i, flags));
 }
 
-void CFX_ByteString::FormatV(const FX_CHAR* pFormat, va_list argList) {
+void CFX_ByteString::FormatV(const char* pFormat, va_list argList) {
   va_list argListSave;
 #if defined(__ARMCC_VERSION) ||                                              \
     (!defined(_MSC_VER) && (_FX_CPU_ == _FX_X64_ || _FX_CPU_ == _FX_IA64_ || \
@@ -449,7 +449,7 @@
   argListSave = argList;
 #endif
   int nMaxLen = 0;
-  for (const FX_CHAR* pStr = pFormat; *pStr != 0; pStr++) {
+  for (const char* pStr = pFormat; *pStr != 0; pStr++) {
     if (*pStr != '%' || *(pStr = pStr + 1) == '%') {
       nMaxLen += FXSYS_strlen(pStr);
       continue;
@@ -530,7 +530,7 @@
         va_arg(argList, int);
         break;
       case 's': {
-        const FX_CHAR* pstrNextArg = va_arg(argList, const FX_CHAR*);
+        const char* pstrNextArg = va_arg(argList, const char*);
         if (pstrNextArg) {
           nItemLen = FXSYS_strlen(pstrNextArg);
           if (nItemLen < 1) {
@@ -541,7 +541,7 @@
         }
       } break;
       case 'S': {
-        FX_WCHAR* pstrNextArg = va_arg(argList, FX_WCHAR*);
+        wchar_t* pstrNextArg = va_arg(argList, wchar_t*);
         if (pstrNextArg) {
           nItemLen = FXSYS_wcslen(pstrNextArg);
           if (nItemLen < 1) {
@@ -553,7 +553,7 @@
       } break;
       case 's' | FORCE_ANSI:
       case 'S' | FORCE_ANSI: {
-        const FX_CHAR* pstrNextArg = va_arg(argList, const FX_CHAR*);
+        const char* pstrNextArg = va_arg(argList, const char*);
         if (pstrNextArg) {
           nItemLen = FXSYS_strlen(pstrNextArg);
           if (nItemLen < 1) {
@@ -565,7 +565,7 @@
       } break;
       case 's' | FORCE_UNICODE:
       case 'S' | FORCE_UNICODE: {
-        FX_WCHAR* pstrNextArg = va_arg(argList, FX_WCHAR*);
+        wchar_t* pstrNextArg = va_arg(argList, wchar_t*);
         if (pstrNextArg) {
           nItemLen = FXSYS_wcslen(pstrNextArg);
           if (nItemLen < 1) {
@@ -649,14 +649,14 @@
   va_end(argListSave);
 }
 
-void CFX_ByteString::Format(const FX_CHAR* pFormat, ...) {
+void CFX_ByteString::Format(const char* pFormat, ...) {
   va_list argList;
   va_start(argList, pFormat);
   FormatV(pFormat, argList);
   va_end(argList);
 }
 
-FX_STRSIZE CFX_ByteString::Insert(FX_STRSIZE nIndex, FX_CHAR ch) {
+FX_STRSIZE CFX_ByteString::Insert(FX_STRSIZE nIndex, char ch) {
   FX_STRSIZE nNewLength = m_pData ? m_pData->m_nDataLength : 0;
   nIndex = std::max(nIndex, 0);
   nIndex = std::min(nIndex, nNewLength);
@@ -696,19 +696,19 @@
   return dest;
 }
 
-FX_STRSIZE CFX_ByteString::Find(FX_CHAR ch, FX_STRSIZE nStart) const {
+FX_STRSIZE CFX_ByteString::Find(char ch, FX_STRSIZE nStart) const {
   if (!m_pData)
     return -1;
 
   if (nStart < 0 || nStart >= m_pData->m_nDataLength)
     return -1;
 
-  const FX_CHAR* pStr = static_cast<const FX_CHAR*>(
+  const char* pStr = static_cast<const char*>(
       memchr(m_pData->m_String + nStart, ch, m_pData->m_nDataLength - nStart));
   return pStr ? pStr - m_pData->m_String : -1;
 }
 
-FX_STRSIZE CFX_ByteString::ReverseFind(FX_CHAR ch) const {
+FX_STRSIZE CFX_ByteString::ReverseFind(char ch) const {
   if (!m_pData)
     return -1;
 
@@ -729,7 +729,7 @@
   if (nStart > nLength)
     return -1;
 
-  const FX_CHAR* pStr =
+  const char* pStr =
       FX_strstr(m_pData->m_String + nStart, m_pData->m_nDataLength - nStart,
                 pSub.c_str(), pSub.GetLength());
   return pStr ? (int)(pStr - m_pData->m_String) : -1;
@@ -751,12 +751,12 @@
   FXSYS_strupr(m_pData->m_String);
 }
 
-FX_STRSIZE CFX_ByteString::Remove(FX_CHAR chRemove) {
+FX_STRSIZE CFX_ByteString::Remove(char chRemove) {
   if (!m_pData || m_pData->m_nDataLength < 1)
     return 0;
 
-  FX_CHAR* pstrSource = m_pData->m_String;
-  FX_CHAR* pstrEnd = m_pData->m_String + m_pData->m_nDataLength;
+  char* pstrSource = m_pData->m_String;
+  char* pstrEnd = m_pData->m_String + m_pData->m_nDataLength;
   while (pstrSource < pstrEnd) {
     if (*pstrSource == chRemove)
       break;
@@ -770,7 +770,7 @@
   pstrSource = m_pData->m_String + copied;
   pstrEnd = m_pData->m_String + m_pData->m_nDataLength;
 
-  FX_CHAR* pstrDest = pstrSource;
+  char* pstrDest = pstrSource;
   while (pstrSource < pstrEnd) {
     if (*pstrSource != chRemove) {
       *pstrDest = *pstrSource;
@@ -793,11 +793,11 @@
   FX_STRSIZE nSourceLen = pOld.GetLength();
   FX_STRSIZE nReplacementLen = pNew.GetLength();
   FX_STRSIZE nCount = 0;
-  const FX_CHAR* pStart = m_pData->m_String;
-  FX_CHAR* pEnd = m_pData->m_String + m_pData->m_nDataLength;
+  const char* pStart = m_pData->m_String;
+  char* pEnd = m_pData->m_String + m_pData->m_nDataLength;
   while (1) {
-    const FX_CHAR* pTarget = FX_strstr(pStart, (FX_STRSIZE)(pEnd - pStart),
-                                       pOld.c_str(), nSourceLen);
+    const char* pTarget = FX_strstr(pStart, (FX_STRSIZE)(pEnd - pStart),
+                                    pOld.c_str(), nSourceLen);
     if (!pTarget)
       break;
 
@@ -817,10 +817,10 @@
 
   CFX_RetainPtr<StringData> pNewData(StringData::Create(nNewLength));
   pStart = m_pData->m_String;
-  FX_CHAR* pDest = pNewData->m_String;
+  char* pDest = pNewData->m_String;
   for (FX_STRSIZE i = 0; i < nCount; i++) {
-    const FX_CHAR* pTarget = FX_strstr(pStart, (FX_STRSIZE)(pEnd - pStart),
-                                       pOld.c_str(), nSourceLen);
+    const char* pTarget = FX_strstr(pStart, (FX_STRSIZE)(pEnd - pStart),
+                                    pOld.c_str(), nSourceLen);
     FXSYS_memcpy(pDest, pStart, pTarget - pStart);
     pDest += pTarget - pStart;
     FXSYS_memcpy(pDest, pNew.c_str(), pNew.GetLength());
@@ -832,7 +832,7 @@
   return nCount;
 }
 
-void CFX_ByteString::SetAt(FX_STRSIZE nIndex, FX_CHAR ch) {
+void CFX_ByteString::SetAt(FX_STRSIZE nIndex, char ch) {
   if (!m_pData) {
     return;
   }
@@ -851,8 +851,7 @@
 }
 
 // static
-CFX_ByteString CFX_ByteString::FromUnicode(const FX_WCHAR* str,
-                                           FX_STRSIZE len) {
+CFX_ByteString CFX_ByteString::FromUnicode(const wchar_t* str, FX_STRSIZE len) {
   FX_STRSIZE str_len = len >= 0 ? len : FXSYS_wcslen(str);
   return FromUnicode(CFX_WideString(str, str_len));
 }
@@ -912,7 +911,7 @@
   }
 }
 
-void CFX_ByteString::TrimRight(FX_CHAR chTarget) {
+void CFX_ByteString::TrimRight(char chTarget) {
   TrimRight(CFX_ByteStringC(chTarget));
 }
 
@@ -943,12 +942,12 @@
     ReallocBeforeWrite(len);
     FX_STRSIZE nDataLength = len - pos;
     FXSYS_memmove(m_pData->m_String, m_pData->m_String + pos,
-                  (nDataLength + 1) * sizeof(FX_CHAR));
+                  (nDataLength + 1) * sizeof(char));
     m_pData->m_nDataLength = nDataLength;
   }
 }
 
-void CFX_ByteString::TrimLeft(FX_CHAR chTarget) {
+void CFX_ByteString::TrimLeft(char chTarget) {
   TrimLeft(CFX_ByteStringC(chTarget));
 }
 
@@ -959,7 +958,7 @@
 uint32_t CFX_ByteString::GetID(FX_STRSIZE start_pos) const {
   return AsStringC().GetID(start_pos);
 }
-FX_STRSIZE FX_ftoa(FX_FLOAT d, FX_CHAR* buf) {
+FX_STRSIZE FX_ftoa(FX_FLOAT d, char* buf) {
   buf[0] = '0';
   buf[1] = '\0';
   if (d == 0.0f) {
@@ -1006,7 +1005,7 @@
   return buf_size;
 }
 CFX_ByteString CFX_ByteString::FormatFloat(FX_FLOAT d, int precision) {
-  FX_CHAR buf[32];
+  char buf[32];
   FX_STRSIZE len = FX_ftoa(d, buf);
   return CFX_ByteString(buf, len);
 }
diff --git a/core/fxcrt/fx_basic_bstring_unittest.cpp b/core/fxcrt/fx_basic_bstring_unittest.cpp
index 503e684..a58169d 100644
--- a/core/fxcrt/fx_basic_bstring_unittest.cpp
+++ b/core/fxcrt/fx_basic_bstring_unittest.cpp
@@ -278,7 +278,7 @@
   EXPECT_EQ(null_string, assigned_null_string);
 
   CFX_ByteStringC assigned_nullptr_string("initially not nullptr");
-  assigned_nullptr_string = (const FX_CHAR*)nullptr;
+  assigned_nullptr_string = (const char*)nullptr;
   EXPECT_FALSE(assigned_nullptr_string.raw_str());
   EXPECT_EQ(assigned_nullptr_string.GetLength(), 0);
   EXPECT_TRUE(assigned_nullptr_string.IsEmpty());
@@ -335,7 +335,7 @@
 
 TEST(fxcrt, ByteStringRemoveCopies) {
   CFX_ByteString freed("FREED");
-  const FX_CHAR* old_buffer = freed.c_str();
+  const char* old_buffer = freed.c_str();
 
   // No change with single reference - no copy.
   freed.Remove('Q');
@@ -538,7 +538,7 @@
   {
     // With a single reference, no copy takes place.
     CFX_ByteString fred("  FRED  ");
-    const FX_CHAR* old_buffer = fred.c_str();
+    const char* old_buffer = fred.c_str();
     fred.TrimRight();
     EXPECT_EQ("  FRED", fred);
     EXPECT_EQ(old_buffer, fred.c_str());
@@ -547,7 +547,7 @@
     // With multiple references, we must copy.
     CFX_ByteString fred("  FRED  ");
     CFX_ByteString other_fred = fred;
-    const FX_CHAR* old_buffer = fred.c_str();
+    const char* old_buffer = fred.c_str();
     fred.TrimRight();
     EXPECT_EQ("  FRED", fred);
     EXPECT_EQ("  FRED  ", other_fred);
@@ -557,7 +557,7 @@
     // With multiple references, but no modifications, no copy.
     CFX_ByteString fred("FRED");
     CFX_ByteString other_fred = fred;
-    const FX_CHAR* old_buffer = fred.c_str();
+    const char* old_buffer = fred.c_str();
     fred.TrimRight();
     EXPECT_EQ("FRED", fred);
     EXPECT_EQ("FRED", other_fred);
@@ -597,7 +597,7 @@
   {
     // With a single reference, no copy takes place.
     CFX_ByteString fred("  FRED  ");
-    const FX_CHAR* old_buffer = fred.c_str();
+    const char* old_buffer = fred.c_str();
     fred.TrimLeft();
     EXPECT_EQ("FRED  ", fred);
     EXPECT_EQ(old_buffer, fred.c_str());
@@ -606,7 +606,7 @@
     // With multiple references, we must copy.
     CFX_ByteString fred("  FRED  ");
     CFX_ByteString other_fred = fred;
-    const FX_CHAR* old_buffer = fred.c_str();
+    const char* old_buffer = fred.c_str();
     fred.TrimLeft();
     EXPECT_EQ("FRED  ", fred);
     EXPECT_EQ("  FRED  ", other_fred);
@@ -616,7 +616,7 @@
     // With multiple references, but no modifications, no copy.
     CFX_ByteString fred("FRED");
     CFX_ByteString other_fred = fred;
-    const FX_CHAR* old_buffer = fred.c_str();
+    const char* old_buffer = fred.c_str();
     fred.TrimLeft();
     EXPECT_EQ("FRED", fred);
     EXPECT_EQ("FRED", other_fred);
@@ -628,7 +628,7 @@
   {
     CFX_ByteString str;
     str.Reserve(6);
-    const FX_CHAR* old_buffer = str.c_str();
+    const char* old_buffer = str.c_str();
     str += "ABCDEF";
     EXPECT_EQ(old_buffer, str.c_str());
     str += "Blah Blah Blah Blah Blah Blah";
@@ -637,7 +637,7 @@
   {
     CFX_ByteString str("A");
     str.Reserve(6);
-    const FX_CHAR* old_buffer = str.c_str();
+    const char* old_buffer = str.c_str();
     str += "BCDEF";
     EXPECT_EQ(old_buffer, str.c_str());
     str += "Blah Blah Blah Blah Blah Blah";
@@ -648,7 +648,7 @@
 TEST(fxcrt, ByteStringGetBuffer) {
   {
     CFX_ByteString str;
-    FX_CHAR* buffer = str.GetBuffer(12);
+    char* buffer = str.GetBuffer(12);
     // NOLINTNEXTLINE(runtime/printf)
     strcpy(buffer, "clams");
     str.ReleaseBuffer();
@@ -656,7 +656,7 @@
   }
   {
     CFX_ByteString str("cl");
-    FX_CHAR* buffer = str.GetBuffer(12);
+    char* buffer = str.GetBuffer(12);
     // NOLINTNEXTLINE(runtime/printf)
     strcpy(buffer + 2, "ams");
     str.ReleaseBuffer();
@@ -669,7 +669,7 @@
     CFX_ByteString str;
     str.Reserve(12);
     str += "clams";
-    const FX_CHAR* old_buffer = str.c_str();
+    const char* old_buffer = str.c_str();
     str.ReleaseBuffer(4);
     EXPECT_EQ(old_buffer, str.c_str());
     EXPECT_EQ("clam", str);
@@ -678,7 +678,7 @@
     CFX_ByteString str("c");
     str.Reserve(12);
     str += "lams";
-    const FX_CHAR* old_buffer = str.c_str();
+    const char* old_buffer = str.c_str();
     str.ReleaseBuffer(4);
     EXPECT_EQ(old_buffer, str.c_str());
     EXPECT_EQ("clam", str);
@@ -687,7 +687,7 @@
     CFX_ByteString str;
     str.Reserve(200);
     str += "clams";
-    const FX_CHAR* old_buffer = str.c_str();
+    const char* old_buffer = str.c_str();
     str.ReleaseBuffer(4);
     EXPECT_NE(old_buffer, str.c_str());
     EXPECT_EQ("clam", str);
@@ -696,7 +696,7 @@
     CFX_ByteString str("c");
     str.Reserve(200);
     str += "lams";
-    const FX_CHAR* old_buffer = str.c_str();
+    const char* old_buffer = str.c_str();
     str.ReleaseBuffer(4);
     EXPECT_NE(old_buffer, str.c_str());
     EXPECT_EQ("clam", str);
@@ -1097,6 +1097,6 @@
   CFX_ByteString empty_str;
   EXPECT_TRUE(empty_str.IsEmpty());
   EXPECT_EQ(0, empty_str.GetLength());
-  const FX_CHAR* cstr = empty_str.c_str();
+  const char* cstr = empty_str.c_str();
   EXPECT_EQ(0, FXSYS_strlen(cstr));
 }
diff --git a/core/fxcrt/fx_basic_buffer.cpp b/core/fxcrt/fx_basic_buffer.cpp
index 14a85c2..eaa79c9 100644
--- a/core/fxcrt/fx_basic_buffer.cpp
+++ b/core/fxcrt/fx_basic_buffer.cpp
@@ -127,19 +127,19 @@
   return *this;
 }
 
-void CFX_WideTextBuf::AppendChar(FX_WCHAR ch) {
-  ExpandBuf(sizeof(FX_WCHAR));
-  *(FX_WCHAR*)(m_pBuffer.get() + m_DataSize) = ch;
-  m_DataSize += sizeof(FX_WCHAR);
+void CFX_WideTextBuf::AppendChar(wchar_t ch) {
+  ExpandBuf(sizeof(wchar_t));
+  *(wchar_t*)(m_pBuffer.get() + m_DataSize) = ch;
+  m_DataSize += sizeof(wchar_t);
 }
 
 CFX_WideTextBuf& CFX_WideTextBuf::operator<<(const CFX_WideStringC& str) {
-  AppendBlock(str.c_str(), str.GetLength() * sizeof(FX_WCHAR));
+  AppendBlock(str.c_str(), str.GetLength() * sizeof(wchar_t));
   return *this;
 }
 
 CFX_WideTextBuf& CFX_WideTextBuf::operator<<(const CFX_WideString& str) {
-  AppendBlock(str.c_str(), str.GetLength() * sizeof(FX_WCHAR));
+  AppendBlock(str.c_str(), str.GetLength() * sizeof(wchar_t));
   return *this;
 }
 
@@ -147,29 +147,29 @@
   char buf[32];
   FXSYS_itoa(i, buf, 10);
   FX_STRSIZE len = FXSYS_strlen(buf);
-  ExpandBuf(len * sizeof(FX_WCHAR));
-  FX_WCHAR* str = (FX_WCHAR*)(m_pBuffer.get() + m_DataSize);
+  ExpandBuf(len * sizeof(wchar_t));
+  wchar_t* str = (wchar_t*)(m_pBuffer.get() + m_DataSize);
   for (FX_STRSIZE j = 0; j < len; j++) {
     *str++ = buf[j];
   }
-  m_DataSize += len * sizeof(FX_WCHAR);
+  m_DataSize += len * sizeof(wchar_t);
   return *this;
 }
 
 CFX_WideTextBuf& CFX_WideTextBuf::operator<<(double f) {
   char buf[32];
   FX_STRSIZE len = FX_ftoa((FX_FLOAT)f, buf);
-  ExpandBuf(len * sizeof(FX_WCHAR));
-  FX_WCHAR* str = (FX_WCHAR*)(m_pBuffer.get() + m_DataSize);
+  ExpandBuf(len * sizeof(wchar_t));
+  wchar_t* str = (wchar_t*)(m_pBuffer.get() + m_DataSize);
   for (FX_STRSIZE i = 0; i < len; i++) {
     *str++ = buf[i];
   }
-  m_DataSize += len * sizeof(FX_WCHAR);
+  m_DataSize += len * sizeof(wchar_t);
   return *this;
 }
 
-CFX_WideTextBuf& CFX_WideTextBuf::operator<<(const FX_WCHAR* lpsz) {
-  AppendBlock(lpsz, FXSYS_wcslen(lpsz) * sizeof(FX_WCHAR));
+CFX_WideTextBuf& CFX_WideTextBuf::operator<<(const wchar_t* lpsz) {
+  AppendBlock(lpsz, FXSYS_wcslen(lpsz) * sizeof(wchar_t));
   return *this;
 }
 
diff --git a/core/fxcrt/fx_basic_gcc.cpp b/core/fxcrt/fx_basic_gcc.cpp
index 42fb2a1..4960dc8 100644
--- a/core/fxcrt/fx_basic_gcc.cpp
+++ b/core/fxcrt/fx_basic_gcc.cpp
@@ -82,23 +82,23 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-int32_t FXSYS_atoi(const FX_CHAR* str) {
-  return FXSYS_StrToInt<int32_t, FX_CHAR>(str);
+int32_t FXSYS_atoi(const char* str) {
+  return FXSYS_StrToInt<int32_t, char>(str);
 }
-uint32_t FXSYS_atoui(const FX_CHAR* str) {
+uint32_t FXSYS_atoui(const char* str) {
   return FXSYS_StrToInt<uint32_t>(str);
 }
-int32_t FXSYS_wtoi(const FX_WCHAR* str) {
-  return FXSYS_StrToInt<int32_t, FX_WCHAR>(str);
+int32_t FXSYS_wtoi(const wchar_t* str) {
+  return FXSYS_StrToInt<int32_t, wchar_t>(str);
 }
-int64_t FXSYS_atoi64(const FX_CHAR* str) {
-  return FXSYS_StrToInt<int64_t, FX_CHAR>(str);
+int64_t FXSYS_atoi64(const char* str) {
+  return FXSYS_StrToInt<int64_t, char>(str);
 }
-int64_t FXSYS_wtoi64(const FX_WCHAR* str) {
-  return FXSYS_StrToInt<int64_t, FX_WCHAR>(str);
+int64_t FXSYS_wtoi64(const wchar_t* str) {
+  return FXSYS_StrToInt<int64_t, wchar_t>(str);
 }
-const FX_CHAR* FXSYS_i64toa(int64_t value, FX_CHAR* str, int radix) {
-  return FXSYS_IntToStr<int64_t, uint64_t, FX_CHAR*>(value, str, radix);
+const char* FXSYS_i64toa(int64_t value, char* str, int radix) {
+  return FXSYS_IntToStr<int64_t, uint64_t, char*>(value, str, radix);
 }
 #ifdef __cplusplus
 }
@@ -110,10 +110,10 @@
 int FXSYS_GetACP() {
   return 0;
 }
-uint32_t FXSYS_GetFullPathName(const FX_CHAR* filename,
+uint32_t FXSYS_GetFullPathName(const char* filename,
                                uint32_t buflen,
-                               FX_CHAR* buf,
-                               FX_CHAR** filepart) {
+                               char* buf,
+                               char** filepart) {
   int srclen = FXSYS_strlen(filename);
   if (!buf || (int)buflen < srclen + 1) {
     return srclen + 1;
@@ -132,7 +132,7 @@
 #ifdef __cplusplus
 extern "C" {
 #endif
-FXSYS_FILE* FXSYS_wfopen(const FX_WCHAR* filename, const FX_WCHAR* mode) {
+FXSYS_FILE* FXSYS_wfopen(const wchar_t* filename, const wchar_t* mode) {
   return FXSYS_fopen(CFX_ByteString::FromUnicode(filename).c_str(),
                      CFX_ByteString::FromUnicode(mode).c_str());
 }
@@ -158,22 +158,22 @@
   }
   return s;
 }
-FX_WCHAR* FXSYS_wcslwr(FX_WCHAR* str) {
+wchar_t* FXSYS_wcslwr(wchar_t* str) {
   if (!str) {
     return nullptr;
   }
-  FX_WCHAR* s = str;
+  wchar_t* s = str;
   while (*str) {
     *str = FXSYS_tolower(*str);
     str++;
   }
   return s;
 }
-FX_WCHAR* FXSYS_wcsupr(FX_WCHAR* str) {
+wchar_t* FXSYS_wcsupr(wchar_t* str) {
   if (!str) {
     return nullptr;
   }
-  FX_WCHAR* s = str;
+  wchar_t* s = str;
   while (*str) {
     *str = FXSYS_toupper(*str);
     str++;
@@ -192,20 +192,20 @@
   } while (f && (f == l));
   return (f - l);
 }
-int FXSYS_wcsicmp(const FX_WCHAR* dst, const FX_WCHAR* src) {
-  FX_WCHAR f, l;
+int FXSYS_wcsicmp(const wchar_t* dst, const wchar_t* src) {
+  wchar_t f, l;
   do {
-    if (((f = (FX_WCHAR)(*(dst++))) >= 'A') && (f <= 'Z')) {
+    if (((f = (wchar_t)(*(dst++))) >= 'A') && (f <= 'Z')) {
       f -= ('A' - 'a');
     }
-    if (((l = (FX_WCHAR)(*(src++))) >= 'A') && (l <= 'Z')) {
+    if (((l = (wchar_t)(*(src++))) >= 'A') && (l <= 'Z')) {
       l -= ('A' - 'a');
     }
   } while (f && (f == l));
   return (f - l);
 }
 char* FXSYS_itoa(int value, char* str, int radix) {
-  return FXSYS_IntToStr<int32_t, uint32_t, FX_CHAR*>(value, str, radix);
+  return FXSYS_IntToStr<int32_t, uint32_t, char*>(value, str, radix);
 }
 #ifdef __cplusplus
 }
@@ -217,17 +217,17 @@
 #endif
 int FXSYS_WideCharToMultiByte(uint32_t codepage,
                               uint32_t dwFlags,
-                              const FX_WCHAR* wstr,
+                              const wchar_t* wstr,
                               int wlen,
-                              FX_CHAR* buf,
+                              char* buf,
                               int buflen,
-                              const FX_CHAR* default_str,
+                              const char* default_str,
                               int* pUseDefault) {
   int len = 0;
   for (int i = 0; i < wlen; i++) {
     if (wstr[i] < 0x100) {
       if (buf && len < buflen)
-        buf[len] = static_cast<FX_CHAR>(wstr[i]);
+        buf[len] = static_cast<char>(wstr[i]);
       len++;
     }
   }
@@ -235,9 +235,9 @@
 }
 int FXSYS_MultiByteToWideChar(uint32_t codepage,
                               uint32_t dwFlags,
-                              const FX_CHAR* bstr,
+                              const char* bstr,
                               int blen,
-                              FX_WCHAR* buf,
+                              wchar_t* buf,
                               int buflen) {
   int wlen = 0;
   for (int i = 0; i < blen; i++) {
diff --git a/core/fxcrt/fx_basic_utf.cpp b/core/fxcrt/fx_basic_utf.cpp
index c0f14c8..10aa918 100644
--- a/core/fxcrt/fx_basic_utf.cpp
+++ b/core/fxcrt/fx_basic_utf.cpp
@@ -11,7 +11,7 @@
   m_PendingBytes = 0;
 }
 void CFX_UTF8Decoder::AppendChar(uint32_t ch) {
-  m_Buffer.AppendChar((FX_WCHAR)ch);
+  m_Buffer.AppendChar((wchar_t)ch);
 }
 void CFX_UTF8Decoder::Input(uint8_t byte) {
   if (byte < 0x80) {
@@ -43,7 +43,7 @@
     m_PendingChar = (byte & 0x01) << 30;
   }
 }
-void CFX_UTF8Encoder::Input(FX_WCHAR unicode) {
+void CFX_UTF8Encoder::Input(wchar_t unicode) {
   if ((uint32_t)unicode < 0x80) {
     m_Buffer.AppendChar(unicode);
   } else {
@@ -76,7 +76,7 @@
 
 CFX_ByteString FX_UTF8Encode(const CFX_WideStringC& wsStr) {
   FX_STRSIZE len = wsStr.GetLength();
-  const FX_WCHAR* pStr = wsStr.c_str();
+  const wchar_t* pStr = wsStr.c_str();
   CFX_UTF8Encoder encoder;
   while (len-- > 0)
     encoder.Input(*pStr++);
diff --git a/core/fxcrt/fx_basic_util.cpp b/core/fxcrt/fx_basic_util.cpp
index f608e29..45543dc 100644
--- a/core/fxcrt/fx_basic_util.cpp
+++ b/core/fxcrt/fx_basic_util.cpp
@@ -140,7 +140,7 @@
 }
 #endif  // _FXM_PLATFORM_WINDOWS_ && _MSC_VER < 1900
 
-FX_FileHandle* FX_OpenFolder(const FX_CHAR* path) {
+FX_FileHandle* FX_OpenFolder(const char* path) {
 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
   std::unique_ptr<CFindFileDataA> pData(new CFindFileDataA);
   pData->m_Handle = FindFirstFileExA((CFX_ByteString(path) + "/*.*").c_str(),
@@ -197,7 +197,7 @@
 #endif
 }
 
-FX_WCHAR FX_GetFolderSeparator() {
+wchar_t FX_GetFolderSeparator() {
 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
   return '\\';
 #else
diff --git a/core/fxcrt/fx_basic_wstring.cpp b/core/fxcrt/fx_basic_wstring.cpp
index 93b9ba7..3b9fa24 100644
--- a/core/fxcrt/fx_basic_wstring.cpp
+++ b/core/fxcrt/fx_basic_wstring.cpp
@@ -14,8 +14,8 @@
 #include "core/fxcrt/fx_ext.h"
 #include "third_party/base/numerics/safe_math.h"
 
-template class CFX_StringDataTemplate<FX_WCHAR>;
-template class CFX_StringCTemplate<FX_WCHAR>;
+template class CFX_StringDataTemplate<wchar_t>;
+template class CFX_StringCTemplate<wchar_t>;
 template class CFX_StringPoolTemplate<CFX_WideString>;
 template struct std::hash<CFX_WideString>;
 
@@ -37,14 +37,14 @@
 }
 #endif
 
-const FX_WCHAR* FX_wcsstr(const FX_WCHAR* haystack,
-                          int haystack_len,
-                          const FX_WCHAR* needle,
-                          int needle_len) {
+const wchar_t* FX_wcsstr(const wchar_t* haystack,
+                         int haystack_len,
+                         const wchar_t* needle,
+                         int needle_len) {
   if (needle_len > haystack_len || needle_len == 0) {
     return nullptr;
   }
-  const FX_WCHAR* end_ptr = haystack + haystack_len - needle_len;
+  const wchar_t* end_ptr = haystack + haystack_len - needle_len;
   while (haystack <= end_ptr) {
     int i = 0;
     while (1) {
@@ -63,7 +63,7 @@
 
 }  // namespace
 
-static_assert(sizeof(CFX_WideString) <= sizeof(FX_WCHAR*),
+static_assert(sizeof(CFX_WideString) <= sizeof(wchar_t*),
               "Strings must not require more space than pointers");
 
 CFX_WideString::CFX_WideString() {}
@@ -75,7 +75,7 @@
   m_pData.Swap(other.m_pData);
 }
 
-CFX_WideString::CFX_WideString(const FX_WCHAR* pStr, FX_STRSIZE nLen) {
+CFX_WideString::CFX_WideString(const wchar_t* pStr, FX_STRSIZE nLen) {
   if (nLen < 0)
     nLen = pStr ? FXSYS_wcslen(pStr) : 0;
 
@@ -83,12 +83,12 @@
     m_pData.Reset(StringData::Create(pStr, nLen));
 }
 
-CFX_WideString::CFX_WideString(FX_WCHAR ch) {
+CFX_WideString::CFX_WideString(wchar_t ch) {
   m_pData.Reset(StringData::Create(1));
   m_pData->m_String[0] = ch;
 }
 
-CFX_WideString::CFX_WideString(const FX_WCHAR* ptr)
+CFX_WideString::CFX_WideString(const wchar_t* ptr)
     : CFX_WideString(ptr, ptr ? FXSYS_wcslen(ptr) : 0) {}
 
 CFX_WideString::CFX_WideString(const CFX_WideStringC& stringSrc) {
@@ -110,7 +110,7 @@
 
 CFX_WideString::~CFX_WideString() {}
 
-const CFX_WideString& CFX_WideString::operator=(const FX_WCHAR* pStr) {
+const CFX_WideString& CFX_WideString::operator=(const wchar_t* pStr) {
   if (!pStr || !pStr[0])
     clear();
   else
@@ -137,14 +137,14 @@
   return *this;
 }
 
-const CFX_WideString& CFX_WideString::operator+=(const FX_WCHAR* pStr) {
+const CFX_WideString& CFX_WideString::operator+=(const wchar_t* pStr) {
   if (pStr)
     Concat(pStr, FXSYS_wcslen(pStr));
 
   return *this;
 }
 
-const CFX_WideString& CFX_WideString::operator+=(FX_WCHAR ch) {
+const CFX_WideString& CFX_WideString::operator+=(wchar_t ch) {
   Concat(&ch, 1);
   return *this;
 }
@@ -206,7 +206,7 @@
   return result < 0 || (result == 0 && GetLength() < str.GetLength());
 }
 
-void CFX_WideString::AssignCopy(const FX_WCHAR* pSrcData, FX_STRSIZE nSrcLen) {
+void CFX_WideString::AssignCopy(const wchar_t* pSrcData, FX_STRSIZE nSrcLen) {
   AllocBeforeWrite(nSrcLen);
   m_pData->CopyContents(pSrcData, nSrcLen);
   m_pData->m_nDataLength = nSrcLen;
@@ -273,7 +273,7 @@
   GetBuffer(len);
 }
 
-FX_WCHAR* CFX_WideString::GetBuffer(FX_STRSIZE nMinBufLength) {
+wchar_t* CFX_WideString::GetBuffer(FX_STRSIZE nMinBufLength) {
   if (!m_pData) {
     if (nMinBufLength == 0)
       return nullptr;
@@ -321,7 +321,7 @@
   return m_pData->m_nDataLength;
 }
 
-void CFX_WideString::Concat(const FX_WCHAR* pSrcData, FX_STRSIZE nSrcLen) {
+void CFX_WideString::Concat(const wchar_t* pSrcData, FX_STRSIZE nSrcLen) {
   if (!pSrcData || nSrcLen <= 0)
     return;
 
@@ -353,7 +353,7 @@
   }
   int len = m_pData->m_nDataLength;
   CFX_ByteString result;
-  FX_CHAR* buffer = result.GetBuffer(len * 2 + 2);
+  char* buffer = result.GetBuffer(len * 2 + 2);
   for (int i = 0; i < len; i++) {
     buffer[i * 2] = m_pData->m_String[i] & 0xff;
     buffer[i * 2 + 1] = m_pData->m_String[i] >> 8;
@@ -403,7 +403,7 @@
 #define FORCE_UNICODE 0x20000
 #define FORCE_INT64 0x40000
 
-void CFX_WideString::FormatV(const FX_WCHAR* pFormat, va_list argList) {
+void CFX_WideString::FormatV(const wchar_t* pFormat, va_list argList) {
   va_list argListSave;
 #if defined(__ARMCC_VERSION) ||                                              \
     (!defined(_MSC_VER) && (_FX_CPU_ == _FX_X64_ || _FX_CPU_ == _FX_IA64_ || \
@@ -414,7 +414,7 @@
   argListSave = argList;
 #endif
   int nMaxLen = 0;
-  for (const FX_WCHAR* pStr = pFormat; *pStr != 0; pStr++) {
+  for (const wchar_t* pStr = pFormat; *pStr != 0; pStr++) {
     if (*pStr != '%' || *(pStr = pStr + 1) == '%') {
       nMaxLen += FXSYS_wcslen(pStr);
       continue;
@@ -495,7 +495,7 @@
         va_arg(argList, int);
         break;
       case 's': {
-        const FX_WCHAR* pstrNextArg = va_arg(argList, const FX_WCHAR*);
+        const wchar_t* pstrNextArg = va_arg(argList, const wchar_t*);
         if (pstrNextArg) {
           nItemLen = FXSYS_wcslen(pstrNextArg);
           if (nItemLen < 1) {
@@ -506,7 +506,7 @@
         }
       } break;
       case 'S': {
-        const FX_CHAR* pstrNextArg = va_arg(argList, const FX_CHAR*);
+        const char* pstrNextArg = va_arg(argList, const char*);
         if (pstrNextArg) {
           nItemLen = FXSYS_strlen(pstrNextArg);
           if (nItemLen < 1) {
@@ -518,7 +518,7 @@
       } break;
       case 's' | FORCE_ANSI:
       case 'S' | FORCE_ANSI: {
-        const FX_CHAR* pstrNextArg = va_arg(argList, const FX_CHAR*);
+        const char* pstrNextArg = va_arg(argList, const char*);
         if (pstrNextArg) {
           nItemLen = FXSYS_strlen(pstrNextArg);
           if (nItemLen < 1) {
@@ -530,7 +530,7 @@
       } break;
       case 's' | FORCE_UNICODE:
       case 'S' | FORCE_UNICODE: {
-        const FX_WCHAR* pstrNextArg = va_arg(argList, FX_WCHAR*);
+        const wchar_t* pstrNextArg = va_arg(argList, wchar_t*);
         if (pstrNextArg) {
           nItemLen = FXSYS_wcslen(pstrNextArg);
           if (nItemLen < 1) {
@@ -613,14 +613,14 @@
   va_end(argListSave);
 }
 
-void CFX_WideString::Format(const FX_WCHAR* pFormat, ...) {
+void CFX_WideString::Format(const wchar_t* pFormat, ...) {
   va_list argList;
   va_start(argList, pFormat);
   FormatV(pFormat, argList);
   va_end(argList);
 }
 
-FX_STRSIZE CFX_WideString::Insert(FX_STRSIZE nIndex, FX_WCHAR ch) {
+FX_STRSIZE CFX_WideString::Insert(FX_STRSIZE nIndex, wchar_t ch) {
   FX_STRSIZE nNewLength = m_pData ? m_pData->m_nDataLength : 0;
   nIndex = std::max(nIndex, 0);
   nIndex = std::min(nIndex, nNewLength);
@@ -660,14 +660,14 @@
   return dest;
 }
 
-FX_STRSIZE CFX_WideString::Find(FX_WCHAR ch, FX_STRSIZE nStart) const {
+FX_STRSIZE CFX_WideString::Find(wchar_t ch, FX_STRSIZE nStart) const {
   if (!m_pData)
     return -1;
 
   if (nStart < 0 || nStart >= m_pData->m_nDataLength)
     return -1;
 
-  const FX_WCHAR* pStr =
+  const wchar_t* pStr =
       wmemchr(m_pData->m_String + nStart, ch, m_pData->m_nDataLength - nStart);
   return pStr ? pStr - m_pData->m_String : -1;
 }
@@ -681,7 +681,7 @@
   if (nStart > nLength)
     return -1;
 
-  const FX_WCHAR* pStr =
+  const wchar_t* pStr =
       FX_wcsstr(m_pData->m_String + nStart, m_pData->m_nDataLength - nStart,
                 pSub.c_str(), pSub.GetLength());
   return pStr ? (int)(pStr - m_pData->m_String) : -1;
@@ -703,12 +703,12 @@
   FXSYS_wcsupr(m_pData->m_String);
 }
 
-FX_STRSIZE CFX_WideString::Remove(FX_WCHAR chRemove) {
+FX_STRSIZE CFX_WideString::Remove(wchar_t chRemove) {
   if (!m_pData || m_pData->m_nDataLength < 1)
     return 0;
 
-  FX_WCHAR* pstrSource = m_pData->m_String;
-  FX_WCHAR* pstrEnd = m_pData->m_String + m_pData->m_nDataLength;
+  wchar_t* pstrSource = m_pData->m_String;
+  wchar_t* pstrEnd = m_pData->m_String + m_pData->m_nDataLength;
   while (pstrSource < pstrEnd) {
     if (*pstrSource == chRemove)
       break;
@@ -722,7 +722,7 @@
   pstrSource = m_pData->m_String + copied;
   pstrEnd = m_pData->m_String + m_pData->m_nDataLength;
 
-  FX_WCHAR* pstrDest = pstrSource;
+  wchar_t* pstrDest = pstrSource;
   while (pstrSource < pstrEnd) {
     if (*pstrSource != chRemove) {
       *pstrDest = *pstrSource;
@@ -745,11 +745,11 @@
   FX_STRSIZE nSourceLen = pOld.GetLength();
   FX_STRSIZE nReplacementLen = pNew.GetLength();
   FX_STRSIZE nCount = 0;
-  const FX_WCHAR* pStart = m_pData->m_String;
-  FX_WCHAR* pEnd = m_pData->m_String + m_pData->m_nDataLength;
+  const wchar_t* pStart = m_pData->m_String;
+  wchar_t* pEnd = m_pData->m_String + m_pData->m_nDataLength;
   while (1) {
-    const FX_WCHAR* pTarget = FX_wcsstr(pStart, (FX_STRSIZE)(pEnd - pStart),
-                                        pOld.c_str(), nSourceLen);
+    const wchar_t* pTarget = FX_wcsstr(pStart, (FX_STRSIZE)(pEnd - pStart),
+                                       pOld.c_str(), nSourceLen);
     if (!pTarget)
       break;
 
@@ -769,10 +769,10 @@
 
   CFX_RetainPtr<StringData> pNewData(StringData::Create(nNewLength));
   pStart = m_pData->m_String;
-  FX_WCHAR* pDest = pNewData->m_String;
+  wchar_t* pDest = pNewData->m_String;
   for (FX_STRSIZE i = 0; i < nCount; i++) {
-    const FX_WCHAR* pTarget = FX_wcsstr(pStart, (FX_STRSIZE)(pEnd - pStart),
-                                        pOld.c_str(), nSourceLen);
+    const wchar_t* pTarget = FX_wcsstr(pStart, (FX_STRSIZE)(pEnd - pStart),
+                                       pOld.c_str(), nSourceLen);
     wmemcpy(pDest, pStart, pTarget - pStart);
     pDest += pTarget - pStart;
     wmemcpy(pDest, pNew.c_str(), pNew.GetLength());
@@ -784,7 +784,7 @@
   return nCount;
 }
 
-void CFX_WideString::SetAt(FX_STRSIZE nIndex, FX_WCHAR ch) {
+void CFX_WideString::SetAt(FX_STRSIZE nIndex, wchar_t ch) {
   if (!m_pData) {
     return;
   }
@@ -825,7 +825,7 @@
   }
 
   CFX_WideString result;
-  FX_WCHAR* buf = result.GetBuffer(wlen);
+  wchar_t* buf = result.GetBuffer(wlen);
   for (int i = 0; i < wlen; i++) {
     buf[i] = wstr[i];
   }
@@ -833,7 +833,7 @@
   return result;
 }
 
-int CFX_WideString::Compare(const FX_WCHAR* lpsz) const {
+int CFX_WideString::Compare(const wchar_t* lpsz) const {
   if (m_pData)
     return FXSYS_wcscmp(m_pData->m_String, lpsz);
   return (!lpsz || lpsz[0] == 0) ? 0 : -1;
@@ -869,7 +869,7 @@
   return 0;
 }
 
-int CFX_WideString::CompareNoCase(const FX_WCHAR* lpsz) const {
+int CFX_WideString::CompareNoCase(const wchar_t* lpsz) const {
   if (!m_pData) {
     return (!lpsz || lpsz[0] == 0) ? 0 : -1;
   }
@@ -899,8 +899,8 @@
   }
 }
 
-void CFX_WideString::TrimRight(FX_WCHAR chTarget) {
-  FX_WCHAR str[2] = {chTarget, 0};
+void CFX_WideString::TrimRight(wchar_t chTarget) {
+  wchar_t str[2] = {chTarget, 0};
   TrimRight(str);
 }
 
@@ -932,20 +932,20 @@
     ReallocBeforeWrite(len);
     FX_STRSIZE nDataLength = len - pos;
     FXSYS_memmove(m_pData->m_String, m_pData->m_String + pos,
-                  (nDataLength + 1) * sizeof(FX_WCHAR));
+                  (nDataLength + 1) * sizeof(wchar_t));
     m_pData->m_nDataLength = nDataLength;
   }
 }
 
-void CFX_WideString::TrimLeft(FX_WCHAR chTarget) {
-  FX_WCHAR str[2] = {chTarget, 0};
+void CFX_WideString::TrimLeft(wchar_t chTarget) {
+  wchar_t str[2] = {chTarget, 0};
   TrimLeft(str);
 }
 
 void CFX_WideString::TrimLeft() {
   TrimLeft(L"\x09\x0a\x0b\x0c\x0d\x20");
 }
-FX_FLOAT FX_wtof(const FX_WCHAR* str, int len) {
+FX_FLOAT FX_wtof(const wchar_t* str, int len) {
   if (len == 0) {
     return 0.0;
   }
@@ -996,7 +996,7 @@
                                            nullptr, 0, nullptr, nullptr);
   CFX_ByteString bstr;
   if (dest_len) {
-    FX_CHAR* dest_buf = bstr.GetBuffer(dest_len);
+    char* dest_buf = bstr.GetBuffer(dest_len);
     FXSYS_WideCharToMultiByte(codepage, 0, wstr.c_str(), src_len, dest_buf,
                               dest_len, nullptr, nullptr);
     bstr.ReleaseBuffer(dest_len);
@@ -1013,7 +1013,7 @@
       FXSYS_MultiByteToWideChar(codepage, 0, bstr.c_str(), src_len, nullptr, 0);
   CFX_WideString wstr;
   if (dest_len) {
-    FX_WCHAR* dest_buf = wstr.GetBuffer(dest_len);
+    wchar_t* dest_buf = wstr.GetBuffer(dest_len);
     FXSYS_MultiByteToWideChar(codepage, 0, bstr.c_str(), src_len, dest_buf,
                               dest_len);
     wstr.ReleaseBuffer(dest_len);
diff --git a/core/fxcrt/fx_basic_wstring_unittest.cpp b/core/fxcrt/fx_basic_wstring_unittest.cpp
index 07b5aaf..ceb4616 100644
--- a/core/fxcrt/fx_basic_wstring_unittest.cpp
+++ b/core/fxcrt/fx_basic_wstring_unittest.cpp
@@ -296,7 +296,7 @@
 
 TEST(fxcrt, WideStringRemoveCopies) {
   CFX_WideString freed(L"FREED");
-  const FX_WCHAR* old_buffer = freed.c_str();
+  const wchar_t* old_buffer = freed.c_str();
 
   // No change with single reference - no copy.
   freed.Remove(L'Q');
@@ -505,7 +505,7 @@
   {
     // With a single reference, no copy takes place.
     CFX_WideString fred(L"  FRED  ");
-    const FX_WCHAR* old_buffer = fred.c_str();
+    const wchar_t* old_buffer = fred.c_str();
     fred.TrimRight();
     EXPECT_EQ(L"  FRED", fred);
     EXPECT_EQ(old_buffer, fred.c_str());
@@ -514,7 +514,7 @@
     // With multiple references, we must copy.
     CFX_WideString fred(L"  FRED  ");
     CFX_WideString other_fred = fred;
-    const FX_WCHAR* old_buffer = fred.c_str();
+    const wchar_t* old_buffer = fred.c_str();
     fred.TrimRight();
     EXPECT_EQ(L"  FRED", fred);
     EXPECT_EQ(L"  FRED  ", other_fred);
@@ -524,7 +524,7 @@
     // With multiple references, but no modifications, no copy.
     CFX_WideString fred(L"FRED");
     CFX_WideString other_fred = fred;
-    const FX_WCHAR* old_buffer = fred.c_str();
+    const wchar_t* old_buffer = fred.c_str();
     fred.TrimRight();
     EXPECT_EQ(L"FRED", fred);
     EXPECT_EQ(L"FRED", other_fred);
@@ -564,7 +564,7 @@
   {
     // With a single reference, no copy takes place.
     CFX_WideString fred(L"  FRED  ");
-    const FX_WCHAR* old_buffer = fred.c_str();
+    const wchar_t* old_buffer = fred.c_str();
     fred.TrimLeft();
     EXPECT_EQ(L"FRED  ", fred);
     EXPECT_EQ(old_buffer, fred.c_str());
@@ -573,7 +573,7 @@
     // With multiple references, we must copy.
     CFX_WideString fred(L"  FRED  ");
     CFX_WideString other_fred = fred;
-    const FX_WCHAR* old_buffer = fred.c_str();
+    const wchar_t* old_buffer = fred.c_str();
     fred.TrimLeft();
     EXPECT_EQ(L"FRED  ", fred);
     EXPECT_EQ(L"  FRED  ", other_fred);
@@ -583,7 +583,7 @@
     // With multiple references, but no modifications, no copy.
     CFX_WideString fred(L"FRED");
     CFX_WideString other_fred = fred;
-    const FX_WCHAR* old_buffer = fred.c_str();
+    const wchar_t* old_buffer = fred.c_str();
     fred.TrimLeft();
     EXPECT_EQ(L"FRED", fred);
     EXPECT_EQ(L"FRED", other_fred);
@@ -595,7 +595,7 @@
   {
     CFX_WideString str;
     str.Reserve(6);
-    const FX_WCHAR* old_buffer = str.c_str();
+    const wchar_t* old_buffer = str.c_str();
     str += L"ABCDEF";
     EXPECT_EQ(old_buffer, str.c_str());
     str += L"Blah Blah Blah Blah Blah Blah";
@@ -604,7 +604,7 @@
   {
     CFX_WideString str(L"A");
     str.Reserve(6);
-    const FX_WCHAR* old_buffer = str.c_str();
+    const wchar_t* old_buffer = str.c_str();
     str += L"BCDEF";
     EXPECT_EQ(old_buffer, str.c_str());
     str += L"Blah Blah Blah Blah Blah Blah";
@@ -615,14 +615,14 @@
 TEST(fxcrt, WideStringGetBuffer) {
   {
     CFX_WideString str;
-    FX_WCHAR* buffer = str.GetBuffer(12);
+    wchar_t* buffer = str.GetBuffer(12);
     wcscpy(buffer, L"clams");
     str.ReleaseBuffer();
     EXPECT_EQ(L"clams", str);
   }
   {
     CFX_WideString str(L"cl");
-    FX_WCHAR* buffer = str.GetBuffer(12);
+    wchar_t* buffer = str.GetBuffer(12);
     wcscpy(buffer + 2, L"ams");
     str.ReleaseBuffer();
     EXPECT_EQ(L"clams", str);
@@ -634,7 +634,7 @@
     CFX_WideString str;
     str.Reserve(12);
     str += L"clams";
-    const FX_WCHAR* old_buffer = str.c_str();
+    const wchar_t* old_buffer = str.c_str();
     str.ReleaseBuffer(4);
     EXPECT_EQ(old_buffer, str.c_str());
     EXPECT_EQ(L"clam", str);
@@ -643,7 +643,7 @@
     CFX_WideString str(L"c");
     str.Reserve(12);
     str += L"lams";
-    const FX_WCHAR* old_buffer = str.c_str();
+    const wchar_t* old_buffer = str.c_str();
     str.ReleaseBuffer(4);
     EXPECT_EQ(old_buffer, str.c_str());
     EXPECT_EQ(L"clam", str);
@@ -652,7 +652,7 @@
     CFX_WideString str;
     str.Reserve(200);
     str += L"clams";
-    const FX_WCHAR* old_buffer = str.c_str();
+    const wchar_t* old_buffer = str.c_str();
     str.ReleaseBuffer(4);
     EXPECT_NE(old_buffer, str.c_str());
     EXPECT_EQ(L"clam", str);
@@ -661,7 +661,7 @@
     CFX_WideString str(L"c");
     str.Reserve(200);
     str += L"lams";
-    const FX_WCHAR* old_buffer = str.c_str();
+    const wchar_t* old_buffer = str.c_str();
     str.ReleaseBuffer(4);
     EXPECT_NE(old_buffer, str.c_str());
     EXPECT_EQ(L"clam", str);
@@ -936,6 +936,6 @@
   CFX_WideString empty_str;
   EXPECT_TRUE(empty_str.IsEmpty());
   EXPECT_EQ(0, empty_str.GetLength());
-  const FX_WCHAR* cstr = empty_str.c_str();
+  const wchar_t* cstr = empty_str.c_str();
   EXPECT_EQ(0, FXSYS_wcslen(cstr));
 }
diff --git a/core/fxcrt/fx_bidi.cpp b/core/fxcrt/fx_bidi.cpp
index e82b3e7..5ad6439 100644
--- a/core/fxcrt/fx_bidi.cpp
+++ b/core/fxcrt/fx_bidi.cpp
@@ -12,7 +12,7 @@
 CFX_BidiChar::CFX_BidiChar()
     : m_CurrentSegment({0, 0, NEUTRAL}), m_LastSegment({0, 0, NEUTRAL}) {}
 
-bool CFX_BidiChar::AppendChar(FX_WCHAR wch) {
+bool CFX_BidiChar::AppendChar(wchar_t wch) {
   uint32_t dwProps = FX_GetUnicodeProperties(wch);
   int32_t iBidiCls = (dwProps & FX_BIDICLASSBITSMASK) >> FX_BIDICLASSBITS;
   Direction direction = NEUTRAL;
diff --git a/core/fxcrt/fx_bidi.h b/core/fxcrt/fx_bidi.h
index 8d12cc8..d5e0bd3 100644
--- a/core/fxcrt/fx_bidi.h
+++ b/core/fxcrt/fx_bidi.h
@@ -28,7 +28,7 @@
   // Append a character and classify it as left, right, or neutral.
   // Returns true if the character has a different direction than the
   // existing direction to indicate there is a segment to process.
-  bool AppendChar(FX_WCHAR wch);
+  bool AppendChar(wchar_t wch);
 
   // Call this after the last character has been appended. AppendChar()
   // must not be called after this.
@@ -61,7 +61,7 @@
   // Force the overall direction to be R2L regardless of what was detected.
   void SetOverallDirectionRight();
 
-  FX_WCHAR CharAt(size_t x) const { return m_Str[x]; }
+  wchar_t CharAt(size_t x) const { return m_Str[x]; }
   const_iterator begin() const { return m_Order.begin(); }
   const_iterator end() const { return m_Order.end(); }
 
diff --git a/core/fxcrt/fx_bidi_unittest.cpp b/core/fxcrt/fx_bidi_unittest.cpp
index 2c1996b..ad598a6 100644
--- a/core/fxcrt/fx_bidi_unittest.cpp
+++ b/core/fxcrt/fx_bidi_unittest.cpp
@@ -7,9 +7,9 @@
 
 namespace {
 
-const FX_WCHAR kNeutralChar = 32;
-const FX_WCHAR kLeftChar = 65;
-const FX_WCHAR kRightChar = 1424;
+const wchar_t kNeutralChar = 32;
+const wchar_t kLeftChar = 65;
+const wchar_t kRightChar = 1424;
 
 }  // namespace
 
@@ -126,7 +126,7 @@
 
 TEST(fxcrt, BidiStringAllNeutral) {
   {
-    const FX_WCHAR str[] = {kNeutralChar, 0};
+    const wchar_t str[] = {kNeutralChar, 0};
     CFX_BidiString bidi(str);
     EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
 
@@ -139,7 +139,7 @@
     EXPECT_TRUE(it == bidi.end());
   }
   {
-    const FX_WCHAR str[] = {kNeutralChar, kNeutralChar, kNeutralChar, 0};
+    const wchar_t str[] = {kNeutralChar, kNeutralChar, kNeutralChar, 0};
     CFX_BidiString bidi(str);
     EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
 
@@ -155,7 +155,7 @@
 
 TEST(fxcrt, BidiStringAllLeft) {
   {
-    const FX_WCHAR str[] = {kLeftChar, 0};
+    const wchar_t str[] = {kLeftChar, 0};
     CFX_BidiString bidi(str);
     EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
 
@@ -176,7 +176,7 @@
     EXPECT_TRUE(it == bidi.end());
   }
   {
-    const FX_WCHAR str[] = {kLeftChar, kLeftChar, kLeftChar, 0};
+    const wchar_t str[] = {kLeftChar, kLeftChar, kLeftChar, 0};
     CFX_BidiString bidi(str);
     EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
 
@@ -200,7 +200,7 @@
 
 TEST(fxcrt, BidiStringAllRight) {
   {
-    const FX_WCHAR str[] = {kRightChar, 0};
+    const wchar_t str[] = {kRightChar, 0};
     CFX_BidiString bidi(str);
     EXPECT_EQ(CFX_BidiChar::RIGHT, bidi.OverallDirection());
 
@@ -221,7 +221,7 @@
     EXPECT_TRUE(it == bidi.end());
   }
   {
-    const FX_WCHAR str[] = {kRightChar, kRightChar, kRightChar, 0};
+    const wchar_t str[] = {kRightChar, kRightChar, kRightChar, 0};
     CFX_BidiString bidi(str);
     EXPECT_EQ(CFX_BidiChar::RIGHT, bidi.OverallDirection());
 
@@ -244,7 +244,7 @@
 }
 
 TEST(fxcrt, BidiStringLeftNeutralLeftRight) {
-  const FX_WCHAR str[] = {kLeftChar, kNeutralChar, kLeftChar, kRightChar, 0};
+  const wchar_t str[] = {kLeftChar, kNeutralChar, kLeftChar, kRightChar, 0};
   CFX_BidiString bidi(str);
   EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
 
@@ -284,7 +284,7 @@
 }
 
 TEST(fxcrt, BidiStringRightNeutralLeftRight) {
-  const FX_WCHAR str[] = {kRightChar, kNeutralChar, kLeftChar, kRightChar, 0};
+  const wchar_t str[] = {kRightChar, kNeutralChar, kLeftChar, kRightChar, 0};
   CFX_BidiString bidi(str);
   EXPECT_EQ(CFX_BidiChar::RIGHT, bidi.OverallDirection());
 
@@ -324,7 +324,7 @@
 }
 
 TEST(fxcrt, BidiStringReverse) {
-  const FX_WCHAR str[] = {kLeftChar, kNeutralChar, kRightChar, kLeftChar, 0};
+  const wchar_t str[] = {kLeftChar, kNeutralChar, kRightChar, kLeftChar, 0};
   CFX_BidiString bidi(str);
   EXPECT_EQ(CFX_BidiChar::LEFT, bidi.OverallDirection());
   bidi.SetOverallDirectionRight();
diff --git a/core/fxcrt/fx_ext.h b/core/fxcrt/fx_ext.h
index 9203938..3ee5a4f 100644
--- a/core/fxcrt/fx_ext.h
+++ b/core/fxcrt/fx_ext.h
@@ -17,15 +17,15 @@
 
 FX_FLOAT FXSYS_tan(FX_FLOAT a);
 FX_FLOAT FXSYS_logb(FX_FLOAT b, FX_FLOAT x);
-FX_FLOAT FXSYS_strtof(const FX_CHAR* pcsStr,
+FX_FLOAT FXSYS_strtof(const char* pcsStr,
                       int32_t iLength = -1,
                       int32_t* pUsedLen = nullptr);
-FX_FLOAT FXSYS_wcstof(const FX_WCHAR* pwsStr,
+FX_FLOAT FXSYS_wcstof(const wchar_t* pwsStr,
                       int32_t iLength = -1,
                       int32_t* pUsedLen = nullptr);
-FX_WCHAR* FXSYS_wcsncpy(FX_WCHAR* dstStr, const FX_WCHAR* srcStr, size_t count);
-int32_t FXSYS_wcsnicmp(const FX_WCHAR* s1, const FX_WCHAR* s2, size_t count);
-int32_t FXSYS_strnicmp(const FX_CHAR* s1, const FX_CHAR* s2, size_t count);
+wchar_t* FXSYS_wcsncpy(wchar_t* dstStr, const wchar_t* srcStr, size_t count);
+int32_t FXSYS_wcsnicmp(const wchar_t* s1, const wchar_t* s2, size_t count);
+int32_t FXSYS_strnicmp(const char* s1, const char* s2, size_t count);
 
 inline bool FXSYS_islower(int32_t ch) {
   return ch >= 'a' && ch <= 'z';
@@ -48,30 +48,30 @@
 inline bool FXSYS_iswalnum(wchar_t wch) {
   return FXSYS_iswalpha(wch) || FXSYS_iswdigit(wch);
 }
-inline bool FXSYS_iswspace(FX_WCHAR c) {
+inline bool FXSYS_iswspace(wchar_t c) {
   return (c == 0x20) || (c == 0x0d) || (c == 0x0a) || (c == 0x09);
 }
 
-inline int FXSYS_toHexDigit(const FX_CHAR c) {
+inline int FXSYS_toHexDigit(const char c) {
   if (!std::isxdigit(c))
     return 0;
   char upchar = std::toupper(c);
   return upchar > '9' ? upchar - 'A' + 10 : upchar - '0';
 }
 
-inline bool FXSYS_isDecimalDigit(const FX_CHAR c) {
+inline bool FXSYS_isDecimalDigit(const char c) {
   return !!std::isdigit(c);
 }
 
-inline bool FXSYS_isDecimalDigit(const FX_WCHAR c) {
+inline bool FXSYS_isDecimalDigit(const wchar_t c) {
   return !!std::iswdigit(c);
 }
 
-inline int FXSYS_toDecimalDigit(const FX_CHAR c) {
+inline int FXSYS_toDecimalDigit(const char c) {
   return std::isdigit(c) ? c - '0' : 0;
 }
 
-inline int FXSYS_toDecimalDigit(const FX_WCHAR c) {
+inline int FXSYS_toDecimalDigit(const wchar_t c) {
   return std::iswdigit(c) ? c - L'0' : 0;
 }
 
diff --git a/core/fxcrt/fx_extension.cpp b/core/fxcrt/fx_extension.cpp
index 5b577f7..0b7197e 100644
--- a/core/fxcrt/fx_extension.cpp
+++ b/core/fxcrt/fx_extension.cpp
@@ -387,7 +387,7 @@
 
 // static
 CFX_RetainPtr<IFX_SeekableStream> IFX_SeekableStream::CreateFromFilename(
-    const FX_CHAR* filename,
+    const char* filename,
     uint32_t dwModes) {
   std::unique_ptr<IFXCRT_FileAccess> pFA(IFXCRT_FileAccess::Create());
   if (!pFA->Open(filename, dwModes))
@@ -397,7 +397,7 @@
 
 // static
 CFX_RetainPtr<IFX_SeekableStream> IFX_SeekableStream::CreateFromFilename(
-    const FX_WCHAR* filename,
+    const wchar_t* filename,
     uint32_t dwModes) {
   std::unique_ptr<IFXCRT_FileAccess> pFA(IFXCRT_FileAccess::Create());
   if (!pFA->Open(filename, dwModes))
@@ -407,7 +407,7 @@
 
 // static
 CFX_RetainPtr<IFX_SeekableReadStream>
-IFX_SeekableReadStream::CreateFromFilename(const FX_CHAR* filename) {
+IFX_SeekableReadStream::CreateFromFilename(const char* filename) {
   return IFX_SeekableStream::CreateFromFilename(filename, FX_FILEMODE_ReadOnly);
 }
 
@@ -429,9 +429,7 @@
 FX_FLOAT FXSYS_logb(FX_FLOAT b, FX_FLOAT x) {
   return FXSYS_log(x) / FXSYS_log(b);
 }
-FX_FLOAT FXSYS_strtof(const FX_CHAR* pcsStr,
-                      int32_t iLength,
-                      int32_t* pUsedLen) {
+FX_FLOAT FXSYS_strtof(const char* pcsStr, int32_t iLength, int32_t* pUsedLen) {
   ASSERT(pcsStr);
   if (iLength < 0) {
     iLength = (int32_t)FXSYS_strlen(pcsStr);
@@ -440,7 +438,7 @@
       CFX_WideString::FromLocal(CFX_ByteStringC(pcsStr, iLength));
   return FXSYS_wcstof(ws.c_str(), iLength, pUsedLen);
 }
-FX_FLOAT FXSYS_wcstof(const FX_WCHAR* pwsStr,
+FX_FLOAT FXSYS_wcstof(const wchar_t* pwsStr,
                       int32_t iLength,
                       int32_t* pUsedLen) {
   ASSERT(pwsStr);
@@ -461,7 +459,7 @@
   }
   FX_FLOAT fValue = 0.0f;
   while (iUsedLen < iLength) {
-    FX_WCHAR wch = pwsStr[iUsedLen];
+    wchar_t wch = pwsStr[iUsedLen];
     if (wch >= L'0' && wch <= L'9') {
       fValue = fValue * 10.0f + (wch - L'0');
     } else {
@@ -472,7 +470,7 @@
   if (iUsedLen < iLength && pwsStr[iUsedLen] == L'.') {
     FX_FLOAT fPrecise = 0.1f;
     while (++iUsedLen < iLength) {
-      FX_WCHAR wch = pwsStr[iUsedLen];
+      wchar_t wch = pwsStr[iUsedLen];
       if (wch >= L'0' && wch <= L'9') {
         fValue += (wch - L'0') * fPrecise;
         fPrecise *= 0.1f;
@@ -486,9 +484,7 @@
   }
   return bNegtive ? -fValue : fValue;
 }
-FX_WCHAR* FXSYS_wcsncpy(FX_WCHAR* dstStr,
-                        const FX_WCHAR* srcStr,
-                        size_t count) {
+wchar_t* FXSYS_wcsncpy(wchar_t* dstStr, const wchar_t* srcStr, size_t count) {
   ASSERT(dstStr && srcStr && count > 0);
   for (size_t i = 0; i < count; ++i)
     if ((dstStr[i] = srcStr[i]) == L'\0') {
@@ -496,24 +492,24 @@
     }
   return dstStr;
 }
-int32_t FXSYS_wcsnicmp(const FX_WCHAR* s1, const FX_WCHAR* s2, size_t count) {
+int32_t FXSYS_wcsnicmp(const wchar_t* s1, const wchar_t* s2, size_t count) {
   ASSERT(s1 && s2 && count > 0);
-  FX_WCHAR wch1 = 0, wch2 = 0;
+  wchar_t wch1 = 0, wch2 = 0;
   while (count-- > 0) {
-    wch1 = (FX_WCHAR)FXSYS_tolower(*s1++);
-    wch2 = (FX_WCHAR)FXSYS_tolower(*s2++);
+    wch1 = (wchar_t)FXSYS_tolower(*s1++);
+    wch2 = (wchar_t)FXSYS_tolower(*s2++);
     if (wch1 != wch2) {
       break;
     }
   }
   return wch1 - wch2;
 }
-int32_t FXSYS_strnicmp(const FX_CHAR* s1, const FX_CHAR* s2, size_t count) {
+int32_t FXSYS_strnicmp(const char* s1, const char* s2, size_t count) {
   ASSERT(s1 && s2 && count > 0);
-  FX_CHAR ch1 = 0, ch2 = 0;
+  char ch1 = 0, ch2 = 0;
   while (count-- > 0) {
-    ch1 = (FX_CHAR)FXSYS_tolower(*s1++);
-    ch2 = (FX_CHAR)FXSYS_tolower(*s2++);
+    ch1 = (char)FXSYS_tolower(*s1++);
+    ch2 = (char)FXSYS_tolower(*s2++);
     if (ch1 != ch2) {
       break;
     }
@@ -652,7 +648,7 @@
 }
 
 #ifdef PDF_ENABLE_XFA
-static const FX_CHAR gs_FX_pHexChars[] = "0123456789ABCDEF";
+static const char gs_FX_pHexChars[] = "0123456789ABCDEF";
 void FX_GUID_CreateV4(FX_GUID* pGUID) {
   FX_Random_GenerateMT((uint32_t*)pGUID, 4);
   uint8_t& b = ((uint8_t*)pGUID)[6];
@@ -661,7 +657,7 @@
 void FX_GUID_ToString(const FX_GUID* pGUID,
                       CFX_ByteString& bsStr,
                       bool bSeparator) {
-  FX_CHAR* pBuf = bsStr.GetBuffer(40);
+  char* pBuf = bsStr.GetBuffer(40);
   uint8_t b;
   for (int32_t i = 0; i < 16; i++) {
     b = ((const uint8_t*)pGUID)[i];
diff --git a/core/fxcrt/fx_stream.h b/core/fxcrt/fx_stream.h
index 2f4b5ad..4a89a34 100644
--- a/core/fxcrt/fx_stream.h
+++ b/core/fxcrt/fx_stream.h
@@ -38,12 +38,12 @@
 #define FX_FILESIZE off_t
 #endif  // _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
 
-FX_FileHandle* FX_OpenFolder(const FX_CHAR* path);
+FX_FileHandle* FX_OpenFolder(const char* path);
 bool FX_GetNextFile(FX_FileHandle* handle,
                     CFX_ByteString* filename,
                     bool* bFolder);
 void FX_CloseFolder(FX_FileHandle* handle);
-FX_WCHAR FX_GetFolderSeparator();
+wchar_t FX_GetFolderSeparator();
 
 #define FX_FILEMODE_Write 0
 #define FX_FILEMODE_ReadOnly 1
@@ -76,7 +76,7 @@
 class IFX_SeekableReadStream : public IFX_ReadStream {
  public:
   static CFX_RetainPtr<IFX_SeekableReadStream> CreateFromFilename(
-      const FX_CHAR* filename);
+      const char* filename);
 
   // IFX_ReadStream:
   bool IsEOF() override;
@@ -91,11 +91,11 @@
                            public IFX_SeekableWriteStream {
  public:
   static CFX_RetainPtr<IFX_SeekableStream> CreateFromFilename(
-      const FX_CHAR* filename,
+      const char* filename,
       uint32_t dwModes);
 
   static CFX_RetainPtr<IFX_SeekableStream> CreateFromFilename(
-      const FX_WCHAR* filename,
+      const wchar_t* filename,
       uint32_t dwModes);
 
   // IFX_SeekableReadStream:
diff --git a/core/fxcrt/fx_string.h b/core/fxcrt/fx_string.h
index cd93f27..01be6a1 100644
--- a/core/fxcrt/fx_string.h
+++ b/core/fxcrt/fx_string.h
@@ -21,8 +21,8 @@
 class CFX_ByteString;
 class CFX_WideString;
 
-using CFX_ByteStringC = CFX_StringCTemplate<FX_CHAR>;
-using CFX_WideStringC = CFX_StringCTemplate<FX_WCHAR>;
+using CFX_ByteStringC = CFX_StringCTemplate<char>;
+using CFX_WideStringC = CFX_StringCTemplate<wchar_t>;
 
 #define FXBSTR_ID(c1, c2, c3, c4)                                      \
   (((uint32_t)c1 << 24) | ((uint32_t)c2 << 16) | ((uint32_t)c3 << 8) | \
@@ -32,7 +32,7 @@
 // avoids the cost of std::string's iterator stability guarantees.
 class CFX_ByteString {
  public:
-  using CharType = FX_CHAR;
+  using CharType = char;
 
   CFX_ByteString();
   CFX_ByteString(const CFX_ByteString& other);
@@ -42,9 +42,9 @@
   // NOLINTNEXTLINE(runtime/explicit)
   CFX_ByteString(char ch);
   // NOLINTNEXTLINE(runtime/explicit)
-  CFX_ByteString(const FX_CHAR* ptr);
+  CFX_ByteString(const char* ptr);
 
-  CFX_ByteString(const FX_CHAR* ptr, FX_STRSIZE len);
+  CFX_ByteString(const char* ptr, FX_STRSIZE len);
   CFX_ByteString(const uint8_t* ptr, FX_STRSIZE len);
 
   explicit CFX_ByteString(const CFX_ByteStringC& bstrc);
@@ -54,12 +54,12 @@
 
   void clear() { m_pData.Reset(); }
 
-  static CFX_ByteString FromUnicode(const FX_WCHAR* ptr, FX_STRSIZE len = -1);
+  static CFX_ByteString FromUnicode(const wchar_t* ptr, FX_STRSIZE len = -1);
   static CFX_ByteString FromUnicode(const CFX_WideString& str);
 
   // Explicit conversion to C-style string.
   // Note: Any subsequent modification of |this| will invalidate the result.
-  const FX_CHAR* c_str() const { return m_pData ? m_pData->m_String : ""; }
+  const char* c_str() const { return m_pData ? m_pData->m_String : ""; }
 
   // Explicit conversion to uint8_t*.
   // Note: Any subsequent modification of |this| will invalidate the result.
@@ -92,12 +92,12 @@
 
   bool operator<(const CFX_ByteString& str) const;
 
-  const CFX_ByteString& operator=(const FX_CHAR* str);
+  const CFX_ByteString& operator=(const char* str);
   const CFX_ByteString& operator=(const CFX_ByteStringC& bstrc);
   const CFX_ByteString& operator=(const CFX_ByteString& stringSrc);
 
-  const CFX_ByteString& operator+=(FX_CHAR ch);
-  const CFX_ByteString& operator+=(const FX_CHAR* str);
+  const CFX_ByteString& operator+=(char ch);
+  const CFX_ByteString& operator+=(const char* str);
   const CFX_ByteString& operator+=(const CFX_ByteString& str);
   const CFX_ByteString& operator+=(const CFX_ByteStringC& bstrc);
 
@@ -109,15 +109,15 @@
     return m_pData ? m_pData->m_String[nIndex] : 0;
   }
 
-  void SetAt(FX_STRSIZE nIndex, FX_CHAR ch);
-  FX_STRSIZE Insert(FX_STRSIZE index, FX_CHAR ch);
+  void SetAt(FX_STRSIZE nIndex, char ch);
+  FX_STRSIZE Insert(FX_STRSIZE index, char ch);
   FX_STRSIZE Delete(FX_STRSIZE index, FX_STRSIZE count = 1);
 
-  void Format(const FX_CHAR* lpszFormat, ...);
-  void FormatV(const FX_CHAR* lpszFormat, va_list argList);
+  void Format(const char* lpszFormat, ...);
+  void FormatV(const char* lpszFormat, va_list argList);
 
   void Reserve(FX_STRSIZE len);
-  FX_CHAR* GetBuffer(FX_STRSIZE len);
+  char* GetBuffer(FX_STRSIZE len);
   void ReleaseBuffer(FX_STRSIZE len = -1);
 
   CFX_ByteString Mid(FX_STRSIZE first) const;
@@ -126,24 +126,24 @@
   CFX_ByteString Right(FX_STRSIZE count) const;
 
   FX_STRSIZE Find(const CFX_ByteStringC& lpszSub, FX_STRSIZE start = 0) const;
-  FX_STRSIZE Find(FX_CHAR ch, FX_STRSIZE start = 0) const;
-  FX_STRSIZE ReverseFind(FX_CHAR ch) const;
+  FX_STRSIZE Find(char ch, FX_STRSIZE start = 0) const;
+  FX_STRSIZE ReverseFind(char ch) const;
 
   void MakeLower();
   void MakeUpper();
 
   void TrimRight();
-  void TrimRight(FX_CHAR chTarget);
+  void TrimRight(char chTarget);
   void TrimRight(const CFX_ByteStringC& lpszTargets);
 
   void TrimLeft();
-  void TrimLeft(FX_CHAR chTarget);
+  void TrimLeft(char chTarget);
   void TrimLeft(const CFX_ByteStringC& lpszTargets);
 
   FX_STRSIZE Replace(const CFX_ByteStringC& lpszOld,
                      const CFX_ByteStringC& lpszNew);
 
-  FX_STRSIZE Remove(FX_CHAR ch);
+  FX_STRSIZE Remove(char ch);
 
   CFX_WideString UTF8Decode() const;
 
@@ -157,15 +157,15 @@
   static CFX_ByteString FormatFloat(FX_FLOAT f, int precision = 0);
 
  protected:
-  using StringData = CFX_StringDataTemplate<FX_CHAR>;
+  using StringData = CFX_StringDataTemplate<char>;
 
   void ReallocBeforeWrite(FX_STRSIZE nNewLen);
   void AllocBeforeWrite(FX_STRSIZE nNewLen);
   void AllocCopy(CFX_ByteString& dest,
                  FX_STRSIZE nCopyLen,
                  FX_STRSIZE nCopyIndex) const;
-  void AssignCopy(const FX_CHAR* pSrcData, FX_STRSIZE nSrcLen);
-  void Concat(const FX_CHAR* lpszSrcData, FX_STRSIZE nSrcLen);
+  void AssignCopy(const char* pSrcData, FX_STRSIZE nSrcLen);
+  void Concat(const char* lpszSrcData, FX_STRSIZE nSrcLen);
 
   CFX_RetainPtr<StringData> m_pData;
 
@@ -190,36 +190,32 @@
                                 const CFX_ByteStringC& str2) {
   return CFX_ByteString(str1, str2);
 }
-inline CFX_ByteString operator+(const CFX_ByteStringC& str1,
-                                const FX_CHAR* str2) {
+inline CFX_ByteString operator+(const CFX_ByteStringC& str1, const char* str2) {
   return CFX_ByteString(str1, str2);
 }
-inline CFX_ByteString operator+(const FX_CHAR* str1,
-                                const CFX_ByteStringC& str2) {
+inline CFX_ByteString operator+(const char* str1, const CFX_ByteStringC& str2) {
   return CFX_ByteString(str1, str2);
 }
-inline CFX_ByteString operator+(const CFX_ByteStringC& str1, FX_CHAR ch) {
+inline CFX_ByteString operator+(const CFX_ByteStringC& str1, char ch) {
   return CFX_ByteString(str1, CFX_ByteStringC(ch));
 }
-inline CFX_ByteString operator+(FX_CHAR ch, const CFX_ByteStringC& str2) {
+inline CFX_ByteString operator+(char ch, const CFX_ByteStringC& str2) {
   return CFX_ByteString(ch, str2);
 }
 inline CFX_ByteString operator+(const CFX_ByteString& str1,
                                 const CFX_ByteString& str2) {
   return CFX_ByteString(str1.AsStringC(), str2.AsStringC());
 }
-inline CFX_ByteString operator+(const CFX_ByteString& str1, FX_CHAR ch) {
+inline CFX_ByteString operator+(const CFX_ByteString& str1, char ch) {
   return CFX_ByteString(str1.AsStringC(), CFX_ByteStringC(ch));
 }
-inline CFX_ByteString operator+(FX_CHAR ch, const CFX_ByteString& str2) {
+inline CFX_ByteString operator+(char ch, const CFX_ByteString& str2) {
   return CFX_ByteString(ch, str2.AsStringC());
 }
-inline CFX_ByteString operator+(const CFX_ByteString& str1,
-                                const FX_CHAR* str2) {
+inline CFX_ByteString operator+(const CFX_ByteString& str1, const char* str2) {
   return CFX_ByteString(str1.AsStringC(), str2);
 }
-inline CFX_ByteString operator+(const FX_CHAR* str1,
-                                const CFX_ByteString& str2) {
+inline CFX_ByteString operator+(const char* str1, const CFX_ByteString& str2) {
   return CFX_ByteString(str1, str2.AsStringC());
 }
 inline CFX_ByteString operator+(const CFX_ByteString& str1,
@@ -235,7 +231,7 @@
 // avoids the cost of std::string's iterator stability guarantees.
 class CFX_WideString {
  public:
-  using CharType = FX_WCHAR;
+  using CharType = wchar_t;
 
   CFX_WideString();
   CFX_WideString(const CFX_WideString& other);
@@ -243,11 +239,11 @@
 
   // Deliberately implicit to avoid calling on every string literal.
   // NOLINTNEXTLINE(runtime/explicit)
-  CFX_WideString(FX_WCHAR ch);
+  CFX_WideString(wchar_t ch);
   // NOLINTNEXTLINE(runtime/explicit)
-  CFX_WideString(const FX_WCHAR* ptr);
+  CFX_WideString(const wchar_t* ptr);
 
-  CFX_WideString(const FX_WCHAR* ptr, FX_STRSIZE len);
+  CFX_WideString(const wchar_t* ptr, FX_STRSIZE len);
 
   explicit CFX_WideString(const CFX_WideStringC& str);
   CFX_WideString(const CFX_WideStringC& str1, const CFX_WideStringC& str2);
@@ -265,7 +261,7 @@
 
   // Explicit conversion to C-style wide string.
   // Note: Any subsequent modification of |this| will invalidate the result.
-  const FX_WCHAR* c_str() const { return m_pData ? m_pData->m_String : L""; }
+  const wchar_t* c_str() const { return m_pData ? m_pData->m_String : L""; }
 
   // Explicit conversion to CFX_WideStringC.
   // Note: Any subsequent modification of |this| will invalidate the result.
@@ -278,12 +274,12 @@
   FX_STRSIZE GetLength() const { return m_pData ? m_pData->m_nDataLength : 0; }
   bool IsEmpty() const { return !GetLength(); }
 
-  const CFX_WideString& operator=(const FX_WCHAR* str);
+  const CFX_WideString& operator=(const wchar_t* str);
   const CFX_WideString& operator=(const CFX_WideString& stringSrc);
   const CFX_WideString& operator=(const CFX_WideStringC& stringSrc);
 
-  const CFX_WideString& operator+=(const FX_WCHAR* str);
-  const CFX_WideString& operator+=(FX_WCHAR ch);
+  const CFX_WideString& operator+=(const wchar_t* str);
+  const CFX_WideString& operator+=(wchar_t ch);
   const CFX_WideString& operator+=(const CFX_WideString& str);
   const CFX_WideString& operator+=(const CFX_WideStringC& str);
 
@@ -299,67 +295,67 @@
 
   bool operator<(const CFX_WideString& str) const;
 
-  FX_WCHAR GetAt(FX_STRSIZE nIndex) const {
+  wchar_t GetAt(FX_STRSIZE nIndex) const {
     return m_pData ? m_pData->m_String[nIndex] : 0;
   }
 
-  FX_WCHAR operator[](FX_STRSIZE nIndex) const {
+  wchar_t operator[](FX_STRSIZE nIndex) const {
     return m_pData ? m_pData->m_String[nIndex] : 0;
   }
 
-  void SetAt(FX_STRSIZE nIndex, FX_WCHAR ch);
+  void SetAt(FX_STRSIZE nIndex, wchar_t ch);
 
-  int Compare(const FX_WCHAR* str) const;
+  int Compare(const wchar_t* str) const;
   int Compare(const CFX_WideString& str) const;
-  int CompareNoCase(const FX_WCHAR* str) const;
+  int CompareNoCase(const wchar_t* str) const;
 
   CFX_WideString Mid(FX_STRSIZE first) const;
   CFX_WideString Mid(FX_STRSIZE first, FX_STRSIZE count) const;
   CFX_WideString Left(FX_STRSIZE count) const;
   CFX_WideString Right(FX_STRSIZE count) const;
 
-  FX_STRSIZE Insert(FX_STRSIZE index, FX_WCHAR ch);
+  FX_STRSIZE Insert(FX_STRSIZE index, wchar_t ch);
   FX_STRSIZE Delete(FX_STRSIZE index, FX_STRSIZE count = 1);
 
-  void Format(const FX_WCHAR* lpszFormat, ...);
-  void FormatV(const FX_WCHAR* lpszFormat, va_list argList);
+  void Format(const wchar_t* lpszFormat, ...);
+  void FormatV(const wchar_t* lpszFormat, va_list argList);
 
   void MakeLower();
   void MakeUpper();
 
   void TrimRight();
-  void TrimRight(FX_WCHAR chTarget);
+  void TrimRight(wchar_t chTarget);
   void TrimRight(const CFX_WideStringC& pTargets);
 
   void TrimLeft();
-  void TrimLeft(FX_WCHAR chTarget);
+  void TrimLeft(wchar_t chTarget);
   void TrimLeft(const CFX_WideStringC& pTargets);
 
   void Reserve(FX_STRSIZE len);
-  FX_WCHAR* GetBuffer(FX_STRSIZE len);
+  wchar_t* GetBuffer(FX_STRSIZE len);
   void ReleaseBuffer(FX_STRSIZE len = -1);
 
   int GetInteger() const;
   FX_FLOAT GetFloat() const;
 
   FX_STRSIZE Find(const CFX_WideStringC& pSub, FX_STRSIZE start = 0) const;
-  FX_STRSIZE Find(FX_WCHAR ch, FX_STRSIZE start = 0) const;
+  FX_STRSIZE Find(wchar_t ch, FX_STRSIZE start = 0) const;
   FX_STRSIZE Replace(const CFX_WideStringC& pOld, const CFX_WideStringC& pNew);
-  FX_STRSIZE Remove(FX_WCHAR ch);
+  FX_STRSIZE Remove(wchar_t ch);
 
   CFX_ByteString UTF8Encode() const;
   CFX_ByteString UTF16LE_Encode() const;
 
  protected:
-  using StringData = CFX_StringDataTemplate<FX_WCHAR>;
+  using StringData = CFX_StringDataTemplate<wchar_t>;
 
   void ReallocBeforeWrite(FX_STRSIZE nLen);
   void AllocBeforeWrite(FX_STRSIZE nLen);
   void AllocCopy(CFX_WideString& dest,
                  FX_STRSIZE nCopyLen,
                  FX_STRSIZE nCopyIndex) const;
-  void AssignCopy(const FX_WCHAR* pSrcData, FX_STRSIZE nSrcLen);
-  void Concat(const FX_WCHAR* lpszSrcData, FX_STRSIZE nSrcLen);
+  void AssignCopy(const wchar_t* pSrcData, FX_STRSIZE nSrcLen);
+  void Concat(const wchar_t* lpszSrcData, FX_STRSIZE nSrcLen);
 
   CFX_RetainPtr<StringData> m_pData;
 
@@ -372,34 +368,34 @@
   return CFX_WideString(str1, str2);
 }
 inline CFX_WideString operator+(const CFX_WideStringC& str1,
-                                const FX_WCHAR* str2) {
+                                const wchar_t* str2) {
   return CFX_WideString(str1, str2);
 }
-inline CFX_WideString operator+(const FX_WCHAR* str1,
+inline CFX_WideString operator+(const wchar_t* str1,
                                 const CFX_WideStringC& str2) {
   return CFX_WideString(str1, str2);
 }
-inline CFX_WideString operator+(const CFX_WideStringC& str1, FX_WCHAR ch) {
+inline CFX_WideString operator+(const CFX_WideStringC& str1, wchar_t ch) {
   return CFX_WideString(str1, CFX_WideStringC(ch));
 }
-inline CFX_WideString operator+(FX_WCHAR ch, const CFX_WideStringC& str2) {
+inline CFX_WideString operator+(wchar_t ch, const CFX_WideStringC& str2) {
   return CFX_WideString(ch, str2);
 }
 inline CFX_WideString operator+(const CFX_WideString& str1,
                                 const CFX_WideString& str2) {
   return CFX_WideString(str1.AsStringC(), str2.AsStringC());
 }
-inline CFX_WideString operator+(const CFX_WideString& str1, FX_WCHAR ch) {
+inline CFX_WideString operator+(const CFX_WideString& str1, wchar_t ch) {
   return CFX_WideString(str1.AsStringC(), CFX_WideStringC(ch));
 }
-inline CFX_WideString operator+(FX_WCHAR ch, const CFX_WideString& str2) {
+inline CFX_WideString operator+(wchar_t ch, const CFX_WideString& str2) {
   return CFX_WideString(ch, str2.AsStringC());
 }
 inline CFX_WideString operator+(const CFX_WideString& str1,
-                                const FX_WCHAR* str2) {
+                                const wchar_t* str2) {
   return CFX_WideString(str1.AsStringC(), str2);
 }
-inline CFX_WideString operator+(const FX_WCHAR* str1,
+inline CFX_WideString operator+(const wchar_t* str1,
                                 const CFX_WideString& str2) {
   return CFX_WideString(str1, str2.AsStringC());
 }
@@ -430,7 +426,7 @@
   return FX_atof(FX_UTF8Encode(wsStr).c_str());
 }
 bool FX_atonum(const CFX_ByteStringC& str, void* pData);
-FX_STRSIZE FX_ftoa(FX_FLOAT f, FX_CHAR* buf);
+FX_STRSIZE FX_ftoa(FX_FLOAT f, char* buf);
 
 uint32_t FX_HashCode_GetA(const CFX_ByteStringC& str, bool bIgnoreCase);
 uint32_t FX_HashCode_GetW(const CFX_WideStringC& str, bool bIgnoreCase);
diff --git a/core/fxcrt/fx_system.h b/core/fxcrt/fx_system.h
index c31bef9..a087898 100644
--- a/core/fxcrt/fx_system.h
+++ b/core/fxcrt/fx_system.h
@@ -70,8 +70,6 @@
 typedef void* FX_POSITION;  // Keep until fxcrt containers gone
 typedef float FX_FLOAT;     // Keep, allow upgrade to doubles.
 typedef double FX_DOUBLE;   // Keep, allow downgrade to floats.
-typedef char FX_CHAR;       // Keep, questionable signedness.
-typedef wchar_t FX_WCHAR;   // Keep, maybe bad platform wchars.
 
 #define IsFloatZero(f) ((f) < 0.0001 && (f) > -0.0001)
 #define IsFloatBigger(fa, fb) ((fa) > (fb) && !IsFloatZero((fa) - (fb)))
@@ -141,7 +139,7 @@
 #define FXSYS_wfopen _wfopen
 #endif
 #else
-FXSYS_FILE* FXSYS_wfopen(const FX_WCHAR* filename, const FX_WCHAR* mode);
+FXSYS_FILE* FXSYS_wfopen(const wchar_t* filename, const wchar_t* mode);
 #endif  // _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
 
 #ifdef __cplusplus
@@ -153,27 +151,27 @@
 #define FXSYS_wcslen(ptr) pdfium::base::checked_cast<FX_STRSIZE>(wcslen(ptr))
 
 // Overloaded functions for C++ templates
-inline FX_STRSIZE FXSYS_len(const FX_CHAR* ptr) {
+inline FX_STRSIZE FXSYS_len(const char* ptr) {
   return FXSYS_strlen(ptr);
 }
 
-inline FX_STRSIZE FXSYS_len(const FX_WCHAR* ptr) {
+inline FX_STRSIZE FXSYS_len(const wchar_t* ptr) {
   return FXSYS_wcslen(ptr);
 }
 
-inline int FXSYS_cmp(const FX_CHAR* ptr1, const FX_CHAR* ptr2, size_t len) {
+inline int FXSYS_cmp(const char* ptr1, const char* ptr2, size_t len) {
   return memcmp(ptr1, ptr2, len);
 }
 
-inline int FXSYS_cmp(const FX_WCHAR* ptr1, const FX_WCHAR* ptr2, size_t len) {
+inline int FXSYS_cmp(const wchar_t* ptr1, const wchar_t* ptr2, size_t len) {
   return wmemcmp(ptr1, ptr2, len);
 }
 
-inline const FX_CHAR* FXSYS_chr(const FX_CHAR* ptr, FX_CHAR ch, size_t len) {
-  return reinterpret_cast<const FX_CHAR*>(memchr(ptr, ch, len));
+inline const char* FXSYS_chr(const char* ptr, char ch, size_t len) {
+  return reinterpret_cast<const char*>(memchr(ptr, ch, len));
 }
 
-inline const FX_WCHAR* FXSYS_chr(const FX_WCHAR* ptr, FX_WCHAR ch, size_t len) {
+inline const wchar_t* FXSYS_chr(const wchar_t* ptr, wchar_t ch, size_t len) {
   return wmemchr(ptr, ch, len);
 }
 
@@ -276,12 +274,12 @@
 #define FXSYS_LOBYTE(word) ((uint8_t)(word))
 #define FXSYS_HIWORD(dword) ((uint16_t)((dword) >> 16))
 #define FXSYS_LOWORD(dword) ((uint16_t)(dword))
-int32_t FXSYS_atoi(const FX_CHAR* str);
-uint32_t FXSYS_atoui(const FX_CHAR* str);
-int32_t FXSYS_wtoi(const FX_WCHAR* str);
-int64_t FXSYS_atoi64(const FX_CHAR* str);
-int64_t FXSYS_wtoi64(const FX_WCHAR* str);
-const FX_CHAR* FXSYS_i64toa(int64_t value, FX_CHAR* str, int radix);
+int32_t FXSYS_atoi(const char* str);
+uint32_t FXSYS_atoui(const char* str);
+int32_t FXSYS_wtoi(const wchar_t* str);
+int64_t FXSYS_atoi64(const char* str);
+int64_t FXSYS_wtoi64(const wchar_t* str);
+const char* FXSYS_i64toa(int64_t value, char* str, int radix);
 int FXSYS_round(FX_FLOAT f);
 #define FXSYS_sqrt2(a, b) (FX_FLOAT) FXSYS_sqrt((a) * (a) + (b) * (b))
 #ifdef __cplusplus
diff --git a/core/fxcrt/fx_system_unittest.cpp b/core/fxcrt/fx_system_unittest.cpp
index 4ab37c7..def0043 100644
--- a/core/fxcrt/fx_system_unittest.cpp
+++ b/core/fxcrt/fx_system_unittest.cpp
@@ -16,11 +16,11 @@
 
 namespace {
 
-const FX_CHAR kSentinel = 0x7f;
+const char kSentinel = 0x7f;
 
 void Check32BitBase16Itoa(int32_t input, const char* expected_output) {
   const size_t kBufLen = 11;  // "-" + 8 digits + NUL + sentinel.
-  FX_CHAR buf[kBufLen];
+  char buf[kBufLen];
   buf[kBufLen - 1] = kSentinel;
   FXSYS_itoa(input, buf, 16);
   EXPECT_EQ(std::string(expected_output), buf);
@@ -29,7 +29,7 @@
 
 void Check32BitBase10Itoa(int32_t input, const char* expected_output) {
   const size_t kBufLen = 13;  // "-" + 10 digits + NUL + sentinel.
-  FX_CHAR buf[kBufLen];
+  char buf[kBufLen];
   buf[kBufLen - 1] = kSentinel;
   FXSYS_itoa(input, buf, 10);
   EXPECT_EQ(std::string(expected_output), buf);
@@ -38,7 +38,7 @@
 
 void Check32BitBase2Itoa(int32_t input, const char* expected_output) {
   const size_t kBufLen = 35;  // "-" + 32 digits + NUL + sentinel.
-  FX_CHAR buf[kBufLen];
+  char buf[kBufLen];
   buf[kBufLen - 1] = kSentinel;
   FXSYS_itoa(input, buf, 2);
   EXPECT_EQ(std::string(expected_output), buf);
@@ -47,7 +47,7 @@
 
 void Check64BitBase16Itoa(int64_t input, const char* expected_output) {
   const size_t kBufLen = 19;  // "-" + 16 digits + NUL + sentinel.
-  FX_CHAR buf[kBufLen];
+  char buf[kBufLen];
   buf[kBufLen - 1] = kSentinel;
   FXSYS_i64toa(input, buf, 16);
   EXPECT_EQ(std::string(expected_output), buf);
@@ -56,7 +56,7 @@
 
 void Check64BitBase10Itoa(int64_t input, const char* expected_output) {
   const size_t kBufLen = 22;  // "-" + 19 digits + NUL + sentinel.
-  FX_CHAR buf[kBufLen];
+  char buf[kBufLen];
   buf[kBufLen - 1] = kSentinel;
   FXSYS_i64toa(input, buf, 10);
   EXPECT_EQ(std::string(expected_output), buf);
@@ -65,7 +65,7 @@
 
 void Check64BitBase2Itoa(int64_t input, const char* expected_output) {
   const size_t kBufLen = 67;  // "-" + 64 digits + NUL + sentinel.
-  FX_CHAR buf[kBufLen];
+  char buf[kBufLen];
   buf[kBufLen - 1] = kSentinel;
   FXSYS_i64toa(input, buf, 2);
   EXPECT_EQ(std::string(expected_output), buf);
@@ -75,7 +75,7 @@
 }  // namespace
 
 TEST(fxcrt, FXSYS_itoa_InvalidRadix) {
-  FX_CHAR buf[32];
+  char buf[32];
 
   FXSYS_itoa(42, buf, 17);  // Ours stops at 16.
   EXPECT_EQ(std::string(""), buf);
@@ -115,7 +115,7 @@
 }
 
 TEST(fxcrt, FXSYS_i64toa_InvalidRadix) {
-  FX_CHAR buf[32];
+  char buf[32];
 
   FXSYS_i64toa(42, buf, 17);  // Ours stops at 16.
   EXPECT_EQ(std::string(""), buf);
diff --git a/core/fxcrt/fx_ucd.h b/core/fxcrt/fx_ucd.h
index 488c275..b96d09a 100644
--- a/core/fxcrt/fx_ucd.h
+++ b/core/fxcrt/fx_ucd.h
@@ -45,13 +45,13 @@
 extern const uint16_t kFXTextLayoutBidiMirror[];
 extern const size_t kFXTextLayoutBidiMirrorSize;
 
-uint32_t FX_GetUnicodeProperties(FX_WCHAR wch);
-FX_WCHAR FX_GetMirrorChar(FX_WCHAR wch, bool bRTL, bool bVertical);
+uint32_t FX_GetUnicodeProperties(wchar_t wch);
+wchar_t FX_GetMirrorChar(wchar_t wch, bool bRTL, bool bVertical);
 
 #ifdef PDF_ENABLE_XFA
 
 // As defined in http://www.unicode.org/reports/tr14/
-enum FX_CHARBREAKPROP {
+enum FXCHAR_BREAKPROP {
   FX_CBP_OP = 0,   // Opening Punctuation
   FX_CBP_CL = 1,   // Closing Punctuation
   FX_CBP_QU = 2,   // Ambiguous Quotation
@@ -114,10 +114,10 @@
   return static_cast<FX_CHARTYPE>(prop & FX_CHARTYPEBITSMASK);
 }
 
-FX_WCHAR FX_GetMirrorChar(FX_WCHAR wch,
-                          uint32_t dwProps,
-                          bool bRTL,
-                          bool bVertical);
+wchar_t FX_GetMirrorChar(wchar_t wch,
+                         uint32_t dwProps,
+                         bool bRTL,
+                         bool bVertical);
 
 #endif  // PDF_ENABLE_XFA
 
diff --git a/core/fxcrt/fx_unicode.cpp b/core/fxcrt/fx_unicode.cpp
index 44fa8e7..fce826d 100644
--- a/core/fxcrt/fx_unicode.cpp
+++ b/core/fxcrt/fx_unicode.cpp
@@ -6,14 +6,14 @@
 
 #include "core/fxcrt/fx_ucd.h"
 
-uint32_t FX_GetUnicodeProperties(FX_WCHAR wch) {
+uint32_t FX_GetUnicodeProperties(wchar_t wch) {
   size_t idx = static_cast<size_t>(wch);
   if (idx < kTextLayoutCodePropertiesSize)
     return kTextLayoutCodeProperties[(uint16_t)wch];
   return 0;
 }
 
-FX_WCHAR FX_GetMirrorChar(FX_WCHAR wch, bool bRTL, bool bVertical) {
+wchar_t FX_GetMirrorChar(wchar_t wch, bool bRTL, bool bVertical) {
   uint32_t dwProps = FX_GetUnicodeProperties(wch);
   uint32_t dwTemp = (dwProps & 0xFF800000);
   if (bRTL && dwTemp < 0xFF800000) {
@@ -35,10 +35,10 @@
 }
 
 #ifdef PDF_ENABLE_XFA
-FX_WCHAR FX_GetMirrorChar(FX_WCHAR wch,
-                          uint32_t dwProps,
-                          bool bRTL,
-                          bool bVertical) {
+wchar_t FX_GetMirrorChar(wchar_t wch,
+                         uint32_t dwProps,
+                         bool bRTL,
+                         bool bVertical) {
   uint32_t dwTemp = (dwProps & 0xFF800000);
   if (bRTL && dwTemp < 0xFF800000) {
     size_t idx = dwTemp >> 23;
diff --git a/core/fxcrt/fx_xml_parser.cpp b/core/fxcrt/fx_xml_parser.cpp
index 761aae7..b81ae4e 100644
--- a/core/fxcrt/fx_xml_parser.cpp
+++ b/core/fxcrt/fx_xml_parser.cpp
@@ -367,7 +367,7 @@
             break;
           }
           if (g_FXCRT_XML_IsDigital(ch))
-            code = code * 10 + FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(ch));
+            code = code * 10 + FXSYS_toDecimalDigit(static_cast<wchar_t>(ch));
           break;
         case 4:
           m_dwIndex++;
@@ -380,7 +380,7 @@
           if (nHex) {
             if (nHex == FXCRTM_XML_CHARTYPE_HexDigital) {
               code =
-                  (code << 4) + FXSYS_toDecimalDigit(static_cast<FX_WCHAR>(ch));
+                  (code << 4) + FXSYS_toDecimalDigit(static_cast<wchar_t>(ch));
             } else if (nHex == FXCRTM_XML_CHARTYPE_HexLowerLetter) {
               code = (code << 4) + ch - 87;
             } else {
diff --git a/core/fxge/android/cfpf_skiafont.cpp b/core/fxge/android/cfpf_skiafont.cpp
index 5e11efa..e00aa84 100644
--- a/core/fxge/android/cfpf_skiafont.cpp
+++ b/core/fxge/android/cfpf_skiafont.cpp
@@ -53,7 +53,7 @@
   return FXFT_Get_Postscript_Name(m_Face);
 }
 
-int32_t CFPF_SkiaFont::GetGlyphIndex(FX_WCHAR wUnicode) {
+int32_t CFPF_SkiaFont::GetGlyphIndex(wchar_t wUnicode) {
   if (!m_Face)
     return wUnicode;
   if (FXFT_Select_Charmap(m_Face, FXFT_ENCODING_UNICODE))
diff --git a/core/fxge/android/cfpf_skiafont.h b/core/fxge/android/cfpf_skiafont.h
index b72c111..657ced8 100644
--- a/core/fxge/android/cfpf_skiafont.h
+++ b/core/fxge/android/cfpf_skiafont.h
@@ -25,7 +25,7 @@
   CFX_ByteString GetPsName();
   uint32_t GetFontStyle() const { return m_dwStyle; }
   uint8_t GetCharset() const { return m_uCharset; }
-  int32_t GetGlyphIndex(FX_WCHAR wUnicode);
+  int32_t GetGlyphIndex(wchar_t wUnicode);
   int32_t GetGlyphWidth(int32_t iGlyphIndex);
   int32_t GetAscent() const;
   int32_t GetDescent() const;
diff --git a/core/fxge/android/cfpf_skiafontdescriptor.h b/core/fxge/android/cfpf_skiafontdescriptor.h
index 57b8540..56f8a34 100644
--- a/core/fxge/android/cfpf_skiafontdescriptor.h
+++ b/core/fxge/android/cfpf_skiafontdescriptor.h
@@ -23,14 +23,14 @@
 
   virtual int32_t GetType() const { return FPF_SKIAFONTTYPE_Unknown; }
 
-  void SetFamily(const FX_CHAR* pFamily) {
+  void SetFamily(const char* pFamily) {
     FX_Free(m_pFamily);
     int32_t iSize = FXSYS_strlen(pFamily);
-    m_pFamily = FX_Alloc(FX_CHAR, iSize + 1);
-    FXSYS_memcpy(m_pFamily, pFamily, iSize * sizeof(FX_CHAR));
+    m_pFamily = FX_Alloc(char, iSize + 1);
+    FXSYS_memcpy(m_pFamily, pFamily, iSize * sizeof(char));
     m_pFamily[iSize] = 0;
   }
-  FX_CHAR* m_pFamily;
+  char* m_pFamily;
   uint32_t m_dwStyle;
   int32_t m_iFaceIndex;
   uint32_t m_dwCharsets;
diff --git a/core/fxge/android/cfpf_skiafontmgr.cpp b/core/fxge/android/cfpf_skiafontmgr.cpp
index e3511be..00d989e 100644
--- a/core/fxge/android/cfpf_skiafontmgr.cpp
+++ b/core/fxge/android/cfpf_skiafontmgr.cpp
@@ -87,12 +87,12 @@
   return 0;
 }
 
-uint32_t FPF_GetHashCode_StringA(const FX_CHAR* pStr, int32_t iLength) {
+uint32_t FPF_GetHashCode_StringA(const char* pStr, int32_t iLength) {
   if (!pStr)
     return 0;
   if (iLength < 0)
     iLength = FXSYS_strlen(pStr);
-  const FX_CHAR* pStrEnd = pStr + iLength;
+  const char* pStrEnd = pStr + iLength;
   uint32_t uHashCode = 0;
   while (pStr < pStrEnd)
     uHashCode = 31 * uHashCode + FXSYS_tolower(*pStr++);
@@ -160,9 +160,9 @@
 uint32_t FPF_SKIANormalizeFontName(const CFX_ByteStringC& bsfamily) {
   uint32_t dwHash = 0;
   int32_t iLength = bsfamily.GetLength();
-  const FX_CHAR* pBuffer = bsfamily.c_str();
+  const char* pBuffer = bsfamily.c_str();
   for (int32_t i = 0; i < iLength; i++) {
-    FX_CHAR ch = pBuffer[i];
+    char ch = pBuffer[i];
     if (ch == ' ' || ch == '-' || ch == ',')
       continue;
     dwHash = 31 * dwHash + FXSYS_tolower(ch);
diff --git a/core/fxge/android/cfpf_skiapathfont.h b/core/fxge/android/cfpf_skiapathfont.h
index f1cff25..f8ddc6c 100644
--- a/core/fxge/android/cfpf_skiapathfont.h
+++ b/core/fxge/android/cfpf_skiapathfont.h
@@ -20,14 +20,14 @@
   // CFPF_SkiaFontDescriptor
   int32_t GetType() const override { return FPF_SKIAFONTTYPE_Path; }
 
-  void SetPath(const FX_CHAR* pPath) {
+  void SetPath(const char* pPath) {
     FX_Free(m_pPath);
     int32_t iSize = FXSYS_strlen(pPath);
-    m_pPath = FX_Alloc(FX_CHAR, iSize + 1);
-    FXSYS_memcpy(m_pPath, pPath, iSize * sizeof(FX_CHAR));
+    m_pPath = FX_Alloc(char, iSize + 1);
+    FXSYS_memcpy(m_pPath, pPath, iSize * sizeof(char));
     m_pPath[iSize] = 0;
   }
-  FX_CHAR* m_pPath;
+  char* m_pPath;
 };
 
 #endif  // CORE_FXGE_ANDROID_CFPF_SKIAPATHFONT_H_
diff --git a/core/fxge/android/cfx_androidfontinfo.cpp b/core/fxge/android/cfx_androidfontinfo.cpp
index 03a7ffb..6ab9c64 100644
--- a/core/fxge/android/cfx_androidfontinfo.cpp
+++ b/core/fxge/android/cfx_androidfontinfo.cpp
@@ -30,7 +30,7 @@
                                    bool bItalic,
                                    int charset,
                                    int pitch_family,
-                                   const FX_CHAR* face,
+                                   const char* face,
                                    int& iExact) {
   if (!m_pFontMgr)
     return nullptr;
@@ -50,7 +50,7 @@
                                 FPF_MATCHFONT_REPLACEANSI);
 }
 
-void* CFX_AndroidFontInfo::GetFont(const FX_CHAR* face) {
+void* CFX_AndroidFontInfo::GetFont(const char* face) {
   return nullptr;
 }
 
diff --git a/core/fxge/android/cfx_androidfontinfo.h b/core/fxge/android/cfx_androidfontinfo.h
index 94e1db8..076b956 100644
--- a/core/fxge/android/cfx_androidfontinfo.h
+++ b/core/fxge/android/cfx_androidfontinfo.h
@@ -27,9 +27,9 @@
                 bool bItalic,
                 int charset,
                 int pitch_family,
-                const FX_CHAR* face,
+                const char* face,
                 int& bExact) override;
-  void* GetFont(const FX_CHAR* face) override;
+  void* GetFont(const char* face) override;
   uint32_t GetFontData(void* hFont,
                        uint32_t table,
                        uint8_t* buffer,
diff --git a/core/fxge/apple/fx_mac_imp.cpp b/core/fxge/apple/fx_mac_imp.cpp
index c05aea3..2df6e75 100644
--- a/core/fxge/apple/fx_mac_imp.cpp
+++ b/core/fxge/apple/fx_mac_imp.cpp
@@ -14,8 +14,8 @@
 namespace {
 
 const struct {
-  const FX_CHAR* m_pName;
-  const FX_CHAR* m_pSubstName;
+  const char* m_pName;
+  const char* m_pSubstName;
 } g_Base14Substs[] = {
     {"Courier", "Courier New"},
     {"Courier-Bold", "Courier New Bold"},
@@ -41,7 +41,7 @@
                 bool bItalic,
                 int charset,
                 int pitch_family,
-                const FX_CHAR* family,
+                const char* family,
                 int& iExact) override;
 };
 
@@ -61,7 +61,7 @@
                                bool bItalic,
                                int charset,
                                int pitch_family,
-                               const FX_CHAR* cstr_face,
+                               const char* cstr_face,
                                int& iExact) {
   CFX_ByteString face = cstr_face;
   for (size_t i = 0; i < FX_ArraySize(g_Base14Substs); ++i) {
diff --git a/core/fxge/cfx_fontmgr.h b/core/fxge/cfx_fontmgr.h
index 432f34b..b7f2e1a 100644
--- a/core/fxge/cfx_fontmgr.h
+++ b/core/fxge/cfx_fontmgr.h
@@ -43,7 +43,7 @@
                              uint8_t* pData,
                              uint32_t size,
                              int font_offset);
-  FXFT_Face GetFileFace(const FX_CHAR* filename, int face_index);
+  FXFT_Face GetFileFace(const char* filename, int face_index);
   FXFT_Face GetFixedFace(const uint8_t* pData, uint32_t size, int face_index);
   void ReleaseFace(FXFT_Face face);
   void SetSystemFontInfo(std::unique_ptr<IFX_SystemFontInfo> pFontInfo);
diff --git a/core/fxge/cfx_unicodeencodingex.h b/core/fxge/cfx_unicodeencodingex.h
index df2edbe..21deb44 100644
--- a/core/fxge/cfx_unicodeencodingex.h
+++ b/core/fxge/cfx_unicodeencodingex.h
@@ -24,7 +24,7 @@
   // CFX_UnicodeEncoding:
   uint32_t GlyphFromCharCode(uint32_t charcode) override;
 
-  uint32_t CharCodeFromUnicode(FX_WCHAR Unicode) const;
+  uint32_t CharCodeFromUnicode(wchar_t Unicode) const;
 
  private:
   uint32_t m_nEncodingID;
diff --git a/core/fxge/ge/cfx_folderfontinfo.cpp b/core/fxge/ge/cfx_folderfontinfo.cpp
index 776a373..52dfc2d 100644
--- a/core/fxge/ge/cfx_folderfontinfo.cpp
+++ b/core/fxge/ge/cfx_folderfontinfo.cpp
@@ -16,8 +16,8 @@
 namespace {
 
 const struct {
-  const FX_CHAR* m_pName;
-  const FX_CHAR* m_pSubstName;
+  const char* m_pName;
+  const char* m_pSubstName;
 } Base14Substs[] = {
     {"Courier", "Courier New"},
     {"Courier-Bold", "Courier New Bold"},
@@ -275,7 +275,7 @@
                                    bool bItalic,
                                    int charset,
                                    int pitch_family,
-                                   const FX_CHAR* family,
+                                   const char* family,
                                    bool bMatchName) {
   CFX_FontFaceInfo* pFind = nullptr;
   if (charset == FXFONT_ANSI_CHARSET && (pitch_family & FXFONT_FF_FIXEDPITCH))
@@ -306,7 +306,7 @@
                                   bool bItalic,
                                   int charset,
                                   int pitch_family,
-                                  const FX_CHAR* family,
+                                  const char* family,
                                   int& iExact) {
   return nullptr;
 }
@@ -320,7 +320,7 @@
 }
 #endif  // PDF_ENABLE_XFA
 
-void* CFX_FolderFontInfo::GetFont(const FX_CHAR* face) {
+void* CFX_FolderFontInfo::GetFont(const char* face) {
   auto it = m_FontList.find(face);
   return it != m_FontList.end() ? it->second : nullptr;
 }
diff --git a/core/fxge/ge/cfx_folderfontinfo.h b/core/fxge/ge/cfx_folderfontinfo.h
index d031eef..9e9a1a2 100644
--- a/core/fxge/ge/cfx_folderfontinfo.h
+++ b/core/fxge/ge/cfx_folderfontinfo.h
@@ -27,7 +27,7 @@
                 bool bItalic,
                 int charset,
                 int pitch_family,
-                const FX_CHAR* face,
+                const char* face,
                 int& bExact) override;
 #ifdef PDF_ENABLE_XFA
   void* MapFontByUnicode(uint32_t dwUnicode,
@@ -35,7 +35,7 @@
                          bool bItalic,
                          int pitch_family) override;
 #endif  // PDF_ENABLE_XFA
-  void* GetFont(const FX_CHAR* face) override;
+  void* GetFont(const char* face) override;
   uint32_t GetFontData(void* hFont,
                        uint32_t table,
                        uint8_t* buffer,
@@ -56,7 +56,7 @@
                  bool bItalic,
                  int charset,
                  int pitch_family,
-                 const FX_CHAR* family,
+                 const char* family,
                  bool bMatchName);
 
   std::map<CFX_ByteString, CFX_FontFaceInfo*> m_FontList;
diff --git a/core/fxge/ge/cfx_fontmapper.cpp b/core/fxge/ge/cfx_fontmapper.cpp
index 064fc96..622b457 100644
--- a/core/fxge/ge/cfx_fontmapper.cpp
+++ b/core/fxge/ge/cfx_fontmapper.cpp
@@ -25,7 +25,7 @@
 
 const int kNumStandardFonts = 14;
 
-const FX_CHAR* const g_Base14FontNames[kNumStandardFonts] = {
+const char* const g_Base14FontNames[kNumStandardFonts] = {
     "Courier",
     "Courier-Bold",
     "Courier-BoldOblique",
@@ -43,7 +43,7 @@
 };
 
 const struct AltFontName {
-  const FX_CHAR* m_pName;
+  const char* m_pName;
   int m_Index;
 } g_AltFontNames[] = {
     {"Arial", 4},
@@ -138,8 +138,8 @@
 };
 
 const struct AltFontFamily {
-  const FX_CHAR* m_pFontName;
-  const FX_CHAR* m_pFontFamily;
+  const char* m_pFontName;
+  const char* m_pFontFamily;
 } g_AltFontFamilies[] = {
     {"AGaramondPro", "Adobe Garamond Pro"},
     {"BankGothicBT-Medium", "BankGothic Md BT"},
@@ -147,7 +147,7 @@
 };
 
 const struct FX_FontStyle {
-  const FX_CHAR* style;
+  const char* style;
   int32_t len;
 } g_FontStyles[] = {
     {"Bold", 4}, {"Italic", 6}, {"BoldItalic", 10}, {"Reg", 3}, {"Regular", 7},
@@ -167,20 +167,19 @@
 };
 
 int CompareFontFamilyString(const void* key, const void* element) {
-  CFX_ByteString str_key((const FX_CHAR*)key);
+  CFX_ByteString str_key((const char*)key);
   const AltFontFamily* family = reinterpret_cast<const AltFontFamily*>(element);
   if (str_key.Find(family->m_pFontName) != -1)
     return 0;
-  return FXSYS_stricmp(reinterpret_cast<const FX_CHAR*>(key),
-                       family->m_pFontName);
+  return FXSYS_stricmp(reinterpret_cast<const char*>(key), family->m_pFontName);
 }
 
 int CompareString(const void* key, const void* element) {
-  return FXSYS_stricmp(reinterpret_cast<const FX_CHAR*>(key),
+  return FXSYS_stricmp(reinterpret_cast<const char*>(key),
                        reinterpret_cast<const AltFontName*>(element)->m_pName);
 }
 
-CFX_ByteString TT_NormalizeName(const FX_CHAR* family) {
+CFX_ByteString TT_NormalizeName(const char* family) {
   CFX_ByteString norm(family);
   norm.Remove(' ');
   norm.Remove('-');
@@ -223,7 +222,7 @@
   return found ? CFX_ByteString(found->m_pFontFamily) : fontName;
 }
 
-CFX_ByteString ParseStyle(const FX_CHAR* pStyle, int iLen, int iIndex) {
+CFX_ByteString ParseStyle(const char* pStyle, int iLen, int iIndex) {
   CFX_ByteTextBuf buf;
   if (!iLen || iLen <= iIndex)
     return buf.MakeString();
@@ -505,7 +504,7 @@
   }
   if (!style.IsEmpty()) {
     int nLen = style.GetLength();
-    const FX_CHAR* pStyle = style.c_str();
+    const char* pStyle = style.c_str();
     int i = 0;
     bool bFirstItem = true;
     CFX_ByteString buf;
diff --git a/core/fxge/ge/cfx_fontmgr.cpp b/core/fxge/ge/cfx_fontmgr.cpp
index 64f647e..97d1438 100644
--- a/core/fxge/ge/cfx_fontmgr.cpp
+++ b/core/fxge/ge/cfx_fontmgr.cpp
@@ -215,7 +215,7 @@
   return FXFT_Set_Pixel_Sizes(face, 64, 64) ? nullptr : face;
 }
 
-FXFT_Face CFX_FontMgr::GetFileFace(const FX_CHAR* filename, int face_index) {
+FXFT_Face CFX_FontMgr::GetFileFace(const char* filename, int face_index) {
   InitFTLibrary();
   FXFT_Library library = m_FTLibrary;
   FXFT_Face face = nullptr;
diff --git a/core/fxge/ge/cfx_unicodeencodingex.cpp b/core/fxge/ge/cfx_unicodeencodingex.cpp
index c7e3303..cd7625f 100644
--- a/core/fxge/ge/cfx_unicodeencodingex.cpp
+++ b/core/fxge/ge/cfx_unicodeencodingex.cpp
@@ -62,7 +62,7 @@
   return 0;
 }
 
-uint32_t CFX_UnicodeEncodingEx::CharCodeFromUnicode(FX_WCHAR Unicode) const {
+uint32_t CFX_UnicodeEncodingEx::CharCodeFromUnicode(wchar_t Unicode) const {
   if (m_nEncodingID == FXFM_ENCODING_UNICODE ||
       m_nEncodingID == FXFM_ENCODING_MS_SYMBOL) {
     return Unicode;
diff --git a/core/fxge/ge/fx_ge_linux.cpp b/core/fxge/ge/fx_ge_linux.cpp
index e7086bb..502a367 100644
--- a/core/fxge/ge/fx_ge_linux.cpp
+++ b/core/fxge/ge/fx_ge_linux.cpp
@@ -15,7 +15,7 @@
 
 const size_t kLinuxGpNameSize = 6;
 
-const FX_CHAR* const g_LinuxGpFontList[][kLinuxGpNameSize] = {
+const char* const g_LinuxGpFontList[][kLinuxGpNameSize] = {
     {"TakaoPGothic", "VL PGothic", "IPAPGothic", "VL Gothic", "Kochi Gothic",
      "VL Gothic regular"},
     {"TakaoGothic", "VL Gothic", "IPAGothic", "Kochi Gothic", nullptr,
@@ -26,19 +26,19 @@
      "VL Gothic regular"},
 };
 
-const FX_CHAR* const g_LinuxGbFontList[] = {
+const char* const g_LinuxGbFontList[] = {
     "AR PL UMing CN Light", "WenQuanYi Micro Hei", "AR PL UKai CN",
 };
 
-const FX_CHAR* const g_LinuxB5FontList[] = {
+const char* const g_LinuxB5FontList[] = {
     "AR PL UMing TW Light", "WenQuanYi Micro Hei", "AR PL UKai TW",
 };
 
-const FX_CHAR* const g_LinuxHGFontList[] = {
+const char* const g_LinuxHGFontList[] = {
     "UnDotum",
 };
 
-size_t GetJapanesePreference(const FX_CHAR* facearr,
+size_t GetJapanesePreference(const char* facearr,
                              int weight,
                              int pitch_family) {
   CFX_ByteString face = facearr;
@@ -72,7 +72,7 @@
                 bool bItalic,
                 int charset,
                 int pitch_family,
-                const FX_CHAR* family,
+                const char* family,
                 int& iExact) override;
   bool ParseFontCfg(const char** pUserPaths);
 };
@@ -81,7 +81,7 @@
                                  bool bItalic,
                                  int charset,
                                  int pitch_family,
-                                 const FX_CHAR* cstr_face,
+                                 const char* cstr_face,
                                  int& iExact) {
   void* font = GetSubstFont(cstr_face);
   if (font) {
diff --git a/core/fxge/ge/fx_text_int.h b/core/fxge/ge/fx_text_int.h
index 4de6587..8ea01f9 100644
--- a/core/fxge/ge/fx_text_int.h
+++ b/core/fxge/ge/fx_text_int.h
@@ -14,7 +14,7 @@
 
 struct _CFX_UniqueKeyGen {
   void Generate(int count, ...);
-  FX_CHAR m_Key[128];
+  char m_Key[128];
   int m_KeyLen;
 };
 
diff --git a/core/fxge/ifx_systemfontinfo.h b/core/fxge/ifx_systemfontinfo.h
index 1ab0ab6..1453590 100644
--- a/core/fxge/ifx_systemfontinfo.h
+++ b/core/fxge/ifx_systemfontinfo.h
@@ -27,7 +27,7 @@
                         bool bItalic,
                         int charset,
                         int pitch_family,
-                        const FX_CHAR* face,
+                        const char* face,
                         int& iExact) = 0;
 
 #ifdef PDF_ENABLE_XFA
@@ -37,7 +37,7 @@
                                  int pitch_family);
 #endif  // PDF_ENABLE_XFA
 
-  virtual void* GetFont(const FX_CHAR* face) = 0;
+  virtual void* GetFont(const char* face) = 0;
   virtual uint32_t GetFontData(void* hFont,
                                uint32_t table,
                                uint8_t* buffer,
diff --git a/core/fxge/win32/cfx_psrenderer.cpp b/core/fxge/win32/cfx_psrenderer.cpp
index 74fae08..c3d2c66 100644
--- a/core/fxge/win32/cfx_psrenderer.cpp
+++ b/core/fxge/win32/cfx_psrenderer.cpp
@@ -147,7 +147,7 @@
       }
     }
   }
-  m_pOutput->OutputPS((const FX_CHAR*)buf.GetBuffer(), buf.GetSize());
+  m_pOutput->OutputPS((const char*)buf.GetBuffer(), buf.GetSize());
 }
 
 void CFX_PSRenderer::SetClip_PathFill(const CFX_PathData* pPathData,
@@ -180,7 +180,7 @@
     buf << "mx Cm [" << pObject2Device->a << " " << pObject2Device->b << " "
         << pObject2Device->c << " " << pObject2Device->d << " "
         << pObject2Device->e << " " << pObject2Device->f << "]cm ";
-    m_pOutput->OutputPS((const FX_CHAR*)buf.GetBuffer(), buf.GetSize());
+    m_pOutput->OutputPS((const char*)buf.GetBuffer(), buf.GetSize());
   }
   OutputPath(pPathData, nullptr);
   CFX_FloatRect rect = pPathData->GetBoundingBox(pGraphState->m_LineWidth,
@@ -219,7 +219,7 @@
       buf << "mx Cm [" << pObject2Device->a << " " << pObject2Device->b << " "
           << pObject2Device->c << " " << pObject2Device->d << " "
           << pObject2Device->e << " " << pObject2Device->f << "]cm ";
-      m_pOutput->OutputPS((const FX_CHAR*)buf.GetBuffer(), buf.GetSize());
+      m_pOutput->OutputPS((const char*)buf.GetBuffer(), buf.GetSize());
     }
   }
   OutputPath(pPathData, stroke_alpha ? nullptr : pObject2Device);
@@ -282,7 +282,7 @@
   m_CurGraphState.Copy(*pGraphState);
   m_bGraphStateSet = true;
   if (buf.GetSize()) {
-    m_pOutput->OutputPS((const FX_CHAR*)buf.GetBuffer(), buf.GetSize());
+    m_pOutput->OutputPS((const char*)buf.GetBuffer(), buf.GetSize());
   }
 }
 
@@ -306,7 +306,7 @@
                            uint32_t src_size,
                            uint8_t** output_buf,
                            uint32_t* output_size,
-                           const FX_CHAR** filter) {
+                           const char** filter) {
   *output_buf = src_buf;
   *output_size = src_size;
   *filter = "";
@@ -415,7 +415,7 @@
     } else {
       buf << "false 1 colorimage\n";
     }
-    m_pOutput->OutputPS((const FX_CHAR*)buf.GetBuffer(), buf.GetSize());
+    m_pOutput->OutputPS((const char*)buf.GetBuffer(), buf.GetSize());
     WritePSBinary(output_buf.get(), output_size);
     output_buf.release();
   } else {
@@ -451,7 +451,7 @@
     int bpp = pConverted->GetBPP() / 8;
     uint8_t* output_buf = nullptr;
     FX_STRSIZE output_size = 0;
-    const FX_CHAR* filter = nullptr;
+    const char* filter = nullptr;
     if ((m_PSLevel == 2 || flags & FXRENDER_IMAGE_LOSSY) &&
         CCodec_JpegModule::JpegEncode(pConverted.Get(), &output_buf,
                                       &output_size)) {
@@ -493,7 +493,7 @@
     }
     buf << "false " << bpp;
     buf << " colorimage\n";
-    m_pOutput->OutputPS((const FX_CHAR*)buf.GetBuffer(), buf.GetSize());
+    m_pOutput->OutputPS((const char*)buf.GetBuffer(), buf.GetSize());
     WritePSBinary(output_buf, output_size);
     FX_Free(output_buf);
   }
@@ -518,7 +518,7 @@
       m_bColorSet = true;
       m_LastColor = color;
     }
-    m_pOutput->OutputPS((const FX_CHAR*)buf.GetBuffer(), buf.GetSize());
+    m_pOutput->OutputPS((const char*)buf.GetBuffer(), buf.GetSize());
   }
 }
 
@@ -564,7 +564,7 @@
            "currentdict end\n";
     buf << "/X" << static_cast<uint32_t>(m_PSFontList.size() - 1)
         << " exch definefont pop\n";
-    m_pOutput->OutputPS((const FX_CHAR*)buf.GetBuffer(), buf.GetSize());
+    m_pOutput->OutputPS((const char*)buf.GetBuffer(), buf.GetSize());
     buf.Clear();
   }
   *ps_fontnum = m_PSFontList.size() - 1;
@@ -625,7 +625,7 @@
   buf << "f}bind def end\n";
   buf << "/X" << *ps_fontnum << " Ff/Encoding get " << glyphindex << "/"
       << glyphindex << " put\n";
-  m_pOutput->OutputPS((const FX_CHAR*)buf.GetBuffer(), buf.GetSize());
+  m_pOutput->OutputPS((const char*)buf.GetBuffer(), buf.GetSize());
 }
 
 bool CFX_PSRenderer::DrawText(int nChars,
@@ -666,7 +666,7 @@
     buf << hex.AsStringC() << "Tj\n";
   }
   buf << "Q\n";
-  m_pOutput->OutputPS((const FX_CHAR*)buf.GetBuffer(), buf.GetSize());
+  m_pOutput->OutputPS((const char*)buf.GetBuffer(), buf.GetSize());
   pCache->ReleaseCachedFace(pFont);
   return true;
 }
@@ -678,9 +678,9 @@
   if (pEncoders &&
       pEncoders->GetBasicModule()->A85Encode(data, len, &dest_buf,
                                              &dest_size)) {
-    m_pOutput->OutputPS((const FX_CHAR*)dest_buf, dest_size);
+    m_pOutput->OutputPS((const char*)dest_buf, dest_size);
     FX_Free(dest_buf);
   } else {
-    m_pOutput->OutputPS((const FX_CHAR*)data, len);
+    m_pOutput->OutputPS((const char*)data, len);
   }
 }
diff --git a/core/fxge/win32/cfx_windowsdib.h b/core/fxge/win32/cfx_windowsdib.h
index 2564b7f..0bfab3f 100644
--- a/core/fxge/win32/cfx_windowsdib.h
+++ b/core/fxge/win32/cfx_windowsdib.h
@@ -20,7 +20,7 @@
 
   size_t memory_size;
 
-  const FX_WCHAR* path_name;
+  const wchar_t* path_name;
 } WINDIB_Open_Args_;
 
 class CFX_WindowsDIB : public CFX_DIBitmap {
@@ -31,8 +31,8 @@
   static CFX_ByteString GetBitmapInfo(const CFX_DIBitmap* pBitmap);
   static CFX_DIBitmap* LoadFromBuf(BITMAPINFO* pbmi, void* pData);
   static HBITMAP GetDDBitmap(const CFX_DIBitmap* pBitmap, HDC hDC);
-  static CFX_DIBitmap* LoadFromFile(const FX_WCHAR* filename);
-  static CFX_DIBitmap* LoadFromFile(const FX_CHAR* filename);
+  static CFX_DIBitmap* LoadFromFile(const wchar_t* filename);
+  static CFX_DIBitmap* LoadFromFile(const char* filename);
   static CFX_DIBitmap* LoadDIBitmap(WINDIB_Open_Args_ args);
 
   HDC GetDC() const { return m_hMemDC; }
diff --git a/core/fxge/win32/cpsoutput.cpp b/core/fxge/win32/cpsoutput.cpp
index 76b37d7..24df152 100644
--- a/core/fxge/win32/cpsoutput.cpp
+++ b/core/fxge/win32/cpsoutput.cpp
@@ -20,13 +20,13 @@
   delete this;
 }
 
-void CPSOutput::OutputPS(const FX_CHAR* str, int len) {
+void CPSOutput::OutputPS(const char* str, int len) {
   if (len < 0)
     len = static_cast<int>(FXSYS_strlen(str));
 
   int sent_len = 0;
   while (len > 0) {
-    FX_CHAR buffer[1026];
+    char buffer[1026];
     int send_len = std::min(len, 1024);
     *(reinterpret_cast<uint16_t*>(buffer)) = send_len;
     FXSYS_memcpy(buffer + 2, str + sent_len, send_len);
diff --git a/core/fxge/win32/cpsoutput.h b/core/fxge/win32/cpsoutput.h
index bc9225b..1a4709b 100644
--- a/core/fxge/win32/cpsoutput.h
+++ b/core/fxge/win32/cpsoutput.h
@@ -18,7 +18,7 @@
 
   // IFX_PSOutput
   void Release();
-  void OutputPS(const FX_CHAR* str, int len);
+  void OutputPS(const char* str, int len);
 
   HDC m_hDC;
 };
diff --git a/core/fxge/win32/fx_win32_device.cpp b/core/fxge/win32/fx_win32_device.cpp
index 92e9b41..d1d81b1 100644
--- a/core/fxge/win32/fx_win32_device.cpp
+++ b/core/fxge/win32/fx_win32_device.cpp
@@ -34,15 +34,15 @@
 namespace {
 
 const struct {
-  const FX_CHAR* m_pFaceName;
-  const FX_CHAR* m_pVariantName;
+  const char* m_pFaceName;
+  const char* m_pVariantName;
 } g_VariantNames[] = {
     {"DFKai-SB", "\x19\x6A\x77\x69\xD4\x9A"},
 };
 
 const struct {
-  const FX_CHAR* m_pName;
-  const FX_CHAR* m_pWinName;
+  const char* m_pName;
+  const char* m_pWinName;
   bool m_bBold;
   bool m_bItalic;
 } g_Base14Substs[] = {
@@ -61,8 +61,8 @@
 };
 
 struct FontNameMap {
-  const FX_CHAR* m_pSubFontName;
-  const FX_CHAR* m_pSrcFontName;
+  const char* m_pSubFontName;
+  const char* m_pSrcFontName;
 };
 const FontNameMap g_JpFontNameMap[] = {
     {"MS Mincho", "Heiseimin-W3"},
@@ -324,7 +324,7 @@
                 bool bItalic,
                 int charset,
                 int pitch_family,
-                const FX_CHAR* family,
+                const char* family,
                 int& iExact) override;
 };
 
@@ -339,9 +339,9 @@
                 bool bItalic,
                 int charset,
                 int pitch_family,
-                const FX_CHAR* face,
+                const char* face,
                 int& iExact) override;
-  void* GetFont(const FX_CHAR* face) override { return nullptr; }
+  void* GetFont(const char* face) override { return nullptr; }
   uint32_t GetFontData(void* hFont,
                        uint32_t table,
                        uint8_t* buffer,
@@ -476,7 +476,7 @@
                                          bool bItalic,
                                          int charset,
                                          int pitch_family,
-                                         const FX_CHAR* cstr_face,
+                                         const char* cstr_face,
                                          int& iExact) {
   void* font = GetSubstFont(cstr_face);
   if (font) {
@@ -569,7 +569,7 @@
                                  bool bItalic,
                                  int charset,
                                  int pitch_family,
-                                 const FX_CHAR* cstr_face,
+                                 const char* cstr_face,
                                  int& iExact) {
   CFX_ByteString face = cstr_face;
   int iBaseFont;
diff --git a/core/fxge/win32/fx_win32_dib.cpp b/core/fxge/win32/fx_win32_dib.cpp
index 40c9ca6..9b85b57 100644
--- a/core/fxge/win32/fx_win32_dib.cpp
+++ b/core/fxge/win32/fx_win32_dib.cpp
@@ -116,7 +116,7 @@
   h = bmp.bmHeight;
 }
 
-CFX_DIBitmap* CFX_WindowsDIB::LoadFromFile(const FX_WCHAR* filename) {
+CFX_DIBitmap* CFX_WindowsDIB::LoadFromFile(const wchar_t* filename) {
   CWin32Platform* pPlatform =
       (CWin32Platform*)CFX_GEModule::Get()->GetPlatformData();
   if (pPlatform->m_GdiplusExt.IsAvailable()) {
@@ -150,7 +150,7 @@
   return pDIBitmap;
 }
 
-CFX_DIBitmap* CFX_WindowsDIB::LoadFromFile(const FX_CHAR* filename) {
+CFX_DIBitmap* CFX_WindowsDIB::LoadFromFile(const char* filename) {
   return LoadFromFile(CFX_WideString::FromLocal(filename).c_str());
 }
 
diff --git a/core/fxge/win32/fx_win32_gdipext.cpp b/core/fxge/win32/fx_win32_gdipext.cpp
index 1be2a54..1e51bba 100644
--- a/core/fxge/win32/fx_win32_gdipext.cpp
+++ b/core/fxge/win32/fx_win32_gdipext.cpp
@@ -680,7 +680,7 @@
 }
 void CGdiplusExt::Load() {
   CFX_ByteString strPlusPath = "";
-  FX_CHAR buf[MAX_PATH];
+  char buf[MAX_PATH];
   GetSystemDirectoryA(buf, MAX_PATH);
   strPlusPath += buf;
   strPlusPath += "\\";
@@ -765,7 +765,7 @@
   }
   return false;
 }
-bool CGdiplusExt::GdipCreateFontFamilyFromName(const FX_WCHAR* name,
+bool CGdiplusExt::GdipCreateFontFamilyFromName(const wchar_t* name,
                                                void* pFontCollection,
                                                void** pFamily) {
   CGdiplusExt& GdiplusExt =
diff --git a/core/fxge/win32/win32_int.h b/core/fxge/win32/win32_int.h
index f8eae87..08a8224 100644
--- a/core/fxge/win32/win32_int.h
+++ b/core/fxge/win32/win32_int.h
@@ -83,7 +83,7 @@
                         FX_FLOAT f,
                         void** matrix);
   void GdipDeleteMatrix(void* matrix);
-  bool GdipCreateFontFamilyFromName(const FX_WCHAR* name,
+  bool GdipCreateFontFamilyFromName(const wchar_t* name,
                                     void* pFontCollection,
                                     void** pFamily);
   void GdipDeleteFontFamily(void* pFamily);
diff --git a/fpdfsdk/cpdfsdk_baannot.cpp b/fpdfsdk/cpdfsdk_baannot.cpp
index 3eedf15..3c96550 100644
--- a/fpdfsdk/cpdfsdk_baannot.cpp
+++ b/fpdfsdk/cpdfsdk_baannot.cpp
@@ -71,7 +71,7 @@
     return false;
 
   // Choose the right sub-ap
-  const FX_CHAR* ap_entry = "N";
+  const char* ap_entry = "N";
   if (mode == CPDF_Annot::Down)
     ap_entry = "D";
   else if (mode == CPDF_Annot::Rollover)
diff --git a/fpdfsdk/cpdfsdk_datetime.cpp b/fpdfsdk/cpdfsdk_datetime.cpp
index 72f50a6..e10a223 100644
--- a/fpdfsdk/cpdfsdk_datetime.cpp
+++ b/fpdfsdk/cpdfsdk_datetime.cpp
@@ -143,7 +143,7 @@
 
   int j = 0;
   int k = 0;
-  FX_CHAR ch;
+  char ch;
   while (i < strLength && j < 4) {
     ch = dtStr[i];
     k = k * 10 + FXSYS_toDecimalDigit(ch);
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.cpp b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
index 4ef766d..091ccfc 100644
--- a/fpdfsdk/cpdfsdk_formfillenvironment.cpp
+++ b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
@@ -60,8 +60,8 @@
     m_pInfo->Release(m_pInfo);
 }
 
-int CPDFSDK_FormFillEnvironment::JS_appAlert(const FX_WCHAR* Msg,
-                                             const FX_WCHAR* Title,
+int CPDFSDK_FormFillEnvironment::JS_appAlert(const wchar_t* Msg,
+                                             const wchar_t* Title,
                                              uint32_t Type,
                                              uint32_t Icon) {
   if (!m_pInfo || !m_pInfo->m_pJsPlatform ||
@@ -75,10 +75,10 @@
       AsFPDFWideString(&bsTitle), Type, Icon);
 }
 
-int CPDFSDK_FormFillEnvironment::JS_appResponse(const FX_WCHAR* Question,
-                                                const FX_WCHAR* Title,
-                                                const FX_WCHAR* Default,
-                                                const FX_WCHAR* cLabel,
+int CPDFSDK_FormFillEnvironment::JS_appResponse(const wchar_t* Question,
+                                                const wchar_t* Title,
+                                                const wchar_t* Default,
+                                                const wchar_t* cLabel,
                                                 FPDF_BOOL bPassword,
                                                 void* response,
                                                 int length) {
@@ -146,7 +146,7 @@
 
 void CPDFSDK_FormFillEnvironment::JS_docSubmitForm(void* formData,
                                                    int length,
-                                                   const FX_WCHAR* URL) {
+                                                   const wchar_t* URL) {
   if (!m_pInfo || !m_pInfo->m_pJsPlatform ||
       !m_pInfo->m_pJsPlatform->Doc_submitForm) {
     return;
@@ -160,11 +160,11 @@
 void CPDFSDK_FormFillEnvironment::JS_docmailForm(void* mailData,
                                                  int length,
                                                  FPDF_BOOL bUI,
-                                                 const FX_WCHAR* To,
-                                                 const FX_WCHAR* Subject,
-                                                 const FX_WCHAR* CC,
-                                                 const FX_WCHAR* BCC,
-                                                 const FX_WCHAR* Msg) {
+                                                 const wchar_t* To,
+                                                 const wchar_t* Subject,
+                                                 const wchar_t* CC,
+                                                 const wchar_t* BCC,
+                                                 const wchar_t* Msg) {
   if (!m_pInfo || !m_pInfo->m_pJsPlatform ||
       !m_pInfo->m_pJsPlatform->Doc_mail) {
     return;
@@ -313,8 +313,7 @@
   return nullptr;
 }
 
-void CPDFSDK_FormFillEnvironment::ExecuteNamedAction(
-    const FX_CHAR* namedAction) {
+void CPDFSDK_FormFillEnvironment::ExecuteNamedAction(const char* namedAction) {
   if (m_pInfo && m_pInfo->FFI_ExecuteNamedAction)
     m_pInfo->FFI_ExecuteNamedAction(m_pInfo, namedAction);
 }
@@ -327,7 +326,7 @@
     m_pInfo->FFI_SetTextFieldFocus(m_pInfo, focusText, nTextLen, bFocus);
 }
 
-void CPDFSDK_FormFillEnvironment::DoURIAction(const FX_CHAR* bsURI) {
+void CPDFSDK_FormFillEnvironment::DoURIAction(const char* bsURI) {
   if (m_pInfo && m_pInfo->FFI_DoURIAction)
     m_pInfo->FFI_DoURIAction(m_pInfo, bsURI);
 }
@@ -462,7 +461,7 @@
 }
 
 CFX_RetainPtr<IFX_SeekableReadStream>
-CPDFSDK_FormFillEnvironment::DownloadFromURL(const FX_WCHAR* url) {
+CPDFSDK_FormFillEnvironment::DownloadFromURL(const wchar_t* url) {
   if (!m_pInfo || !m_pInfo->FFI_DownloadFromURL)
     return nullptr;
 
@@ -475,11 +474,11 @@
 }
 
 CFX_WideString CPDFSDK_FormFillEnvironment::PostRequestURL(
-    const FX_WCHAR* wsURL,
-    const FX_WCHAR* wsData,
-    const FX_WCHAR* wsContentType,
-    const FX_WCHAR* wsEncode,
-    const FX_WCHAR* wsHeader) {
+    const wchar_t* wsURL,
+    const wchar_t* wsData,
+    const wchar_t* wsContentType,
+    const wchar_t* wsEncode,
+    const wchar_t* wsHeader) {
   if (!m_pInfo || !m_pInfo->FFI_PostRequestURL)
     return L"";
 
@@ -513,9 +512,9 @@
   return wsRet;
 }
 
-FPDF_BOOL CPDFSDK_FormFillEnvironment::PutRequestURL(const FX_WCHAR* wsURL,
-                                                     const FX_WCHAR* wsData,
-                                                     const FX_WCHAR* wsEncode) {
+FPDF_BOOL CPDFSDK_FormFillEnvironment::PutRequestURL(const wchar_t* wsURL,
+                                                     const wchar_t* wsData,
+                                                     const wchar_t* wsEncode) {
   if (!m_pInfo || !m_pInfo->FFI_PutRequestURL)
     return false;
 
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.h b/fpdfsdk/cpdfsdk_formfillenvironment.h
index eead873..5aead04 100644
--- a/fpdfsdk/cpdfsdk_formfillenvironment.h
+++ b/fpdfsdk/cpdfsdk_formfillenvironment.h
@@ -84,11 +84,11 @@
   FPDF_PAGE GetPage(FPDF_DOCUMENT document, int nPageIndex);
   FPDF_PAGE GetCurrentPage(FPDF_DOCUMENT document);
 
-  void ExecuteNamedAction(const FX_CHAR* namedAction);
+  void ExecuteNamedAction(const char* namedAction);
   void OnSetFieldInputFocus(FPDF_WIDESTRING focusText,
                             FPDF_DWORD nTextLen,
                             bool bFocus);
-  void DoURIAction(const FX_CHAR* bsURI);
+  void DoURIAction(const char* bsURI);
   void DoGoToAction(int nPageIndex,
                     int zoomMode,
                     float* fPosArray,
@@ -141,15 +141,15 @@
   FPDF_FILEHANDLER* OpenFile(int fileType,
                              FPDF_WIDESTRING wsURL,
                              const char* mode);
-  CFX_RetainPtr<IFX_SeekableReadStream> DownloadFromURL(const FX_WCHAR* url);
-  CFX_WideString PostRequestURL(const FX_WCHAR* wsURL,
-                                const FX_WCHAR* wsData,
-                                const FX_WCHAR* wsContentType,
-                                const FX_WCHAR* wsEncode,
-                                const FX_WCHAR* wsHeader);
-  FPDF_BOOL PutRequestURL(const FX_WCHAR* wsURL,
-                          const FX_WCHAR* wsData,
-                          const FX_WCHAR* wsEncode);
+  CFX_RetainPtr<IFX_SeekableReadStream> DownloadFromURL(const wchar_t* url);
+  CFX_WideString PostRequestURL(const wchar_t* wsURL,
+                                const wchar_t* wsData,
+                                const wchar_t* wsContentType,
+                                const wchar_t* wsEncode,
+                                const wchar_t* wsHeader);
+  FPDF_BOOL PutRequestURL(const wchar_t* wsURL,
+                          const wchar_t* wsData,
+                          const wchar_t* wsEncode);
   CFX_WideString GetLanguage();
 
   void PageEvent(int iPageCount, uint32_t dwEventType) const;
@@ -157,29 +157,29 @@
   CPDF_Document* GetPDFDocument() const { return m_pUnderlyingDoc; }
 #endif  // PDF_ENABLE_XFA
 
-  int JS_appAlert(const FX_WCHAR* Msg,
-                  const FX_WCHAR* Title,
+  int JS_appAlert(const wchar_t* Msg,
+                  const wchar_t* Title,
                   uint32_t Type,
                   uint32_t Icon);
-  int JS_appResponse(const FX_WCHAR* Question,
-                     const FX_WCHAR* Title,
-                     const FX_WCHAR* Default,
-                     const FX_WCHAR* cLabel,
+  int JS_appResponse(const wchar_t* Question,
+                     const wchar_t* Title,
+                     const wchar_t* Default,
+                     const wchar_t* cLabel,
                      FPDF_BOOL bPassword,
                      void* response,
                      int length);
   void JS_appBeep(int nType);
   CFX_WideString JS_fieldBrowse();
   CFX_WideString JS_docGetFilePath();
-  void JS_docSubmitForm(void* formData, int length, const FX_WCHAR* URL);
+  void JS_docSubmitForm(void* formData, int length, const wchar_t* URL);
   void JS_docmailForm(void* mailData,
                       int length,
                       FPDF_BOOL bUI,
-                      const FX_WCHAR* To,
-                      const FX_WCHAR* Subject,
-                      const FX_WCHAR* CC,
-                      const FX_WCHAR* BCC,
-                      const FX_WCHAR* Msg);
+                      const wchar_t* To,
+                      const wchar_t* Subject,
+                      const wchar_t* CC,
+                      const wchar_t* BCC,
+                      const wchar_t* Msg);
   void JS_docprint(FPDF_BOOL bUI,
                    int nStart,
                    int nEnd,
diff --git a/fpdfsdk/cpdfsdk_widget.cpp b/fpdfsdk/cpdfsdk_widget.cpp
index cd86f7a..e5df453 100644
--- a/fpdfsdk/cpdfsdk_widget.cpp
+++ b/fpdfsdk/cpdfsdk_widget.cpp
@@ -466,7 +466,7 @@
     return false;
 
   // Choose the right sub-ap
-  const FX_CHAR* ap_entry = "N";
+  const char* ap_entry = "N";
   if (mode == CPDF_Annot::Down)
     ap_entry = "D";
   else if (mode == CPDF_Annot::Rollover)
diff --git a/fpdfsdk/fpdf_flatten.cpp b/fpdfsdk/fpdf_flatten.cpp
index e649bac..06ea939 100644
--- a/fpdfsdk/fpdf_flatten.cpp
+++ b/fpdfsdk/fpdf_flatten.cpp
@@ -208,7 +208,7 @@
     acc.LoadAllData(pContentsStream);
     CFX_ByteString sStream = "q\n";
     CFX_ByteString sBody =
-        CFX_ByteString((const FX_CHAR*)acc.GetData(), acc.GetSize());
+        CFX_ByteString((const char*)acc.GetData(), acc.GetSize());
     sStream = sStream + sBody + "\nQ";
     pContentsStream->SetData(sStream.raw_str(), sStream.GetLength());
     pContentsArray->AddNew<CPDF_Reference>(pDocument,
diff --git a/fpdfsdk/fpdf_structtree_embeddertest.cpp b/fpdfsdk/fpdf_structtree_embeddertest.cpp
index 58b3172..8ddde53 100644
--- a/fpdfsdk/fpdf_structtree_embeddertest.cpp
+++ b/fpdfsdk/fpdf_structtree_embeddertest.cpp
@@ -56,7 +56,7 @@
 
   ASSERT_EQ(24U, FPDF_StructElement_GetAltText(gchild_element, buffer,
                                                sizeof(buffer)));
-  const FX_WCHAR kExpected[] = L"Black Image";
+  const wchar_t kExpected[] = L"Black Image";
   EXPECT_EQ(CFX_WideString(kExpected),
             CFX_WideString::FromUTF16LE(buffer, FXSYS_len(kExpected)));
 
diff --git a/fpdfsdk/fpdf_sysfontinfo.cpp b/fpdfsdk/fpdf_sysfontinfo.cpp
index 1b62dc4..5bce4b4 100644
--- a/fpdfsdk/fpdf_sysfontinfo.cpp
+++ b/fpdfsdk/fpdf_sysfontinfo.cpp
@@ -35,7 +35,7 @@
                 bool bItalic,
                 int charset,
                 int pitch_family,
-                const FX_CHAR* family,
+                const char* family,
                 int& iExact) override {
     if (!m_pInfo->MapFont)
       return nullptr;
@@ -43,7 +43,7 @@
                             family, &iExact);
   }
 
-  void* GetFont(const FX_CHAR* family) override {
+  void* GetFont(const char* family) override {
     if (!m_pInfo->GetFont)
       return nullptr;
     return m_pInfo->GetFont(m_pInfo, family);
diff --git a/fpdfsdk/fpdfdoc_embeddertest.cpp b/fpdfsdk/fpdfdoc_embeddertest.cpp
index 3666687..2472db9 100644
--- a/fpdfsdk/fpdfdoc_embeddertest.cpp
+++ b/fpdfsdk/fpdfdoc_embeddertest.cpp
@@ -198,37 +198,37 @@
   EXPECT_EQ(0u, FPDF_GetPageLabel(document(), -2, buf, sizeof(buf)));
   EXPECT_EQ(0u, FPDF_GetPageLabel(document(), -1, buf, sizeof(buf)));
 
-  const FX_WCHAR kExpectedPageLabel0[] = L"i";
+  const wchar_t kExpectedPageLabel0[] = L"i";
   ASSERT_EQ(4u, FPDF_GetPageLabel(document(), 0, buf, sizeof(buf)));
   EXPECT_EQ(CFX_WideString(kExpectedPageLabel0),
             CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel0)));
 
-  const FX_WCHAR kExpectedPageLabel1[] = L"ii";
+  const wchar_t kExpectedPageLabel1[] = L"ii";
   ASSERT_EQ(6u, FPDF_GetPageLabel(document(), 1, buf, sizeof(buf)));
   EXPECT_EQ(CFX_WideString(kExpectedPageLabel1),
             CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel1)));
 
-  const FX_WCHAR kExpectedPageLabel2[] = L"1";
+  const wchar_t kExpectedPageLabel2[] = L"1";
   ASSERT_EQ(4u, FPDF_GetPageLabel(document(), 2, buf, sizeof(buf)));
   EXPECT_EQ(CFX_WideString(kExpectedPageLabel2),
             CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel2)));
 
-  const FX_WCHAR kExpectedPageLabel3[] = L"2";
+  const wchar_t kExpectedPageLabel3[] = L"2";
   ASSERT_EQ(4u, FPDF_GetPageLabel(document(), 3, buf, sizeof(buf)));
   EXPECT_EQ(CFX_WideString(kExpectedPageLabel3),
             CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel3)));
 
-  const FX_WCHAR kExpectedPageLabel4[] = L"zzA";
+  const wchar_t kExpectedPageLabel4[] = L"zzA";
   ASSERT_EQ(8u, FPDF_GetPageLabel(document(), 4, buf, sizeof(buf)));
   EXPECT_EQ(CFX_WideString(kExpectedPageLabel4),
             CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel4)));
 
-  const FX_WCHAR kExpectedPageLabel5[] = L"zzB";
+  const wchar_t kExpectedPageLabel5[] = L"zzB";
   ASSERT_EQ(8u, FPDF_GetPageLabel(document(), 5, buf, sizeof(buf)));
   EXPECT_EQ(CFX_WideString(kExpectedPageLabel5),
             CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel5)));
 
-  const FX_WCHAR kExpectedPageLabel6[] = L"";
+  const wchar_t kExpectedPageLabel6[] = L"";
   ASSERT_EQ(2u, FPDF_GetPageLabel(document(), 6, buf, sizeof(buf)));
   EXPECT_EQ(CFX_WideString(kExpectedPageLabel6),
             CFX_WideString::FromUTF16LE(buf, FXSYS_len(kExpectedPageLabel6)));
diff --git a/fpdfsdk/fpdfview.cpp b/fpdfsdk/fpdfview.cpp
index 1e7a651..9100017 100644
--- a/fpdfsdk/fpdfview.cpp
+++ b/fpdfsdk/fpdfview.cpp
@@ -490,7 +490,7 @@
   // NOTE: the creation of the file needs to be by the embedder on the
   // other side of this API.
   CFX_RetainPtr<IFX_SeekableReadStream> pFileAccess =
-      IFX_SeekableReadStream::CreateFromFilename((const FX_CHAR*)file_path);
+      IFX_SeekableReadStream::CreateFromFilename((const char*)file_path);
   if (!pFileAccess)
     return nullptr;
 
diff --git a/fpdfsdk/fxedit/fxet_list.cpp b/fpdfsdk/fxedit/fxet_list.cpp
index 39877c9..3782cf0 100644
--- a/fpdfsdk/fxedit/fxet_list.cpp
+++ b/fpdfsdk/fxedit/fxet_list.cpp
@@ -728,13 +728,13 @@
   return -1;
 }
 
-FX_WCHAR CFX_ListCtrl::Toupper(FX_WCHAR c) const {
+wchar_t CFX_ListCtrl::Toupper(wchar_t c) const {
   if ((c >= 'a') && (c <= 'z'))
     c = c - ('a' - 'A');
   return c;
 }
 
-int32_t CFX_ListCtrl::FindNext(int32_t nIndex, FX_WCHAR nChar) const {
+int32_t CFX_ListCtrl::FindNext(int32_t nIndex, wchar_t nChar) const {
   int32_t nCircleIndex = nIndex;
 
   for (int32_t i = 0, sz = m_aListItems.GetSize(); i < sz; i++) {
diff --git a/fpdfsdk/fxedit/fxet_list.h b/fpdfsdk/fxedit/fxet_list.h
index 01e18bc..9d07187 100644
--- a/fpdfsdk/fxedit/fxet_list.h
+++ b/fpdfsdk/fxedit/fxet_list.h
@@ -262,7 +262,7 @@
   void SetMultipleSel(bool bMultiple);
   bool IsMultipleSel() const;
   bool IsValid(int32_t nItemIndex) const;
-  int32_t FindNext(int32_t nIndex, FX_WCHAR nChar) const;
+  int32_t FindNext(int32_t nIndex, wchar_t nChar) const;
   int32_t GetFirstSelected() const;
 
   CFX_PointF InToOut(const CFX_PointF& point) const;
@@ -285,7 +285,7 @@
   CFX_WideString GetItemText(int32_t nIndex) const;
   void SetItemSelect(int32_t nItemIndex, bool bSelected);
   int32_t GetLastSelected() const;
-  FX_WCHAR Toupper(FX_WCHAR c) const;
+  wchar_t Toupper(wchar_t c) const;
 
   CPWL_List_Notify* m_pNotify;
   bool m_bNotifyFlag;
diff --git a/fpdfsdk/javascript/Consts.cpp b/fpdfsdk/javascript/Consts.cpp
index 82f9b4c..8c01ae0 100644
--- a/fpdfsdk/javascript/Consts.cpp
+++ b/fpdfsdk/javascript/Consts.cpp
@@ -139,7 +139,7 @@
 
 #define GLOBAL_ARRAY(rt, name, ...)                                          \
   {                                                                          \
-    const FX_WCHAR* values[] = {__VA_ARGS__};                                \
+    const wchar_t* values[] = {__VA_ARGS__};                                 \
     v8::Local<v8::Array> array = (rt)->NewArray();                           \
     for (size_t i = 0; i < FX_ArraySize(values); ++i)                        \
       array->Set(i, (rt)->NewString(values[i]));                             \
diff --git a/fpdfsdk/javascript/JS_EventHandler.cpp b/fpdfsdk/javascript/JS_EventHandler.cpp
index bd1c8e2..a63b7a8 100644
--- a/fpdfsdk/javascript/JS_EventHandler.cpp
+++ b/fpdfsdk/javascript/JS_EventHandler.cpp
@@ -435,7 +435,7 @@
   return m_bModifier;
 }
 
-const FX_WCHAR* CJS_EventHandler::Name() {
+const wchar_t* CJS_EventHandler::Name() {
   switch (m_eEventType) {
     case JET_APP_INIT:
       return L"Init";
@@ -506,7 +506,7 @@
   }
 }
 
-const FX_WCHAR* CJS_EventHandler::Type() {
+const wchar_t* CJS_EventHandler::Type() {
   switch (m_eEventType) {
     case JET_APP_INIT:
       return L"App";
diff --git a/fpdfsdk/javascript/JS_EventHandler.h b/fpdfsdk/javascript/JS_EventHandler.h
index b9836b0..1e70a35 100644
--- a/fpdfsdk/javascript/JS_EventHandler.h
+++ b/fpdfsdk/javascript/JS_EventHandler.h
@@ -150,8 +150,8 @@
   bool FieldFull();
   bool KeyDown();
   bool Modifier();
-  const FX_WCHAR* Name();
-  const FX_WCHAR* Type();
+  const wchar_t* Name();
+  const wchar_t* Type();
   bool& Rc();
   int& SelEnd();
   int& SelStart();
diff --git a/fpdfsdk/javascript/JS_GlobalData.cpp b/fpdfsdk/javascript/JS_GlobalData.cpp
index 68d929f..048fca0 100644
--- a/fpdfsdk/javascript/JS_GlobalData.cpp
+++ b/fpdfsdk/javascript/JS_GlobalData.cpp
@@ -336,18 +336,18 @@
 
   CRYPT_ArcFourCryptBlock(sFile.GetBuffer(), sFile.GetSize(), JS_RC4KEY,
                           sizeof(JS_RC4KEY));
-  WriteFileBuffer(m_sFilePath.c_str(), (const FX_CHAR*)sFile.GetBuffer(),
+  WriteFileBuffer(m_sFilePath.c_str(), (const char*)sFile.GetBuffer(),
                   sFile.GetSize());
 }
 
-void CJS_GlobalData::LoadFileBuffer(const FX_WCHAR* sFilePath,
+void CJS_GlobalData::LoadFileBuffer(const wchar_t* sFilePath,
                                     uint8_t*& pBuffer,
                                     int32_t& nLength) {
   // UnSupport.
 }
 
-void CJS_GlobalData::WriteFileBuffer(const FX_WCHAR* sFilePath,
-                                     const FX_CHAR* pBuffer,
+void CJS_GlobalData::WriteFileBuffer(const wchar_t* sFilePath,
+                                     const char* pBuffer,
                                      int32_t nLength) {
   // UnSupport.
 }
diff --git a/fpdfsdk/javascript/JS_GlobalData.h b/fpdfsdk/javascript/JS_GlobalData.h
index c8947cd..c4e8e48 100644
--- a/fpdfsdk/javascript/JS_GlobalData.h
+++ b/fpdfsdk/javascript/JS_GlobalData.h
@@ -59,11 +59,11 @@
   iterator FindGlobalVariable(const CFX_ByteString& sPropname);
   const_iterator FindGlobalVariable(const CFX_ByteString& sPropname) const;
 
-  void LoadFileBuffer(const FX_WCHAR* sFilePath,
+  void LoadFileBuffer(const wchar_t* sFilePath,
                       uint8_t*& pBuffer,
                       int32_t& nLength);
-  void WriteFileBuffer(const FX_WCHAR* sFilePath,
-                       const FX_CHAR* pBuffer,
+  void WriteFileBuffer(const wchar_t* sFilePath,
+                       const char* pBuffer,
                        int32_t nLength);
   void MakeByteString(const CFX_ByteString& name,
                       CJS_KeyValue* pData,
diff --git a/fpdfsdk/javascript/JS_Value.cpp b/fpdfsdk/javascript/JS_Value.cpp
index b058847..a0c286f 100644
--- a/fpdfsdk/javascript/JS_Value.cpp
+++ b/fpdfsdk/javascript/JS_Value.cpp
@@ -55,10 +55,10 @@
     m_pValue = pObj->ToV8Object();
 }
 
-CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const FX_WCHAR* pWstr)
+CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const wchar_t* pWstr)
     : m_pValue(pRuntime->NewString(pWstr)) {}
 
-CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const FX_CHAR* pStr)
+CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const char* pStr)
     : m_pValue(pRuntime->NewString(CFX_WideString::FromLocal(pStr).c_str())) {}
 
 CJS_Value::CJS_Value(CJS_Runtime* pRuntime, const CJS_Array& array)
@@ -267,7 +267,7 @@
   str = m_Value.ToCFXByteString(m_pJSRuntime);
 }
 
-void CJS_PropValue::operator<<(const FX_WCHAR* str) {
+void CJS_PropValue::operator<<(const wchar_t* str) {
   ASSERT(!m_bIsSetting);
   m_Value = CJS_Value(m_pJSRuntime, str);
 }
diff --git a/fpdfsdk/javascript/JS_Value.h b/fpdfsdk/javascript/JS_Value.h
index 313f0c3..0c19701 100644
--- a/fpdfsdk/javascript/JS_Value.h
+++ b/fpdfsdk/javascript/JS_Value.h
@@ -38,8 +38,8 @@
   CJS_Value(CJS_Runtime* pRuntime, const float& fValue);
   CJS_Value(CJS_Runtime* pRuntime, const bool& bValue);
   CJS_Value(CJS_Runtime* pRuntime, CJS_Object* pObj);
-  CJS_Value(CJS_Runtime* pRuntime, const FX_CHAR* pStr);
-  CJS_Value(CJS_Runtime* pRuntime, const FX_WCHAR* pWstr);
+  CJS_Value(CJS_Runtime* pRuntime, const char* pStr);
+  CJS_Value(CJS_Runtime* pRuntime, const wchar_t* pWstr);
   CJS_Value(CJS_Runtime* pRuntime, const CJS_Array& array);
   CJS_Value(CJS_Runtime* pRuntime, const CJS_Date& date);
   CJS_Value(CJS_Runtime* pRuntime, const CJS_Object* object);
@@ -107,7 +107,7 @@
   void operator>>(CFX_ByteString&) const;
   void operator<<(CFX_WideString);
   void operator>>(CFX_WideString&) const;
-  void operator<<(const FX_WCHAR* c_string);
+  void operator<<(const wchar_t* c_string);
   void operator<<(v8::Local<v8::Object>);
   void operator>>(v8::Local<v8::Object>&) const;
   void operator>>(CJS_Array& array) const;
diff --git a/fpdfsdk/javascript/PublicMethods.cpp b/fpdfsdk/javascript/PublicMethods.cpp
index 3bcbc34..f479527 100644
--- a/fpdfsdk/javascript/PublicMethods.cpp
+++ b/fpdfsdk/javascript/PublicMethods.cpp
@@ -59,14 +59,14 @@
 
 namespace {
 
-const FX_WCHAR* const months[] = {L"Jan", L"Feb", L"Mar", L"Apr",
-                                  L"May", L"Jun", L"Jul", L"Aug",
-                                  L"Sep", L"Oct", L"Nov", L"Dec"};
+const wchar_t* const months[] = {L"Jan", L"Feb", L"Mar", L"Apr",
+                                 L"May", L"Jun", L"Jul", L"Aug",
+                                 L"Sep", L"Oct", L"Nov", L"Dec"};
 
-const FX_WCHAR* const fullmonths[] = {L"January", L"February", L"March",
-                                      L"April",   L"May",      L"June",
-                                      L"July",    L"August",   L"September",
-                                      L"October", L"November", L"December"};
+const wchar_t* const fullmonths[] = {L"January", L"February", L"March",
+                                     L"April",   L"May",      L"June",
+                                     L"July",    L"August",   L"September",
+                                     L"October", L"November", L"December"};
 
 CFX_ByteString StrTrim(const CFX_ByteString& pStr) {
   CFX_ByteString result(pStr);
@@ -82,7 +82,7 @@
   return result;
 }
 
-void AlertIfPossible(CJS_EventContext* pContext, const FX_WCHAR* swMsg) {
+void AlertIfPossible(CJS_EventContext* pContext, const wchar_t* swMsg) {
   CPDFSDK_FormFillEnvironment* pFormFillEnv = pContext->GetFormFillEnv();
   if (pFormFillEnv)
     pFormFillEnv->JS_appAlert(swMsg, nullptr, 0, 3);
@@ -115,8 +115,8 @@
 
 bool CJS_PublicMethods::IsNumber(const CFX_WideString& str) {
   CFX_WideString sTrim = StrTrim(str);
-  const FX_WCHAR* pTrim = sTrim.c_str();
-  const FX_WCHAR* p = pTrim;
+  const wchar_t* pTrim = sTrim.c_str();
+  const wchar_t* p = pTrim;
   bool bDot = false;
   bool bKXJS = false;
 
@@ -168,7 +168,7 @@
   return ch == L'9' || ch == L'A' || ch == L'O' || ch == L'X';
 }
 
-double CJS_PublicMethods::AF_Simple(const FX_WCHAR* sFuction,
+double CJS_PublicMethods::AF_Simple(const wchar_t* sFuction,
                                     double dValue1,
                                     double dValue2) {
   if (FXSYS_wcsicmp(sFuction, L"AVG") == 0 ||
@@ -235,7 +235,7 @@
     if (i - nStart > 10)
       break;
 
-    FX_WCHAR c = str.GetAt(i);
+    wchar_t c = str.GetAt(i);
     if (!FXSYS_iswdigit(c))
       break;
 
@@ -254,7 +254,7 @@
   CFX_WideString swRet;
   nSkip = 0;
   for (int i = nStart, sz = str.GetLength(); i < sz; i++) {
-    FX_WCHAR c = str.GetAt(i);
+    wchar_t c = str.GetAt(i);
     if (!FXSYS_iswdigit(c))
       break;
 
@@ -286,7 +286,7 @@
     if (nIndex > 2)
       break;
 
-    FX_WCHAR c = value.GetAt(i);
+    wchar_t c = value.GetAt(i);
     if (FXSYS_iswdigit(c)) {
       number[nIndex++] = ParseStringInteger(value, i, nSkip, 4);
       i += nSkip;
@@ -373,7 +373,7 @@
     if (bExit)
       break;
 
-    FX_WCHAR c = format.GetAt(i);
+    wchar_t c = format.GetAt(i);
     switch (c) {
       case ':':
       case '.':
@@ -630,7 +630,7 @@
 
   int i = 0;
   while (i < format.GetLength()) {
-    FX_WCHAR c = format.GetAt(i);
+    wchar_t c = format.GetAt(i);
     int remaining = format.GetLength() - i - 1;
     sPart = L"";
     switch (c) {
@@ -946,7 +946,7 @@
   int iSepStyle = params[1].ToInt(pRuntime);
   if (iSepStyle < 0 || iSepStyle > 3)
     iSepStyle = 0;
-  const FX_WCHAR cSep = iSepStyle < 2 ? L'.' : L',';
+  const wchar_t cSep = iSepStyle < 2 ? L'.' : L',';
 
   bool bHasSep = wstrValue.Find(cSep) != -1;
   for (FX_STRSIZE i = 0; i < wstrChange.GetLength(); ++i) {
@@ -1142,7 +1142,7 @@
   std::vector<CFX_WideString> wsArray;
   CFX_WideString sTemp = L"";
   for (int i = 0; i < strValue.GetLength(); ++i) {
-    FX_WCHAR c = strValue.GetAt(i);
+    wchar_t c = strValue.GetAt(i);
     if (c == L' ' || c == L':') {
       wsArray.push_back(sTemp);
       sTemp = L"";
@@ -1239,20 +1239,20 @@
   }
 
   int iIndex = params[0].ToInt(pRuntime);
-  const FX_WCHAR* cFormats[] = {L"m/d",
-                                L"m/d/yy",
-                                L"mm/dd/yy",
-                                L"mm/yy",
-                                L"d-mmm",
-                                L"d-mmm-yy",
-                                L"dd-mmm-yy",
-                                L"yy-mm-dd",
-                                L"mmm-yy",
-                                L"mmmm-yy",
-                                L"mmm d, yyyy",
-                                L"mmmm d, yyyy",
-                                L"m/d/yy h:MM tt",
-                                L"m/d/yy HH:MM"};
+  const wchar_t* cFormats[] = {L"m/d",
+                               L"m/d/yy",
+                               L"mm/dd/yy",
+                               L"mm/yy",
+                               L"d-mmm",
+                               L"d-mmm-yy",
+                               L"dd-mmm-yy",
+                               L"yy-mm-dd",
+                               L"mmm-yy",
+                               L"mmmm-yy",
+                               L"mmm d, yyyy",
+                               L"mmmm d, yyyy",
+                               L"m/d/yy h:MM tt",
+                               L"m/d/yy HH:MM"};
 
   if (iIndex < 0 || (static_cast<size_t>(iIndex) >= FX_ArraySize(cFormats)))
     iIndex = 0;
@@ -1273,20 +1273,20 @@
   }
 
   int iIndex = params[0].ToInt(pRuntime);
-  const FX_WCHAR* cFormats[] = {L"m/d",
-                                L"m/d/yy",
-                                L"mm/dd/yy",
-                                L"mm/yy",
-                                L"d-mmm",
-                                L"d-mmm-yy",
-                                L"dd-mmm-yy",
-                                L"yy-mm-dd",
-                                L"mmm-yy",
-                                L"mmmm-yy",
-                                L"mmm d, yyyy",
-                                L"mmmm d, yyyy",
-                                L"m/d/yy h:MM tt",
-                                L"m/d/yy HH:MM"};
+  const wchar_t* cFormats[] = {L"m/d",
+                               L"m/d/yy",
+                               L"mm/dd/yy",
+                               L"mm/yy",
+                               L"d-mmm",
+                               L"d-mmm-yy",
+                               L"dd-mmm-yy",
+                               L"yy-mm-dd",
+                               L"mmm-yy",
+                               L"mmmm-yy",
+                               L"mmm d, yyyy",
+                               L"mmmm d, yyyy",
+                               L"m/d/yy h:MM tt",
+                               L"m/d/yy HH:MM"};
 
   if (iIndex < 0 || (static_cast<size_t>(iIndex) >= FX_ArraySize(cFormats)))
     iIndex = 0;
@@ -1307,8 +1307,8 @@
   }
 
   int iIndex = params[0].ToInt(pRuntime);
-  const FX_WCHAR* cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss",
-                                L"h:MM:ss tt"};
+  const wchar_t* cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss",
+                               L"h:MM:ss tt"};
 
   if (iIndex < 0 || (static_cast<size_t>(iIndex) >= FX_ArraySize(cFormats)))
     iIndex = 0;
@@ -1328,8 +1328,8 @@
   }
 
   int iIndex = params[0].ToInt(pRuntime);
-  const FX_WCHAR* cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss",
-                                L"h:MM:ss tt"};
+  const wchar_t* cFormats[] = {L"HH:MM", L"h:MM tt", L"HH:MM:ss",
+                               L"h:MM:ss tt"};
 
   if (iIndex < 0 || (static_cast<size_t>(iIndex) >= FX_ArraySize(cFormats)))
     iIndex = 0;
@@ -1461,7 +1461,7 @@
       pEvent->Rc() = false;
       return true;
     }
-    FX_WCHAR wMask = wstrMask[iIndexMask];
+    wchar_t wMask = wstrMask[iIndexMask];
     if (!isReservedMaskChar(wMask))
       wChange.SetAt(i, wMask);
 
@@ -1776,7 +1776,7 @@
   CJS_Array nums;
   int nIndex = 0;
   for (int i = 0, sz = str.GetLength(); i < sz; i++) {
-    FX_WCHAR wc = str.GetAt(i);
+    wchar_t wc = str.GetAt(i);
     if (FXSYS_iswdigit(wc)) {
       sPart += wc;
     } else {
diff --git a/fpdfsdk/javascript/PublicMethods.h b/fpdfsdk/javascript/PublicMethods.h
index 060c743..0f6123c 100644
--- a/fpdfsdk/javascript/PublicMethods.h
+++ b/fpdfsdk/javascript/PublicMethods.h
@@ -153,7 +153,7 @@
   static bool maskSatisfied(wchar_t c_Change, wchar_t c_Mask);
   static bool isReservedMaskChar(wchar_t ch);
 
-  static double AF_Simple(const FX_WCHAR* sFuction,
+  static double AF_Simple(const wchar_t* sFuction,
                           double dValue1,
                           double dValue2);
   static CJS_Array AF_MakeArrayFromList(CJS_Runtime* pRuntime, CJS_Value val);
diff --git a/fpdfsdk/javascript/cjs_runtime.cpp b/fpdfsdk/javascript/cjs_runtime.cpp
index 1ece0b6..a6da9c4 100644
--- a/fpdfsdk/javascript/cjs_runtime.cpp
+++ b/fpdfsdk/javascript/cjs_runtime.cpp
@@ -221,7 +221,7 @@
 }
 bool CJS_Runtime::GetValueByName(const CFX_ByteStringC& utf8Name,
                                  CFXJSE_Value* pValue) {
-  const FX_CHAR* name = utf8Name.c_str();
+  const char* name = utf8Name.c_str();
 
   v8::Isolate::Scope isolate_scope(GetIsolate());
   v8::HandleScope handle_scope(GetIsolate());
@@ -243,7 +243,7 @@
                                  CFXJSE_Value* pValue) {
   if (utf8Name.IsEmpty() || !pValue)
     return false;
-  const FX_CHAR* name = utf8Name.c_str();
+  const char* name = utf8Name.c_str();
   v8::Isolate* pIsolate = GetIsolate();
   v8::Isolate::Scope isolate_scope(pIsolate);
   v8::HandleScope handle_scope(pIsolate);
diff --git a/fpdfsdk/javascript/global.cpp b/fpdfsdk/javascript/global.cpp
index a450606..92fbc9e 100644
--- a/fpdfsdk/javascript/global.cpp
+++ b/fpdfsdk/javascript/global.cpp
@@ -60,12 +60,12 @@
   UpdateGlobalPersistentVariables();
 }
 
-bool JSGlobalAlternate::QueryProperty(const FX_WCHAR* propname) {
+bool JSGlobalAlternate::QueryProperty(const wchar_t* propname) {
   return CFX_WideString(propname) != L"setPersistent";
 }
 
 bool JSGlobalAlternate::DelProperty(CJS_Runtime* pRuntime,
-                                    const FX_WCHAR* propname,
+                                    const wchar_t* propname,
                                     CFX_WideString& sError) {
   auto it = m_mapGlobal.find(CFX_ByteString::FromUnicode(propname));
   if (it == m_mapGlobal.end())
@@ -76,7 +76,7 @@
 }
 
 bool JSGlobalAlternate::DoProperty(CJS_Runtime* pRuntime,
-                                   const FX_WCHAR* propname,
+                                   const wchar_t* propname,
                                    CJS_PropValue& vp,
                                    CFX_WideString& sError) {
   if (vp.IsSetting()) {
diff --git a/fpdfsdk/javascript/global.h b/fpdfsdk/javascript/global.h
index e313929..7c00248 100644
--- a/fpdfsdk/javascript/global.h
+++ b/fpdfsdk/javascript/global.h
@@ -39,13 +39,13 @@
                      const std::vector<CJS_Value>& params,
                      CJS_Value& vRet,
                      CFX_WideString& sError);
-  bool QueryProperty(const FX_WCHAR* propname);
+  bool QueryProperty(const wchar_t* propname);
   bool DoProperty(CJS_Runtime* pRuntime,
-                  const FX_WCHAR* propname,
+                  const wchar_t* propname,
                   CJS_PropValue& vp,
                   CFX_WideString& sError);
   bool DelProperty(CJS_Runtime* pRuntime,
-                   const FX_WCHAR* propname,
+                   const wchar_t* propname,
                    CFX_WideString& sError);
   void Initial(CPDFSDK_FormFillEnvironment* pFormFillEnv);
 
diff --git a/fpdfsdk/javascript/util.cpp b/fpdfsdk/javascript/util.cpp
index 3221cfb..32104b4 100644
--- a/fpdfsdk/javascript/util.cpp
+++ b/fpdfsdk/javascript/util.cpp
@@ -46,14 +46,14 @@
 // Map PDF-style directives to equivalent wcsftime directives. Not
 // all have direct equivalents, though.
 struct TbConvert {
-  const FX_WCHAR* lpszJSMark;
-  const FX_WCHAR* lpszCppMark;
+  const wchar_t* lpszJSMark;
+  const wchar_t* lpszCppMark;
 };
 
 // Map PDF-style directives lacking direct wcsftime directives to
 // the value with which they will be replaced.
 struct TbConvertAdditional {
-  const FX_WCHAR* lpszJSMark;
+  const wchar_t* lpszJSMark;
   int iValue;
 };
 
@@ -318,7 +318,7 @@
 
 enum CaseMode { kPreserveCase, kUpperCase, kLowerCase };
 
-static FX_WCHAR TranslateCase(FX_WCHAR input, CaseMode eMode) {
+static wchar_t TranslateCase(wchar_t input, CaseMode eMode) {
   if (eMode == kLowerCase && input >= 'A' && input <= 'Z')
     return input | 0x20;
   if (eMode == kUpperCase && input >= 'a' && input <= 'z')
@@ -456,7 +456,7 @@
     return false;
   }
 
-  CFX_WideString wStr(static_cast<FX_WCHAR>(arg));
+  CFX_WideString wStr(static_cast<wchar_t>(arg));
   vRet = CJS_Value(pRuntime, wStr.c_str());
   return true;
 }
diff --git a/fpdfsdk/pdfwindow/PWL_Icon.cpp b/fpdfsdk/pdfwindow/PWL_Icon.cpp
index b0d0c76..4ce6329 100644
--- a/fpdfsdk/pdfwindow/PWL_Icon.cpp
+++ b/fpdfsdk/pdfwindow/PWL_Icon.cpp
@@ -96,7 +96,7 @@
   return CFX_ByteString();
 }
 
-void CPWL_Image::SetImageAlias(const FX_CHAR* sImageAlias) {
+void CPWL_Image::SetImageAlias(const char* sImageAlias) {
   m_sImageAlias = sImageAlias;
 }
 
diff --git a/fpdfsdk/pdfwindow/PWL_Icon.h b/fpdfsdk/pdfwindow/PWL_Icon.h
index 4b62db4..bdcae9f 100644
--- a/fpdfsdk/pdfwindow/PWL_Icon.h
+++ b/fpdfsdk/pdfwindow/PWL_Icon.h
@@ -26,7 +26,7 @@
   void GetImageSize(FX_FLOAT& fWidth, FX_FLOAT& fHeight);
   CFX_Matrix GetImageMatrix();
   CFX_ByteString GetImageAlias();
-  void SetImageAlias(const FX_CHAR* sImageAlias);
+  void SetImageAlias(const char* sImageAlias);
 
  protected:
   CPDF_Stream* m_pPDFStream;
diff --git a/fpdfsdk/pdfwindow/PWL_ListBox.cpp b/fpdfsdk/pdfwindow/PWL_ListBox.cpp
index ed96e20..18b45b5 100644
--- a/fpdfsdk/pdfwindow/PWL_ListBox.cpp
+++ b/fpdfsdk/pdfwindow/PWL_ListBox.cpp
@@ -428,7 +428,7 @@
   return m_pList->GetCount();
 }
 
-int32_t CPWL_ListBox::FindNext(int32_t nIndex, FX_WCHAR nChar) const {
+int32_t CPWL_ListBox::FindNext(int32_t nIndex, wchar_t nChar) const {
   return m_pList->FindNext(nIndex, nChar);
 }
 
diff --git a/fpdfsdk/pdfwindow/PWL_ListBox.h b/fpdfsdk/pdfwindow/PWL_ListBox.h
index f9108a1..fa78b37 100644
--- a/fpdfsdk/pdfwindow/PWL_ListBox.h
+++ b/fpdfsdk/pdfwindow/PWL_ListBox.h
@@ -92,7 +92,7 @@
   int32_t GetCurSel() const;
   bool IsItemSelected(int32_t nItemIndex) const;
   int32_t GetTopVisibleIndex() const;
-  int32_t FindNext(int32_t nIndex, FX_WCHAR nChar) const;
+  int32_t FindNext(int32_t nIndex, wchar_t nChar) const;
   CFX_FloatRect GetContentRect() const;
   FX_FLOAT GetFirstHeight() const;
   CFX_FloatRect GetListRect() const;
diff --git a/fxjs/cfxjse_context.cpp b/fxjs/cfxjse_context.cpp
index d82f875..076e6cf 100644
--- a/fxjs/cfxjse_context.cpp
+++ b/fxjs/cfxjse_context.cpp
@@ -11,7 +11,7 @@
 
 namespace {
 
-const FX_CHAR szCompatibleModeScript[] =
+const char szCompatibleModeScript[] =
     "(function(global, list) {\n"
     "  'use strict';\n"
     "  var objname;\n"
@@ -202,7 +202,7 @@
   ExecuteScript(szCompatibleModeScript, nullptr, nullptr);
 }
 
-bool CFXJSE_Context::ExecuteScript(const FX_CHAR* szScript,
+bool CFXJSE_Context::ExecuteScript(const char* szScript,
                                    CFXJSE_Value* lpRetValue,
                                    CFXJSE_Value* lpNewThisObject) {
   CFXJSE_ScopeUtil_IsolateHandleContext scope(this);
diff --git a/fxjs/cfxjse_context.h b/fxjs/cfxjse_context.h
index a694514..7b83aee 100644
--- a/fxjs/cfxjse_context.h
+++ b/fxjs/cfxjse_context.h
@@ -30,7 +30,7 @@
   v8::Isolate* GetRuntime() { return m_pIsolate; }
   std::unique_ptr<CFXJSE_Value> GetGlobalObject();
   void EnableCompatibleMode();
-  bool ExecuteScript(const FX_CHAR* szScript,
+  bool ExecuteScript(const char* szScript,
                      CFXJSE_Value* lpRetValue,
                      CFXJSE_Value* lpNewThisObject = nullptr);
 
diff --git a/fxjs/fxjse.h b/fxjs/fxjse.h
index 069a3b2..a29c089 100644
--- a/fxjs/fxjse.h
+++ b/fxjs/fxjse.h
@@ -39,18 +39,18 @@
 };
 
 struct FXJSE_FUNCTION_DESCRIPTOR {
-  const FX_CHAR* name;
+  const char* name;
   FXJSE_FuncCallback callbackProc;
 };
 
 struct FXJSE_PROPERTY_DESCRIPTOR {
-  const FX_CHAR* name;
+  const char* name;
   FXJSE_PropAccessor getProc;
   FXJSE_PropAccessor setProc;
 };
 
 struct FXJSE_CLASS_DESCRIPTOR {
-  const FX_CHAR* name;
+  const char* name;
   FXJSE_FuncCallback constructor;
   const FXJSE_PROPERTY_DESCRIPTOR* properties;
   const FXJSE_FUNCTION_DESCRIPTOR* methods;
diff --git a/xfa/fde/cfde_txtedtbuf.cpp b/xfa/fde/cfde_txtedtbuf.cpp
index 1c2e0d1..ba9f5cd 100644
--- a/xfa/fde/cfde_txtedtbuf.cpp
+++ b/xfa/fde/cfde_txtedtbuf.cpp
@@ -44,7 +44,7 @@
     m_chunks.push_back(NewChunk());
 
   int32_t nTotalCount = m_chunks.size();
-  const FX_WCHAR* lpSrcBuf = wsText.c_str();
+  const wchar_t* lpSrcBuf = wsText.c_str();
   int32_t nLeave = nTextLength;
   int32_t nCopyedLength = GetChunkSize();
   for (i = 0; i < nTotalCount && nLeave > 0; i++) {
@@ -54,7 +54,7 @@
 
     ChunkHeader* chunk = m_chunks[i].get();
     FXSYS_memcpy(chunk->wChars.get(), lpSrcBuf,
-                 nCopyedLength * sizeof(FX_WCHAR));
+                 nCopyedLength * sizeof(wchar_t));
     nLeave -= nCopyedLength;
     lpSrcBuf += nCopyedLength;
     chunk->nUsed = nCopyedLength;
@@ -66,7 +66,7 @@
   return GetRange(0, m_nTotal);
 }
 
-FX_WCHAR CFDE_TxtEdtBuf::GetCharByIndex(int32_t nIndex) const {
+wchar_t CFDE_TxtEdtBuf::GetCharByIndex(int32_t nIndex) const {
   ASSERT(nIndex >= 0 && nIndex < GetTextLength());
 
   ChunkHeader* pChunkHeader = nullptr;
@@ -79,7 +79,7 @@
   }
   ASSERT(pChunkHeader);
 
-  FX_WCHAR* buf = pChunkHeader->wChars.get();
+  wchar_t* buf = pChunkHeader->wChars.get();
   return buf[pChunkHeader->nUsed - (nTotal - nIndex)];
 }
 
@@ -98,17 +98,17 @@
   int32_t nCount = m_chunks.size();
 
   CFX_WideString wsText;
-  FX_WCHAR* lpDstBuf = wsText.GetBuffer(nLength);
+  wchar_t* lpDstBuf = wsText.GetBuffer(nLength);
   int32_t nChunkIndex = chunkIndex;
 
   ChunkHeader* chunkHeader = m_chunks[nChunkIndex].get();
   int32_t nCopyLength = chunkHeader->nUsed - charIndex;
-  FX_WCHAR* lpSrcBuf = chunkHeader->wChars.get() + charIndex;
+  wchar_t* lpSrcBuf = chunkHeader->wChars.get() + charIndex;
   while (nLeave > 0) {
     if (nLeave <= nCopyLength) {
       nCopyLength = nLeave;
     }
-    FXSYS_memcpy(lpDstBuf, lpSrcBuf, nCopyLength * sizeof(FX_WCHAR));
+    FXSYS_memcpy(lpDstBuf, lpSrcBuf, nCopyLength * sizeof(wchar_t));
     nChunkIndex++;
     if (nChunkIndex >= nCount) {
       break;
@@ -125,7 +125,7 @@
 }
 
 void CFDE_TxtEdtBuf::Insert(int32_t nPos,
-                            const FX_WCHAR* lpText,
+                            const wchar_t* lpText,
                             int32_t nLength) {
   ASSERT(nPos >= 0 && nPos <= m_nTotal);
   ASSERT(nLength > 0);
@@ -142,7 +142,7 @@
     int32_t nCopy = chunk->nUsed - charIndex;
 
     FXSYS_memcpy(newChunk->wChars.get(), chunk->wChars.get() + charIndex,
-                 nCopy * sizeof(FX_WCHAR));
+                 nCopy * sizeof(wchar_t));
     chunk->nUsed -= nCopy;
     chunkIndex++;
 
@@ -158,7 +158,7 @@
       int32_t nFree = GetChunkSize() - chunk->nUsed;
       int32_t nCopy = std::min(nLengthTemp, nFree);
       FXSYS_memcpy(chunk->wChars.get() + chunk->nUsed, lpText,
-                   nCopy * sizeof(FX_WCHAR));
+                   nCopy * sizeof(wchar_t));
       lpText += nCopy;
       nLengthTemp -= nCopy;
       chunk->nUsed += nCopy;
@@ -170,7 +170,7 @@
     auto chunk = NewChunk();
 
     int32_t nCopy = std::min(nLengthTemp, GetChunkSize());
-    FXSYS_memcpy(chunk->wChars.get(), lpText, nCopy * sizeof(FX_WCHAR));
+    FXSYS_memcpy(chunk->wChars.get(), lpText, nCopy * sizeof(wchar_t));
     lpText += nCopy;
     nLengthTemp -= nCopy;
     chunk->nUsed = nCopy;
@@ -195,7 +195,7 @@
     int32_t nDelete = std::min(nFirstPart, nLength);
     FXSYS_memmove(chunk->wChars.get() + nFirstPart - nDelete,
                   chunk->wChars.get() + nFirstPart,
-                  nMovePart * sizeof(FX_WCHAR));
+                  nMovePart * sizeof(wchar_t));
     chunk->nUsed -= nDelete;
     nLength -= nDelete;
     endChunkIndex--;
@@ -255,7 +255,7 @@
 
 std::unique_ptr<CFDE_TxtEdtBuf::ChunkHeader> CFDE_TxtEdtBuf::NewChunk() {
   auto chunk = pdfium::MakeUnique<ChunkHeader>();
-  chunk->wChars.reset(FX_Alloc(FX_WCHAR, GetChunkSize()));
+  chunk->wChars.reset(FX_Alloc(wchar_t, GetChunkSize()));
   chunk->nUsed = 0;
   return chunk;
 }
@@ -264,7 +264,7 @@
 
 CFDE_TxtEdtBuf::ChunkHeader::~ChunkHeader() {}
 
-CFDE_TxtEdtBuf::Iterator::Iterator(CFDE_TxtEdtBuf* pBuf, FX_WCHAR wcAlias)
+CFDE_TxtEdtBuf::Iterator::Iterator(CFDE_TxtEdtBuf* pBuf, wchar_t wcAlias)
     : m_pBuf(pBuf),
       m_nCurChunk(0),
       m_nCurIndex(0),
@@ -332,10 +332,10 @@
   return m_nIndex;
 }
 
-FX_WCHAR CFDE_TxtEdtBuf::Iterator::GetChar() {
+wchar_t CFDE_TxtEdtBuf::Iterator::GetChar() {
   ASSERT(m_nIndex >= 0 && m_nIndex < m_pBuf->m_nTotal);
   if (m_Alias == 0 || m_nIndex == (m_pBuf->m_nTotal - 1)) {
-    FX_WCHAR* buf = m_pBuf->m_chunks[m_nCurChunk]->wChars.get();
+    wchar_t* buf = m_pBuf->m_chunks[m_nCurChunk]->wChars.get();
     return buf[m_nCurIndex];
   }
   return m_Alias;
diff --git a/xfa/fde/cfde_txtedtbuf.h b/xfa/fde/cfde_txtedtbuf.h
index 9eeee56..6a20ae0 100644
--- a/xfa/fde/cfde_txtedtbuf.h
+++ b/xfa/fde/cfde_txtedtbuf.h
@@ -21,11 +21,11 @@
  public:
   class Iterator : public IFX_CharIter {
    public:
-    explicit Iterator(CFDE_TxtEdtBuf* pBuf, FX_WCHAR wcAlias = 0);
+    explicit Iterator(CFDE_TxtEdtBuf* pBuf, wchar_t wcAlias = 0);
     ~Iterator() override;
 
     bool Next(bool bPrev = false) override;
-    FX_WCHAR GetChar() override;
+    wchar_t GetChar() override;
 
     void SetAt(int32_t nIndex) override;
     int32_t GetAt() const override;
@@ -38,7 +38,7 @@
     int32_t m_nCurChunk;
     int32_t m_nCurIndex;
     int32_t m_nIndex;
-    FX_WCHAR m_Alias;
+    wchar_t m_Alias;
   };
 
   CFDE_TxtEdtBuf();
@@ -50,10 +50,10 @@
   void SetText(const CFX_WideString& wsText);
   CFX_WideString GetText() const;
 
-  FX_WCHAR GetCharByIndex(int32_t nIndex) const;
+  wchar_t GetCharByIndex(int32_t nIndex) const;
   CFX_WideString GetRange(int32_t nBegin, int32_t nCount) const;
 
-  void Insert(int32_t nPos, const FX_WCHAR* lpText, int32_t nLength);
+  void Insert(int32_t nPos, const wchar_t* lpText, int32_t nLength);
   void Delete(int32_t nIndex, int32_t nLength);
   void Clear(bool bRelease);
 
@@ -67,7 +67,7 @@
     ~ChunkHeader();
 
     int32_t nUsed;
-    std::unique_ptr<FX_WCHAR, FxFreeDeleter> wChars;
+    std::unique_ptr<wchar_t, FxFreeDeleter> wChars;
   };
 
   void SetChunkSizeForTesting(size_t size);
diff --git a/xfa/fde/cfde_txtedtdorecord_insert.cpp b/xfa/fde/cfde_txtedtdorecord_insert.cpp
index b80b15d..0e3f921 100644
--- a/xfa/fde/cfde_txtedtdorecord_insert.cpp
+++ b/xfa/fde/cfde_txtedtdorecord_insert.cpp
@@ -12,12 +12,12 @@
 CFDE_TxtEdtDoRecord_Insert::CFDE_TxtEdtDoRecord_Insert(
     CFDE_TxtEdtEngine* pEngine,
     int32_t nCaret,
-    const FX_WCHAR* lpText,
+    const wchar_t* lpText,
     int32_t nLength)
     : m_pEngine(pEngine), m_nCaret(nCaret) {
   ASSERT(pEngine);
-  FX_WCHAR* lpBuffer = m_wsInsert.GetBuffer(nLength);
-  FXSYS_memcpy(lpBuffer, lpText, nLength * sizeof(FX_WCHAR));
+  wchar_t* lpBuffer = m_wsInsert.GetBuffer(nLength);
+  FXSYS_memcpy(lpBuffer, lpText, nLength * sizeof(wchar_t));
   m_wsInsert.ReleaseBuffer();
 }
 
diff --git a/xfa/fde/cfde_txtedtdorecord_insert.h b/xfa/fde/cfde_txtedtdorecord_insert.h
index e80453e..0592237 100644
--- a/xfa/fde/cfde_txtedtdorecord_insert.h
+++ b/xfa/fde/cfde_txtedtdorecord_insert.h
@@ -17,7 +17,7 @@
  public:
   CFDE_TxtEdtDoRecord_Insert(CFDE_TxtEdtEngine* pEngine,
                              int32_t nCaret,
-                             const FX_WCHAR* lpText,
+                             const wchar_t* lpText,
                              int32_t nLength);
   ~CFDE_TxtEdtDoRecord_Insert() override;
 
diff --git a/xfa/fde/cfde_txtedtengine.cpp b/xfa/fde/cfde_txtedtengine.cpp
index 0a955ff..33efa2d 100644
--- a/xfa/fde/cfde_txtedtengine.cpp
+++ b/xfa/fde/cfde_txtedtengine.cpp
@@ -122,7 +122,7 @@
       int32_t nPos = pStream->GetBOM(bom);
       pStream->Seek(FX_STREAMSEEK_Begin, nPos);
       int32_t nPlateSize = std::min(nStreamLength, m_pTxtBuf->GetChunkSize());
-      FX_WCHAR* lpwstr = FX_Alloc(FX_WCHAR, nPlateSize);
+      wchar_t* lpwstr = FX_Alloc(wchar_t, nPlateSize);
       bool bEos = false;
       while (!bEos) {
         int32_t nRead = pStream->ReadString(lpwstr, nPlateSize, bEos);
@@ -142,8 +142,8 @@
   int32_t nLength = wsText.GetLength();
   if (nLength > 0) {
     CFX_WideString wsTemp;
-    FX_WCHAR* lpBuffer = wsTemp.GetBuffer(nLength);
-    FXSYS_memcpy(lpBuffer, wsText.c_str(), nLength * sizeof(FX_WCHAR));
+    wchar_t* lpBuffer = wsTemp.GetBuffer(nLength);
+    FXSYS_memcpy(lpBuffer, wsText.c_str(), nLength * sizeof(wchar_t));
     ReplaceParagEnd(lpBuffer, nLength, false);
     wsTemp.ReleaseBuffer(nLength);
     if (m_nLimit > 0 && nLength > m_nLimit) {
@@ -315,14 +315,14 @@
 }
 
 int32_t CFDE_TxtEdtEngine::Insert(int32_t nStart,
-                                  const FX_WCHAR* lpText,
+                                  const wchar_t* lpText,
                                   int32_t nLength) {
   if (IsLocked()) {
     return FDE_TXTEDT_MODIFY_RET_F_Locked;
   }
   CFX_WideString wsTemp;
-  FX_WCHAR* lpBuffer = wsTemp.GetBuffer(nLength);
-  FXSYS_memcpy(lpBuffer, lpText, nLength * sizeof(FX_WCHAR));
+  wchar_t* lpBuffer = wsTemp.GetBuffer(nLength);
+  FXSYS_memcpy(lpBuffer, lpText, nLength * sizeof(wchar_t));
   ReplaceParagEnd(lpBuffer, nLength, false);
   wsTemp.ReleaseBuffer(nLength);
   bool bPart = false;
@@ -349,7 +349,7 @@
       while (nLength > 0) {
         CFX_WideString wsText = GetPreInsertText(m_nCaret, lpBuffer, nLength);
         int32_t nTotal = wsText.GetLength();
-        FX_WCHAR* lpBuf = wsText.GetBuffer(nTotal);
+        wchar_t* lpBuf = wsText.GetBuffer(nTotal);
         for (int32_t i = 0; i < nTotal; i++) {
           lpBuf[i] = m_wcAliasChar;
         }
@@ -393,7 +393,7 @@
   m_ChangeInfo.wsInsert = CFX_WideString(lpBuffer, nLength);
   nStart = m_nCaret;
   nStart += nLength;
-  FX_WCHAR wChar = m_pTxtBuf->GetCharByIndex(nStart - 1);
+  wchar_t wChar = m_pTxtBuf->GetCharByIndex(nStart - 1);
   bool bBefore = true;
   if (wChar != L'\n' && wChar != L'\r') {
     nStart--;
@@ -498,7 +498,7 @@
 
   m_ChangeInfo.wsInsert = CFX_WideString(wsReplace.c_str(), nTextLength);
   nStart += nTextLength;
-  FX_WCHAR wChar = m_pTxtBuf->GetCharByIndex(nStart - 1);
+  wchar_t wChar = m_pTxtBuf->GetCharByIndex(nStart - 1);
   bool bBefore = true;
   if (wChar != L'\n' && wChar != L'\r') {
     nStart--;
@@ -515,7 +515,7 @@
   m_nLimit = nLimit;
 }
 
-void CFDE_TxtEdtEngine::SetAliasChar(FX_WCHAR wcAlias) {
+void CFDE_TxtEdtEngine::SetAliasChar(wchar_t wcAlias) {
   m_wcAliasChar = wcAlias;
 }
 
@@ -733,7 +733,7 @@
 }
 
 CFX_WideString CFDE_TxtEdtEngine::GetPreInsertText(int32_t nIndex,
-                                                   const FX_WCHAR* lpText,
+                                                   const wchar_t* lpText,
                                                    int32_t nLength) {
   CFX_WideString wsText = GetText(0, GetTextBufLength());
   int32_t nSelIndex = 0;
@@ -746,12 +746,12 @@
   }
   CFX_WideString wsTemp;
   int32_t nOldLength = wsText.GetLength();
-  const FX_WCHAR* pOldBuffer = wsText.c_str();
-  FX_WCHAR* lpBuffer = wsTemp.GetBuffer(nOldLength + nLength);
-  FXSYS_memcpy(lpBuffer, pOldBuffer, (nIndex) * sizeof(FX_WCHAR));
-  FXSYS_memcpy(lpBuffer + nIndex, lpText, nLength * sizeof(FX_WCHAR));
+  const wchar_t* pOldBuffer = wsText.c_str();
+  wchar_t* lpBuffer = wsTemp.GetBuffer(nOldLength + nLength);
+  FXSYS_memcpy(lpBuffer, pOldBuffer, (nIndex) * sizeof(wchar_t));
+  FXSYS_memcpy(lpBuffer + nIndex, lpText, nLength * sizeof(wchar_t));
   FXSYS_memcpy(lpBuffer + nIndex + nLength, pOldBuffer + nIndex,
-               (nOldLength - nIndex) * sizeof(FX_WCHAR));
+               (nOldLength - nIndex) * sizeof(wchar_t));
   wsTemp.ReleaseBuffer(nOldLength + nLength);
   wsText = wsTemp;
   return wsText;
@@ -759,7 +759,7 @@
 
 CFX_WideString CFDE_TxtEdtEngine::GetPreReplaceText(int32_t nIndex,
                                                     int32_t nOriginLength,
-                                                    const FX_WCHAR* lpText,
+                                                    const wchar_t* lpText,
                                                     int32_t nLength) {
   CFX_WideString wsText = GetText(0, GetTextBufLength());
   int32_t nSelIndex = 0;
@@ -778,7 +778,7 @@
 }
 
 void CFDE_TxtEdtEngine::Inner_Insert(int32_t nStart,
-                                     const FX_WCHAR* lpText,
+                                     const wchar_t* lpText,
                                      int32_t nLength) {
   ASSERT(nLength > 0);
   FDE_TXTEDTPARAGPOS ParagPos;
@@ -795,8 +795,8 @@
   int32_t nLeavePart = ParagPos.nCharIndex;
   int32_t nCutPart = pParag->GetTextLength() - ParagPos.nCharIndex;
   int32_t nTextStart = 0;
-  FX_WCHAR wCurChar = L' ';
-  const FX_WCHAR* lpPos = lpText;
+  wchar_t wCurChar = L' ';
+  const wchar_t* lpPos = lpText;
   bool bFirst = true;
   int32_t nParagIndex = ParagPos.nParagIndex;
   for (i = 0; i < nLength; i++, lpPos++) {
@@ -926,7 +926,7 @@
 
 void CFDE_TxtEdtEngine::RebuildParagraphs() {
   RemoveAllParags();
-  FX_WCHAR wChar = L' ';
+  wchar_t wChar = L' ';
   int32_t nParagStart = 0;
   int32_t nIndex = 0;
   auto pIter = pdfium::MakeUnique<CFDE_TxtEdtBuf::Iterator>(m_pTxtBuf.get());
@@ -1045,11 +1045,11 @@
   m_pTextBreak->SetCharSpace(m_Param.fCharSpace);
 }
 
-bool CFDE_TxtEdtEngine::ReplaceParagEnd(FX_WCHAR*& lpText,
+bool CFDE_TxtEdtEngine::ReplaceParagEnd(wchar_t*& lpText,
                                         int32_t& nLength,
                                         bool bPreIsCR) {
   for (int32_t i = 0; i < nLength; i++) {
-    FX_WCHAR wc = lpText[i];
+    wchar_t wc = lpText[i];
     switch (wc) {
       case L'\r': {
         lpText[i] = m_wLineEnd;
@@ -1060,7 +1060,7 @@
           int32_t nNext = i + 1;
           if (nNext < nLength) {
             FXSYS_memmove(lpText + i, lpText + nNext,
-                          (nLength - nNext) * sizeof(FX_WCHAR));
+                          (nLength - nNext) * sizeof(wchar_t));
           }
           i--;
           nLength--;
@@ -1090,29 +1090,29 @@
 }
 
 void CFDE_TxtEdtEngine::RecoverParagEnd(CFX_WideString& wsText) const {
-  FX_WCHAR wc = (m_nFirstLineEnd == FDE_TXTEDIT_LINEEND_CR) ? L'\n' : L'\r';
+  wchar_t wc = (m_nFirstLineEnd == FDE_TXTEDIT_LINEEND_CR) ? L'\n' : L'\r';
   if (m_nFirstLineEnd == FDE_TXTEDIT_LINEEND_CRLF) {
     CFX_ArrayTemplate<int32_t> PosArr;
     int32_t nLength = wsText.GetLength();
     int32_t i = 0;
-    FX_WCHAR* lpPos = const_cast<FX_WCHAR*>(wsText.c_str());
+    wchar_t* lpPos = const_cast<wchar_t*>(wsText.c_str());
     for (i = 0; i < nLength; i++, lpPos++) {
       if (*lpPos == m_wLineEnd) {
         *lpPos = wc;
         PosArr.Add(i);
       }
     }
-    const FX_WCHAR* lpSrcBuf = wsText.c_str();
+    const wchar_t* lpSrcBuf = wsText.c_str();
     CFX_WideString wsTemp;
     int32_t nCount = PosArr.GetSize();
-    FX_WCHAR* lpDstBuf = wsTemp.GetBuffer(nLength + nCount);
+    wchar_t* lpDstBuf = wsTemp.GetBuffer(nLength + nCount);
     int32_t nDstPos = 0;
     int32_t nSrcPos = 0;
     for (i = 0; i < nCount; i++) {
       int32_t nPos = PosArr[i];
       int32_t nCopyLen = nPos - nSrcPos + 1;
       FXSYS_memcpy(lpDstBuf + nDstPos, lpSrcBuf + nSrcPos,
-                   nCopyLen * sizeof(FX_WCHAR));
+                   nCopyLen * sizeof(wchar_t));
       nDstPos += nCopyLen;
       nSrcPos += nCopyLen;
       lpDstBuf[nDstPos] = L'\n';
@@ -1120,13 +1120,13 @@
     }
     if (nSrcPos < nLength) {
       FXSYS_memcpy(lpDstBuf + nDstPos, lpSrcBuf + nSrcPos,
-                   (nLength - nSrcPos) * sizeof(FX_WCHAR));
+                   (nLength - nSrcPos) * sizeof(wchar_t));
     }
     wsTemp.ReleaseBuffer(nLength + nCount);
     wsText = wsTemp;
   } else {
     int32_t nLength = wsText.GetLength();
-    FX_WCHAR* lpBuf = const_cast<FX_WCHAR*>(wsText.c_str());
+    wchar_t* lpBuf = const_cast<wchar_t*>(wsText.c_str());
     for (int32_t i = 0; i < nLength; i++, lpBuf++) {
       if (*lpBuf == m_wLineEnd)
         *lpBuf = wc;
@@ -1305,7 +1305,7 @@
   }
   nIndex = nStart + nCount - 1;
   ASSERT(nIndex <= GetTextBufLength());
-  FX_WCHAR wChar = m_pTxtBuf->GetCharByIndex(nIndex);
+  wchar_t wChar = m_pTxtBuf->GetCharByIndex(nIndex);
   bool bBefore = false;
   if (nIndex <= GetTextBufLength()) {
     if (wChar == L'\r') {
@@ -1339,7 +1339,7 @@
   TextPos2ParagPos(nIndex, ParagPos);
   CFDE_TxtEdtParag* pParag = m_ParagPtrArray[ParagPos.nParagIndex];
   nIndex = pParag->GetStartIndex() + pParag->GetTextLength() - 1;
-  FX_WCHAR wChar = m_pTxtBuf->GetCharByIndex(nIndex);
+  wchar_t wChar = m_pTxtBuf->GetCharByIndex(nIndex);
   if (wChar == L'\n' && nIndex > 0) {
     nIndex--;
     wChar = m_pTxtBuf->GetCharByIndex(nIndex);
diff --git a/xfa/fde/cfde_txtedtengine.h b/xfa/fde/cfde_txtedtengine.h
index ee1cc10..63d97d3 100644
--- a/xfa/fde/cfde_txtedtengine.h
+++ b/xfa/fde/cfde_txtedtengine.h
@@ -46,7 +46,7 @@
   void Unlock();
   bool IsLocked() const;
 
-  int32_t Insert(int32_t nStart, const FX_WCHAR* lpText, int32_t nLength);
+  int32_t Insert(int32_t nStart, const wchar_t* lpText, int32_t nLength);
   int32_t Delete(int32_t nStart, bool bBackspace = false);
   int32_t DeleteRange(int32_t nStart, int32_t nCount = -1);
   int32_t Replace(int32_t nStart,
@@ -54,7 +54,7 @@
                   const CFX_WideString& wsReplace);
 
   void SetLimit(int32_t nLimit);
-  void SetAliasChar(FX_WCHAR wcAlias);
+  void SetAliasChar(wchar_t wcAlias);
 
   void RemoveSelRange(int32_t nStart, int32_t nCount);
 
@@ -83,7 +83,7 @@
                      int32_t nStartLineofParag,
                      int32_t nLineIndex,
                      int32_t& nStartLine) const;
-  FX_WCHAR GetAliasChar() const { return m_wcAliasChar; }
+  wchar_t GetAliasChar() const { return m_wcAliasChar; }
 
  private:
   friend class CFDE_TxtEdtDoRecord_Insert;
@@ -100,14 +100,14 @@
     int32_t nCharIndex;
   };
 
-  void Inner_Insert(int32_t nStart, const FX_WCHAR* lpText, int32_t nLength);
+  void Inner_Insert(int32_t nStart, const wchar_t* lpText, int32_t nLength);
   CFX_WideString GetPreDeleteText(int32_t nIndex, int32_t nLength);
   CFX_WideString GetPreInsertText(int32_t nIndex,
-                                  const FX_WCHAR* lpText,
+                                  const wchar_t* lpText,
                                   int32_t nLength);
   CFX_WideString GetPreReplaceText(int32_t nIndex,
                                    int32_t nOriginLength,
-                                   const FX_WCHAR* lpText,
+                                   const wchar_t* lpText,
                                    int32_t nLength);
 
   void Inner_DeleteRange(int32_t nStart, int32_t nCount = -1);
@@ -120,7 +120,7 @@
   void UpdatePages();
   void UpdateTxtBreak();
 
-  bool ReplaceParagEnd(FX_WCHAR*& lpText,
+  bool ReplaceParagEnd(wchar_t*& lpText,
                        int32_t& nLength,
                        bool bPreIsCR = false);
   void RecoverParagEnd(CFX_WideString& wsText) const;
@@ -165,10 +165,10 @@
   uint32_t m_dwFindFlags;
   bool m_bLock;
   int32_t m_nLimit;
-  FX_WCHAR m_wcAliasChar;
+  wchar_t m_wcAliasChar;
   int32_t m_nFirstLineEnd;
   bool m_bAutoLineEnd;
-  FX_WCHAR m_wLineEnd;
+  wchar_t m_wLineEnd;
   FDE_TXTEDT_TEXTCHANGE_INFO m_ChangeInfo;
 };
 
diff --git a/xfa/fde/cfde_txtedtpage.cpp b/xfa/fde/cfde_txtedtpage.cpp
index f0a33d0..f229a01 100644
--- a/xfa/fde/cfde_txtedtpage.cpp
+++ b/xfa/fde/cfde_txtedtpage.cpp
@@ -109,7 +109,7 @@
             bBefore = true;
             return m_pEditEngine->GetTextBufLength();
           }
-          FX_WCHAR wChar = m_pEditEngine->GetTextBuf()->GetCharByIndex(nCaret);
+          wchar_t wChar = m_pEditEngine->GetTextBuf()->GetCharByIndex(nCaret);
           if (wChar == L'\n' || wChar == L'\r') {
             if (wChar == L'\n') {
               if (m_pEditEngine->GetTextBuf()->GetCharByIndex(nCaret - 1) ==
@@ -234,7 +234,7 @@
   }
   CFDE_TxtEdtBuf* pBuf = m_pEditEngine->GetTextBuf();
   const FDE_TXTEDTPARAMS* pParams = m_pEditEngine->GetEditParams();
-  FX_WCHAR wcAlias = 0;
+  wchar_t wcAlias = 0;
   if (pParams->dwMode & FDE_TEXTEDITMODE_Password) {
     wcAlias = m_pEditEngine->GetAliasChar();
   }
@@ -287,7 +287,7 @@
     if (bReload) {
       dwBreakStatus = pBreak->EndBreak(CFX_BreakType::Paragraph);
     } else {
-      FX_WCHAR wAppend = pIter->GetChar();
+      wchar_t wAppend = pIter->GetChar();
       dwBreakStatus = pBreak->AppendChar(wAppend);
     }
     if (pIter->GetAt() == nPageEnd && CFX_BreakTypeNoneOrPiece(dwBreakStatus))
@@ -308,11 +308,11 @@
         }
         FX_FLOAT fParaBreakWidth = 0.0f;
         if (!CFX_BreakTypeNoneOrPiece(pPiece->m_dwStatus)) {
-          FX_WCHAR wRtChar = pParams->wLineBreakChar;
+          wchar_t wRtChar = pParams->wLineBreakChar;
           if (TxtEdtPiece.nCount >= 2) {
-            FX_WCHAR wChar = pBuf->GetCharByIndex(
+            wchar_t wChar = pBuf->GetCharByIndex(
                 m_nPageStart + TxtEdtPiece.nStart + TxtEdtPiece.nCount - 1);
-            FX_WCHAR wCharPre = pBuf->GetCharByIndex(
+            wchar_t wCharPre = pBuf->GetCharByIndex(
                 m_nPageStart + TxtEdtPiece.nStart + TxtEdtPiece.nCount - 2);
             if (wChar == wRtChar) {
               fParaBreakWidth += fDefCharWidth;
@@ -321,7 +321,7 @@
               fParaBreakWidth += fDefCharWidth;
             }
           } else if (TxtEdtPiece.nCount >= 1) {
-            FX_WCHAR wChar = pBuf->GetCharByIndex(
+            wchar_t wChar = pBuf->GetCharByIndex(
                 m_nPageStart + TxtEdtPiece.nStart + TxtEdtPiece.nCount - 1);
             if (wChar == wRtChar) {
               fParaBreakWidth += fDefCharWidth;
@@ -434,13 +434,13 @@
   return &m_Pieces[nPos - 1];
 }
 
-FX_WCHAR CFDE_TxtEdtPage::GetChar(const FDE_TEXTEDITPIECE* pIdentity,
-                                  int32_t index) const {
+wchar_t CFDE_TxtEdtPage::GetChar(const FDE_TEXTEDITPIECE* pIdentity,
+                                 int32_t index) const {
   int32_t nIndex = m_nPageStart + pIdentity->nStart + index;
   if (nIndex != m_pIter->GetAt())
     m_pIter->SetAt(nIndex);
 
-  FX_WCHAR wChar = m_pIter->GetChar();
+  wchar_t wChar = m_pIter->GetChar();
   m_pIter->Next();
   return wChar;
 }
diff --git a/xfa/fde/cfde_txtedtpage.h b/xfa/fde/cfde_txtedtpage.h
index 6d700d2..11c8050 100644
--- a/xfa/fde/cfde_txtedtpage.h
+++ b/xfa/fde/cfde_txtedtpage.h
@@ -49,7 +49,7 @@
   FX_POSITION GetFirstPosition();
   FDE_TEXTEDITPIECE* GetNext(FX_POSITION& pos, IFDE_VisualSet*& pVisualSet);
 
-  FX_WCHAR GetChar(const FDE_TEXTEDITPIECE* pIdentity, int32_t index) const;
+  wchar_t GetChar(const FDE_TEXTEDITPIECE* pIdentity, int32_t index) const;
   int32_t GetWidth(const FDE_TEXTEDITPIECE* pIdentity, int32_t index) const;
 
  private:
diff --git a/xfa/fde/cfde_txtedtparag.cpp b/xfa/fde/cfde_txtedtparag.cpp
index 79dcc2f..d22fa53 100644
--- a/xfa/fde/cfde_txtedtparag.cpp
+++ b/xfa/fde/cfde_txtedtparag.cpp
@@ -37,7 +37,7 @@
   CFX_TxtBreak* pTxtBreak = m_pEngine->GetTextBreak();
   CFDE_TxtEdtBuf* pTxtBuf = m_pEngine->GetTextBuf();
   const FDE_TXTEDTPARAMS* pParam = m_pEngine->GetEditParams();
-  FX_WCHAR wcAlias = 0;
+  wchar_t wcAlias = 0;
   if (pParam->dwMode & FDE_TEXTEDITMODE_Password)
     wcAlias = m_pEngine->GetAliasChar();
 
@@ -52,7 +52,7 @@
     if (bReload) {
       dwBreakStatus = pTxtBreak->EndBreak(CFX_BreakType::Paragraph);
     } else {
-      FX_WCHAR wAppend = pIter->GetChar();
+      wchar_t wAppend = pIter->GetChar();
       dwBreakStatus = pTxtBreak->AppendChar(wAppend);
     }
     if (pIter->GetAt() + 1 == nEndIndex &&
@@ -117,7 +117,7 @@
     if (bReload) {
       dwBreakStatus = pTxtBreak->EndBreak(CFX_BreakType::Paragraph);
     } else {
-      FX_WCHAR wAppend = pIter->GetChar();
+      wchar_t wAppend = pIter->GetChar();
       dwBreakStatus = pTxtBreak->AppendChar(wAppend);
     }
     if (pIter->GetAt() + 1 == nEndIndex &&
diff --git a/xfa/fde/cfde_txtedttextset.cpp b/xfa/fde/cfde_txtedttextset.cpp
index a6503f4..78a7ec4 100644
--- a/xfa/fde/cfde_txtedttextset.cpp
+++ b/xfa/fde/cfde_txtedttextset.cpp
@@ -26,7 +26,7 @@
 
 int32_t CFDE_TxtEdtTextSet::GetString(FDE_TEXTEDITPIECE* pPiece,
                                       CFX_WideString& wsText) {
-  FX_WCHAR* pBuffer = wsText.GetBuffer(pPiece->nCount);
+  wchar_t* pBuffer = wsText.GetBuffer(pPiece->nCount);
   for (int32_t i = 0; i < pPiece->nCount; i++)
     pBuffer[i] = m_pPage->GetChar(pPiece, i);
 
diff --git a/xfa/fde/cfx_chariter.cpp b/xfa/fde/cfx_chariter.cpp
index 568ecd6..ff5b0d9 100644
--- a/xfa/fde/cfx_chariter.cpp
+++ b/xfa/fde/cfx_chariter.cpp
@@ -26,7 +26,7 @@
   return true;
 }
 
-FX_WCHAR CFX_CharIter::GetChar() {
+wchar_t CFX_CharIter::GetChar() {
   return m_wsText.GetAt(m_nIndex);
 }
 
diff --git a/xfa/fde/cfx_chariter.h b/xfa/fde/cfx_chariter.h
index d122af2..ab554b2 100644
--- a/xfa/fde/cfx_chariter.h
+++ b/xfa/fde/cfx_chariter.h
@@ -17,7 +17,7 @@
   ~CFX_CharIter() override;
 
   bool Next(bool bPrev = false) override;
-  FX_WCHAR GetChar() override;
+  wchar_t GetChar() override;
   void SetAt(int32_t nIndex) override;
   int32_t GetAt() const override;
   bool IsEOF(bool bTail = true) const override;
diff --git a/xfa/fde/cfx_wordbreak.cpp b/xfa/fde/cfx_wordbreak.cpp
index 2d37ba1..9ab3a92 100644
--- a/xfa/fde/cfx_wordbreak.cpp
+++ b/xfa/fde/cfx_wordbreak.cpp
@@ -2770,7 +2770,7 @@
         0x00, 0x00, 0x00, 0x00, 0x05, 0x55, 0x00, 0x00,
 };
 
-FX_WordBreakProp GetWordBreakProperty(FX_WCHAR wcCodePoint) {
+FX_WordBreakProp GetWordBreakProperty(wchar_t wcCodePoint) {
   uint32_t dwProperty =
       (uint32_t)gs_FX_WordBreak_CodePointProperties[wcCodePoint >> 1];
   return (FX_WordBreakProp)(((wcCodePoint)&1) ? (dwProperty & 0x0F)
@@ -2836,7 +2836,7 @@
   if (nWordLength <= 0) {
     return;
   }
-  FX_WCHAR* lpBuf = wsWord.GetBuffer(nWordLength);
+  wchar_t* lpBuf = wsWord.GetBuffer(nWordLength);
   std::unique_ptr<IFX_CharIter> pTempIter(m_pPreIter->Clone());
   int32_t i = 0;
   while (pTempIter->GetAt() <= m_pCurIter->GetAt()) {
diff --git a/xfa/fde/css/cfde_cssdeclaration.cpp b/xfa/fde/css/cfde_cssdeclaration.cpp
index 3c776ca..2d1e707 100644
--- a/xfa/fde/css/cfde_cssdeclaration.cpp
+++ b/xfa/fde/css/cfde_cssdeclaration.cpp
@@ -23,7 +23,7 @@
   return (FXSYS_toHexDigit(hexHigh) << 4) + FXSYS_toHexDigit(hexLow);
 }
 
-bool ParseCSSNumber(const FX_WCHAR* pszValue,
+bool ParseCSSNumber(const wchar_t* pszValue,
                     int32_t iValueLen,
                     FX_FLOAT& fValue,
                     FDE_CSSNumberType& eUnit) {
@@ -50,7 +50,7 @@
 }  // namespace
 
 // static
-bool CFDE_CSSDeclaration::ParseCSSString(const FX_WCHAR* pszValue,
+bool CFDE_CSSDeclaration::ParseCSSString(const wchar_t* pszValue,
                                          int32_t iValueLen,
                                          int32_t* iOffset,
                                          int32_t* iLength) {
@@ -58,7 +58,7 @@
   *iOffset = 0;
   *iLength = iValueLen;
   if (iValueLen >= 2) {
-    FX_WCHAR first = pszValue[0], last = pszValue[iValueLen - 1];
+    wchar_t first = pszValue[0], last = pszValue[iValueLen - 1];
     if ((first == '\"' && last == '\"') || (first == '\'' && last == '\'')) {
       *iOffset = 1;
       *iLength -= 2;
@@ -68,7 +68,7 @@
 }
 
 // static.
-bool CFDE_CSSDeclaration::ParseCSSColor(const FX_WCHAR* pszValue,
+bool CFDE_CSSDeclaration::ParseCSSColor(const wchar_t* pszValue,
                                         int32_t iValueLen,
                                         FX_ARGB* dwColor) {
   ASSERT(pszValue && iValueLen > 0);
@@ -159,7 +159,7 @@
                                       const CFX_WideStringC& value) {
   ASSERT(!value.IsEmpty());
 
-  const FX_WCHAR* pszValue = value.c_str();
+  const wchar_t* pszValue = value.c_str();
   int32_t iValueLen = value.GetLength();
 
   bool bImportant = false;
@@ -277,7 +277,7 @@
 }
 
 CFX_RetainPtr<CFDE_CSSValue> CFDE_CSSDeclaration::ParseNumber(
-    const FX_WCHAR* pszValue,
+    const wchar_t* pszValue,
     int32_t iValueLen) {
   FX_FLOAT fValue;
   FDE_CSSNumberType eUnit;
@@ -287,7 +287,7 @@
 }
 
 CFX_RetainPtr<CFDE_CSSValue> CFDE_CSSDeclaration::ParseEnum(
-    const FX_WCHAR* pszValue,
+    const wchar_t* pszValue,
     int32_t iValueLen) {
   const FDE_CSSPropertyValueTable* pValue =
       FDE_GetCSSPropertyValueByName(CFX_WideStringC(pszValue, iValueLen));
@@ -296,7 +296,7 @@
 }
 
 CFX_RetainPtr<CFDE_CSSValue> CFDE_CSSDeclaration::ParseColor(
-    const FX_WCHAR* pszValue,
+    const wchar_t* pszValue,
     int32_t iValueLen) {
   FX_ARGB dwColor;
   if (!ParseCSSColor(pszValue, iValueLen, &dwColor))
@@ -305,7 +305,7 @@
 }
 
 CFX_RetainPtr<CFDE_CSSValue> CFDE_CSSDeclaration::ParseString(
-    const FX_WCHAR* pszValue,
+    const wchar_t* pszValue,
     int32_t iValueLen) {
   int32_t iOffset;
   if (!ParseCSSString(pszValue, iValueLen, &iOffset, &iValueLen))
@@ -320,10 +320,10 @@
 
 void CFDE_CSSDeclaration::ParseValueListProperty(
     const FDE_CSSPropertyTable* pTable,
-    const FX_WCHAR* pszValue,
+    const wchar_t* pszValue,
     int32_t iValueLen,
     bool bImportant) {
-  FX_WCHAR separator =
+  wchar_t separator =
       (pTable->eName == FDE_CSSProperty::FontFamily) ? ',' : ' ';
   CFDE_CSSValueListParser parser(pszValue, iValueLen, separator);
 
@@ -444,7 +444,7 @@
 }
 
 bool CFDE_CSSDeclaration::ParseBorderProperty(
-    const FX_WCHAR* pszValue,
+    const wchar_t* pszValue,
     int32_t iValueLen,
     CFX_RetainPtr<CFDE_CSSValue>& pWidth) const {
   pWidth.Reset(nullptr);
@@ -497,7 +497,7 @@
   return true;
 }
 
-void CFDE_CSSDeclaration::ParseFontProperty(const FX_WCHAR* pszValue,
+void CFDE_CSSDeclaration::ParseFontProperty(const wchar_t* pszValue,
                                             int32_t iValueLen,
                                             bool bImportant) {
   CFDE_CSSValueListParser parser(pszValue, iValueLen, '/');
diff --git a/xfa/fde/css/cfde_cssdeclaration.h b/xfa/fde/css/cfde_cssdeclaration.h
index eb28730..3c2e058 100644
--- a/xfa/fde/css/cfde_cssdeclaration.h
+++ b/xfa/fde/css/cfde_cssdeclaration.h
@@ -23,11 +23,11 @@
   using const_custom_iterator =
       std::vector<std::unique_ptr<CFDE_CSSCustomProperty>>::const_iterator;
 
-  static bool ParseCSSString(const FX_WCHAR* pszValue,
+  static bool ParseCSSString(const wchar_t* pszValue,
                              int32_t iValueLen,
                              int32_t* iOffset,
                              int32_t* iLength);
-  static bool ParseCSSColor(const FX_WCHAR* pszValue,
+  static bool ParseCSSColor(const wchar_t* pszValue,
                             int32_t iValueLen,
                             FX_ARGB* dwColor);
 
@@ -53,19 +53,19 @@
 
   size_t PropertyCountForTesting() const;
 
-  FX_ARGB ParseColorForTest(const FX_WCHAR* pszValue,
+  FX_ARGB ParseColorForTest(const wchar_t* pszValue,
                             int32_t iValueLen,
                             FX_ARGB* dwColor) const;
 
  private:
-  void ParseFontProperty(const FX_WCHAR* pszValue,
+  void ParseFontProperty(const wchar_t* pszValue,
                          int32_t iValueLen,
                          bool bImportant);
-  bool ParseBorderProperty(const FX_WCHAR* pszValue,
+  bool ParseBorderProperty(const wchar_t* pszValue,
                            int32_t iValueLen,
                            CFX_RetainPtr<CFDE_CSSValue>& pWidth) const;
   void ParseValueListProperty(const FDE_CSSPropertyTable* pTable,
-                              const FX_WCHAR* pszValue,
+                              const wchar_t* pszValue,
                               int32_t iValueLen,
                               bool bImportant);
   void Add4ValuesProperty(const std::vector<CFX_RetainPtr<CFDE_CSSValue>>& list,
@@ -74,13 +74,13 @@
                           FDE_CSSProperty eTop,
                           FDE_CSSProperty eRight,
                           FDE_CSSProperty eBottom);
-  CFX_RetainPtr<CFDE_CSSValue> ParseNumber(const FX_WCHAR* pszValue,
+  CFX_RetainPtr<CFDE_CSSValue> ParseNumber(const wchar_t* pszValue,
                                            int32_t iValueLen);
-  CFX_RetainPtr<CFDE_CSSValue> ParseEnum(const FX_WCHAR* pszValue,
+  CFX_RetainPtr<CFDE_CSSValue> ParseEnum(const wchar_t* pszValue,
                                          int32_t iValueLen);
-  CFX_RetainPtr<CFDE_CSSValue> ParseColor(const FX_WCHAR* pszValue,
+  CFX_RetainPtr<CFDE_CSSValue> ParseColor(const wchar_t* pszValue,
                                           int32_t iValueLen);
-  CFX_RetainPtr<CFDE_CSSValue> ParseString(const FX_WCHAR* pszValue,
+  CFX_RetainPtr<CFDE_CSSValue> ParseString(const wchar_t* pszValue,
                                            int32_t iValueLen);
   void AddPropertyHolder(FDE_CSSProperty eProperty,
                          CFX_RetainPtr<CFDE_CSSValue> pValue,
diff --git a/xfa/fde/css/cfde_cssselector.cpp b/xfa/fde/css/cfde_cssselector.cpp
index 0358023..6842d58 100644
--- a/xfa/fde/css/cfde_cssselector.cpp
+++ b/xfa/fde/css/cfde_cssselector.cpp
@@ -12,14 +12,14 @@
 
 namespace {
 
-bool IsCSSChar(FX_WCHAR wch) {
+bool IsCSSChar(wchar_t wch) {
   return (wch >= 'a' && wch <= 'z') || (wch >= 'A' && wch <= 'Z');
 }
 
-int32_t GetCSSNameLen(const FX_WCHAR* psz, const FX_WCHAR* pEnd) {
-  const FX_WCHAR* pStart = psz;
+int32_t GetCSSNameLen(const wchar_t* psz, const wchar_t* pEnd) {
+  const wchar_t* pStart = psz;
   while (psz < pEnd) {
-    FX_WCHAR wch = *psz;
+    wchar_t wch = *psz;
     if (IsCSSChar(wch) || (wch >= '0' && wch <= '9') || wch == '_' ||
         wch == '-') {
       ++psz;
@@ -33,7 +33,7 @@
 }  // namespace
 
 CFDE_CSSSelector::CFDE_CSSSelector(FDE_CSSSelectorType eType,
-                                   const FX_WCHAR* psz,
+                                   const wchar_t* psz,
                                    int32_t iLen,
                                    bool bIgnoreCase)
     : m_eType(eType),
@@ -58,9 +58,9 @@
     const CFX_WideStringC& str) {
   ASSERT(!str.IsEmpty());
 
-  const FX_WCHAR* psz = str.c_str();
-  const FX_WCHAR* pStart = psz;
-  const FX_WCHAR* pEnd = psz + str.GetLength();
+  const wchar_t* psz = str.c_str();
+  const wchar_t* pStart = psz;
+  const wchar_t* pEnd = psz + str.GetLength();
   for (; psz < pEnd; ++psz) {
     switch (*psz) {
       case '>':
@@ -72,7 +72,7 @@
 
   std::unique_ptr<CFDE_CSSSelector> pFirst = nullptr;
   for (psz = pStart; psz < pEnd;) {
-    FX_WCHAR wch = *psz;
+    wchar_t wch = *psz;
     if (IsCSSChar(wch) || wch == '*') {
       int32_t iNameLen = wch == '*' ? 1 : GetCSSNameLen(psz, pEnd);
       auto p = pdfium::MakeUnique<CFDE_CSSSelector>(
diff --git a/xfa/fde/css/cfde_cssselector.h b/xfa/fde/css/cfde_cssselector.h
index d585b3f..048c513 100644
--- a/xfa/fde/css/cfde_cssselector.h
+++ b/xfa/fde/css/cfde_cssselector.h
@@ -19,7 +19,7 @@
       const CFX_WideStringC& str);
 
   CFDE_CSSSelector(FDE_CSSSelectorType eType,
-                   const FX_WCHAR* psz,
+                   const wchar_t* psz,
                    int32_t iLen,
                    bool bIgnoreCase);
   ~CFDE_CSSSelector();
diff --git a/xfa/fde/css/cfde_cssstylesheet.cpp b/xfa/fde/css/cfde_cssstylesheet.cpp
index e259e2f..175289b 100644
--- a/xfa/fde/css/cfde_cssstylesheet.cpp
+++ b/xfa/fde/css/cfde_cssstylesheet.cpp
@@ -34,7 +34,7 @@
   return m_RuleArray[index].get();
 }
 
-bool CFDE_CSSStyleSheet::LoadBuffer(const FX_WCHAR* pBuffer, int32_t iBufSize) {
+bool CFDE_CSSStyleSheet::LoadBuffer(const wchar_t* pBuffer, int32_t iBufSize) {
   ASSERT(pBuffer && iBufSize > 0);
 
   auto pSyntax = pdfium::MakeUnique<CFDE_CSSSyntaxParser>();
diff --git a/xfa/fde/css/cfde_cssstylesheet.h b/xfa/fde/css/cfde_cssstylesheet.h
index 4de3772..fa73460 100644
--- a/xfa/fde/css/cfde_cssstylesheet.h
+++ b/xfa/fde/css/cfde_cssstylesheet.h
@@ -21,7 +21,7 @@
   CFDE_CSSStyleSheet();
   ~CFDE_CSSStyleSheet();
 
-  bool LoadBuffer(const FX_WCHAR* pBuffer, int32_t iBufSize);
+  bool LoadBuffer(const wchar_t* pBuffer, int32_t iBufSize);
 
   int32_t CountRules() const;
   CFDE_CSSStyleRule* GetRule(int32_t index) const;
@@ -34,7 +34,7 @@
   void SkipRuleSet(CFDE_CSSSyntaxParser* pSyntax);
 
   std::vector<std::unique_ptr<CFDE_CSSStyleRule>> m_RuleArray;
-  std::unordered_map<uint32_t, FX_WCHAR*> m_StringCache;
+  std::unordered_map<uint32_t, wchar_t*> m_StringCache;
 };
 
 #endif  // XFA_FDE_CSS_CFDE_CSSSTYLESHEET_H_
diff --git a/xfa/fde/css/cfde_cssstylesheet_unittest.cpp b/xfa/fde/css/cfde_cssstylesheet_unittest.cpp
index 9d8ecb9..0f450e9 100644
--- a/xfa/fde/css/cfde_cssstylesheet_unittest.cpp
+++ b/xfa/fde/css/cfde_cssstylesheet_unittest.cpp
@@ -27,7 +27,7 @@
 
   void TearDown() override { decl_ = nullptr; }
 
-  void LoadAndVerifyDecl(const FX_WCHAR* buf,
+  void LoadAndVerifyDecl(const wchar_t* buf,
                          const std::vector<CFX_WideString>& selectors,
                          size_t decl_count) {
     ASSERT(sheet_);
@@ -87,7 +87,7 @@
 };
 
 TEST_F(CFDE_CSSStyleSheetTest, ParseMultipleSelectors) {
-  const FX_WCHAR* buf =
+  const wchar_t* buf =
       L"a { border: 10px; }\nb { text-decoration: underline; }";
   EXPECT_TRUE(sheet_->LoadBuffer(buf, FXSYS_wcslen(buf)));
   EXPECT_EQ(2, sheet_->CountRules());
@@ -136,7 +136,7 @@
 }
 
 TEST_F(CFDE_CSSStyleSheetTest, ParseChildSelectors) {
-  const FX_WCHAR* buf = L"a b c { border: 10px; }";
+  const wchar_t* buf = L"a b c { border: 10px; }";
   EXPECT_TRUE(sheet_->LoadBuffer(buf, FXSYS_wcslen(buf)));
   EXPECT_EQ(1, sheet_->CountRules());
 
@@ -171,7 +171,7 @@
 }
 
 TEST_F(CFDE_CSSStyleSheetTest, ParseUnhandledSelectors) {
-  const FX_WCHAR* buf = L"a > b { padding: 0; }";
+  const wchar_t* buf = L"a > b { padding: 0; }";
   EXPECT_TRUE(sheet_->LoadBuffer(buf, FXSYS_wcslen(buf)));
   EXPECT_EQ(0, sheet_->CountRules());
 
diff --git a/xfa/fde/css/cfde_csssyntaxparser.cpp b/xfa/fde/css/cfde_csssyntaxparser.cpp
index 2f7bcce..fada76b 100644
--- a/xfa/fde/css/cfde_csssyntaxparser.cpp
+++ b/xfa/fde/css/cfde_csssyntaxparser.cpp
@@ -14,7 +14,7 @@
 
 namespace {
 
-bool IsSelectorStart(FX_WCHAR wch) {
+bool IsSelectorStart(wchar_t wch) {
   return wch == '.' || wch == '#' || wch == '*' || (wch >= 'a' && wch <= 'z') ||
          (wch >= 'A' && wch <= 'Z');
 }
@@ -32,7 +32,7 @@
   m_TextPlane.Reset();
 }
 
-bool CFDE_CSSSyntaxParser::Init(const FX_WCHAR* pBuffer,
+bool CFDE_CSSSyntaxParser::Init(const wchar_t* pBuffer,
                                 int32_t iBufferSize,
                                 int32_t iTextDatSize,
                                 bool bOnlyDeclaration) {
@@ -65,7 +65,7 @@
       m_eStatus = FDE_CSSSyntaxStatus::EOS;
       return m_eStatus;
     }
-    FX_WCHAR wch;
+    wchar_t wch;
     while (!m_TextPlane.IsEOF()) {
       wch = m_TextPlane.GetChar();
       switch (m_eMode) {
@@ -198,7 +198,7 @@
   return true;
 }
 
-bool CFDE_CSSSyntaxParser::AppendChar(FX_WCHAR wch) {
+bool CFDE_CSSSyntaxParser::AppendChar(wchar_t wch) {
   m_TextPlane.MoveNext();
   if (m_TextData.GetLength() > 0 || wch > ' ') {
     m_TextData.AppendChar(wch);
diff --git a/xfa/fde/css/cfde_csssyntaxparser.h b/xfa/fde/css/cfde_csssyntaxparser.h
index b583b98..a5e79d5 100644
--- a/xfa/fde/css/cfde_csssyntaxparser.h
+++ b/xfa/fde/css/cfde_csssyntaxparser.h
@@ -40,7 +40,7 @@
   CFDE_CSSSyntaxParser();
   ~CFDE_CSSSyntaxParser();
 
-  bool Init(const FX_WCHAR* pBuffer,
+  bool Init(const wchar_t* pBuffer,
             int32_t iBufferSize,
             int32_t iTextDatSize = 32,
             bool bOnlyDeclaration = false);
@@ -53,7 +53,7 @@
   int32_t SwitchToComment();
 
   bool RestoreMode();
-  bool AppendChar(FX_WCHAR wch);
+  bool AppendChar(wchar_t wch);
   int32_t SaveTextData();
   bool IsCharsetEnabled() const {
     return (m_dwCheck & FDE_CSSSYNTAXCHECK_AllowCharset) != 0;
diff --git a/xfa/fde/css/cfde_csstextbuf.cpp b/xfa/fde/css/cfde_csstextbuf.cpp
index 83b2899..5df09f0 100644
--- a/xfa/fde/css/cfde_csstextbuf.cpp
+++ b/xfa/fde/css/cfde_csstextbuf.cpp
@@ -27,9 +27,9 @@
   m_iDatPos = m_iDatLen = m_iBufLen;
 }
 
-bool CFDE_CSSTextBuf::AttachBuffer(const FX_WCHAR* pBuffer, int32_t iBufLen) {
+bool CFDE_CSSTextBuf::AttachBuffer(const wchar_t* pBuffer, int32_t iBufLen) {
   Reset();
-  m_pBuffer = const_cast<FX_WCHAR*>(pBuffer);
+  m_pBuffer = const_cast<wchar_t*>(pBuffer);
   m_iDatLen = m_iBufLen = iBufLen;
   return m_bExtBuf = true;
 }
@@ -63,9 +63,9 @@
   if (m_bExtBuf)
     return false;
   if (!m_pBuffer)
-    m_pBuffer = FX_Alloc(FX_WCHAR, iDesiredSize);
+    m_pBuffer = FX_Alloc(wchar_t, iDesiredSize);
   else if (m_iBufLen != iDesiredSize)
-    m_pBuffer = FX_Realloc(FX_WCHAR, m_pBuffer, iDesiredSize);
+    m_pBuffer = FX_Realloc(wchar_t, m_pBuffer, iDesiredSize);
   else
     return true;
 
@@ -81,6 +81,6 @@
   ASSERT(iStart >= 0 && iLength >= 0);
 
   iLength = std::max(std::min(iLength, m_iDatLen - iStart), 0);
-  FXSYS_memmove(m_pBuffer, m_pBuffer + iStart, iLength * sizeof(FX_WCHAR));
+  FXSYS_memmove(m_pBuffer, m_pBuffer + iStart, iLength * sizeof(wchar_t));
   m_iDatLen = iLength;
 }
diff --git a/xfa/fde/css/cfde_csstextbuf.h b/xfa/fde/css/cfde_csstextbuf.h
index df151e0..9ade44b 100644
--- a/xfa/fde/css/cfde_csstextbuf.h
+++ b/xfa/fde/css/cfde_csstextbuf.h
@@ -17,13 +17,13 @@
   CFDE_CSSTextBuf();
   ~CFDE_CSSTextBuf();
 
-  bool AttachBuffer(const FX_WCHAR* pBuffer, int32_t iBufLen);
+  bool AttachBuffer(const wchar_t* pBuffer, int32_t iBufLen);
   bool EstimateSize(int32_t iAllocSize);
   int32_t LoadFromStream(const CFX_RetainPtr<IFGAS_Stream>& pTxtStream,
                          int32_t iStreamOffset,
                          int32_t iMaxChars,
                          bool& bEOS);
-  bool AppendChar(FX_WCHAR wch) {
+  bool AppendChar(wchar_t wch) {
     if (m_iDatLen >= m_iBufLen && !ExpandBuf(m_iBufLen * 2))
       return false;
     m_pBuffer[m_iDatLen++] = wch;
@@ -43,21 +43,21 @@
   void Subtract(int32_t iStart, int32_t iLength);
   bool IsEOF() const { return m_iDatPos >= m_iDatLen; }
 
-  FX_WCHAR GetAt(int32_t index) const { return m_pBuffer[index]; }
-  FX_WCHAR GetChar() const { return m_pBuffer[m_iDatPos]; }
-  FX_WCHAR GetNextChar() const {
+  wchar_t GetAt(int32_t index) const { return m_pBuffer[index]; }
+  wchar_t GetChar() const { return m_pBuffer[m_iDatPos]; }
+  wchar_t GetNextChar() const {
     return (m_iDatPos + 1 >= m_iDatLen) ? 0 : m_pBuffer[m_iDatPos + 1];
   }
 
   void MoveNext() { m_iDatPos++; }
 
   int32_t GetLength() const { return m_iDatLen; }
-  const FX_WCHAR* GetBuffer() const { return m_pBuffer; }
+  const wchar_t* GetBuffer() const { return m_pBuffer; }
 
  protected:
   bool ExpandBuf(int32_t iDesiredSize);
   bool m_bExtBuf;
-  FX_WCHAR* m_pBuffer;
+  wchar_t* m_pBuffer;
   int32_t m_iBufLen;
   int32_t m_iDatLen;
   int32_t m_iDatPos;
diff --git a/xfa/fde/css/cfde_cssvaluelistparser.cpp b/xfa/fde/css/cfde_cssvaluelistparser.cpp
index 42c3296..36d5edc 100644
--- a/xfa/fde/css/cfde_cssvaluelistparser.cpp
+++ b/xfa/fde/css/cfde_cssvaluelistparser.cpp
@@ -6,15 +6,15 @@
 
 #include "xfa/fde/css/cfde_cssvaluelistparser.h"
 
-CFDE_CSSValueListParser::CFDE_CSSValueListParser(const FX_WCHAR* psz,
+CFDE_CSSValueListParser::CFDE_CSSValueListParser(const wchar_t* psz,
                                                  int32_t iLen,
-                                                 FX_WCHAR separator)
+                                                 wchar_t separator)
     : m_Separator(separator), m_pCur(psz), m_pEnd(psz + iLen) {
   ASSERT(psz && iLen > 0);
 }
 
 bool CFDE_CSSValueListParser::NextValue(FDE_CSSPrimitiveType& eType,
-                                        const FX_WCHAR*& pStart,
+                                        const wchar_t*& pStart,
                                         int32_t& iLength) {
   while (m_pCur < m_pEnd && (*m_pCur <= ' ' || *m_pCur == m_Separator))
     ++m_pCur;
@@ -25,7 +25,7 @@
   eType = FDE_CSSPrimitiveType::Unknown;
   pStart = m_pCur;
   iLength = 0;
-  FX_WCHAR wch = *m_pCur;
+  wchar_t wch = *m_pCur;
   if (wch == '#') {
     iLength = SkipTo(' ', false, false);
     if (iLength == 4 || iLength == 7)
@@ -56,10 +56,10 @@
   return m_pCur <= m_pEnd && iLength > 0;
 }
 
-int32_t CFDE_CSSValueListParser::SkipTo(FX_WCHAR wch,
+int32_t CFDE_CSSValueListParser::SkipTo(wchar_t wch,
                                         bool breakOnSpace,
                                         bool matchBrackets) {
-  const FX_WCHAR* pStart = m_pCur;
+  const wchar_t* pStart = m_pCur;
   int32_t bracketCount = 0;
   while (m_pCur < m_pEnd && *m_pCur != wch) {
     if (breakOnSpace && *m_pCur <= ' ')
diff --git a/xfa/fde/css/cfde_cssvaluelistparser.h b/xfa/fde/css/cfde_cssvaluelistparser.h
index 734aed8..e41ee5c 100644
--- a/xfa/fde/css/cfde_cssvaluelistparser.h
+++ b/xfa/fde/css/cfde_cssvaluelistparser.h
@@ -12,21 +12,19 @@
 
 class CFDE_CSSValueListParser {
  public:
-  CFDE_CSSValueListParser(const FX_WCHAR* psz,
-                          int32_t iLen,
-                          FX_WCHAR separator);
+  CFDE_CSSValueListParser(const wchar_t* psz, int32_t iLen, wchar_t separator);
 
   bool NextValue(FDE_CSSPrimitiveType& eType,
-                 const FX_WCHAR*& pStart,
+                 const wchar_t*& pStart,
                  int32_t& iLength);
 
-  FX_WCHAR m_Separator;
+  wchar_t m_Separator;
 
  private:
-  int32_t SkipTo(FX_WCHAR wch, bool breakOnSpace, bool matchBrackets);
+  int32_t SkipTo(wchar_t wch, bool breakOnSpace, bool matchBrackets);
 
-  const FX_WCHAR* m_pCur;
-  const FX_WCHAR* m_pEnd;
+  const wchar_t* m_pCur;
+  const wchar_t* m_pEnd;
 };
 
 #endif  // XFA_FDE_CSS_CFDE_CSSVALUELISTPARSER_H_
diff --git a/xfa/fde/css/cfde_cssvaluelistparser_unittest.cpp b/xfa/fde/css/cfde_cssvaluelistparser_unittest.cpp
index 71bb807..2864c84 100644
--- a/xfa/fde/css/cfde_cssvaluelistparser_unittest.cpp
+++ b/xfa/fde/css/cfde_cssvaluelistparser_unittest.cpp
@@ -11,7 +11,7 @@
 
 TEST(CFDE_CSSValueListParser, rgb_short) {
   FDE_CSSPrimitiveType type;
-  const FX_WCHAR* start;
+  const wchar_t* start;
   int32_t len;
 
   auto parser = pdfium::MakeUnique<CFDE_CSSValueListParser>(L"#abc", 4, L' ');
@@ -42,7 +42,7 @@
 
 TEST(CFDE_CSSValueListParser, number_parsing) {
   FDE_CSSPrimitiveType type;
-  const FX_WCHAR* start;
+  const wchar_t* start;
   int32_t len;
 
   auto parser = pdfium::MakeUnique<CFDE_CSSValueListParser>(L"1234", 4, L' ');
@@ -84,7 +84,7 @@
 
 TEST(CFDE_CSSValueListParser, string_parsing) {
   FDE_CSSPrimitiveType type;
-  const FX_WCHAR* start;
+  const wchar_t* start;
   int32_t len;
 
   auto parser =
@@ -107,7 +107,7 @@
 
 TEST(CFDE_CSSValueListParser, multiparsing) {
   FDE_CSSPrimitiveType type;
-  const FX_WCHAR* start;
+  const wchar_t* start;
   int32_t len;
 
   auto parser =
diff --git a/xfa/fde/css/fde_cssdatatable.h b/xfa/fde/css/fde_cssdatatable.h
index afb0b85..d1745f5 100644
--- a/xfa/fde/css/fde_cssdatatable.h
+++ b/xfa/fde/css/fde_cssdatatable.h
@@ -20,14 +20,14 @@
 
 struct FDE_CSSPropertyTable {
   FDE_CSSProperty eName;
-  const FX_WCHAR* pszName;
+  const wchar_t* pszName;
   uint32_t dwHash;
   uint32_t dwType;
 };
 
 struct FDE_CSSPropertyValueTable {
   FDE_CSSPropertyValue eName;
-  const FX_WCHAR* pszName;
+  const wchar_t* pszName;
   uint32_t dwHash;
 };
 
diff --git a/xfa/fde/ifde_txtedtengine.h b/xfa/fde/ifde_txtedtengine.h
index 67944e0..f803eff 100644
--- a/xfa/fde/ifde_txtedtengine.h
+++ b/xfa/fde/ifde_txtedtengine.h
@@ -85,8 +85,8 @@
   FX_FLOAT fLineSpace;
   FX_FLOAT fTabWidth;
   bool bTabEquidistant;
-  FX_WCHAR wDefChar;
-  FX_WCHAR wLineBreakChar;
+  wchar_t wDefChar;
+  wchar_t wLineBreakChar;
   int32_t nLineEnd;
   int32_t nHorzScale;
   FX_FLOAT fCharSpace;
diff --git a/xfa/fde/ifx_chariter.h b/xfa/fde/ifx_chariter.h
index c967efd..0e4adc5 100644
--- a/xfa/fde/ifx_chariter.h
+++ b/xfa/fde/ifx_chariter.h
@@ -14,7 +14,7 @@
   virtual ~IFX_CharIter() {}
 
   virtual bool Next(bool bPrev = false) = 0;
-  virtual FX_WCHAR GetChar() = 0;
+  virtual wchar_t GetChar() = 0;
   virtual void SetAt(int32_t nIndex) = 0;
   virtual int32_t GetAt() const = 0;
   virtual bool IsEOF(bool bTail = true) const = 0;
diff --git a/xfa/fde/tto/fde_textout.cpp b/xfa/fde/tto/fde_textout.cpp
index 02b1522..36f341b 100644
--- a/xfa/fde/tto/fde_textout.cpp
+++ b/xfa/fde/tto/fde_textout.cpp
@@ -82,7 +82,7 @@
   m_wsEllipsis = wsEllipsis;
 }
 
-void CFDE_TextOut::SetParagraphBreakChar(FX_WCHAR wch) {
+void CFDE_TextOut::SetParagraphBreakChar(wchar_t wch) {
   m_wParagraphBkChar = wch;
   m_pTxtBreak->SetParagraphBreakChar(wch);
 }
@@ -151,7 +151,7 @@
   return m_iTotalLines;
 }
 
-void CFDE_TextOut::CalcLogicSize(const FX_WCHAR* pwsStr,
+void CFDE_TextOut::CalcLogicSize(const wchar_t* pwsStr,
                                  int32_t iLength,
                                  CFX_SizeF& size) {
   CFX_RectF rtText(0.0f, 0.0f, size.width, size.height);
@@ -159,7 +159,7 @@
   size = rtText.Size();
 }
 
-void CFDE_TextOut::CalcLogicSize(const FX_WCHAR* pwsStr,
+void CFDE_TextOut::CalcLogicSize(const wchar_t* pwsStr,
                                  int32_t iLength,
                                  CFX_RectF& rect) {
   if (!pwsStr || iLength < 1) {
@@ -170,21 +170,21 @@
   }
 }
 
-void CFDE_TextOut::CalcTextSize(const FX_WCHAR* pwsStr,
+void CFDE_TextOut::CalcTextSize(const wchar_t* pwsStr,
                                 int32_t iLength,
                                 CFX_RectF& rect) {
   ASSERT(m_pFont && m_fFontSize >= 1.0f);
   SetLineWidth(rect);
   m_iTotalLines = 0;
-  const FX_WCHAR* pStr = pwsStr;
+  const wchar_t* pStr = pwsStr;
   bool bHotKey = !!(m_dwStyles & FDE_TTOSTYLE_HotKey);
   FX_FLOAT fWidth = 0.0f;
   FX_FLOAT fHeight = 0.0f;
   FX_FLOAT fStartPos = rect.right();
   CFX_BreakType dwBreakStatus = CFX_BreakType::None;
-  FX_WCHAR wPreChar = 0;
-  FX_WCHAR wch;
-  FX_WCHAR wBreak = 0;
+  wchar_t wPreChar = 0;
+  wchar_t wch;
+  wchar_t wBreak = 0;
   while (iLength-- > 0) {
     wch = *pStr++;
     if (wBreak == 0 && (wch == L'\n' || wch == L'\r')) {
@@ -264,7 +264,7 @@
   return true;
 }
 
-void CFDE_TextOut::DrawText(const FX_WCHAR* pwsStr,
+void CFDE_TextOut::DrawText(const wchar_t* pwsStr,
                             int32_t iLength,
                             int32_t x,
                             int32_t y) {
@@ -273,7 +273,7 @@
   DrawText(pwsStr, iLength, rtText);
 }
 
-void CFDE_TextOut::DrawText(const FX_WCHAR* pwsStr,
+void CFDE_TextOut::DrawText(const wchar_t* pwsStr,
                             int32_t iLength,
                             FX_FLOAT x,
                             FX_FLOAT y) {
@@ -281,13 +281,13 @@
            CFX_RectF(x, y, m_fFontSize * 1000.0f, m_fFontSize * 1000.0f));
 }
 
-void CFDE_TextOut::DrawText(const FX_WCHAR* pwsStr,
+void CFDE_TextOut::DrawText(const wchar_t* pwsStr,
                             int32_t iLength,
                             const CFX_Rect& rect) {
   DrawText(pwsStr, iLength, rect.As<FX_FLOAT>());
 }
 
-void CFDE_TextOut::DrawText(const FX_WCHAR* pwsStr,
+void CFDE_TextOut::DrawText(const wchar_t* pwsStr,
                             int32_t iLength,
                             const CFX_RectF& rect) {
   CFX_RectF rtText(rect.left, rect.top, rect.width, rect.height);
@@ -297,7 +297,7 @@
   DrawText(pwsStr, iLength, rtText, m_rtClip);
 }
 
-void CFDE_TextOut::DrawLogicText(const FX_WCHAR* pwsStr,
+void CFDE_TextOut::DrawLogicText(const wchar_t* pwsStr,
                                  int32_t iLength,
                                  FX_FLOAT x,
                                  FX_FLOAT y) {
@@ -305,7 +305,7 @@
   DrawLogicText(pwsStr, iLength, rtText);
 }
 
-void CFDE_TextOut::DrawLogicText(const FX_WCHAR* pwsStr,
+void CFDE_TextOut::DrawLogicText(const wchar_t* pwsStr,
                                  int32_t iLength,
                                  const CFX_RectF& rect) {
   CFX_RectF rtClip(m_rtLogicClip.left, m_rtLogicClip.top, m_rtLogicClip.width,
@@ -314,7 +314,7 @@
   DrawText(pwsStr, iLength, rect, rtClip);
 }
 
-void CFDE_TextOut::DrawText(const FX_WCHAR* pwsStr,
+void CFDE_TextOut::DrawText(const wchar_t* pwsStr,
                             int32_t iLength,
                             const CFX_RectF& rect,
                             const CFX_RectF& rtClip) {
@@ -367,9 +367,9 @@
     return;
   }
   ExpandBuffer(iLength, 1);
-  const FX_WCHAR* pStr = m_wsEllipsis.c_str();
+  const wchar_t* pStr = m_wsEllipsis.c_str();
   CFX_BreakType dwBreakStatus;
-  FX_WCHAR wch;
+  wchar_t wch;
   while (iLength-- > 0) {
     wch = *pStr++;
     dwBreakStatus = m_pTxtBreak->AppendChar(wch);
@@ -399,10 +399,10 @@
   m_pTxtBreak->ClearBreakPieces();
 }
 
-void CFDE_TextOut::LoadText(const FX_WCHAR* pwsStr,
+void CFDE_TextOut::LoadText(const wchar_t* pwsStr,
                             int32_t iLength,
                             const CFX_RectF& rect) {
-  FX_WCHAR* pStr = m_wsText.GetBuffer(iLength);
+  wchar_t* pStr = m_wsText.GetBuffer(iLength);
   int32_t iTxtLength = iLength;
   ExpandBuffer(iTxtLength, 0);
   bool bHotKey = !!(m_dwStyles & FDE_TTOSTYLE_HotKey);
@@ -416,7 +416,7 @@
   int32_t iChars = 0;
   int32_t iPieceWidths = 0;
   CFX_BreakType dwBreakStatus;
-  FX_WCHAR wch;
+  wchar_t wch;
   bool bRet = false;
   while (iTxtLength-- > 0) {
     wch = *pwsStr++;
@@ -591,7 +591,7 @@
 }
 
 void CFDE_TextOut::ReloadLinePiece(CFDE_TTOLine* pLine, const CFX_RectF& rect) {
-  const FX_WCHAR* pwsStr = m_wsText.c_str();
+  const wchar_t* pwsStr = m_wsText.c_str();
   int32_t iPieceWidths = 0;
   FDE_TTOPIECE* pPiece = pLine->GetPtrAt(0);
   int32_t iStartChar = pPiece->iStartChar;
@@ -599,7 +599,7 @@
   int32_t iPieceCount = pLine->GetSize();
   int32_t iPieceIndex = 0;
   CFX_BreakType dwBreakStatus = CFX_BreakType::None;
-  FX_WCHAR wch;
+  wchar_t wch;
   while (iPieceIndex < iPieceCount) {
     int32_t iStar = iStartChar;
     int32_t iEnd = pPiece->iChars + iStar;
diff --git a/xfa/fde/tto/fde_textout.h b/xfa/fde/tto/fde_textout.h
index 1519a81..224a584 100644
--- a/xfa/fde/tto/fde_textout.h
+++ b/xfa/fde/tto/fde_textout.h
@@ -84,7 +84,7 @@
   void SetStyles(uint32_t dwStyles);
   void SetTabWidth(FX_FLOAT fTabWidth);
   void SetEllipsisString(const CFX_WideString& wsEllipsis);
-  void SetParagraphBreakChar(FX_WCHAR wch);
+  void SetParagraphBreakChar(wchar_t wch);
   void SetAlignment(int32_t iAlignment);
   void SetLineSpace(FX_FLOAT fLineSpace);
   void SetDIBitmap(CFX_DIBitmap* pDIB);
@@ -94,38 +94,35 @@
   void SetMatrix(const CFX_Matrix& matrix);
   void SetLineBreakTolerance(FX_FLOAT fTolerance);
 
-  void DrawText(const FX_WCHAR* pwsStr, int32_t iLength, int32_t x, int32_t y);
-  void DrawText(const FX_WCHAR* pwsStr,
-                int32_t iLength,
-                FX_FLOAT x,
-                FX_FLOAT y);
-  void DrawText(const FX_WCHAR* pwsStr, int32_t iLength, const CFX_Rect& rect);
-  void DrawText(const FX_WCHAR* pwsStr, int32_t iLength, const CFX_RectF& rect);
+  void DrawText(const wchar_t* pwsStr, int32_t iLength, int32_t x, int32_t y);
+  void DrawText(const wchar_t* pwsStr, int32_t iLength, FX_FLOAT x, FX_FLOAT y);
+  void DrawText(const wchar_t* pwsStr, int32_t iLength, const CFX_Rect& rect);
+  void DrawText(const wchar_t* pwsStr, int32_t iLength, const CFX_RectF& rect);
 
   void SetLogicClipRect(const CFX_RectF& rtClip);
-  void CalcLogicSize(const FX_WCHAR* pwsStr, int32_t iLength, CFX_SizeF& size);
-  void CalcLogicSize(const FX_WCHAR* pwsStr, int32_t iLength, CFX_RectF& rect);
-  void DrawLogicText(const FX_WCHAR* pwsStr,
+  void CalcLogicSize(const wchar_t* pwsStr, int32_t iLength, CFX_SizeF& size);
+  void CalcLogicSize(const wchar_t* pwsStr, int32_t iLength, CFX_RectF& rect);
+  void DrawLogicText(const wchar_t* pwsStr,
                      int32_t iLength,
                      FX_FLOAT x,
                      FX_FLOAT y);
-  void DrawLogicText(const FX_WCHAR* pwsStr,
+  void DrawLogicText(const wchar_t* pwsStr,
                      int32_t iLength,
                      const CFX_RectF& rect);
   int32_t GetTotalLines();
 
  protected:
-  void CalcTextSize(const FX_WCHAR* pwsStr, int32_t iLength, CFX_RectF& rect);
+  void CalcTextSize(const wchar_t* pwsStr, int32_t iLength, CFX_RectF& rect);
   bool RetrieveLineWidth(CFX_BreakType dwBreakStatus,
                          FX_FLOAT& fStartPos,
                          FX_FLOAT& fWidth,
                          FX_FLOAT& fHeight);
   void SetLineWidth(CFX_RectF& rect);
-  void DrawText(const FX_WCHAR* pwsStr,
+  void DrawText(const wchar_t* pwsStr,
                 int32_t iLength,
                 const CFX_RectF& rect,
                 const CFX_RectF& rtClip);
-  void LoadText(const FX_WCHAR* pwsStr, int32_t iLength, const CFX_RectF& rect);
+  void LoadText(const wchar_t* pwsStr, int32_t iLength, const CFX_RectF& rect);
   void LoadEllipsis();
   void ExpandBuffer(int32_t iSize, int32_t iType);
   void RetrieveEllPieces(std::vector<int32_t>* pCharWidths);
@@ -157,7 +154,7 @@
   int32_t m_iTxtBkAlignment;
   std::vector<int32_t> m_CharWidths;
   std::vector<int32_t> m_EllCharWidths;
-  FX_WCHAR m_wParagraphBkChar;
+  wchar_t m_wParagraphBkChar;
   FX_ARGB m_TxtColor;
   uint32_t m_dwStyles;
   uint32_t m_dwTxtBkStyles;
diff --git a/xfa/fde/xml/fde_xml.h b/xfa/fde/xml/fde_xml.h
index e773b30..399a930 100644
--- a/xfa/fde/xml/fde_xml.h
+++ b/xfa/fde/xml/fde_xml.h
@@ -40,6 +40,6 @@
   FDE_XMLNODETYPE eNodeType;
 };
 
-bool FDE_IsXMLValidChar(FX_WCHAR ch);
+bool FDE_IsXMLValidChar(wchar_t ch);
 
 #endif  // XFA_FDE_XML_FDE_XML_H_
diff --git a/xfa/fde/xml/fde_xml_imp.cpp b/xfa/fde/xml/fde_xml_imp.cpp
index 3e5edaf..541fd98 100644
--- a/xfa/fde/xml/fde_xml_imp.cpp
+++ b/xfa/fde/xml/fde_xml_imp.cpp
@@ -24,7 +24,7 @@
                                            {0x20, 0xD7FF},
                                            {0xE000, 0xFFFD}};
 
-bool FDE_IsXMLWhiteSpace(FX_WCHAR ch) {
+bool FDE_IsXMLWhiteSpace(wchar_t ch) {
   return ch == L' ' || ch == 0x0A || ch == 0x0D || ch == 0x09;
 }
 
@@ -44,7 +44,7 @@
     {0xF900, 0xFDCF, true}, {0xFDF0, 0xFFFD, true},
 };
 
-bool FDE_IsXMLNameChar(FX_WCHAR ch, bool bFirstChar) {
+bool FDE_IsXMLNameChar(wchar_t ch, bool bFirstChar) {
   int32_t iStart = 0;
   int32_t iEnd = FX_ArraySize(g_XMLNameChars) - 1;
   while (iStart <= iEnd) {
@@ -62,7 +62,7 @@
 
 }  // namespace
 
-bool FDE_IsXMLValidChar(FX_WCHAR ch) {
+bool FDE_IsXMLValidChar(wchar_t ch) {
   int32_t iStart = 0;
   int32_t iEnd = FX_ArraySize(g_XMLValidCharRange) - 1;
   while (iStart <= iEnd) {
@@ -137,7 +137,7 @@
   return -1;
 }
 
-CFDE_XMLNode* CFDE_XMLNode::GetPath(const FX_WCHAR* pPath,
+CFDE_XMLNode* CFDE_XMLNode::GetPath(const wchar_t* pPath,
                                     int32_t iLength,
                                     bool bQualifiedName) const {
   ASSERT(pPath);
@@ -148,9 +148,9 @@
     return nullptr;
   }
   CFX_WideString csPath;
-  const FX_WCHAR* pStart = pPath;
-  const FX_WCHAR* pEnd = pPath + iLength;
-  FX_WCHAR ch;
+  const wchar_t* pStart = pPath;
+  const wchar_t* pEnd = pPath + iLength;
+  wchar_t ch;
   while (pStart < pEnd) {
     ch = *pStart++;
     if (ch == L'/') {
@@ -562,7 +562,7 @@
   return false;
 }
 
-bool CFDE_XMLInstruction::HasAttribute(const FX_WCHAR* pwsAttriName) const {
+bool CFDE_XMLInstruction::HasAttribute(const wchar_t* pwsAttriName) const {
   int32_t iCount = pdfium::CollectionSize<int32_t>(m_Attributes);
   for (int32_t i = 0; i < iCount; i += 2) {
     if (m_Attributes[i].Compare(pwsAttriName) == 0) {
@@ -572,9 +572,9 @@
   return false;
 }
 
-void CFDE_XMLInstruction::GetString(const FX_WCHAR* pwsAttriName,
+void CFDE_XMLInstruction::GetString(const wchar_t* pwsAttriName,
                                     CFX_WideString& wsAttriValue,
-                                    const FX_WCHAR* pwsDefValue) const {
+                                    const wchar_t* pwsDefValue) const {
   int32_t iCount = pdfium::CollectionSize<int32_t>(m_Attributes);
   for (int32_t i = 0; i < iCount; i += 2) {
     if (m_Attributes[i].Compare(pwsAttriName) == 0) {
@@ -600,7 +600,7 @@
   m_Attributes.push_back(wsAttriValue);
 }
 
-int32_t CFDE_XMLInstruction::GetInteger(const FX_WCHAR* pwsAttriName,
+int32_t CFDE_XMLInstruction::GetInteger(const wchar_t* pwsAttriName,
                                         int32_t iDefValue) const {
   int32_t iCount = pdfium::CollectionSize<int32_t>(m_Attributes);
   for (int32_t i = 0; i < iCount; i += 2) {
@@ -611,14 +611,14 @@
   return iDefValue;
 }
 
-void CFDE_XMLInstruction::SetInteger(const FX_WCHAR* pwsAttriName,
+void CFDE_XMLInstruction::SetInteger(const wchar_t* pwsAttriName,
                                      int32_t iAttriValue) {
   CFX_WideString wsValue;
   wsValue.Format(L"%d", iAttriValue);
   SetString(pwsAttriName, wsValue);
 }
 
-FX_FLOAT CFDE_XMLInstruction::GetFloat(const FX_WCHAR* pwsAttriName,
+FX_FLOAT CFDE_XMLInstruction::GetFloat(const wchar_t* pwsAttriName,
                                        FX_FLOAT fDefValue) const {
   int32_t iCount = pdfium::CollectionSize<int32_t>(m_Attributes);
   for (int32_t i = 0; i < iCount; i += 2) {
@@ -629,14 +629,14 @@
   return fDefValue;
 }
 
-void CFDE_XMLInstruction::SetFloat(const FX_WCHAR* pwsAttriName,
+void CFDE_XMLInstruction::SetFloat(const wchar_t* pwsAttriName,
                                    FX_FLOAT fAttriValue) {
   CFX_WideString wsValue;
   wsValue.Format(L"%f", fAttriValue);
   SetString(pwsAttriName, wsValue);
 }
 
-void CFDE_XMLInstruction::RemoveAttribute(const FX_WCHAR* pwsAttriName) {
+void CFDE_XMLInstruction::RemoveAttribute(const wchar_t* pwsAttriName) {
   int32_t iCount = pdfium::CollectionSize<int32_t>(m_Attributes);
   for (int32_t i = 0; i < iCount; i += 2) {
     if (m_Attributes[i].Compare(pwsAttriName) == 0) {
@@ -774,7 +774,7 @@
   return false;
 }
 
-bool CFDE_XMLElement::HasAttribute(const FX_WCHAR* pwsAttriName) const {
+bool CFDE_XMLElement::HasAttribute(const wchar_t* pwsAttriName) const {
   int32_t iCount = pdfium::CollectionSize<int32_t>(m_Attributes);
   for (int32_t i = 0; i < iCount; i += 2) {
     if (m_Attributes[i].Compare(pwsAttriName) == 0)
@@ -783,9 +783,9 @@
   return false;
 }
 
-void CFDE_XMLElement::GetString(const FX_WCHAR* pwsAttriName,
+void CFDE_XMLElement::GetString(const wchar_t* pwsAttriName,
                                 CFX_WideString& wsAttriValue,
-                                const FX_WCHAR* pwsDefValue) const {
+                                const wchar_t* pwsDefValue) const {
   int32_t iCount = pdfium::CollectionSize<int32_t>(m_Attributes);
   for (int32_t i = 0; i < iCount; i += 2) {
     if (m_Attributes[i].Compare(pwsAttriName) == 0) {
@@ -811,7 +811,7 @@
   m_Attributes.push_back(wsAttriValue);
 }
 
-int32_t CFDE_XMLElement::GetInteger(const FX_WCHAR* pwsAttriName,
+int32_t CFDE_XMLElement::GetInteger(const wchar_t* pwsAttriName,
                                     int32_t iDefValue) const {
   int32_t iCount = pdfium::CollectionSize<int32_t>(m_Attributes);
   for (int32_t i = 0; i < iCount; i += 2) {
@@ -822,14 +822,14 @@
   return iDefValue;
 }
 
-void CFDE_XMLElement::SetInteger(const FX_WCHAR* pwsAttriName,
+void CFDE_XMLElement::SetInteger(const wchar_t* pwsAttriName,
                                  int32_t iAttriValue) {
   CFX_WideString wsValue;
   wsValue.Format(L"%d", iAttriValue);
   SetString(pwsAttriName, wsValue);
 }
 
-FX_FLOAT CFDE_XMLElement::GetFloat(const FX_WCHAR* pwsAttriName,
+FX_FLOAT CFDE_XMLElement::GetFloat(const wchar_t* pwsAttriName,
                                    FX_FLOAT fDefValue) const {
   int32_t iCount = pdfium::CollectionSize<int32_t>(m_Attributes);
   for (int32_t i = 0; i < iCount; i += 2) {
@@ -840,14 +840,14 @@
   return fDefValue;
 }
 
-void CFDE_XMLElement::SetFloat(const FX_WCHAR* pwsAttriName,
+void CFDE_XMLElement::SetFloat(const wchar_t* pwsAttriName,
                                FX_FLOAT fAttriValue) {
   CFX_WideString wsValue;
   wsValue.Format(L"%f", fAttriValue);
   SetString(pwsAttriName, wsValue);
 }
 
-void CFDE_XMLElement::RemoveAttribute(const FX_WCHAR* pwsAttriName) {
+void CFDE_XMLElement::RemoveAttribute(const wchar_t* pwsAttriName) {
   int32_t iCount = pdfium::CollectionSize<int32_t>(m_Attributes);
   for (int32_t i = 0; i < iCount; i += 2) {
     if (m_Attributes[i].Compare(pwsAttriName) == 0) {
@@ -1112,14 +1112,14 @@
   ClearBuffer();
 }
 
-FX_WCHAR* CFDE_BlockBuffer::GetAvailableBlock(int32_t& iIndexInBlock) {
+wchar_t* CFDE_BlockBuffer::GetAvailableBlock(int32_t& iIndexInBlock) {
   iIndexInBlock = 0;
   if (!m_BlockArray.GetSize()) {
     return nullptr;
   }
   int32_t iRealIndex = m_iStartPosition + m_iDataLength;
   if (iRealIndex == m_iBufferSize) {
-    FX_WCHAR* pBlock = FX_Alloc(FX_WCHAR, m_iAllocStep);
+    wchar_t* pBlock = FX_Alloc(wchar_t, m_iAllocStep);
     m_BlockArray.Add(pBlock);
     m_iBufferSize += m_iAllocStep;
     return pBlock;
@@ -1132,13 +1132,13 @@
   ClearBuffer();
   int32_t iNumOfBlock = (iBufferSize - 1) / m_iAllocStep + 1;
   for (int32_t i = 0; i < iNumOfBlock; i++) {
-    m_BlockArray.Add(FX_Alloc(FX_WCHAR, m_iAllocStep));
+    m_BlockArray.Add(FX_Alloc(wchar_t, m_iAllocStep));
   }
   m_iBufferSize = iNumOfBlock * m_iAllocStep;
   return true;
 }
 
-void CFDE_BlockBuffer::SetTextChar(int32_t iIndex, FX_WCHAR ch) {
+void CFDE_BlockBuffer::SetTextChar(int32_t iIndex, wchar_t ch) {
   if (iIndex < 0) {
     return;
   }
@@ -1149,12 +1149,12 @@
   if (iBlockIndex >= iBlockSize) {
     int32_t iNewBlocks = iBlockIndex - iBlockSize + 1;
     do {
-      FX_WCHAR* pBlock = FX_Alloc(FX_WCHAR, m_iAllocStep);
+      wchar_t* pBlock = FX_Alloc(wchar_t, m_iAllocStep);
       m_BlockArray.Add(pBlock);
       m_iBufferSize += m_iAllocStep;
     } while (--iNewBlocks);
   }
-  FX_WCHAR* pTextData = m_BlockArray[iBlockIndex];
+  wchar_t* pTextData = m_BlockArray[iBlockIndex];
   *(pTextData + iInnerIndex) = ch;
   if (m_iDataLength <= iIndex) {
     m_iDataLength = iIndex + 1;
@@ -1192,7 +1192,7 @@
   if (iLength <= 0) {
     return;
   }
-  FX_WCHAR* pBuf = wsTextData.GetBuffer(iLength);
+  wchar_t* pBuf = wsTextData.GetBuffer(iLength);
   if (!pBuf) {
     return;
   }
@@ -1213,9 +1213,9 @@
     if (i == iEndBlockIndex) {
       iCopyLength -= ((m_iAllocStep - 1) - iEndInnerIndex);
     }
-    FX_WCHAR* pBlockBuf = m_BlockArray[i];
+    wchar_t* pBlockBuf = m_BlockArray[i];
     FXSYS_memcpy(pBuf + iPointer, pBlockBuf + iBufferPointer,
-                 iCopyLength * sizeof(FX_WCHAR));
+                 iCopyLength * sizeof(wchar_t));
     iPointer += iCopyLength;
   }
   wsTextData.ReleaseBuffer(iLength);
@@ -1286,7 +1286,7 @@
   }
 
   m_pBuffer = FX_Alloc(
-      FX_WCHAR, pdfium::base::ValueOrDieForType<size_t>(alloc_size_safe));
+      wchar_t, pdfium::base::ValueOrDieForType<size_t>(alloc_size_safe));
   m_pStart = m_pEnd = m_pBuffer;
   ASSERT(!m_BlockBuffer.IsInitialized());
   m_BlockBuffer.InitBuffer();
@@ -1330,7 +1330,7 @@
     }
 
     while (m_pStart < m_pEnd) {
-      FX_WCHAR ch = *m_pStart;
+      wchar_t ch = *m_pStart;
       switch (m_syntaxParserState) {
         case FDE_XmlSyntaxState::Text:
           if (ch == L'<') {
@@ -1778,7 +1778,7 @@
   return m_iParsedBytes * 100 / iStreamLength;
 }
 
-static int32_t FX_GetUTF8EncodeLength(const FX_WCHAR* pSrc, int32_t iSrcLen) {
+static int32_t FX_GetUTF8EncodeLength(const wchar_t* pSrc, int32_t iSrcLen) {
   uint32_t unicode = 0;
   int32_t iDstNum = 0;
   while (iSrcLen-- > 0) {
@@ -1811,7 +1811,7 @@
   return m_iParsedBytes + nDstLen;
 }
 
-void CFDE_XMLSyntaxParser::ParseTextChar(FX_WCHAR character) {
+void CFDE_XMLSyntaxParser::ParseTextChar(wchar_t character) {
   if (m_iIndexInBlock == m_iAllocStep) {
     m_pCurrentBlock = m_BlockBuffer.GetAvailableBlock(m_iIndexInBlock);
     if (!m_pCurrentBlock) {
@@ -1828,7 +1828,7 @@
     if (iLen > 0) {
       if (csEntity[0] == L'#') {
         uint32_t ch = 0;
-        FX_WCHAR w;
+        wchar_t w;
         if (iLen > 1 && csEntity[1] == L'x') {
           for (int32_t i = 2; i < iLen; i++) {
             w = csEntity[i];
@@ -1853,7 +1853,7 @@
         if (ch > kMaxCharRange)
           ch = ' ';
 
-        character = static_cast<FX_WCHAR>(ch);
+        character = static_cast<wchar_t>(ch);
         if (character != 0) {
           m_BlockBuffer.SetTextChar(m_iEntityStart, character);
           m_iEntityStart++;
diff --git a/xfa/fde/xml/fde_xml_imp.h b/xfa/fde/xml/fde_xml_imp.h
index d9ccbea..7ae05a4 100644
--- a/xfa/fde/xml/fde_xml_imp.h
+++ b/xfa/fde/xml/fde_xml_imp.h
@@ -56,7 +56,7 @@
   void DeleteChildren();
   void CloneChildren(CFDE_XMLNode* pClone);
 
-  CFDE_XMLNode* GetPath(const FX_WCHAR* pPath,
+  CFDE_XMLNode* GetPath(const wchar_t* pPath,
                         int32_t iLength = -1,
                         bool bQualifiedName = true) const;
 
@@ -87,17 +87,17 @@
   bool GetAttribute(int32_t index,
                     CFX_WideString& wsAttriName,
                     CFX_WideString& wsAttriValue) const;
-  bool HasAttribute(const FX_WCHAR* pwsAttriName) const;
-  void GetString(const FX_WCHAR* pwsAttriName,
+  bool HasAttribute(const wchar_t* pwsAttriName) const;
+  void GetString(const wchar_t* pwsAttriName,
                  CFX_WideString& wsAttriValue,
-                 const FX_WCHAR* pwsDefValue = nullptr) const;
+                 const wchar_t* pwsDefValue = nullptr) const;
   void SetString(const CFX_WideString& wsAttriName,
                  const CFX_WideString& wsAttriValue);
-  int32_t GetInteger(const FX_WCHAR* pwsAttriName, int32_t iDefValue = 0) const;
-  void SetInteger(const FX_WCHAR* pwsAttriName, int32_t iAttriValue);
-  FX_FLOAT GetFloat(const FX_WCHAR* pwsAttriName, FX_FLOAT fDefValue = 0) const;
-  void SetFloat(const FX_WCHAR* pwsAttriName, FX_FLOAT fAttriValue);
-  void RemoveAttribute(const FX_WCHAR* pwsAttriName);
+  int32_t GetInteger(const wchar_t* pwsAttriName, int32_t iDefValue = 0) const;
+  void SetInteger(const wchar_t* pwsAttriName, int32_t iAttriValue);
+  FX_FLOAT GetFloat(const wchar_t* pwsAttriName, FX_FLOAT fDefValue = 0) const;
+  void SetFloat(const wchar_t* pwsAttriName, FX_FLOAT fAttriValue);
+  void RemoveAttribute(const wchar_t* pwsAttriName);
   int32_t CountData() const;
   bool GetData(int32_t index, CFX_WideString& wsData) const;
   void AppendData(const CFX_WideString& wsData);
@@ -127,20 +127,20 @@
   bool GetAttribute(int32_t index,
                     CFX_WideString& wsAttriName,
                     CFX_WideString& wsAttriValue) const;
-  bool HasAttribute(const FX_WCHAR* pwsAttriName) const;
-  void RemoveAttribute(const FX_WCHAR* pwsAttriName);
+  bool HasAttribute(const wchar_t* pwsAttriName) const;
+  void RemoveAttribute(const wchar_t* pwsAttriName);
 
-  void GetString(const FX_WCHAR* pwsAttriName,
+  void GetString(const wchar_t* pwsAttriName,
                  CFX_WideString& wsAttriValue,
-                 const FX_WCHAR* pwsDefValue = nullptr) const;
+                 const wchar_t* pwsDefValue = nullptr) const;
   void SetString(const CFX_WideString& wsAttriName,
                  const CFX_WideString& wsAttriValue);
 
-  int32_t GetInteger(const FX_WCHAR* pwsAttriName, int32_t iDefValue = 0) const;
-  void SetInteger(const FX_WCHAR* pwsAttriName, int32_t iAttriValue);
+  int32_t GetInteger(const wchar_t* pwsAttriName, int32_t iDefValue = 0) const;
+  void SetInteger(const wchar_t* pwsAttriName, int32_t iAttriValue);
 
-  FX_FLOAT GetFloat(const FX_WCHAR* pwsAttriName, FX_FLOAT fDefValue = 0) const;
-  void SetFloat(const FX_WCHAR* pwsAttriName, FX_FLOAT fAttriValue);
+  FX_FLOAT GetFloat(const wchar_t* pwsAttriName, FX_FLOAT fDefValue = 0) const;
+  void SetFloat(const wchar_t* pwsAttriName, FX_FLOAT fAttriValue);
 
   void GetTextData(CFX_WideString& wsText) const;
   void SetTextData(const CFX_WideString& wsText);
@@ -222,7 +222,7 @@
 
   bool InitBuffer(int32_t iBufferSize = 1024 * 1024);
   bool IsInitialized() { return m_iBufferSize / m_iAllocStep >= 1; }
-  FX_WCHAR* GetAvailableBlock(int32_t& iIndexInBlock);
+  wchar_t* GetAvailableBlock(int32_t& iIndexInBlock);
   inline int32_t GetAllocStep() const { return m_iAllocStep; }
   inline int32_t& GetDataLengthRef() { return m_iDataLength; }
   inline void Reset(bool bReserveData = true) {
@@ -231,7 +231,7 @@
     }
     m_iDataLength = 0;
   }
-  void SetTextChar(int32_t iIndex, FX_WCHAR ch);
+  void SetTextChar(int32_t iIndex, wchar_t ch);
   int32_t DeleteTextChars(int32_t iCount, bool bDirection = true);
   void GetTextData(CFX_WideString& wsTextData,
                    int32_t iStart = 0,
@@ -243,7 +243,7 @@
                                      int32_t& iInnerIndex) const;
   void ClearBuffer();
 
-  CFX_ArrayTemplate<FX_WCHAR*> m_BlockArray;
+  CFX_ArrayTemplate<wchar_t*> m_BlockArray;
   int32_t m_iDataLength;
   int32_t m_iBufferSize;
   int32_t m_iAllocStep;
@@ -312,7 +312,7 @@
     TargetData
   };
 
-  void ParseTextChar(FX_WCHAR ch);
+  void ParseTextChar(wchar_t ch);
 
   CFX_RetainPtr<IFGAS_Stream> m_pStream;
   int32_t m_iXMLPlaneSize;
@@ -321,25 +321,25 @@
   int32_t m_iLastNodeNum;
   int32_t m_iParsedChars;
   int32_t m_iParsedBytes;
-  FX_WCHAR* m_pBuffer;
+  wchar_t* m_pBuffer;
   int32_t m_iBufferChars;
   bool m_bEOS;
-  FX_WCHAR* m_pStart;
-  FX_WCHAR* m_pEnd;
+  wchar_t* m_pStart;
+  wchar_t* m_pEnd;
   FDE_XMLNODE m_CurNode;
   std::stack<FDE_XMLNODE> m_XMLNodeStack;
   CFDE_BlockBuffer m_BlockBuffer;
   int32_t m_iAllocStep;
   int32_t& m_iDataLength;
-  FX_WCHAR* m_pCurrentBlock;
+  wchar_t* m_pCurrentBlock;
   int32_t m_iIndexInBlock;
   int32_t m_iTextDataLength;
   FDE_XmlSyntaxResult m_syntaxParserResult;
   FDE_XmlSyntaxState m_syntaxParserState;
-  FX_WCHAR m_wQuotationMark;
+  wchar_t m_wQuotationMark;
   int32_t m_iEntityStart;
-  std::stack<FX_WCHAR> m_SkipStack;
-  FX_WCHAR m_SkipChar;
+  std::stack<wchar_t> m_SkipStack;
+  wchar_t m_SkipChar;
 };
 
 #endif  // XFA_FDE_XML_FDE_XML_IMP_H_
diff --git a/xfa/fde/xml/fde_xml_imp_unittest.cpp b/xfa/fde/xml/fde_xml_imp_unittest.cpp
index 6db1b19..6191025 100644
--- a/xfa/fde/xml/fde_xml_imp_unittest.cpp
+++ b/xfa/fde/xml/fde_xml_imp_unittest.cpp
@@ -10,7 +10,7 @@
 #include "xfa/fgas/crt/fgas_stream.h"
 
 TEST(CFDE_XMLSyntaxParser, CData) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">\n"
       L"  <![CDATA[\n"
       L"    if (a[1] < 3)\n"
@@ -18,16 +18,16 @@
       L"  ]]>\n"
       L"</script>";
 
-  const FX_WCHAR* cdata =
+  const wchar_t* cdata =
       L"\n"
       L"    if (a[1] < 3)\n"
       L"      app.alert(\"Tclams\");\n"
       L"  ";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
@@ -65,7 +65,7 @@
 }
 
 TEST(CFDE_XMLSyntaxParser, CDataWithInnerScript) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">\n"
       L"  <![CDATA[\n"
       L"    if (a[1] < 3)\n"
@@ -74,17 +74,17 @@
       L"  ]]>\n"
       L"</script>";
 
-  const FX_WCHAR* cdata =
+  const wchar_t* cdata =
       L"\n"
       L"    if (a[1] < 3)\n"
       L"      app.alert(\"Tclams\");\n"
       L"    </script>\n"
       L"  ";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
@@ -122,15 +122,15 @@
 }
 
 TEST(CFDE_XMLSyntaxParser, ArrowBangArrow) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">\n"
       L"  <!>\n"
       L"</script>";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
@@ -164,15 +164,15 @@
 }
 
 TEST(CFDE_XMLSyntaxParser, ArrowBangBracketArrow) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">\n"
       L"  <![>\n"
       L"</script>";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
@@ -200,15 +200,15 @@
 }
 
 TEST(CFDE_XMLSyntaxParser, IncompleteCData) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">\n"
       L"  <![CDATA>\n"
       L"</script>";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
@@ -236,15 +236,15 @@
 }
 
 TEST(CFDE_XMLSyntaxParser, UnClosedCData) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">\n"
       L"  <![CDATA[\n"
       L"</script>";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
@@ -272,15 +272,15 @@
 }
 
 TEST(CFDE_XMLSyntaxParser, EmptyCData) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">\n"
       L"  <![CDATA[]]>\n"
       L"</script>";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
@@ -318,15 +318,15 @@
 }
 
 TEST(CFDE_XMLSyntaxParser, Comment) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">\n"
       L"  <!-- A Comment -->\n"
       L"</script>";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
@@ -360,15 +360,15 @@
 }
 
 TEST(CFDE_XMLSyntaxParser, IncorrectCommentStart) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">\n"
       L"  <!- A Comment -->\n"
       L"</script>";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
@@ -402,15 +402,15 @@
 }
 
 TEST(CFDE_XMLSyntaxParser, CommentEmpty) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">\n"
       L"  <!---->\n"
       L"</script>";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
@@ -444,15 +444,15 @@
 }
 
 TEST(CFDE_XMLSyntaxParser, CommentThreeDash) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">\n"
       L"  <!--->\n"
       L"</script>";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
@@ -478,15 +478,15 @@
 }
 
 TEST(CFDE_XMLSyntaxParser, CommentTwoDash) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">\n"
       L"  <!-->\n"
       L"</script>";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
@@ -512,7 +512,7 @@
 }
 
 TEST(CFDE_XMLSyntaxParser, Entities) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">"
       L"&#66;"
       L"&#x54;"
@@ -521,10 +521,10 @@
       L"&#x0000000000000000000;"
       L"</script>";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
@@ -554,16 +554,16 @@
 }
 
 TEST(CFDE_XMLSyntaxParser, EntityOverflowHex) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">"
       L"&#xaDBDFFFFF;"
       L"&#xafffffffffffffffffffffffffffffffff;"
       L"</script>";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
@@ -593,16 +593,16 @@
 }
 
 TEST(CFDE_XMLSyntaxParser, EntityOverflowDecimal) {
-  const FX_WCHAR* input =
+  const wchar_t* input =
       L"<script contentType=\"application/x-javascript\">"
       L"&#2914910205;"
       L"&#29149102052342342134521341234512351234213452315;"
       L"</script>";
 
-  // We * sizeof(FX_WCHAR) because we pass in the uint8_t, not the FX_WCHAR.
-  size_t len = FXSYS_wcslen(input) * sizeof(FX_WCHAR);
+  // We * sizeof(wchar_t) because we pass in the uint8_t, not the wchar_t.
+  size_t len = FXSYS_wcslen(input) * sizeof(wchar_t);
   CFX_RetainPtr<IFGAS_Stream> stream = IFGAS_Stream::CreateStream(
-      reinterpret_cast<uint8_t*>(const_cast<FX_WCHAR*>(input)), len, 0);
+      reinterpret_cast<uint8_t*>(const_cast<wchar_t*>(input)), len, 0);
   CFDE_XMLSyntaxParser parser;
   parser.Init(stream, 256);
   EXPECT_EQ(FDE_XmlSyntaxResult::ElementOpen, parser.DoSyntaxParse());
diff --git a/xfa/fgas/crt/fgas_codepage.cpp b/xfa/fgas/crt/fgas_codepage.cpp
index 36f87a3..5f82466 100644
--- a/xfa/fgas/crt/fgas_codepage.cpp
+++ b/xfa/fgas/crt/fgas_codepage.cpp
@@ -261,7 +261,7 @@
     {0xf637e157, 0x478},  {0xfc213f3a, 0x2717}, {0xff654d14, 0x3b5},
 };
 
-uint16_t GetCodePageFromStringA(const FX_CHAR* pStr, int32_t iLength) {
+uint16_t GetCodePageFromStringA(const char* pStr, int32_t iLength) {
   ASSERT(pStr);
   if (iLength < 0) {
     iLength = FXSYS_strlen(pStr);
@@ -325,7 +325,7 @@
   return 0xFFFF;
 }
 
-uint16_t FX_GetCodePageFromStringW(const FX_WCHAR* pStr, int32_t iLength) {
+uint16_t FX_GetCodePageFromStringW(const wchar_t* pStr, int32_t iLength) {
   if (iLength < 0) {
     iLength = FXSYS_wcslen(pStr);
   }
@@ -333,21 +333,21 @@
     return 0xFFFF;
   }
   CFX_ByteString csStr;
-  FX_CHAR* pBuf = csStr.GetBuffer(iLength + 1);
+  char* pBuf = csStr.GetBuffer(iLength + 1);
   for (int32_t i = 0; i < iLength; ++i) {
-    *pBuf++ = (FX_CHAR)*pStr++;
+    *pBuf++ = (char)*pStr++;
   }
   csStr.ReleaseBuffer(iLength);
   return GetCodePageFromStringA(csStr.c_str(), iLength);
 }
 
-void FX_SwapByteOrder(FX_WCHAR* pStr, int32_t iLength) {
+void FX_SwapByteOrder(wchar_t* pStr, int32_t iLength) {
   ASSERT(pStr);
   if (iLength < 0) {
     iLength = FXSYS_wcslen(pStr);
   }
   uint16_t wch;
-  if (sizeof(FX_WCHAR) > 2) {
+  if (sizeof(wchar_t) > 2) {
     while (iLength-- > 0) {
       wch = (uint16_t)*pStr;
       wch = (wch >> 8) | (wch << 8);
@@ -365,20 +365,20 @@
 
 void FX_UTF16ToWChar(void* pBuffer, int32_t iLength) {
   ASSERT(pBuffer && iLength > 0);
-  if (sizeof(FX_WCHAR) == 2) {
+  if (sizeof(wchar_t) == 2) {
     return;
   }
   uint16_t* pSrc = (uint16_t*)pBuffer;
-  FX_WCHAR* pDst = (FX_WCHAR*)pBuffer;
+  wchar_t* pDst = (wchar_t*)pBuffer;
   while (--iLength >= 0) {
-    pDst[iLength] = (FX_WCHAR)pSrc[iLength];
+    pDst[iLength] = (wchar_t)pSrc[iLength];
   }
 }
 
 int32_t FX_DecodeString(uint16_t wCodePage,
-                        const FX_CHAR* pSrc,
+                        const char* pSrc,
                         int32_t* pSrcLen,
-                        FX_WCHAR* pDst,
+                        wchar_t* pDst,
                         int32_t* pDstLen,
                         bool bErrBreak) {
   if (wCodePage == FX_CODEPAGE_UTF8) {
@@ -386,9 +386,9 @@
   }
   return -1;
 }
-int32_t FX_UTF8Decode(const FX_CHAR* pSrc,
+int32_t FX_UTF8Decode(const char* pSrc,
                       int32_t* pSrcLen,
-                      FX_WCHAR* pDst,
+                      wchar_t* pDst,
                       int32_t* pDstLen) {
   if (!pSrcLen || !pDstLen) {
     return -1;
diff --git a/xfa/fgas/crt/fgas_codepage.h b/xfa/fgas/crt/fgas_codepage.h
index 780c20e..e3a535e 100644
--- a/xfa/fgas/crt/fgas_codepage.h
+++ b/xfa/fgas/crt/fgas_codepage.h
@@ -134,20 +134,20 @@
 #define FX_CHARSET_OEM 255
 
 uint16_t FX_GetCodePageFromCharset(uint8_t charset);
-uint16_t FX_GetCodePageFromStringW(const FX_WCHAR* pStr, int32_t iLength);
+uint16_t FX_GetCodePageFromStringW(const wchar_t* pStr, int32_t iLength);
 uint16_t FX_GetDefCodePageByLanguage(uint16_t wLanguage);
-void FX_SwapByteOrder(FX_WCHAR* pStr, int32_t iLength);
+void FX_SwapByteOrder(wchar_t* pStr, int32_t iLength);
 
 void FX_UTF16ToWChar(void* pBuffer, int32_t iLength);
 int32_t FX_DecodeString(uint16_t wCodePage,
-                        const FX_CHAR* pSrc,
+                        const char* pSrc,
                         int32_t* pSrcLen,
-                        FX_WCHAR* pDst,
+                        wchar_t* pDst,
                         int32_t* pDstLen,
                         bool bErrBreak);
-int32_t FX_UTF8Decode(const FX_CHAR* pSrc,
+int32_t FX_UTF8Decode(const char* pSrc,
                       int32_t* pSrcLen,
-                      FX_WCHAR* pDst,
+                      wchar_t* pDst,
                       int32_t* pDstLen);
 
 #endif  // XFA_FGAS_CRT_FGAS_CODEPAGE_H_
diff --git a/xfa/fgas/crt/fgas_stream.cpp b/xfa/fgas/crt/fgas_stream.cpp
index 424b191..02096d4 100644
--- a/xfa/fgas/crt/fgas_stream.cpp
+++ b/xfa/fgas/crt/fgas_stream.cpp
@@ -28,11 +28,9 @@
   virtual int32_t GetPosition() = 0;
   virtual bool IsEOF() const = 0;
   virtual int32_t ReadData(uint8_t* pBuffer, int32_t iBufferSize) = 0;
-  virtual int32_t ReadString(FX_WCHAR* pStr,
-                             int32_t iMaxLength,
-                             bool& bEOS) = 0;
+  virtual int32_t ReadString(wchar_t* pStr, int32_t iMaxLength, bool& bEOS) = 0;
   virtual int32_t WriteData(const uint8_t* pBuffer, int32_t iBufferSize) = 0;
-  virtual int32_t WriteString(const FX_WCHAR* pStr, int32_t iLength) = 0;
+  virtual int32_t WriteString(const wchar_t* pStr, int32_t iLength) = 0;
   virtual void Flush() = 0;
   virtual bool SetLength(int32_t iLength) = 0;
 
@@ -51,7 +49,7 @@
   CFGAS_FileStreamImp();
   ~CFGAS_FileStreamImp() override;
 
-  bool LoadFile(const FX_WCHAR* pszSrcFileName, uint32_t dwAccess);
+  bool LoadFile(const wchar_t* pszSrcFileName, uint32_t dwAccess);
 
   // IFGAS_StreamImp:
   int32_t GetLength() const override;
@@ -59,9 +57,9 @@
   int32_t GetPosition() override;
   bool IsEOF() const override;
   int32_t ReadData(uint8_t* pBuffer, int32_t iBufferSize) override;
-  int32_t ReadString(FX_WCHAR* pStr, int32_t iMaxLength, bool& bEOS) override;
+  int32_t ReadString(wchar_t* pStr, int32_t iMaxLength, bool& bEOS) override;
   int32_t WriteData(const uint8_t* pBuffer, int32_t iBufferSize) override;
-  int32_t WriteString(const FX_WCHAR* pStr, int32_t iLength) override;
+  int32_t WriteString(const wchar_t* pStr, int32_t iLength) override;
   void Flush() override;
   bool SetLength(int32_t iLength) override;
 
@@ -83,9 +81,9 @@
   int32_t GetPosition() override;
   bool IsEOF() const override;
   int32_t ReadData(uint8_t* pBuffer, int32_t iBufferSize) override;
-  int32_t ReadString(FX_WCHAR* pStr, int32_t iMaxLength, bool& bEOS) override;
+  int32_t ReadString(wchar_t* pStr, int32_t iMaxLength, bool& bEOS) override;
   int32_t WriteData(const uint8_t* pBuffer, int32_t iBufferSize) override;
-  int32_t WriteString(const FX_WCHAR* pStr, int32_t iLength) override;
+  int32_t WriteString(const wchar_t* pStr, int32_t iLength) override;
   void Flush() override {}
   bool SetLength(int32_t iLength) override { return false; }
 
@@ -110,11 +108,11 @@
   int32_t GetPosition() override { return m_iPosition; }
   bool IsEOF() const override;
   int32_t ReadData(uint8_t* pBuffer, int32_t iBufferSize) override;
-  int32_t ReadString(FX_WCHAR* pStr, int32_t iMaxLength, bool& bEOS) override;
+  int32_t ReadString(wchar_t* pStr, int32_t iMaxLength, bool& bEOS) override;
   int32_t WriteData(const uint8_t* pBuffer, int32_t iBufferSize) override {
     return 0;
   }
-  int32_t WriteString(const FX_WCHAR* pStr, int32_t iLength) override {
+  int32_t WriteString(const wchar_t* pStr, int32_t iLength) override {
     return 0;
   }
   void Flush() override {}
@@ -141,11 +139,11 @@
   int32_t GetPosition() override { return m_iPosition; }
   bool IsEOF() const override;
   int32_t ReadData(uint8_t* pBuffer, int32_t iBufferSize) override;
-  int32_t ReadString(FX_WCHAR* pStr, int32_t iMaxLength, bool& bEOS) override;
+  int32_t ReadString(wchar_t* pStr, int32_t iMaxLength, bool& bEOS) override;
   int32_t WriteData(const uint8_t* pBuffer, int32_t iBufferSize) override {
     return 0;
   }
-  int32_t WriteString(const FX_WCHAR* pStr, int32_t iLength) override {
+  int32_t WriteString(const wchar_t* pStr, int32_t iLength) override {
     return 0;
   }
   void Flush() override {}
@@ -171,11 +169,11 @@
   int32_t GetPosition() override { return m_iPosition; }
   bool IsEOF() const override;
   int32_t ReadData(uint8_t* pBuffer, int32_t iBufferSize) override { return 0; }
-  int32_t ReadString(FX_WCHAR* pStr, int32_t iMaxLength, bool& bEOS) override {
+  int32_t ReadString(wchar_t* pStr, int32_t iMaxLength, bool& bEOS) override {
     return 0;
   }
   int32_t WriteData(const uint8_t* pBuffer, int32_t iBufferSize) override;
-  int32_t WriteString(const FX_WCHAR* pStr, int32_t iLength) override;
+  int32_t WriteString(const wchar_t* pStr, int32_t iLength) override;
   void Flush() override;
   bool SetLength(int32_t iLength) override { return false; }
 
@@ -197,7 +195,7 @@
   template <typename T, typename... Args>
   friend CFX_RetainPtr<T> pdfium::MakeRetain(Args&&... args);
 
-  bool LoadFile(const FX_WCHAR* pszSrcFileName, uint32_t dwAccess);
+  bool LoadFile(const wchar_t* pszSrcFileName, uint32_t dwAccess);
   bool LoadBuffer(uint8_t* pData, int32_t iTotalSize, uint32_t dwAccess);
   bool LoadFileRead(const CFX_RetainPtr<IFX_SeekableReadStream>& pFileRead,
                     uint32_t dwAccess);
@@ -214,9 +212,9 @@
   int32_t GetPosition() override;
   bool IsEOF() const override;
   int32_t ReadData(uint8_t* pBuffer, int32_t iBufferSize) override;
-  int32_t ReadString(FX_WCHAR* pStr, int32_t iMaxLength, bool& bEOS) override;
+  int32_t ReadString(wchar_t* pStr, int32_t iMaxLength, bool& bEOS) override;
   int32_t WriteData(const uint8_t* pBuffer, int32_t iBufferSize) override;
-  int32_t WriteString(const FX_WCHAR* pStr, int32_t iLength) override;
+  int32_t WriteString(const wchar_t* pStr, int32_t iLength) override;
   void Flush() override;
   bool SetLength(int32_t iLength) override;
   int32_t GetBOM(uint8_t bom[4]) const override;
@@ -252,9 +250,9 @@
   int32_t GetPosition() override;
   bool IsEOF() const override;
   int32_t ReadData(uint8_t* pBuffer, int32_t iBufferSize) override;
-  int32_t ReadString(FX_WCHAR* pStr, int32_t iMaxLength, bool& bEOS) override;
+  int32_t ReadString(wchar_t* pStr, int32_t iMaxLength, bool& bEOS) override;
   int32_t WriteData(const uint8_t* pBuffer, int32_t iBufferSize) override;
-  int32_t WriteString(const FX_WCHAR* pStr, int32_t iLength) override;
+  int32_t WriteString(const wchar_t* pStr, int32_t iLength) override;
   void Flush() override;
   bool SetLength(int32_t iLength) override;
   int32_t GetBOM(uint8_t bom[4]) const override;
@@ -376,13 +374,13 @@
     FXSYS_fclose(m_hFile);
 }
 
-bool CFGAS_FileStreamImp::LoadFile(const FX_WCHAR* pszSrcFileName,
+bool CFGAS_FileStreamImp::LoadFile(const wchar_t* pszSrcFileName,
                                    uint32_t dwAccess) {
   ASSERT(!m_hFile);
   ASSERT(pszSrcFileName && FXSYS_wcslen(pszSrcFileName) > 0);
 #if _FX_OS_ == _FX_WIN32_DESKTOP_ || _FX_OS_ == _FX_WIN32_MOBILE_ || \
     _FX_OS_ == _FX_WIN64_
-  const FX_WCHAR* wsMode;
+  const wchar_t* wsMode;
   if (dwAccess & FX_STREAMACCESS_Write) {
     if (dwAccess & FX_STREAMACCESS_Append) {
       wsMode = L"a+b";
@@ -414,7 +412,7 @@
     }
   }
 #else
-  const FX_CHAR* wsMode = "rb";
+  const char* wsMode = "rb";
   if (dwAccess & FX_STREAMACCESS_Write) {
     if (dwAccess & FX_STREAMACCESS_Append) {
       wsMode = "a+b";
@@ -476,7 +474,7 @@
   ASSERT(pBuffer && iBufferSize > 0);
   return FXSYS_fread(pBuffer, 1, iBufferSize, m_hFile);
 }
-int32_t CFGAS_FileStreamImp::ReadString(FX_WCHAR* pStr,
+int32_t CFGAS_FileStreamImp::ReadString(wchar_t* pStr,
                                         int32_t iMaxLength,
                                         bool& bEOS) {
   ASSERT(m_hFile);
@@ -514,8 +512,7 @@
   }
   return iRet;
 }
-int32_t CFGAS_FileStreamImp::WriteString(const FX_WCHAR* pStr,
-                                         int32_t iLength) {
+int32_t CFGAS_FileStreamImp::WriteString(const wchar_t* pStr, int32_t iLength) {
   ASSERT(m_hFile && (GetAccessModes() & FX_STREAMACCESS_Write) != 0);
   ASSERT(pStr && iLength > 0);
   int32_t iRet = FXSYS_fwrite(pStr, 2, iLength, m_hFile);
@@ -591,7 +588,7 @@
   }
   return 0;
 }
-int32_t CFGAS_FileReadStreamImp::ReadString(FX_WCHAR* pStr,
+int32_t CFGAS_FileReadStreamImp::ReadString(wchar_t* pStr,
                                             int32_t iMaxLength,
                                             bool& bEOS) {
   ASSERT(m_pFileRead);
@@ -716,7 +713,7 @@
   m_iPosition += dwOffsetTmp;
   return dwOffsetTmp;
 }
-int32_t CFGAS_BufferReadStreamImp::ReadString(FX_WCHAR* pStr,
+int32_t CFGAS_BufferReadStreamImp::ReadString(wchar_t* pStr,
                                               int32_t iMaxLength,
                                               bool& bEOS) {
   ASSERT(m_pBufferRead);
@@ -788,9 +785,9 @@
   }
   return iBufferSize;
 }
-int32_t CFGAS_FileWriteStreamImp::WriteString(const FX_WCHAR* pStr,
+int32_t CFGAS_FileWriteStreamImp::WriteString(const wchar_t* pStr,
                                               int32_t iLength) {
-  return WriteData((const uint8_t*)pStr, iLength * sizeof(FX_WCHAR));
+  return WriteData((const uint8_t*)pStr, iLength * sizeof(wchar_t));
 }
 void CFGAS_FileWriteStreamImp::Flush() {
   if (m_pFileWrite) {
@@ -851,7 +848,7 @@
   m_iPosition += iLen;
   return iLen;
 }
-int32_t CFGAS_BufferStreamImp::ReadString(FX_WCHAR* pStr,
+int32_t CFGAS_BufferStreamImp::ReadString(wchar_t* pStr,
                                           int32_t iMaxLength,
                                           bool& bEOS) {
   ASSERT(m_pData);
@@ -860,7 +857,7 @@
   if (iLen <= 0) {
     return 0;
   }
-  const FX_WCHAR* pSrc = (const FX_WCHAR*)(FX_CHAR*)(m_pData + m_iPosition);
+  const wchar_t* pSrc = (const wchar_t*)(char*)(m_pData + m_iPosition);
   int32_t iCount = 0;
   while (*pSrc && iCount < iLen) {
     *pStr++ = *pSrc++;
@@ -885,7 +882,7 @@
   }
   return iLen;
 }
-int32_t CFGAS_BufferStreamImp::WriteString(const FX_WCHAR* pStr,
+int32_t CFGAS_BufferStreamImp::WriteString(const wchar_t* pStr,
                                            int32_t iLength) {
   ASSERT(m_pData && (GetAccessModes() & FX_STREAMACCESS_Write) != 0);
   ASSERT(pStr && iLength > 0);
@@ -1043,7 +1040,7 @@
   return v;
 }
 
-int32_t CFGAS_TextStream::ReadString(FX_WCHAR* pStr,
+int32_t CFGAS_TextStream::ReadString(wchar_t* pStr,
                                      int32_t iMaxLength,
                                      bool& bEOS) {
   ASSERT(pStr && iMaxLength > 0);
@@ -1056,7 +1053,7 @@
     int32_t iBytes = iMaxLength * 2;
     iLen = m_pStreamImp->ReadData((uint8_t*)pStr, iBytes);
     iMaxLength = iLen / 2;
-    if (sizeof(FX_WCHAR) > 2) {
+    if (sizeof(wchar_t) > 2) {
       FX_UTF16ToWChar(pStr, iMaxLength);
     }
 #if _FX_ENDIAN_ == _FX_BIG_ENDIAN_
@@ -1082,8 +1079,8 @@
       }
       iLen = m_pStreamImp->ReadData(m_pBuf, iBytes);
       int32_t iSrc = iLen;
-      int32_t iDecode = FX_DecodeString(m_wCodePage, (const FX_CHAR*)m_pBuf,
-                                        &iSrc, pStr, &iMaxLength, true);
+      int32_t iDecode = FX_DecodeString(m_wCodePage, (const char*)m_pBuf, &iSrc,
+                                        pStr, &iMaxLength, true);
       m_pStreamImp->Seek(FX_STREAMSEEK_Current, iSrc - iLen);
       if (iDecode < 1) {
         return -1;
@@ -1096,7 +1093,7 @@
   return iMaxLength;
 }
 
-int32_t CFGAS_TextStream::WriteString(const FX_WCHAR* pStr, int32_t iLength) {
+int32_t CFGAS_TextStream::WriteString(const wchar_t* pStr, int32_t iLength) {
   ASSERT(pStr && iLength > 0);
   if ((m_pStreamImp->GetAccessModes() & FX_STREAMACCESS_Write) == 0)
     return -1;
@@ -1129,7 +1126,7 @@
     delete m_pStreamImp;
 }
 
-bool CFGAS_Stream::LoadFile(const FX_WCHAR* pszSrcFileName, uint32_t dwAccess) {
+bool CFGAS_Stream::LoadFile(const wchar_t* pszSrcFileName, uint32_t dwAccess) {
   if (m_eStreamType != FX_SREAMTYPE_Unknown || m_pStreamImp)
     return false;
 
@@ -1303,7 +1300,7 @@
   m_iPosition = m_pStreamImp->GetPosition();
   return iLen;
 }
-int32_t CFGAS_Stream::ReadString(FX_WCHAR* pStr,
+int32_t CFGAS_Stream::ReadString(wchar_t* pStr,
                                  int32_t iMaxLength,
                                  bool& bEOS) {
   ASSERT(pStr && iMaxLength > 0);
@@ -1353,7 +1350,7 @@
   }
   return iLen;
 }
-int32_t CFGAS_Stream::WriteString(const FX_WCHAR* pStr, int32_t iLength) {
+int32_t CFGAS_Stream::WriteString(const wchar_t* pStr, int32_t iLength) {
   ASSERT(pStr && iLength > 0);
   if (!m_pStreamImp) {
     return -1;
diff --git a/xfa/fgas/crt/fgas_stream.h b/xfa/fgas/crt/fgas_stream.h
index 79fda58..fdfc082 100644
--- a/xfa/fgas/crt/fgas_stream.h
+++ b/xfa/fgas/crt/fgas_stream.h
@@ -51,11 +51,9 @@
   virtual int32_t GetPosition() = 0;
   virtual bool IsEOF() const = 0;
   virtual int32_t ReadData(uint8_t* pBuffer, int32_t iBufferSize) = 0;
-  virtual int32_t ReadString(FX_WCHAR* pStr,
-                             int32_t iMaxLength,
-                             bool& bEOS) = 0;
+  virtual int32_t ReadString(wchar_t* pStr, int32_t iMaxLength, bool& bEOS) = 0;
   virtual int32_t WriteData(const uint8_t* pBuffer, int32_t iBufferSize) = 0;
-  virtual int32_t WriteString(const FX_WCHAR* pStr, int32_t iLength) = 0;
+  virtual int32_t WriteString(const wchar_t* pStr, int32_t iLength) = 0;
   virtual void Flush() = 0;
   virtual bool SetLength(int32_t iLength) = 0;
   virtual int32_t GetBOM(uint8_t bom[4]) const = 0;
diff --git a/xfa/fgas/font/cfgas_fontmgr.cpp b/xfa/fgas/font/cfgas_fontmgr.cpp
index aa41318..0173a6a 100644
--- a/xfa/fgas/font/cfgas_fontmgr.cpp
+++ b/xfa/fgas/font/cfgas_fontmgr.cpp
@@ -113,7 +113,7 @@
 CFX_RetainPtr<CFGAS_GEFont> CFGAS_FontMgr::GetFontByCodePage(
     uint16_t wCodePage,
     uint32_t dwFontStyles,
-    const FX_WCHAR* pszFontFamily) {
+    const wchar_t* pszFontFamily) {
   uint32_t dwHash = FGAS_GetFontHashCode(wCodePage, dwFontStyles);
   auto it = m_CPFonts.find(dwHash);
   if (it != m_CPFonts.end()) {
@@ -141,9 +141,9 @@
 }
 
 CFX_RetainPtr<CFGAS_GEFont> CFGAS_FontMgr::GetFontByUnicode(
-    FX_WCHAR wUnicode,
+    wchar_t wUnicode,
     uint32_t dwFontStyles,
-    const FX_WCHAR* pszFontFamily) {
+    const wchar_t* pszFontFamily) {
   const FGAS_FONTUSB* pRet = FGAS_GetUnicodeBitField(wUnicode);
   if (pRet->wBitField == 999)
     return nullptr;
@@ -166,7 +166,7 @@
     return nullptr;
 
   uint16_t wCodePage = FX_GetCodePageFromCharset(pFD->uCharSet);
-  const FX_WCHAR* pFontFace = pFD->wsFontFace;
+  const wchar_t* pFontFace = pFD->wsFontFace;
   CFX_RetainPtr<CFGAS_GEFont> pFont =
       CFGAS_GEFont::LoadFont(pFontFace, dwFontStyles, wCodePage, this);
   if (!pFont)
@@ -181,7 +181,7 @@
 }
 
 CFX_RetainPtr<CFGAS_GEFont> CFGAS_FontMgr::LoadFont(
-    const FX_WCHAR* pszFontFamily,
+    const wchar_t* pszFontFamily,
     uint32_t dwFontStyles,
     uint16_t wCodePage) {
   CFX_RetainPtr<CFGAS_GEFont> pFont;
@@ -262,12 +262,12 @@
     m_Fonts.erase(it);
 }
 
-const FX_FONTDESCRIPTOR* CFGAS_FontMgr::FindFont(const FX_WCHAR* pszFontFamily,
+const FX_FONTDESCRIPTOR* CFGAS_FontMgr::FindFont(const wchar_t* pszFontFamily,
                                                  uint32_t dwFontStyles,
                                                  uint32_t dwMatchFlags,
                                                  uint16_t wCodePage,
                                                  uint32_t dwUSB,
-                                                 FX_WCHAR wUnicode) {
+                                                 wchar_t wUnicode) {
   FX_FONTMATCHPARAMS params;
   FXSYS_memset(&params, 0, sizeof(params));
   params.dwUSB = dwUSB;
@@ -325,7 +325,7 @@
   FXSYS_memset(pFont, 0, sizeof(FX_FONTDESCRIPTOR));
   pFont->uCharSet = lf.lfCharSet;
   pFont->dwFontStyles = FX_GetGdiFontStyles(lf);
-  FXSYS_wcsncpy(pFont->wsFontFace, (const FX_WCHAR*)lf.lfFaceName, 31);
+  FXSYS_wcsncpy(pFont->wsFontFace, (const wchar_t*)lf.lfFaceName, 31);
   pFont->wsFontFace[31] = 0;
   FXSYS_memcpy(&pFont->FontSignature, &lpntme->ntmFontSig,
                sizeof(lpntme->ntmFontSig));
@@ -335,8 +335,8 @@
 }
 
 static void FX_EnumGdiFonts(std::deque<FX_FONTDESCRIPTOR>* fonts,
-                            const FX_WCHAR* pwsFaceName,
-                            FX_WCHAR wUnicode) {
+                            const wchar_t* pwsFaceName,
+                            wchar_t wUnicode) {
   HDC hDC = ::GetDC(nullptr);
   LOGFONTW lfFind;
   FXSYS_memset(&lfFind, 0, sizeof(lfFind));
@@ -358,7 +358,7 @@
 
 namespace {
 
-const FX_CHAR* g_FontFolders[] = {
+const char* g_FontFolders[] = {
 #if _FXM_PLATFORM_ == _FXM_PLATFORM_LINUX_
     "/usr/share/fonts", "/usr/share/X11/fonts/Type1",
     "/usr/share/X11/fonts/TTF", "/usr/local/share/fonts",
@@ -396,7 +396,7 @@
   return static_cast<uint16_t>(-1);
 }
 
-uint16_t FX_GetUnicodeBit(FX_WCHAR wcUnicode) {
+uint16_t FX_GetUnicodeBit(wchar_t wcUnicode) {
   const FGAS_FONTUSB* x = FGAS_GetUnicodeBitField(wcUnicode);
   return x ? x->wBitField : 999;
 }
@@ -616,7 +616,7 @@
 }
 
 CFX_RetainPtr<CFGAS_GEFont> CFGAS_FontMgr::LoadFont(
-    const FX_WCHAR* pszFontFamily,
+    const wchar_t* pszFontFamily,
     uint32_t dwFontStyles,
     uint16_t wCodePage) {
   return GetFontByCodePage(wCodePage, dwFontStyles, pszFontFamily);
@@ -625,7 +625,7 @@
 CFX_RetainPtr<CFGAS_GEFont> CFGAS_FontMgr::GetFontByCodePage(
     uint16_t wCodePage,
     uint32_t dwFontStyles,
-    const FX_WCHAR* pszFontFamily) {
+    const wchar_t* pszFontFamily) {
   CFX_ByteString bsHash;
   bsHash.Format("%d, %d", wCodePage, dwFontStyles);
   bsHash += FX_UTF8Encode(CFX_WideStringC(pszFontFamily));
@@ -658,9 +658,9 @@
 }
 
 CFX_RetainPtr<CFGAS_GEFont> CFGAS_FontMgr::GetFontByUnicode(
-    FX_WCHAR wUnicode,
+    wchar_t wUnicode,
     uint32_t dwFontStyles,
-    const FX_WCHAR* pszFontFamily) {
+    const wchar_t* pszFontFamily) {
   if (pdfium::ContainsKey(m_FailedUnicodesSet, wUnicode))
     return nullptr;
 
@@ -706,7 +706,7 @@
 }
 
 bool CFGAS_FontMgr::VerifyUnicode(CFX_FontDescriptor* pDesc,
-                                  FX_WCHAR wcUnicode) {
+                                  wchar_t wcUnicode) {
   CFX_RetainPtr<IFX_SeekableReadStream> pFileRead =
       CreateFontStream(pDesc->m_wsFaceName.UTF8Encode());
   if (!pFileRead)
@@ -726,7 +726,7 @@
 }
 
 bool CFGAS_FontMgr::VerifyUnicode(const CFX_RetainPtr<CFGAS_GEFont>& pFont,
-                                  FX_WCHAR wcUnicode) {
+                                  wchar_t wcUnicode) {
   if (!pFont)
     return false;
 
@@ -878,7 +878,7 @@
     uint16_t wCodePage,
     uint32_t dwFontStyles,
     const CFX_WideString& FontName,
-    FX_WCHAR wcUnicode) {
+    wchar_t wcUnicode) {
   pMatchedFonts->clear();
   for (const auto& pFont : m_InstalledFonts) {
     int32_t nPenalty =
@@ -896,7 +896,7 @@
                                    uint16_t wCodePage,
                                    uint32_t dwFontStyles,
                                    const CFX_WideString& FontName,
-                                   FX_WCHAR wcUnicode) {
+                                   wchar_t wcUnicode) {
   int32_t nPenalty = 30000;
   if (FontName.GetLength() != 0) {
     if (FontName != pInstalled->m_wsFaceName) {
@@ -1077,14 +1077,14 @@
     wsFamily.clear();
     if (nPlatformID != 1) {
       for (uint16_t k = 0; k < nNameLength / 2; k++) {
-        FX_WCHAR wcTemp = GetUInt16(lpStr + nNameOffset + k * 2);
+        wchar_t wcTemp = GetUInt16(lpStr + nNameOffset + k * 2);
         wsFamily += wcTemp;
       }
       Names.push_back(wsFamily);
       continue;
     }
     for (uint16_t k = 0; k < nNameLength; k++) {
-      FX_WCHAR wcTemp = GetUInt8(lpStr + nNameOffset + k);
+      wchar_t wcTemp = GetUInt8(lpStr + nNameOffset + k);
       wsFamily += wcTemp;
     }
     Names.push_back(wsFamily);
diff --git a/xfa/fgas/font/cfgas_fontmgr.h b/xfa/fgas/font/cfgas_fontmgr.h
index 23ab523..63a8d3b 100644
--- a/xfa/fgas/font/cfgas_fontmgr.h
+++ b/xfa/fgas/font/cfgas_fontmgr.h
@@ -40,11 +40,11 @@
 #define FX_FONTMATCHPARA_MatchStyle 0x01
 
 struct FX_FONTMATCHPARAMS {
-  const FX_WCHAR* pwsFamily;
+  const wchar_t* pwsFamily;
   uint32_t dwFontStyles;
   uint32_t dwUSB;
   uint32_t dwMatchFlags;
-  FX_WCHAR wUnicode;
+  wchar_t wUnicode;
   uint16_t wCodePage;
 };
 
@@ -61,7 +61,7 @@
 }
 
 struct FX_FONTDESCRIPTOR {
-  FX_WCHAR wsFontFace[32];
+  wchar_t wsFontFace[32];
   uint32_t dwFontStyles;
   uint8_t uCharSet;
   FX_FONTSIGNATURE FontSignature;
@@ -76,8 +76,8 @@
 }
 
 typedef void (*FX_LPEnumAllFonts)(std::deque<FX_FONTDESCRIPTOR>* fonts,
-                                  const FX_WCHAR* pwsFaceName,
-                                  FX_WCHAR wUnicode);
+                                  const wchar_t* pwsFaceName,
+                                  wchar_t wUnicode);
 
 FX_LPEnumAllFonts FX_GetDefFontEnumerator();
 
@@ -90,11 +90,11 @@
 
   CFX_RetainPtr<CFGAS_GEFont> GetFontByCodePage(uint16_t wCodePage,
                                                 uint32_t dwFontStyles,
-                                                const FX_WCHAR* pszFontFamily);
-  CFX_RetainPtr<CFGAS_GEFont> GetFontByUnicode(FX_WCHAR wUnicode,
+                                                const wchar_t* pszFontFamily);
+  CFX_RetainPtr<CFGAS_GEFont> GetFontByUnicode(wchar_t wUnicode,
                                                uint32_t dwFontStyles,
-                                               const FX_WCHAR* pszFontFamily);
-  CFX_RetainPtr<CFGAS_GEFont> LoadFont(const FX_WCHAR* pszFontFamily,
+                                               const wchar_t* pszFontFamily);
+  CFX_RetainPtr<CFGAS_GEFont> LoadFont(const wchar_t* pszFontFamily,
                                        uint32_t dwFontStyles,
                                        uint16_t wCodePage);
   void RemoveFont(const CFX_RetainPtr<CFGAS_GEFont>& pFont);
@@ -106,12 +106,12 @@
       uint16_t wCodePage);
   void RemoveFont(std::map<uint32_t, CFX_RetainPtr<CFGAS_GEFont>>* pFontMap,
                   const CFX_RetainPtr<CFGAS_GEFont>& pFont);
-  const FX_FONTDESCRIPTOR* FindFont(const FX_WCHAR* pszFontFamily,
+  const FX_FONTDESCRIPTOR* FindFont(const wchar_t* pszFontFamily,
                                     uint32_t dwFontStyles,
                                     uint32_t dwMatchFlags,
                                     uint16_t wCodePage,
                                     uint32_t dwUSB = 999,
-                                    FX_WCHAR wUnicode = 0);
+                                    wchar_t wUnicode = 0);
 
   FX_LPEnumAllFonts m_pEnumerator;
   std::deque<FX_FONTDESCRIPTOR> m_FontFaces;
@@ -190,11 +190,11 @@
 
   CFX_RetainPtr<CFGAS_GEFont> GetFontByCodePage(uint16_t wCodePage,
                                                 uint32_t dwFontStyles,
-                                                const FX_WCHAR* pszFontFamily);
-  CFX_RetainPtr<CFGAS_GEFont> GetFontByUnicode(FX_WCHAR wUnicode,
+                                                const wchar_t* pszFontFamily);
+  CFX_RetainPtr<CFGAS_GEFont> GetFontByUnicode(wchar_t wUnicode,
                                                uint32_t dwFontStyles,
-                                               const FX_WCHAR* pszFontFamily);
-  CFX_RetainPtr<CFGAS_GEFont> LoadFont(const FX_WCHAR* pszFontFamily,
+                                               const wchar_t* pszFontFamily);
+  CFX_RetainPtr<CFGAS_GEFont> LoadFont(const wchar_t* pszFontFamily,
                                        uint32_t dwFontStyles,
                                        uint16_t wCodePage);
   void RemoveFont(const CFX_RetainPtr<CFGAS_GEFont>& pFont);
@@ -210,20 +210,20 @@
   std::vector<uint16_t> GetCharsets(FXFT_Face pFace) const;
   void GetUSBCSB(FXFT_Face pFace, uint32_t* USB, uint32_t* CSB);
   uint32_t GetFlags(FXFT_Face pFace);
-  bool VerifyUnicode(CFX_FontDescriptor* pDesc, FX_WCHAR wcUnicode);
+  bool VerifyUnicode(CFX_FontDescriptor* pDesc, wchar_t wcUnicode);
   bool VerifyUnicode(const CFX_RetainPtr<CFGAS_GEFont>& pFont,
-                     FX_WCHAR wcUnicode);
+                     wchar_t wcUnicode);
   int32_t IsPartName(const CFX_WideString& Name1, const CFX_WideString& Name2);
   void MatchFonts(std::vector<CFX_FontDescriptorInfo>* MatchedFonts,
                   uint16_t wCodePage,
                   uint32_t dwFontStyles,
                   const CFX_WideString& FontName,
-                  FX_WCHAR wcUnicode = 0xFFFE);
+                  wchar_t wcUnicode = 0xFFFE);
   int32_t CalcPenalty(CFX_FontDescriptor* pInstalled,
                       uint16_t wCodePage,
                       uint32_t dwFontStyles,
                       const CFX_WideString& FontName,
-                      FX_WCHAR wcUnicode = 0xFFFE);
+                      wchar_t wcUnicode = 0xFFFE);
   CFX_RetainPtr<CFGAS_GEFont> LoadFont(const CFX_WideString& wsFaceName,
                                        int32_t iFaceIndex,
                                        int32_t* pFaceCount);
@@ -243,7 +243,7 @@
   std::map<uint32_t, std::vector<CFX_RetainPtr<CFGAS_GEFont>>> m_Hash2Fonts;
   std::map<CFX_RetainPtr<CFGAS_GEFont>, CFX_RetainPtr<IFX_SeekableReadStream>>
       m_IFXFont2FileRead;
-  std::set<FX_WCHAR> m_FailedUnicodesSet;
+  std::set<wchar_t> m_FailedUnicodesSet;
 };
 #endif  // _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
 
diff --git a/xfa/fgas/font/cfgas_gefont.cpp b/xfa/fgas/font/cfgas_gefont.cpp
index 2d5a927..769ce36 100644
--- a/xfa/fgas/font/cfgas_gefont.cpp
+++ b/xfa/fgas/font/cfgas_gefont.cpp
@@ -18,11 +18,10 @@
 #include "xfa/fxfa/xfa_fontmgr.h"
 
 // static
-CFX_RetainPtr<CFGAS_GEFont> CFGAS_GEFont::LoadFont(
-    const FX_WCHAR* pszFontFamily,
-    uint32_t dwFontStyles,
-    uint16_t wCodePage,
-    CFGAS_FontMgr* pFontMgr) {
+CFX_RetainPtr<CFGAS_GEFont> CFGAS_GEFont::LoadFont(const wchar_t* pszFontFamily,
+                                                   uint32_t dwFontStyles,
+                                                   uint16_t wCodePage,
+                                                   CFGAS_FontMgr* pFontMgr) {
 #if _FXM_PLATFORM_ != _FXM_PLATFORM_WINDOWS_
   if (!pFontMgr)
     return nullptr;
@@ -123,7 +122,7 @@
 }
 
 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
-bool CFGAS_GEFont::LoadFontInternal(const FX_WCHAR* pszFontFamily,
+bool CFGAS_GEFont::LoadFontInternal(const wchar_t* pszFontFamily,
                                     uint32_t dwFontStyles,
                                     uint16_t wCodePage) {
   if (m_pFont)
@@ -259,13 +258,13 @@
   return dwStyles;
 }
 
-bool CFGAS_GEFont::GetCharWidth(FX_WCHAR wUnicode,
+bool CFGAS_GEFont::GetCharWidth(wchar_t wUnicode,
                                 int32_t& iWidth,
                                 bool bCharCode) {
   return GetCharWidthInternal(wUnicode, iWidth, true, bCharCode);
 }
 
-bool CFGAS_GEFont::GetCharWidthInternal(FX_WCHAR wUnicode,
+bool CFGAS_GEFont::GetCharWidthInternal(wchar_t wUnicode,
                                         int32_t& iWidth,
                                         bool bRecursive,
                                         bool bCharCode) {
@@ -299,13 +298,13 @@
   return iWidth > 0;
 }
 
-bool CFGAS_GEFont::GetCharBBox(FX_WCHAR wUnicode,
+bool CFGAS_GEFont::GetCharBBox(wchar_t wUnicode,
                                CFX_Rect* bbox,
                                bool bCharCode) {
   return GetCharBBoxInternal(wUnicode, bbox, true, bCharCode);
 }
 
-bool CFGAS_GEFont::GetCharBBoxInternal(FX_WCHAR wUnicode,
+bool CFGAS_GEFont::GetCharBBoxInternal(wchar_t wUnicode,
                                        CFX_Rect* bbox,
                                        bool bRecursive,
                                        bool bCharCode) {
@@ -345,11 +344,11 @@
   return true;
 }
 
-int32_t CFGAS_GEFont::GetGlyphIndex(FX_WCHAR wUnicode, bool bCharCode) {
+int32_t CFGAS_GEFont::GetGlyphIndex(wchar_t wUnicode, bool bCharCode) {
   return GetGlyphIndex(wUnicode, true, nullptr, bCharCode);
 }
 
-int32_t CFGAS_GEFont::GetGlyphIndex(FX_WCHAR wUnicode,
+int32_t CFGAS_GEFont::GetGlyphIndex(wchar_t wUnicode,
                                     bool bRecursive,
                                     CFX_RetainPtr<CFGAS_GEFont>* ppFont,
                                     bool bCharCode) {
diff --git a/xfa/fgas/font/cfgas_gefont.h b/xfa/fgas/font/cfgas_gefont.h
index 0a8e7ba..b460cee 100644
--- a/xfa/fgas/font/cfgas_gefont.h
+++ b/xfa/fgas/font/cfgas_gefont.h
@@ -28,7 +28,7 @@
   template <typename T, typename... Args>
   friend CFX_RetainPtr<T> pdfium::MakeRetain(Args&&... args);
 
-  static CFX_RetainPtr<CFGAS_GEFont> LoadFont(const FX_WCHAR* pszFontFamily,
+  static CFX_RetainPtr<CFGAS_GEFont> LoadFont(const wchar_t* pszFontFamily,
                                               uint32_t dwFontStyles,
                                               uint16_t wCodePage,
                                               CFGAS_FontMgr* pFontMgr);
@@ -50,11 +50,11 @@
   CFX_RetainPtr<CFGAS_GEFont> Derive(uint32_t dwFontStyles,
                                      uint16_t wCodePage = 0);
   uint32_t GetFontStyles() const;
-  bool GetCharWidth(FX_WCHAR wUnicode, int32_t& iWidth, bool bCharCode);
-  int32_t GetGlyphIndex(FX_WCHAR wUnicode, bool bCharCode = false);
+  bool GetCharWidth(wchar_t wUnicode, int32_t& iWidth, bool bCharCode);
+  int32_t GetGlyphIndex(wchar_t wUnicode, bool bCharCode = false);
   int32_t GetAscent() const;
   int32_t GetDescent() const;
-  bool GetCharBBox(FX_WCHAR wUnicode, CFX_Rect* bbox, bool bCharCode = false);
+  bool GetCharBBox(wchar_t wUnicode, CFX_Rect* bbox, bool bCharCode = false);
   bool GetBBox(CFX_Rect* bbox);
   CFX_RetainPtr<CFGAS_GEFont> GetSubstFont(int32_t iGlyphIndex);
   CFX_Font* GetDevFont() const { return m_pFont; }
@@ -72,7 +72,7 @@
   ~CFGAS_GEFont() override;
 
 #if _FXM_PLATFORM_ == _FXM_PLATFORM_WINDOWS_
-  bool LoadFontInternal(const FX_WCHAR* pszFontFamily,
+  bool LoadFontInternal(const wchar_t* pszFontFamily,
                         uint32_t dwFontStyles,
                         uint16_t wCodePage);
   bool LoadFontInternal(const uint8_t* pBuffer, int32_t length);
@@ -82,15 +82,15 @@
   bool LoadFontInternal(CFX_Font* pExternalFont);
   bool LoadFontInternal(std::unique_ptr<CFX_Font> pInternalFont);
   bool InitFont();
-  bool GetCharBBoxInternal(FX_WCHAR wUnicode,
+  bool GetCharBBoxInternal(wchar_t wUnicode,
                            CFX_Rect* bbox,
                            bool bRecursive,
                            bool bCharCode = false);
-  bool GetCharWidthInternal(FX_WCHAR wUnicode,
+  bool GetCharWidthInternal(wchar_t wUnicode,
                             int32_t& iWidth,
                             bool bRecursive,
                             bool bCharCode);
-  int32_t GetGlyphIndex(FX_WCHAR wUnicode,
+  int32_t GetGlyphIndex(wchar_t wUnicode,
                         bool bRecursive,
                         CFX_RetainPtr<CFGAS_GEFont>* ppFont,
                         bool bCharCode = false);
@@ -107,11 +107,11 @@
   CFX_RetainPtr<IFGAS_Stream> m_pStream;
   CFX_RetainPtr<IFX_SeekableReadStream> m_pFileRead;
   std::unique_ptr<CFX_UnicodeEncoding> m_pFontEncoding;
-  std::map<FX_WCHAR, int32_t> m_CharWidthMap;
-  std::map<FX_WCHAR, CFX_Rect> m_BBoxMap;
+  std::map<wchar_t, int32_t> m_CharWidthMap;
+  std::map<wchar_t, CFX_Rect> m_BBoxMap;
   CXFA_PDFFontMgr* m_pProvider;  // not owned.
   std::vector<CFX_RetainPtr<CFGAS_GEFont>> m_SubstFonts;
-  std::map<FX_WCHAR, CFX_RetainPtr<CFGAS_GEFont>> m_FontMapper;
+  std::map<wchar_t, CFX_RetainPtr<CFGAS_GEFont>> m_FontMapper;
 };
 
 #endif  // XFA_FGAS_FONT_CFGAS_GEFONT_H_
diff --git a/xfa/fgas/font/fgas_fontutils.cpp b/xfa/fgas/font/fgas_fontutils.cpp
index e74056b..e775ebd 100644
--- a/xfa/fgas/font/fgas_fontutils.cpp
+++ b/xfa/fgas/font/fgas_fontutils.cpp
@@ -31,7 +31,7 @@
   }
   return dwHash;
 }
-uint32_t FGAS_GetFontFamilyHash(const FX_WCHAR* pszFontFamily,
+uint32_t FGAS_GetFontFamilyHash(const wchar_t* pszFontFamily,
                                 uint32_t dwFontStyles,
                                 uint16_t wCodePage) {
   CFX_WideString wsFont(pszFontFamily);
@@ -134,7 +134,7 @@
     {0xFFA0, 0xFFEF, 68, 0xFFFF},
 };
 
-const FGAS_FONTUSB* FGAS_GetUnicodeBitField(FX_WCHAR wUnicode) {
+const FGAS_FONTUSB* FGAS_GetUnicodeBitField(wchar_t wUnicode) {
   int32_t iEnd = sizeof(g_FXGdiFontUSBTable) / sizeof(FGAS_FONTUSB) - 1;
   ASSERT(iEnd >= 0);
   int32_t iStart = 0, iMid;
diff --git a/xfa/fgas/font/fgas_fontutils.h b/xfa/fgas/font/fgas_fontutils.h
index d7055ce..d92b469 100644
--- a/xfa/fgas/font/fgas_fontutils.h
+++ b/xfa/fgas/font/fgas_fontutils.h
@@ -17,9 +17,9 @@
 };
 
 uint32_t FGAS_GetFontHashCode(uint16_t wCodePage, uint32_t dwFontStyles);
-uint32_t FGAS_GetFontFamilyHash(const FX_WCHAR* pszFontFamily,
+uint32_t FGAS_GetFontFamilyHash(const wchar_t* pszFontFamily,
                                 uint32_t dwFontStyles,
                                 uint16_t wCodePage);
-const FGAS_FONTUSB* FGAS_GetUnicodeBitField(FX_WCHAR wUnicode);
+const FGAS_FONTUSB* FGAS_GetUnicodeBitField(wchar_t wUnicode);
 
 #endif  // XFA_FGAS_FONT_FGAS_FONTUTILS_H_
diff --git a/xfa/fgas/layout/cfx_breakline.cpp b/xfa/fgas/layout/cfx_breakline.cpp
index 4e9d8ad..65860e4 100644
--- a/xfa/fgas/layout/cfx_breakline.cpp
+++ b/xfa/fgas/layout/cfx_breakline.cpp
@@ -37,9 +37,9 @@
 
 void CFX_BreakLine::GetString(CFX_WideString& wsStr) const {
   int32_t iCount = pdfium::CollectionSize<int32_t>(m_LineChars);
-  FX_WCHAR* pBuf = wsStr.GetBuffer(iCount);
+  wchar_t* pBuf = wsStr.GetBuffer(iCount);
   for (int32_t i = 0; i < iCount; i++)
-    *pBuf++ = static_cast<FX_WCHAR>(m_LineChars[i].m_wCharCode);
+    *pBuf++ = static_cast<wchar_t>(m_LineChars[i].m_wCharCode);
   wsStr.ReleaseBuffer(iCount);
 }
 
diff --git a/xfa/fgas/layout/cfx_breakpiece.cpp b/xfa/fgas/layout/cfx_breakpiece.cpp
index d31c53f..dd8b451 100644
--- a/xfa/fgas/layout/cfx_breakpiece.cpp
+++ b/xfa/fgas/layout/cfx_breakpiece.cpp
@@ -40,7 +40,7 @@
   CFX_WideString ret;
   ret.Reserve(m_iChars);
   for (int32_t i = m_iStartChar; i < m_iStartChar + m_iChars; i++)
-    ret += static_cast<FX_WCHAR>((*m_pChars)[i].m_wCharCode);
+    ret += static_cast<wchar_t>((*m_pChars)[i].m_wCharCode);
   return ret;
 }
 
diff --git a/xfa/fgas/layout/fgas_rtfbreak.cpp b/xfa/fgas/layout/fgas_rtfbreak.cpp
index 85edaf7..1e0cc9c 100644
--- a/xfa/fgas/layout/fgas_rtfbreak.cpp
+++ b/xfa/fgas/layout/fgas_rtfbreak.cpp
@@ -190,7 +190,7 @@
   return true;
 }
 
-CFX_BreakType CFX_RTFBreak::AppendChar(FX_WCHAR wch) {
+CFX_BreakType CFX_RTFBreak::AppendChar(wchar_t wch) {
   ASSERT(m_pFont && m_pCurLine);
 
   uint32_t dwProps = kTextLayoutCodeProperties[static_cast<uint16_t>(wch)];
@@ -313,7 +313,7 @@
 CFX_BreakType CFX_RTFBreak::AppendChar_Arabic(CFX_Char* pCurChar) {
   CFX_Char* pLastChar = nullptr;
   int32_t iCharWidth = 0;
-  FX_WCHAR wForm;
+  wchar_t wForm;
   bool bAlef = false;
   if (m_eCharType >= FX_CHARTYPE_ArabicAlef &&
       m_eCharType <= FX_CHARTYPE_ArabicDistortion) {
@@ -357,7 +357,7 @@
 
 CFX_BreakType CFX_RTFBreak::AppendChar_Others(CFX_Char* pCurChar) {
   FX_CHARTYPE chartype = pCurChar->GetCharType();
-  FX_WCHAR wForm = pCurChar->m_wCharCode;
+  wchar_t wForm = pCurChar->m_wCharCode;
   int32_t iCharWidth = 0;
   if (!m_pFont->GetCharWidth(wForm, iCharWidth, false))
     iCharWidth = m_iDefChar;
@@ -842,8 +842,8 @@
   FX_FLOAT fFontHeight = fFontSize;
   FX_FLOAT fAscent = fFontHeight * static_cast<FX_FLOAT>(iAscent) /
                      static_cast<FX_FLOAT>(iMaxHeight);
-  FX_WCHAR wPrev = 0xFEFF;
-  FX_WCHAR wNext;
+  wchar_t wPrev = 0xFEFF;
+  wchar_t wNext;
   FX_FLOAT fX = rtText.left;
   int32_t iHorScale = pText->iHorizontalScale;
   int32_t iVerScale = pText->iVerticalScale;
@@ -853,7 +853,7 @@
   FX_FLOAT fY = rtText.top + fAscent;
   int32_t iCount = 0;
   for (int32_t i = 0; i < pText->iLength; ++i) {
-    FX_WCHAR wch = pText->pStr[i];
+    wchar_t wch = pText->pStr[i];
     int32_t iWidth = pText->pWidths[i];
     uint32_t dwProps = FX_GetUnicodeProperties(wch);
     uint32_t dwCharType = (dwProps & FX_CHARTYPEBITSMASK);
@@ -871,7 +871,7 @@
 
     if (pCharPos) {
       iCharWidth /= iFontSize;
-      FX_WCHAR wForm = wch;
+      wchar_t wForm = wch;
       if (dwCharType >= FX_CHARTYPE_ArabicAlef) {
         if (i + 1 < pText->iLength) {
           wNext = pText->pStr[i + 1];
diff --git a/xfa/fgas/layout/fgas_rtfbreak.h b/xfa/fgas/layout/fgas_rtfbreak.h
index b3def63..339d2f4 100644
--- a/xfa/fgas/layout/fgas_rtfbreak.h
+++ b/xfa/fgas/layout/fgas_rtfbreak.h
@@ -36,7 +36,7 @@
   std::vector<int32_t> pWidths;
   CFX_RetainPtr<CFGAS_GEFont> pFont;
   const CFX_RectF* pRect;
-  FX_WCHAR wLineBreakChar;
+  wchar_t wLineBreakChar;
   FX_FLOAT fFontSize;
   int32_t iLength;
   int32_t iBidiLevel;
@@ -74,7 +74,7 @@
                         FXTEXT_CHARPOS* pCharPos,
                         bool bCharCode) const;
 
-  CFX_BreakType AppendChar(FX_WCHAR wch);
+  CFX_BreakType AppendChar(wchar_t wch);
 
   CFX_BreakLine* GetCurrentLineForTesting() const { return m_pCurLine; }
 
@@ -116,9 +116,9 @@
   int32_t m_iFontSize;
   int32_t m_iTabWidth;
   std::vector<int32_t> m_PositionedTabs;
-  FX_WCHAR m_wDefChar;
+  wchar_t m_wDefChar;
   int32_t m_iDefChar;
-  FX_WCHAR m_wLineBreakChar;
+  wchar_t m_wLineBreakChar;
   int32_t m_iHorizontalScale;
   int32_t m_iVerticalScale;
   int32_t m_iCharSpace;
diff --git a/xfa/fgas/layout/fgas_textbreak.cpp b/xfa/fgas/layout/fgas_textbreak.cpp
index 9343f94..eabe381 100644
--- a/xfa/fgas/layout/fgas_textbreak.cpp
+++ b/xfa/fgas/layout/fgas_textbreak.cpp
@@ -29,7 +29,7 @@
     &CFX_TxtBreak::AppendChar_Others,      &CFX_TxtBreak::AppendChar_Others,
 };
 
-bool IsCtrlCode(FX_WCHAR ch) {
+bool IsCtrlCode(wchar_t ch) {
   uint32_t dwRet = (FX_GetUnicodeProperties(ch) & FX_CHARTYPEBITSMASK);
   return dwRet == FX_CHARTYPE_Tab || dwRet == FX_CHARTYPE_Control;
 }
@@ -112,7 +112,7 @@
   m_bEquidistant = bEquidistant;
 }
 
-void CFX_TxtBreak::SetDefaultChar(FX_WCHAR wch) {
+void CFX_TxtBreak::SetDefaultChar(wchar_t wch) {
   m_wDefChar = wch;
   m_iDefChar = 0;
   if (m_wDefChar == 0xFEFF || !m_pFont)
@@ -125,7 +125,7 @@
     m_iDefChar *= m_iFontSize;
 }
 
-void CFX_TxtBreak::SetParagraphBreakChar(FX_WCHAR wch) {
+void CFX_TxtBreak::SetParagraphBreakChar(wchar_t wch) {
   if (wch != L'\r' && wch != L'\n')
     return;
   m_wParagBreakChar = wch;
@@ -208,8 +208,8 @@
 }
 
 CFX_BreakType CFX_TxtBreak::AppendChar_Combination(CFX_Char* pCurChar) {
-  FX_WCHAR wch = pCurChar->m_wCharCode;
-  FX_WCHAR wForm;
+  wchar_t wch = pCurChar->m_wCharCode;
+  wchar_t wForm;
   int32_t iCharWidth = 0;
   pCurChar->m_iCharWidth = -1;
   if (m_bCombText) {
@@ -221,7 +221,7 @@
         (pLastChar->m_dwCharStyles & FX_TXTCHARSTYLE_ArabicShadda) == 0) {
       bool bShadda = false;
       if (wch == 0x0651) {
-        FX_WCHAR wLast = pLastChar->m_wCharCode;
+        wchar_t wLast = pLastChar->m_wCharCode;
         if (wLast >= 0x064C && wLast <= 0x0650) {
           wForm = FX_GetArabicFromShaddaTable(wLast);
           bShadda = true;
@@ -257,7 +257,7 @@
   m_eCharType = FX_CHARTYPE_Control;
   CFX_BreakType dwRet = CFX_BreakType::None;
   if (!m_bSingleLine) {
-    FX_WCHAR wch = pCurChar->m_wCharCode;
+    wchar_t wch = pCurChar->m_wCharCode;
     switch (wch) {
       case L'\v':
       case 0x2028:
@@ -283,7 +283,7 @@
 CFX_BreakType CFX_TxtBreak::AppendChar_Arabic(CFX_Char* pCurChar) {
   FX_CHARTYPE chartype = pCurChar->GetCharType();
   int32_t& iLineWidth = m_pCurLine->m_iWidth;
-  FX_WCHAR wForm;
+  wchar_t wForm;
   int32_t iCharWidth = 0;
   CFX_Char* pLastChar = nullptr;
   bool bAlef = false;
@@ -339,8 +339,8 @@
   int32_t& iLineWidth = m_pCurLine->m_iWidth;
   int32_t iCharWidth = 0;
   m_eCharType = chartype;
-  FX_WCHAR wch = pCurChar->m_wCharCode;
-  FX_WCHAR wForm = wch;
+  wchar_t wch = pCurChar->m_wCharCode;
+  wchar_t wForm = wch;
 
   if (m_bCombText) {
     iCharWidth = m_iCombWidth;
@@ -363,7 +363,7 @@
   return CFX_BreakType::None;
 }
 
-CFX_BreakType CFX_TxtBreak::AppendChar(FX_WCHAR wch) {
+CFX_BreakType CFX_TxtBreak::AppendChar(wchar_t wch) {
   uint32_t dwProps = kTextLayoutCodeProperties[static_cast<uint16_t>(wch)];
   FX_CHARTYPE chartype = GetCharTypeFromProp(dwProps);
   m_pCurLine->m_LineChars.emplace_back();
@@ -834,7 +834,7 @@
 
   CFDE_TxtEdtPage* pAccess = pTxtRun->pAccess;
   const FDE_TEXTEDITPIECE* pIdentity = pTxtRun->pIdentity;
-  const FX_WCHAR* pStr = pTxtRun->wsStr.c_str();
+  const wchar_t* pStr = pTxtRun->wsStr.c_str();
   int32_t* pWidths = pTxtRun->pWidths;
   int32_t iLength = pTxtRun->iLength - 1;
   CFX_RetainPtr<CFGAS_GEFont> pFont = pTxtRun->pFont;
@@ -866,15 +866,15 @@
 
   int32_t iCount = 0;
   int32_t iNext = 0;
-  FX_WCHAR wPrev = 0xFEFF;
-  FX_WCHAR wNext = 0xFEFF;
-  FX_WCHAR wForm = 0xFEFF;
-  FX_WCHAR wLast = 0xFEFF;
+  wchar_t wPrev = 0xFEFF;
+  wchar_t wNext = 0xFEFF;
+  wchar_t wForm = 0xFEFF;
+  wchar_t wLast = 0xFEFF;
   bool bShadda = false;
   bool bLam = false;
   for (int32_t i = 0; i <= iLength; i++) {
     int32_t iWidth;
-    FX_WCHAR wch;
+    wchar_t wch;
     if (pAccess) {
       wch = pAccess->GetChar(pIdentity, i);
       iWidth = pAccess->GetWidth(pIdentity, i);
@@ -1006,12 +1006,12 @@
     }
 
     for (int32_t j = 0; j < iForms; j++) {
-      wForm = (FX_WCHAR)formChars[j].wForm;
+      wForm = (wchar_t)formChars[j].wForm;
       iCharWidth = formChars[j].iWidth;
       if (j > 0) {
         chartype = FX_CHARTYPE_Combination;
         wch = wForm;
-        wLast = (FX_WCHAR)formChars[j - 1].wForm;
+        wLast = (wchar_t)formChars[j - 1].wForm;
       }
       if (!bEmptyChar || (bEmptyChar && !bSkipSpace)) {
         pCharPos->m_GlyphIndex =
@@ -1085,7 +1085,7 @@
       }
     }
     if (iWidth > 0)
-      wPrev = static_cast<FX_WCHAR>(formChars[0].wch);
+      wPrev = static_cast<wchar_t>(formChars[0].wch);
     wLast = wch;
   }
   return iCount;
@@ -1098,7 +1098,7 @@
 
   CFDE_TxtEdtPage* pAccess = pTxtRun->pAccess;
   const FDE_TEXTEDITPIECE* pIdentity = pTxtRun->pIdentity;
-  const FX_WCHAR* pStr = pTxtRun->wsStr.c_str();
+  const wchar_t* pStr = pTxtRun->wsStr.c_str();
   int32_t* pWidths = pTxtRun->pWidths;
   int32_t iLength = pTxtRun->iLength;
   CFX_RectF rect(*pTxtRun->pRect);
@@ -1118,8 +1118,8 @@
   bool bRTLPiece = !!(pTxtRun->dwCharStyles & FX_TXTCHARSTYLE_OddBidiLevel);
   bool bSingleLine = !!(pTxtRun->dwStyles & FX_TXTLAYOUTSTYLE_SingleLine);
   bool bCombText = !!(pTxtRun->dwStyles & FX_TXTLAYOUTSTYLE_CombText);
-  FX_WCHAR wch;
-  FX_WCHAR wLineBreakChar = pTxtRun->wLineBreakChar;
+  wchar_t wch;
+  wchar_t wLineBreakChar = pTxtRun->wLineBreakChar;
   int32_t iCharSize;
   FX_FLOAT fCharSize;
   FX_FLOAT fStart = bRTLPiece ? rect.right() : rect.left;
diff --git a/xfa/fgas/layout/fgas_textbreak.h b/xfa/fgas/layout/fgas_textbreak.h
index 9aa576f..fd864f1 100644
--- a/xfa/fgas/layout/fgas_textbreak.h
+++ b/xfa/fgas/layout/fgas_textbreak.h
@@ -61,7 +61,7 @@
   int32_t iVerticalScale;
   uint32_t dwCharStyles;
   const CFX_RectF* pRect;
-  FX_WCHAR wLineBreakChar;
+  wchar_t wLineBreakChar;
   bool bSkipSpace;
 };
 
@@ -76,8 +76,8 @@
   void SetFont(const CFX_RetainPtr<CFGAS_GEFont>& pFont);
   void SetFontSize(FX_FLOAT fFontSize);
   void SetTabWidth(FX_FLOAT fTabWidth, bool bEquidistant);
-  void SetDefaultChar(FX_WCHAR wch);
-  void SetParagraphBreakChar(FX_WCHAR wch);
+  void SetDefaultChar(wchar_t wch);
+  void SetParagraphBreakChar(wchar_t wch);
   void SetLineBreakTolerance(FX_FLOAT fTolerance);
   void SetHorizontalScale(int32_t iScale);
   void SetCharSpace(FX_FLOAT fCharSpace);
@@ -95,7 +95,7 @@
   std::vector<CFX_RectF> GetCharRects(const FX_TXTRUN* pTxtRun,
                                       bool bCharBBox = false) const;
   void AppendChar_PageLoad(CFX_Char* pCurChar, uint32_t dwProps);
-  CFX_BreakType AppendChar(FX_WCHAR wch);
+  CFX_BreakType AppendChar(wchar_t wch);
   CFX_BreakType AppendChar_Combination(CFX_Char* pCurChar);
   CFX_BreakType AppendChar_Tab(CFX_Char* pCurChar);
   CFX_BreakType AppendChar_Control(CFX_Char* pCurChar);
@@ -133,8 +133,8 @@
   CFX_RetainPtr<CFGAS_GEFont> m_pFont;
   int32_t m_iFontSize;
   int32_t m_iTabWidth;
-  FX_WCHAR m_wDefChar;
-  FX_WCHAR m_wParagBreakChar;
+  wchar_t m_wDefChar;
+  wchar_t m_wParagBreakChar;
   int32_t m_iDefChar;
   int32_t m_iAlignment;
   uint32_t m_dwContextCharStyles;
diff --git a/xfa/fgas/localization/fgas_locale.cpp b/xfa/fgas/localization/fgas_locale.cpp
index 7d53841..4302156 100644
--- a/xfa/fgas/localization/fgas_locale.cpp
+++ b/xfa/fgas/localization/fgas_locale.cpp
@@ -23,7 +23,7 @@
 
 struct FX_LOCALESUBCATEGORYINFO {
   uint32_t uHash;
-  const FX_WCHAR* pName;
+  const wchar_t* pName;
   int32_t eSubCategory;
 };
 
@@ -59,11 +59,11 @@
     {FXBSTR_ID(0, 'P', 'D', 'T'), -7, 0}, {FXBSTR_ID(0, 'P', 'S', 'T'), -8, 0},
 };
 
-static const FX_WCHAR gs_wsTimeSymbols[] = L"hHkKMSFAzZ";
-static const FX_WCHAR gs_wsDateSymbols[] = L"DJMEeGgYwW";
-static const FX_WCHAR gs_wsConstChars[] = L",-:/. ";
+static const wchar_t gs_wsTimeSymbols[] = L"hHkKMSFAzZ";
+static const wchar_t gs_wsDateSymbols[] = L"DJMEeGgYwW";
+static const wchar_t gs_wsConstChars[] = L",-:/. ";
 
-static int32_t FX_ParseTimeZone(const FX_WCHAR* pStr,
+static int32_t FX_ParseTimeZone(const wchar_t* pStr,
                                 int32_t iLen,
                                 FX_TIMEZONE& tz) {
   tz.tzHour = 0;
@@ -122,7 +122,7 @@
   int32_t cc = 0;
   bool bNegative = false;
   bool bExpSign = false;
-  const FX_WCHAR* str = wsValue.c_str();
+  const wchar_t* str = wsValue.c_str();
   int32_t len = wsValue.GetLength();
   while (cc < len && FXSYS_iswspace(str[cc]))
     cc++;
@@ -270,9 +270,9 @@
     const CFX_WideString& wsFormatString,
     std::vector<CFX_WideString>& wsPatterns) {
   int32_t iStrLen = wsFormatString.GetLength();
-  const FX_WCHAR* pStr = wsFormatString.c_str();
-  const FX_WCHAR* pToken = pStr;
-  const FX_WCHAR* pEnd = pStr + iStrLen;
+  const wchar_t* pStr = wsFormatString.c_str();
+  const wchar_t* pToken = pStr;
+  const wchar_t* pEnd = pStr + iStrLen;
   bool iQuote = false;
   while (true) {
     if (pStr >= pEnd) {
@@ -289,7 +289,7 @@
   }
 }
 
-static CFX_WideString FX_GetLiteralText(const FX_WCHAR* pStrPattern,
+static CFX_WideString FX_GetLiteralText(const wchar_t* pStrPattern,
                                         int32_t& iPattern,
                                         int32_t iLenPattern) {
   CFX_WideString wsOutput;
@@ -314,7 +314,7 @@
       iPattern += 2;
       int32_t i = 0;
       while (iPattern < iLenPattern && i++ < 4) {
-        FX_WCHAR ch = pStrPattern[iPattern++];
+        wchar_t ch = pStrPattern[iPattern++];
         if ((ch >= '0' && ch <= '9')) {
           iKeyValue = iKeyValue * 16 + ch - '0';
         } else if ((ch >= 'a' && ch <= 'f')) {
@@ -324,7 +324,7 @@
         }
       }
       if (iKeyValue != 0) {
-        wsOutput += (FX_WCHAR)(iKeyValue & 0x0000FFFF);
+        wsOutput += (wchar_t)(iKeyValue & 0x0000FFFF);
       }
       continue;
     }
@@ -332,7 +332,7 @@
   }
   return wsOutput;
 }
-static CFX_WideString FX_GetLiteralTextReverse(const FX_WCHAR* pStrPattern,
+static CFX_WideString FX_GetLiteralTextReverse(const wchar_t* pStrPattern,
                                                int32_t& iPattern) {
   CFX_WideString wsOutput;
   if (pStrPattern[iPattern] != '\'') {
@@ -356,7 +356,7 @@
       int32_t iLen = wsOutput.GetLength();
       int32_t i = 1;
       for (; i < iLen && i < 5; i++) {
-        FX_WCHAR ch = wsOutput[i];
+        wchar_t ch = wsOutput[i];
         if ((ch >= '0' && ch <= '9')) {
           iKeyValue = iKeyValue * 16 + ch - '0';
         } else if ((ch >= 'a' && ch <= 'f')) {
@@ -367,7 +367,7 @@
       }
       if (iKeyValue != 0) {
         wsOutput.Delete(0, i);
-        wsOutput = (FX_WCHAR)(iKeyValue & 0x0000FFFF) + wsOutput;
+        wsOutput = (wchar_t)(iKeyValue & 0x0000FFFF) + wsOutput;
       }
       continue;
     }
@@ -380,7 +380,7 @@
   FX_LOCALECATEGORY eCategory = FX_LOCALECATEGORY_Unknown;
   int32_t ccf = 0;
   int32_t iLenf = wsPattern.GetLength();
-  const FX_WCHAR* pStr = wsPattern.c_str();
+  const wchar_t* pStr = wsPattern.c_str();
   bool bBraceOpen = false;
   CFX_WideStringC wsConstChars(gs_wsConstChars);
   while (ccf < iLenf) {
@@ -432,7 +432,7 @@
   }
   return eCategory;
 }
-static uint16_t FX_WStringToLCID(const FX_WCHAR* pstrLCID) {
+static uint16_t FX_WStringToLCID(const wchar_t* pstrLCID) {
   if (!pstrLCID) {
     return 0;
   }
@@ -446,7 +446,7 @@
     const CFX_WideString& wsPattern) {
   int32_t ccf = 0;
   int32_t iLenf = wsPattern.GetLength();
-  const FX_WCHAR* pStr = wsPattern.c_str();
+  const wchar_t* pStr = wsPattern.c_str();
   while (ccf < iLenf) {
     if (pStr[ccf] == '\'') {
       FX_GetLiteralText(pStr, ccf, iLenf);
@@ -468,7 +468,7 @@
   IFX_Locale* pLocale = nullptr;
   int32_t ccf = 0;
   int32_t iLenf = wsPattern.GetLength();
-  const FX_WCHAR* pStr = wsPattern.c_str();
+  const wchar_t* pStr = wsPattern.c_str();
   bool bBrackOpen = false;
   CFX_WideStringC wsConstChars(gs_wsConstChars);
   while (ccf < iLenf) {
@@ -525,7 +525,7 @@
   IFX_Locale* pLocale = nullptr;
   int32_t ccf = 0;
   int32_t iLenf = wsPattern.GetLength();
-  const FX_WCHAR* pStr = wsPattern.c_str();
+  const wchar_t* pStr = wsPattern.c_str();
   bool bFindDot = false;
   bool bBrackOpen = false;
   CFX_WideStringC wsConstChars(gs_wsConstChars);
@@ -625,7 +625,7 @@
                                   int32_t& iDotIndex) {
   int32_t ccf = 0;
   int32_t iLenf = wsNum.GetLength();
-  const FX_WCHAR* pStr = wsNum.c_str();
+  const wchar_t* pStr = wsNum.c_str();
   int32_t iLenDot = wsDotSymbol.GetLength();
   while (ccf < iLenf) {
     if (pStr[ccf] == '\'') {
@@ -657,9 +657,9 @@
     return false;
   }
   int32_t iText = 0, iPattern = 0;
-  const FX_WCHAR* pStrText = wsSrcText.c_str();
+  const wchar_t* pStrText = wsSrcText.c_str();
   int32_t iLenText = wsSrcText.GetLength();
-  const FX_WCHAR* pStrPattern = wsTextFormat.c_str();
+  const wchar_t* pStrPattern = wsTextFormat.c_str();
   int32_t iLenPattern = wsTextFormat.GetLength();
   while (iPattern < iLenPattern && iText < iLenText) {
     switch (pStrPattern[iPattern]) {
@@ -741,9 +741,9 @@
   pLocale->GetNumbericSymbol(FX_LOCALENUMSYMBOL_Minus, wsMinus);
   int32_t iMinusLen = wsMinus.GetLength();
   int cc = 0, ccf = 0;
-  const FX_WCHAR* str = wsSrcNum.c_str();
+  const wchar_t* str = wsSrcNum.c_str();
   int len = wsSrcNum.GetLength();
-  const FX_WCHAR* strf = wsNumFormat.c_str();
+  const wchar_t* strf = wsNumFormat.c_str();
   int lenf = wsNumFormat.GetLength();
   double dbRetValue = 0;
   double coeff = 1;
@@ -1449,9 +1449,9 @@
   pLocale->GetNumbericSymbol(FX_LOCALENUMSYMBOL_Minus, wsMinus);
   int32_t iMinusLen = wsMinus.GetLength();
   int cc = 0, ccf = 0;
-  const FX_WCHAR* str = wsSrcNum.c_str();
+  const wchar_t* str = wsSrcNum.c_str();
   int len = wsSrcNum.GetLength();
-  const FX_WCHAR* strf = wsNumFormat.c_str();
+  const wchar_t* strf = wsNumFormat.c_str();
   int lenf = wsNumFormat.GetLength();
   bool bHavePercentSymbol = false;
   bool bNeg = false;
@@ -1915,7 +1915,7 @@
   FX_LOCALECATEGORY eCategory = FX_LOCALECATEGORY_Unknown;
   int32_t ccf = 0;
   int32_t iLenf = wsPattern.GetLength();
-  const FX_WCHAR* pStr = wsPattern.c_str();
+  const wchar_t* pStr = wsPattern.c_str();
   int32_t iFindCategory = 0;
   bool bBraceOpen = false;
   CFX_WideStringC wsConstChars(gs_wsConstChars);
@@ -2052,9 +2052,9 @@
   int32_t month = 1;
   int32_t day = 1;
   int32_t ccf = 0;
-  const FX_WCHAR* str = wsDate.c_str();
+  const wchar_t* str = wsDate.c_str();
   int32_t len = wsDate.GetLength();
-  const FX_WCHAR* strf = wsDatePattern.c_str();
+  const wchar_t* strf = wsDatePattern.c_str();
   int32_t lenf = wsDatePattern.GetLength();
   CFX_WideStringC wsDateSymbols(gs_wsDateSymbols);
   while (cc < len && ccf < lenf) {
@@ -2076,7 +2076,7 @@
       continue;
     }
     uint32_t dwSymbolNum = 1;
-    FX_WCHAR dwCharSymbol = strf[ccf++];
+    wchar_t dwCharSymbol = strf[ccf++];
     while (ccf < lenf && strf[ccf] == dwCharSymbol) {
       ccf++;
       dwSymbolNum++;
@@ -2270,9 +2270,9 @@
   uint8_t second = 0;
   uint16_t millisecond = 0;
   int32_t ccf = 0;
-  const FX_WCHAR* str = wsTime.c_str();
+  const wchar_t* str = wsTime.c_str();
   int len = wsTime.GetLength();
-  const FX_WCHAR* strf = wsTimePattern.c_str();
+  const wchar_t* strf = wsTimePattern.c_str();
   int lenf = wsTimePattern.GetLength();
   bool bHasA = false;
   bool bPM = false;
@@ -2296,7 +2296,7 @@
       continue;
     }
     uint32_t dwSymbolNum = 1;
-    FX_WCHAR dwCharSymbol = strf[ccf++];
+    wchar_t dwCharSymbol = strf[ccf++];
     while (ccf < lenf && strf[ccf] == dwCharSymbol) {
       ccf++;
       dwSymbolNum++;
@@ -2508,9 +2508,9 @@
   CFX_WideString wsTextFormat;
   GetTextFormat(wsPattern, L"zero", wsTextFormat);
   int32_t iText = 0, iPattern = 0;
-  const FX_WCHAR* pStrText = wsSrcText.c_str();
+  const wchar_t* pStrText = wsSrcText.c_str();
   int32_t iLenText = wsSrcText.GetLength();
-  const FX_WCHAR* pStrPattern = wsTextFormat.c_str();
+  const wchar_t* pStrPattern = wsTextFormat.c_str();
   int32_t iLenPattern = wsTextFormat.GetLength();
   while (iPattern < iLenPattern && iText < iLenText) {
     if (pStrPattern[iPattern] == '\'') {
@@ -2538,9 +2538,9 @@
   CFX_WideString wsTextFormat;
   GetTextFormat(wsPattern, L"null", wsTextFormat);
   int32_t iText = 0, iPattern = 0;
-  const FX_WCHAR* pStrText = wsSrcText.c_str();
+  const wchar_t* pStrText = wsSrcText.c_str();
   int32_t iLenText = wsSrcText.GetLength();
-  const FX_WCHAR* pStrPattern = wsTextFormat.c_str();
+  const wchar_t* pStrPattern = wsTextFormat.c_str();
   int32_t iLenPattern = wsTextFormat.GetLength();
   while (iPattern < iLenPattern && iText < iLenText) {
     if (pStrPattern[iPattern] == '\'') {
@@ -2576,8 +2576,8 @@
   CFX_WideString wsTextFormat;
   GetTextFormat(wsPattern, L"text", wsTextFormat);
   int32_t iText = 0, iPattern = 0;
-  const FX_WCHAR* pStrText = wsSrcText.c_str();
-  const FX_WCHAR* pStrPattern = wsTextFormat.c_str();
+  const wchar_t* pStrText = wsSrcText.c_str();
+  const wchar_t* pStrPattern = wsTextFormat.c_str();
   int32_t iLenPattern = wsTextFormat.GetLength();
   while (iPattern < iLenPattern) {
     switch (pStrPattern[iPattern]) {
@@ -2632,7 +2632,7 @@
   int32_t iCount = wsFormat.GetLength();
   int32_t iTreading = 0;
   for (iDotPos++; iDotPos < iCount; iDotPos++) {
-    FX_WCHAR wc = wsFormat[iDotPos];
+    wchar_t wc = wsFormat[iDotPos];
     if (wc == L'z' || wc == L'9' || wc == 'Z') {
       iTreading++;
       bTrimTailZeros = (wc == L'9' ? false : true);
@@ -2655,7 +2655,7 @@
     return false;
   }
   int32_t cc = 0, ccf = 0;
-  const FX_WCHAR* strf = wsNumFormat.c_str();
+  const wchar_t* strf = wsNumFormat.c_str();
   int lenf = wsNumFormat.GetLength();
   CFX_WideString wsSrcNum(wsInputNum);
   wsSrcNum.TrimLeft('0');
@@ -2725,7 +2725,7 @@
     wsSrcNum.Delete(0, 1);
   }
   bool bAddNeg = false;
-  const FX_WCHAR* str = wsSrcNum.c_str();
+  const wchar_t* str = wsSrcNum.c_str();
   int len = wsSrcNum.GetLength();
   int dot_index = wsSrcNum.Find('.');
   if (dot_index == -1) {
@@ -3088,7 +3088,7 @@
     return false;
   }
   int32_t cc = 0, ccf = 0;
-  const FX_WCHAR* strf = wsNumFormat.c_str();
+  const wchar_t* strf = wsNumFormat.c_str();
   int lenf = wsNumFormat.GetLength();
   double dbOrgRaw = lcNum.GetDouble();
   double dbRetValue = dbOrgRaw;
@@ -3151,7 +3151,7 @@
     wsNumeric.Delete(0, 1);
   }
   bool bAddNeg = false;
-  const FX_WCHAR* str = wsNumeric.c_str();
+  const wchar_t* str = wsNumeric.c_str();
   int len = wsNumeric.GetLength();
   int dot_index = wsNumeric.Find('.');
   if (dot_index == -1) {
@@ -3507,7 +3507,7 @@
   int32_t day = 1;
   uint16_t wYear = 0;
   int cc_start = 0, cc = 0;
-  const FX_WCHAR* str = wsDate.c_str();
+  const wchar_t* str = wsDate.c_str();
   int len = wsDate.GetLength();
   if (len > 10) {
     return false;
@@ -3590,7 +3590,7 @@
   uint8_t second = 0;
   uint16_t millisecond = 0;
   int cc_start = 0, cc = cc_start;
-  const FX_WCHAR* str = wsTime.c_str();
+  const wchar_t* str = wsTime.c_str();
   int len = wsTime.GetLength();
   while (cc < len && cc < 2) {
     if (!FXSYS_isDecimalDigit(str[cc])) {
@@ -3711,7 +3711,7 @@
   uint8_t month = datetime.GetMonth();
   uint8_t day = datetime.GetDay();
   int32_t ccf = 0;
-  const FX_WCHAR* strf = wsDatePattern.c_str();
+  const wchar_t* strf = wsDatePattern.c_str();
   int32_t lenf = wsDatePattern.GetLength();
   CFX_WideStringC wsDateSymbols(gs_wsDateSymbols);
   while (ccf < lenf) {
@@ -3724,7 +3724,7 @@
       continue;
     }
     uint32_t dwSymbolNum = 1;
-    FX_WCHAR dwCharSymbol = strf[ccf++];
+    wchar_t dwCharSymbol = strf[ccf++];
     while (ccf < lenf && strf[ccf] == dwCharSymbol) {
       ccf++;
       dwSymbolNum++;
@@ -3831,7 +3831,7 @@
   uint8_t second = datetime.GetSecond();
   uint16_t millisecond = datetime.GetMillisecond();
   int32_t ccf = 0;
-  const FX_WCHAR* strf = wsTimePattern.c_str();
+  const wchar_t* strf = wsTimePattern.c_str();
   int32_t lenf = wsTimePattern.GetLength();
   uint16_t wHour = hour;
   bool bPM = false;
@@ -3851,7 +3851,7 @@
       continue;
     }
     uint32_t dwSymbolNum = 1;
-    FX_WCHAR dwCharSymbol = strf[ccf++];
+    wchar_t dwCharSymbol = strf[ccf++];
     while (ccf < lenf && strf[ccf] == dwCharSymbol) {
       ccf++;
       dwSymbolNum++;
@@ -4081,7 +4081,7 @@
   CFX_WideString wsTextFormat;
   GetTextFormat(wsPattern, L"zero", wsTextFormat);
   int32_t iPattern = 0;
-  const FX_WCHAR* pStrPattern = wsTextFormat.c_str();
+  const wchar_t* pStrPattern = wsTextFormat.c_str();
   int32_t iLenPattern = wsTextFormat.GetLength();
   while (iPattern < iLenPattern) {
     if (pStrPattern[iPattern] == '\'') {
@@ -4103,7 +4103,7 @@
   CFX_WideString wsTextFormat;
   GetTextFormat(wsPattern, L"null", wsTextFormat);
   int32_t iPattern = 0;
-  const FX_WCHAR* pStrPattern = wsTextFormat.c_str();
+  const wchar_t* pStrPattern = wsTextFormat.c_str();
   int32_t iLenPattern = wsTextFormat.GetLength();
   while (iPattern < iLenPattern) {
     if (pStrPattern[iPattern] == '\'') {
@@ -4433,8 +4433,8 @@
   m_uFlags = FXMATH_DECIMAL_MAKEFLAGS(val < 0 && IsNotZero(), scale);
 }
 CFX_Decimal::CFX_Decimal(const CFX_WideStringC& strObj) {
-  const FX_WCHAR* str = strObj.c_str();
-  const FX_WCHAR* strBound = str + strObj.GetLength();
+  const wchar_t* str = strObj.c_str();
+  const wchar_t* strBound = str + strObj.GetLength();
   bool pointmet = 0;
   bool negmet = 0;
   uint8_t scale = 0;
diff --git a/xfa/fwl/cfwl_barcode.cpp b/xfa/fwl/cfwl_barcode.cpp
index 0412b86..e894d25 100644
--- a/xfa/fwl/cfwl_barcode.cpp
+++ b/xfa/fwl/cfwl_barcode.cpp
@@ -136,12 +136,12 @@
   m_nWideNarrowRatio = ratio;
 }
 
-void CFWL_Barcode::SetStartChar(FX_CHAR startChar) {
+void CFWL_Barcode::SetStartChar(char startChar) {
   m_dwAttributeMask |= FWL_BCDATTRIBUTE_STARTCHAR;
   m_cStartChar = startChar;
 }
 
-void CFWL_Barcode::SetEndChar(FX_CHAR endChar) {
+void CFWL_Barcode::SetEndChar(char endChar) {
   m_dwAttributeMask |= FWL_BCDATTRIBUTE_ENDCHAR;
   m_cEndChar = endChar;
 }
diff --git a/xfa/fwl/cfwl_barcode.h b/xfa/fwl/cfwl_barcode.h
index 2e97991..101cc60 100644
--- a/xfa/fwl/cfwl_barcode.h
+++ b/xfa/fwl/cfwl_barcode.h
@@ -63,8 +63,8 @@
   void SetPrintChecksum(bool printChecksum);
   void SetTextLocation(BC_TEXT_LOC location);
   void SetWideNarrowRatio(int32_t ratio);
-  void SetStartChar(FX_CHAR startChar);
-  void SetEndChar(FX_CHAR endChar);
+  void SetStartChar(char startChar);
+  void SetEndChar(char endChar);
   void SetErrorCorrectionLevel(int32_t ecLevel);
   void SetTruncated(bool truncated);
 
@@ -83,8 +83,8 @@
   bool m_bPrintChecksum;
   BC_TEXT_LOC m_eTextLocation;
   int32_t m_nWideNarrowRatio;
-  FX_CHAR m_cStartChar;
-  FX_CHAR m_cEndChar;
+  char m_cStartChar;
+  char m_cEndChar;
   int32_t m_nECLevel;
   bool m_bTruncated;
   uint32_t m_dwAttributeMask;
diff --git a/xfa/fwl/cfwl_edit.cpp b/xfa/fwl/cfwl_edit.cpp
index a7c85d5..b3b05a5 100644
--- a/xfa/fwl/cfwl_edit.cpp
+++ b/xfa/fwl/cfwl_edit.cpp
@@ -38,7 +38,7 @@
 
 const int kEditMargin = 3;
 
-bool FX_EDIT_ISLATINWORD(FX_WCHAR c) {
+bool FX_EDIT_ISLATINWORD(wchar_t c) {
   return c == 0x2D || (c <= 0x005A && c >= 0x0041) ||
          (c <= 0x007A && c >= 0x0061) || (c <= 0x02AF && c >= 0x00C0) ||
          c == 0x0027;
@@ -203,7 +203,7 @@
     if (FX_EDIT_ISLATINWORD(wsSpell[i])) {
       if (sLatinWord.IsEmpty())
         nStart = i;
-      sLatinWord += (FX_CHAR)wsSpell[i];
+      sLatinWord += (char)wsSpell[i];
       continue;
     }
     checkWordEvent.bsWord = sLatinWord;
@@ -314,7 +314,7 @@
   m_EdtEngine.SetLimit(nLimit);
 }
 
-void CFWL_Edit::SetAliasChar(FX_WCHAR wAlias) {
+void CFWL_Edit::SetAliasChar(wchar_t wAlias) {
   m_EdtEngine.SetAliasChar(wAlias);
 }
 
@@ -1137,7 +1137,7 @@
   pDocEnvironment->DisplayCaret(pXFAWidget, false, pRect);
 }
 
-bool CFWL_Edit::ValidateNumberChar(FX_WCHAR cNum) {
+bool CFWL_Edit::ValidateNumberChar(wchar_t cNum) {
   if (!m_bSetRange)
     return true;
 
@@ -1434,7 +1434,7 @@
   }
 
   int32_t iError = 0;
-  FX_WCHAR c = static_cast<FX_WCHAR>(pMsg->m_dwKeyCode);
+  wchar_t c = static_cast<wchar_t>(pMsg->m_dwKeyCode);
   int32_t nCaret = m_EdtEngine.GetCaretPos();
   switch (c) {
     case FWL_VKEY_Back:
diff --git a/xfa/fwl/cfwl_edit.h b/xfa/fwl/cfwl_edit.h
index 154e286..13e4be2 100644
--- a/xfa/fwl/cfwl_edit.h
+++ b/xfa/fwl/cfwl_edit.h
@@ -80,7 +80,7 @@
   void ClearSelections();
   int32_t GetLimit() const;
   void SetLimit(int32_t nLimit);
-  void SetAliasChar(FX_WCHAR wAlias);
+  void SetAliasChar(wchar_t wAlias);
   bool Copy(CFX_WideString& wsCopy);
   bool Cut(CFX_WideString& wsCut);
   bool Paste(const CFX_WideString& wsPaste);
@@ -132,7 +132,7 @@
   void InitHorizontalScrollBar();
   void InitEngine();
   void InitCaret();
-  bool ValidateNumberChar(FX_WCHAR cNum);
+  bool ValidateNumberChar(wchar_t cNum);
   void ClearRecord();
   bool IsShowScrollBar(bool bVert);
   bool IsContentHeightOverflow();
diff --git a/xfa/fwl/cfwl_monthcalendar.cpp b/xfa/fwl/cfwl_monthcalendar.cpp
index 6882d70..2dcac03 100644
--- a/xfa/fwl/cfwl_monthcalendar.cpp
+++ b/xfa/fwl/cfwl_monthcalendar.cpp
@@ -674,10 +674,10 @@
 
 CFX_WideString CFWL_MonthCalendar::GetHeadText(int32_t iYear, int32_t iMonth) {
   ASSERT(iMonth > 0 && iMonth < 13);
-  static const FX_WCHAR* const pMonth[] = {
-      L"January",   L"February", L"March",    L"April",
-      L"May",       L"June",     L"July",     L"August",
-      L"September", L"October",  L"November", L"December"};
+  static const wchar_t* const pMonth[] = {L"January", L"February", L"March",
+                                          L"April",   L"May",      L"June",
+                                          L"July",    L"August",   L"September",
+                                          L"October", L"November", L"December"};
   CFX_WideString wsHead;
   wsHead.Format(L"%s, %d", pMonth[iMonth - 1], iYear);
   return wsHead;
diff --git a/xfa/fwl/cfx_barcode.cpp b/xfa/fwl/cfx_barcode.cpp
index 7af3aa1..1c22367 100644
--- a/xfa/fwl/cfx_barcode.cpp
+++ b/xfa/fwl/cfx_barcode.cpp
@@ -235,8 +235,8 @@
   return m_pBCEngine && memptr ? (m_pBCEngine.get()->*memptr)(ratio) : false;
 }
 
-bool CFX_Barcode::SetStartChar(FX_CHAR start) {
-  typedef bool (CBC_CodeBase::*memptrtype)(FX_CHAR);
+bool CFX_Barcode::SetStartChar(char start) {
+  typedef bool (CBC_CodeBase::*memptrtype)(char);
   memptrtype memptr = nullptr;
   switch (GetType()) {
     case BC_CODABAR:
@@ -248,8 +248,8 @@
   return m_pBCEngine && memptr ? (m_pBCEngine.get()->*memptr)(start) : false;
 }
 
-bool CFX_Barcode::SetEndChar(FX_CHAR end) {
-  typedef bool (CBC_CodeBase::*memptrtype)(FX_CHAR);
+bool CFX_Barcode::SetEndChar(char end) {
+  typedef bool (CBC_CodeBase::*memptrtype)(char);
   memptrtype memptr = nullptr;
   switch (GetType()) {
     case BC_CODABAR:
diff --git a/xfa/fwl/cfx_barcode.h b/xfa/fwl/cfx_barcode.h
index f639977..3f4b340 100644
--- a/xfa/fwl/cfx_barcode.h
+++ b/xfa/fwl/cfx_barcode.h
@@ -52,8 +52,8 @@
   bool SetTextLocation(BC_TEXT_LOC location);
 
   bool SetWideNarrowRatio(int32_t ratio);
-  bool SetStartChar(FX_CHAR start);
-  bool SetEndChar(FX_CHAR end);
+  bool SetStartChar(char start);
+  bool SetEndChar(char end);
   bool SetVersion(int32_t version);
   bool SetErrorCorrectionLevel(int32_t level);
   bool SetTruncated(bool truncated);
diff --git a/xfa/fxbarcode/BC_Dimension.cpp b/xfa/fxbarcode/BC_Dimension.cpp
index 0cb076c..7a4b256 100644
--- a/xfa/fxbarcode/BC_Dimension.cpp
+++ b/xfa/fxbarcode/BC_Dimension.cpp
@@ -42,5 +42,5 @@
   return m_width * 32713 + m_height;
 }
 CFX_WideString CBC_Dimension::toString() {
-  return (FX_WCHAR)(m_width + (FX_WCHAR)'x' + m_height);
+  return (wchar_t)(m_width + (wchar_t)'x' + m_height);
 }
diff --git a/xfa/fxbarcode/BC_Utils.cpp b/xfa/fxbarcode/BC_Utils.cpp
index 5d881c7..b1dcf4a 100644
--- a/xfa/fxbarcode/BC_Utils.cpp
+++ b/xfa/fxbarcode/BC_Utils.cpp
@@ -11,7 +11,7 @@
                               uint32_t first,
                               uint32_t last,
                               int32_t count,
-                              FX_CHAR c) {
+                              char c) {
   if (first > last || count <= 0) {
     return false;
   }
@@ -21,7 +21,7 @@
   }
   return true;
 }
-void BC_FX_ByteString_Append(CFX_ByteString& dst, int32_t count, FX_CHAR c) {
+void BC_FX_ByteString_Append(CFX_ByteString& dst, int32_t count, char c) {
   for (int32_t i = 0; i < count; i++) {
     dst += c;
   }
diff --git a/xfa/fxbarcode/cbc_codabar.cpp b/xfa/fxbarcode/cbc_codabar.cpp
index 6f6ab4a..53e351d 100644
--- a/xfa/fxbarcode/cbc_codabar.cpp
+++ b/xfa/fxbarcode/cbc_codabar.cpp
@@ -27,14 +27,14 @@
 
 CBC_Codabar::~CBC_Codabar() {}
 
-bool CBC_Codabar::SetStartChar(FX_CHAR start) {
+bool CBC_Codabar::SetStartChar(char start) {
   if (!m_pBCWriter)
     return false;
   return static_cast<CBC_OnedCodaBarWriter*>(m_pBCWriter.get())
       ->SetStartChar(start);
 }
 
-bool CBC_Codabar::SetEndChar(FX_CHAR end) {
+bool CBC_Codabar::SetEndChar(char end) {
   if (m_pBCWriter)
     return static_cast<CBC_OnedCodaBarWriter*>(m_pBCWriter.get())
         ->SetEndChar(end);
diff --git a/xfa/fxbarcode/cbc_codabar.h b/xfa/fxbarcode/cbc_codabar.h
index 28631a9..43f1a01 100644
--- a/xfa/fxbarcode/cbc_codabar.h
+++ b/xfa/fxbarcode/cbc_codabar.h
@@ -27,8 +27,8 @@
   bool RenderBitmap(CFX_DIBitmap*& pOutBitmap, int32_t& e) override;
   BC_TYPE GetType() override;
 
-  bool SetStartChar(FX_CHAR start);
-  bool SetEndChar(FX_CHAR end);
+  bool SetStartChar(char start);
+  bool SetEndChar(char end);
   bool SetTextLocation(BC_TEXT_LOC location);
   bool SetWideNarrowRatio(int32_t ratio);
 
diff --git a/xfa/fxbarcode/cbc_ean13.cpp b/xfa/fxbarcode/cbc_ean13.cpp
index 450fba0..abd5f19 100644
--- a/xfa/fxbarcode/cbc_ean13.cpp
+++ b/xfa/fxbarcode/cbc_ean13.cpp
@@ -34,7 +34,7 @@
   int32_t length = encodeContents.GetLength();
   if (length <= 12) {
     for (int32_t i = 0; i < 12 - length; i++)
-      encodeContents = FX_WCHAR('0') + encodeContents;
+      encodeContents = wchar_t('0') + encodeContents;
 
     CFX_ByteString byteString = encodeContents.UTF8Encode();
     int32_t checksum = static_cast<CBC_OnedEAN13Writer*>(m_pBCWriter.get())
diff --git a/xfa/fxbarcode/cbc_ean8.cpp b/xfa/fxbarcode/cbc_ean8.cpp
index 64ba617..bfb4585 100644
--- a/xfa/fxbarcode/cbc_ean8.cpp
+++ b/xfa/fxbarcode/cbc_ean8.cpp
@@ -34,12 +34,12 @@
   int32_t length = encodeContents.GetLength();
   if (length <= 7) {
     for (int32_t i = 0; i < 7 - length; i++)
-      encodeContents = FX_WCHAR('0') + encodeContents;
+      encodeContents = wchar_t('0') + encodeContents;
 
     CFX_ByteString byteString = encodeContents.UTF8Encode();
     int32_t checksum = static_cast<CBC_OnedEAN8Writer*>(m_pBCWriter.get())
                            ->CalcChecksum(byteString);
-    encodeContents += FX_WCHAR(checksum - 0 + '0');
+    encodeContents += wchar_t(checksum - 0 + '0');
   }
   if (length > 8)
     encodeContents = encodeContents.Mid(0, 8);
diff --git a/xfa/fxbarcode/cbc_upca.cpp b/xfa/fxbarcode/cbc_upca.cpp
index b282d5c..87f5809 100644
--- a/xfa/fxbarcode/cbc_upca.cpp
+++ b/xfa/fxbarcode/cbc_upca.cpp
@@ -34,7 +34,7 @@
   int32_t length = encodeContents.GetLength();
   if (length <= 11) {
     for (int32_t i = 0; i < 11 - length; i++)
-      encodeContents = FX_WCHAR('0') + encodeContents;
+      encodeContents = wchar_t('0') + encodeContents;
 
     CFX_ByteString byteString = encodeContents.UTF8Encode();
     int32_t checksum = pWriter->CalcChecksum(byteString);
diff --git a/xfa/fxbarcode/datamatrix/BC_ASCIIEncoder.cpp b/xfa/fxbarcode/datamatrix/BC_ASCIIEncoder.cpp
index 00d8fc1..88a12b2 100644
--- a/xfa/fxbarcode/datamatrix/BC_ASCIIEncoder.cpp
+++ b/xfa/fxbarcode/datamatrix/BC_ASCIIEncoder.cpp
@@ -37,16 +37,15 @@
   int32_t n = CBC_HighLevelEncoder::determineConsecutiveDigitCount(
       context.m_msg, context.m_pos);
   if (n >= 2) {
-    FX_WCHAR code =
-        encodeASCIIDigits(context.m_msg.GetAt(context.m_pos),
-                          context.m_msg.GetAt(context.m_pos + 1), e);
+    wchar_t code = encodeASCIIDigits(context.m_msg.GetAt(context.m_pos),
+                                     context.m_msg.GetAt(context.m_pos + 1), e);
     if (e != BCExceptionNO) {
       return;
     }
     context.writeCodeword(code);
     context.m_pos += 2;
   } else {
-    FX_WCHAR c = context.getCurrentChar();
+    wchar_t c = context.getCurrentChar();
     int32_t newMode = CBC_HighLevelEncoder::lookAheadTest(
         context.m_msg, context.m_pos, getEncodingMode());
     if (newMode != getEncodingMode()) {
@@ -77,21 +76,21 @@
       }
     } else if (CBC_HighLevelEncoder::isExtendedASCII(c)) {
       context.writeCodeword(CBC_HighLevelEncoder::UPPER_SHIFT);
-      context.writeCodeword((FX_WCHAR)(c - 128 + 1));
+      context.writeCodeword((wchar_t)(c - 128 + 1));
       context.m_pos++;
     } else {
-      context.writeCodeword((FX_WCHAR)(c + 1));
+      context.writeCodeword((wchar_t)(c + 1));
       context.m_pos++;
     }
   }
 }
-FX_WCHAR CBC_ASCIIEncoder::encodeASCIIDigits(FX_WCHAR digit1,
-                                             FX_WCHAR digit2,
-                                             int32_t& e) {
+wchar_t CBC_ASCIIEncoder::encodeASCIIDigits(wchar_t digit1,
+                                            wchar_t digit2,
+                                            int32_t& e) {
   if (CBC_HighLevelEncoder::isDigit(digit1) &&
       CBC_HighLevelEncoder::isDigit(digit2)) {
     int32_t num = (digit1 - 48) * 10 + (digit2 - 48);
-    return (FX_WCHAR)(num + 130);
+    return (wchar_t)(num + 130);
   }
   e = BCExceptionIllegalArgumentNotGigits;
   return 0;
diff --git a/xfa/fxbarcode/datamatrix/BC_ASCIIEncoder.h b/xfa/fxbarcode/datamatrix/BC_ASCIIEncoder.h
index 40559b5..a0cfaa7 100644
--- a/xfa/fxbarcode/datamatrix/BC_ASCIIEncoder.h
+++ b/xfa/fxbarcode/datamatrix/BC_ASCIIEncoder.h
@@ -21,9 +21,7 @@
   void Encode(CBC_EncoderContext& context, int32_t& e) override;
 
  private:
-  static FX_WCHAR encodeASCIIDigits(FX_WCHAR digit1,
-                                    FX_WCHAR digit2,
-                                    int32_t& e);
+  static wchar_t encodeASCIIDigits(wchar_t digit1, wchar_t digit2, int32_t& e);
 };
 
 #endif  // XFA_FXBARCODE_DATAMATRIX_BC_ASCIIENCODER_H_
diff --git a/xfa/fxbarcode/datamatrix/BC_Base256Encoder.cpp b/xfa/fxbarcode/datamatrix/BC_Base256Encoder.cpp
index b8e427c..333377e 100644
--- a/xfa/fxbarcode/datamatrix/BC_Base256Encoder.cpp
+++ b/xfa/fxbarcode/datamatrix/BC_Base256Encoder.cpp
@@ -35,9 +35,9 @@
 }
 void CBC_Base256Encoder::Encode(CBC_EncoderContext& context, int32_t& e) {
   CFX_WideString buffer;
-  buffer += (FX_WCHAR)'\0';
+  buffer += (wchar_t)'\0';
   while (context.hasMoreCharacters()) {
-    FX_WCHAR c = context.getCurrentChar();
+    wchar_t c = context.getCurrentChar();
     buffer += c;
     context.m_pos++;
     int32_t newMode = CBC_HighLevelEncoder::lookAheadTest(
@@ -48,9 +48,9 @@
     }
   }
   int32_t dataCount = buffer.GetLength() - 1;
-  FX_CHAR buf[128];
+  char buf[128];
   FXSYS_itoa(dataCount, buf, 10);
-  buffer.SetAt(0, FX_WCHAR(*buf) - '0');
+  buffer.SetAt(0, wchar_t(*buf) - '0');
   int32_t lengthFieldSize = 1;
   int32_t currentSize =
       context.getCodewordCount() + dataCount + lengthFieldSize;
@@ -61,10 +61,10 @@
   bool mustPad = (context.m_symbolInfo->m_dataCapacity - currentSize) > 0;
   if (context.hasMoreCharacters() || mustPad) {
     if (dataCount <= 249) {
-      buffer.SetAt(0, (FX_WCHAR)dataCount);
+      buffer.SetAt(0, (wchar_t)dataCount);
     } else if (dataCount > 249 && dataCount <= 1555) {
-      buffer.SetAt(0, (FX_WCHAR)((dataCount / 250) + 249));
-      buffer.Insert(1, (FX_WCHAR)(dataCount % 250));
+      buffer.SetAt(0, (wchar_t)((dataCount / 250) + 249));
+      buffer.Insert(1, (wchar_t)(dataCount % 250));
     } else {
       e = BCExceptionIllegalStateMessageLengthInvalid;
       return;
@@ -75,13 +75,13 @@
         randomize255State(buffer.GetAt(i), context.getCodewordCount() + 1));
   }
 }
-FX_WCHAR CBC_Base256Encoder::randomize255State(FX_WCHAR ch,
-                                               int32_t codewordPosition) {
+wchar_t CBC_Base256Encoder::randomize255State(wchar_t ch,
+                                              int32_t codewordPosition) {
   int32_t pseudoRandom = ((149 * codewordPosition) % 255) + 1;
   int32_t tempVariable = ch + pseudoRandom;
   if (tempVariable <= 255) {
-    return (FX_WCHAR)tempVariable;
+    return (wchar_t)tempVariable;
   } else {
-    return (FX_WCHAR)(tempVariable - 256);
+    return (wchar_t)(tempVariable - 256);
   }
 }
diff --git a/xfa/fxbarcode/datamatrix/BC_Base256Encoder.h b/xfa/fxbarcode/datamatrix/BC_Base256Encoder.h
index c41c79d..41229af 100644
--- a/xfa/fxbarcode/datamatrix/BC_Base256Encoder.h
+++ b/xfa/fxbarcode/datamatrix/BC_Base256Encoder.h
@@ -19,7 +19,7 @@
   void Encode(CBC_EncoderContext& context, int32_t& e) override;
 
  private:
-  static FX_WCHAR randomize255State(FX_WCHAR ch, int32_t codewordPosition);
+  static wchar_t randomize255State(wchar_t ch, int32_t codewordPosition);
 };
 
 #endif  // XFA_FXBARCODE_DATAMATRIX_BC_BASE256ENCODER_H_
diff --git a/xfa/fxbarcode/datamatrix/BC_C40Encoder.cpp b/xfa/fxbarcode/datamatrix/BC_C40Encoder.cpp
index 50f02ca..04fcb6b 100644
--- a/xfa/fxbarcode/datamatrix/BC_C40Encoder.cpp
+++ b/xfa/fxbarcode/datamatrix/BC_C40Encoder.cpp
@@ -37,7 +37,7 @@
 void CBC_C40Encoder::Encode(CBC_EncoderContext& context, int32_t& e) {
   CFX_WideString buffer;
   while (context.hasMoreCharacters()) {
-    FX_WCHAR c = context.getCurrentChar();
+    wchar_t c = context.getCurrentChar();
     context.m_pos++;
     int32_t lastCharSize = encodeChar(c, buffer, e);
     if (e != BCExceptionNO) {
@@ -100,7 +100,7 @@
   }
   int32_t available = context.m_symbolInfo->m_dataCapacity - curCodewordCount;
   if (rest == 2) {
-    buffer += (FX_WCHAR)'\0';
+    buffer += (wchar_t)'\0';
     while (buffer.GetLength() >= 3) {
       writeNextTriplet(context, buffer);
     }
@@ -128,39 +128,39 @@
   }
   context.signalEncoderChange(ASCII_ENCODATION);
 }
-int32_t CBC_C40Encoder::encodeChar(FX_WCHAR c, CFX_WideString& sb, int32_t& e) {
+int32_t CBC_C40Encoder::encodeChar(wchar_t c, CFX_WideString& sb, int32_t& e) {
   if (c == ' ') {
-    sb += (FX_WCHAR)'\3';
+    sb += (wchar_t)'\3';
     return 1;
   } else if ((c >= '0') && (c <= '9')) {
-    sb += (FX_WCHAR)(c - 48 + 4);
+    sb += (wchar_t)(c - 48 + 4);
     return 1;
   } else if ((c >= 'A') && (c <= 'Z')) {
-    sb += (FX_WCHAR)(c - 65 + 14);
+    sb += (wchar_t)(c - 65 + 14);
     return 1;
   } else if (c <= 0x1f) {
-    sb += (FX_WCHAR)'\0';
+    sb += (wchar_t)'\0';
     sb += c;
     return 2;
   } else if ((c >= '!') && (c <= '/')) {
-    sb += (FX_WCHAR)'\1';
-    sb += (FX_WCHAR)(c - 33);
+    sb += (wchar_t)'\1';
+    sb += (wchar_t)(c - 33);
     return 2;
   } else if ((c >= ':') && (c <= '@')) {
-    sb += (FX_WCHAR)'\1';
-    sb += (FX_WCHAR)(c - 58 + 15);
+    sb += (wchar_t)'\1';
+    sb += (wchar_t)(c - 58 + 15);
     return 2;
   } else if ((c >= '[') && (c <= '_')) {
-    sb += (FX_WCHAR)'\1';
-    sb += (FX_WCHAR)(c - 91 + 22);
+    sb += (wchar_t)'\1';
+    sb += (wchar_t)(c - 91 + 22);
     return 2;
   } else if ((c >= 60) && (c <= 0x7f)) {
-    sb += (FX_WCHAR)'\2';
-    sb += (FX_WCHAR)(c - 96);
+    sb += (wchar_t)'\2';
+    sb += (wchar_t)(c - 96);
     return 2;
   } else if (c >= 80) {
-    sb += (FX_WCHAR)'\1';
-    sb += (FX_WCHAR)0x001e;
+    sb += (wchar_t)'\1';
+    sb += (wchar_t)0x001e;
     int32_t len = 2;
     len += encodeChar((c - 128), sb, e);
     if (e != BCExceptionNO)
@@ -179,7 +179,7 @@
   int32_t count = buffer.GetLength();
   buffer.Delete(count - lastCharSize, count);
   context.m_pos--;
-  FX_WCHAR c = context.getCurrentChar();
+  wchar_t c = context.getCurrentChar();
   lastCharSize = encodeChar(c, removed, e);
   if (e != BCExceptionNO)
     return -1;
@@ -188,12 +188,12 @@
 }
 CFX_WideString CBC_C40Encoder::encodeToCodewords(CFX_WideString sb,
                                                  int32_t startPos) {
-  FX_WCHAR c1 = sb.GetAt(startPos);
-  FX_WCHAR c2 = sb.GetAt(startPos + 1);
-  FX_WCHAR c3 = sb.GetAt(startPos + 2);
+  wchar_t c1 = sb.GetAt(startPos);
+  wchar_t c2 = sb.GetAt(startPos + 1);
+  wchar_t c3 = sb.GetAt(startPos + 2);
   int32_t v = (1600 * c1) + (40 * c2) + c3 + 1;
-  FX_WCHAR cw1 = (FX_WCHAR)(v / 256);
-  FX_WCHAR cw2 = (FX_WCHAR)(v % 256);
+  wchar_t cw1 = (wchar_t)(v / 256);
+  wchar_t cw2 = (wchar_t)(v % 256);
   CFX_WideString b1(cw1);
   CFX_WideString b2(cw2);
   return b1 + b2;
diff --git a/xfa/fxbarcode/datamatrix/BC_C40Encoder.h b/xfa/fxbarcode/datamatrix/BC_C40Encoder.h
index 9737981..03dee14 100644
--- a/xfa/fxbarcode/datamatrix/BC_C40Encoder.h
+++ b/xfa/fxbarcode/datamatrix/BC_C40Encoder.h
@@ -24,7 +24,7 @@
   virtual void handleEOD(CBC_EncoderContext& context,
                          CFX_WideString& buffer,
                          int32_t& e);
-  virtual int32_t encodeChar(FX_WCHAR c, CFX_WideString& sb, int32_t& e);
+  virtual int32_t encodeChar(wchar_t c, CFX_WideString& sb, int32_t& e);
 
  private:
   int32_t backtrackOneCharacter(CBC_EncoderContext& context,
diff --git a/xfa/fxbarcode/datamatrix/BC_EdifactEncoder.cpp b/xfa/fxbarcode/datamatrix/BC_EdifactEncoder.cpp
index 7db117d..2ffc841 100644
--- a/xfa/fxbarcode/datamatrix/BC_EdifactEncoder.cpp
+++ b/xfa/fxbarcode/datamatrix/BC_EdifactEncoder.cpp
@@ -37,7 +37,7 @@
 void CBC_EdifactEncoder::Encode(CBC_EncoderContext& context, int32_t& e) {
   CFX_WideString buffer;
   while (context.hasMoreCharacters()) {
-    FX_WCHAR c = context.getCurrentChar();
+    wchar_t c = context.getCurrentChar();
     encodeChar(c, buffer, e);
     if (e != BCExceptionNO) {
       return;
@@ -58,7 +58,7 @@
       }
     }
   }
-  buffer += (FX_WCHAR)31;
+  buffer += (wchar_t)31;
   handleEOD(context, buffer, e);
 }
 void CBC_EdifactEncoder::handleEOD(CBC_EncoderContext& context,
@@ -115,13 +115,11 @@
   }
   context.signalEncoderChange(ASCII_ENCODATION);
 }
-void CBC_EdifactEncoder::encodeChar(FX_WCHAR c,
-                                    CFX_WideString& sb,
-                                    int32_t& e) {
+void CBC_EdifactEncoder::encodeChar(wchar_t c, CFX_WideString& sb, int32_t& e) {
   if (c >= ' ' && c <= '?') {
     sb += c;
   } else if (c >= '@' && c <= '^') {
-    sb += (FX_WCHAR)(c - 64);
+    sb += (wchar_t)(c - 64);
   } else {
     CBC_HighLevelEncoder::illegalCharacter(c, e);
   }
@@ -134,14 +132,14 @@
     e = BCExceptionNoContents;
     return CFX_WideString();
   }
-  FX_WCHAR c1 = sb.GetAt(startPos);
-  FX_WCHAR c2 = len >= 2 ? sb.GetAt(startPos + 1) : 0;
-  FX_WCHAR c3 = len >= 3 ? sb.GetAt(startPos + 2) : 0;
-  FX_WCHAR c4 = len >= 4 ? sb.GetAt(startPos + 3) : 0;
+  wchar_t c1 = sb.GetAt(startPos);
+  wchar_t c2 = len >= 2 ? sb.GetAt(startPos + 1) : 0;
+  wchar_t c3 = len >= 3 ? sb.GetAt(startPos + 2) : 0;
+  wchar_t c4 = len >= 4 ? sb.GetAt(startPos + 3) : 0;
   int32_t v = (c1 << 18) + (c2 << 12) + (c3 << 6) + c4;
-  FX_WCHAR cw1 = (FX_WCHAR)((v >> 16) & 255);
-  FX_WCHAR cw2 = (FX_WCHAR)((v >> 8) & 255);
-  FX_WCHAR cw3 = (FX_WCHAR)(v & 255);
+  wchar_t cw1 = (wchar_t)((v >> 16) & 255);
+  wchar_t cw2 = (wchar_t)((v >> 8) & 255);
+  wchar_t cw3 = (wchar_t)(v & 255);
   CFX_WideString res;
   res += cw1;
   if (len >= 2) {
diff --git a/xfa/fxbarcode/datamatrix/BC_EdifactEncoder.h b/xfa/fxbarcode/datamatrix/BC_EdifactEncoder.h
index 3eb762f..afe013e 100644
--- a/xfa/fxbarcode/datamatrix/BC_EdifactEncoder.h
+++ b/xfa/fxbarcode/datamatrix/BC_EdifactEncoder.h
@@ -22,7 +22,7 @@
   static void handleEOD(CBC_EncoderContext& context,
                         CFX_WideString buffer,
                         int32_t& e);
-  static void encodeChar(FX_WCHAR c, CFX_WideString& sb, int32_t& e);
+  static void encodeChar(wchar_t c, CFX_WideString& sb, int32_t& e);
   static CFX_WideString encodeToCodewords(CFX_WideString sb,
                                           int32_t startPos,
                                           int32_t& e);
diff --git a/xfa/fxbarcode/datamatrix/BC_EncoderContext.cpp b/xfa/fxbarcode/datamatrix/BC_EncoderContext.cpp
index b01b312..6af2bc4 100644
--- a/xfa/fxbarcode/datamatrix/BC_EncoderContext.cpp
+++ b/xfa/fxbarcode/datamatrix/BC_EncoderContext.cpp
@@ -36,7 +36,7 @@
   CFX_WideString sb;
   int32_t c = dststr.GetLength();
   for (int32_t i = 0; i < c; i++) {
-    FX_WCHAR ch = (FX_WCHAR)(dststr.GetAt(i) & 0xff);
+    wchar_t ch = (wchar_t)(dststr.GetAt(i) & 0xff);
     if (ch == '?' && dststr.GetAt(i) != '?') {
       e = BCExceptionCharactersOutsideISO88591Encoding;
     }
@@ -66,16 +66,16 @@
 void CBC_EncoderContext::setSkipAtEnd(int32_t count) {
   m_skipAtEnd = count;
 }
-FX_WCHAR CBC_EncoderContext::getCurrentChar() {
+wchar_t CBC_EncoderContext::getCurrentChar() {
   return m_msg.GetAt(m_pos);
 }
-FX_WCHAR CBC_EncoderContext::getCurrent() {
+wchar_t CBC_EncoderContext::getCurrent() {
   return m_msg.GetAt(m_pos);
 }
 void CBC_EncoderContext::writeCodewords(CFX_WideString codewords) {
   m_codewords += codewords;
 }
-void CBC_EncoderContext::writeCodeword(FX_WCHAR codeword) {
+void CBC_EncoderContext::writeCodeword(wchar_t codeword) {
   m_codewords += codeword;
 }
 int32_t CBC_EncoderContext::getCodewordCount() {
diff --git a/xfa/fxbarcode/datamatrix/BC_EncoderContext.h b/xfa/fxbarcode/datamatrix/BC_EncoderContext.h
index 8d0ea5d..03018b2 100644
--- a/xfa/fxbarcode/datamatrix/BC_EncoderContext.h
+++ b/xfa/fxbarcode/datamatrix/BC_EncoderContext.h
@@ -23,10 +23,10 @@
   void setSizeConstraints(CBC_Dimension* minSize, CBC_Dimension* maxSize);
   CFX_WideString getMessage();
   void setSkipAtEnd(int32_t count);
-  FX_WCHAR getCurrentChar();
-  FX_WCHAR getCurrent();
+  wchar_t getCurrentChar();
+  wchar_t getCurrent();
   void writeCodewords(CFX_WideString codewords);
-  void writeCodeword(FX_WCHAR codeword);
+  void writeCodeword(wchar_t codeword);
   int32_t getCodewordCount();
   void signalEncoderChange(int32_t encoding);
   void resetEncoderSignal();
diff --git a/xfa/fxbarcode/datamatrix/BC_ErrorCorrection.cpp b/xfa/fxbarcode/datamatrix/BC_ErrorCorrection.cpp
index 17eec1e..ffdd308 100644
--- a/xfa/fxbarcode/datamatrix/BC_ErrorCorrection.cpp
+++ b/xfa/fxbarcode/datamatrix/BC_ErrorCorrection.cpp
@@ -150,7 +150,7 @@
     for (int32_t block = 0; block < blockCount; block++) {
       CFX_WideString temp;
       for (int32_t d = block; d < symbolInfo->m_dataCapacity; d += blockCount) {
-        temp += (FX_WCHAR)codewords.GetAt(d);
+        temp += (wchar_t)codewords.GetAt(d);
       }
       CFX_WideString ecc = createECCBlock(temp, errorSizes[block], e);
       if (e != BCExceptionNO)
@@ -203,7 +203,7 @@
   }
   CFX_WideString strecc;
   for (int32_t j = 0; j < numECWords; j++) {
-    strecc += (FX_WCHAR)ecc[numECWords - j - 1];
+    strecc += (wchar_t)ecc[numECWords - j - 1];
   }
   FX_Free(ecc);
   return strecc;
diff --git a/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp b/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp
index abd3584..ec6eb02 100644
--- a/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp
+++ b/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.cpp
@@ -40,17 +40,17 @@
 #include "xfa/fxbarcode/datamatrix/BC_X12Encoder.h"
 #include "xfa/fxbarcode/utils.h"
 
-FX_WCHAR CBC_HighLevelEncoder::LATCH_TO_C40 = 230;
-FX_WCHAR CBC_HighLevelEncoder::LATCH_TO_BASE256 = 231;
-FX_WCHAR CBC_HighLevelEncoder::UPPER_SHIFT = 235;
-FX_WCHAR CBC_HighLevelEncoder::LATCH_TO_ANSIX12 = 238;
-FX_WCHAR CBC_HighLevelEncoder::LATCH_TO_TEXT = 239;
-FX_WCHAR CBC_HighLevelEncoder::LATCH_TO_EDIFACT = 240;
-FX_WCHAR CBC_HighLevelEncoder::C40_UNLATCH = 254;
-FX_WCHAR CBC_HighLevelEncoder::X12_UNLATCH = 254;
-FX_WCHAR CBC_HighLevelEncoder::PAD = 129;
-FX_WCHAR CBC_HighLevelEncoder::MACRO_05 = 236;
-FX_WCHAR CBC_HighLevelEncoder::MACRO_06 = 237;
+wchar_t CBC_HighLevelEncoder::LATCH_TO_C40 = 230;
+wchar_t CBC_HighLevelEncoder::LATCH_TO_BASE256 = 231;
+wchar_t CBC_HighLevelEncoder::UPPER_SHIFT = 235;
+wchar_t CBC_HighLevelEncoder::LATCH_TO_ANSIX12 = 238;
+wchar_t CBC_HighLevelEncoder::LATCH_TO_TEXT = 239;
+wchar_t CBC_HighLevelEncoder::LATCH_TO_EDIFACT = 240;
+wchar_t CBC_HighLevelEncoder::C40_UNLATCH = 254;
+wchar_t CBC_HighLevelEncoder::X12_UNLATCH = 254;
+wchar_t CBC_HighLevelEncoder::PAD = 129;
+wchar_t CBC_HighLevelEncoder::MACRO_05 = 236;
+wchar_t CBC_HighLevelEncoder::MACRO_06 = 237;
 const wchar_t* CBC_HighLevelEncoder::MACRO_05_HEADER = L"[)>05";
 const wchar_t* CBC_HighLevelEncoder::MACRO_06_HEADER = L"[)>06";
 const wchar_t CBC_HighLevelEncoder::MACRO_TRAILER = 0x0004;
@@ -184,7 +184,7 @@
       }
       return C40_ENCODATION;
     }
-    FX_WCHAR c = msg.GetAt(startpos + charsProcessed);
+    wchar_t c = msg.GetAt(startpos + charsProcessed);
     charsProcessed++;
     if (isDigit(c)) {
       charCounts[ASCII_ENCODATION] += 0.5;
@@ -271,7 +271,7 @@
         if (intCharCounts[C40_ENCODATION] == intCharCounts[X12_ENCODATION]) {
           int32_t p = startpos + charsProcessed + 1;
           while (p < msg.GetLength()) {
-            FX_WCHAR tc = msg.GetAt(p);
+            wchar_t tc = msg.GetAt(p);
             if (isX12TermSep(tc)) {
               return X12_ENCODATION;
             }
@@ -286,10 +286,10 @@
     }
   }
 }
-bool CBC_HighLevelEncoder::isDigit(FX_WCHAR ch) {
+bool CBC_HighLevelEncoder::isDigit(wchar_t ch) {
   return ch >= '0' && ch <= '9';
 }
-bool CBC_HighLevelEncoder::isExtendedASCII(FX_WCHAR ch) {
+bool CBC_HighLevelEncoder::isExtendedASCII(wchar_t ch) {
   return ch >= 128 && ch <= 255;
 }
 int32_t CBC_HighLevelEncoder::determineConsecutiveDigitCount(CFX_WideString msg,
@@ -298,7 +298,7 @@
   int32_t len = msg.GetLength();
   int32_t idx = startpos;
   if (idx < len) {
-    FX_WCHAR ch = msg.GetAt(idx);
+    wchar_t ch = msg.GetAt(idx);
     while (isDigit(ch) && idx < len) {
       count++;
       idx++;
@@ -309,15 +309,15 @@
   }
   return count;
 }
-void CBC_HighLevelEncoder::illegalCharacter(FX_WCHAR c, int32_t& e) {
+void CBC_HighLevelEncoder::illegalCharacter(wchar_t c, int32_t& e) {
   e = BCExceptionIllegalArgument;
 }
-FX_WCHAR CBC_HighLevelEncoder::randomize253State(FX_WCHAR ch,
-                                                 int32_t codewordPosition) {
+wchar_t CBC_HighLevelEncoder::randomize253State(wchar_t ch,
+                                                int32_t codewordPosition) {
   int32_t pseudoRandom = ((149 * codewordPosition) % 253) + 1;
   int32_t tempVariable = ch + pseudoRandom;
-  return tempVariable <= 254 ? (FX_WCHAR)tempVariable
-                             : (FX_WCHAR)(tempVariable - 254);
+  return tempVariable <= 254 ? (wchar_t)tempVariable
+                             : (wchar_t)(tempVariable - 254);
 }
 int32_t CBC_HighLevelEncoder::findMinimums(
     std::vector<FX_FLOAT>& charCounts,
@@ -350,22 +350,22 @@
   }
   return minCount;
 }
-bool CBC_HighLevelEncoder::isNativeC40(FX_WCHAR ch) {
+bool CBC_HighLevelEncoder::isNativeC40(wchar_t ch) {
   return (ch == ' ') || (ch >= '0' && ch <= '9') || (ch >= 'A' && ch <= 'Z');
 }
-bool CBC_HighLevelEncoder::isNativeText(FX_WCHAR ch) {
+bool CBC_HighLevelEncoder::isNativeText(wchar_t ch) {
   return (ch == ' ') || (ch >= '0' && ch <= '9') || (ch >= 'a' && ch <= 'z');
 }
-bool CBC_HighLevelEncoder::isNativeX12(FX_WCHAR ch) {
+bool CBC_HighLevelEncoder::isNativeX12(wchar_t ch) {
   return isX12TermSep(ch) || (ch == ' ') || (ch >= '0' && ch <= '9') ||
          (ch >= 'A' && ch <= 'Z');
 }
-bool CBC_HighLevelEncoder::isX12TermSep(FX_WCHAR ch) {
+bool CBC_HighLevelEncoder::isX12TermSep(wchar_t ch) {
   return (ch == '\r') || (ch == '*') || (ch == '>');
 }
-bool CBC_HighLevelEncoder::isNativeEDIFACT(FX_WCHAR ch) {
+bool CBC_HighLevelEncoder::isNativeEDIFACT(wchar_t ch) {
   return ch >= ' ' && ch <= '^';
 }
-bool CBC_HighLevelEncoder::isSpecialB256(FX_WCHAR ch) {
+bool CBC_HighLevelEncoder::isSpecialB256(wchar_t ch) {
   return false;
 }
diff --git a/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.h b/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.h
index 5d72f10..cfd16ed 100644
--- a/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.h
+++ b/xfa/fxbarcode/datamatrix/BC_HighLevelEncoder.h
@@ -36,44 +36,44 @@
   static int32_t lookAheadTest(CFX_WideString msg,
                                int32_t startpos,
                                int32_t currentMode);
-  static bool isDigit(FX_WCHAR ch);
-  static bool isExtendedASCII(FX_WCHAR ch);
+  static bool isDigit(wchar_t ch);
+  static bool isExtendedASCII(wchar_t ch);
   static int32_t determineConsecutiveDigitCount(CFX_WideString msg,
                                                 int32_t startpos);
-  static void illegalCharacter(FX_WCHAR c, int32_t& e);
+  static void illegalCharacter(wchar_t c, int32_t& e);
 
  public:
-  static FX_WCHAR LATCH_TO_C40;
-  static FX_WCHAR LATCH_TO_BASE256;
-  static FX_WCHAR UPPER_SHIFT;
-  static FX_WCHAR LATCH_TO_ANSIX12;
-  static FX_WCHAR LATCH_TO_TEXT;
-  static FX_WCHAR LATCH_TO_EDIFACT;
-  static FX_WCHAR C40_UNLATCH;
-  static FX_WCHAR X12_UNLATCH;
+  static wchar_t LATCH_TO_C40;
+  static wchar_t LATCH_TO_BASE256;
+  static wchar_t UPPER_SHIFT;
+  static wchar_t LATCH_TO_ANSIX12;
+  static wchar_t LATCH_TO_TEXT;
+  static wchar_t LATCH_TO_EDIFACT;
+  static wchar_t C40_UNLATCH;
+  static wchar_t X12_UNLATCH;
 
  private:
-  static FX_WCHAR PAD;
-  static FX_WCHAR MACRO_05;
-  static FX_WCHAR MACRO_06;
+  static wchar_t PAD;
+  static wchar_t MACRO_05;
+  static wchar_t MACRO_06;
   static const wchar_t* MACRO_05_HEADER;
   static const wchar_t* MACRO_06_HEADER;
   static const wchar_t MACRO_TRAILER;
   CFX_ArrayTemplate<uint8_t> m_bytearray;
 
  private:
-  static FX_WCHAR randomize253State(FX_WCHAR ch, int32_t codewordPosition);
+  static wchar_t randomize253State(wchar_t ch, int32_t codewordPosition);
   static int32_t findMinimums(std::vector<FX_FLOAT>& charCounts,
                               CFX_ArrayTemplate<int32_t>& intCharCounts,
                               int32_t min,
                               CFX_ArrayTemplate<uint8_t>& mins);
   static int32_t getMinimumCount(CFX_ArrayTemplate<uint8_t>& mins);
-  static bool isNativeC40(FX_WCHAR ch);
-  static bool isNativeText(FX_WCHAR ch);
-  static bool isNativeX12(FX_WCHAR ch);
-  static bool isX12TermSep(FX_WCHAR ch);
-  static bool isNativeEDIFACT(FX_WCHAR ch);
-  static bool isSpecialB256(FX_WCHAR ch);
+  static bool isNativeC40(wchar_t ch);
+  static bool isNativeText(wchar_t ch);
+  static bool isNativeX12(wchar_t ch);
+  static bool isX12TermSep(wchar_t ch);
+  static bool isNativeEDIFACT(wchar_t ch);
+  static bool isSpecialB256(wchar_t ch);
 };
 
 #endif  // XFA_FXBARCODE_DATAMATRIX_BC_HIGHLEVELENCODER_H_
diff --git a/xfa/fxbarcode/datamatrix/BC_TextEncoder.cpp b/xfa/fxbarcode/datamatrix/BC_TextEncoder.cpp
index e3eb4a8..cc02661 100644
--- a/xfa/fxbarcode/datamatrix/BC_TextEncoder.cpp
+++ b/xfa/fxbarcode/datamatrix/BC_TextEncoder.cpp
@@ -35,61 +35,59 @@
 int32_t CBC_TextEncoder::getEncodingMode() {
   return TEXT_ENCODATION;
 }
-int32_t CBC_TextEncoder::encodeChar(FX_WCHAR c,
-                                    CFX_WideString& sb,
-                                    int32_t& e) {
+int32_t CBC_TextEncoder::encodeChar(wchar_t c, CFX_WideString& sb, int32_t& e) {
   if (c == ' ') {
-    sb += (FX_WCHAR)'\3';
+    sb += (wchar_t)'\3';
     return 1;
   }
   if (c >= '0' && c <= '9') {
-    sb += (FX_WCHAR)(c - 48 + 4);
+    sb += (wchar_t)(c - 48 + 4);
     return 1;
   }
   if (c >= 'a' && c <= 'z') {
-    sb += (FX_WCHAR)(c - 97 + 14);
+    sb += (wchar_t)(c - 97 + 14);
     return 1;
   }
   if (c <= 0x1f) {
-    sb += (FX_WCHAR)'\0';
+    sb += (wchar_t)'\0';
     sb += c;
     return 2;
   }
   if (c >= '!' && c <= '/') {
-    sb += (FX_WCHAR)'\1';
-    sb += (FX_WCHAR)(c - 33);
+    sb += (wchar_t)'\1';
+    sb += (wchar_t)(c - 33);
     return 2;
   }
   if (c >= ':' && c <= '@') {
-    sb += (FX_WCHAR)'\1';
-    sb += (FX_WCHAR)(c - 58 + 15);
+    sb += (wchar_t)'\1';
+    sb += (wchar_t)(c - 58 + 15);
     return 2;
   }
   if (c >= '[' && c <= '_') {
-    sb += (FX_WCHAR)'\1';
-    sb += (FX_WCHAR)(c - 91 + 22);
+    sb += (wchar_t)'\1';
+    sb += (wchar_t)(c - 91 + 22);
     return 2;
   }
   if (c == 0x0060) {
-    sb += (FX_WCHAR)'\2';
-    sb += (FX_WCHAR)(c - 96);
+    sb += (wchar_t)'\2';
+    sb += (wchar_t)(c - 96);
     return 2;
   }
   if (c >= 'A' && c <= 'Z') {
-    sb += (FX_WCHAR)'\2';
-    sb += (FX_WCHAR)(c - 65 + 1);
+    sb += (wchar_t)'\2';
+    sb += (wchar_t)(c - 65 + 1);
     return 2;
   }
   if (c >= '{' && c <= 0x007f) {
-    sb += (FX_WCHAR)'\2';
-    sb += (FX_WCHAR)(c - 123 + 27);
+    sb += (wchar_t)'\2';
+    sb += (wchar_t)(c - 123 + 27);
     return 2;
   }
   if (c >= 0x0080) {
-    sb += (FX_WCHAR)'\1';
-    sb += (FX_WCHAR)0x001e;
+    sb += (wchar_t)'\1';
+    sb += (wchar_t)0x001e;
     int32_t len = 2;
-    len += encodeChar((FX_WCHAR)(c - 128), sb, e);
+    len += encodeChar((wchar_t)(c - 128), sb, e);
     if (e != BCExceptionNO)
       return -1;
     return len;
diff --git a/xfa/fxbarcode/datamatrix/BC_TextEncoder.h b/xfa/fxbarcode/datamatrix/BC_TextEncoder.h
index e6013b9..7109202 100644
--- a/xfa/fxbarcode/datamatrix/BC_TextEncoder.h
+++ b/xfa/fxbarcode/datamatrix/BC_TextEncoder.h
@@ -16,7 +16,7 @@
 
   // CBC_C40Encoder
   int32_t getEncodingMode() override;
-  int32_t encodeChar(FX_WCHAR c, CFX_WideString& sb, int32_t& e) override;
+  int32_t encodeChar(wchar_t c, CFX_WideString& sb, int32_t& e) override;
 };
 
 #endif  // XFA_FXBARCODE_DATAMATRIX_BC_TEXTENCODER_H_
diff --git a/xfa/fxbarcode/datamatrix/BC_X12Encoder.cpp b/xfa/fxbarcode/datamatrix/BC_X12Encoder.cpp
index d77af93..570076b 100644
--- a/xfa/fxbarcode/datamatrix/BC_X12Encoder.cpp
+++ b/xfa/fxbarcode/datamatrix/BC_X12Encoder.cpp
@@ -38,7 +38,7 @@
 void CBC_X12Encoder::Encode(CBC_EncoderContext& context, int32_t& e) {
   CFX_WideString buffer;
   while (context.hasMoreCharacters()) {
-    FX_WCHAR c = context.getCurrentChar();
+    wchar_t c = context.getCurrentChar();
     context.m_pos++;
     encodeChar(c, buffer, e);
     if (e != BCExceptionNO) {
@@ -79,19 +79,19 @@
     context.signalEncoderChange(ASCII_ENCODATION);
   }
 }
-int32_t CBC_X12Encoder::encodeChar(FX_WCHAR c, CFX_WideString& sb, int32_t& e) {
+int32_t CBC_X12Encoder::encodeChar(wchar_t c, CFX_WideString& sb, int32_t& e) {
   if (c == '\r') {
-    sb += (FX_WCHAR)'\0';
+    sb += (wchar_t)'\0';
   } else if (c == '*') {
-    sb += (FX_WCHAR)'\1';
+    sb += (wchar_t)'\1';
   } else if (c == '>') {
-    sb += (FX_WCHAR)'\2';
+    sb += (wchar_t)'\2';
   } else if (c == ' ') {
-    sb += (FX_WCHAR)'\3';
+    sb += (wchar_t)'\3';
   } else if (c >= '0' && c <= '9') {
-    sb += (FX_WCHAR)(c - 48 + 4);
+    sb += (wchar_t)(c - 48 + 4);
   } else if (c >= 'A' && c <= 'Z') {
-    sb += (FX_WCHAR)(c - 65 + 14);
+    sb += (wchar_t)(c - 65 + 14);
   } else {
     CBC_HighLevelEncoder::illegalCharacter(c, e);
     if (e != BCExceptionNO)
diff --git a/xfa/fxbarcode/datamatrix/BC_X12Encoder.h b/xfa/fxbarcode/datamatrix/BC_X12Encoder.h
index 52239ce..693b9bb 100644
--- a/xfa/fxbarcode/datamatrix/BC_X12Encoder.h
+++ b/xfa/fxbarcode/datamatrix/BC_X12Encoder.h
@@ -20,7 +20,7 @@
   void handleEOD(CBC_EncoderContext& context,
                  CFX_WideString& buffer,
                  int32_t& e) override;
-  int32_t encodeChar(FX_WCHAR c, CFX_WideString& sb, int32_t& e) override;
+  int32_t encodeChar(wchar_t c, CFX_WideString& sb, int32_t& e) override;
 };
 
 #endif  // XFA_FXBARCODE_DATAMATRIX_BC_X12ENCODER_H_
diff --git a/xfa/fxbarcode/oned/BC_OneDimWriter.cpp b/xfa/fxbarcode/oned/BC_OneDimWriter.cpp
index bc0d61f..dd7fcaa 100644
--- a/xfa/fxbarcode/oned/BC_OneDimWriter.cpp
+++ b/xfa/fxbarcode/oned/BC_OneDimWriter.cpp
@@ -83,7 +83,7 @@
   m_fontColor = color;
 }
 
-FX_WCHAR CBC_OneDimWriter::Upper(FX_WCHAR ch) {
+wchar_t CBC_OneDimWriter::Upper(wchar_t ch) {
   if (ch >= 'a' && ch <= 'z') {
     ch = ch - ('a' - 'A');
   }
diff --git a/xfa/fxbarcode/oned/BC_OneDimWriter.h b/xfa/fxbarcode/oned/BC_OneDimWriter.h
index e37d774..b7c5ceb 100644
--- a/xfa/fxbarcode/oned/BC_OneDimWriter.h
+++ b/xfa/fxbarcode/oned/BC_OneDimWriter.h
@@ -96,7 +96,7 @@
                                 int32_t startColor,
                                 int32_t& e);
 
-  FX_WCHAR Upper(FX_WCHAR ch);
+  wchar_t Upper(wchar_t ch);
 
   bool m_bPrintChecksum;
   int32_t m_iDataLenth;
diff --git a/xfa/fxbarcode/oned/BC_OnedCodaBarWriter.cpp b/xfa/fxbarcode/oned/BC_OnedCodaBarWriter.cpp
index 399e5e7..7d51fa8 100644
--- a/xfa/fxbarcode/oned/BC_OnedCodaBarWriter.cpp
+++ b/xfa/fxbarcode/oned/BC_OnedCodaBarWriter.cpp
@@ -28,17 +28,17 @@
 
 namespace {
 
-const FX_CHAR ALPHABET_STRING[] = "0123456789-$:/.+ABCDTN";
+const char ALPHABET_STRING[] = "0123456789-$:/.+ABCDTN";
 
 const int32_t CHARACTER_ENCODINGS[22] = {
     0x003, 0x006, 0x009, 0x060, 0x012, 0x042, 0x021, 0x024,
     0x030, 0x048, 0x00c, 0x018, 0x045, 0x051, 0x054, 0x015,
     0x01A, 0x029, 0x00B, 0x00E, 0x01A, 0x029};
 
-const FX_CHAR START_END_CHARS[] = {'A', 'B', 'C', 'D', 'T', 'N', '*', 'E',
-                                   'a', 'b', 'c', 'd', 't', 'n', 'e'};
-const FX_CHAR CONTENT_CHARS[] = {'0', '1', '2', '3', '4', '5', '6', '7',
-                                 '8', '9', '-', '$', '/', ':', '+', '.'};
+const char START_END_CHARS[] = {'A', 'B', 'C', 'D', 'T', 'N', '*', 'E',
+                                'a', 'b', 'c', 'd', 't', 'n', 'e'};
+const char CONTENT_CHARS[] = {'0', '1', '2', '3', '4', '5', '6', '7',
+                              '8', '9', '-', '$', '/', ':', '+', '.'};
 
 }  // namespace
 
@@ -48,7 +48,7 @@
   m_iWideNarrRatio = 2;
 }
 CBC_OnedCodaBarWriter::~CBC_OnedCodaBarWriter() {}
-bool CBC_OnedCodaBarWriter::SetStartChar(FX_CHAR start) {
+bool CBC_OnedCodaBarWriter::SetStartChar(char start) {
   for (size_t i = 0; i < FX_ArraySize(START_END_CHARS); ++i) {
     if (START_END_CHARS[i] == start) {
       m_chStart = start;
@@ -58,7 +58,7 @@
   return false;
 }
 
-bool CBC_OnedCodaBarWriter::SetEndChar(FX_CHAR end) {
+bool CBC_OnedCodaBarWriter::SetEndChar(char end) {
   for (size_t i = 0; i < FX_ArraySize(START_END_CHARS); ++i) {
     if (START_END_CHARS[i] == end) {
       m_chEnd = end;
@@ -84,22 +84,22 @@
   m_iWideNarrRatio = ratio;
   return true;
 }
-bool CBC_OnedCodaBarWriter::FindChar(FX_WCHAR ch, bool isContent) {
+bool CBC_OnedCodaBarWriter::FindChar(wchar_t ch, bool isContent) {
   if (isContent) {
     for (size_t i = 0; i < FX_ArraySize(CONTENT_CHARS); ++i) {
-      if (ch == (FX_WCHAR)CONTENT_CHARS[i]) {
+      if (ch == (wchar_t)CONTENT_CHARS[i]) {
         return true;
       }
     }
     for (size_t j = 0; j < FX_ArraySize(START_END_CHARS); ++j) {
-      if (ch == (FX_WCHAR)START_END_CHARS[j]) {
+      if (ch == (wchar_t)START_END_CHARS[j]) {
         return true;
       }
     }
     return false;
   } else {
     for (size_t i = 0; i < FX_ArraySize(CONTENT_CHARS); ++i) {
-      if (ch == (FX_WCHAR)CONTENT_CHARS[i]) {
+      if (ch == (wchar_t)CONTENT_CHARS[i]) {
         return true;
       }
     }
@@ -108,7 +108,7 @@
 }
 bool CBC_OnedCodaBarWriter::CheckContentValidity(
     const CFX_WideStringC& contents) {
-  FX_WCHAR ch;
+  wchar_t ch;
   int32_t index = 0;
   for (index = 0; index < contents.GetLength(); index++) {
     ch = contents.GetAt(index);
@@ -123,7 +123,7 @@
 CFX_WideString CBC_OnedCodaBarWriter::FilterContents(
     const CFX_WideStringC& contents) {
   CFX_WideString filtercontents;
-  FX_WCHAR ch;
+  wchar_t ch;
   for (int32_t index = 0; index < contents.GetLength(); index++) {
     ch = contents.GetAt(index);
     if (ch > 175) {
@@ -170,7 +170,7 @@
   CFX_ByteString data = m_chStart + contents + m_chEnd;
   m_iContentLen = data.GetLength();
   uint8_t* result = FX_Alloc2D(uint8_t, m_iWideNarrRatio * 7, data.GetLength());
-  FX_CHAR ch;
+  char ch;
   int32_t position = 0;
   for (int32_t index = 0; index < data.GetLength(); index++) {
     ch = data.GetAt(index);
diff --git a/xfa/fxbarcode/oned/BC_OnedCodaBarWriter.h b/xfa/fxbarcode/oned/BC_OnedCodaBarWriter.h
index 301c34a..0d01ad9 100644
--- a/xfa/fxbarcode/oned/BC_OnedCodaBarWriter.h
+++ b/xfa/fxbarcode/oned/BC_OnedCodaBarWriter.h
@@ -37,11 +37,11 @@
   void SetDataLength(int32_t length) override;
 
   virtual CFX_WideString encodedContents(const CFX_WideStringC& contents);
-  virtual bool SetStartChar(FX_CHAR start);
-  virtual bool SetEndChar(FX_CHAR end);
+  virtual bool SetStartChar(char start);
+  virtual bool SetEndChar(char end);
   virtual bool SetTextLocation(BC_TEXT_LOC location);
   virtual bool SetWideNarrowRatio(int32_t ratio);
-  virtual bool FindChar(FX_WCHAR ch, bool isContent);
+  virtual bool FindChar(wchar_t ch, bool isContent);
 
  private:
   void RenderResult(const CFX_WideStringC& contents,
@@ -50,8 +50,8 @@
                     bool isDevice,
                     int32_t& e) override;
 
-  FX_CHAR m_chStart;
-  FX_CHAR m_chEnd;
+  char m_chStart;
+  char m_chEnd;
   int32_t m_iWideNarrRatio;
 };
 
diff --git a/xfa/fxbarcode/oned/BC_OnedCode128Writer.cpp b/xfa/fxbarcode/oned/BC_OnedCode128Writer.cpp
index f163b18..c1e28a5 100644
--- a/xfa/fxbarcode/oned/BC_OnedCode128Writer.cpp
+++ b/xfa/fxbarcode/oned/BC_OnedCode128Writer.cpp
@@ -102,7 +102,7 @@
 CFX_WideString CBC_OnedCode128Writer::FilterContents(
     const CFX_WideStringC& contents) {
   CFX_WideString filterChineseChar;
-  FX_WCHAR ch;
+  wchar_t ch;
   for (int32_t i = 0; i < contents.GetLength(); i++) {
     ch = contents.GetAt(i);
     if (ch > 175) {
@@ -253,7 +253,7 @@
   checkSum += CODE_START_C * checkWeight;
   while (position < contents.GetLength()) {
     int32_t patternIndex = 0;
-    FX_CHAR ch = contents.GetAt(position);
+    char ch = contents.GetAt(position);
     if (ch < '0' || ch > '9') {
       patternIndex = (int32_t)ch;
       position++;
diff --git a/xfa/fxbarcode/oned/BC_OnedCode39Writer.cpp b/xfa/fxbarcode/oned/BC_OnedCode39Writer.cpp
index a1ba5c8..bd0607d 100644
--- a/xfa/fxbarcode/oned/BC_OnedCode39Writer.cpp
+++ b/xfa/fxbarcode/oned/BC_OnedCode39Writer.cpp
@@ -27,10 +27,9 @@
 
 namespace {
 
-const FX_CHAR ALPHABET_STRING[] =
-    "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%";
+const char ALPHABET_STRING[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. *$/+%";
 
-const FX_CHAR CHECKSUM_STRING[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";
+const char CHECKSUM_STRING[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ-. $/+%";
 
 const int32_t CHARACTER_ENCODINGS[44] = {
     0x034, 0x121, 0x061, 0x160, 0x031, 0x130, 0x070, 0x025, 0x124,
@@ -48,12 +47,12 @@
 bool CBC_OnedCode39Writer::CheckContentValidity(
     const CFX_WideStringC& contents) {
   for (int32_t i = 0; i < contents.GetLength(); i++) {
-    FX_WCHAR ch = contents.GetAt(i);
-    if ((ch >= (FX_WCHAR)'0' && ch <= (FX_WCHAR)'9') ||
-        (ch >= (FX_WCHAR)'A' && ch <= (FX_WCHAR)'Z') || ch == (FX_WCHAR)'-' ||
-        ch == (FX_WCHAR)'.' || ch == (FX_WCHAR)' ' || ch == (FX_WCHAR)'*' ||
-        ch == (FX_WCHAR)'$' || ch == (FX_WCHAR)'/' || ch == (FX_WCHAR)'+' ||
-        ch == (FX_WCHAR)'%') {
+    wchar_t ch = contents.GetAt(i);
+    if ((ch >= (wchar_t)'0' && ch <= (wchar_t)'9') ||
+        (ch >= (wchar_t)'A' && ch <= (wchar_t)'Z') || ch == (wchar_t)'-' ||
+        ch == (wchar_t)'.' || ch == (wchar_t)' ' || ch == (wchar_t)'*' ||
+        ch == (wchar_t)'$' || ch == (wchar_t)'/' || ch == (wchar_t)'+' ||
+        ch == (wchar_t)'%') {
       continue;
     }
     return false;
@@ -65,8 +64,8 @@
     const CFX_WideStringC& contents) {
   CFX_WideString filtercontents;
   for (int32_t i = 0; i < contents.GetLength(); i++) {
-    FX_WCHAR ch = contents.GetAt(i);
-    if (ch == (FX_WCHAR)'*' && (i == 0 || i == contents.GetLength() - 1)) {
+    wchar_t ch = contents.GetAt(i);
+    if (ch == (wchar_t)'*' && (i == 0 || i == contents.GetLength() - 1)) {
       continue;
     }
     if (ch > 175) {
@@ -75,11 +74,11 @@
     } else {
       ch = Upper(ch);
     }
-    if ((ch >= (FX_WCHAR)'0' && ch <= (FX_WCHAR)'9') ||
-        (ch >= (FX_WCHAR)'A' && ch <= (FX_WCHAR)'Z') || ch == (FX_WCHAR)'-' ||
-        ch == (FX_WCHAR)'.' || ch == (FX_WCHAR)' ' || ch == (FX_WCHAR)'*' ||
-        ch == (FX_WCHAR)'$' || ch == (FX_WCHAR)'/' || ch == (FX_WCHAR)'+' ||
-        ch == (FX_WCHAR)'%') {
+    if ((ch >= (wchar_t)'0' && ch <= (wchar_t)'9') ||
+        (ch >= (wchar_t)'A' && ch <= (wchar_t)'Z') || ch == (wchar_t)'-' ||
+        ch == (wchar_t)'.' || ch == (wchar_t)' ' || ch == (wchar_t)'*' ||
+        ch == (wchar_t)'$' || ch == (wchar_t)'/' || ch == (wchar_t)'+' ||
+        ch == (wchar_t)'%') {
       filtercontents += ch;
     }
   }
@@ -90,20 +89,20 @@
     const CFX_WideStringC& contents) {
   CFX_WideString renderContents;
   for (int32_t i = 0; i < contents.GetLength(); i++) {
-    FX_WCHAR ch = contents.GetAt(i);
-    if (ch == (FX_WCHAR)'*' && (i == 0 || i == contents.GetLength() - 1)) {
+    wchar_t ch = contents.GetAt(i);
+    if (ch == (wchar_t)'*' && (i == 0 || i == contents.GetLength() - 1)) {
       continue;
     }
     if (ch > 175) {
       i++;
       continue;
     }
-    if ((ch >= (FX_WCHAR)'0' && ch <= (FX_WCHAR)'9') ||
-        (ch >= (FX_WCHAR)'A' && ch <= (FX_WCHAR)'Z') ||
-        (ch >= (FX_WCHAR)'a' && ch <= (FX_WCHAR)'z') || ch == (FX_WCHAR)'-' ||
-        ch == (FX_WCHAR)'.' || ch == (FX_WCHAR)' ' || ch == (FX_WCHAR)'*' ||
-        ch == (FX_WCHAR)'$' || ch == (FX_WCHAR)'/' || ch == (FX_WCHAR)'+' ||
-        ch == (FX_WCHAR)'%') {
+    if ((ch >= (wchar_t)'0' && ch <= (wchar_t)'9') ||
+        (ch >= (wchar_t)'A' && ch <= (wchar_t)'Z') ||
+        (ch >= (wchar_t)'a' && ch <= (wchar_t)'z') || ch == (wchar_t)'-' ||
+        ch == (wchar_t)'.' || ch == (wchar_t)' ' || ch == (wchar_t)'*' ||
+        ch == (wchar_t)'$' || ch == (wchar_t)'/' || ch == (wchar_t)'+' ||
+        ch == (wchar_t)'%') {
       renderContents += ch;
     }
   }
@@ -155,8 +154,8 @@
     toReturn[i] = (a & (1 << i)) == 0 ? 1 : m_iWideNarrRatio;
   }
 }
-FX_CHAR CBC_OnedCode39Writer::CalcCheckSum(const CFX_ByteString& contents,
-                                           int32_t& e) {
+char CBC_OnedCode39Writer::CalcCheckSum(const CFX_ByteString& contents,
+                                        int32_t& e) {
   int32_t length = contents.GetLength();
   if (length > 80) {
     e = BCExceptionContentsLengthShouldBetween1and80;
@@ -187,7 +186,7 @@
 uint8_t* CBC_OnedCode39Writer::Encode(const CFX_ByteString& contents,
                                       int32_t& outlength,
                                       int32_t& e) {
-  FX_CHAR checksum = CalcCheckSum(contents, e);
+  char checksum = CalcCheckSum(contents, e);
   if (checksum == '*') {
     return nullptr;
   }
@@ -263,7 +262,7 @@
   if (m_bCalcChecksum && m_bPrintChecksum) {
     CFX_WideString checksumContent = FilterContents(contents);
     CFX_ByteString str = checksumContent.UTF8Encode();
-    FX_CHAR checksum;
+    char checksum;
     checksum = CalcCheckSum(str, e);
     if (e != BCExceptionNO)
       return CFX_WideString();
diff --git a/xfa/fxbarcode/oned/BC_OnedCode39Writer.h b/xfa/fxbarcode/oned/BC_OnedCode39Writer.h
index c8755a3..5f7c294 100644
--- a/xfa/fxbarcode/oned/BC_OnedCode39Writer.h
+++ b/xfa/fxbarcode/oned/BC_OnedCode39Writer.h
@@ -46,7 +46,7 @@
 
  private:
   void ToIntArray(int32_t a, int32_t* toReturn);
-  FX_CHAR CalcCheckSum(const CFX_ByteString& contents, int32_t& e);
+  char CalcCheckSum(const CFX_ByteString& contents, int32_t& e);
 
   int32_t m_iWideNarrRatio;
 };
diff --git a/xfa/fxbarcode/oned/BC_OnedEAN13Writer.cpp b/xfa/fxbarcode/oned/BC_OnedEAN13Writer.cpp
index bcbc80a..47e47ea 100644
--- a/xfa/fxbarcode/oned/BC_OnedEAN13Writer.cpp
+++ b/xfa/fxbarcode/oned/BC_OnedEAN13Writer.cpp
@@ -62,7 +62,7 @@
 CFX_WideString CBC_OnedEAN13Writer::FilterContents(
     const CFX_WideStringC& contents) {
   CFX_WideString filtercontents;
-  FX_WCHAR ch;
+  wchar_t ch;
   for (int32_t i = 0; i < contents.GetLength(); i++) {
     ch = contents.GetAt(i);
     if (ch > 175) {
diff --git a/xfa/fxbarcode/oned/BC_OnedEAN8Writer.cpp b/xfa/fxbarcode/oned/BC_OnedEAN8Writer.cpp
index c402238..cd21759 100644
--- a/xfa/fxbarcode/oned/BC_OnedEAN8Writer.cpp
+++ b/xfa/fxbarcode/oned/BC_OnedEAN8Writer.cpp
@@ -65,7 +65,7 @@
 CFX_WideString CBC_OnedEAN8Writer::FilterContents(
     const CFX_WideStringC& contents) {
   CFX_WideString filtercontents;
-  FX_WCHAR ch;
+  wchar_t ch;
   for (int32_t i = 0; i < contents.GetLength(); i++) {
     ch = contents.GetAt(i);
     if (ch > 175) {
diff --git a/xfa/fxbarcode/oned/BC_OnedUPCAWriter.cpp b/xfa/fxbarcode/oned/BC_OnedUPCAWriter.cpp
index 6d6e796..3cb72f2 100644
--- a/xfa/fxbarcode/oned/BC_OnedUPCAWriter.cpp
+++ b/xfa/fxbarcode/oned/BC_OnedUPCAWriter.cpp
@@ -50,7 +50,7 @@
 CFX_WideString CBC_OnedUPCAWriter::FilterContents(
     const CFX_WideStringC& contents) {
   CFX_WideString filtercontents;
-  FX_WCHAR ch;
+  wchar_t ch;
   for (int32_t i = 0; i < contents.GetLength(); i++) {
     ch = contents.GetAt(i);
     if (ch > 175) {
diff --git a/xfa/fxbarcode/pdf417/BC_PDF417.cpp b/xfa/fxbarcode/pdf417/BC_PDF417.cpp
index 2f01564..94c65b8 100644
--- a/xfa/fxbarcode/pdf417/BC_PDF417.cpp
+++ b/xfa/fxbarcode/pdf417/BC_PDF417.cpp
@@ -427,10 +427,10 @@
   }
   int32_t n = sourceCodeWords + pad + 1;
   CFX_WideString sb;
-  sb += (FX_WCHAR)n;
+  sb += (wchar_t)n;
   sb += highLevel;
   for (int32_t i = 0; i < pad; i++) {
-    sb += (FX_WCHAR)900;
+    sb += (wchar_t)900;
   }
   CFX_WideString dataCodewords(sb);
   CFX_WideString ec = CBC_PDF417ErrorCorrection::generateErrorCorrection(
diff --git a/xfa/fxbarcode/pdf417/BC_PDF417ErrorCorrection.cpp b/xfa/fxbarcode/pdf417/BC_PDF417ErrorCorrection.cpp
index bdec403..71cdc35 100644
--- a/xfa/fxbarcode/pdf417/BC_PDF417ErrorCorrection.cpp
+++ b/xfa/fxbarcode/pdf417/BC_PDF417ErrorCorrection.cpp
@@ -163,8 +163,8 @@
   int32_t k = getErrorCorrectionCodewordCount(errorCorrectionLevel, e);
   if (e != BCExceptionNO)
     return L" ";
-  FX_WCHAR* ech = FX_Alloc(FX_WCHAR, k);
-  FXSYS_memset(ech, 0, k * sizeof(FX_WCHAR));
+  wchar_t* ech = FX_Alloc(wchar_t, k);
+  FXSYS_memset(ech, 0, k * sizeof(wchar_t));
   int32_t sld = dataCodewords.GetLength();
   for (int32_t i = 0; i < sld; i++) {
     int32_t t1 = (dataCodewords.GetAt(i) + ech[k - 1]) % 929;
@@ -173,18 +173,18 @@
     for (int32_t j = k - 1; j >= 1; j--) {
       t2 = (t1 * EC_COEFFICIENTS[errorCorrectionLevel][j]) % 929;
       t3 = 929 - t2;
-      ech[j] = (FX_WCHAR)((ech[j - 1] + t3) % 929);
+      ech[j] = (wchar_t)((ech[j - 1] + t3) % 929);
     }
     t2 = (t1 * EC_COEFFICIENTS[errorCorrectionLevel][0]) % 929;
     t3 = 929 - t2;
-    ech[0] = (FX_WCHAR)(t3 % 929);
+    ech[0] = (wchar_t)(t3 % 929);
   }
   CFX_WideString sb;
   for (int32_t j = k - 1; j >= 0; j--) {
     if (ech[j] != 0) {
-      ech[j] = (FX_WCHAR)(929 - ech[j]);
+      ech[j] = (wchar_t)(929 - ech[j]);
     }
-    sb += (FX_WCHAR)ech[j];
+    sb += (wchar_t)ech[j];
   }
   FX_Free(ech);
   return sb;
diff --git a/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp b/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp
index 08a40c5..0d9c7cf 100644
--- a/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp
+++ b/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.cpp
@@ -64,7 +64,7 @@
   CFX_WideString msg;
   int32_t len = bytes.GetLength();
   for (int32_t i = 0; i < len; i++) {
-    FX_WCHAR ch = (FX_WCHAR)(bytes.GetAt(i) & 0xff);
+    wchar_t ch = (wchar_t)(bytes.GetAt(i) & 0xff);
     if (ch == '?' && bytes.GetAt(i) != '?') {
       e = BCExceptionCharactersOutsideISO88591Encoding;
       return CFX_WideString();
@@ -84,14 +84,14 @@
   } else if (compaction == BYTES) {
     encodeBinary(&byteArr, p, byteArr.GetSize(), BYTE_COMPACTION, sb);
   } else if (compaction == NUMERIC) {
-    sb += (FX_WCHAR)LATCH_TO_NUMERIC;
+    sb += (wchar_t)LATCH_TO_NUMERIC;
     encodeNumeric(msg, p, len, sb);
   } else {
     int32_t encodingMode = LATCH_TO_TEXT;
     while (p < len) {
       int32_t n = determineConsecutiveDigitCount(msg, p);
       if (n >= 13) {
-        sb += (FX_WCHAR)LATCH_TO_NUMERIC;
+        sb += (wchar_t)LATCH_TO_NUMERIC;
         encodingMode = NUMERIC_COMPACTION;
         textSubMode = SUBMODE_ALPHA;
         encodeNumeric(msg, p, n, sb);
@@ -100,7 +100,7 @@
         int32_t t = determineConsecutiveTextCount(msg, p);
         if (t >= 5 || n == len) {
           if (encodingMode != TEXT_COMPACTION) {
-            sb += (FX_WCHAR)LATCH_TO_TEXT;
+            sb += (wchar_t)LATCH_TO_TEXT;
             encodingMode = TEXT_COMPACTION;
             textSubMode = SUBMODE_ALPHA;
           }
@@ -157,26 +157,26 @@
   int32_t submode = initialSubmode;
   int32_t idx = 0;
   while (true) {
-    FX_WCHAR ch = msg.GetAt(startpos + idx);
+    wchar_t ch = msg.GetAt(startpos + idx);
     switch (submode) {
       case SUBMODE_ALPHA:
         if (isAlphaUpper(ch)) {
           if (ch == ' ') {
-            tmp += (FX_WCHAR)26;
+            tmp += (wchar_t)26;
           } else {
-            tmp += (FX_WCHAR)(ch - 65);
+            tmp += (wchar_t)(ch - 65);
           }
         } else {
           if (isAlphaLower(ch)) {
             submode = SUBMODE_LOWER;
-            tmp += (FX_WCHAR)27;
+            tmp += (wchar_t)27;
             continue;
           } else if (isMixed(ch)) {
             submode = SUBMODE_MIXED;
-            tmp += (FX_WCHAR)28;
+            tmp += (wchar_t)28;
             continue;
           } else {
-            tmp += (FX_WCHAR)29;
+            tmp += (wchar_t)29;
             tmp += PUNCTUATION[ch];
             break;
           }
@@ -185,21 +185,21 @@
       case SUBMODE_LOWER:
         if (isAlphaLower(ch)) {
           if (ch == ' ') {
-            tmp += (FX_WCHAR)26;
+            tmp += (wchar_t)26;
           } else {
-            tmp += (FX_WCHAR)(ch - 97);
+            tmp += (wchar_t)(ch - 97);
           }
         } else {
           if (isAlphaUpper(ch)) {
-            tmp += (FX_WCHAR)27;
-            tmp += (FX_WCHAR)(ch - 65);
+            tmp += (wchar_t)27;
+            tmp += (wchar_t)(ch - 65);
             break;
           } else if (isMixed(ch)) {
             submode = SUBMODE_MIXED;
-            tmp += (FX_WCHAR)28;
+            tmp += (wchar_t)28;
             continue;
           } else {
-            tmp += (FX_WCHAR)29;
+            tmp += (wchar_t)29;
             tmp += PUNCTUATION[ch];
             break;
           }
@@ -211,22 +211,22 @@
         } else {
           if (isAlphaUpper(ch)) {
             submode = SUBMODE_ALPHA;
-            tmp += (FX_WCHAR)28;
+            tmp += (wchar_t)28;
             continue;
           } else if (isAlphaLower(ch)) {
             submode = SUBMODE_LOWER;
-            tmp += (FX_WCHAR)27;
+            tmp += (wchar_t)27;
             continue;
           } else {
             if (startpos + idx + 1 < count) {
-              FX_WCHAR next = msg.GetAt(startpos + idx + 1);
+              wchar_t next = msg.GetAt(startpos + idx + 1);
               if (isPunctuation(next)) {
                 submode = SUBMODE_PUNCTUATION;
-                tmp += (FX_WCHAR)25;
+                tmp += (wchar_t)25;
                 continue;
               }
             }
-            tmp += (FX_WCHAR)29;
+            tmp += (wchar_t)29;
             tmp += PUNCTUATION[ch];
           }
         }
@@ -236,7 +236,7 @@
           tmp += PUNCTUATION[ch];
         } else {
           submode = SUBMODE_ALPHA;
-          tmp += (FX_WCHAR)29;
+          tmp += (wchar_t)29;
           continue;
         }
     }
@@ -245,19 +245,19 @@
       break;
     }
   }
-  FX_WCHAR h = 0;
+  wchar_t h = 0;
   int32_t len = tmp.GetLength();
   for (int32_t i = 0; i < len; i++) {
     bool odd = (i % 2) != 0;
     if (odd) {
-      h = (FX_WCHAR)((h * 30) + tmp.GetAt(i));
+      h = (wchar_t)((h * 30) + tmp.GetAt(i));
       sb += h;
     } else {
       h = tmp.GetAt(i);
     }
   }
   if ((len % 2) != 0) {
-    sb += (FX_WCHAR)((h * 30) + 29);
+    sb += (wchar_t)((h * 30) + 29);
   }
   return submode;
 }
@@ -267,13 +267,13 @@
                                               int32_t startmode,
                                               CFX_WideString& sb) {
   if (count == 1 && startmode == TEXT_COMPACTION) {
-    sb += (FX_WCHAR)SHIFT_TO_BYTE;
+    sb += (wchar_t)SHIFT_TO_BYTE;
   }
   int32_t idx = startpos;
   int32_t i = 0;
   if (count >= 6) {
-    sb += (FX_WCHAR)LATCH_TO_BYTE;
-    FX_WCHAR chars[5];
+    sb += (wchar_t)LATCH_TO_BYTE;
+    wchar_t chars[5];
     while ((startpos + count - idx) >= 6) {
       int64_t t = 0;
       for (i = 0; i < 6; i++) {
@@ -281,7 +281,7 @@
         t += bytes->GetAt(idx + i) & 0xff;
       }
       for (i = 0; i < 5; i++) {
-        chars[i] = (FX_WCHAR)(t % 900);
+        chars[i] = (wchar_t)(t % 900);
         t /= 900;
       }
       for (i = 4; i >= 0; i--) {
@@ -291,11 +291,11 @@
     }
   }
   if (idx < startpos + count) {
-    sb += (FX_WCHAR)LATCH_TO_BYTE_PADDED;
+    sb += (wchar_t)LATCH_TO_BYTE_PADDED;
   }
   for (i = idx; i < startpos + count; i++) {
     int32_t ch = bytes->GetAt(i) & 0xff;
-    sb += (FX_WCHAR)ch;
+    sb += (wchar_t)ch;
   }
 }
 void CBC_PDF417HighLevelEncoder::encodeNumeric(CFX_WideString msg,
@@ -308,11 +308,11 @@
     CFX_WideString tmp;
     int32_t len = 44 < count - idx ? 44 : count - idx;
     CFX_ByteString part =
-        ((FX_WCHAR)'1' + msg.Mid(startpos + idx, len)).UTF8Encode();
+        ((wchar_t)'1' + msg.Mid(startpos + idx, len)).UTF8Encode();
     BigInteger bigint = stringToBigInteger(part.c_str());
     do {
       int32_t c = (bigint % num900).toInt();
-      tmp += (FX_WCHAR)(c);
+      tmp += (wchar_t)(c);
       bigint = bigint / num900;
     } while (!bigint.isZero());
     for (int32_t i = tmp.GetLength() - 1; i >= 0; i--) {
@@ -321,22 +321,22 @@
     idx += len;
   }
 }
-bool CBC_PDF417HighLevelEncoder::isDigit(FX_WCHAR ch) {
+bool CBC_PDF417HighLevelEncoder::isDigit(wchar_t ch) {
   return ch >= '0' && ch <= '9';
 }
-bool CBC_PDF417HighLevelEncoder::isAlphaUpper(FX_WCHAR ch) {
+bool CBC_PDF417HighLevelEncoder::isAlphaUpper(wchar_t ch) {
   return ch == ' ' || (ch >= 'A' && ch <= 'Z');
 }
-bool CBC_PDF417HighLevelEncoder::isAlphaLower(FX_WCHAR ch) {
+bool CBC_PDF417HighLevelEncoder::isAlphaLower(wchar_t ch) {
   return ch == ' ' || (ch >= 'a' && ch <= 'z');
 }
-bool CBC_PDF417HighLevelEncoder::isMixed(FX_WCHAR ch) {
+bool CBC_PDF417HighLevelEncoder::isMixed(wchar_t ch) {
   return MIXED[ch] != -1;
 }
-bool CBC_PDF417HighLevelEncoder::isPunctuation(FX_WCHAR ch) {
+bool CBC_PDF417HighLevelEncoder::isPunctuation(wchar_t ch) {
   return PUNCTUATION[ch] != -1;
 }
-bool CBC_PDF417HighLevelEncoder::isText(FX_WCHAR ch) {
+bool CBC_PDF417HighLevelEncoder::isText(wchar_t ch) {
   return ch == '\t' || ch == '\n' || ch == '\r' || (ch >= 32 && ch <= 126);
 }
 int32_t CBC_PDF417HighLevelEncoder::determineConsecutiveDigitCount(
@@ -346,7 +346,7 @@
   int32_t len = msg.GetLength();
   int32_t idx = startpos;
   if (idx < len) {
-    FX_WCHAR ch = msg.GetAt(idx);
+    wchar_t ch = msg.GetAt(idx);
     while (isDigit(ch) && idx < len) {
       count++;
       idx++;
@@ -363,7 +363,7 @@
   int32_t len = msg.GetLength();
   int32_t idx = startpos;
   while (idx < len) {
-    FX_WCHAR ch = msg.GetAt(idx);
+    wchar_t ch = msg.GetAt(idx);
     int32_t numericCount = 0;
     while (numericCount < 13 && isDigit(ch) && idx < len) {
       numericCount++;
@@ -394,7 +394,7 @@
   int32_t len = msg.GetLength();
   int32_t idx = startpos;
   while (idx < len) {
-    FX_WCHAR ch = msg.GetAt(idx);
+    wchar_t ch = msg.GetAt(idx);
     int32_t numericCount = 0;
     while (numericCount < 13 && isDigit(ch)) {
       numericCount++;
diff --git a/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h b/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h
index 38382c8..01c2be0 100644
--- a/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h
+++ b/xfa/fxbarcode/pdf417/BC_PDF417HighLevelEncoder.h
@@ -48,12 +48,12 @@
                             int32_t startpos,
                             int32_t count,
                             CFX_WideString& sb);
-  static bool isDigit(FX_WCHAR ch);
-  static bool isAlphaUpper(FX_WCHAR ch);
-  static bool isAlphaLower(FX_WCHAR ch);
-  static bool isMixed(FX_WCHAR ch);
-  static bool isPunctuation(FX_WCHAR ch);
-  static bool isText(FX_WCHAR ch);
+  static bool isDigit(wchar_t ch);
+  static bool isAlphaUpper(wchar_t ch);
+  static bool isAlphaLower(wchar_t ch);
+  static bool isMixed(wchar_t ch);
+  static bool isPunctuation(wchar_t ch);
+  static bool isText(wchar_t ch);
   static int32_t determineConsecutiveDigitCount(CFX_WideString msg,
                                                 int32_t startpos);
   static int32_t determineConsecutiveTextCount(CFX_WideString msg,
diff --git a/xfa/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.cpp b/xfa/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.cpp
index a5450cf..2990d98 100644
--- a/xfa/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.cpp
+++ b/xfa/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.cpp
@@ -30,7 +30,7 @@
 CBC_QRCoderErrorCorrectionLevel::CBC_QRCoderErrorCorrectionLevel(
     int32_t ordinal,
     int32_t bits,
-    const FX_CHAR* name)
+    const char* name)
     : m_ordinal(ordinal), m_bits(bits), m_name(name) {}
 
 CBC_QRCoderErrorCorrectionLevel::~CBC_QRCoderErrorCorrectionLevel() {}
diff --git a/xfa/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.h b/xfa/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.h
index e433ee1..2f0d22e 100644
--- a/xfa/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.h
+++ b/xfa/fxbarcode/qrcode/BC_QRCoderErrorCorrectionLevel.h
@@ -30,7 +30,7 @@
  private:
   CBC_QRCoderErrorCorrectionLevel(int32_t ordinal,
                                   int32_t bits,
-                                  const FX_CHAR* name);
+                                  const char* name);
   CBC_QRCoderErrorCorrectionLevel();
 
   int32_t m_ordinal;
diff --git a/xfa/fxbarcode/utils.h b/xfa/fxbarcode/utils.h
index 1cb8d85..21ef383 100644
--- a/xfa/fxbarcode/utils.h
+++ b/xfa/fxbarcode/utils.h
@@ -13,8 +13,8 @@
                               uint32_t first,
                               uint32_t last,
                               int32_t count,
-                              FX_CHAR c);
-void BC_FX_ByteString_Append(CFX_ByteString& dst, int32_t count, FX_CHAR c);
+                              char c);
+void BC_FX_ByteString_Append(CFX_ByteString& dst, int32_t count, char c);
 void BC_FX_ByteString_Append(CFX_ByteString& dst,
                              const CFX_ArrayTemplate<uint8_t>& ba);
 
diff --git a/xfa/fxfa/app/cxfa_linkuserdata.cpp b/xfa/fxfa/app/cxfa_linkuserdata.cpp
index 4128cd8..d657b28 100644
--- a/xfa/fxfa/app/cxfa_linkuserdata.cpp
+++ b/xfa/fxfa/app/cxfa_linkuserdata.cpp
@@ -6,7 +6,7 @@
 
 #include "xfa/fxfa/app/cxfa_linkuserdata.h"
 
-CXFA_LinkUserData::CXFA_LinkUserData(FX_WCHAR* pszText)
+CXFA_LinkUserData::CXFA_LinkUserData(wchar_t* pszText)
     : m_wsURLContent(pszText) {}
 
 CXFA_LinkUserData::~CXFA_LinkUserData() {}
diff --git a/xfa/fxfa/app/cxfa_linkuserdata.h b/xfa/fxfa/app/cxfa_linkuserdata.h
index 852b467..5f46759 100644
--- a/xfa/fxfa/app/cxfa_linkuserdata.h
+++ b/xfa/fxfa/app/cxfa_linkuserdata.h
@@ -17,10 +17,10 @@
   template <typename T, typename... Args>
   friend CFX_RetainPtr<T> pdfium::MakeRetain(Args&&... args);
 
-  const FX_WCHAR* GetLinkURL() const { return m_wsURLContent.c_str(); }
+  const wchar_t* GetLinkURL() const { return m_wsURLContent.c_str(); }
 
  protected:
-  explicit CXFA_LinkUserData(FX_WCHAR* pszText);
+  explicit CXFA_LinkUserData(wchar_t* pszText);
   ~CXFA_LinkUserData() override;
 
   CFX_WideString m_wsURLContent;
diff --git a/xfa/fxfa/app/cxfa_textlayout.cpp b/xfa/fxfa/app/cxfa_textlayout.cpp
index c2d2a9e..3c0087d 100644
--- a/xfa/fxfa/app/cxfa_textlayout.cpp
+++ b/xfa/fxfa/app/cxfa_textlayout.cpp
@@ -897,7 +897,7 @@
 
   int32_t iLength = wsText.GetLength();
   for (int32_t i = iChar; i < iLength; i++) {
-    FX_WCHAR wch = wsText.GetAt(i);
+    wchar_t wch = wsText.GetAt(i);
     if (wch == 0xA0)
       wch = 0x20;
 
@@ -932,9 +932,9 @@
   if (iLen == 0)
     return;
 
-  FX_WCHAR* psz = wsText.GetBuffer(iLen);
+  wchar_t* psz = wsText.GetBuffer(iLen);
   int32_t iTrimLeft = 0;
-  FX_WCHAR wch = 0, wPrev = 0;
+  wchar_t wch = 0, wPrev = 0;
   for (int32_t i = 0; i < iLen; i++) {
     wch = psz[i];
     if (wch < 0x20)
diff --git a/xfa/fxfa/app/cxfa_textparser.cpp b/xfa/fxfa/app/cxfa_textparser.cpp
index 9759cb2..750a0ba 100644
--- a/xfa/fxfa/app/cxfa_textparser.cpp
+++ b/xfa/fxfa/app/cxfa_textparser.cpp
@@ -85,7 +85,7 @@
 }
 
 std::unique_ptr<CFDE_CSSStyleSheet> CXFA_TextParser::LoadDefaultSheetStyle() {
-  static const FX_WCHAR s_pStyle[] =
+  static const wchar_t s_pStyle[] =
       L"html,body,ol,p,ul{display:block}"
       L"li{display:list-item}"
       L"ol,ul{padding-left:33px;margin:1.12em 0}"
@@ -562,12 +562,12 @@
   }
 
   int32_t iLength = wsValue.GetLength();
-  const FX_WCHAR* pTabStops = wsValue.c_str();
+  const wchar_t* pTabStops = wsValue.c_str();
   int32_t iCur = 0;
   int32_t iLast = 0;
   CFX_WideString wsAlign;
   TabStopStatus eStatus = TabStopStatus::None;
-  FX_WCHAR ch;
+  wchar_t ch;
   while (iCur < iLength) {
     ch = pTabStops[iCur];
     switch (eStatus) {
diff --git a/xfa/fxfa/app/xfa_checksum.cpp b/xfa/fxfa/app/xfa_checksum.cpp
index 09c4271..a06fed8 100644
--- a/xfa/fxfa/app/xfa_checksum.cpp
+++ b/xfa/fxfa/app/xfa_checksum.cpp
@@ -21,7 +21,7 @@
   uint32_t data7 : 8;
 };
 
-const FX_CHAR g_FXBase64EncoderMap[64] = {
+const char g_FXBase64EncoderMap[64] = {
     'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M',
     'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
     'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
@@ -29,9 +29,7 @@
     '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '+', '/',
 };
 
-void Base64EncodePiece(const FX_BASE64DATA& src,
-                       int32_t iBytes,
-                       FX_CHAR dst[4]) {
+void Base64EncodePiece(const FX_BASE64DATA& src, int32_t iBytes, char dst[4]) {
   dst[0] = g_FXBase64EncoderMap[src.data2];
   uint32_t b = src.data1 << 4;
   if (iBytes > 1) {
@@ -54,7 +52,7 @@
   }
 }
 
-int32_t Base64EncodeA(const uint8_t* pSrc, int32_t iSrcLen, FX_CHAR* pDst) {
+int32_t Base64EncodeA(const uint8_t* pSrc, int32_t iSrcLen, char* pDst) {
   ASSERT(pSrc);
   if (iSrcLen < 1) {
     return 0;
@@ -68,7 +66,7 @@
   }
   FX_BASE64DATA srcData;
   int32_t iBytes = 3;
-  FX_CHAR* pDstEnd = pDst;
+  char* pDstEnd = pDst;
   while (iSrcLen > 0) {
     if (iSrcLen > 2) {
       ((uint8_t*)&srcData)[0] = *pSrc++;
@@ -252,7 +250,7 @@
     FXSYS_memset(digest, 0, 20);
     CRYPT_SHA1Finish(m_pByteContext.get(), digest);
     int32_t nLen = Base64EncodeA(digest, 20, nullptr);
-    FX_CHAR* pBuffer = m_bsChecksum.GetBuffer(nLen);
+    char* pBuffer = m_bsChecksum.GetBuffer(nLen);
     Base64EncodeA(digest, 20, pBuffer);
     m_bsChecksum.ReleaseBuffer(nLen);
     m_pByteContext.reset();
diff --git a/xfa/fxfa/app/xfa_ffbarcode.cpp b/xfa/fxfa/app/xfa_ffbarcode.cpp
index b136b8d..3bbef30 100644
--- a/xfa/fxfa/app/xfa_ffbarcode.cpp
+++ b/xfa/fxfa/app/xfa_ffbarcode.cpp
@@ -174,7 +174,7 @@
   pBarCodeWidget->SetType(pBarcodeTypeInfo->eBCType);
   CXFA_WidgetAcc* pAcc = GetDataAcc();
   int32_t intVal;
-  FX_CHAR charVal;
+  char charVal;
   bool boolVal;
   FX_FLOAT floatVal;
   if (pAcc->GetBarcodeAttribute_CharEncoding(intVal)) {
diff --git a/xfa/fxfa/app/xfa_ffbarcode.h b/xfa/fxfa/app/xfa_ffbarcode.h
index c20feb5..1f11be6 100644
--- a/xfa/fxfa/app/xfa_ffbarcode.h
+++ b/xfa/fxfa/app/xfa_ffbarcode.h
@@ -93,7 +93,7 @@
 
 struct XFA_BARCODETYPEENUMINFO {
   uint32_t uHash;
-  const FX_WCHAR* pName;
+  const wchar_t* pName;
   XFA_BARCODETYPEENUM eName;
   BC_TYPE eBCType;
 };
diff --git a/xfa/fxfa/app/xfa_ffdoc.cpp b/xfa/fxfa/app/xfa_ffdoc.cpp
index 911bdf8..b6dba7f 100644
--- a/xfa/fxfa/app/xfa_ffdoc.cpp
+++ b/xfa/fxfa/app/xfa_ffdoc.cpp
@@ -59,7 +59,7 @@
   return g_FXBase64DecoderMap[val - kStartValuesRemoved];
 }
 
-void Base64DecodePiece(const FX_CHAR src[4],
+void Base64DecodePiece(const char src[4],
                        int32_t iChars,
                        FX_BASE64DATA& dst,
                        int32_t& iBytes) {
@@ -89,7 +89,7 @@
   }
 }
 
-int32_t Base64DecodeW(const FX_WCHAR* pSrc, int32_t iSrcLen, uint8_t* pDst) {
+int32_t Base64DecodeW(const wchar_t* pSrc, int32_t iSrcLen, uint8_t* pDst) {
   ASSERT(pSrc);
   if (iSrcLen < 1) {
     return 0;
@@ -112,26 +112,26 @@
     }
     return iDstLen;
   }
-  FX_CHAR srcData[4];
+  char srcData[4];
   FX_BASE64DATA dstData;
   int32_t iChars = 4, iBytes;
   uint8_t* pDstEnd = pDst;
   while (iSrcLen > 0) {
     if (iSrcLen > 3) {
-      srcData[0] = (FX_CHAR)*pSrc++;
-      srcData[1] = (FX_CHAR)*pSrc++;
-      srcData[2] = (FX_CHAR)*pSrc++;
-      srcData[3] = (FX_CHAR)*pSrc++;
+      srcData[0] = (char)*pSrc++;
+      srcData[1] = (char)*pSrc++;
+      srcData[2] = (char)*pSrc++;
+      srcData[3] = (char)*pSrc++;
       iSrcLen -= 4;
     } else {
       *((uint32_t*)&dstData) = 0;
       *((uint32_t*)srcData) = 0;
-      srcData[0] = (FX_CHAR)*pSrc++;
+      srcData[0] = (char)*pSrc++;
       if (iSrcLen > 1) {
-        srcData[1] = (FX_CHAR)*pSrc++;
+        srcData[1] = (char)*pSrc++;
       }
       if (iSrcLen > 2) {
-        srcData[2] = (FX_CHAR)*pSrc++;
+        srcData[2] = (char)*pSrc++;
       }
       iChars = iSrcLen;
       iSrcLen = 0;
diff --git a/xfa/fxfa/app/xfa_ffnotify.cpp b/xfa/fxfa/app/xfa_ffnotify.cpp
index 951b4fd..a0b834b 100644
--- a/xfa/fxfa/app/xfa_ffnotify.cpp
+++ b/xfa/fxfa/app/xfa_ffnotify.cpp
@@ -49,8 +49,8 @@
 }
 
 void CXFA_FFNotify::OnWidgetListItemAdded(CXFA_WidgetData* pSender,
-                                          const FX_WCHAR* pLabel,
-                                          const FX_WCHAR* pValue,
+                                          const wchar_t* pLabel,
+                                          const wchar_t* pValue,
                                           int32_t iIndex) {
   CXFA_WidgetAcc* pWidgetAcc = static_cast<CXFA_WidgetAcc*>(pSender);
   if (pWidgetAcc->GetUIType() != XFA_Element::ChoiceList)
diff --git a/xfa/fxfa/app/xfa_ffnotify.h b/xfa/fxfa/app/xfa_ffnotify.h
index 1bfaffe..f76d35b 100644
--- a/xfa/fxfa/app/xfa_ffnotify.h
+++ b/xfa/fxfa/app/xfa_ffnotify.h
@@ -20,8 +20,8 @@
   void OnPageEvent(CXFA_ContainerLayoutItem* pSender, uint32_t dwEvent);
 
   void OnWidgetListItemAdded(CXFA_WidgetData* pSender,
-                             const FX_WCHAR* pLabel,
-                             const FX_WCHAR* pValue,
+                             const wchar_t* pLabel,
+                             const wchar_t* pValue,
                              int32_t iIndex);
   void OnWidgetListItemRemoved(CXFA_WidgetData* pSender, int32_t iIndex);
 
diff --git a/xfa/fxfa/app/xfa_fftext.cpp b/xfa/fxfa/app/xfa_fftext.cpp
index e8d7aa3..04de9d9 100644
--- a/xfa/fxfa/app/xfa_fftext.cpp
+++ b/xfa/fxfa/app/xfa_fftext.cpp
@@ -111,7 +111,7 @@
   if (!GetRectWithoutRotate().Contains(point))
     return false;
 
-  const FX_WCHAR* wsURLContent = GetLinkURLAtPoint(point);
+  const wchar_t* wsURLContent = GetLinkURLAtPoint(point);
   if (!wsURLContent)
     return false;
 
@@ -128,7 +128,7 @@
     return false;
 
   SetButtonDown(false);
-  const FX_WCHAR* wsURLContent = GetLinkURLAtPoint(point);
+  const wchar_t* wsURLContent = GetLinkURLAtPoint(point);
   if (!wsURLContent)
     return false;
 
@@ -145,7 +145,7 @@
   return FWL_WidgetHit::HyperLink;
 }
 
-const FX_WCHAR* CXFA_FFText::GetLinkURLAtPoint(const CFX_PointF& point) {
+const wchar_t* CXFA_FFText::GetLinkURLAtPoint(const CFX_PointF& point) {
   CXFA_TextLayout* pTextLayout = m_pDataAcc->GetTextLayout();
   if (!pTextLayout)
     return nullptr;
diff --git a/xfa/fxfa/app/xfa_fftext.h b/xfa/fxfa/app/xfa_fftext.h
index c553821..eddc122 100644
--- a/xfa/fxfa/app/xfa_fftext.h
+++ b/xfa/fxfa/app/xfa_fftext.h
@@ -26,7 +26,7 @@
   bool PerformLayout() override;
 
  private:
-  const FX_WCHAR* GetLinkURLAtPoint(const CFX_PointF& point);
+  const wchar_t* GetLinkURLAtPoint(const CFX_PointF& point);
 };
 
 #endif  // XFA_FXFA_APP_XFA_FFTEXT_H_
diff --git a/xfa/fxfa/app/xfa_ffwidget.cpp b/xfa/fxfa/app/xfa_ffwidget.cpp
index 9995fd1..ad17534 100644
--- a/xfa/fxfa/app/xfa_ffwidget.cpp
+++ b/xfa/fxfa/app/xfa_ffwidget.cpp
@@ -923,7 +923,7 @@
   uint8_t* pCP;
   int32_t i = 0, j = 0;
   if (iLen == 0) {
-    iLen = FXSYS_strlen((FX_CHAR*)pStr);
+    iLen = FXSYS_strlen((char*)pStr);
   }
   pCP = FX_Alloc(uint8_t, iLen + 1);
   for (; i < iLen; i++) {
@@ -936,16 +936,16 @@
   pCP[j] = '\0';
   return pCP;
 }
-static int32_t XFA_Base64Decode(const FX_CHAR* pStr, uint8_t* pOutBuffer) {
+static int32_t XFA_Base64Decode(const char* pStr, uint8_t* pOutBuffer) {
   if (!pStr) {
     return 0;
   }
   uint8_t* pBuffer =
-      XFA_RemoveBase64Whitespace((uint8_t*)pStr, FXSYS_strlen((FX_CHAR*)pStr));
+      XFA_RemoveBase64Whitespace((uint8_t*)pStr, FXSYS_strlen((char*)pStr));
   if (!pBuffer) {
     return 0;
   }
-  int32_t iLen = FXSYS_strlen((FX_CHAR*)pBuffer);
+  int32_t iLen = FXSYS_strlen((char*)pBuffer);
   int32_t i = 0, j = 0;
   uint32_t dwLimb = 0;
   for (; i + 3 < iLen; i += 4) {
@@ -982,14 +982,14 @@
   return j;
 }
 
-static const FX_CHAR g_base64_chars[] =
+static const char g_base64_chars[] =
     "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
 
-FX_CHAR* XFA_Base64Encode(const uint8_t* buf, int32_t buf_len) {
-  FX_CHAR* out = nullptr;
+char* XFA_Base64Encode(const uint8_t* buf, int32_t buf_len) {
+  char* out = nullptr;
   int i, j;
   uint32_t limb;
-  out = FX_Alloc(FX_CHAR, ((buf_len * 8 + 5) / 6) + 5);
+  out = FX_Alloc(char, ((buf_len * 8 + 5) / 6) + 5);
   for (i = 0, j = 0, limb = 0; i + 2 < buf_len; i += 3, j += 4) {
     limb = ((uint32_t)buf[i] << 16) | ((uint32_t)buf[i + 1] << 8) |
            ((uint32_t)buf[i + 2]);
diff --git a/xfa/fxfa/app/xfa_ffwidgetacc.cpp b/xfa/fxfa/app/xfa_ffwidgetacc.cpp
index 960771f..655c9da 100644
--- a/xfa/fxfa/app/xfa_ffwidgetacc.cpp
+++ b/xfa/fxfa/app/xfa_ffwidgetacc.cpp
@@ -838,8 +838,8 @@
     return;
   }
 
-  FX_WCHAR wcEnter = '\n';
-  FX_WCHAR wsLast = wsText.GetAt(wsText.GetLength() - 1);
+  wchar_t wcEnter = '\n';
+  wchar_t wsLast = wsText.GetAt(wsText.GetLength() - 1);
   if (wsLast == wcEnter) {
     wsText = wsText + wcEnter;
   }
diff --git a/xfa/fxfa/app/xfa_fontmgr.cpp b/xfa/fxfa/app/xfa_fontmgr.cpp
index 5db3896..d7e34fb 100644
--- a/xfa/fxfa/app/xfa_fontmgr.cpp
+++ b/xfa/fxfa/app/xfa_fontmgr.cpp
@@ -1762,10 +1762,10 @@
       if (dwFontStyles & FX_FONTSTYLE_Italic) {
         dwStyle |= FX_FONTSTYLE_Italic;
       }
-      const FX_WCHAR* pReplace = pCurFont->pReplaceFont;
+      const wchar_t* pReplace = pCurFont->pReplaceFont;
       int32_t iLength = FXSYS_wcslen(pReplace);
       while (iLength > 0) {
-        const FX_WCHAR* pNameText = pReplace;
+        const wchar_t* pNameText = pReplace;
         while (*pNameText != L',' && iLength > 0) {
           pNameText++;
           iLength--;
@@ -1796,7 +1796,7 @@
   CFX_RetainPtr<CFGAS_GEFont> pFont =
       pFDEFontMgr->LoadFont(L"Arial Narrow", dwFontStyles, wCodePage);
   if (!pFont) {
-    pFont = pFDEFontMgr->LoadFont(static_cast<const FX_WCHAR*>(nullptr),
+    pFont = pFDEFontMgr->LoadFont(static_cast<const wchar_t*>(nullptr),
                                   dwFontStyles, wCodePage);
   }
   if (pFont)
@@ -1969,7 +1969,7 @@
 }
 
 bool CXFA_PDFFontMgr::GetCharWidth(const CFX_RetainPtr<CFGAS_GEFont>& pFont,
-                                   FX_WCHAR wUnicode,
+                                   wchar_t wUnicode,
                                    bool bCharCode,
                                    int32_t* pWidth) {
   if (wUnicode != 0x20 || bCharCode)
diff --git a/xfa/fxfa/app/xfa_fwltheme.cpp b/xfa/fxfa/app/xfa_fwltheme.cpp
index 73abaec..5ea2a0c 100644
--- a/xfa/fxfa/app/xfa_fwltheme.cpp
+++ b/xfa/fxfa/app/xfa_fwltheme.cpp
@@ -28,7 +28,7 @@
 
 namespace {
 
-const FX_WCHAR* const g_FWLTheme_CalFonts[] = {
+const wchar_t* const g_FWLTheme_CalFonts[] = {
     L"Arial", L"Courier New", L"DejaVu Sans",
 };
 
diff --git a/xfa/fxfa/fm2js/xfa_error.cpp b/xfa/fxfa/fm2js/xfa_error.cpp
index 020d9bc..9ca8869 100644
--- a/xfa/fxfa/fm2js/xfa_error.cpp
+++ b/xfa/fxfa/fm2js/xfa_error.cpp
@@ -6,12 +6,12 @@
 
 #include "xfa/fxfa/fm2js/xfa_error.h"
 
-const FX_WCHAR kFMErrUnsupportedChar[] = L"unsupported char '%c'";
-const FX_WCHAR kFMErrBadSuffixNumber[] = L"bad suffix on number";
-const FX_WCHAR kFMErrExpectedIdentifier[] =
+const wchar_t kFMErrUnsupportedChar[] = L"unsupported char '%c'";
+const wchar_t kFMErrBadSuffixNumber[] = L"bad suffix on number";
+const wchar_t kFMErrExpectedIdentifier[] =
     L"expected identifier instead of '%s'";
-const FX_WCHAR kFMErrExpectedToken[] = L"expected '%s' instead of '%s'";
-const FX_WCHAR kFMErrExpectedEndIf[] = L"expected 'endif' instead of '%s'";
-const FX_WCHAR kFMErrUnexpectedExpression[] = L"unexpected expression '%s'";
-const FX_WCHAR kFMErrExpectedNonEmptyExpression[] =
+const wchar_t kFMErrExpectedToken[] = L"expected '%s' instead of '%s'";
+const wchar_t kFMErrExpectedEndIf[] = L"expected 'endif' instead of '%s'";
+const wchar_t kFMErrUnexpectedExpression[] = L"unexpected expression '%s'";
+const wchar_t kFMErrExpectedNonEmptyExpression[] =
     L"expected non-empty expression";
diff --git a/xfa/fxfa/fm2js/xfa_error.h b/xfa/fxfa/fm2js/xfa_error.h
index 5e3fbbe..d6bb72b 100644
--- a/xfa/fxfa/fm2js/xfa_error.h
+++ b/xfa/fxfa/fm2js/xfa_error.h
@@ -10,13 +10,13 @@
 #include "core/fxcrt/fx_string.h"
 #include "core/fxcrt/fx_system.h"
 
-extern const FX_WCHAR kFMErrUnsupportedChar[];
-extern const FX_WCHAR kFMErrBadSuffixNumber[];
-extern const FX_WCHAR kFMErrExpectedIdentifier[];
-extern const FX_WCHAR kFMErrExpectedToken[];
-extern const FX_WCHAR kFMErrExpectedEndIf[];
-extern const FX_WCHAR kFMErrUnexpectedExpression[];
-extern const FX_WCHAR kFMErrExpectedNonEmptyExpression[];
+extern const wchar_t kFMErrUnsupportedChar[];
+extern const wchar_t kFMErrBadSuffixNumber[];
+extern const wchar_t kFMErrExpectedIdentifier[];
+extern const wchar_t kFMErrExpectedToken[];
+extern const wchar_t kFMErrExpectedEndIf[];
+extern const wchar_t kFMErrUnexpectedExpression[];
+extern const wchar_t kFMErrExpectedNonEmptyExpression[];
 
 class CXFA_FMErrorInfo {
  public:
diff --git a/xfa/fxfa/fm2js/xfa_expression.cpp b/xfa/fxfa/fm2js/xfa_expression.cpp
index 32db6d2..c1e451e 100644
--- a/xfa/fxfa/fm2js/xfa_expression.cpp
+++ b/xfa/fxfa/fm2js/xfa_expression.cpp
@@ -12,10 +12,10 @@
 
 namespace {
 
-const FX_WCHAR RUNTIMEBLOCKTEMPARRAY[] =
+const wchar_t RUNTIMEBLOCKTEMPARRAY[] =
     L"foxit_xfa_formcalc_runtime_block_temp_array";
 
-const FX_WCHAR RUNTIMEBLOCKTEMPARRAYINDEX[] =
+const wchar_t RUNTIMEBLOCKTEMPARRAYINDEX[] =
     L"foxit_xfa_formcalc_runtime_block_temp_array_index";
 
 }  // namespace
diff --git a/xfa/fxfa/fm2js/xfa_fm2jscontext.cpp b/xfa/fxfa/fm2js/xfa_fm2jscontext.cpp
index e8cb2d0..3561808 100644
--- a/xfa/fxfa/fm2js/xfa_fm2jscontext.cpp
+++ b/xfa/fxfa/fm2js/xfa_fm2jscontext.cpp
@@ -28,7 +28,7 @@
 
 struct XFA_FMHtmlReserveCode {
   uint32_t m_uCode;
-  const FX_WCHAR* m_htmlReserve;
+  const wchar_t* m_htmlReserve;
 };
 
 struct XFA_FMHtmlHashedReserveCode {
@@ -384,7 +384,7 @@
   bool bEscape = false;
   int32_t i = 0;
   while (i < nLength) {
-    FX_WCHAR wc = wsPattern[i];
+    wchar_t wc = wsPattern[i];
     if (wc == L'\'') {
       bInConstRange = !bInConstRange;
       if (bEscape) {
@@ -442,11 +442,11 @@
 
   patternType = XFA_VT_NULL;
   wsPattern.MakeLower();
-  const FX_WCHAR* pData = wsPattern.c_str();
+  const wchar_t* pData = wsPattern.c_str();
   int32_t iLength = wsPattern.GetLength();
   int32_t iIndex = 0;
   bool bSingleQuotation = false;
-  FX_WCHAR patternChar;
+  wchar_t patternChar;
   while (iIndex < iLength) {
     patternChar = pData[iIndex];
     if (patternChar == 0x27) {
@@ -455,7 +455,7 @@
                (patternChar == 'y' || patternChar == 'j')) {
       patternType = XFA_VT_DATE;
       iIndex++;
-      FX_WCHAR timePatternChar;
+      wchar_t timePatternChar;
       while (iIndex < iLength) {
         timePatternChar = pData[iIndex];
         if (timePatternChar == 0x27) {
@@ -1642,7 +1642,7 @@
 }
 
 // static
-bool CXFA_FM2JSContext::IsIsoDateFormat(const FX_CHAR* pData,
+bool CXFA_FM2JSContext::IsIsoDateFormat(const char* pData,
                                         int32_t iLength,
                                         int32_t& iStyle,
                                         int32_t& iYear,
@@ -1655,7 +1655,7 @@
   if (iLength < 4)
     return false;
 
-  FX_CHAR strYear[5];
+  char strYear[5];
   strYear[4] = '\0';
   for (int32_t i = 0; i < 4; ++i) {
     if (pData[i] > '9' || pData[i] < '0')
@@ -1670,7 +1670,7 @@
 
   iStyle = pData[4] == '-' ? 1 : 0;
 
-  FX_CHAR strTemp[3];
+  char strTemp[3];
   strTemp[2] = '\0';
   int32_t iPosOff = iStyle == 0 ? 4 : 5;
   if ((pData[iPosOff] > '9' || pData[iPosOff] < '0') ||
@@ -1721,7 +1721,7 @@
 }
 
 // static
-bool CXFA_FM2JSContext::IsIsoTimeFormat(const FX_CHAR* pData,
+bool CXFA_FM2JSContext::IsIsoTimeFormat(const char* pData,
                                         int32_t iLength,
                                         int32_t& iHour,
                                         int32_t& iMinute,
@@ -1738,7 +1738,7 @@
   if (!pData)
     return false;
 
-  FX_CHAR strTemp[3];
+  char strTemp[3];
   strTemp[2] = '\0';
   int32_t iZone = 0;
   int32_t i = 0;
@@ -1796,7 +1796,7 @@
   }
   if (pData[iIndex] == '.') {
     ++iIndex;
-    FX_CHAR strSec[4];
+    char strSec[4];
     strSec[3] = '\0';
     if (pData[iIndex] > '9' || pData[iIndex] < '0')
       return false;
@@ -1868,7 +1868,7 @@
 }
 
 // static
-bool CXFA_FM2JSContext::IsIsoDateTimeFormat(const FX_CHAR* pData,
+bool CXFA_FM2JSContext::IsIsoDateTimeFormat(const char* pData,
                                             int32_t iLength,
                                             int32_t& iYear,
                                             int32_t& iMonth,
@@ -3059,14 +3059,14 @@
   unitspanString.MakeLower();
   CFX_WideString wsTypeString =
       CFX_WideString::FromUTF8(unitspanString.AsStringC());
-  const FX_WCHAR* pData = wsTypeString.c_str();
+  const wchar_t* pData = wsTypeString.c_str();
   int32_t u = 0;
   int32_t uLen = wsTypeString.GetLength();
   while (IsWhitespace(pData[u]))
     u++;
 
   XFA_FM2JS_VALUETYPE_ParserStatus eParserStatus = VALUETYPE_START;
-  FX_WCHAR typeChar;
+  wchar_t typeChar;
   // TODO(dsinclair): Cleanup this parser, figure out what the various checks
   //    are for.
   while (u < uLen) {
@@ -3086,7 +3086,7 @@
       }
       eParserStatus = VALUETYPE_HAVEDIGIT;
     } else if ((typeChar == 'c' || typeChar == 'p') && (u + 1 < uLen)) {
-      FX_WCHAR nextChar = pData[u + 1];
+      wchar_t nextChar = pData[u + 1];
       if ((eParserStatus == VALUETYPE_START ||
            eParserStatus == VALUETYPE_HAVEDIGIT ||
            eParserStatus == VALUETYPE_HAVEDIGITWHITE) &&
@@ -3097,7 +3097,7 @@
       }
       eParserStatus = VALUETYPE_HAVEINVALIDCHAR;
     } else if (typeChar == 'm' && (u + 1 < uLen)) {
-      FX_WCHAR nextChar = pData[u + 1];
+      wchar_t nextChar = pData[u + 1];
       if ((eParserStatus == VALUETYPE_START ||
            eParserStatus == VALUETYPE_HAVEDIGIT ||
            eParserStatus == VALUETYPE_HAVEDIGITWHITE) &&
@@ -3153,7 +3153,7 @@
 
   CFX_ByteString unitspanString;
   ValueToUTF8String(unitspanValue.get(), unitspanString);
-  const FX_CHAR* pData = unitspanString.c_str();
+  const char* pData = unitspanString.c_str();
   if (!pData) {
     args.GetReturnValue()->SetInteger(0);
     return;
@@ -3171,7 +3171,7 @@
     ++u;
   }
 
-  FX_CHAR* pTemp = nullptr;
+  char* pTemp = nullptr;
   FX_DOUBLE dFirstNumber = strtod(pData, &pTemp);
   while (IsWhitespace(pData[u]))
     ++u;
@@ -3192,7 +3192,7 @@
     std::unique_ptr<CFXJSE_Value> unitValue = GetSimpleValue(pThis, args, 1);
     CFX_ByteString unitTempString;
     ValueToUTF8String(unitValue.get(), unitTempString);
-    const FX_CHAR* pChar = unitTempString.c_str();
+    const char* pChar = unitTempString.c_str();
     int32_t uVal = 0;
     while (IsWhitespace(pChar[uVal]))
       ++uVal;
@@ -3393,18 +3393,18 @@
 void CXFA_FM2JSContext::DecodeURL(const CFX_ByteStringC& szURLString,
                                   CFX_ByteTextBuf& szResultString) {
   CFX_WideString wsURLString = CFX_WideString::FromUTF8(szURLString);
-  const FX_WCHAR* pData = wsURLString.c_str();
+  const wchar_t* pData = wsURLString.c_str();
   int32_t i = 0;
   CFX_WideTextBuf wsResultBuf;
   while (i < wsURLString.GetLength()) {
-    FX_WCHAR ch = pData[i];
+    wchar_t ch = pData[i];
     if ('%' != ch) {
       wsResultBuf.AppendChar(ch);
       ++i;
       continue;
     }
 
-    FX_WCHAR chTemp = 0;
+    wchar_t chTemp = 0;
     int32_t iCount = 0;
     while (iCount < 2) {
       ++i;
@@ -3434,15 +3434,15 @@
 void CXFA_FM2JSContext::DecodeHTML(const CFX_ByteStringC& szHTMLString,
                                    CFX_ByteTextBuf& szResultString) {
   CFX_WideString wsHTMLString = CFX_WideString::FromUTF8(szHTMLString);
-  FX_WCHAR strString[9];
+  wchar_t strString[9];
   int32_t iStrIndex = 0;
   int32_t iLen = wsHTMLString.GetLength();
   int32_t i = 0;
   int32_t iCode = 0;
-  const FX_WCHAR* pData = wsHTMLString.c_str();
+  const wchar_t* pData = wsHTMLString.c_str();
   CFX_WideTextBuf wsResultBuf;
   while (i < iLen) {
-    FX_WCHAR ch = pData[i];
+    wchar_t ch = pData[i];
     if (ch != '&') {
       wsResultBuf.AppendChar(ch);
       ++i;
@@ -3492,7 +3492,7 @@
     }
     uint32_t iData = 0;
     if (HTMLSTR2Code(strString, iData)) {
-      wsResultBuf.AppendChar((FX_WCHAR)iData);
+      wsResultBuf.AppendChar((wchar_t)iData);
     } else {
       wsResultBuf.AppendChar(iCode);
     }
@@ -3510,13 +3510,13 @@
 void CXFA_FM2JSContext::DecodeXML(const CFX_ByteStringC& szXMLString,
                                   CFX_ByteTextBuf& szResultString) {
   CFX_WideString wsXMLString = CFX_WideString::FromUTF8(szXMLString);
-  FX_WCHAR strString[9];
+  wchar_t strString[9];
   int32_t iStrIndex = 0;
   int32_t iLen = wsXMLString.GetLength();
   int32_t i = 0;
   int32_t iCode = 0;
-  FX_WCHAR ch = 0;
-  const FX_WCHAR* pData = wsXMLString.c_str();
+  wchar_t ch = 0;
+  const wchar_t* pData = wsXMLString.c_str();
   CFX_WideTextBuf wsXMLBuf;
   while (i < iLen) {
     ch = pData[i];
@@ -3568,7 +3568,7 @@
       strString[iStrIndex] = 0;
     }
 
-    const FX_WCHAR* const strName[] = {L"quot", L"amp", L"apos", L"lt", L"gt"};
+    const wchar_t* const strName[] = {L"quot", L"amp", L"apos", L"lt", L"gt"};
     int32_t iIndex = 0;
     while (iIndex < 5) {
       if (FXSYS_memcmp(strString, strName[iIndex],
@@ -3659,16 +3659,16 @@
                                   CFX_ByteTextBuf& szResultBuf) {
   CFX_WideString wsURLString = CFX_WideString::FromUTF8(szURLString);
   CFX_WideTextBuf wsResultBuf;
-  FX_WCHAR strEncode[4];
+  wchar_t strEncode[4];
   strEncode[0] = '%';
   strEncode[3] = 0;
-  FX_WCHAR strUnsafe[] = {' ', '<',  '>', '"', '#', '%', '{', '}',
-                          '|', '\\', '^', '~', '[', ']', '`'};
-  FX_WCHAR strReserved[] = {';', '/', '?', ':', '@', '=', '&'};
-  FX_WCHAR strSpecial[] = {'$', '-', '+', '!', '*', '\'', '(', ')', ','};
-  const FX_WCHAR* strCode = L"0123456789abcdef";
+  wchar_t strUnsafe[] = {' ', '<',  '>', '"', '#', '%', '{', '}',
+                         '|', '\\', '^', '~', '[', ']', '`'};
+  wchar_t strReserved[] = {';', '/', '?', ':', '@', '=', '&'};
+  wchar_t strSpecial[] = {'$', '-', '+', '!', '*', '\'', '(', ')', ','};
+  const wchar_t* strCode = L"0123456789abcdef";
   for (int32_t u = 0; u < wsURLString.GetLength(); ++u) {
-    FX_WCHAR ch = wsURLString.GetAt(u);
+    wchar_t ch = wsURLString.GetAt(u);
     int32_t i = 0;
     int32_t iCount = FX_ArraySize(strUnsafe);
     while (i < iCount) {
@@ -3719,10 +3719,10 @@
     } else if (ch >= 0x20 && ch <= 0x7e) {
       wsResultBuf.AppendChar(ch);
     } else {
-      const FX_WCHAR iRadix = 16;
+      const wchar_t iRadix = 16;
       CFX_WideString strTmp;
       while (ch >= iRadix) {
-        FX_WCHAR tmp = strCode[ch % iRadix];
+        wchar_t tmp = strCode[ch % iRadix];
         ch /= iRadix;
         strTmp += tmp;
       }
@@ -3760,8 +3760,8 @@
                                    CFX_ByteTextBuf& szResultBuf) {
   CFX_ByteString str = szHTMLString.c_str();
   CFX_WideString wsHTMLString = CFX_WideString::FromUTF8(str.AsStringC());
-  const FX_WCHAR* strCode = L"0123456789abcdef";
-  FX_WCHAR strEncode[9];
+  const wchar_t* strCode = L"0123456789abcdef";
+  wchar_t strEncode[9];
   strEncode[0] = '&';
   strEncode[1] = '#';
   strEncode[2] = 'x';
@@ -3772,7 +3772,7 @@
   CFX_WideTextBuf wsResultBuf;
   int32_t iLen = wsHTMLString.GetLength();
   int32_t i = 0;
-  const FX_WCHAR* pData = wsHTMLString.c_str();
+  const wchar_t* pData = wsHTMLString.c_str();
   while (i < iLen) {
     uint32_t ch = pData[i];
     CFX_WideString htmlReserve;
@@ -3781,7 +3781,7 @@
       wsResultBuf << htmlReserve;
       wsResultBuf.AppendChar(L';');
     } else if (ch >= 32 && ch <= 126) {
-      wsResultBuf.AppendChar((FX_WCHAR)ch);
+      wsResultBuf.AppendChar((wchar_t)ch);
     } else if (ch < 256) {
       int32_t iIndex = ch / 16;
       strEncode[3] = strCode[iIndex];
@@ -3810,7 +3810,7 @@
                                   CFX_ByteTextBuf& szResultBuf) {
   CFX_WideString wsXMLString = CFX_WideString::FromUTF8(szXMLString);
   CFX_WideTextBuf wsResultBuf;
-  FX_WCHAR strEncode[9];
+  wchar_t strEncode[9];
   strEncode[0] = '&';
   strEncode[1] = '#';
   strEncode[2] = 'x';
@@ -3818,10 +3818,10 @@
   strEncode[6] = 0;
   strEncode[7] = ';';
   strEncode[8] = 0;
-  const FX_WCHAR* strCode = L"0123456789abcdef";
-  const FX_WCHAR* pData = wsXMLString.c_str();
+  const wchar_t* strCode = L"0123456789abcdef";
+  const wchar_t* pData = wsXMLString.c_str();
   for (int32_t u = 0; u < wsXMLString.GetLength(); ++u) {
-    FX_WCHAR ch = pData[u];
+    wchar_t ch = pData[u];
     switch (ch) {
       case '"':
         wsResultBuf.AppendChar('&');
@@ -4060,7 +4060,7 @@
   ValueToUTF8String(argOne.get(), argString);
   CFX_WideTextBuf lowStringBuf;
   CFX_WideString wsArgString = CFX_WideString::FromUTF8(argString.AsStringC());
-  const FX_WCHAR* pData = wsArgString.c_str();
+  const wchar_t* pData = wsArgString.c_str();
   int32_t i = 0;
   while (i < argString.GetLength()) {
     int32_t ch = pData[i];
@@ -4399,7 +4399,7 @@
   formatStr += "f";
   numberString.Format(formatStr.c_str(), fNumber);
 
-  const FX_CHAR* pData = numberString.c_str();
+  const char* pData = numberString.c_str();
   int32_t iLength = numberString.GetLength();
   int32_t u = 0;
   while (u < iLength) {
@@ -4608,7 +4608,7 @@
 
   CFX_WideTextBuf upperStringBuf;
   CFX_WideString wsArgString = CFX_WideString::FromUTF8(argString.AsStringC());
-  const FX_WCHAR* pData = wsArgString.c_str();
+  const wchar_t* pData = wsArgString.c_str();
   int32_t i = 0;
   while (i < wsArgString.GetLength()) {
     int32_t ch = pData[i];
@@ -4692,7 +4692,7 @@
                                  "Sixty",  "Seventy", "Eighty", "Ninety"};
   CFX_ByteStringC pComm[] = {" Hundred ", " Thousand ", " Million ",
                              " Billion ", "Trillion"};
-  const FX_CHAR* pData = szData.c_str();
+  const char* pData = szData.c_str();
   int32_t iLength = szData.GetLength();
   int32_t iComm = 0;
   if (iLength > 12)
@@ -4781,7 +4781,7 @@
 void CXFA_FM2JSContext::WordUS(const CFX_ByteStringC& szData,
                                int32_t iStyle,
                                CFX_ByteTextBuf& strBuf) {
-  const FX_CHAR* pData = szData.c_str();
+  const char* pData = szData.c_str();
   int32_t iLength = szData.GetLength();
   if (iStyle < 0 || iStyle > 2) {
     return;
@@ -6411,7 +6411,7 @@
   ThrowException(L"Argument mismatch in property or function argument.");
 }
 
-void CXFA_FM2JSContext::ThrowException(const FX_WCHAR* str, ...) const {
+void CXFA_FM2JSContext::ThrowException(const wchar_t* str, ...) const {
   CFX_WideString wsMessage;
   va_list arg_ptr;
   va_start(arg_ptr, str);
diff --git a/xfa/fxfa/fm2js/xfa_fm2jscontext.h b/xfa/fxfa/fm2js/xfa_fm2jscontext.h
index 0f802fe..b56a021 100644
--- a/xfa/fxfa/fm2js/xfa_fm2jscontext.h
+++ b/xfa/fxfa/fm2js/xfa_fm2jscontext.h
@@ -91,13 +91,13 @@
                       const CFX_ByteStringC& szFuncName,
                       CFXJSE_Arguments& args);
 
-  static bool IsIsoDateFormat(const FX_CHAR* pData,
+  static bool IsIsoDateFormat(const char* pData,
                               int32_t iLength,
                               int32_t& iStyle,
                               int32_t& iYear,
                               int32_t& iMonth,
                               int32_t& iDay);
-  static bool IsIsoTimeFormat(const FX_CHAR* pData,
+  static bool IsIsoTimeFormat(const char* pData,
                               int32_t iLength,
                               int32_t& iHour,
                               int32_t& iMinute,
@@ -105,7 +105,7 @@
                               int32_t& iMilliSecond,
                               int32_t& iZoneHour,
                               int32_t& iZoneMinute);
-  static bool IsIsoDateTimeFormat(const FX_CHAR* pData,
+  static bool IsIsoDateTimeFormat(const char* pData,
                                   int32_t iLength,
                                   int32_t& iYear,
                                   int32_t& iMonth,
@@ -462,7 +462,7 @@
                                          const CFX_WideString& exp) const;
   void ThrowArgumentMismatchException() const;
   void ThrowParamCountMismatchException(const CFX_WideString& method) const;
-  void ThrowException(const FX_WCHAR* str, ...) const;
+  void ThrowException(const wchar_t* str, ...) const;
 
   v8::Isolate* m_pIsolate;
   CFXJSE_Class* m_pFMClass;
diff --git a/xfa/fxfa/fm2js/xfa_fmparse.cpp b/xfa/fxfa/fm2js/xfa_fmparse.cpp
index 52161e8c..09e8f36 100644
--- a/xfa/fxfa/fm2js/xfa_fmparse.cpp
+++ b/xfa/fxfa/fm2js/xfa_fmparse.cpp
@@ -39,7 +39,7 @@
   NextToken();
 }
 
-void CXFA_FMParse::Error(uint32_t lineNum, const FX_WCHAR* msg, ...) {
+void CXFA_FMParse::Error(uint32_t lineNum, const wchar_t* msg, ...) {
   m_pErrorInfo->linenum = lineNum;
   va_list ap;
   va_start(ap, msg);
@@ -832,7 +832,7 @@
 
 std::unique_ptr<CXFA_FMExpression> CXFA_FMParse::ParseIfExpression() {
   uint32_t line = m_pToken->m_uLinenum;
-  const FX_WCHAR* pStartPos = m_lexer->SavePos();
+  const wchar_t* pStartPos = m_lexer->SavePos();
   NextToken();
   Check(TOKlparen);
   std::unique_ptr<CXFA_FMSimpleExpression> pExpression;
diff --git a/xfa/fxfa/fm2js/xfa_fmparse.h b/xfa/fxfa/fm2js/xfa_fmparse.h
index 8f2671d..ccb793a 100644
--- a/xfa/fxfa/fm2js/xfa_fmparse.h
+++ b/xfa/fxfa/fm2js/xfa_fmparse.h
@@ -20,7 +20,7 @@
 
   void NextToken();
   void Check(XFA_FM_TOKEN op);
-  void Error(uint32_t lineNum, const FX_WCHAR* msg, ...);
+  void Error(uint32_t lineNum, const wchar_t* msg, ...);
   std::vector<std::unique_ptr<CXFA_FMExpression>> ParseTopExpression();
   std::unique_ptr<CXFA_FMExpression> ParseFunction();
   std::unique_ptr<CXFA_FMExpression> ParseExpression();
diff --git a/xfa/fxfa/fm2js/xfa_lexer.cpp b/xfa/fxfa/fm2js/xfa_lexer.cpp
index 6e844bc..e83877e 100644
--- a/xfa/fxfa/fm2js/xfa_lexer.cpp
+++ b/xfa/fxfa/fm2js/xfa_lexer.cpp
@@ -11,41 +11,39 @@
 namespace {
 
 struct XFA_FMDChar {
-  static const FX_WCHAR* inc(const FX_WCHAR*& p) {
+  static const wchar_t* inc(const wchar_t*& p) {
     ++p;
     return p;
   }
-  static const FX_WCHAR* dec(const FX_WCHAR*& p) {
+  static const wchar_t* dec(const wchar_t*& p) {
     --p;
     return p;
   }
-  static uint16_t get(const FX_WCHAR* p) { return *p; }
-  static bool isWhiteSpace(const FX_WCHAR* p) {
+  static uint16_t get(const wchar_t* p) { return *p; }
+  static bool isWhiteSpace(const wchar_t* p) {
     return (*p) == 0x09 || (*p) == 0x0b || (*p) == 0x0c || (*p) == 0x20;
   }
-  static bool isLineTerminator(const FX_WCHAR* p) {
+  static bool isLineTerminator(const wchar_t* p) {
     return *p == 0x0A || *p == 0x0D;
   }
-  static bool isBinary(const FX_WCHAR* p) { return (*p) >= '0' && (*p) <= '1'; }
-  static bool isOctal(const FX_WCHAR* p) { return (*p) >= '0' && (*p) <= '7'; }
-  static bool isDigital(const FX_WCHAR* p) {
-    return (*p) >= '0' && (*p) <= '9';
-  }
-  static bool isHex(const FX_WCHAR* p) {
+  static bool isBinary(const wchar_t* p) { return (*p) >= '0' && (*p) <= '1'; }
+  static bool isOctal(const wchar_t* p) { return (*p) >= '0' && (*p) <= '7'; }
+  static bool isDigital(const wchar_t* p) { return (*p) >= '0' && (*p) <= '9'; }
+  static bool isHex(const wchar_t* p) {
     return isDigital(p) || ((*p) >= 'a' && (*p) <= 'f') ||
            ((*p) >= 'A' && (*p) <= 'F');
   }
-  static bool isAlpha(const FX_WCHAR* p) {
+  static bool isAlpha(const wchar_t* p) {
     return ((*p) <= 'z' && (*p) >= 'a') || ((*p) <= 'Z' && (*p) >= 'A');
   }
-  static bool isAvalid(const FX_WCHAR* p, bool flag = 0);
-  static bool string2number(const FX_WCHAR* s,
+  static bool isAvalid(const wchar_t* p, bool flag = 0);
+  static bool string2number(const wchar_t* s,
                             FX_DOUBLE* pValue,
-                            const FX_WCHAR*& pEnd);
+                            const wchar_t*& pEnd);
   static bool isUnicodeAlpha(uint16_t ch);
 };
 
-inline bool XFA_FMDChar::isAvalid(const FX_WCHAR* p, bool flag) {
+inline bool XFA_FMDChar::isAvalid(const wchar_t* p, bool flag) {
   if (*p == 0) {
     return 1;
   }
@@ -61,9 +59,9 @@
   return 0;
 }
 
-inline bool XFA_FMDChar::string2number(const FX_WCHAR* s,
+inline bool XFA_FMDChar::string2number(const wchar_t* s,
                                        FX_DOUBLE* pValue,
-                                       const FX_WCHAR*& pEnd) {
+                                       const wchar_t*& pEnd) {
   if (s) {
     *pValue = wcstod((wchar_t*)s, (wchar_t**)&pEnd);
   }
@@ -148,7 +146,7 @@
 
 }  // namespace
 
-const FX_WCHAR* XFA_FM_KeywordToString(XFA_FM_TOKEN op) {
+const wchar_t* XFA_FM_KeywordToString(XFA_FM_TOKEN op) {
   if (op < KEYWORD_START || op > KEYWORD_END)
     return L"";
   return keyWords[op].m_keyword;
@@ -199,12 +197,12 @@
         XFA_FMDChar::inc(m_ptr);
         break;
       case ';': {
-        const FX_WCHAR* pTemp = 0;
+        const wchar_t* pTemp = 0;
         Comment(m_ptr, pTemp);
         m_ptr = pTemp;
       } break;
       case '"': {
-        const FX_WCHAR* pTemp = 0;
+        const wchar_t* pTemp = 0;
         p->m_type = TOKstring;
         iRet = String(p, m_ptr, pTemp);
         m_ptr = pTemp;
@@ -221,7 +219,7 @@
       case '8':
       case '9': {
         p->m_type = TOKnumber;
-        const FX_WCHAR* pTemp = 0;
+        const wchar_t* pTemp = 0;
         iRet = Number(p, m_ptr, pTemp);
         m_ptr = pTemp;
         if (iRet) {
@@ -333,7 +331,7 @@
         if (XFA_FMDChar::isAvalid(m_ptr)) {
           ch = XFA_FMDChar::get(m_ptr);
           if (ch == '/') {
-            const FX_WCHAR* pTemp = 0;
+            const wchar_t* pTemp = 0;
             Comment(m_ptr, pTemp);
             m_ptr = pTemp;
             break;
@@ -365,7 +363,7 @@
             return p;
           } else if (ch <= '9' && ch >= '0') {
             p->m_type = TOKnumber;
-            const FX_WCHAR* pTemp = 0;
+            const wchar_t* pTemp = 0;
             XFA_FMDChar::dec(m_ptr);
             iRet = Number(p, m_ptr, pTemp);
             m_ptr = pTemp;
@@ -389,7 +387,7 @@
         XFA_FMDChar::inc(m_ptr);
         break;
       default: {
-        const FX_WCHAR* pTemp = 0;
+        const wchar_t* pTemp = 0;
         iRet = Identifiers(p, m_ptr, pTemp);
         m_ptr = pTemp;
         if (iRet) {
@@ -403,8 +401,8 @@
 }
 
 uint32_t CXFA_FMLexer::Number(CXFA_FMToken* t,
-                              const FX_WCHAR* p,
-                              const FX_WCHAR*& pEnd) {
+                              const wchar_t* p,
+                              const wchar_t*& pEnd) {
   FX_DOUBLE number = 0;
   if (XFA_FMDChar::string2number(p, &number, pEnd)) {
     return 1;
@@ -417,9 +415,9 @@
 }
 
 uint32_t CXFA_FMLexer::String(CXFA_FMToken* t,
-                              const FX_WCHAR* p,
-                              const FX_WCHAR*& pEnd) {
-  const FX_WCHAR* pStart = p;
+                              const wchar_t* p,
+                              const wchar_t*& pEnd) {
+  const wchar_t* pStart = p;
   uint16_t ch = 0;
   XFA_FMDChar::inc(p);
   ch = XFA_FMDChar::get(p);
@@ -457,9 +455,9 @@
 }
 
 uint32_t CXFA_FMLexer::Identifiers(CXFA_FMToken* t,
-                                   const FX_WCHAR* p,
-                                   const FX_WCHAR*& pEnd) {
-  const FX_WCHAR* pStart = p;
+                                   const wchar_t* p,
+                                   const wchar_t*& pEnd) {
+  const wchar_t* pStart = p;
   uint16_t ch = 0;
   ch = XFA_FMDChar::get(p);
   XFA_FMDChar::inc(p);
@@ -491,7 +489,7 @@
   return 0;
 }
 
-void CXFA_FMLexer::Comment(const FX_WCHAR* p, const FX_WCHAR*& pEnd) {
+void CXFA_FMLexer::Comment(const wchar_t* p, const wchar_t*& pEnd) {
   unsigned ch = 0;
   XFA_FMDChar::inc(p);
   ch = XFA_FMDChar::get(p);
@@ -530,7 +528,7 @@
   return TOKidentifier;
 }
 
-void CXFA_FMLexer::Error(const FX_WCHAR* msg, ...) {
+void CXFA_FMLexer::Error(const wchar_t* msg, ...) {
   m_pErrorInfo->linenum = m_uCurrentLine;
   va_list ap;
   va_start(ap, msg);
diff --git a/xfa/fxfa/fm2js/xfa_lexer.h b/xfa/fxfa/fm2js/xfa_lexer.h
index 9395c06..aa7904c 100644
--- a/xfa/fxfa/fm2js/xfa_lexer.h
+++ b/xfa/fxfa/fm2js/xfa_lexer.h
@@ -86,10 +86,10 @@
 struct XFA_FMKeyword {
   XFA_FM_TOKEN m_type;
   uint32_t m_uHash;
-  const FX_WCHAR* m_keyword;
+  const wchar_t* m_keyword;
 };
 
-const FX_WCHAR* XFA_FM_KeywordToString(XFA_FM_TOKEN op);
+const wchar_t* XFA_FM_KeywordToString(XFA_FM_TOKEN op);
 
 class CXFA_FMToken {
  public:
@@ -107,27 +107,25 @@
   ~CXFA_FMLexer();
 
   CXFA_FMToken* NextToken();
-  uint32_t Number(CXFA_FMToken* t, const FX_WCHAR* p, const FX_WCHAR*& pEnd);
-  uint32_t String(CXFA_FMToken* t, const FX_WCHAR* p, const FX_WCHAR*& pEnd);
-  uint32_t Identifiers(CXFA_FMToken* t,
-                       const FX_WCHAR* p,
-                       const FX_WCHAR*& pEnd);
-  void Comment(const FX_WCHAR* p, const FX_WCHAR*& pEnd);
+  uint32_t Number(CXFA_FMToken* t, const wchar_t* p, const wchar_t*& pEnd);
+  uint32_t String(CXFA_FMToken* t, const wchar_t* p, const wchar_t*& pEnd);
+  uint32_t Identifiers(CXFA_FMToken* t, const wchar_t* p, const wchar_t*& pEnd);
+  void Comment(const wchar_t* p, const wchar_t*& pEnd);
   XFA_FM_TOKEN IsKeyword(const CFX_WideStringC& p);
   void SetCurrentLine(uint32_t line) { m_uCurrentLine = line; }
   void SetToken(CXFA_FMToken* pToken) {
     if (m_pToken.get() != pToken)
       m_pToken.reset(pToken);
   }
-  const FX_WCHAR* SavePos() { return m_ptr; }
-  void RestorePos(const FX_WCHAR* pPos) { m_ptr = pPos; }
-  void Error(const FX_WCHAR* msg, ...);
+  const wchar_t* SavePos() { return m_ptr; }
+  void RestorePos(const wchar_t* pPos) { m_ptr = pPos; }
+  void Error(const wchar_t* msg, ...);
   bool HasError() const;
 
  protected:
   CXFA_FMToken* Scan();
 
-  const FX_WCHAR* m_ptr;
+  const wchar_t* m_ptr;
   uint32_t m_uCurrentLine;
   std::unique_ptr<CXFA_FMToken> m_pToken;
   CXFA_FMErrorInfo* m_pErrorInfo;
diff --git a/xfa/fxfa/fm2js/xfa_simpleexpression.cpp b/xfa/fxfa/fm2js/xfa_simpleexpression.cpp
index 686ddaa..7bc703b 100644
--- a/xfa/fxfa/fm2js/xfa_simpleexpression.cpp
+++ b/xfa/fxfa/fm2js/xfa_simpleexpression.cpp
@@ -12,7 +12,7 @@
 
 namespace {
 
-const FX_WCHAR* const gs_lpStrExpFuncName[] = {
+const wchar_t* const gs_lpStrExpFuncName[] = {
     L"foxit_xfa_formcalc_runtime.assign_value_operator",
     L"foxit_xfa_formcalc_runtime.logical_or_operator",
     L"foxit_xfa_formcalc_runtime.logical_and_operator",
@@ -42,7 +42,7 @@
 
 struct XFA_FMBuildInFunc {
   uint32_t m_uHash;
-  const FX_WCHAR* m_buildinfunc;
+  const wchar_t* m_buildinfunc;
 };
 
 const XFA_FMBuildInFunc g_BuildInFuncs[] = {
@@ -83,7 +83,7 @@
 
 struct XFA_FMSOMMethod {
   uint32_t m_uHash;
-  const FX_WCHAR* m_wsSomMethodName;
+  const wchar_t* m_wsSomMethodName;
   uint32_t m_dParameters;
 };
 const XFA_FMSOMMethod gs_FMSomMethods[] = {
@@ -155,7 +155,7 @@
   CFX_WideString tempStr(m_wsString);
   if (tempStr.GetLength() > 2) {
     javascript.AppendChar(L'\"');
-    FX_WCHAR oneChar;
+    wchar_t oneChar;
     for (int16_t i = 1; i < tempStr.GetLength() - 1; i++) {
       oneChar = tempStr[i];
       switch (oneChar) {
diff --git a/xfa/fxfa/fxfa_basic.h b/xfa/fxfa/fxfa_basic.h
index d16f50f..a33f8c8 100644
--- a/xfa/fxfa/fxfa_basic.h
+++ b/xfa/fxfa/fxfa_basic.h
@@ -90,9 +90,9 @@
 };
 struct XFA_PACKETINFO {
   uint32_t uHash;
-  const FX_WCHAR* pName;
+  const wchar_t* pName;
   XFA_XDPPACKET eName;
-  const FX_WCHAR* pURI;
+  const wchar_t* pURI;
   uint32_t eFlags;
 };
 
@@ -928,7 +928,7 @@
 };
 struct XFA_ELEMENTINFO {
   uint32_t uHash;
-  const FX_WCHAR* pName;
+  const wchar_t* pName;
   XFA_Element eName;
   uint32_t dwPackets;
   XFA_ObjectType eObjectType;
@@ -944,7 +944,7 @@
 };
 struct XFA_ATTRIBUTEINFO {
   uint32_t uHash;
-  const FX_WCHAR* pName;
+  const wchar_t* pName;
   XFA_ATTRIBUTE eName;
   XFA_ATTRIBUTETYPE eType;
   uint32_t dwPackets;
@@ -974,7 +974,7 @@
 
 struct XFA_ATTRIBUTEENUMINFO {
   uint32_t uHash;
-  const FX_WCHAR* pName;
+  const wchar_t* pName;
   XFA_ATTRIBUTEENUM eName;
 };
 
@@ -1004,7 +1004,7 @@
 typedef void (CXFA_Object::*XFA_METHOD_CALLBACK)(CFXJSE_Arguments* pArguments);
 struct XFA_METHODINFO {
   uint32_t uHash;
-  const FX_WCHAR* pName;
+  const wchar_t* pName;
   XFA_METHOD_CALLBACK lpfnCallback;
 };
 
@@ -1017,7 +1017,7 @@
 };
 struct XFA_SCRIPTATTRIBUTEINFO {
   uint32_t uHash;
-  const FX_WCHAR* pName;
+  const wchar_t* pName;
   XFA_ATTRIBUTE_CALLBACK lpfnCallback;
   int32_t eAttribute;
   uint16_t eValueType;
diff --git a/xfa/fxfa/parser/cscript_hostpseudomodel.cpp b/xfa/fxfa/parser/cscript_hostpseudomodel.cpp
index a06e02f..94958a5 100644
--- a/xfa/fxfa/parser/cscript_hostpseudomodel.cpp
+++ b/xfa/fxfa/parser/cscript_hostpseudomodel.cpp
@@ -322,10 +322,10 @@
   if (nStart >= iLength) {
     return iLength;
   }
-  FX_WCHAR* pBuf = wsFilter.GetBuffer(iLength - nStart);
+  wchar_t* pBuf = wsFilter.GetBuffer(iLength - nStart);
   int32_t nCount = 0;
-  const FX_WCHAR* pSrc = wsExpression.c_str();
-  FX_WCHAR wCur;
+  const wchar_t* pSrc = wsExpression.c_str();
+  wchar_t wCur;
   while (nStart < iLength) {
     wCur = pSrc[nStart++];
     if (wCur == ',') {
diff --git a/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp b/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp
index 152b568..aa3117a 100644
--- a/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp
+++ b/xfa/fxfa/parser/cscript_layoutpseudomodel.cpp
@@ -50,7 +50,7 @@
                                      XFA_LAYOUTMODEL_HWXY layoutModel) {
   int32_t iLength = pArguments->GetLength();
   if (iLength < 1 || iLength > 3) {
-    const FX_WCHAR* methodName = nullptr;
+    const wchar_t* methodName = nullptr;
     switch (layoutModel) {
       case XFA_LAYOUTMODEL_H:
         methodName = L"h";
@@ -451,7 +451,7 @@
                                         bool bAbsPage) {
   int32_t iLength = pArguments->GetLength();
   if (iLength != 1) {
-    const FX_WCHAR* methodName;
+    const wchar_t* methodName;
     if (bAbsPage) {
       methodName = L"absPage";
     } else {
diff --git a/xfa/fxfa/parser/cxfa_data.cpp b/xfa/fxfa/parser/cxfa_data.cpp
index 19f8508..3544a1d 100644
--- a/xfa/fxfa/parser/cxfa_data.cpp
+++ b/xfa/fxfa/parser/cxfa_data.cpp
@@ -17,7 +17,7 @@
     return 0xff000000;
 
   int cc = 0;
-  const FX_WCHAR* str = wsValue.c_str();
+  const wchar_t* str = wsValue.c_str();
   int len = wsValue.GetLength();
   while (FXSYS_iswspace(str[cc]) && cc < len)
     cc++;
diff --git a/xfa/fxfa/parser/cxfa_dataexporter.cpp b/xfa/fxfa/parser/cxfa_dataexporter.cpp
index fe99475..4d3b039 100644
--- a/xfa/fxfa/parser/cxfa_dataexporter.cpp
+++ b/xfa/fxfa/parser/cxfa_dataexporter.cpp
@@ -49,7 +49,7 @@
   CFX_WideTextBuf textBuf;
   int32_t iLen = str.GetLength();
   for (int32_t i = 0; i < iLen; i++) {
-    FX_WCHAR ch = str.GetAt(i);
+    wchar_t ch = str.GetAt(i);
     if (!FDE_IsXMLValidChar(ch))
       continue;
 
@@ -332,7 +332,7 @@
     RegenerateFormFile_Changed(pNode, buf, bSaveXML);
     FX_STRSIZE nLen = buf.GetLength();
     if (nLen > 0)
-      pStream->WriteString((const FX_WCHAR*)buf.GetBuffer(), nLen);
+      pStream->WriteString((const wchar_t*)buf.GetBuffer(), nLen);
     return;
   }
 
@@ -379,21 +379,21 @@
 void XFA_DataExporter_RegenerateFormFile(
     CXFA_Node* pNode,
     const CFX_RetainPtr<IFGAS_Stream>& pStream,
-    const FX_CHAR* pChecksum,
+    const char* pChecksum,
     bool bSaveXML) {
   if (pNode->IsModelNode()) {
-    static const FX_WCHAR s_pwsTagName[] = L"<form";
-    static const FX_WCHAR s_pwsClose[] = L"</form\n>";
+    static const wchar_t s_pwsTagName[] = L"<form";
+    static const wchar_t s_pwsClose[] = L"</form\n>";
     pStream->WriteString(s_pwsTagName, FXSYS_wcslen(s_pwsTagName));
     if (pChecksum) {
-      static const FX_WCHAR s_pwChecksum[] = L" checksum=\"";
+      static const wchar_t s_pwChecksum[] = L" checksum=\"";
       CFX_WideString wsChecksum = CFX_WideString::FromUTF8(pChecksum);
       pStream->WriteString(s_pwChecksum, FXSYS_wcslen(s_pwChecksum));
       pStream->WriteString(wsChecksum.c_str(), wsChecksum.GetLength());
       pStream->WriteString(L"\"", 1);
     }
     pStream->WriteString(L" xmlns=\"", FXSYS_wcslen(L" xmlns=\""));
-    const FX_WCHAR* pURI = XFA_GetPacketByIndex(XFA_PACKET_Form)->pURI;
+    const wchar_t* pURI = XFA_GetPacketByIndex(XFA_PACKET_Form)->pURI;
     pStream->WriteString(pURI, FXSYS_wcslen(pURI));
     CFX_WideString wsVersionNumber;
     RecognizeXFAVersionNumber(
@@ -460,7 +460,7 @@
     const CFX_RetainPtr<IFX_SeekableWriteStream>& pWrite,
     CXFA_Node* pNode,
     uint32_t dwFlag,
-    const FX_CHAR* pChecksum) {
+    const char* pChecksum) {
   ASSERT(pWrite);
   if (!pWrite)
     return false;
@@ -478,19 +478,19 @@
 bool CXFA_DataExporter::Export(const CFX_RetainPtr<IFGAS_Stream>& pStream,
                                CXFA_Node* pNode,
                                uint32_t dwFlag,
-                               const FX_CHAR* pChecksum) {
+                               const char* pChecksum) {
   CFDE_XMLDoc* pXMLDoc = m_pDocument->GetXMLDoc();
   if (pNode->IsModelNode()) {
     switch (pNode->GetPacketID()) {
       case XFA_XDPPACKET_XDP: {
-        static const FX_WCHAR s_pwsPreamble[] =
+        static const wchar_t s_pwsPreamble[] =
             L"<xdp:xdp xmlns:xdp=\"http://ns.adobe.com/xdp/\">";
         pStream->WriteString(s_pwsPreamble, FXSYS_wcslen(s_pwsPreamble));
         for (CXFA_Node* pChild = pNode->GetNodeItem(XFA_NODEITEM_FirstChild);
              pChild; pChild = pChild->GetNodeItem(XFA_NODEITEM_NextSibling)) {
           Export(pStream, pChild, dwFlag, pChecksum);
         }
-        static const FX_WCHAR s_pwsPostamble[] = L"</xdp:xdp\n>";
+        static const wchar_t s_pwsPostamble[] = L"</xdp:xdp\n>";
         pStream->WriteString(s_pwsPostamble, FXSYS_wcslen(s_pwsPostamble));
         break;
       }
diff --git a/xfa/fxfa/parser/cxfa_dataexporter.h b/xfa/fxfa/parser/cxfa_dataexporter.h
index 0e5de00..2037167 100644
--- a/xfa/fxfa/parser/cxfa_dataexporter.h
+++ b/xfa/fxfa/parser/cxfa_dataexporter.h
@@ -23,13 +23,13 @@
   bool Export(const CFX_RetainPtr<IFX_SeekableWriteStream>& pWrite,
               CXFA_Node* pNode,
               uint32_t dwFlag,
-              const FX_CHAR* pChecksum);
+              const char* pChecksum);
 
  protected:
   bool Export(const CFX_RetainPtr<IFGAS_Stream>& pStream,
               CXFA_Node* pNode,
               uint32_t dwFlag,
-              const FX_CHAR* pChecksum);
+              const char* pChecksum);
 
   CXFA_Document* const m_pDocument;
 };
diff --git a/xfa/fxfa/parser/cxfa_node.cpp b/xfa/fxfa/parser/cxfa_node.cpp
index cd6b844..086c0e9 100644
--- a/xfa/fxfa/parser/cxfa_node.cpp
+++ b/xfa/fxfa/parser/cxfa_node.cpp
@@ -350,7 +350,7 @@
 struct XFA_ExecEventParaInfo {
  public:
   uint32_t m_uHash;
-  const FX_WCHAR* m_lpcEventName;
+  const wchar_t* m_lpcEventName;
   XFA_EVENTTYPE m_eventType;
   uint32_t m_validFlags;
 };
@@ -408,11 +408,11 @@
   g = 0;
   b = 0;
 
-  FX_WCHAR zero = '0';
+  wchar_t zero = '0';
   int32_t iIndex = 0;
   int32_t iLen = strRGB.GetLength();
   for (int32_t i = 0; i < iLen; ++i) {
-    FX_WCHAR ch = strRGB.GetAt(i);
+    wchar_t ch = strRGB.GetAt(i);
     if (ch == L',')
       ++iIndex;
     if (iIndex > 2)
@@ -3949,7 +3949,7 @@
   void* pValue = nullptr;
   if (XFA_GetAttributeDefaultValue(pValue, GetElementType(), eAttr,
                                    XFA_ATTRIBUTETYPE_Cdata, m_ePacket)) {
-    wsValue = (const FX_WCHAR*)pValue;
+    wsValue = (const wchar_t*)pValue;
     return true;
   }
   return false;
@@ -3977,7 +3977,7 @@
   void* pValue = nullptr;
   if (XFA_GetAttributeDefaultValue(pValue, GetElementType(), eAttr,
                                    XFA_ATTRIBUTETYPE_Cdata, m_ePacket)) {
-    wsValue = (CFX_WideStringC)(const FX_WCHAR*)pValue;
+    wsValue = (CFX_WideStringC)(const wchar_t*)pValue;
     return true;
   }
   return false;
@@ -4898,7 +4898,7 @@
 
 void CXFA_Node::SetMapModuleString(void* pKey, const CFX_WideStringC& wsValue) {
   SetMapModuleBuffer(pKey, (void*)wsValue.c_str(),
-                     wsValue.GetLength() * sizeof(FX_WCHAR));
+                     wsValue.GetLength() * sizeof(wchar_t));
 }
 
 bool CXFA_Node::GetMapModuleString(void* pKey, CFX_WideStringC& wsValue) {
@@ -4907,7 +4907,7 @@
   if (!GetMapModuleBuffer(pKey, pValue, iBytes)) {
     return false;
   }
-  wsValue = CFX_WideStringC((const FX_WCHAR*)pValue, iBytes / sizeof(FX_WCHAR));
+  wsValue = CFX_WideStringC((const wchar_t*)pValue, iBytes / sizeof(wchar_t));
   return true;
 }
 
diff --git a/xfa/fxfa/parser/cxfa_nodehelper.cpp b/xfa/fxfa/parser/cxfa_nodehelper.cpp
index 2290892..641697d 100644
--- a/xfa/fxfa/parser/cxfa_nodehelper.cpp
+++ b/xfa/fxfa/parser/cxfa_nodehelper.cpp
@@ -25,7 +25,7 @@
 CXFA_NodeHelper::~CXFA_NodeHelper() {}
 
 CXFA_Node* CXFA_NodeHelper::ResolveNodes_GetOneChild(CXFA_Node* parent,
-                                                     const FX_WCHAR* pwsName,
+                                                     const wchar_t* pwsName,
                                                      bool bIsClassName) {
   if (!parent) {
     return nullptr;
@@ -316,7 +316,7 @@
   if (wsCondition.GetAt(0) == '[') {
     int32_t i = 1;
     for (; i < iLen; ++i) {
-      FX_WCHAR ch = wsCondition[i];
+      wchar_t ch = wsCondition[i];
       if (ch == ' ') {
         continue;
       }
diff --git a/xfa/fxfa/parser/cxfa_nodehelper.h b/xfa/fxfa/parser/cxfa_nodehelper.h
index 5097fea..1db8321 100644
--- a/xfa/fxfa/parser/cxfa_nodehelper.h
+++ b/xfa/fxfa/parser/cxfa_nodehelper.h
@@ -23,7 +23,7 @@
   ~CXFA_NodeHelper();
 
   CXFA_Node* ResolveNodes_GetOneChild(CXFA_Node* parent,
-                                      const FX_WCHAR* pwsName,
+                                      const wchar_t* pwsName,
                                       bool bIsClassName = false);
   CXFA_Node* ResolveNodes_GetParent(
       CXFA_Node* pNode,
diff --git a/xfa/fxfa/parser/cxfa_object.cpp b/xfa/fxfa/parser/cxfa_object.cpp
index c8cd354..4964265 100644
--- a/xfa/fxfa/parser/cxfa_object.cpp
+++ b/xfa/fxfa/parser/cxfa_object.cpp
@@ -63,7 +63,7 @@
   ThrowException(L"Argument mismatch in property or function argument.");
 }
 
-void CXFA_Object::ThrowException(const FX_WCHAR* str, ...) const {
+void CXFA_Object::ThrowException(const wchar_t* str, ...) const {
   CFX_WideString wsMessage;
   va_list arg_ptr;
   va_start(arg_ptr, str);
diff --git a/xfa/fxfa/parser/cxfa_resolveprocessor.cpp b/xfa/fxfa/parser/cxfa_resolveprocessor.cpp
index 3ef4e97..94fd761 100644
--- a/xfa/fxfa/parser/cxfa_resolveprocessor.cpp
+++ b/xfa/fxfa/parser/cxfa_resolveprocessor.cpp
@@ -34,7 +34,7 @@
   if (rnd.m_dwStyles & XFA_RESOLVENODE_AnyChild) {
     return ResolveAnyChild(rnd);
   }
-  FX_WCHAR wch = rnd.m_wsName.GetAt(0);
+  wchar_t wch = rnd.m_wsName.GetAt(0);
   switch (wch) {
     case '$':
       return ResolveDollar(rnd);
@@ -517,14 +517,14 @@
   }
   CFX_WideString& wsName = rnd.m_wsName;
   CFX_WideString& wsCondition = rnd.m_wsCondition;
-  FX_WCHAR* pNameBuf = wsName.GetBuffer(iLength - nStart);
-  FX_WCHAR* pConditionBuf = wsCondition.GetBuffer(iLength - nStart);
+  wchar_t* pNameBuf = wsName.GetBuffer(iLength - nStart);
+  wchar_t* pConditionBuf = wsCondition.GetBuffer(iLength - nStart);
   int32_t nNameCount = 0;
   int32_t nConditionCount = 0;
   CFX_ArrayTemplate<int32_t> stack;
   int32_t nType = -1;
-  const FX_WCHAR* pSrc = wsExpression.c_str();
-  FX_WCHAR wPrev = 0, wCur;
+  const wchar_t* pSrc = wsExpression.c_str();
+  wchar_t wPrev = 0, wCur;
   bool bIsCondition = false;
   while (nStart < iLength) {
     wCur = pSrc[nStart++];
@@ -537,7 +537,7 @@
         rnd.m_dwStyles |= XFA_RESOLVENODE_AnyChild;
         continue;
       }
-      FX_WCHAR wLookahead = nStart < iLength ? pSrc[nStart] : 0;
+      wchar_t wLookahead = nStart < iLength ? pSrc[nStart] : 0;
       if (wLookahead != '[' && wLookahead != '(') {
         if (nType < 0) {
           break;
@@ -617,7 +617,7 @@
   bool bAll = false;
   int32_t i = 1;
   for (; i < iLen; ++i) {
-    FX_WCHAR ch = wsCondition[i];
+    wchar_t ch = wsCondition[i];
     if (ch == ' ') {
       continue;
     }
@@ -746,7 +746,7 @@
       return;
     }
   }
-  FX_WCHAR wTypeChar = wsCondition[0];
+  wchar_t wTypeChar = wsCondition[0];
   switch (wTypeChar) {
     case '[':
       ConditionArray(iCurrIndex, wsCondition, iFoundCount, rnd);
diff --git a/xfa/fxfa/parser/cxfa_widetextread.cpp b/xfa/fxfa/parser/cxfa_widetextread.cpp
index 34fa6b9..bba7cbd 100644
--- a/xfa/fxfa/parser/cxfa_widetextread.cpp
+++ b/xfa/fxfa/parser/cxfa_widetextread.cpp
@@ -21,7 +21,7 @@
 }
 
 int32_t CXFA_WideTextRead::GetLength() const {
-  return m_wsBuffer.GetLength() * sizeof(FX_WCHAR);
+  return m_wsBuffer.GetLength() * sizeof(wchar_t);
 }
 
 int32_t CXFA_WideTextRead::Seek(FX_STREAMSEEK eSeek, int32_t iOffset) {
@@ -41,7 +41,7 @@
 }
 
 int32_t CXFA_WideTextRead::GetPosition() {
-  return m_iPosition * sizeof(FX_WCHAR);
+  return m_iPosition * sizeof(wchar_t);
 }
 
 bool CXFA_WideTextRead::IsEOF() const {
@@ -52,7 +52,7 @@
   return 0;
 }
 
-int32_t CXFA_WideTextRead::ReadString(FX_WCHAR* pStr,
+int32_t CXFA_WideTextRead::ReadString(wchar_t* pStr,
                                       int32_t iMaxLength,
                                       bool& bEOS) {
   iMaxLength = std::min(iMaxLength, m_wsBuffer.GetLength() - m_iPosition);
@@ -70,7 +70,7 @@
   return 0;
 }
 
-int32_t CXFA_WideTextRead::WriteString(const FX_WCHAR* pStr, int32_t iLength) {
+int32_t CXFA_WideTextRead::WriteString(const wchar_t* pStr, int32_t iLength) {
   return 0;
 }
 
@@ -83,7 +83,7 @@
 }
 
 uint16_t CXFA_WideTextRead::GetCodePage() const {
-  return (sizeof(FX_WCHAR) == 2) ? FX_CODEPAGE_UTF16LE : FX_CODEPAGE_UTF32LE;
+  return (sizeof(wchar_t) == 2) ? FX_CODEPAGE_UTF16LE : FX_CODEPAGE_UTF32LE;
 }
 
 uint16_t CXFA_WideTextRead::SetCodePage(uint16_t wCodePage) {
diff --git a/xfa/fxfa/parser/cxfa_widetextread.h b/xfa/fxfa/parser/cxfa_widetextread.h
index 2ccb042..6c4a97f 100644
--- a/xfa/fxfa/parser/cxfa_widetextread.h
+++ b/xfa/fxfa/parser/cxfa_widetextread.h
@@ -22,9 +22,9 @@
   int32_t GetPosition() override;
   bool IsEOF() const override;
   int32_t ReadData(uint8_t* pBuffer, int32_t iBufferSize) override;
-  int32_t ReadString(FX_WCHAR* pStr, int32_t iMaxLength, bool& bEOS) override;
+  int32_t ReadString(wchar_t* pStr, int32_t iMaxLength, bool& bEOS) override;
   int32_t WriteData(const uint8_t* pBuffer, int32_t iBufferSize) override;
-  int32_t WriteString(const FX_WCHAR* pStr, int32_t iLength) override;
+  int32_t WriteString(const wchar_t* pStr, int32_t iLength) override;
   void Flush() override {}
   bool SetLength(int32_t iLength) override;
   int32_t GetBOM(uint8_t bom[4]) const override;
diff --git a/xfa/fxfa/parser/cxfa_widgetdata.cpp b/xfa/fxfa/parser/cxfa_widgetdata.cpp
index d3533c2..ca0303d 100644
--- a/xfa/fxfa/parser/cxfa_widgetdata.cpp
+++ b/xfa/fxfa/parser/cxfa_widgetdata.cpp
@@ -225,7 +225,7 @@
   void* pValue;
   if (XFA_GetAttributeDefaultValue(pValue, eElement, eAttribute,
                                    XFA_ATTRIBUTETYPE_Cdata, dwPacket)) {
-    return (const FX_WCHAR*)pValue;
+    return (const wchar_t*)pValue;
   }
   return nullptr;
 }
@@ -1292,24 +1292,24 @@
   return false;
 }
 
-bool CXFA_WidgetData::GetBarcodeAttribute_StartChar(FX_CHAR& val) {
+bool CXFA_WidgetData::GetBarcodeAttribute_StartChar(char& val) {
   CXFA_Node* pUIChild = GetUIChild();
   CFX_WideStringC wsStartEndChar;
   if (pUIChild->TryCData(XFA_ATTRIBUTE_StartChar, wsStartEndChar)) {
     if (wsStartEndChar.GetLength()) {
-      val = (FX_CHAR)wsStartEndChar.GetAt(0);
+      val = (char)wsStartEndChar.GetAt(0);
       return true;
     }
   }
   return false;
 }
 
-bool CXFA_WidgetData::GetBarcodeAttribute_EndChar(FX_CHAR& val) {
+bool CXFA_WidgetData::GetBarcodeAttribute_EndChar(char& val) {
   CXFA_Node* pUIChild = GetUIChild();
   CFX_WideStringC wsStartEndChar;
   if (pUIChild->TryCData(XFA_ATTRIBUTE_EndChar, wsStartEndChar)) {
     if (wsStartEndChar.GetLength()) {
-      val = (FX_CHAR)wsStartEndChar.GetAt(0);
+      val = (char)wsStartEndChar.GetAt(0);
       return true;
     }
   }
@@ -1919,7 +1919,7 @@
     i++;
   }
   for (; i < iCount; i++) {
-    FX_WCHAR wc = wsValue[i];
+    wchar_t wc = wsValue[i];
     if (FXSYS_isDecimalDigit(wc)) {
       if (iLead >= 0) {
         iLead_++;
diff --git a/xfa/fxfa/parser/cxfa_widgetdata.h b/xfa/fxfa/parser/cxfa_widgetdata.h
index 4f5db3b..3eca270 100644
--- a/xfa/fxfa/parser/cxfa_widgetdata.h
+++ b/xfa/fxfa/parser/cxfa_widgetdata.h
@@ -140,8 +140,8 @@
   bool GetBarcodeAttribute_CharEncoding(int32_t& val);
   bool GetBarcodeAttribute_Checksum(bool& val);
   bool GetBarcodeAttribute_DataLength(int32_t& val);
-  bool GetBarcodeAttribute_StartChar(FX_CHAR& val);
-  bool GetBarcodeAttribute_EndChar(FX_CHAR& val);
+  bool GetBarcodeAttribute_StartChar(char& val);
+  bool GetBarcodeAttribute_EndChar(char& val);
   bool GetBarcodeAttribute_ECLevel(int32_t& val);
   bool GetBarcodeAttribute_ModuleWidth(int32_t& val);
   bool GetBarcodeAttribute_ModuleHeight(int32_t& val);
diff --git a/xfa/fxfa/parser/xfa_layout_itemlayout.cpp b/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
index dd04668..193ffdd 100644
--- a/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
+++ b/xfa/fxfa/parser/xfa_layout_itemlayout.cpp
@@ -26,17 +26,17 @@
 
 namespace {
 
-std::vector<CFX_WideString> SeparateStringW(const FX_WCHAR* pStr,
+std::vector<CFX_WideString> SeparateStringW(const wchar_t* pStr,
                                             int32_t iStrLen,
-                                            FX_WCHAR delimiter) {
+                                            wchar_t delimiter) {
   std::vector<CFX_WideString> ret;
   if (!pStr)
     return ret;
   if (iStrLen < 0)
     iStrLen = FXSYS_wcslen(pStr);
 
-  const FX_WCHAR* pToken = pStr;
-  const FX_WCHAR* pEnd = pStr + iStrLen;
+  const wchar_t* pToken = pStr;
+  const wchar_t* pEnd = pStr + iStrLen;
   while (true) {
     if (pStr >= pEnd || delimiter == *pStr) {
       ret.push_back(CFX_WideString(pToken, pStr - pToken));
diff --git a/xfa/fxfa/parser/xfa_locale.cpp b/xfa/fxfa/parser/xfa_locale.cpp
index d835eb2..a9ddbce 100644
--- a/xfa/fxfa/parser/xfa_locale.cpp
+++ b/xfa/fxfa/parser/xfa_locale.cpp
@@ -14,10 +14,10 @@
 #include "xfa/fxfa/parser/xfa_object.h"
 #include "xfa/fxfa/parser/xfa_utils.h"
 
-static const FX_WCHAR g_FX_Percent[] = L"z,zzz,zzz,zzz,zzz,zzz%";
-static const FX_WCHAR g_FX_Currency[] = L"$z,zzz,zzz,zzz,zzz,zz9.99";
-static const FX_WCHAR g_FX_Decimal[] = L"z,zzz,zzz,zzz,zzz,zz9.zzz";
-static const FX_WCHAR g_FX_Integer[] = L"z,zzz,zzz,zzz,zzz,zzz";
+static const wchar_t g_FX_Percent[] = L"z,zzz,zzz,zzz,zzz,zzz%";
+static const wchar_t g_FX_Currency[] = L"$z,zzz,zzz,zzz,zzz,zz9.99";
+static const wchar_t g_FX_Decimal[] = L"z,zzz,zzz,zzz,zzz,zz9.zzz";
+static const wchar_t g_FX_Integer[] = L"z,zzz,zzz,zzz,zzz,zzz";
 
 CXFA_XMLLocale::CXFA_XMLLocale(std::unique_ptr<CXML_Element> pLocaleData)
     : m_pLocaleData(std::move(pLocaleData)) {}
diff --git a/xfa/fxfa/parser/xfa_localevalue.cpp b/xfa/fxfa/parser/xfa_localevalue.cpp
index 7e92535..6dd02e6 100644
--- a/xfa/fxfa/parser/xfa_localevalue.cpp
+++ b/xfa/fxfa/parser/xfa_localevalue.cpp
@@ -218,7 +218,7 @@
     int32_t nExponent = 0;
     int cc = 0;
     bool bNegative = false, bExpSign = false;
-    const FX_WCHAR* str = m_wsValue.c_str();
+    const wchar_t* str = m_wsValue.c_str();
     int len = m_wsValue.GetLength();
     while (FXSYS_iswspace(str[cc]) && cc < len) {
       cc++;
@@ -294,7 +294,7 @@
     int32_t nExponent = 0;
     int32_t cc = 0;
     bool bNegative = false, bExpSign = false;
-    const FX_WCHAR* str = m_wsValue.c_str();
+    const wchar_t* str = m_wsValue.c_str();
     int len = m_wsValue.GetLength();
     while (FXSYS_iswspace(str[cc]) && cc < len) {
       cc++;
@@ -605,7 +605,7 @@
   uint16_t wYear = 0;
   uint16_t wMonth = 0;
   uint16_t wDay = 0;
-  const FX_WCHAR* pDate = wsDate.c_str();
+  const wchar_t* pDate = wsDate.c_str();
   int nIndex = 0, nStart = 0;
   while (pDate[nIndex] != '\0' && nIndex < wCountY) {
     if (!FXSYS_isDecimalDigit(pDate[nIndex])) {
@@ -691,7 +691,7 @@
   uint16_t wMinute = 0;
   uint16_t wSecond = 0;
   uint16_t wFraction = 0;
-  const FX_WCHAR* pTime = wsTime.c_str();
+  const wchar_t* pTime = wsTime.c_str();
   int nIndex = 0;
   int nStart = 0;
   while (nIndex - nStart < wCountH && pTime[nIndex]) {
@@ -880,7 +880,7 @@
   ASSERT(nIntLen >= -1 && nDecLen >= -1);
   int32_t nTotalLen = (nIntLen >= 0 ? nIntLen : 2) + (bSign ? 1 : 0) +
                       (nDecLen >= 0 ? nDecLen : 2) + (nDecLen == 0 ? 0 : 1);
-  FX_WCHAR* lpBuf = wsFormat.GetBuffer(nTotalLen);
+  wchar_t* lpBuf = wsFormat.GetBuffer(nTotalLen);
   int32_t nPos = 0;
   if (bSign) {
     lpBuf[nPos++] = L's';
@@ -915,11 +915,11 @@
   if (wsFormat.IsEmpty() || wsNumeric.IsEmpty()) {
     return true;
   }
-  const FX_WCHAR* pNum = wsNumeric.c_str();
-  const FX_WCHAR* pFmt = wsFormat.c_str();
+  const wchar_t* pNum = wsNumeric.c_str();
+  const wchar_t* pFmt = wsFormat.c_str();
   int32_t n = 0, nf = 0;
-  FX_WCHAR c = pNum[n];
-  FX_WCHAR cf = pFmt[nf];
+  wchar_t c = pNum[n];
+  wchar_t cf = pFmt[nf];
   if (cf == L's') {
     if (c == L'-' || c == L'+') {
       ++n;
diff --git a/xfa/fxfa/parser/xfa_object.h b/xfa/fxfa/parser/xfa_object.h
index e4f7ab2..2300cc2 100644
--- a/xfa/fxfa/parser/xfa_object.h
+++ b/xfa/fxfa/parser/xfa_object.h
@@ -98,7 +98,7 @@
   void ThrowParamCountMismatchException(const CFX_WideString& method) const;
 
  protected:
-  void ThrowException(const FX_WCHAR* str, ...) const;
+  void ThrowException(const wchar_t* str, ...) const;
 
   CXFA_Document* const m_pDocument;
   const XFA_ObjectType m_objectType;
diff --git a/xfa/fxfa/parser/xfa_utils.cpp b/xfa/fxfa/parser/xfa_utils.cpp
index 216c5a5..ef7e939 100644
--- a/xfa/fxfa/parser/xfa_utils.cpp
+++ b/xfa/fxfa/parser/xfa_utils.cpp
@@ -44,7 +44,7 @@
   int32_t cc = 0;
   bool bNegative = false;
   bool bExpSign = false;
-  const FX_WCHAR* str = wsValue.c_str();
+  const wchar_t* str = wsValue.c_str();
   int32_t len = wsValue.GetLength();
   if (str[0] == '+') {
     cc++;
diff --git a/xfa/fxfa/parser/xfa_utils.h b/xfa/fxfa/parser/xfa_utils.h
index 3e95612..a5bdeea 100644
--- a/xfa/fxfa/parser/xfa_utils.h
+++ b/xfa/fxfa/parser/xfa_utils.h
@@ -154,7 +154,7 @@
 void XFA_DataExporter_RegenerateFormFile(
     CXFA_Node* pNode,
     const CFX_RetainPtr<IFGAS_Stream>& pStream,
-    const FX_CHAR* pChecksum = nullptr,
+    const char* pChecksum = nullptr,
     bool bSaveXML = false);
 
 const XFA_NOTSUREATTRIBUTE* XFA_GetNotsureAttribute(
diff --git a/xfa/fxfa/xfa_ffwidget.h b/xfa/fxfa/xfa_ffwidget.h
index 5972b8a..5345bc4 100644
--- a/xfa/fxfa/xfa_ffwidget.h
+++ b/xfa/fxfa/xfa_ffwidget.h
@@ -173,7 +173,7 @@
     int32_t& iImageYDpi);
 
 FXCODEC_IMAGE_TYPE XFA_GetImageType(const CFX_WideString& wsType);
-FX_CHAR* XFA_Base64Encode(const uint8_t* buf, int32_t buf_len);
+char* XFA_Base64Encode(const uint8_t* buf, int32_t buf_len);
 void XFA_RectWidthoutMargin(CFX_RectF& rt,
                             const CXFA_Margin& mg,
                             bool bUI = false);
diff --git a/xfa/fxfa/xfa_fontmgr.h b/xfa/fxfa/xfa_fontmgr.h
index f00b069..b3ed8ab 100644
--- a/xfa/fxfa/xfa_fontmgr.h
+++ b/xfa/fxfa/xfa_fontmgr.h
@@ -21,8 +21,8 @@
 
 struct XFA_FONTINFO {
   uint32_t dwFontNameHash;
-  const FX_WCHAR* pPsName;
-  const FX_WCHAR* pReplaceFont;
+  const wchar_t* pPsName;
+  const wchar_t* pReplaceFont;
   uint16_t dwStyles;
   uint16_t wCodePage;
 };
@@ -56,7 +56,7 @@
                                       CPDF_Font** pPDFFont,
                                       bool bStrictMatch);
   bool GetCharWidth(const CFX_RetainPtr<CFGAS_GEFont>& pFont,
-                    FX_WCHAR wUnicode,
+                    wchar_t wUnicode,
                     bool bCharCode,
                     int32_t* pWidth);
   void SetFont(const CFX_RetainPtr<CFGAS_GEFont>& pFont, CPDF_Font* pPDFFont);