[Libreoffice-commits] core.git: include/basic include/editeng include/svtools include/svx include/vcl sc/inc sc/source sd/inc sd/source sfx2/source svtools/source svx/source sw/inc sw/source uui/inc uui/source

Noel Grandin noelgrandin at gmail.com
Tue Aug 22 09:10:34 UTC 2017


 include/basic/sberrors.hxx         |  220 ++++++++++++++++++-------------------
 include/basic/sbxdef.hxx           |   60 +++++-----
 include/editeng/editdata.hxx       |    2 
 include/editeng/editerr.hxx        |    5 
 include/svtools/ehdl.hxx           |    6 -
 include/svtools/sfxecode.hxx       |   41 +++---
 include/svtools/soerr.hxx          |    4 
 include/svx/svxerr.hxx             |   55 ++-------
 include/vcl/errcode.hxx            |  157 ++++++++++++--------------
 include/vcl/graphicfilter.hxx      |   14 +-
 sc/inc/scerrors.hxx                |   73 ++++++------
 sc/inc/scwarngs.hxx                |    4 
 sc/source/ui/app/scmod.cxx         |    4 
 sd/inc/sderror.hxx                 |    6 -
 sd/source/ui/app/sdmod.cxx         |    2 
 sfx2/source/appl/appinit.cxx       |    6 -
 svtools/source/misc/ehdl.cxx       |    4 
 svx/source/items/svxerr.cxx        |    2 
 sw/inc/error.hrc                   |    4 
 sw/inc/swerror.h                   |   40 +++---
 sw/source/filter/ascii/parasc.cxx  |    2 
 sw/source/uibase/app/swmodule.cxx  |    4 
 uui/inc/ids.hxx                    |  128 ++++++++++-----------
 uui/source/iahndl-errorhandler.cxx |   11 -
 24 files changed, 408 insertions(+), 446 deletions(-)

New commits:
commit 158595543053c158a9bcb95f679e7b8a3c2e4e89
Author: Noel Grandin <noelgrandin at gmail.com>
Date:   Sat Aug 19 18:31:00 2017 +0200

    Convert ErrCode area to scoped enum
    
    Change-Id: Ifa365bbac3c7eb21da9381ec8bb3be6b6785016b
    Reviewed-on: https://gerrit.libreoffice.org/41402
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

diff --git a/include/basic/sberrors.hxx b/include/basic/sberrors.hxx
index d63012a1381a..d35a5ceb6a39 100644
--- a/include/basic/sberrors.hxx
+++ b/include/basic/sberrors.hxx
@@ -53,228 +53,228 @@
 #define ERRCODE_BASIC_WRONG_ARGS            ERRCODE_SBX_WRONG_ARGS              // Wrong number of arguments
 #define ERRCODE_BASIC_NOT_A_COLL            ERRCODE_SBX_NOT_A_COLL              // Object not a collection
 
-// Append Basic specific error messages to ERRCODE_AREA_SBX
-#define ERRCODE_BASIC_NO_GOSUB              ErrCode((LAST_SBX_ERROR_ID+1) | ERRCODE_AREA_SBX | \
+// Append Basic specific error messages to ErrCodeArea::Sbx
+#define ERRCODE_BASIC_NO_GOSUB              ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+1) | \
                                             ERRCODE_CLASS_RUNTIME)              // Return without Gosub
-#define ERRCODE_BASIC_REDO_FROM_START       ErrCode((LAST_SBX_ERROR_ID+2) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_REDO_FROM_START       ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+2) | \
                                             ERRCODE_CLASS_RUNTIME)              // Redo form start (SB internal)
-#define ERRCODE_BASIC_NO_MEMORY             ErrCode((LAST_SBX_ERROR_ID+3) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_NO_MEMORY             ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+3) | \
                                             ERRCODE_CLASS_RUNTIME)              // Out of memory
-#define ERRCODE_BASIC_ALREADY_DIM           ErrCode((LAST_SBX_ERROR_ID+4) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_ALREADY_DIM           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+4) | \
                                             ERRCODE_CLASS_RUNTIME)              // Array already dimensioned
-#define ERRCODE_BASIC_DUPLICATE_DEF         ErrCode((LAST_SBX_ERROR_ID+5) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DUPLICATE_DEF         ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+5) | \
                                             ERRCODE_CLASS_RUNTIME)              // Duplicate definition
-#define ERRCODE_BASIC_VAR_UNDEFINED         ErrCode((LAST_SBX_ERROR_ID+6) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_VAR_UNDEFINED         ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+6) | \
                                             ERRCODE_CLASS_RUNTIME)          // Variable undefined (SB)
-#define ERRCODE_BASIC_USER_ABORT            ErrCode((LAST_SBX_ERROR_ID+7) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_USER_ABORT            ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+7) | \
                                             ERRCODE_CLASS_RUNTIME)              // User interrupt occurred
-#define ERRCODE_BASIC_BAD_RESUME            ErrCode((LAST_SBX_ERROR_ID+8) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_RESUME            ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+8) | \
                                             ERRCODE_CLASS_RUNTIME)              // Resume without error
-#define ERRCODE_BASIC_STACK_OVERFLOW        ErrCode((LAST_SBX_ERROR_ID+9) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_STACK_OVERFLOW        ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+9) | \
                                             ERRCODE_CLASS_RUNTIME)              // Out of stack space
-#define ERRCODE_BASIC_BAD_DLL_LOAD          ErrCode((LAST_SBX_ERROR_ID+10) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_DLL_LOAD          ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+10) | \
                                             ERRCODE_CLASS_RUNTIME)              // Error in loading DLL
-#define ERRCODE_BASIC_BAD_DLL_CALL          ErrCode((LAST_SBX_ERROR_ID+11) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_DLL_CALL          ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+11) | \
                                             ERRCODE_CLASS_RUNTIME)              // Bad DLL calling convention
-#define ERRCODE_BASIC_BAD_CHANNEL           ErrCode((LAST_SBX_ERROR_ID+12) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_CHANNEL           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+12) | \
                                             ERRCODE_CLASS_RUNTIME)              // Bad file name or number
-#define ERRCODE_BASIC_FILE_NOT_FOUND        ErrCode((LAST_SBX_ERROR_ID+13) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_FILE_NOT_FOUND        ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+13) | \
                                             ERRCODE_CLASS_RUNTIME)              // File not found
-#define ERRCODE_BASIC_BAD_FILE_MODE         ErrCode((LAST_SBX_ERROR_ID+14) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_FILE_MODE         ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+14) | \
                                             ERRCODE_CLASS_RUNTIME)              // Bad file mode
-#define ERRCODE_BASIC_FILE_ALREADY_OPEN     ErrCode((LAST_SBX_ERROR_ID+15) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_FILE_ALREADY_OPEN     ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+15) | \
                                             ERRCODE_CLASS_RUNTIME)              // File already open
-#define ERRCODE_BASIC_IO_ERROR              ErrCode((LAST_SBX_ERROR_ID+16) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_IO_ERROR              ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+16) | \
                                             ERRCODE_CLASS_RUNTIME)          // Device I/O error
-#define ERRCODE_BASIC_FILE_EXISTS           ErrCode((LAST_SBX_ERROR_ID+17) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_FILE_EXISTS           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+17) | \
                                             ERRCODE_CLASS_RUNTIME)              // File already exists
-#define ERRCODE_BASIC_BAD_RECORD_LENGTH     ErrCode((LAST_SBX_ERROR_ID+18) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_RECORD_LENGTH     ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+18) | \
                                             ERRCODE_CLASS_RUNTIME)              // bad record length
-#define ERRCODE_BASIC_DISK_FULL             ErrCode((LAST_SBX_ERROR_ID+19) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DISK_FULL             ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+19) | \
                                             ERRCODE_CLASS_RUNTIME)              // disk full
-#define ERRCODE_BASIC_READ_PAST_EOF         ErrCode((LAST_SBX_ERROR_ID+20) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_READ_PAST_EOF         ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+20) | \
                                             ERRCODE_CLASS_RUNTIME)              // Input past end of file
-#define ERRCODE_BASIC_BAD_RECORD_NUMBER     ErrCode((LAST_SBX_ERROR_ID+21) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_RECORD_NUMBER     ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+21) | \
                                             ERRCODE_CLASS_RUNTIME)              // Bad record number
-#define ERRCODE_BASIC_TOO_MANY_FILES        ErrCode((LAST_SBX_ERROR_ID+22) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_TOO_MANY_FILES        ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+22) | \
                                             ERRCODE_CLASS_RUNTIME)          // Too many files
-#define ERRCODE_BASIC_NO_DEVICE             ErrCode((LAST_SBX_ERROR_ID+23) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_NO_DEVICE             ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+23) | \
                                             ERRCODE_CLASS_RUNTIME)              // Device not available
-#define ERRCODE_BASIC_ACCESS_DENIED         ErrCode((LAST_SBX_ERROR_ID+24) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_ACCESS_DENIED         ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+24) | \
                                             ERRCODE_CLASS_RUNTIME)              // Permission denied
-#define ERRCODE_BASIC_NOT_READY             ErrCode((LAST_SBX_ERROR_ID+25) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_NOT_READY             ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+25) | \
                                             ERRCODE_CLASS_RUNTIME)              // Disk not ready
-#define ERRCODE_BASIC_NOT_IMPLEMENTED       ErrCode((LAST_SBX_ERROR_ID+26) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_NOT_IMPLEMENTED       ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+26) | \
                                             ERRCODE_CLASS_RUNTIME)              // Feature not implemented
-#define ERRCODE_BASIC_DIFFERENT_DRIVE       ErrCode((LAST_SBX_ERROR_ID+27) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DIFFERENT_DRIVE       ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+27) | \
                                             ERRCODE_CLASS_RUNTIME)              // No rename with different drive
-#define ERRCODE_BASIC_ACCESS_ERROR          ErrCode((LAST_SBX_ERROR_ID+28) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_ACCESS_ERROR          ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+28) | \
                                             ERRCODE_CLASS_RUNTIME)              // Path/File access error
-#define ERRCODE_BASIC_PATH_NOT_FOUND        ErrCode((LAST_SBX_ERROR_ID+29) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_PATH_NOT_FOUND        ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+29) | \
                                             ERRCODE_CLASS_RUNTIME)              // Path not found
-#define ERRCODE_BASIC_BAD_PATTERN           ErrCode((LAST_SBX_ERROR_ID+30) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_PATTERN           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+30) | \
                                             ERRCODE_CLASS_RUNTIME)              // Invalid pattern string
-#define ERRCODE_BASIC_IS_NULL               ErrCode((LAST_SBX_ERROR_ID+31) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_IS_NULL               ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+31) | \
                                             ERRCODE_CLASS_RUNTIME)              // Invalid use of Null
 
 // DDE messages from 250-299
-#define ERRCODE_BASIC_DDE_ERROR             ErrCode((LAST_SBX_ERROR_ID+32) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_ERROR             ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+32) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_WAITINGACK        ErrCode((LAST_SBX_ERROR_ID+33) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_WAITINGACK        ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+33) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_OUTOFCHANNELS     ErrCode((LAST_SBX_ERROR_ID+34) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_OUTOFCHANNELS     ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+34) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_NO_RESPONSE       ErrCode((LAST_SBX_ERROR_ID+35) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_NO_RESPONSE       ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+35) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_MULT_RESPONSES    ErrCode((LAST_SBX_ERROR_ID+36) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_MULT_RESPONSES    ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+36) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_CHANNEL_LOCKED    ErrCode((LAST_SBX_ERROR_ID+37) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_CHANNEL_LOCKED    ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+37) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_NOTPROCESSED      ErrCode((LAST_SBX_ERROR_ID+38) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_NOTPROCESSED      ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+38) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_TIMEOUT           ErrCode((LAST_SBX_ERROR_ID+39) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_TIMEOUT           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+39) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_USER_INTERRUPT    ErrCode((LAST_SBX_ERROR_ID+40) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_USER_INTERRUPT    ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+40) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_BUSY              ErrCode((LAST_SBX_ERROR_ID+41) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_BUSY              ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+41) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_NO_DATA           ErrCode((LAST_SBX_ERROR_ID+42) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_NO_DATA           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+42) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_WRONG_DATA_FORMAT ErrCode((LAST_SBX_ERROR_ID+43) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_WRONG_DATA_FORMAT ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+43) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_PARTNER_QUIT      ErrCode((LAST_SBX_ERROR_ID+44) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_PARTNER_QUIT      ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+44) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_CONV_CLOSED       ErrCode((LAST_SBX_ERROR_ID+45) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_CONV_CLOSED       ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+45) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_NO_CHANNEL        ErrCode((LAST_SBX_ERROR_ID+46) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_NO_CHANNEL        ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+46) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_INVALID_LINK      ErrCode((LAST_SBX_ERROR_ID+47) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_INVALID_LINK      ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+47) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_QUEUE_OVERFLOW    ErrCode((LAST_SBX_ERROR_ID+48) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_QUEUE_OVERFLOW    ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+48) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_LINK_ALREADY_EST  ErrCode((LAST_SBX_ERROR_ID+49) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_LINK_ALREADY_EST  ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+49) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_LINK_INV_TOPIC    ErrCode((LAST_SBX_ERROR_ID+50) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_LINK_INV_TOPIC    ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+50) | \
                                             ERRCODE_CLASS_RUNTIME)
-#define ERRCODE_BASIC_DDE_DLL_NOT_FOUND     ErrCode((LAST_SBX_ERROR_ID+51) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DDE_DLL_NOT_FOUND     ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+51) | \
                                             ERRCODE_CLASS_RUNTIME)
 
-#define ERRCODE_BASIC_NEEDS_OBJECT          ErrCode((LAST_SBX_ERROR_ID+52) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_NEEDS_OBJECT          ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+52) | \
                                             ERRCODE_CLASS_RUNTIME)              // Object required
-#define ERRCODE_BASIC_BAD_ORDINAL           ErrCode((LAST_SBX_ERROR_ID+53) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_ORDINAL           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+53) | \
                                             ERRCODE_CLASS_RUNTIME)              // Invalid ordinal
-#define ERRCODE_BASIC_DLLPROC_NOT_FOUND     ErrCode((LAST_SBX_ERROR_ID+54) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_DLLPROC_NOT_FOUND     ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+54) | \
                                             ERRCODE_CLASS_RUNTIME)              // Specified DLL function not found
-#define ERRCODE_BASIC_BAD_CLIPBD_FORMAT     ErrCode((LAST_SBX_ERROR_ID+55) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_CLIPBD_FORMAT     ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+55) | \
                                             ERRCODE_CLASS_RUNTIME)              // Invalid clipboard format
 
 // Debugger messages from 700-799
 
-#define ERRCODE_BASIC_PROPERTY_NOT_FOUND    ErrCode((LAST_SBX_ERROR_ID+56) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_PROPERTY_NOT_FOUND    ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+56) | \
                                             ERRCODE_CLASS_RUNTIME)              // Class not have property
-#define ERRCODE_BASIC_METHOD_NOT_FOUND      ErrCode((LAST_SBX_ERROR_ID+57) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_METHOD_NOT_FOUND      ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+57) | \
                                             ERRCODE_CLASS_RUNTIME)              // Class does not have method
-#define ERRCODE_BASIC_ARG_MISSING           ErrCode((LAST_SBX_ERROR_ID+58) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_ARG_MISSING           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+58) | \
                                             ERRCODE_CLASS_RUNTIME)              // Missing required argument
