Merge to Master: War on #defines - part 2

Original Review URL: https://codereview.chromium.org/1634123004 .
(cherry picked from commit f10ae634e7b198b18942baaf9f111f07cc8ce818)

R=thestig@chromium.org
TBR=thestig@chromium.org

Review URL: https://codereview.chromium.org/1640473002 .
diff --git a/core/include/fpdfapi/fpdf_parser.h b/core/include/fpdfapi/fpdf_parser.h
index f0b50f8..294c0c5 100644
--- a/core/include/fpdfapi/fpdf_parser.h
+++ b/core/include/fpdfapi/fpdf_parser.h
@@ -328,52 +328,40 @@
                           FX_DWORD gennum);
 
   FX_FILESIZE m_Pos;
-
   int m_MetadataObjnum;
-
   IFX_FileRead* m_pFileAccess;
-
   FX_DWORD m_HeaderOffset;
-
   FX_FILESIZE m_FileLen;
-
   uint8_t* m_pFileBuf;
-
   FX_DWORD m_BufSize;
-
   FX_FILESIZE m_BufOffset;
-
   std::unique_ptr<CPDF_CryptoHandler> m_pCryptoHandler;
-
   uint8_t m_WordBuffer[257];
-
   FX_DWORD m_WordSize;
 };
 
