private static Types.MAPIType parseDataType(String s) {
        if (StringUtils.isBlank(s)) {
            return null;
        }
        String[] parts = s.split(", ");
        if (parts.length != 2) {
            throw new IllegalArgumentException("expected two parts: " + s);
        }
        String num = parts[1];
        if (num.startsWith("0x")) {
            num = num.substring(2);
        }
        int id = Integer.parseInt(num, 16);
        Types.MAPIType type = Types.getById(id);
        if (type == null) {
            //TODO:
            /*
                PtypRestriction, 0x00FD
                PtypRuleAction, 0x00FE
                PtypServerId, 0x00FB
             */
            return Types.createCustom(id);
        }
        return type;
    }
This class extracts mapi properties as defined in the props_table.txt, which was generated from MS-OXPROPS.
For now, this ignores binary and unknown property types.
tika-parsers/tika-parsers-standard/tika-parsers-standard-modules/tika-parser-microsoft-module/src/main/java/org/apache/tika/parser/microsoft/msg/ExtendedMetadataExtractor.java