-#define ERRCODE_BASIC_BAD_NUMBER_OF_ARGS    ErrCode((LAST_SBX_ERROR_ID+59) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_NUMBER_OF_ARGS    ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+59) | \
                                             ERRCODE_CLASS_RUNTIME)              // Bad number of arguments
-#define ERRCODE_BASIC_METHOD_FAILED         ErrCode((LAST_SBX_ERROR_ID+60) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_METHOD_FAILED         ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+60) | \
                                             ERRCODE_CLASS_RUNTIME)              // Method failed
-#define ERRCODE_BASIC_SETPROP_FAILED        ErrCode((LAST_SBX_ERROR_ID+61) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_SETPROP_FAILED        ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+61) | \
                                             ERRCODE_CLASS_RUNTIME)              // Unable to set property
-#define ERRCODE_BASIC_GETPROP_FAILED        ErrCode((LAST_SBX_ERROR_ID+62) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_GETPROP_FAILED        ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+62) | \
                                             ERRCODE_CLASS_RUNTIME)              // Unable to get property
 
 // Compiler Errors (do not occur at runtime)
 // These IDs can shift at any time
 
-#define ERRCODE_BASIC_UNEXPECTED            ErrCode((LAST_SBX_ERROR_ID+63) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_UNEXPECTED            ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+63) | \
                                             ERRCODE_CLASS_COMPILER)             // Unexpected symbol: xx
-#define ERRCODE_BASIC_EXPECTED              ErrCode((LAST_SBX_ERROR_ID+64) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_EXPECTED              ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+64) | \
                                             ERRCODE_CLASS_COMPILER)             // Expected: xx
-#define ERRCODE_BASIC_SYMBOL_EXPECTED       ErrCode((LAST_SBX_ERROR_ID+65) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_SYMBOL_EXPECTED       ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+65) | \
                                             ERRCODE_CLASS_COMPILER)             // Symbol expected
-#define ERRCODE_BASIC_VAR_EXPECTED          ErrCode((LAST_SBX_ERROR_ID+66) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_VAR_EXPECTED          ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+66) | \
                                             ERRCODE_CLASS_COMPILER)             // Variable expected
-#define ERRCODE_BASIC_LABEL_EXPECTED        ErrCode((LAST_SBX_ERROR_ID+67) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_LABEL_EXPECTED        ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+67) | \
                                             ERRCODE_CLASS_COMPILER)             // Label expected
-#define ERRCODE_BASIC_LVALUE_EXPECTED       ErrCode((LAST_SBX_ERROR_ID+68) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_LVALUE_EXPECTED       ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+68) | \
                                             ERRCODE_CLASS_COMPILER)             // Lvalue expected
-#define ERRCODE_BASIC_VAR_DEFINED           ErrCode((LAST_SBX_ERROR_ID+69) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_VAR_DEFINED           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+69) | \
                                             ERRCODE_CLASS_COMPILER)             // Variable xxx already defined
-#define ERRCODE_BASIC_PROC_DEFINED          ErrCode((LAST_SBX_ERROR_ID+70) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_PROC_DEFINED          ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+70) | \
                                             ERRCODE_CLASS_COMPILER)             // Procedure xx already defined
-#define ERRCODE_BASIC_LABEL_DEFINED         ErrCode((LAST_SBX_ERROR_ID+71) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_LABEL_DEFINED         ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+71) | \
                                             ERRCODE_CLASS_COMPILER)             // Label xxx already defined
-#define ERRCODE_BASIC_UNDEF_VAR             ErrCode((LAST_SBX_ERROR_ID+72) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_UNDEF_VAR             ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+72) | \
                                             ERRCODE_CLASS_COMPILER)             // Variable xx undefined
-#define ERRCODE_BASIC_UNDEF_ARRAY           ErrCode((LAST_SBX_ERROR_ID+73) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_UNDEF_ARRAY           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+73) | \
                                             ERRCODE_CLASS_COMPILER)             // Array or function xx undefined
-#define ERRCODE_BASIC_UNDEF_PROC            ErrCode((LAST_SBX_ERROR_ID+74) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_UNDEF_PROC            ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+74) | \
                                             ERRCODE_CLASS_COMPILER)             // Procedure xxx undefined
-#define ERRCODE_BASIC_UNDEF_LABEL           ErrCode((LAST_SBX_ERROR_ID+75) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_UNDEF_LABEL           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+75) | \
                                             ERRCODE_CLASS_COMPILER)             // Label xxx undefined
-#define ERRCODE_BASIC_UNDEF_TYPE            ErrCode((LAST_SBX_ERROR_ID+76) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_UNDEF_TYPE            ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+76) | \
                                             ERRCODE_CLASS_COMPILER)             // Unknown user defined type xxx
-#define ERRCODE_BASIC_BAD_EXIT              ErrCode((LAST_SBX_ERROR_ID+77) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_EXIT              ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+77) | \
                                             ERRCODE_CLASS_COMPILER)             // Exit XXX expected
-#define ERRCODE_BASIC_BAD_BLOCK             ErrCode((LAST_SBX_ERROR_ID+78) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_BLOCK             ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+78) | \
                                             ERRCODE_CLASS_COMPILER)             // Unterminated statement block: missing XX
-#define ERRCODE_BASIC_BAD_BRACKETS          ErrCode((LAST_SBX_ERROR_ID+79) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_BRACKETS          ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+79) | \
                                             ERRCODE_CLASS_COMPILER)             // Parentheses do not match
-#define ERRCODE_BASIC_BAD_DECLARATION       ErrCode((LAST_SBX_ERROR_ID+80) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_DECLARATION       ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+80) | \
                                             ERRCODE_CLASS_COMPILER)             // Symbol xx defined differently
-#define ERRCODE_BASIC_BAD_PARAMETERS        ErrCode((LAST_SBX_ERROR_ID+81) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_PARAMETERS        ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+81) | \
                                             ERRCODE_CLASS_COMPILER)             // Parameters do not match
-#define ERRCODE_BASIC_BAD_CHAR_IN_NUMBER    ErrCode((LAST_SBX_ERROR_ID+82) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_CHAR_IN_NUMBER    ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+82) | \
                                             ERRCODE_CLASS_COMPILER)             // Bad character in number
-#define ERRCODE_BASIC_MUST_HAVE_DIMS        ErrCode((LAST_SBX_ERROR_ID+83) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_MUST_HAVE_DIMS        ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+83) | \
                                             ERRCODE_CLASS_COMPILER)             // Array needs dimensioning
-#define ERRCODE_BASIC_NO_IF                 ErrCode((LAST_SBX_ERROR_ID+84) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_NO_IF                 ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+84) | \
                                             ERRCODE_CLASS_COMPILER)             // Else/Endif without If
-#define ERRCODE_BASIC_NOT_IN_SUBR           ErrCode((LAST_SBX_ERROR_ID+85) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_NOT_IN_SUBR           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+85) | \
                                             ERRCODE_CLASS_COMPILER)             // xxx not allowed within a sub
-#define ERRCODE_BASIC_NOT_IN_MAIN           ErrCode((LAST_SBX_ERROR_ID+86) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_NOT_IN_MAIN           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+86) | \
                                             ERRCODE_CLASS_COMPILER)             // xxx not allowed outside a sub
-#define ERRCODE_BASIC_WRONG_DIMS            ErrCode((LAST_SBX_ERROR_ID+87) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_WRONG_DIMS            ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+87) | \
                                             ERRCODE_CLASS_COMPILER)             // Dimensions do not match
-#define ERRCODE_BASIC_BAD_OPTION            ErrCode((LAST_SBX_ERROR_ID+88) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_BAD_OPTION            ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+88) | \
                                             ERRCODE_CLASS_COMPILER)             // Unknown option: xxx
-#define ERRCODE_BASIC_CONSTANT_REDECLARED   ErrCode((LAST_SBX_ERROR_ID+89) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_CONSTANT_REDECLARED   ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+89) | \
                                             ERRCODE_CLASS_COMPILER)             // Constant xx redeclared
-#define ERRCODE_BASIC_PROG_TOO_LARGE        ErrCode((LAST_SBX_ERROR_ID+90) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_PROG_TOO_LARGE        ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+90) | \
                                             ERRCODE_CLASS_COMPILER)             // Program is too large
-#define ERRCODE_BASIC_NO_STRINGS_ARRAYS     ErrCode((LAST_SBX_ERROR_ID+91) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_NO_STRINGS_ARRAYS     ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+91) | \
                                             ERRCODE_CLASS_COMPILER)
 
-#define ERRCODE_BASIC_EXCEPTION             ErrCode((LAST_SBX_ERROR_ID+92) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_EXCEPTION             ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+92) | \
                                             ERRCODE_CLASS_RUNTIME)
 
-#define ERRCODE_BASMGR_STDLIBOPEN           ErrCode((LAST_SBX_ERROR_ID+93) | ERRCODE_AREA_SBX)
-#define ERRCODE_BASMGR_STDLIBSAVE           ErrCode((LAST_SBX_ERROR_ID+94) | ERRCODE_AREA_SBX)
-#define ERRCODE_BASMGR_LIBLOAD              ErrCode((LAST_SBX_ERROR_ID+95) | ERRCODE_AREA_SBX)
-#define ERRCODE_BASMGR_LIBCREATE            ErrCode((LAST_SBX_ERROR_ID+96) | ERRCODE_AREA_SBX)
-#define ERRCODE_BASMGR_LIBSAVE              ErrCode((LAST_SBX_ERROR_ID+97) | ERRCODE_AREA_SBX)
-#define ERRCODE_BASMGR_LIBDEL               ErrCode((LAST_SBX_ERROR_ID+98) | ERRCODE_AREA_SBX)
-#define ERRCODE_BASMGR_MGROPEN              ErrCode((LAST_SBX_ERROR_ID+99) | ERRCODE_AREA_SBX)
-#define ERRCODE_BASMGR_MGRSAVE              ErrCode((LAST_SBX_ERROR_ID+100) | ERRCODE_AREA_SBX)
-#define ERRCODE_BASMGR_REMOVELIB            ErrCode((LAST_SBX_ERROR_ID+101) | ERRCODE_AREA_SBX)
-#define ERRCODE_BASMGR_UNLOADLIB            ErrCode((LAST_SBX_ERROR_ID+102) | ERRCODE_AREA_SBX)
+#define ERRCODE_BASMGR_STDLIBOPEN           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+93))
+#define ERRCODE_BASMGR_STDLIBSAVE           ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+94))
+#define ERRCODE_BASMGR_LIBLOAD              ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+95))
+#define ERRCODE_BASMGR_LIBCREATE            ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+96))
+#define ERRCODE_BASMGR_LIBSAVE              ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+97))
+#define ERRCODE_BASMGR_LIBDEL               ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+98))
+#define ERRCODE_BASMGR_MGROPEN              ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+99))
+#define ERRCODE_BASMGR_MGRSAVE              ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+100))
+#define ERRCODE_BASMGR_REMOVELIB            ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+101))
+#define ERRCODE_BASMGR_UNLOADLIB            ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+102))
 
-#define ERRCODE_BASIC_ARRAY_FIX             ErrCode((LAST_SBX_ERROR_ID+104) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_ARRAY_FIX             ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+104) | \
                                             ERRCODE_CLASS_COMPILER)             // This array is fixed
-#define ERRCODE_BASIC_STRING_OVERFLOW       ErrCode((LAST_SBX_ERROR_ID+105) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_STRING_OVERFLOW       ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+105) | \
                                             ERRCODE_CLASS_COMPILER)             // Out of string space
-#define ERRCODE_BASIC_EXPR_TOO_COMPLEX      ErrCode((LAST_SBX_ERROR_ID+106) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_EXPR_TOO_COMPLEX      ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+106) | \
                                             ERRCODE_CLASS_COMPILER)             // Expression too complex
-#define ERRCODE_BASIC_OPER_NOT_PERFORM      ErrCode((LAST_SBX_ERROR_ID+107) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_OPER_NOT_PERFORM      ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+107) | \
                                             ERRCODE_CLASS_COMPILER)             // Can't perform requested operation
-#define ERRCODE_BASIC_TOO_MANY_DLL          ErrCode((LAST_SBX_ERROR_ID+108) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_TOO_MANY_DLL          ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+108) | \
                                             ERRCODE_CLASS_COMPILER)             // Too many dll application clients
-#define ERRCODE_BASIC_LOOP_NOT_INIT         ErrCode((LAST_SBX_ERROR_ID+109) | ERRCODE_AREA_SBX | \
+#define ERRCODE_BASIC_LOOP_NOT_INIT         ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+109) | \
                                             ERRCODE_CLASS_COMPILER)             // For loop not initialized
 
-#define ERRCODE_BASIC_COMPAT                ErrCode((LAST_SBX_ERROR_ID+103)| ERRCODE_AREA_SBX | ERRCODE_CLASS_RUNTIME)
+#define ERRCODE_BASIC_COMPAT                ErrCode( ErrCodeArea::Sbx, (LAST_SBX_ERROR_ID+103) | ERRCODE_CLASS_RUNTIME)
 
 // Grid messages from 30000-30999
 // OLE messages from 31000-31999
diff --git a/include/basic/sbxdef.hxx b/include/basic/sbxdef.hxx
index a7c589bab64f..9c36d849bb3b 100644
--- a/include/basic/sbxdef.hxx
+++ b/include/basic/sbxdef.hxx
@@ -124,36 +124,36 @@ enum class SbxNameType {          // Type of the questioned name of a variable
 };
 
 // New error codes per define