-#define PDFPARSE_ERROR_SUCCESS 0
-#define PDFPARSE_ERROR_FILE 1
-#define PDFPARSE_ERROR_FORMAT 2
-#define PDFPARSE_ERROR_PASSWORD 3
-#define PDFPARSE_ERROR_HANDLER 4
-#define PDFPARSE_ERROR_CERT 5
-
 class CPDF_Parser {
  public:
+  enum Error {
+    SUCCESS = 0,
+    FILE_ERROR,
+    FORMAT_ERROR,
+    PASSWORD_ERROR,
+    HANDLER_ERROR
+  };
+
   CPDF_Parser();
   ~CPDF_Parser();
 
-  FX_DWORD StartParse(IFX_FileRead* pFile,
-                      FX_BOOL bReParse = FALSE,
-                      FX_BOOL bOwnFileRead = TRUE);
-
+  Error StartParse(IFX_FileRead* pFile,
+                   FX_BOOL bReParse = FALSE,
+                   FX_BOOL bOwnFileRead = TRUE);
   void CloseParser(FX_BOOL bReParse = FALSE);
 
   FX_DWORD GetPermissions(FX_BOOL bCheckRevision = FALSE);
-
   FX_BOOL IsOwner();
 
   void SetPassword(const FX_CHAR* password) { m_Password = password; }
-
   CFX_ByteString GetPassword() { return m_Password; }
 
   CPDF_CryptoHandler* GetCryptoHandler() {
@@ -383,17 +371,15 @@
   void SetSecurityHandler(CPDF_SecurityHandler* pSecurityHandler,
                           FX_BOOL bForced = FALSE);
 
-  CPDF_Dictionary* GetTrailer() { return m_pTrailer; }
-
-  FX_FILESIZE GetLastXRefOffset() { return m_LastXRefOffset; }
-
-  CPDF_Document* GetDocument() { return m_pDocument; }
+  CPDF_Dictionary* GetTrailer() const { return m_pTrailer; }
+  FX_FILESIZE GetLastXRefOffset() const { return m_LastXRefOffset; }
+  CPDF_Document* GetDocument() const { return m_pDocument; }
 
   FX_DWORD GetRootObjNum();
   FX_DWORD GetInfoObjNum();
   CPDF_Array* GetIDArray();
 
-  CPDF_Dictionary* GetEncryptDict() { return m_pEncryptDict; }
+  CPDF_Dictionary* GetEncryptDict() const { return m_pEncryptDict; }
 
   CPDF_Object* ParseIndirectObject(CPDF_IndirectObjectHolder* pObjList,
                                    FX_DWORD objnum);
@@ -403,16 +389,13 @@
   FX_BOOL IsFormStream(FX_DWORD objnum, FX_BOOL& bForm);
 
   FX_FILESIZE GetObjectOffset(FX_DWORD objnum) const;
-
   FX_FILESIZE GetObjectSize(FX_DWORD objnum) const;
 
   void GetIndirectBinary(FX_DWORD objnum, uint8_t*& pBuffer, FX_DWORD& size);
-
   IFX_FileRead* GetFileAccess() const { return m_Syntax.m_pFileAccess; }
-
   int GetFileVersion() const { return m_FileVersion; }
-
   FX_BOOL IsXRefStream() const { return m_bXRefStream; }
+
   CPDF_Object* ParseIndirectObjectAt(CPDF_IndirectObjectHolder* pObjList,
                                      FX_FILESIZE pos,
                                      FX_DWORD objnum);
@@ -423,72 +406,45 @@
       FX_DWORD objnum,
       FX_FILESIZE* pResultPos);
 
-  FX_DWORD StartAsynParse(IFX_FileRead* pFile,
-                          FX_BOOL bReParse = FALSE,
-                          FX_BOOL bOwnFileRead = TRUE);
+  Error StartAsynParse(IFX_FileRead* pFile,
+                       FX_BOOL bReParse = FALSE,
+                       FX_BOOL bOwnFileRead = TRUE);
 
-  FX_DWORD GetFirstPageNo() { return m_dwFirstPageNo; }
+  FX_DWORD GetFirstPageNo() const { return m_dwFirstPageNo; }
 
  protected:
   CPDF_Object* ParseDirect(CPDF_Object* pObj);
-
   FX_BOOL LoadAllCrossRefV4(FX_FILESIZE pos);
-
   FX_BOOL LoadAllCrossRefV5(FX_FILESIZE pos);
-
   bool LoadCrossRefV4(FX_FILESIZE pos, FX_FILESIZE streampos, FX_BOOL bSkip);
-
   FX_BOOL LoadCrossRefV5(FX_FILESIZE* pos, FX_BOOL bMainXRef);
-
   CPDF_Dictionary* LoadTrailerV4();
-
   FX_BOOL RebuildCrossRef();
-
-  FX_DWORD SetEncryptHandler();
-
+  Error SetEncryptHandler();
   void ReleaseEncryptHandler();
-
   FX_BOOL LoadLinearizedAllCrossRefV4(FX_FILESIZE pos, FX_DWORD dwObjCount);
-
   FX_BOOL LoadLinearizedCrossRefV4(FX_FILESIZE pos, FX_DWORD dwObjCount);
-
   FX_BOOL LoadLinearizedAllCrossRefV5(FX_FILESIZE pos);
-
-  FX_DWORD LoadLinearizedMainXRefTable();
-
+  Error LoadLinearizedMainXRefTable();
   CPDF_StreamAcc* GetObjectStream(FX_DWORD number);
-
   FX_BOOL IsLinearizedFile(IFX_FileRead* pFileAccess, FX_DWORD offset);
-
   bool FindPosInOffsets(FX_FILESIZE pos) const;
-
   void SetEncryptDictionary(CPDF_Dictionary* pDict);
-
   FX_FILESIZE GetObjectPositionOrZero(FX_DWORD objnum) const;
   void ShrinkObjectMap(FX_DWORD size);
 
   CPDF_Document* m_pDocument;
-
   CPDF_SyntaxParser m_Syntax;
   FX_BOOL m_bOwnFileRead;
   int m_FileVersion;
-
   CPDF_Dictionary* m_pTrailer;
-
   CPDF_Dictionary* m_pEncryptDict;
-
   FX_FILESIZE m_LastXRefOffset;
-
   FX_BOOL m_bXRefStream;
-
   std::unique_ptr<CPDF_SecurityHandler> m_pSecurityHandler;
-
   FX_BOOL m_bForceUseSecurityHandler;
-
   CFX_ByteString m_bsRecipient;
-
   CFX_ByteString m_FilePath;
-
   CFX_ByteString m_Password;
 
   struct ObjectInfo {
@@ -505,17 +461,11 @@
 
   CFX_ByteArray m_V5Type;
   CFX_WordArray m_ObjVersion;
-
   CFX_FileSizeArray m_SortedOffset;
-
   CFX_ArrayTemplate<CPDF_Dictionary*> m_Trailers;
-
   FX_BOOL m_bVersionUpdated;
-
   CPDF_Object* m_pLinearized;
-
   FX_DWORD m_dwFirstPageNo;
-
   FX_DWORD m_dwXrefStartObjNum;
 
   // A map of object numbers to indirect streams. Map owns the streams.
@@ -667,6 +617,9 @@
 
   int m_KeyLen;
 };
+
+CPDF_SecurityHandler* FPDF_CreateStandardSecurityHandler();
+
 class CPDF_CryptoHandler {
  public:
   virtual ~CPDF_CryptoHandler() {}
diff --git a/core/include/fpdfdoc/fpdf_ap.h b/core/include/fpdfdoc/fpdf_ap.h
index 6d0478c..510b39c 100644
--- a/core/include/fpdfdoc/fpdf_ap.h
+++ b/core/include/fpdfdoc/fpdf_ap.h
@@ -16,22 +16,20 @@
   virtual CPDF_Font* GetPDFFont(int32_t nFontIndex) = 0;
   virtual CFX_ByteString GetPDFFontAlias(int32_t nFontIndex) = 0;
 };
+
 struct CPVT_Dash {
   CPVT_Dash(int32_t dash, int32_t gap, int32_t phase)
       : nDash(dash), nGap(gap), nPhase(phase) {}
 
   int32_t nDash;
-
   int32_t nGap;
-
   int32_t nPhase;
 };
-#define CT_TRANSPARENT 0
-#define CT_GRAY 1
-#define CT_RGB 2
-#define CT_CMYK 3
+
 struct CPVT_Color {
-  CPVT_Color(int32_t type = 0,
+  enum Type { kTransparent = 0, kGray, kRGB, kCMYK };
+
+  CPVT_Color(Type type = kTransparent,
              FX_FLOAT color1 = 0.0f,
              FX_FLOAT color2 = 0.0f,
              FX_FLOAT color3 = 0.0f,
@@ -42,12 +40,13 @@
         fColor3(color3),
         fColor4(color4) {}
 
-  int32_t nColorType;
+  Type nColorType;
   FX_FLOAT fColor1;
   FX_FLOAT fColor2;
   FX_FLOAT fColor3;
   FX_FLOAT fColor4;
 };
+
 class CPVT_Provider : public IPDF_VariableText_Provider {
  public:
   CPVT_Provider(IPVT_FontMap* pFontMap);
@@ -68,11 +67,7 @@
  private:
   IPVT_FontMap* m_pFontMap;
 };
-#define PBS_SOLID 0
-#define PBS_DASH 1
-#define PBS_BEVELED 2
-#define PBS_INSET 3
-#define PBS_UNDERLINED 4
+
 class CPVT_GenerateAP {
  public:
   static FX_BOOL GenerateTextFieldAP(CPDF_Document* pDoc,
diff --git a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
index 8c2bad4..a62018d 100644
--- a/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
+++ b/core/src/fpdfapi/fpdf_parser/fpdf_parser_parser.cpp
@@ -179,11 +179,10 @@
     m_pLinearized = NULL;
   }
 }
-CPDF_SecurityHandler* FPDF_CreateStandardSecurityHandler();
-CPDF_SecurityHandler* FPDF_CreatePubKeyHandler(void*);
-FX_DWORD CPDF_Parser::StartParse(IFX_FileRead* pFileAccess,
-                                 FX_BOOL bReParse,
-                                 FX_BOOL bOwnFileRead) {
+
+CPDF_Parser::Error CPDF_Parser::StartParse(IFX_FileRead* pFileAccess,
+                                           FX_BOOL bReParse,
+                                           FX_BOOL bOwnFileRead) {
   CloseParser(bReParse);
   m_bXRefStream = FALSE;
   m_LastXRefOffset = 0;
@@ -193,23 +192,23 @@
   if (offset == -1) {
     if (bOwnFileRead && pFileAccess)
       pFileAccess->Release();
-    return PDFPARSE_ERROR_FORMAT;
+    return FORMAT_ERROR;
   }
   m_Syntax.InitParser(pFileAccess, offset);
 
   uint8_t ch;
   if (!m_Syntax.GetCharAt(5, ch))
-    return PDFPARSE_ERROR_FORMAT;
+    return FORMAT_ERROR;
   if (std::isdigit(ch))
     m_FileVersion = FXSYS_toDecimalDigit(ch) * 10;
 
   if (!m_Syntax.GetCharAt(7, ch))
-    return PDFPARSE_ERROR_FORMAT;
+    return FORMAT_ERROR;
   if (std::isdigit(ch))
     m_FileVersion += FXSYS_toDecimalDigit(ch);
 
   if (m_Syntax.m_FileLen < m_Syntax.m_HeaderOffset + 9)
-    return PDFPARSE_ERROR_FORMAT;
+    return FORMAT_ERROR;
 
   m_Syntax.RestorePos(m_Syntax.m_FileLen - m_Syntax.m_HeaderOffset - 9);
   if (!bReParse)
@@ -228,54 +227,54 @@
     bool bNumber;
     CFX_ByteString xrefpos_str = m_Syntax.GetNextWord(&bNumber);
     if (!bNumber)
-      return PDFPARSE_ERROR_FORMAT;
+      return FORMAT_ERROR;
 
     m_LastXRefOffset = (FX_FILESIZE)FXSYS_atoi64(xrefpos_str);
     if (!LoadAllCrossRefV4(m_LastXRefOffset) &&
         !LoadAllCrossRefV5(m_LastXRefOffset)) {
       if (!RebuildCrossRef())
-        return PDFPARSE_ERROR_FORMAT;
+        return FORMAT_ERROR;
 
       bXRefRebuilt = TRUE;
       m_LastXRefOffset = 0;
     }
   } else {
     if (!RebuildCrossRef())
-      return PDFPARSE_ERROR_FORMAT;
+      return FORMAT_ERROR;
 
     bXRefRebuilt = TRUE;
   }
-  FX_DWORD dwRet = SetEncryptHandler();
-  if (dwRet != PDFPARSE_ERROR_SUCCESS)
-    return dwRet;
+  Error eRet = SetEncryptHandler();
+  if (eRet != SUCCESS)
+    return eRet;
 
   m_pDocument->LoadDoc();
   if (!m_pDocument->GetRoot() || m_pDocument->GetPageCount() == 0) {
     if (bXRefRebuilt)
-      return PDFPARSE_ERROR_FORMAT;
+      return FORMAT_ERROR;
 
     ReleaseEncryptHandler();
     if (!RebuildCrossRef())
-      return PDFPARSE_ERROR_FORMAT;
+      return FORMAT_ERROR;
 
-    dwRet = SetEncryptHandler();
-    if (dwRet != PDFPARSE_ERROR_SUCCESS)
-      return dwRet;
+    eRet = SetEncryptHandler();
+    if (eRet != SUCCESS)
+      return eRet;
 
     m_pDocument->LoadDoc();
     if (!m_pDocument->GetRoot())
-      return PDFPARSE_ERROR_FORMAT;
+      return FORMAT_ERROR;
   }
   FXSYS_qsort(m_SortedOffset.GetData(), m_SortedOffset.GetSize(),
               sizeof(FX_FILESIZE), CompareFileSize);
   if (GetRootObjNum() == 0) {
     ReleaseEncryptHandler();
     if (!RebuildCrossRef() || GetRootObjNum() == 0)
-      return PDFPARSE_ERROR_FORMAT;
+      return FORMAT_ERROR;
 
-    dwRet = SetEncryptHandler();
-    if (dwRet != PDFPARSE_ERROR_SUCCESS)
-      return dwRet;
+    eRet = SetEncryptHandler();
+    if (eRet != SUCCESS)
+      return eRet;
   }
   if (m_pSecurityHandler && !m_pSecurityHandler->IsMetadataEncrypted()) {
     CPDF_Reference* pMetadata =
@@ -283,13 +282,13 @@
     if (pMetadata)
       m_Syntax.m_MetadataObjnum = pMetadata->GetRefObjNum();
   }
-  return PDFPARSE_ERROR_SUCCESS;
+  return SUCCESS;
 }
-FX_DWORD CPDF_Parser::SetEncryptHandler() {
+CPDF_Parser::Error CPDF_Parser::SetEncryptHandler() {
   ReleaseEncryptHandler();
   SetEncryptDictionary(NULL);
   if (!m_pTrailer) {
-    return PDFPARSE_ERROR_FORMAT;
+    return FORMAT_ERROR;
   }
   CPDF_Object* pEncryptObj = m_pTrailer->GetElement("Encrypt");
   if (pEncryptObj) {
@@ -302,29 +301,28 @@
     }
   }
   if (m_bForceUseSecurityHandler) {
-    FX_DWORD err = PDFPARSE_ERROR_HANDLER;
     if (!m_pSecurityHandler) {
-      return PDFPARSE_ERROR_HANDLER;
+      return HANDLER_ERROR;
     }
     if (!m_pSecurityHandler->OnInit(this, m_pEncryptDict)) {
-      return err;
+      return HANDLER_ERROR;
     }
     std::unique_ptr<CPDF_CryptoHandler> pCryptoHandler(
         m_pSecurityHandler->CreateCryptoHandler());
     if (!pCryptoHandler->Init(m_pEncryptDict, m_pSecurityHandler.get())) {
-      return PDFPARSE_ERROR_HANDLER;
+      return HANDLER_ERROR;
     }
     m_Syntax.SetEncrypt(pCryptoHandler.release());
   } else if (m_pEncryptDict) {
     CFX_ByteString filter = m_pEncryptDict->GetString("Filter");
     std::unique_ptr<CPDF_SecurityHandler> pSecurityHandler;
-    FX_DWORD err = PDFPARSE_ERROR_HANDLER;
+    Error err = HANDLER_ERROR;
     if (filter == "Standard") {
       pSecurityHandler.reset(FPDF_CreateStandardSecurityHandler());
-      err = PDFPARSE_ERROR_PASSWORD;
+      err = PASSWORD_ERROR;
     }
     if (!pSecurityHandler) {
-      return PDFPARSE_ERROR_HANDLER;
+      return HANDLER_ERROR;
     }
     if (!pSecurityHandler->OnInit(this, m_pEncryptDict)) {
       return err;
@@ -333,11 +331,11 @@
     std::unique_ptr<CPDF_CryptoHandler> pCryptoHandler(
         m_pSecurityHandler->CreateCryptoHandler());
     if (!pCryptoHandler->Init(m_pEncryptDict, m_pSecurityHandler.get())) {
-      return PDFPARSE_ERROR_HANDLER;
+      return HANDLER_ERROR;
     }
     m_Syntax.SetEncrypt(pCryptoHandler.release());
   }
-  return PDFPARSE_ERROR_SUCCESS;
+  return SUCCESS;
 }
 void CPDF_Parser::ReleaseEncryptHandler() {
   m_Syntax.m_pCryptoHandler.reset();
@@ -1562,16 +1560,16 @@
   m_pLinearized = NULL;
   return FALSE;
 }
-FX_DWORD CPDF_Parser::StartAsynParse(IFX_FileRead* pFileAccess,
-                                     FX_BOOL bReParse,
-                                     FX_BOOL bOwnFileRead) {
+CPDF_Parser::Error CPDF_Parser::StartAsynParse(IFX_FileRead* pFileAccess,
+                                               FX_BOOL bReParse,
+                                               FX_BOOL bOwnFileRead) {
   CloseParser(bReParse);
   m_bXRefStream = FALSE;
   m_LastXRefOffset = 0;
   m_bOwnFileRead = bOwnFileRead;
   int32_t offset = GetHeaderOffset(pFileAccess);
   if (offset == -1) {
-    return PDFPARSE_ERROR_FORMAT;
+    return FORMAT_ERROR;
   }
   if (!IsLinearizedFile(pFileAccess, offset)) {
     m_Syntax.m_pFileAccess = NULL;
@@ -1586,7 +1584,7 @@
   if (!(bLoadV4 = LoadCrossRefV4(dwFirstXRefOffset, 0, FALSE)) &&
       !LoadCrossRefV5(&dwFirstXRefOffset, TRUE)) {
     if (!RebuildCrossRef()) {
-      return PDFPARSE_ERROR_FORMAT;
+      return FORMAT_ERROR;
     }
     bXRefRebuilt = TRUE;
     m_LastXRefOffset = 0;
@@ -1594,7 +1592,7 @@
   if (bLoadV4) {
     m_pTrailer = LoadTrailerV4();
     if (!m_pTrailer) {
-      return PDFPARSE_ERROR_SUCCESS;
+      return SUCCESS;
     }
 
     int32_t xrefsize = GetDirectInteger(m_pTrailer, "Size");
@@ -1603,26 +1601,26 @@
       m_V5Type.SetSize(xrefsize);
     }
   }
-  FX_DWORD dwRet = SetEncryptHandler();
-  if (dwRet != PDFPARSE_ERROR_SUCCESS) {
-    return dwRet;
+  Error eRet = SetEncryptHandler();
+  if (eRet != SUCCESS) {
+    return eRet;
   }
   m_pDocument->LoadAsynDoc(m_pLinearized->GetDict());
   if (!m_pDocument->GetRoot() || m_pDocument->GetPageCount() == 0) {
     if (bXRefRebuilt) {
-      return PDFPARSE_ERROR_FORMAT;
+      return FORMAT_ERROR;
     }
     ReleaseEncryptHandler();
     if (!RebuildCrossRef()) {
-      return PDFPARSE_ERROR_FORMAT;
+      return FORMAT_ERROR;
     }
-    dwRet = SetEncryptHandler();
-    if (dwRet != PDFPARSE_ERROR_SUCCESS) {
-      return dwRet;
+    eRet = SetEncryptHandler();
+    if (eRet != SUCCESS) {
+      return eRet;
     }
     m_pDocument->LoadAsynDoc(m_pLinearized->GetDict());
     if (!m_pDocument->GetRoot()) {
-      return PDFPARSE_ERROR_FORMAT;
+      return FORMAT_ERROR;
     }
   }
   FXSYS_qsort(m_SortedOffset.GetData(), m_SortedOffset.GetSize(),
@@ -1630,11 +1628,11 @@
   if (GetRootObjNum() == 0) {
     ReleaseEncryptHandler();
     if (!RebuildCrossRef() || GetRootObjNum() == 0)
-      return PDFPARSE_ERROR_FORMAT;
+      return FORMAT_ERROR;
 
-    dwRet = SetEncryptHandler();
-    if (dwRet != PDFPARSE_ERROR_SUCCESS) {
-      return dwRet;
+    eRet = SetEncryptHandler();
+    if (eRet != SUCCESS) {
+      return eRet;
     }
   }
   if (m_pSecurityHandler && m_pSecurityHandler->IsMetadataEncrypted()) {
@@ -1642,7 +1640,7 @@
             ToReference(m_pDocument->GetRoot()->GetElement("Metadata")))
       m_Syntax.m_MetadataObjnum = pMetadata->GetRefObjNum();
   }
-  return PDFPARSE_ERROR_SUCCESS;
+  return SUCCESS;
 }
 FX_BOOL CPDF_Parser::LoadLinearizedAllCrossRefV5(FX_FILESIZE xrefpos) {
   if (!LoadCrossRefV5(&xrefpos, FALSE)) {
@@ -1663,7 +1661,8 @@
   m_bXRefStream = TRUE;
   return TRUE;
 }
-FX_DWORD CPDF_Parser::LoadLinearizedMainXRefTable() {
+
+CPDF_Parser::Error CPDF_Parser::LoadLinearizedMainXRefTable() {
   FX_DWORD dwSaveMetadataObjnum = m_Syntax.m_MetadataObjnum;
   m_Syntax.m_MetadataObjnum = 0;
   if (m_pTrailer) {
@@ -1690,12 +1689,12 @@
       !LoadLinearizedAllCrossRefV5(m_LastXRefOffset)) {
     m_LastXRefOffset = 0;
     m_Syntax.m_MetadataObjnum = dwSaveMetadataObjnum;
-    return PDFPARSE_ERROR_FORMAT;
+    return FORMAT_ERROR;
   }
   FXSYS_qsort(m_SortedOffset.GetData(), m_SortedOffset.GetSize(),
               sizeof(FX_FILESIZE), CompareFileSize);
   m_Syntax.m_MetadataObjnum = dwSaveMetadataObjnum;
-  return PDFPARSE_ERROR_SUCCESS;
+  return SUCCESS;
 }
 
 // static
@@ -4208,9 +4207,10 @@
       pHints->AddSegment(m_dwLastXRefOffset, data_size.ValueOrDie());
       return DataNotAvailable;
     }
-    FX_DWORD dwRet = m_pDocument->GetParser()->LoadLinearizedMainXRefTable();
+    CPDF_Parser::Error eRet =
+        m_pDocument->GetParser()->LoadLinearizedMainXRefTable();
     m_bMainXRefLoadTried = TRUE;
-    if (dwRet != PDFPARSE_ERROR_SUCCESS) {
+    if (eRet != CPDF_Parser::SUCCESS) {
       return DataError;
     }
     if (!PreparePageItem()) {
diff --git a/core/src/fpdfdoc/doc_ap.cpp b/core/src/fpdfdoc/doc_ap.cpp
index d0adc06..1557696 100644
--- a/core/src/fpdfdoc/doc_ap.cpp
+++ b/core/src/fpdfdoc/doc_ap.cpp
@@ -10,6 +10,12 @@
 #include "doc_utils.h"
 #include "pdf_vt.h"
 
+#define PBS_SOLID 0
+#define PBS_DASH 1
+#define PBS_BEVELED 2
+#define PBS_INSET 3
+#define PBS_UNDERLINED 4
+
 FX_BOOL FPDF_GenerateAP(CPDF_Document* pDoc, CPDF_Dictionary* pAnnotDict) {
   if (!pAnnotDict || pAnnotDict->GetConstString("Subtype") != "Widget") {
     return FALSE;
@@ -224,14 +230,14 @@
   CPDF_SimpleParser syntax(str);
   syntax.SetPos(0);
   if (syntax.FindTagParam("g", 1)) {
-    return CPVT_Color(CT_GRAY, FX_atof(syntax.GetWord()));
+    return CPVT_Color(CPVT_Color::kGray, FX_atof(syntax.GetWord()));
   }
   syntax.SetPos(0);
   if (syntax.FindTagParam("rg", 3)) {
     FX_FLOAT f1 = FX_atof(syntax.GetWord());
     FX_FLOAT f2 = FX_atof(syntax.GetWord());
     FX_FLOAT f3 = FX_atof(syntax.GetWord());
-    return CPVT_Color(CT_RGB, f1, f2, f3);
+    return CPVT_Color(CPVT_Color::kRGB, f1, f2, f3);
   }
   syntax.SetPos(0);
   if (syntax.FindTagParam("k", 4)) {
@@ -239,22 +245,22 @@
     FX_FLOAT f2 = FX_atof(syntax.GetWord());
     FX_FLOAT f3 = FX_atof(syntax.GetWord());
     FX_FLOAT f4 = FX_atof(syntax.GetWord());
-    return CPVT_Color(CT_CMYK, f1, f2, f3, f4);
+    return CPVT_Color(CPVT_Color::kCMYK, f1, f2, f3, f4);
   }
-  return CPVT_Color(CT_TRANSPARENT);
+  return CPVT_Color(CPVT_Color::kTransparent);
 }
 static CPVT_Color ParseColor(const CPDF_Array& array) {
   CPVT_Color rt;
   switch (array.GetCount()) {
     case 1:
-      rt = CPVT_Color(CT_GRAY, array.GetFloat(0));
+      rt = CPVT_Color(CPVT_Color::kGray, array.GetFloat(0));
       break;
     case 3:
-      rt = CPVT_Color(CT_RGB, array.GetFloat(0), array.GetFloat(1),
+      rt = CPVT_Color(CPVT_Color::kRGB, array.GetFloat(0), array.GetFloat(1),
                       array.GetFloat(2));
       break;
     case 4:
-      rt = CPVT_Color(CT_CMYK, array.GetFloat(0), array.GetFloat(1),
+      rt = CPVT_Color(CPVT_Color::kCMYK, array.GetFloat(0), array.GetFloat(1),
                       array.GetFloat(2), array.GetFloat(3));
       break;
   }
@@ -374,14 +380,14 @@
       case 'B':
         nBorderStyle = PBS_BEVELED;
         fBorderWidth *= 2;
-        crLeftTop = CPVT_Color(CT_GRAY, 1);
-        crRightBottom = CPVT_Color(CT_GRAY, 0.5);
+        crLeftTop = CPVT_Color(CPVT_Color::kGray, 1);
+        crRightBottom = CPVT_Color(CPVT_Color::kGray, 0.5);
         break;
       case 'I':
         nBorderStyle = PBS_INSET;
         fBorderWidth *= 2;
-        crLeftTop = CPVT_Color(CT_GRAY, 0.5);
-        crRightBottom = CPVT_Color(CT_GRAY, 0.75);
+        crLeftTop = CPVT_Color(CPVT_Color::kGray, 0.5);
+        crRightBottom = CPVT_Color(CPVT_Color::kGray, 0.75);
         break;
       case 'U':
         nBorderStyle = PBS_UNDERLINED;
@@ -555,7 +561,8 @@
                    << "Q\nEMC\n";
       }
       CFX_ByteString sButton = CPVT_GenerateAP::GenerateColorAP(
-          CPVT_Color(CT_RGB, 220.0f / 255.0f, 220.0f / 255.0f, 220.0f / 255.0f),
+          CPVT_Color(CPVT_Color::kRGB, 220.0f / 255.0f, 220.0f / 255.0f,
+                     220.0f / 255.0f),
           TRUE);
       if (sButton.GetLength() > 0 && !rcButton.IsEmpty()) {
         sAppStream << "q\n" << sButton;
@@ -563,8 +570,10 @@
                    << rcButton.Width() << " " << rcButton.Height() << " re f\n";
         sAppStream << "Q\n";
         CFX_ByteString sButtonBorder = CPVT_GenerateAP::GenerateBorderAP(
-            rcButton, 2, CPVT_Color(CT_GRAY, 0), CPVT_Color(CT_GRAY, 1),
-            CPVT_Color(CT_GRAY, 0.5), PBS_BEVELED, CPVT_Dash(3, 0, 0));
+            rcButton, 2, CPVT_Color(CPVT_Color::kGray, 0),
+            CPVT_Color(CPVT_Color::kGray, 1),
+            CPVT_Color(CPVT_Color::kGray, 0.5), PBS_BEVELED,
+            CPVT_Dash(3, 0, 0));
         if (sButtonBorder.GetLength() > 0) {
           sAppStream << "q\n" << sButtonBorder << "Q\n";
         }
@@ -635,14 +644,14 @@
               CPDF_Rect rcItem =
                   CPDF_Rect(rcBody.left, fy - fItemHeight, rcBody.right, fy);
               sBody << "q\n" << CPVT_GenerateAP::GenerateColorAP(
-                                    CPVT_Color(CT_RGB, 0, 51.0f / 255.0f,
-                                               113.0f / 255.0f),
+                                    CPVT_Color(CPVT_Color::kRGB, 0,
+                                               51.0f / 255.0f, 113.0f / 255.0f),
                                     TRUE)
                     << rcItem.left << " " << rcItem.bottom << " "
                     << rcItem.Width() << " " << rcItem.Height() << " re f\n"
                     << "Q\n";
               sBody << "BT\n" << CPVT_GenerateAP::GenerateColorAP(
-                                     CPVT_Color(CT_GRAY, 1), TRUE)
+                                     CPVT_Color(CPVT_Color::kGray, 1), TRUE)
                     << CPVT_GenerateAP::GenerateEditAP(&map, vt.GetIterator(),
                                                        CPDF_Point(0.0f, fy),
                                                        TRUE, 0)
@@ -903,20 +912,22 @@
                                                 const FX_BOOL& bFillOrStroke) {
   CFX_ByteTextBuf sColorStream;
   switch (color.nColorType) {
-    case CT_RGB:
+    case CPVT_Color::kRGB:
       sColorStream << color.fColor1 << " " << color.fColor2 << " "
                    << color.fColor3 << " " << (bFillOrStroke ? "rg" : "RG")
                    << "\n";
       break;
-    case CT_GRAY:
+    case CPVT_Color::kGray:
       sColorStream << color.fColor1 << " " << (bFillOrStroke ? "g" : "G")
                    << "\n";
       break;
-    case CT_CMYK:
+    case CPVT_Color::kCMYK:
       sColorStream << color.fColor1 << " " << color.fColor2 << " "
                    << color.fColor3 << " " << color.fColor4 << " "
                    << (bFillOrStroke ? "k" : "K") << "\n";
       break;
+    case CPVT_Color::kTransparent:
+      break;
   }
   return sColorStream.GetByteString();
 }
diff --git a/fpdfsdk/include/fsdk_define.h b/fpdfsdk/include/fsdk_define.h
index 9746bb3..6242696 100644
--- a/fpdfsdk/include/fsdk_define.h
+++ b/fpdfsdk/include/fsdk_define.h
@@ -84,6 +84,6 @@
 
 void CheckUnSupportError(CPDF_Document* pDoc, FX_DWORD err_code);
 void CheckUnSupportAnnot(CPDF_Document* pDoc, const CPDF_Annot* pPDFAnnot);
-void ProcessParseError(FX_DWORD err_code);
+void ProcessParseError(CPDF_Parser::Error err);
 
 #endif  // FPDFSDK_INCLUDE_FSDK_DEFINE_H_
diff --git a/fpdfsdk/src/fpdf_dataavail.cpp b/fpdfsdk/src/fpdf_dataavail.cpp
index f4e235c..baf8f9c 100644
--- a/fpdfsdk/src/fpdf_dataavail.cpp
+++ b/fpdfsdk/src/fpdf_dataavail.cpp
@@ -122,19 +122,20 @@
 
 DLLEXPORT FPDF_DOCUMENT STDCALL
 FPDFAvail_GetDocument(FPDF_AVAIL avail, FPDF_BYTESTRING password) {
-  if (!avail)
+  CFPDF_DataAvail* pDataAvail = static_cast<CFPDF_DataAvail*>(avail);
+  if (!pDataAvail)
     return NULL;
+
   CPDF_Parser* pParser = new CPDF_Parser;
   pParser->SetPassword(password);
-
-  FX_DWORD err_code = pParser->StartAsynParse(
-      ((CFPDF_DataAvail*)avail)->m_pDataAvail->GetFileRead());
-  if (err_code) {
+  CPDF_Parser::Error error =
+      pParser->StartAsynParse(pDataAvail->m_pDataAvail->GetFileRead());
+  if (error != CPDF_Parser::SUCCESS) {
     delete pParser;
-    ProcessParseError(err_code);
+    ProcessParseError(error);
     return NULL;
   }
-  ((CFPDF_DataAvail*)avail)->m_pDataAvail->SetDocument(pParser->GetDocument());
+  pDataAvail->m_pDataAvail->SetDocument(pParser->GetDocument());
   CheckUnSupportError(pParser->GetDocument(), FPDF_ERR_SUCCESS);
   return FPDFDocumentFromCPDFDocument(pParser->GetDocument());
 }
diff --git a/fpdfsdk/src/fpdfview.cpp b/fpdfsdk/src/fpdfview.cpp
index 3bffa91..b61f574 100644
--- a/fpdfsdk/src/fpdfview.cpp
+++ b/fpdfsdk/src/fpdfview.cpp
@@ -132,19 +132,23 @@
 }
 #endif
 
-void ProcessParseError(FX_DWORD err_code) {
+void ProcessParseError(CPDF_Parser::Error err) {
+  FX_DWORD err_code;
   // Translate FPDFAPI error code to FPDFVIEW error code
-  switch (err_code) {
-    case PDFPARSE_ERROR_FILE:
+  switch (err) {
+    case CPDF_Parser::SUCCESS:
+      err_code = FPDF_ERR_SUCCESS;
+      break;
+    case CPDF_Parser::FILE_ERROR:
       err_code = FPDF_ERR_FILE;
       break;
-    case PDFPARSE_ERROR_FORMAT:
+    case CPDF_Parser::FORMAT_ERROR:
       err_code = FPDF_ERR_FORMAT;
       break;
-    case PDFPARSE_ERROR_PASSWORD:
+    case CPDF_Parser::PASSWORD_ERROR:
       err_code = FPDF_ERR_PASSWORD;
       break;
-    case PDFPARSE_ERROR_HANDLER:
+    case CPDF_Parser::HANDLER_ERROR:
       err_code = FPDF_ERR_SECURITY;
       break;
   }
@@ -168,10 +172,10 @@
   CPDF_Parser* pParser = new CPDF_Parser;
   pParser->SetPassword(password);
 
-  FX_DWORD err_code = pParser->StartParse(pFileAccess);
-  if (err_code) {
+  CPDF_Parser::Error error = pParser->StartParse(pFileAccess);
+  if (error != CPDF_Parser::SUCCESS) {
     delete pParser;
-    ProcessParseError(err_code);
+    ProcessParseError(error);
     return NULL;
   }
   return pParser->GetDocument();
@@ -210,15 +214,15 @@
   CPDF_Parser* pParser = new CPDF_Parser;
   pParser->SetPassword(password);
   CMemFile* pMemFile = new CMemFile((uint8_t*)data_buf, size);
-  FX_DWORD err_code = pParser->StartParse(pMemFile);
-  if (err_code) {
+  CPDF_Parser::Error error = pParser->StartParse(pMemFile);
+  if (error != CPDF_Parser::SUCCESS) {
     delete pParser;
-    ProcessParseError(err_code);
+    ProcessParseError(error);
     return NULL;
   }
   CPDF_Document* pDoc = NULL;
   pDoc = pParser ? pParser->GetDocument() : NULL;
-  CheckUnSupportError(pDoc, err_code);
+  CheckUnSupportError(pDoc, error);
   return FPDFDocumentFromCPDFDocument(pParser->GetDocument());
 }
 
@@ -228,15 +232,15 @@
   CPDF_Parser* pParser = new CPDF_Parser;
   pParser->SetPassword(password);
   CPDF_CustomAccess* pFile = new CPDF_CustomAccess(pFileAccess);
-  FX_DWORD err_code = pParser->StartParse(pFile);
-  if (err_code) {
+  CPDF_Parser::Error error = pParser->StartParse(pFile);
+  if (error != CPDF_Parser::SUCCESS) {
     delete pParser;
-    ProcessParseError(err_code);
+    ProcessParseError(error);
     return NULL;
   }
   CPDF_Document* pDoc = NULL;
   pDoc = pParser ? pParser->GetDocument() : NULL;
-  CheckUnSupportError(pDoc, err_code);
+  CheckUnSupportError(pDoc, error);
   return FPDFDocumentFromCPDFDocument(pParser->GetDocument());
 }