#ifndef _DOSERR_H
#define _DOSERR_H
#define ERRDOS 0x01
#define ERRSRV 0x02
#define ERRHRD 0x03
#define ERRCMD 0xFF
#define ERRsuccess 0
#define ERRbadfunc 1
#define ERRbadfile 2
#define ERRbadpath 3
#define ERRnofids 4
#define ERRnoaccess 5
#define ERRbadfid 6
#define ERRbadmcb 7
#define ERRnomem 8
#define ERRbadmem 9
#define ERRbadenv 10
#define ERRbadaccess 12
#define ERRbaddata 13
#define ERRres 14
#define ERRbaddrive 15
#define ERRremcd 16
#define ERRdiffdevice 17
#define ERRnofiles 18
#define ERRgeneral 31
#define ERRbadshare 32
#define ERRlock 33
#define ERRunsup 50
#define ERRnetnamedel 64
#define ERRnosuchshare 67
#define ERRfilexists 80
#define ERRinvalidparam 87
#define ERRcannotopen 110
#define ERRinsufficientbuffer 122
#define ERRinvalidname 123
#define ERRunknownlevel 124
#define ERRnotlocked 158
#define ERRrename 183
#define ERRbadpipe 230
#define ERRpipebusy 231
#define ERRpipeclosing 232
#define ERRnotconnected 233
#define ERRmoredata 234
#define ERRnomoreitems 259
#define ERRbaddirectory 267
#define ERReasnotsupported 282
#define ERRlogonfailure 1326
#define ERRbuftoosmall 2123
#define ERRunknownipc 2142
#define ERRnosuchprintjob 2151
#define ERRinvgroup 2455
#define ERRnoipc 66
#define ERRdriveralreadyinstalled 1795
#define ERRunknownprinterport 1796
#define ERRunknownprinterdriver 1797
#define ERRunknownprintprocessor 1798
#define ERRinvalidseparatorfile 1799
#define ERRinvalidjobpriority 1800
#define ERRinvalidprintername 1801
#define ERRprinteralreadyexists 1802
#define ERRinvalidprintercommand 1803
#define ERRinvaliddatatype 1804
#define ERRinvalidenvironment 1805
#define ERRunknownprintmonitor 3000
#define ERRprinterdriverinuse 3001
#define ERRspoolfilenotfound 3002
#define ERRnostartdoc 3003
#define ERRnoaddjob 3004
#define ERRprintprocessoralreadyinstalled 3005
#define ERRprintmonitoralreadyinstalled 3006
#define ERRinvalidprintmonitor 3007
#define ERRprintmonitorinuse 3008
#define ERRprinterhasjobsqueued 3009
#define ERRerror 1
#define ERRbadpw 2
#define ERRbadtype 3
#define ERRaccess 4
#define ERRinvnid 5
#define ERRinvnetname 6
#define ERRinvdevice 7
#define ERRqfull 49
#define ERRqtoobig 50
#define ERRinvpfid 52
#define ERRsmbcmd 64
#define ERRsrverror 65
#define ERRfilespecs 67
#define ERRbadlink 68
#define ERRbadpermits 69
#define ERRbadpid 70
#define ERRsetattrmode 71
#define ERRpaused 81
#define ERRmsgoff 82
#define ERRnoroom 83
#define ERRrmuns 87
#define ERRtimeout 88
#define ERRnoresource 89
#define ERRtoomanyuids 90
#define ERRbaduid 91
#define ERRuseMPX 250
#define ERRuseSTD 251
#define ERRcontMPX 252
#define ERRbadPW
#define ERRnosupport 0xFFFF
#define ERRunknownsmb 22
#define ERRnowrite 19
#define ERRbadunit 20
#define ERRnotready 21
#define ERRbadcmd 22
#define ERRdata 23
#define ERRbadreq 24
#define ERRseek 25
#define ERRbadmedia 26
#define ERRbadsector 27
#define ERRnopaper 28
#define ERRwrite 29
#define ERRread 30
#define ERRgeneral 31
#define ERRwrongdisk 34
#define ERRFCBunavail 35
#define ERRsharebufexc 36
#define ERRdiskfull 39
#define WERR_OK W_ERROR(0)
#define WERR_BADFUNC W_ERROR(1)
#define WERR_BADFILE W_ERROR(2)
#define WERR_ACCESS_DENIED W_ERROR(5)
#define WERR_BADFID W_ERROR(6)
#define WERR_NOMEM W_ERROR(8)
#define WERR_GENERAL_FAILURE W_ERROR(31)
#define WERR_NOT_SUPPORTED W_ERROR(50)
#define WERR_PRINTQ_FULL W_ERROR(61)
#define WERR_NO_SPOOL_SPACE W_ERROR(62)
#define WERR_NO_SUCH_SHARE W_ERROR(67)
#define WERR_ALREADY_EXISTS W_ERROR(80)
#define WERR_BAD_PASSWORD W_ERROR(86)
#define WERR_INVALID_PARAM W_ERROR(87)
#define WERR_INSUFFICIENT_BUFFER W_ERROR(122)
#define WERR_INVALID_NAME W_ERROR(123)
#define WERR_UNKNOWN_LEVEL W_ERROR(124)
#define WERR_OBJECT_PATH_INVALID W_ERROR(161)
#define WERR_NO_MORE_ITEMS W_ERROR(259)
#define WERR_MORE_DATA W_ERROR(234)
#define WERR_INVALID_OWNER W_ERROR(1307)
#define WERR_IO_PENDING W_ERROR(997)
#define WERR_CAN_NOT_COMPLETE W_ERROR(1003)
#define WERR_INVALID_SECURITY_DESCRIPTOR W_ERROR(1338)
#define WERR_SERVER_UNAVAILABLE W_ERROR(1722)
#define WERR_INVALID_FORM_NAME W_ERROR(1902)
#define WERR_INVALID_FORM_SIZE W_ERROR(1903)
#define WERR_BUF_TOO_SMALL W_ERROR(2123)
#define WERR_JOB_NOT_FOUND W_ERROR(2151)
#define WERR_DEST_NOT_FOUND W_ERROR(2152)
#define WERR_NOT_LOCAL_DOMAIN W_ERROR(2320)
#define WERR_STATUS_MORE_ENTRIES W_ERROR(0x0105)
#define WERR_PRINTER_DRIVER_ALREADY_INSTALLED W_ERROR(ERRdriveralreadyinstalled)
#define WERR_UNKNOWN_PORT W_ERROR(ERRunknownprinterport)
#define WERR_UNKNOWN_PRINTER_DRIVER W_ERROR(ERRunknownprinterdriver)
#define WERR_UNKNOWN_PRINTPROCESSOR W_ERROR(ERRunknownprintprocessor)
#define WERR_INVALID_SEPARATOR_FILE W_ERROR(ERRinvalidseparatorfile)
#define WERR_INVALID_PRIORITY W_ERROR(ERRinvalidjobpriority)
#define WERR_INVALID_PRINTER_NAME W_ERROR(ERRinvalidprintername)
#define WERR_PRINTER_ALREADY_EXISTS W_ERROR(ERRprinteralreadyexists)
#define WERR_INVALID_PRINTER_COMMAND W_ERROR(ERRinvalidprintercommand)
#define WERR_INVALID_DATATYPE W_ERROR(ERRinvaliddatatype)
#define WERR_INVALID_ENVIRONMENT W_ERROR(ERRinvalidenvironment)
#define WERR_UNKNOWN_PRINT_MONITOR W_ERROR(ERRunknownprintmonitor)
#define WERR_PRINTER_DRIVER_IN_USE W_ERROR(ERRprinterdriverinuse)
#define WERR_SPOOL_FILE_NOT_FOUND W_ERROR(ERRspoolfilenotfound)
#define WERR_SPL_NO_STARTDOC W_ERROR(ERRnostartdoc)
#define WERR_SPL_NO_ADDJOB W_ERROR(ERRnoaddjob)
#define WERR_PRINT_PROCESSOR_ALREADY_INSTALLED W_ERROR(ERRprintprocessoralreadyinstalled)
#define WERR_PRINT_MONITOR_ALREADY_INSTALLED W_ERROR(ERRprintmonitoralreadyinstalled)
#define WERR_INVALID_PRINT_MONITOR W_ERROR(ERRinvalidprintmonitor)
#define WERR_PRINT_MONITOR_IN_USE W_ERROR(ERRprintmonitorinuse)
#define WERR_PRINTER_HAS_JOBS_QUEUED W_ERROR(ERRprinterhasjobsqueued)
#ifndef NERR_BASE
#define NERR_BASE (2100)
#endif
#define WERR_DFS_NO_SUCH_VOL W_ERROR(NERR_BASE+562)
#define WERR_DFS_NO_SUCH_SHARE W_ERROR(NERR_BASE+565)
#define WERR_DFS_NO_SUCH_SERVER W_ERROR(NERR_BASE+573)
#define WERR_DFS_INTERNAL_ERROR W_ERROR(NERR_BASE+590)
#define WERR_DFS_CANT_CREATE_JUNCT W_ERROR(NERR_BASE+569)
#endif