-#define ERRCODE_SBX_SYNTAX              ErrCode(1UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_COMPILER)
-#define ERRCODE_SBX_NOTIMP              ErrCode(2UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_NOTSUPPORTED)
-#define ERRCODE_SBX_OVERFLOW            ErrCode(3UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_SBX)        // overflow
-#define ERRCODE_SBX_BOUNDS              ErrCode(4UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_SBX)        // Invalid array index
-#define ERRCODE_SBX_ZERODIV             ErrCode(5UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_SBX)        // Division by zero
-#define ERRCODE_SBX_CONVERSION          ErrCode(6UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_SBX)        // wrong data type
-#define ERRCODE_SBX_BAD_PARAMETER       ErrCode(7UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_RUNTIME)    // invalid Parameter
-#define ERRCODE_SBX_PROC_UNDEFINED      ErrCode(8UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_RUNTIME)    // Sub or Func not def
-#define ERRCODE_SBX_ERROR               ErrCode(9UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_UNKNOWN)    // generic object error
-#define ERRCODE_SBX_NO_OBJECT           ErrCode(10UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_RUNTIME)   // Object var not object
-#define ERRCODE_SBX_CANNOT_LOAD         ErrCode(11UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_CREATE)    // Object init/load fail
-#define ERRCODE_SBX_BAD_INDEX           ErrCode(12UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_SBX)       // Invalid object index
-#define ERRCODE_SBX_NO_ACTIVE_OBJECT    ErrCode(13UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_ACCESS)    // Object not active
-#define ERRCODE_SBX_BAD_PROP_VALUE      ErrCode(14UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_RUNTIME)   // Bad property value
-#define ERRCODE_SBX_PROP_READONLY       ErrCode(15UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_READ)      // Property is read only
-#define ERRCODE_SBX_PROP_WRITEONLY      ErrCode(16UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_WRITE)     // Property is write only
-#define ERRCODE_SBX_INVALID_OBJECT      ErrCode(17UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_ACCESS)    // Invalid object reference
-#define ERRCODE_SBX_NO_METHOD           ErrCode(18UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_RUNTIME)   // Property or Method unknown
-#define ERRCODE_SBX_INVALID_USAGE_OBJECT ErrCode(19UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_ACCESS)   // Invalid object usage
-#define ERRCODE_SBX_NO_OLE              ErrCode(20UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_ACCESS)    // No OLE-Object
-#define ERRCODE_SBX_BAD_METHOD          ErrCode(21UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_RUNTIME)   // Method not supported
-#define ERRCODE_SBX_OLE_ERROR           ErrCode(22UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_RUNTIME)   // OLE Automation Error
-#define ERRCODE_SBX_BAD_ACTION          ErrCode(23UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_NOTSUPPORTED)  // Action not supported
-#define ERRCODE_SBX_NO_NAMED_ARGS       ErrCode(24UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_RUNTIME)   // No named arguments
-#define ERRCODE_SBX_BAD_LOCALE          ErrCode(25UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_NOTSUPPORTED)  // Locale not supported
-#define ERRCODE_SBX_NAMED_NOT_FOUND     ErrCode(26UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_RUNTIME)   // Unknown named argument
-#define ERRCODE_SBX_NOT_OPTIONAL        ErrCode(27UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_RUNTIME)   // Argument not optional
-#define ERRCODE_SBX_WRONG_ARGS          ErrCode(28UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_SBX)       // Invalid number of arguments
-#define ERRCODE_SBX_NOT_A_COLL          ErrCode(29UL | ERRCODE_AREA_SBX | ERRCODE_CLASS_RUNTIME)   // Object contains no elements
-#define LAST_SBX_ERROR_ID                        29UL
+#define ERRCODE_SBX_SYNTAX               ErrCode( ErrCodeArea::Sbx,  1UL | ERRCODE_CLASS_COMPILER)
+#define ERRCODE_SBX_NOTIMP               ErrCode( ErrCodeArea::Sbx,  2UL | ERRCODE_CLASS_NOTSUPPORTED)
+#define ERRCODE_SBX_OVERFLOW             ErrCode( ErrCodeArea::Sbx,  3UL | ERRCODE_CLASS_SBX)        // overflow
+#define ERRCODE_SBX_BOUNDS               ErrCode( ErrCodeArea::Sbx,  4UL | ERRCODE_CLASS_SBX)        // Invalid array index
+#define ERRCODE_SBX_ZERODIV              ErrCode( ErrCodeArea::Sbx,  5UL | ERRCODE_CLASS_SBX)        // Division by zero
+#define ERRCODE_SBX_CONVERSION           ErrCode( ErrCodeArea::Sbx,  6UL | ERRCODE_CLASS_SBX)        // wrong data type
+#define ERRCODE_SBX_BAD_PARAMETER        ErrCode( ErrCodeArea::Sbx,  7UL | ERRCODE_CLASS_RUNTIME)    // invalid Parameter
+#define ERRCODE_SBX_PROC_UNDEFINED       ErrCode( ErrCodeArea::Sbx,  8UL | ERRCODE_CLASS_RUNTIME)    // Sub or Func not def
+#define ERRCODE_SBX_ERROR                ErrCode( ErrCodeArea::Sbx,  9UL | ERRCODE_CLASS_UNKNOWN)    // generic object error
+#define ERRCODE_SBX_NO_OBJECT            ErrCode( ErrCodeArea::Sbx, 10UL | ERRCODE_CLASS_RUNTIME)   // Object var not object
+#define ERRCODE_SBX_CANNOT_LOAD          ErrCode( ErrCodeArea::Sbx, 11UL | ERRCODE_CLASS_CREATE)    // Object init/load fail
+#define ERRCODE_SBX_BAD_INDEX            ErrCode( ErrCodeArea::Sbx, 12UL | ERRCODE_CLASS_SBX)       // Invalid object index
+#define ERRCODE_SBX_NO_ACTIVE_OBJECT     ErrCode( ErrCodeArea::Sbx, 13UL | ERRCODE_CLASS_ACCESS)    // Object not active
+#define ERRCODE_SBX_BAD_PROP_VALUE       ErrCode( ErrCodeArea::Sbx, 14UL | ERRCODE_CLASS_RUNTIME)   // Bad property value
+#define ERRCODE_SBX_PROP_READONLY        ErrCode( ErrCodeArea::Sbx, 15UL | ERRCODE_CLASS_READ)      // Property is read only
+#define ERRCODE_SBX_PROP_WRITEONLY       ErrCode( ErrCodeArea::Sbx, 16UL | ERRCODE_CLASS_WRITE)     // Property is write only
+#define ERRCODE_SBX_INVALID_OBJECT       ErrCode( ErrCodeArea::Sbx, 17UL | ERRCODE_CLASS_ACCESS)    // Invalid object reference
+#define ERRCODE_SBX_NO_METHOD            ErrCode( ErrCodeArea::Sbx, 18UL | ERRCODE_CLASS_RUNTIME)   // Property or Method unknown
+#define ERRCODE_SBX_INVALID_USAGE_OBJECT ErrCode( ErrCodeArea::Sbx, 19UL | ERRCODE_CLASS_ACCESS)   // Invalid object usage
+#define ERRCODE_SBX_NO_OLE               ErrCode( ErrCodeArea::Sbx, 20UL | ERRCODE_CLASS_ACCESS)    // No OLE-Object
+#define ERRCODE_SBX_BAD_METHOD           ErrCode( ErrCodeArea::Sbx, 21UL | ERRCODE_CLASS_RUNTIME)   // Method not supported
+#define ERRCODE_SBX_OLE_ERROR            ErrCode( ErrCodeArea::Sbx, 22UL | ERRCODE_CLASS_RUNTIME)   // OLE Automation Error
+#define ERRCODE_SBX_BAD_ACTION           ErrCode( ErrCodeArea::Sbx, 23UL | ERRCODE_CLASS_NOTSUPPORTED)  // Action not supported
+#define ERRCODE_SBX_NO_NAMED_ARGS        ErrCode( ErrCodeArea::Sbx, 24UL | ERRCODE_CLASS_RUNTIME)   // No named arguments
+#define ERRCODE_SBX_BAD_LOCALE           ErrCode( ErrCodeArea::Sbx, 25UL | ERRCODE_CLASS_NOTSUPPORTED)  // Locale not supported
+#define ERRCODE_SBX_NAMED_NOT_FOUND      ErrCode( ErrCodeArea::Sbx, 26UL | ERRCODE_CLASS_RUNTIME)   // Unknown named argument
+#define ERRCODE_SBX_NOT_OPTIONAL         ErrCode( ErrCodeArea::Sbx, 27UL | ERRCODE_CLASS_RUNTIME)   // Argument not optional
+#define ERRCODE_SBX_WRONG_ARGS           ErrCode( ErrCodeArea::Sbx, 28UL | ERRCODE_CLASS_SBX)       // Invalid number of arguments
+#define ERRCODE_SBX_NOT_A_COLL           ErrCode( ErrCodeArea::Sbx, 29UL | ERRCODE_CLASS_RUNTIME)   // Object contains no elements
+#define LAST_SBX_ERROR_ID                29UL
 
 // Flag-Bits:
 enum class SbxFlagBits {
diff --git a/include/editeng/editdata.hxx b/include/editeng/editdata.hxx
index cf19fbde88d4..2d5a5e035d87 100644
--- a/include/editeng/editdata.hxx
+++ b/include/editeng/editdata.hxx
@@ -56,7 +56,7 @@ enum class EEAnchorMode {
 EDITENG_DLLPUBLIC extern const size_t EE_APPEND;
 
 // Error messages for Read / Write Method
-#define EE_READWRITE_WRONGFORMAT     ErrCode(ERRCODE_AREA_SVX+1)
+#define EE_READWRITE_WRONGFORMAT     ErrCode(ErrCodeArea::Svx, 1)
 
 #define EDITUNDO_REMOVECHARS        100
 #define EDITUNDO_CONNECTPARAS       101
diff --git a/include/editeng/editerr.hxx b/include/editeng/editerr.hxx
index 041e5320e547..918e39a65d2d 100644
--- a/include/editeng/editerr.hxx
+++ b/include/editeng/editerr.hxx
@@ -21,10 +21,9 @@
 
 #include <vcl/errcode.hxx>
 
-#define ERRCODE_SVX_LINGU_LANGUAGENOTEXISTS    ErrCode(2UL | ERRCODE_AREA_SVX)
+#define ERRCODE_SVX_LINGU_LANGUAGENOTEXISTS    ErrCode(ErrCodeArea::Svx, 2UL)
+#define ERRCODE_SVX_GRAPHIC_WRONG_FILEFORMAT   ErrCode(ErrCodeArea::Svx, 8UL | ERRCODE_CLASS_READ)
 
-#define ERRCODE_SVX_GRAPHIC_WRONG_FILEFORMAT   ErrCode(8UL | ERRCODE_AREA_SVX | \
-                                                ERRCODE_CLASS_READ )
 #endif
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/svtools/ehdl.hxx b/include/svtools/ehdl.hxx
index 102bf115d4ab..25713c5831ba 100644
--- a/include/svtools/ehdl.hxx
+++ b/include/svtools/ehdl.hxx
@@ -52,7 +52,7 @@ private:
 class SVT_DLLPUBLIC SfxErrorHandler : private ErrorHandler
 {
 public:
-    SfxErrorHandler(const ErrMsgCode* pIds, ErrCode lStart, ErrCode lEnd, const std::locale& rResLocale = SvtResLocale());
+    SfxErrorHandler(const ErrMsgCode* pIds, ErrCodeArea lStart, ErrCodeArea lEnd, const std::locale& rResLocale = SvtResLocale());
     virtual ~SfxErrorHandler() override;
 
 protected:
@@ -60,8 +60,8 @@ protected:
 
 private:
 
-    ErrCode              lStart;
-    ErrCode              lEnd;
+    ErrCodeArea          lStart;
+    ErrCodeArea          lEnd;
     const ErrMsgCode*    pIds;
     const std::locale&   rResLocale;
 
diff --git a/include/svtools/sfxecode.hxx b/include/svtools/sfxecode.hxx
index 625a50e42a5c..119dac32b74e 100644
--- a/include/svtools/sfxecode.hxx
+++ b/include/svtools/sfxecode.hxx
@@ -21,27 +21,28 @@
 
 #include <vcl/errcode.hxx>
 
-#define ERRCODE_SFX_NOTATEMPLATE            ErrCode(ERRCODE_AREA_SFX|ERRCODE_CLASS_FORMAT|2)
-#define ERRCODE_SFX_GENERAL                 ErrCode(ERRCODE_AREA_SFX|ERRCODE_CLASS_GENERAL|3)
-#define ERRCODE_SFX_DOLOADFAILED            ErrCode(ERRCODE_AREA_SFX|ERRCODE_CLASS_READ|4)
-#define ERRCODE_SFX_ALREADYOPEN             ErrCode(ERRCODE_AREA_SFX|ERRCODE_CLASS_ALREADYEXISTS|10)
-#define ERRCODE_SFX_WRONGPASSWORD           ErrCode(ERRCODE_AREA_SFX|ERRCODE_CLASS_READ|11)
-#define ERRCODE_SFX_DOCUMENTREADONLY        ErrCode(ERRCODE_AREA_SFX|ERRCODE_CLASS_WRITE|12)
-#define ERRCODE_SFX_OLEGENERAL              ErrCode(ERRCODE_AREA_SFX|ERRCODE_CLASS_NONE|14)
-#define ERRCODE_SFX_TEMPLATENOTFOUND        ErrCode(ERRCODE_AREA_SFX|ERRCODE_CLASS_NOTEXISTS|15)
+#define ERRCODE_SFX_NOTATEMPLATE            ErrCode(ErrCodeArea::Sfx, ERRCODE_CLASS_FORMAT | 2)
+#define ERRCODE_SFX_GENERAL                 ErrCode(ErrCodeArea::Sfx, ERRCODE_CLASS_GENERAL | 3)
+#define ERRCODE_SFX_DOLOADFAILED            ErrCode(ErrCodeArea::Sfx, ERRCODE_CLASS_READ | 4)
+#define ERRCODE_SFX_ALREADYOPEN             ErrCode(ErrCodeArea::Sfx, ERRCODE_CLASS_ALREADYEXISTS | 10)
+#define ERRCODE_SFX_WRONGPASSWORD           ErrCode(ErrCodeArea::Sfx, ERRCODE_CLASS_READ | 11)
+#define ERRCODE_SFX_DOCUMENTREADONLY        ErrCode(ErrCodeArea::Sfx, ERRCODE_CLASS_WRITE | 12)
+#define ERRCODE_SFX_OLEGENERAL              ErrCode(ErrCodeArea::Sfx, ERRCODE_CLASS_NONE | 14)
+#define ERRCODE_SFX_TEMPLATENOTFOUND        ErrCode(ErrCodeArea::Sfx, ERRCODE_CLASS_NOTEXISTS | 15)
 
-#define ERRCODE_SFX_CANTCREATECONTENT       ErrCode(ERRCODE_AREA_SFX|ERRCODE_CLASS_CREATE|21)
-#define ERRCODE_SFX_INVALIDSYNTAX           ErrCode(ERRCODE_AREA_SFX|ERRCODE_CLASS_PATH|36)
-#define ERRCODE_SFX_CANTCREATEFOLDER        ErrCode(ERRCODE_AREA_SFX|ERRCODE_CLASS_CREATE|37)
-#define ERRCODE_SFX_CANTGETPASSWD           ErrCode(ERRCODE_AREA_SFX| ERRCODE_CLASS_READ | 42)
-#define ERRCODE_SFX_NOMOREDOCUMENTSALLOWED  ErrCode(ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 44)
-#define ERRCODE_SFX_CANTCREATEBACKUP        ErrCode(ERRCODE_AREA_SFX | ERRCODE_CLASS_CREATE | 50)
-#define ERRCODE_SFX_MACROS_SUPPORT_DISABLED ErrCode(ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 51)
-#define ERRCODE_SFX_DOCUMENT_MACRO_DISABLED ErrCode(ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 52)
-#define ERRCODE_SFX_SHARED_NOPASSWORDCHANGE ErrCode(ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 54)
-#define ERRCODE_SFX_INCOMPLETE_ENCRYPTION    ErrCode(ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 55)
-#define ERRCODE_SFX_DOCUMENT_MACRO_DISABLED_MAC ErrCode(ERRCODE_WARNING_MASK | ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 56)
-#define ERRCODE_SFX_FORMAT_ROWCOL           ErrCode(ERRCODE_AREA_SFX | ERRCODE_CLASS_NONE | 57)
+#define ERRCODE_SFX_CANTCREATECONTENT       ErrCode(ErrCodeArea::Sfx, ERRCODE_CLASS_CREATE | 21)
+#define ERRCODE_SFX_INVALIDSYNTAX           ErrCode(ErrCodeArea::Sfx, ERRCODE_CLASS_PATH | 36)
+#define ERRCODE_SFX_CANTCREATEFOLDER        ErrCode(ErrCodeArea::Sfx, ERRCODE_CLASS_CREATE | 37)
+#define ERRCODE_SFX_CANTGETPASSWD           ErrCode(ErrCodeArea::Sfx, ERRCODE_CLASS_READ | 42)
+#define ERRCODE_SFX_NOMOREDOCUMENTSALLOWED  ErrCode(ErrCodeArea::Sfx, ERRCODE_WARNING_MASK | ERRCODE_CLASS_NONE | 44)
+#define ERRCODE_SFX_CANTCREATEBACKUP        ErrCode(ErrCodeArea::Sfx, ERRCODE_CLASS_CREATE | 50)
+#define ERRCODE_SFX_MACROS_SUPPORT_DISABLED ErrCode(ErrCodeArea::Sfx, ERRCODE_WARNING_MASK | ERRCODE_CLASS_NONE | 51)
+#define ERRCODE_SFX_DOCUMENT_MACRO_DISABLED ErrCode(ErrCodeArea::Sfx, ERRCODE_WARNING_MASK | ERRCODE_CLASS_NONE | 52)
+#define ERRCODE_SFX_SHARED_NOPASSWORDCHANGE ErrCode(ErrCodeArea::Sfx, ERRCODE_WARNING_MASK | ERRCODE_CLASS_NONE | 54)
+#define ERRCODE_SFX_INCOMPLETE_ENCRYPTION   ErrCode(ErrCodeArea::Sfx, ERRCODE_WARNING_MASK | ERRCODE_CLASS_NONE | 55)
+#define ERRCODE_SFX_DOCUMENT_MACRO_DISABLED_MAC \
+                                            ErrCode(ErrCodeArea::Sfx, ERRCODE_WARNING_MASK | ERRCODE_CLASS_NONE | 56)
+#define ERRCODE_SFX_FORMAT_ROWCOL           ErrCode(ErrCodeArea::Sfx, ERRCODE_CLASS_NONE | 57)
 
 
 // Various
diff --git a/include/svtools/soerr.hxx b/include/svtools/soerr.hxx
index 11f18da3c979..71cc15bc39f4 100644
--- a/include/svtools/soerr.hxx
+++ b/include/svtools/soerr.hxx
@@ -24,8 +24,8 @@
 #include <svtools/svtdllapi.h>
 
 // error codes
-#define SO_ERR(x) ErrCode(ERRCODE_AREA_SO | ERRCODE_CLASS_SO | x)
-#define SO_WRN(x) ErrCode(ERRCODE_AREA_SO | ERRCODE_CLASS_SO | ERRCODE_WARNING_MASK | x)
+#define SO_ERR(x) ErrCode(ErrCodeArea::So, ERRCODE_CLASS_SO | x)
+#define SO_WRN(x) ErrCode(ErrCodeArea::So, ERRCODE_CLASS_SO | ERRCODE_WARNING_MASK | x)
 
 #define ERRCODE_SO_GENERALERROR             SO_ERR(1)
 #define ERRCODE_SO_FALSE                    SO_WRN(23)
diff --git a/include/svx/svxerr.hxx b/include/svx/svxerr.hxx
index ef20f13ada09..e1a8b6438598 100644
--- a/include/svx/svxerr.hxx
+++ b/include/svx/svxerr.hxx
@@ -21,49 +21,26 @@
 
 #include <vcl/errcode.hxx>
 
-// define ----------------------------------------------------------------
-
-#define ERRCODE_SVX_LINGU_THESAURUSNOTEXISTS   ErrCode(1UL | ERRCODE_AREA_SVX | \
-                                                ERRCODE_CLASS_NOTEXISTS)
-
-#define ERRCODE_SVX_LINGU_LINGUNOTEXISTS       ErrCode(3UL | ERRCODE_AREA_SVX | \
-                                                ERRCODE_CLASS_NOTEXISTS )
-#define ERRCODE_SVX_LINGU_HYPHENNOTEXISTS      ErrCode(4UL | ERRCODE_AREA_SVX | \
-                                                ERRCODE_CLASS_NOTEXISTS )
-#define ERRCODE_SVX_LINGU_DICT_NOTREADABLE     ErrCode(5UL | ERRCODE_AREA_SVX | \
-                                                ERRCODE_CLASS_READ )
-#define ERRCODE_SVX_LINGU_DICT_NOTWRITEABLE    ErrCode(6UL | ERRCODE_AREA_SVX | \
-                                                ERRCODE_CLASS_WRITE )
-
-#define ERRCODE_SVX_GRAPHIC_NOTREADABLE        ErrCode(7UL | ERRCODE_AREA_SVX | \
-                                                ERRCODE_CLASS_READ )
-
-#define ERRCODE_SVX_LINGU_NOLANGUAGE           ErrCode(9UL | ERRCODE_AREA_SVX | \
-                                                ERRCODE_CLASS_NOTEXISTS )
-#define ERRCODE_SVX_FORMS_NOIOSERVICES         ErrCode(10UL | ERRCODE_AREA_SVX )
-#define ERRCODE_SVX_FORMS_READWRITEFAILED      ErrCode(11UL | ERRCODE_AREA_SVX )
-
-#define ERRCODE_SVX_BULLETITEM_NOBULLET        ErrCode(12UL | ERRCODE_AREA_SVX )
-
-#define ERRCODE_SVX_MODIFIED_VBASIC_STORAGE    ErrCode(13UL | ERRCODE_AREA_SVX     \
-                                                     | ERRCODE_WARNING_MASK \
-                                                     | ERRCODE_CLASS_WRITE )
-
-#define ERRCODE_SVX_VBASIC_STORAGE_EXIST       ErrCode(14UL | ERRCODE_AREA_SVX     \
-                                                     | ERRCODE_WARNING_MASK \
-                                                     | ERRCODE_CLASS_WRITE )
-
+#define ERRCODE_SVX_LINGU_THESAURUSNOTEXISTS  ErrCode( ErrCodeArea::Svx,  1UL | ERRCODE_CLASS_NOTEXISTS)
+#define ERRCODE_SVX_LINGU_LINGUNOTEXISTS      ErrCode( ErrCodeArea::Svx,  3UL | ERRCODE_CLASS_NOTEXISTS )
+#define ERRCODE_SVX_LINGU_HYPHENNOTEXISTS     ErrCode( ErrCodeArea::Svx,  4UL | ERRCODE_CLASS_NOTEXISTS )
+#define ERRCODE_SVX_LINGU_DICT_NOTREADABLE    ErrCode( ErrCodeArea::Svx,  5UL | ERRCODE_CLASS_READ )
+#define ERRCODE_SVX_LINGU_DICT_NOTWRITEABLE   ErrCode( ErrCodeArea::Svx,  6UL | ERRCODE_CLASS_WRITE )
+#define ERRCODE_SVX_GRAPHIC_NOTREADABLE       ErrCode( ErrCodeArea::Svx,  7UL | ERRCODE_CLASS_READ )
+#define ERRCODE_SVX_LINGU_NOLANGUAGE          ErrCode( ErrCodeArea::Svx,  9UL | ERRCODE_CLASS_NOTEXISTS )
+#define ERRCODE_SVX_FORMS_NOIOSERVICES        ErrCode( ErrCodeArea::Svx, 10UL )
+#define ERRCODE_SVX_FORMS_READWRITEFAILED     ErrCode( ErrCodeArea::Svx, 11UL )
+#define ERRCODE_SVX_BULLETITEM_NOBULLET       ErrCode( ErrCodeArea::Svx, 12UL )
+#define ERRCODE_SVX_MODIFIED_VBASIC_STORAGE   ErrCode( ErrCodeArea::Svx, 13UL | ERRCODE_CLASS_WRITE | ERRCODE_WARNING_MASK )
+#define ERRCODE_SVX_VBASIC_STORAGE_EXIST      ErrCode( ErrCodeArea::Svx, 14UL | ERRCODE_CLASS_WRITE | ERRCODE_WARNING_MASK )
 /** Error message: "Wrong password." */
