Написал програмку, которая из заголовочного файла "WinError.h" вытаскивает константы (числа и текст).
Затем она формирует вот такой модуль:
## Код:
```
MODULE WinError;

  CONST
    ...
    ERROR_INVALID_PARAMETER_txt* = "The parameter is incorrect.";
    ERROR_INVALID_PARAMETER* = 87;
    ...

  PROCEDURE CodeToText* (code: INTEGER; OUT text: ARRAY OF CHAR);
  BEGIN
    CASE code OF
      ...
      | ERROR_INVALID_PARAMETER: text := ERROR_INVALID_PARAMETER_txt
      ...
    ELSE text := ""
    END
  END CodeToText;

END WinError.
```

длиной 8578 строчек...

Если кому интересно, то вот сгенерированный модуль WinError.odc (в Rar архиве):http://www.rsdn.ru:80/File/30795/WinError.rar(73Kb)
а вот сама програмка, которая его генерирует (в Rar архиве):http://www.rsdn.ru:80/File/30795/Headmap.rar(12Kb)

Кстати, обнаружилось, что в "WinError.h" есть несколько констант объявленных дважды (с разными значениями!!!).