-#define ERRCODE_SVX_WRONGPASS               ErrCode(15UL | ERRCODE_AREA_SVX | ERRCODE_CLASS_NONE)
-
+#define ERRCODE_SVX_WRONGPASS                 ErrCode( ErrCodeArea::Svx, 15UL | ERRCODE_CLASS_NONE)
 /** Error message: "Read error. Unsupported encryption method." */
-#define ERRCODE_SVX_READ_FILTER_CRYPT       ErrCode(16UL | ERRCODE_AREA_SVX | ERRCODE_CLASS_READ)
-
+#define ERRCODE_SVX_READ_FILTER_CRYPT         ErrCode( ErrCodeArea::Svx, 16UL | ERRCODE_CLASS_READ)
 /** Error message: "Read error. Passwort encrypted Powerpoint documents..." */
-#define ERRCODE_SVX_READ_FILTER_PPOINT      ErrCode(17UL | ERRCODE_AREA_SVX | ERRCODE_CLASS_READ)
-
+#define ERRCODE_SVX_READ_FILTER_PPOINT        ErrCode( ErrCodeArea::Svx, 17UL | ERRCODE_CLASS_READ)
 /** Error message: "Warning. Passwort protection is not supported when..." */
-#define ERRCODE_SVX_EXPORT_FILTER_CRYPT      ErrCode(18UL | ERRCODE_AREA_SVX | ERRCODE_CLASS_EXPORT | ERRCODE_WARNING_MASK)
+#define ERRCODE_SVX_EXPORT_FILTER_CRYPT       ErrCode( ErrCodeArea::Svx, 18UL | ERRCODE_CLASS_EXPORT | ERRCODE_WARNING_MASK)
 
 
 // both codes will be used twice : with ERRCODE_CLASS_READ- and ERRCODE_CLASS_WRITE-bits
diff --git a/include/vcl/errcode.hxx b/include/vcl/errcode.hxx
index 9dc57efae451..5c90f286d520 100644
--- a/include/vcl/errcode.hxx
+++ b/include/vcl/errcode.hxx
@@ -28,7 +28,7 @@
 /*
 
 01234567012345670123456701234567
-||   ||          |||   ||      |
+||   ||           ||   ||      |
 Warning           ||   ||      |
  |   ||           ||   ||      |
  Dynamic          ||   ||      |
@@ -58,9 +58,12 @@ Warning           ||   ||      |
 #define ERRCODE_DYNAMIC_COUNT            31UL
 #define ERRCODE_DYNAMIC_MASK             (31UL << ERRCODE_DYNAMIC_SHIFT)
 
+enum class ErrCodeArea;
+
 class SAL_WARN_UNUSED ErrCode final
 {
 public:
+    explicit constexpr ErrCode(ErrCodeArea nArea, sal_uInt32 value) : m_value(value | (sal_uInt32(nArea) << ERRCODE_AREA_SHIFT)) {}
     explicit constexpr ErrCode(sal_uInt32 value) : m_value(value) {}
     constexpr ErrCode() : m_value(0) {}
 
@@ -105,14 +108,18 @@ public:
         return ErrCode(m_value & ~ERRCODE_DYNAMIC_MASK);
     }
 
-    sal_uInt16 GetRest() const {
-        return m_value & ERRCODE_RES_MASK;
+    ErrCodeArea GetArea() const {
+        return static_cast<ErrCodeArea>((m_value >> ERRCODE_AREA_SHIFT) & 0x01fff);
     }
 
     sal_uInt32 GetClass() const {
         return m_value & ERRCODE_CLASS_MASK;
     }
 
+    sal_uInt16 GetRest() const {
+        return m_value & ERRCODE_RES_MASK;
+    }
+
     OUString toHexString() const {
         return "0x" + OUString::number(m_value, 16);
     }
@@ -134,44 +141,24 @@ inline std::ostream& operator<<(std::ostream& os, const ErrCode& err)
     os << sal_uInt32(err); return os;
 }
 
-#define ERRCODE_AREA_IO                  (0   << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_SV                  (1   << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_SFX                 (2   << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_INET                (3   << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_VCL                 (4   << ERRCODE_AREA_SHIFT)
-
-#define ERRCODE_AREA_SVX                 (  8  << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_SVX_END             (( 9  << ERRCODE_AREA_SHIFT) - 1)
-#define ERRCODE_AREA_SO                  (  9  << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_SO_END              ((10  << ERRCODE_AREA_SHIFT) - 1)
-#define ERRCODE_AREA_SBX                 ( 10  << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_SBX_END             ((11  << ERRCODE_AREA_SHIFT) - 1)
-#define ERRCODE_AREA_DB                  ( 11  << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_DB_END              ((12  << ERRCODE_AREA_SHIFT) - 1)
-#define ERRCODE_AREA_JAVA                ( 12  << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_JAVA_END            ((13  << ERRCODE_AREA_SHIFT) - 1)
-#define ERRCODE_AREA_UUI                 ( 13  << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_UUI_END             ((14  << ERRCODE_AREA_SHIFT) - 1)
-#define ERRCODE_AREA_LIB2                ( 14  << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_LIB2_END            ((15  << ERRCODE_AREA_SHIFT) - 1)
-#define ERRCODE_AREA_CHAOS               ( 15  << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_CHAOS_END           ((16  << ERRCODE_AREA_SHIFT) - 1)
-
-#define ERRCODE_AREA_APP1                (32 << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_APP2                (40 << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_APP3                (48 << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_APP4                (56 << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_APP5                (64 << ERRCODE_AREA_SHIFT)
-#define ERRCODE_AREA_APP6                (72 << ERRCODE_AREA_SHIFT)
-
-#define ERRCODE_AREA_SC                  ERRCODE_AREA_APP1
-#define ERRCODE_AREA_SC_END              (ERRCODE_AREA_APP2-1)
-
-#define ERRCODE_AREA_SD                  ERRCODE_AREA_APP2
-#define ERRCODE_AREA_SD_END              (ERRCODE_AREA_APP3-1)
-
-#define ERRCODE_AREA_SW                  ERRCODE_AREA_APP4
-#define ERRCODE_AREA_SW_END              (ERRCODE_AREA_APP5-1)
+enum class ErrCodeArea {
+    Io                  = 0 ,
+    Sv                  = 1 ,
+    Sfx                 = 2 ,
+    Inet                = 3 ,
+    Vcl                 = 4 ,
+    Svx                 = 8 ,
+    So                  = 9 ,
+    Sbx                 = 10,
+    Db                  = 11,
+    Java                = 12,
+    Uui                 = 13,
+    Lib2                = 14,
+    Chaos               = 15,
+    Sc                  = 32,
+    Sd                  = 40,
+    Sw                  = 56,
+};
 
 #define ERRCODE_CLASS_NONE               ( 0  << ERRCODE_CLASS_SHIFT)
 #define ERRCODE_CLASS_ABORT              ( 1  << ERRCODE_CLASS_SHIFT)
@@ -199,44 +186,44 @@ inline std::ostream& operator<<(std::ostream& os, const ErrCode& err)
 
 #define ERRCODE_NONE                     ErrCode(0)
 
-#define ERRCODE_IO_MISPLACEDCHAR         ErrCode(1UL  | ERRCODE_CLASS_PARAMETER | ERRCODE_AREA_IO)
-#define ERRCODE_IO_NOTEXISTS             ErrCode(2UL  | ERRCODE_CLASS_NOTEXISTS | ERRCODE_AREA_IO)
-#define ERRCODE_IO_ALREADYEXISTS         ErrCode(3UL  | ERRCODE_CLASS_ALREADYEXISTS | ERRCODE_AREA_IO)
-#define ERRCODE_IO_NOTADIRECTORY         ErrCode(4UL  | ERRCODE_CLASS_PARAMETER | ERRCODE_AREA_IO)
-#define ERRCODE_IO_NOTAFILE              ErrCode(5UL  | ERRCODE_CLASS_PARAMETER | ERRCODE_AREA_IO)
-#define ERRCODE_IO_INVALIDDEVICE         ErrCode(6UL  | ERRCODE_CLASS_PATH | ERRCODE_AREA_IO)
-#define ERRCODE_IO_ACCESSDENIED          ErrCode(7UL  | ERRCODE_CLASS_ACCESS | ERRCODE_AREA_IO)
-#define ERRCODE_IO_LOCKVIOLATION         ErrCode(8UL  | ERRCODE_CLASS_LOCKING | ERRCODE_AREA_IO)
-#define ERRCODE_IO_OUTOFSPACE            ErrCode(9UL  | ERRCODE_CLASS_SPACE | ERRCODE_AREA_IO)
-#define ERRCODE_IO_ISWILDCARD            ErrCode(11UL | ERRCODE_CLASS_PARAMETER | ERRCODE_AREA_IO)
-#define ERRCODE_IO_NOTSUPPORTED          ErrCode(12UL | ERRCODE_CLASS_NOTSUPPORTED | ERRCODE_AREA_IO)
-#define ERRCODE_IO_GENERAL               ErrCode(13UL | ERRCODE_CLASS_GENERAL | ERRCODE_AREA_IO)
-#define ERRCODE_IO_TOOMANYOPENFILES      ErrCode(14UL | ERRCODE_CLASS_SPACE | ERRCODE_AREA_IO)
-#define ERRCODE_IO_CANTREAD              ErrCode(15UL | ERRCODE_CLASS_READ | ERRCODE_AREA_IO)
-#define ERRCODE_IO_CANTWRITE             ErrCode(16UL | ERRCODE_CLASS_WRITE | ERRCODE_AREA_IO)
-#define ERRCODE_IO_OUTOFMEMORY           ErrCode(17UL | ERRCODE_CLASS_SPACE | ERRCODE_AREA_IO)
-#define ERRCODE_IO_CANTSEEK              ErrCode(18UL | ERRCODE_CLASS_GENERAL | ERRCODE_AREA_IO)
-#define ERRCODE_IO_CANTTELL              ErrCode(19UL | ERRCODE_CLASS_GENERAL | ERRCODE_AREA_IO)
-#define ERRCODE_IO_WRONGVERSION          ErrCode(20UL | ERRCODE_CLASS_VERSION | ERRCODE_AREA_IO)
-#define ERRCODE_IO_WRONGFORMAT           ErrCode(21UL | ERRCODE_CLASS_FORMAT | ERRCODE_AREA_IO)
-#define ERRCODE_IO_INVALIDCHAR           ErrCode(22UL | ERRCODE_CLASS_PARAMETER | ERRCODE_AREA_IO)
-#define ERRCODE_IO_UNKNOWN               ErrCode(23UL | ERRCODE_CLASS_UNKNOWN | ERRCODE_AREA_IO)
-#define ERRCODE_IO_INVALIDACCESS         ErrCode(24UL | ERRCODE_CLASS_ACCESS | ERRCODE_AREA_IO)
-#define ERRCODE_IO_CANTCREATE            ErrCode(25UL | ERRCODE_CLASS_CREATE | ERRCODE_AREA_IO)
-#define ERRCODE_IO_INVALIDPARAMETER      ErrCode(26UL | ERRCODE_CLASS_PARAMETER | ERRCODE_AREA_IO)
-#define ERRCODE_IO_ABORT                 ErrCode(27UL | ERRCODE_CLASS_ABORT | ERRCODE_AREA_IO)
-#define ERRCODE_IO_NOTEXISTSPATH         ErrCode(28UL | ERRCODE_CLASS_NOTEXISTS | ERRCODE_AREA_IO)
-#define ERRCODE_IO_PENDING               ErrCode(29UL | ERRCODE_CLASS_NOTEXISTS | ERRCODE_AREA_IO)
-#define ERRCODE_IO_RECURSIVE             ErrCode(30UL | ERRCODE_CLASS_PARAMETER | ERRCODE_AREA_IO)
-#define ERRCODE_IO_NAMETOOLONG           ErrCode(31UL | ERRCODE_CLASS_PARAMETER | ERRCODE_AREA_IO)
-#define ERRCODE_IO_INVALIDLENGTH         ErrCode(32UL | ERRCODE_CLASS_PARAMETER | ERRCODE_AREA_IO)
-#define ERRCODE_IO_CURRENTDIR            ErrCode(33UL | ERRCODE_CLASS_PARAMETER | ERRCODE_AREA_IO)
-#define ERRCODE_IO_NOTSAMEDEVICE         ErrCode(34UL | ERRCODE_CLASS_PARAMETER | ERRCODE_AREA_IO)
-#define ERRCODE_IO_DEVICENOTREADY        ErrCode(35UL | ERRCODE_CLASS_READ | ERRCODE_AREA_IO)
-#define ERRCODE_IO_BADCRC                ErrCode(36UL | ERRCODE_CLASS_READ | ERRCODE_AREA_IO)
-#define ERRCODE_IO_WRITEPROTECTED        ErrCode(37UL | ERRCODE_CLASS_ACCESS | ERRCODE_AREA_IO)
-#define ERRCODE_IO_BROKENPACKAGE         ErrCode(38UL | ERRCODE_CLASS_FORMAT | ERRCODE_AREA_IO)
-#define ERRCODE_IO_NOTSTORABLEINBINARYFORMAT ErrCode(39UL | ERRCODE_CLASS_FORMAT | ERRCODE_AREA_IO)
+#define ERRCODE_IO_MISPLACEDCHAR         ErrCode( ErrCodeArea::Io, 1UL  | ERRCODE_CLASS_PARAMETER )
+#define ERRCODE_IO_NOTEXISTS             ErrCode( ErrCodeArea::Io, 2UL  | ERRCODE_CLASS_NOTEXISTS )
+#define ERRCODE_IO_ALREADYEXISTS         ErrCode( ErrCodeArea::Io, 3UL  | ERRCODE_CLASS_ALREADYEXISTS )
+#define ERRCODE_IO_NOTADIRECTORY         ErrCode( ErrCodeArea::Io, 4UL  | ERRCODE_CLASS_PARAMETER )
+#define ERRCODE_IO_NOTAFILE              ErrCode( ErrCodeArea::Io, 5UL  | ERRCODE_CLASS_PARAMETER )
+#define ERRCODE_IO_INVALIDDEVICE         ErrCode( ErrCodeArea::Io, 6UL  | ERRCODE_CLASS_PATH )
+#define ERRCODE_IO_ACCESSDENIED          ErrCode( ErrCodeArea::Io, 7UL  | ERRCODE_CLASS_ACCESS )
+#define ERRCODE_IO_LOCKVIOLATION         ErrCode( ErrCodeArea::Io, 8UL  | ERRCODE_CLASS_LOCKING )
+#define ERRCODE_IO_OUTOFSPACE            ErrCode( ErrCodeArea::Io, 9UL  | ERRCODE_CLASS_SPACE )
+#define ERRCODE_IO_ISWILDCARD            ErrCode( ErrCodeArea::Io, 11UL | ERRCODE_CLASS_PARAMETER )
+#define ERRCODE_IO_NOTSUPPORTED          ErrCode( ErrCodeArea::Io, 12UL | ERRCODE_CLASS_NOTSUPPORTED )
+#define ERRCODE_IO_GENERAL               ErrCode( ErrCodeArea::Io, 13UL | ERRCODE_CLASS_GENERAL )
+#define ERRCODE_IO_TOOMANYOPENFILES      ErrCode( ErrCodeArea::Io, 14UL | ERRCODE_CLASS_SPACE )
+#define ERRCODE_IO_CANTREAD              ErrCode( ErrCodeArea::Io, 15UL | ERRCODE_CLASS_READ )
+#define ERRCODE_IO_CANTWRITE             ErrCode( ErrCodeArea::Io, 16UL | ERRCODE_CLASS_WRITE )
+#define ERRCODE_IO_OUTOFMEMORY           ErrCode( ErrCodeArea::Io, 17UL | ERRCODE_CLASS_SPACE )
+#define ERRCODE_IO_CANTSEEK              ErrCode( ErrCodeArea::Io, 18UL | ERRCODE_CLASS_GENERAL )
+#define ERRCODE_IO_CANTTELL              ErrCode( ErrCodeArea::Io, 19UL | ERRCODE_CLASS_GENERAL )
+#define ERRCODE_IO_WRONGVERSION          ErrCode( ErrCodeArea::Io, 20UL | ERRCODE_CLASS_VERSION )
+#define ERRCODE_IO_WRONGFORMAT           ErrCode( ErrCodeArea::Io, 21UL | ERRCODE_CLASS_FORMAT )
+#define ERRCODE_IO_INVALIDCHAR           ErrCode( ErrCodeArea::Io, 22UL | ERRCODE_CLASS_PARAMETER )
+#define ERRCODE_IO_UNKNOWN               ErrCode( ErrCodeArea::Io, 23UL | ERRCODE_CLASS_UNKNOWN )
+#define ERRCODE_IO_INVALIDACCESS         ErrCode( ErrCodeArea::Io, 24UL | ERRCODE_CLASS_ACCESS )
+#define ERRCODE_IO_CANTCREATE            ErrCode( ErrCodeArea::Io, 25UL | ERRCODE_CLASS_CREATE )
+#define ERRCODE_IO_INVALIDPARAMETER      ErrCode( ErrCodeArea::Io, 26UL | ERRCODE_CLASS_PARAMETER )
+#define ERRCODE_IO_ABORT                 ErrCode( ErrCodeArea::Io, 27UL | ERRCODE_CLASS_ABORT )
+#define ERRCODE_IO_NOTEXISTSPATH         ErrCode( ErrCodeArea::Io, 28UL | ERRCODE_CLASS_NOTEXISTS )
+#define ERRCODE_IO_PENDING               ErrCode( ErrCodeArea::Io, 29UL | ERRCODE_CLASS_NOTEXISTS )
+#define ERRCODE_IO_RECURSIVE             ErrCode( ErrCodeArea::Io, 30UL | ERRCODE_CLASS_PARAMETER )
+#define ERRCODE_IO_NAMETOOLONG           ErrCode( ErrCodeArea::Io, 31UL | ERRCODE_CLASS_PARAMETER )
+#define ERRCODE_IO_INVALIDLENGTH         ErrCode( ErrCodeArea::Io, 32UL | ERRCODE_CLASS_PARAMETER )
+#define ERRCODE_IO_CURRENTDIR            ErrCode( ErrCodeArea::Io, 33UL | ERRCODE_CLASS_PARAMETER )
+#define ERRCODE_IO_NOTSAMEDEVICE         ErrCode( ErrCodeArea::Io, 34UL | ERRCODE_CLASS_PARAMETER )
+#define ERRCODE_IO_DEVICENOTREADY        ErrCode( ErrCodeArea::Io, 35UL | ERRCODE_CLASS_READ )
+#define ERRCODE_IO_BADCRC                ErrCode( ErrCodeArea::Io, 36UL | ERRCODE_CLASS_READ )
+#define ERRCODE_IO_WRITEPROTECTED        ErrCode( ErrCodeArea::Io, 37UL | ERRCODE_CLASS_ACCESS )
+#define ERRCODE_IO_BROKENPACKAGE         ErrCode( ErrCodeArea::Io, 38UL | ERRCODE_CLASS_FORMAT )
+#define ERRCODE_IO_NOTSTORABLEINBINARYFORMAT ErrCode( ErrCodeArea::Io, 39UL | ERRCODE_CLASS_FORMAT )
 
 // StreamErrorCodes
 
@@ -270,12 +257,12 @@ inline std::ostream& operator<<(std::ostream& os, const ErrCode& err)
 
 #define ERRCODE_ABORT                    ERRCODE_IO_ABORT
 
-#define ERRCODE_INET_NAME_RESOLVE        ErrCode(ERRCODE_AREA_INET | ERRCODE_CLASS_READ | 1)
-#define ERRCODE_INET_CONNECT             ErrCode(ERRCODE_AREA_INET | ERRCODE_CLASS_READ | 2)
-#define ERRCODE_INET_READ                ErrCode(ERRCODE_AREA_INET | ERRCODE_CLASS_READ | 3)
-#define ERRCODE_INET_WRITE               ErrCode(ERRCODE_AREA_INET | ERRCODE_CLASS_WRITE| 4)
-#define ERRCODE_INET_GENERAL             ErrCode(ERRCODE_AREA_INET | ERRCODE_CLASS_WRITE| 5)
-#define ERRCODE_INET_OFFLINE             ErrCode(ERRCODE_AREA_INET | ERRCODE_CLASS_READ | 6)
+#define ERRCODE_INET_NAME_RESOLVE        ErrCode(ErrCodeArea::Inet, ERRCODE_CLASS_READ | 1)
+#define ERRCODE_INET_CONNECT             ErrCode(ErrCodeArea::Inet, ERRCODE_CLASS_READ | 2)
+#define ERRCODE_INET_READ                ErrCode(ErrCodeArea::Inet, ERRCODE_CLASS_READ | 3)
+#define ERRCODE_INET_WRITE               ErrCode(ErrCodeArea::Inet, ERRCODE_CLASS_WRITE| 4)
+#define ERRCODE_INET_GENERAL             ErrCode(ErrCodeArea::Inet, ERRCODE_CLASS_WRITE| 5)
+#define ERRCODE_INET_OFFLINE             ErrCode(ErrCodeArea::Inet, ERRCODE_CLASS_READ | 6)
 
 #endif
 
diff --git a/include/vcl/graphicfilter.hxx b/include/vcl/graphicfilter.hxx
index e41583f899f8..62ed0745a3d9 100644
--- a/include/vcl/graphicfilter.hxx
+++ b/include/vcl/graphicfilter.hxx
@@ -36,13 +36,13 @@ class SvStream;
 struct WmfExternal;
 struct ConvertData;
 
-#define ERRCODE_GRFILTER_OPENERROR    ErrCode(ERRCODE_AREA_VCL | ERRCODE_CLASS_GENERAL | 1)
-#define ERRCODE_GRFILTER_IOERROR      ErrCode(ERRCODE_AREA_VCL | ERRCODE_CLASS_GENERAL | 2)
-#define ERRCODE_GRFILTER_FORMATERROR  ErrCode(ERRCODE_AREA_VCL | ERRCODE_CLASS_GENERAL | 3)
-#define ERRCODE_GRFILTER_VERSIONERROR ErrCode(ERRCODE_AREA_VCL | ERRCODE_CLASS_GENERAL | 4)
-#define ERRCODE_GRFILTER_FILTERERROR  ErrCode(ERRCODE_AREA_VCL | ERRCODE_CLASS_GENERAL | 5)
-#define ERRCODE_GRFILTER_ABORT        ErrCode(ERRCODE_AREA_VCL | ERRCODE_CLASS_GENERAL | 6)
-#define ERRCODE_GRFILTER_TOOBIG       ErrCode(ERRCODE_AREA_VCL | ERRCODE_CLASS_GENERAL | 7)
+#define ERRCODE_GRFILTER_OPENERROR    ErrCode(ErrCodeArea::Vcl, ERRCODE_CLASS_GENERAL | 1)
+#define ERRCODE_GRFILTER_IOERROR      ErrCode(ErrCodeArea::Vcl, ERRCODE_CLASS_GENERAL | 2)
+#define ERRCODE_GRFILTER_FORMATERROR  ErrCode(ErrCodeArea::Vcl, ERRCODE_CLASS_GENERAL | 3)
+#define ERRCODE_GRFILTER_VERSIONERROR ErrCode(ErrCodeArea::Vcl, ERRCODE_CLASS_GENERAL | 4)
+#define ERRCODE_GRFILTER_FILTERERROR  ErrCode(ErrCodeArea::Vcl, ERRCODE_CLASS_GENERAL | 5)
+#define ERRCODE_GRFILTER_ABORT        ErrCode(ErrCodeArea::Vcl, ERRCODE_CLASS_GENERAL | 6)
+#define ERRCODE_GRFILTER_TOOBIG       ErrCode(ErrCodeArea::Vcl, ERRCODE_CLASS_GENERAL | 7)
 
 #define GRFILTER_OUTHINT_GREY       1
 
diff --git a/sc/inc/scerrors.hxx b/sc/inc/scerrors.hxx
index 859d5a0befca..039c65d97dae 100644
--- a/sc/inc/scerrors.hxx
+++ b/sc/inc/scerrors.hxx
@@ -23,59 +23,60 @@
 #include <vcl/errcode.hxx>
 
 // ERRCODE_CLASS_READ - file related, displays "Read-Error" in MsgBox
-#define SCERR_IMPORT_CONNECT        ErrCode(   1 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
-#define SCERR_IMPORT_OPEN           ErrCode(   2 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
-#define SCERR_IMPORT_UNKNOWN        ErrCode(   3 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
+#define SCERR_IMPORT_CONNECT        ErrCode( ErrCodeArea::Sc,  1 | ERRCODE_CLASS_READ )
+#define SCERR_IMPORT_OPEN           ErrCode( ErrCodeArea::Sc,  2 | ERRCODE_CLASS_READ )
+#define SCERR_IMPORT_UNKNOWN        ErrCode( ErrCodeArea::Sc,  3 | ERRCODE_CLASS_READ )
   // out of memory
-#define SCERR_IMPORT_OUTOFMEM       ErrCode(   4 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
+#define SCERR_IMPORT_OUTOFMEM       ErrCode( ErrCodeArea::Sc,  4 | ERRCODE_CLASS_READ )
   // unknown WK? format (Lotus 1-2-3)
-#define SCERR_IMPORT_UNKNOWN_WK     ErrCode(   5 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
+#define SCERR_IMPORT_UNKNOWN_WK     ErrCode( ErrCodeArea::Sc,  5 | ERRCODE_CLASS_READ )
   // format error during reading (no formula error!)
-#define SCERR_IMPORT_FORMAT         ErrCode(   6 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
+#define SCERR_IMPORT_FORMAT         ErrCode( ErrCodeArea::Sc,  6 | ERRCODE_CLASS_READ )
   // filter not implemented
-#define SCERR_IMPORT_NI             ErrCode(   7 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
+#define SCERR_IMPORT_NI             ErrCode( ErrCodeArea::Sc,  7 | ERRCODE_CLASS_READ )
   // unknown BIFF format (Excel)
-#define SCERR_IMPORT_UNKNOWN_BIFF   ErrCode(   8 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
-#define SCERR_IMPORT_NI_BIFF        ErrCode(   9 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
+#define SCERR_IMPORT_UNKNOWN_BIFF   ErrCode( ErrCodeArea::Sc,  8 | ERRCODE_CLASS_READ )
+#define SCERR_IMPORT_NI_BIFF        ErrCode( ErrCodeArea::Sc,  9 | ERRCODE_CLASS_READ )
   // file password protected
-#define SCERR_IMPORT_FILEPASSWD     ErrCode(  10 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
+#define SCERR_IMPORT_FILEPASSWD     ErrCode( ErrCodeArea::Sc, 10 | ERRCODE_CLASS_READ )
   // internal error
-#define SCERR_IMPORT_INTERNAL       ErrCode(  11 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
-#define SCERR_IMPORT_8K_LIMIT       ErrCode(  12 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
-#define SCWARN_IMPORT_OPEN_FM3      ErrCode(  13 | ERRCODE_CLASS_READ | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
-#define SCWARN_IMPORT_WRONG_FM3     ErrCode(  14 | ERRCODE_CLASS_READ | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
-#define SCWARN_IMPORT_INFOLOST      ErrCode(  15 | ERRCODE_CLASS_READ | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
-#define SCERR_IMPORT_FILE_ROWCOL    ErrCode(  16 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
-#define SCERR_IMPORT_FORMAT_ROWCOL  ErrCode(  17 | ERRCODE_CLASS_READ | ERRCODE_AREA_SC )
-#define SCWARN_IMPORT_FILE_ROWCOL   ErrCode(  18 | ERRCODE_CLASS_READ | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
+#define SCERR_IMPORT_INTERNAL       ErrCode( ErrCodeArea::Sc, 11 | ERRCODE_CLASS_READ )
+#define SCERR_IMPORT_8K_LIMIT       ErrCode( ErrCodeArea::Sc, 12 | ERRCODE_CLASS_READ )
+#define SCWARN_IMPORT_OPEN_FM3      ErrCode( ErrCodeArea::Sc, 13 | ERRCODE_CLASS_READ | ERRCODE_WARNING_MASK )
+#define SCWARN_IMPORT_WRONG_FM3     ErrCode( ErrCodeArea::Sc, 14 | ERRCODE_CLASS_READ | ERRCODE_WARNING_MASK )
+#define SCWARN_IMPORT_INFOLOST      ErrCode( ErrCodeArea::Sc, 15 | ERRCODE_CLASS_READ | ERRCODE_WARNING_MASK )
+#define SCERR_IMPORT_FILE_ROWCOL    ErrCode( ErrCodeArea::Sc, 16 | ERRCODE_CLASS_READ )
+#define SCERR_IMPORT_FORMAT_ROWCOL  ErrCode( ErrCodeArea::Sc, 17 | ERRCODE_CLASS_READ )
+#define SCWARN_IMPORT_FILE_ROWCOL   ErrCode( ErrCodeArea::Sc, 18 | ERRCODE_CLASS_READ | ERRCODE_WARNING_MASK )
 
 // ERRCODE_CLASS_WRITE - file related, displays "Write-Error" in MsgBox
-#define SCERR_EXPORT_CONNECT        ErrCode(   1 | ERRCODE_CLASS_WRITE | ERRCODE_AREA_SC )
-#define SCERR_EXPORT_DATA           ErrCode(   2 | ERRCODE_CLASS_WRITE | ERRCODE_AREA_SC )
-#define SCERR_EXPORT_ENCODING       ErrCode(   3 | ERRCODE_CLASS_WRITE | ERRCODE_AREA_SC )
-#define SCERR_EXPORT_FIELDWIDTH     ErrCode(   4 | ERRCODE_CLASS_WRITE | ERRCODE_AREA_SC )
-#define SCERR_EXPORT_SQLEXCEPTION   ErrCode(   5 | ERRCODE_CLASS_WRITE | ERRCODE_AREA_SC )
+#define SCERR_EXPORT_CONNECT        ErrCode( ErrCodeArea::Sc,  1 | ERRCODE_CLASS_WRITE )
+#define SCERR_EXPORT_DATA           ErrCode( ErrCodeArea::Sc,  2 | ERRCODE_CLASS_WRITE )
+#define SCERR_EXPORT_ENCODING       ErrCode( ErrCodeArea::Sc,  3 | ERRCODE_CLASS_WRITE )
+#define SCERR_EXPORT_FIELDWIDTH     ErrCode( ErrCodeArea::Sc,  4 | ERRCODE_CLASS_WRITE )
+#define SCERR_EXPORT_SQLEXCEPTION   ErrCode( ErrCodeArea::Sc,  5 | ERRCODE_CLASS_WRITE )
 
 // ERRCODE_CLASS_IMPORT - does not display "Read-Error" in MsgBox
     // overflow of cell coordinates
     // table restricted to valid area (?)
-#define SCWARN_IMPORT_RANGE_OVERFLOW  ErrCode(  1 | ERRCODE_CLASS_IMPORT | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
-#define SCWARN_IMPORT_ROW_OVERFLOW    ErrCode(   2 | ERRCODE_CLASS_IMPORT | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
-#define SCWARN_IMPORT_COLUMN_OVERFLOW ErrCode( 3 | ERRCODE_CLASS_IMPORT | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
-#define SCWARN_IMPORT_SHEET_OVERFLOW  ErrCode(  4 | ERRCODE_CLASS_IMPORT | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
-#define SCWARN_IMPORT_CELL_OVERFLOW   ErrCode(   5 | ERRCODE_CLASS_IMPORT | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
-#define SCWARN_IMPORT_FEATURES_LOST   ErrCode(   6 | ERRCODE_CLASS_IMPORT | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
+#define SCWARN_IMPORT_RANGE_OVERFLOW  ErrCode( ErrCodeArea::Sc, 1 | ERRCODE_CLASS_IMPORT | ERRCODE_WARNING_MASK )
+#define SCWARN_IMPORT_ROW_OVERFLOW    ErrCode( ErrCodeArea::Sc, 2 | ERRCODE_CLASS_IMPORT | ERRCODE_WARNING_MASK )
+#define SCWARN_IMPORT_COLUMN_OVERFLOW ErrCode( ErrCodeArea::Sc, 3 | ERRCODE_CLASS_IMPORT | ERRCODE_WARNING_MASK )
+#define SCWARN_IMPORT_SHEET_OVERFLOW  ErrCode( ErrCodeArea::Sc, 4 | ERRCODE_CLASS_IMPORT | ERRCODE_WARNING_MASK )
+#define SCWARN_IMPORT_CELL_OVERFLOW   ErrCode( ErrCodeArea::Sc, 5 | ERRCODE_CLASS_IMPORT | ERRCODE_WARNING_MASK )
+#define SCWARN_IMPORT_FEATURES_LOST   ErrCode( ErrCodeArea::Sc, 6 | ERRCODE_CLASS_IMPORT | ERRCODE_WARNING_MASK )
 
 // ERRCODE_CLASS_EXPORT - does not display "Write-Error" in MsgBox
-#define SCWARN_EXPORT_NONCONVERTIBLE_CHARS  ErrCode(   1 | ERRCODE_CLASS_EXPORT | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
-#define SCWARN_EXPORT_ASCII         ErrCode(   2 | ERRCODE_CLASS_EXPORT | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
-#define SCWARN_EXPORT_MAXROW        ErrCode(   3 | ERRCODE_CLASS_EXPORT | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
-#define SCWARN_EXPORT_MAXCOL        ErrCode(   4 | ERRCODE_CLASS_EXPORT | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
-#define SCWARN_EXPORT_MAXTAB        ErrCode(   5 | ERRCODE_CLASS_EXPORT | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
-#define SCWARN_EXPORT_DATALOST      ErrCode(   6 | ERRCODE_CLASS_EXPORT | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
+#define SCWARN_EXPORT_NONCONVERTIBLE_CHARS  \
+                                    ErrCode( ErrCodeArea::Sc,  1 | ERRCODE_CLASS_EXPORT | ERRCODE_WARNING_MASK )
+#define SCWARN_EXPORT_ASCII         ErrCode( ErrCodeArea::Sc,  2 | ERRCODE_CLASS_EXPORT | ERRCODE_WARNING_MASK )
+#define SCWARN_EXPORT_MAXROW        ErrCode( ErrCodeArea::Sc,  3 | ERRCODE_CLASS_EXPORT | ERRCODE_WARNING_MASK )
+#define SCWARN_EXPORT_MAXCOL        ErrCode( ErrCodeArea::Sc,  4 | ERRCODE_CLASS_EXPORT | ERRCODE_WARNING_MASK )
+#define SCWARN_EXPORT_MAXTAB        ErrCode( ErrCodeArea::Sc,  5 | ERRCODE_CLASS_EXPORT | ERRCODE_WARNING_MASK )
+#define SCWARN_EXPORT_DATALOST      ErrCode( ErrCodeArea::Sc,  6 | ERRCODE_CLASS_EXPORT | ERRCODE_WARNING_MASK )
 
 // ERRCODE_CLASS_GENERAL
-#define SCWARN_CORE_HARD_RECALC     ErrCode(   1 | ERRCODE_CLASS_GENERAL | ERRCODE_WARNING_MASK | ERRCODE_AREA_SC )
+#define SCWARN_CORE_HARD_RECALC     ErrCode( ErrCodeArea::Sc,  1 | ERRCODE_CLASS_GENERAL | ERRCODE_WARNING_MASK )
 
 #endif
 
diff --git a/sc/inc/scwarngs.hxx b/sc/inc/scwarngs.hxx
index fb460d2cec12..5bb783cfc488 100644
--- a/sc/inc/scwarngs.hxx
+++ b/sc/inc/scwarngs.hxx
@@ -20,8 +20,8 @@
 #ifndef INCLUDED_SC_INC_SCWARNGS_HXX
 #define INCLUDED_SC_INC_SCWARNGS_HXX
 
-#define ERRCODE_SC_EXPORT_WRN_ASCII       (ERRCODE_WARNING_MASK | ERRCODE_AREA_SC | ERRCODE_CLASS_WRITE | 1)
-#define ERRCODE_SC_IMPORT_WRN_RNGOVRFLW   (ERRCODE_WARNING_MASK | ERRCODE_AREA_SC | ERRCODE_CLASS_READ  | 1)
+#define ERRCODE_SC_EXPORT_WRN_ASCII       (ERRCODE_WARNING_MASK | ErrCodeArea::Sc | ERRCODE_CLASS_WRITE | 1)
+#define ERRCODE_SC_IMPORT_WRN_RNGOVRFLW   (ERRCODE_WARNING_MASK | ErrCodeArea::Sc | ERRCODE_CLASS_READ  | 1)
 
 #endif
 
diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx
index 26e34ce0910f..e30dd47e4b11 100644
--- a/sc/source/ui/app/scmod.cxx
+++ b/sc/source/ui/app/scmod.cxx
@@ -180,8 +180,8 @@ ScModule::ScModule( SfxObjectFactory* pFact ) :
     // Between OfficeApplication::Init and ScGlobal::Init
     SvxErrorHandler::ensure();
     pErrorHdl    = new SfxErrorHandler(RID_ERRHDLSC,
-                                       ErrCode(ERRCODE_AREA_SC),
-                                       ErrCode(ERRCODE_AREA_APP2-1),
+                                       ErrCodeArea::Sc,
+                                       ErrCodeArea::Sc,
                                        GetResLocale());
 
     aSpellIdle.SetInvokeHandler( LINK( this, ScModule, SpellTimerHdl ) );
diff --git a/sd/inc/sderror.hxx b/sd/inc/sderror.hxx
index 2be4c8c634b3..be444100f80d 100644
--- a/sd/inc/sderror.hxx
+++ b/sd/inc/sderror.hxx
@@ -23,11 +23,11 @@
 #include <vcl/errcode.hxx>
 
 // Import errors
-#define ERR_FORMAT_ROWCOL               ErrCode(ERRCODE_AREA_SD | ERRCODE_CLASS_READ | 1)
-#define ERR_FORMAT_FILE_ROWCOL          ErrCode(ERRCODE_AREA_SD | ERRCODE_CLASS_READ | 2)
+#define ERR_FORMAT_ROWCOL               ErrCode(ErrCodeArea::Sd, ERRCODE_CLASS_READ | 1)
+#define ERR_FORMAT_FILE_ROWCOL          ErrCode(ErrCodeArea::Sd, ERRCODE_CLASS_READ | 2)
 
 // Warnings
-#define WARN_FORMAT_FILE_ROWCOL         ErrCode(ERRCODE_AREA_SD | ERRCODE_WARNING_MASK | ERRCODE_CLASS_READ | 100)
+#define WARN_FORMAT_FILE_ROWCOL         ErrCode(ErrCodeArea::Sd, ERRCODE_WARNING_MASK | ERRCODE_CLASS_READ | 100)
 
 #endif
 
diff --git a/sd/source/ui/app/sdmod.cxx b/sd/source/ui/app/sdmod.cxx
index cbe92e563b29..958d81a85c89 100644
--- a/sd/source/ui/app/sdmod.cxx
+++ b/sd/source/ui/app/sdmod.cxx
@@ -82,7 +82,7 @@ SdModule::SdModule(SfxObjectFactory* pFact1, SfxObjectFactory* pFact2 )
     pSearchItem->SetAppFlag(SvxSearchApp::DRAW);
     StartListening( *SfxGetpApp() );
     SvxErrorHandler::ensure();
-    mpErrorHdl = new SfxErrorHandler(RID_SD_ERRHDL, ErrCode(ERRCODE_AREA_SD), ErrCode(ERRCODE_AREA_SD_END), GetResLocale());
+    mpErrorHdl = new SfxErrorHandler(RID_SD_ERRHDL, ErrCodeArea::Sd, ErrCodeArea::Sd, GetResLocale());
 
     // Create a new ref device and (by calling SetReferenceDevice())
     // set its resolution to 600 DPI.  This leads to a visually better
diff --git a/sfx2/source/appl/appinit.cxx b/sfx2/source/appl/appinit.cxx
index 5afa8c736e13..4ab0887200b9 100644
--- a/sfx2/source/appl/appinit.cxx
+++ b/sfx2/source/appl/appinit.cxx
@@ -207,13 +207,13 @@ void SfxApplication::Initialize_Impl()
     Help::EnableExtHelp();
 
     pImpl->m_pToolsErrorHdl = new SfxErrorHandler(
-        getRID_ERRHDL(), ErrCode(ERRCODE_AREA_IO), ErrCode(ERRCODE_AREA_SVX));
+        getRID_ERRHDL(), ErrCodeArea::Io, ErrCodeArea::Vcl);
 
     pImpl->m_pSoErrorHdl = new SfxErrorHandler(
-        getRID_SO_ERROR_HANDLER(), ErrCode(ERRCODE_AREA_SO), ErrCode(ERRCODE_AREA_SO_END), SvtResLocale());
+        getRID_SO_ERROR_HANDLER(), ErrCodeArea::So, ErrCodeArea::So, SvtResLocale());
 #if HAVE_FEATURE_SCRIPTING
     pImpl->m_pSbxErrorHdl = new SfxErrorHandler(
-        getRID_BASIC_START(), ErrCode(ERRCODE_AREA_SBX), ErrCode(ERRCODE_AREA_SBX_END), BasResLocale());
+        getRID_BASIC_START(), ErrCodeArea::Sbx, ErrCodeArea::Sbx, BasResLocale());
 #endif
 
     if (!utl::ConfigManager::IsAvoidConfig())
diff --git a/svtools/source/misc/ehdl.cxx b/svtools/source/misc/ehdl.cxx
index c5184c8c40eb..b8122c59a872 100644
--- a/svtools/source/misc/ehdl.cxx
+++ b/svtools/source/misc/ehdl.cxx
@@ -139,7 +139,7 @@ static DialogMask aWndFunc(
     return nRet;
 }
 
-SfxErrorHandler::SfxErrorHandler(const ErrMsgCode* pIdPs, ErrCode lStartP, ErrCode lEndP, const std::locale& rLocale)
+SfxErrorHandler::SfxErrorHandler(const ErrMsgCode* pIdPs, ErrCodeArea lStartP, ErrCodeArea lEndP, const std::locale& rLocale)
     : lStart(lStartP), lEnd(lEndP), pIds(pIdPs), rResLocale(rLocale)
 {
     ErrorRegistry::RegisterDisplay(&aWndFunc);
@@ -159,7 +159,7 @@ bool SfxErrorHandler::CreateString(const ErrorInfo *pErr, OUString &rStr) const
 
 {
     ErrCode nErrCode(sal_uInt32(pErr->GetErrorCode()) & ERRCODE_ERROR_MASK);
-    if( nErrCode>=lEnd || nErrCode<=lStart )
+    if( pErr->GetErrorCode().GetArea() > lEnd || pErr->GetErrorCode().GetArea() <= lStart )
         return false;
     if(GetErrorString(nErrCode, rStr))
     {
diff --git a/svx/source/items/svxerr.cxx b/svx/source/items/svxerr.cxx
index 3c6b509369f4..57f81b01733b 100644
--- a/svx/source/items/svxerr.cxx
+++ b/svx/source/items/svxerr.cxx
@@ -25,7 +25,7 @@
 
 SvxErrorHandler::SvxErrorHandler() :
   SfxErrorHandler(
-      getRID_SVXERRCODE(), ErrCode(ERRCODE_AREA_SVX), ErrCode(ERRCODE_AREA_SVX_END), SvxResLocale())
+      getRID_SVXERRCODE(), ErrCodeArea::Svx, ErrCodeArea::Svx, SvxResLocale())
 {
 }
 
diff --git a/sw/inc/error.hrc b/sw/inc/error.hrc
index 77d6baa5ae64..9c054be65f71 100644
--- a/sw/inc/error.hrc
+++ b/sw/inc/error.hrc
@@ -24,8 +24,8 @@
 
 #define NC_(Context, String) (Context "\004" u8##String)
 
-#define ERR_CODE( class, err )  ErrCode(class | (sal_uInt32(err) - ERRCODE_AREA_SW))
-#define WARN_CODE( class, err ) ErrCode(class | (sal_uInt32(err) - (ERRCODE_AREA_SW | ERRCODE_WARNING_MASK)))
+#define ERR_CODE( class, err )  ErrCode(ErrCodeArea::Sw, class | sal_uInt32(err))
+#define WARN_CODE( class, err ) ErrCode(ErrCodeArea::Sw, class | sal_uInt32(err))
 
 const ErrMsgCode RID_SW_ERRHDL[] =
 {
diff --git a/sw/inc/swerror.h b/sw/inc/swerror.h
index a4094786be30..afa2a4ef660a 100644
--- a/sw/inc/swerror.h
+++ b/sw/inc/swerror.h
@@ -23,26 +23,26 @@
 #include <vcl/errcode.hxx>
 
 // Import & Export
-#define ERR_SWG_FILE_FORMAT_ERROR       ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_READ | 1 )
-#define ERR_SWG_READ_ERROR              ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_READ | 2 )
-#define ERR_WW6_NO_WW6_FILE_ERR         ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_READ | 8 )
-#define ERR_FORMAT_ROWCOL               ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_READ | 12)
-#define ERR_WW8_NO_WW8_FILE_ERR         ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_READ | 14)
-#define ERR_FORMAT_FILE_ROWCOL          ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_READ | 15)
-#define ERR_SWG_WRITE_ERROR             ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_WRITE | 30 )
-#define ERR_SWG_OLD_GLOSSARY            ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_WRITE | 31 )
-#define ERR_WRITE_ERROR_FILE            ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_WRITE | 35 )
-#define ERR_SWG_INTERNAL_ERROR          ErrCode(ERRCODE_AREA_SW | 50 )
-#define ERR_TXTBLOCK_NEWFILE_ERROR      ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_LOCKING | 55 )
-#define ERR_AUTOPATH_ERROR              ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_PATH | 55 )
-#define ERR_TBLSPLIT_ERROR              ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_NONE | 56 )
-#define ERR_TBLINSCOL_ERROR             ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_NONE | 57 )
-#define ERR_TBLDDECHG_ERROR             ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_NONE | 58 )
-#define WARN_SWG_FEATURES_LOST          ErrCode(ERRCODE_AREA_SW | ERRCODE_WARNING_MASK | 72 )
-#define WARN_SWG_POOR_LOAD              ErrCode(ERRCODE_AREA_SW | ERRCODE_WARNING_MASK | ERRCODE_CLASS_WRITE | 74 )
-#define WARN_SWG_HTML_NO_MACROS         ErrCode(ERRCODE_AREA_SW | ERRCODE_WARNING_MASK | ERRCODE_CLASS_WRITE | 75)
-#define WARN_WRITE_ERROR_FILE           ErrCode(ERRCODE_AREA_SW | ERRCODE_WARNING_MASK | ERRCODE_CLASS_WRITE | 76)
-#define WARN_FORMAT_FILE_ROWCOL         ErrCode(ERRCODE_AREA_SW | ERRCODE_WARNING_MASK | ERRCODE_CLASS_READ | 77)
+#define ERR_SWG_FILE_FORMAT_ERROR       ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_READ | 1 )
+#define ERR_SWG_READ_ERROR              ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_READ | 2 )
+#define ERR_WW6_NO_WW6_FILE_ERR         ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_READ | 8 )
+#define ERR_FORMAT_ROWCOL               ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_READ | 12)
+#define ERR_WW8_NO_WW8_FILE_ERR         ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_READ | 14)
+#define ERR_FORMAT_FILE_ROWCOL          ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_READ | 15)
+#define ERR_SWG_WRITE_ERROR             ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_WRITE | 30 )
+#define ERR_SWG_OLD_GLOSSARY            ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_WRITE | 31 )
+#define ERR_WRITE_ERROR_FILE            ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_WRITE | 35 )
+#define ERR_SWG_INTERNAL_ERROR          ErrCode(ErrCodeArea::Sw, 50 )
+#define ERR_TXTBLOCK_NEWFILE_ERROR      ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_LOCKING | 55 )
+#define ERR_AUTOPATH_ERROR              ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_PATH | 55 )
+#define ERR_TBLSPLIT_ERROR              ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_NONE | 56 )
+#define ERR_TBLINSCOL_ERROR             ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_NONE | 57 )
+#define ERR_TBLDDECHG_ERROR             ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_NONE | 58 )
+#define WARN_SWG_FEATURES_LOST          ErrCode(ErrCodeArea::Sw, ERRCODE_WARNING_MASK | 72 )
+#define WARN_SWG_POOR_LOAD              ErrCode(ErrCodeArea::Sw, ERRCODE_WARNING_MASK | ERRCODE_CLASS_WRITE | 74 )
+#define WARN_SWG_HTML_NO_MACROS         ErrCode(ErrCodeArea::Sw, ERRCODE_WARNING_MASK | ERRCODE_CLASS_WRITE | 75)
+#define WARN_WRITE_ERROR_FILE           ErrCode(ErrCodeArea::Sw, ERRCODE_WARNING_MASK | ERRCODE_CLASS_WRITE | 76)
+#define WARN_FORMAT_FILE_ROWCOL         ErrCode(ErrCodeArea::Sw, ERRCODE_WARNING_MASK | ERRCODE_CLASS_READ | 77)
 
 #endif
 
diff --git a/sw/source/filter/ascii/parasc.cxx b/sw/source/filter/ascii/parasc.cxx
index 8aa20bea92aa..3846182a7034 100644
--- a/sw/source/filter/ascii/parasc.cxx
+++ b/sw/source/filter/ascii/parasc.cxx
@@ -284,7 +284,7 @@ ErrCode SwASCIIParser::ReadChars()
         hConverter = rtl_createTextToUnicodeConverter( currentCharSet );
         OSL_ENSURE( hConverter, "no string convert available" );
         if (!hConverter)
-            return ErrCode(ERRCODE_AREA_SW | ERRCODE_CLASS_READ);
+            return ErrCode(ErrCodeArea::Sw, ERRCODE_CLASS_READ);
         bSwapUnicode = false;
         hContext = rtl_createTextToUnicodeContext( hConverter );
     }
diff --git a/sw/source/uibase/app/swmodule.cxx b/sw/source/uibase/app/swmodule.cxx
index 636098cbd202..962f7e7f14f1 100644
--- a/sw/source/uibase/app/swmodule.cxx
+++ b/sw/source/uibase/app/swmodule.cxx
@@ -172,8 +172,8 @@ SwModule::SwModule( SfxObjectFactory* pWebFact,
     SetName( "StarWriter" );
     SvxErrorHandler::ensure();
     m_pErrorHandler = new SfxErrorHandler( RID_SW_ERRHDL,
-                                     ErrCode(ERRCODE_AREA_SW),
-                                     ErrCode(ERRCODE_AREA_SW_END),
+                                     ErrCodeArea::Sw,
+                                     ErrCodeArea::Sw,
                                      GetResLocale() );
 
     m_pModuleConfig = new SwModuleOptions;
diff --git a/uui/inc/ids.hxx b/uui/inc/ids.hxx
index 15d2e12892d9..2d3b6d4e7408 100644
--- a/uui/inc/ids.hxx
+++ b/uui/inc/ids.hxx
@@ -22,70 +22,70 @@
 
 #include <vcl/errcode.hxx>
 
-#define ERRCODE_UUI_IO_ABORT                                    ErrCode(ERRCODE_AREA_UUI + 0)
-#define ERRCODE_UUI_IO_ACCESSDENIED                             ErrCode(ERRCODE_AREA_UUI + 1)
-#define ERRCODE_UUI_IO_ALREADYEXISTS                            ErrCode(ERRCODE_AREA_UUI + 2)
-#define ERRCODE_UUI_IO_BADCRC                                   ErrCode(ERRCODE_AREA_UUI + 3)
-#define ERRCODE_UUI_IO_CANTCREATE                               ErrCode(ERRCODE_AREA_UUI + 4)
-#define ERRCODE_UUI_IO_CANTREAD                                 ErrCode(ERRCODE_AREA_UUI + 5)
-#define ERRCODE_UUI_IO_CANTSEEK                                 ErrCode(ERRCODE_AREA_UUI + 6)
-#define ERRCODE_UUI_IO_CANTTELL                                 ErrCode(ERRCODE_AREA_UUI + 7)
-#define ERRCODE_UUI_IO_CANTWRITE                                ErrCode(ERRCODE_AREA_UUI + 8)
-#define ERRCODE_UUI_IO_CURRENTDIR                               ErrCode(ERRCODE_AREA_UUI + 9)
-#define ERRCODE_UUI_IO_NOTREADY                                 ErrCode(ERRCODE_AREA_UUI + 10)
-#define ERRCODE_UUI_IO_NOTSAMEDEVICE                            ErrCode(ERRCODE_AREA_UUI + 11)
-#define ERRCODE_UUI_IO_GENERAL                                  ErrCode(ERRCODE_AREA_UUI + 12)
-#define ERRCODE_UUI_IO_INVALIDACCESS                            ErrCode(ERRCODE_AREA_UUI + 13)
-#define ERRCODE_UUI_IO_INVALIDCHAR                              ErrCode(ERRCODE_AREA_UUI + 14)
-#define ERRCODE_UUI_IO_INVALIDDEVICE                            ErrCode(ERRCODE_AREA_UUI + 15)
-#define ERRCODE_UUI_IO_INVALIDLENGTH                            ErrCode(ERRCODE_AREA_UUI + 16)
-#define ERRCODE_UUI_IO_INVALIDPARAMETER                         ErrCode(ERRCODE_AREA_UUI + 17)
-#define ERRCODE_UUI_IO_ISWILDCARD                               ErrCode(ERRCODE_AREA_UUI + 18)
-#define ERRCODE_UUI_IO_LOCKVIOLATION                            ErrCode(ERRCODE_AREA_UUI + 19)
-#define ERRCODE_UUI_IO_MISPLACEDCHAR                            ErrCode(ERRCODE_AREA_UUI + 20)
-#define ERRCODE_UUI_IO_NAMETOOLONG                              ErrCode(ERRCODE_AREA_UUI + 21)
-#define ERRCODE_UUI_IO_NOTEXISTS                                ErrCode(ERRCODE_AREA_UUI + 22)
-#define ERRCODE_UUI_IO_NOTEXISTSPATH                            ErrCode(ERRCODE_AREA_UUI + 23)
-#define ERRCODE_UUI_IO_NOTSUPPORTED                             ErrCode(ERRCODE_AREA_UUI + 24)
-#define ERRCODE_UUI_IO_NOTADIRECTORY                            ErrCode(ERRCODE_AREA_UUI + 25)
-#define ERRCODE_UUI_IO_NOTAFILE                                 ErrCode(ERRCODE_AREA_UUI + 26)
-#define ERRCODE_UUI_IO_OUTOFSPACE                               ErrCode(ERRCODE_AREA_UUI + 27)
-#define ERRCODE_UUI_IO_TOOMANYOPENFILES                         ErrCode(ERRCODE_AREA_UUI + 28)
-#define ERRCODE_UUI_IO_OUTOFMEMORY                              ErrCode(ERRCODE_AREA_UUI + 29)
-#define ERRCODE_UUI_IO_PENDING                                  ErrCode(ERRCODE_AREA_UUI + 30)
-#define ERRCODE_UUI_IO_RECURSIVE                                ErrCode(ERRCODE_AREA_UUI + 31)
-#define ERRCODE_UUI_IO_UNKNOWN                                  ErrCode(ERRCODE_AREA_UUI + 32)
-#define ERRCODE_UUI_IO_WRITEPROTECTED                           ErrCode(ERRCODE_AREA_UUI + 33)
-#define ERRCODE_UUI_IO_WRONGFORMAT                              ErrCode(ERRCODE_AREA_UUI + 34)
-#define ERRCODE_UUI_IO_WRONGVERSION                             ErrCode(ERRCODE_AREA_UUI + 35)
-#define ERRCODE_UUI_IO_NOTEXISTS_VOLUME                         ErrCode(ERRCODE_AREA_UUI + 36)
-#define ERRCODE_UUI_IO_NOTEXISTS_FOLDER                         ErrCode(ERRCODE_AREA_UUI + 37)
-#define ERRCODE_UUI_WRONGJAVA                                   ErrCode(ERRCODE_AREA_UUI + 38)
-#define ERRCODE_UUI_WRONGJAVA_VERSION                           ErrCode(ERRCODE_AREA_UUI + 39)
-#define ERRCODE_UUI_WRONGJAVA_MIN                               ErrCode(ERRCODE_AREA_UUI + 40)
-#define ERRCODE_UUI_WRONGJAVA_VERSION_MIN                       ErrCode(ERRCODE_AREA_UUI + 41)
-#define ERRCODE_UUI_BADPARTNERSHIP                              ErrCode(ERRCODE_AREA_UUI + 42)
-#define ERRCODE_UUI_BADPARTNERSHIP_NAME                         ErrCode(ERRCODE_AREA_UUI + 43)
-#define ERRCODE_UUI_IO_NOTREADY_VOLUME                          ErrCode(ERRCODE_AREA_UUI + 44)
-#define ERRCODE_UUI_IO_NOTREADY_REMOVABLE                       ErrCode(ERRCODE_AREA_UUI + 45)
-#define ERRCODE_UUI_IO_NOTREADY_VOLUME_REMOVABLE                ErrCode(ERRCODE_AREA_UUI + 46)
-#define ERRCODE_UUI_WRONGMEDIUM                                 ErrCode(ERRCODE_AREA_UUI + 47)
-#define ERRCODE_UUI_IO_CANTCREATE_NONAME                        ErrCode(ERRCODE_AREA_UUI + 48)
-#define ERRCODE_UUI_IO_TARGETALREADYEXISTS                      ErrCode(ERRCODE_AREA_UUI + 49)
-#define ERRCODE_UUI_IO_UNSUPPORTEDOVERWRITE                     ErrCode(ERRCODE_AREA_UUI + 50)
-#define ERRCODE_UUI_IO_BROKENPACKAGE                            ErrCode(ERRCODE_AREA_UUI + 51)
-#define ERRCODE_UUI_IO_BROKENPACKAGE_CANTREPAIR                 ErrCode(ERRCODE_AREA_UUI + 52)
-#define ERRCODE_UUI_CONFIGURATION_BROKENDATA_NOREMOVE           ErrCode(ERRCODE_AREA_UUI + 53)
-#define ERRCODE_UUI_CONFIGURATION_BROKENDATA_WITHREMOVE         ErrCode(ERRCODE_AREA_UUI + 54)
-#define ERRCODE_UUI_CONFIGURATION_BACKENDMISSING                ErrCode(ERRCODE_AREA_UUI + 55)
-#define ERRCODE_UUI_CONFIGURATION_BACKENDMISSING_WITHRECOVER    ErrCode(ERRCODE_AREA_UUI + 56)
-#define ERRCODE_UUI_INVALID_XFORMS_SUBMISSION_DATA              ErrCode(ERRCODE_AREA_UUI + 57)
-#define ERRCODE_UUI_IO_MODULESIZEEXCEEDED                       ErrCode(ERRCODE_AREA_UUI + 58)
-#define ERRCODE_UUI_LOCKING_LOCKED                              ErrCode(ERRCODE_AREA_UUI + 59)
-#define ERRCODE_UUI_LOCKING_LOCKED_SELF                         ErrCode(ERRCODE_AREA_UUI + 60)
-#define ERRCODE_UUI_LOCKING_NOT_LOCKED                          ErrCode(ERRCODE_AREA_UUI + 61)
-#define ERRCODE_UUI_LOCKING_LOCK_EXPIRED                        ErrCode(ERRCODE_AREA_UUI + 62)
-#define ERRCODE_UUI_CANNOT_ACTIVATE_FACTORY                     ErrCode(ERRCODE_AREA_UUI + 63)
+#define ERRCODE_UUI_IO_ABORT                                    ErrCode(ErrCodeArea::Uui, 0)
+#define ERRCODE_UUI_IO_ACCESSDENIED                             ErrCode(ErrCodeArea::Uui, 1)
+#define ERRCODE_UUI_IO_ALREADYEXISTS                            ErrCode(ErrCodeArea::Uui, 2)
+#define ERRCODE_UUI_IO_BADCRC                                   ErrCode(ErrCodeArea::Uui, 3)
+#define ERRCODE_UUI_IO_CANTCREATE                               ErrCode(ErrCodeArea::Uui, 4)
+#define ERRCODE_UUI_IO_CANTREAD                                 ErrCode(ErrCodeArea::Uui, 5)
+#define ERRCODE_UUI_IO_CANTSEEK                                 ErrCode(ErrCodeArea::Uui, 6)
+#define ERRCODE_UUI_IO_CANTTELL                                 ErrCode(ErrCodeArea::Uui, 7)
+#define ERRCODE_UUI_IO_CANTWRITE                                ErrCode(ErrCodeArea::Uui, 8)
+#define ERRCODE_UUI_IO_CURRENTDIR                               ErrCode(ErrCodeArea::Uui, 9)
+#define ERRCODE_UUI_IO_NOTREADY                                 ErrCode(ErrCodeArea::Uui, 10)
+#define ERRCODE_UUI_IO_NOTSAMEDEVICE                            ErrCode(ErrCodeArea::Uui, 11)
+#define ERRCODE_UUI_IO_GENERAL                                  ErrCode(ErrCodeArea::Uui, 12)
+#define ERRCODE_UUI_IO_INVALIDACCESS                            ErrCode(ErrCodeArea::Uui, 13)
+#define ERRCODE_UUI_IO_INVALIDCHAR                              ErrCode(ErrCodeArea::Uui, 14)
+#define ERRCODE_UUI_IO_INVALIDDEVICE                            ErrCode(ErrCodeArea::Uui, 15)
+#define ERRCODE_UUI_IO_INVALIDLENGTH                            ErrCode(ErrCodeArea::Uui, 16)
+#define ERRCODE_UUI_IO_INVALIDPARAMETER                         ErrCode(ErrCodeArea::Uui, 17)
+#define ERRCODE_UUI_IO_ISWILDCARD                               ErrCode(ErrCodeArea::Uui, 18)
+#define ERRCODE_UUI_IO_LOCKVIOLATION                            ErrCode(ErrCodeArea::Uui, 19)
+#define ERRCODE_UUI_IO_MISPLACEDCHAR                            ErrCode(ErrCodeArea::Uui, 20)
+#define ERRCODE_UUI_IO_NAMETOOLONG                              ErrCode(ErrCodeArea::Uui, 21)
+#define ERRCODE_UUI_IO_NOTEXISTS                                ErrCode(ErrCodeArea::Uui, 22)
+#define ERRCODE_UUI_IO_NOTEXISTSPATH                            ErrCode(ErrCodeArea::Uui, 23)
+#define ERRCODE_UUI_IO_NOTSUPPORTED                             ErrCode(ErrCodeArea::Uui, 24)
+#define ERRCODE_UUI_IO_NOTADIRECTORY                            ErrCode(ErrCodeArea::Uui, 25)
+#define ERRCODE_UUI_IO_NOTAFILE                                 ErrCode(ErrCodeArea::Uui, 26)
+#define ERRCODE_UUI_IO_OUTOFSPACE                               ErrCode(ErrCodeArea::Uui, 27)
+#define ERRCODE_UUI_IO_TOOMANYOPENFILES                         ErrCode(ErrCodeArea::Uui, 28)
+#define ERRCODE_UUI_IO_OUTOFMEMORY                              ErrCode(ErrCodeArea::Uui, 29)
+#define ERRCODE_UUI_IO_PENDING                                  ErrCode(ErrCodeArea::Uui, 30)
+#define ERRCODE_UUI_IO_RECURSIVE                                ErrCode(ErrCodeArea::Uui, 31)
+#define ERRCODE_UUI_IO_UNKNOWN                                  ErrCode(ErrCodeArea::Uui, 32)
+#define ERRCODE_UUI_IO_WRITEPROTECTED                           ErrCode(ErrCodeArea::Uui, 33)
+#define ERRCODE_UUI_IO_WRONGFORMAT                              ErrCode(ErrCodeArea::Uui, 34)
+#define ERRCODE_UUI_IO_WRONGVERSION                             ErrCode(ErrCodeArea::Uui, 35)
+#define ERRCODE_UUI_IO_NOTEXISTS_VOLUME                         ErrCode(ErrCodeArea::Uui, 36)
+#define ERRCODE_UUI_IO_NOTEXISTS_FOLDER                         ErrCode(ErrCodeArea::Uui, 37)
+#define ERRCODE_UUI_WRONGJAVA                                   ErrCode(ErrCodeArea::Uui, 38)
+#define ERRCODE_UUI_WRONGJAVA_VERSION                           ErrCode(ErrCodeArea::Uui, 39)
+#define ERRCODE_UUI_WRONGJAVA_MIN                               ErrCode(ErrCodeArea::Uui, 40)
+#define ERRCODE_UUI_WRONGJAVA_VERSION_MIN                       ErrCode(ErrCodeArea::Uui, 41)
+#define ERRCODE_UUI_BADPARTNERSHIP                              ErrCode(ErrCodeArea::Uui, 42)
+#define ERRCODE_UUI_BADPARTNERSHIP_NAME                         ErrCode(ErrCodeArea::Uui, 43)
+#define ERRCODE_UUI_IO_NOTREADY_VOLUME                          ErrCode(ErrCodeArea::Uui, 44)
+#define ERRCODE_UUI_IO_NOTREADY_REMOVABLE                       ErrCode(ErrCodeArea::Uui, 45)
+#define ERRCODE_UUI_IO_NOTREADY_VOLUME_REMOVABLE                ErrCode(ErrCodeArea::Uui, 46)
+#define ERRCODE_UUI_WRONGMEDIUM                                 ErrCode(ErrCodeArea::Uui, 47)
+#define ERRCODE_UUI_IO_CANTCREATE_NONAME                        ErrCode(ErrCodeArea::Uui, 48)
+#define ERRCODE_UUI_IO_TARGETALREADYEXISTS                      ErrCode(ErrCodeArea::Uui, 49)
+#define ERRCODE_UUI_IO_UNSUPPORTEDOVERWRITE                     ErrCode(ErrCodeArea::Uui, 50)
+#define ERRCODE_UUI_IO_BROKENPACKAGE                            ErrCode(ErrCodeArea::Uui, 51)
+#define ERRCODE_UUI_IO_BROKENPACKAGE_CANTREPAIR                 ErrCode(ErrCodeArea::Uui, 52)
+#define ERRCODE_UUI_CONFIGURATION_BROKENDATA_NOREMOVE           ErrCode(ErrCodeArea::Uui, 53)
+#define ERRCODE_UUI_CONFIGURATION_BROKENDATA_WITHREMOVE         ErrCode(ErrCodeArea::Uui, 54)
+#define ERRCODE_UUI_CONFIGURATION_BACKENDMISSING                ErrCode(ErrCodeArea::Uui, 55)
+#define ERRCODE_UUI_CONFIGURATION_BACKENDMISSING_WITHRECOVER    ErrCode(ErrCodeArea::Uui, 56)
+#define ERRCODE_UUI_INVALID_XFORMS_SUBMISSION_DATA              ErrCode(ErrCodeArea::Uui, 57)
+#define ERRCODE_UUI_IO_MODULESIZEEXCEEDED                       ErrCode(ErrCodeArea::Uui, 58)
+#define ERRCODE_UUI_LOCKING_LOCKED                              ErrCode(ErrCodeArea::Uui, 59)
+#define ERRCODE_UUI_LOCKING_LOCKED_SELF                         ErrCode(ErrCodeArea::Uui, 60)
+#define ERRCODE_UUI_LOCKING_NOT_LOCKED                          ErrCode(ErrCodeArea::Uui, 61)
+#define ERRCODE_UUI_LOCKING_LOCK_EXPIRED                        ErrCode(ErrCodeArea::Uui, 62)
+#define ERRCODE_UUI_CANNOT_ACTIVATE_FACTORY                     ErrCode(ErrCodeArea::Uui, 63)
 
 #endif
 
diff --git a/uui/source/iahndl-errorhandler.cxx b/uui/source/iahndl-errorhandler.cxx
index d10437558d34..1277d11c17cc 100644
--- a/uui/source/iahndl-errorhandler.cxx
+++ b/uui/source/iahndl-errorhandler.cxx
@@ -159,13 +159,10 @@ UUIInteractionHelper::handleErrorHandlerRequest(
             = { getRID_ERRHDL(),
                 getRID_SVXERRCODE(),
                 RID_UUI_ERRHDL };
-        ErrCode nErrorId(sal_uInt32(nErrorCode) & ~ERRCODE_WARNING_MASK);
-        Source eSource = nErrorId < ErrCode(ERRCODE_AREA_SVX) ?
-            SOURCE_DEFAULT :
-            nErrorId >= ErrCode(ERRCODE_AREA_SVX)
-            && nErrorId <= ErrCode(ERRCODE_AREA_SVX_END) ?
-            SOURCE_SVX :
-            SOURCE_UUI;
+        ErrCodeArea nErrorArea = nErrorCode.GetArea();
+        Source eSource =
+            nErrorArea < ErrCodeArea::Svx ? SOURCE_DEFAULT

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list