Hi all,

How do I convert a win32 error code into either the error macro or the
error description in a VBS applet? For example, if I input 32, I want
it to output ERROR_SHARING_VIOLATION, or "The process cannot access the
file because it is being used by another process." (The former
ideally.) I know I could have the winerr.h file handy and parse that,
but I'm sure there must be an easier way.

Cheers
Mark

Re: Convert Win32 error code to text by mr_unreliable

mr_unreliable
Thu Apr 06 16:14:00 CDT 2006

hi Mark,

If you trap the error, you can use "err.number" and "err.description"

Look up the "error object" in the documentation.

cheers, jw
____________________________________________________________

You got questions? WE GOT ANSWERS!!! ..(but,
no guarantee the answers will be applicable to the questions)


news@mail.adsl4less.com wrote:
> Hi all,
>
> How do I convert a win32 error code into either the error macro or the
> error description in a VBS applet? For example, if I input 32, I want
> it to output ERROR_SHARING_VIOLATION, or "The process cannot access the
> file because it is being used by another process." (The former
> ideally.) I know I could have the winerr.h file handy and parse that,
> but I'm sure there must be an easier way.
>
> Cheers
> Mark
>

Re: Convert Win32 error code to text by news

news
Fri Apr 07 01:56:52 CDT 2006

Cheers, but no, it's not a VB runtime error I'm after. If I _input_ a
number into the program, such as 32, I want it to output the Win32
error code. It's really a scripting, not a runtime question.


Re: Convert Win32 error code to text by mayayana

mayayana
Fri Apr 07 08:48:20 CDT 2006

There's nothing built into script, since it has
nothing to do with Win32 API. You just have
to write a file, or collect the relevant header
files, and use Textstream to read through
them.
If it's worth the time to you, my choice
would be to write something like an INI of the
error numbers I might want, rather than fishing
through bulky header files every time. Then the
script would just search that file for the number
and retrieve whatever comes after "=".

ex.:
5=some explanation of error 5
6=some explanation of error 6 ...etc.

With Textstream you can either read by line or
read the whole thing into a string. If you used
ReadAll to read the whole thing then you'd
just need InStr to find the error number, then use InStr
again to find vbCrLf, and you've got the description
text. But you'll have to set it up yourself.

> Cheers, but no, it's not a VB runtime error I'm after. If I _input_ a
> number into the program, such as 32, I want it to output the Win32
> error code. It's really a scripting, not a runtime question.
>



Re: Convert Win32 error code to text by ekkehard

ekkehard
Fri Apr 07 09:26:39 CDT 2006

news@mail.adsl4less.com wrote:
> Cheers, but no, it's not a VB runtime error I'm after. If I _input_ a
> number into the program, such as 32, I want it to output the Win32
> error code. It's really a scripting, not a runtime question.
>
As mayayana said, VBScript can cause but not explain WIN32 errors; perhaps
you can use errlook.exe or err.exe (MS Developer tools)

http://www.microsoft.com/downloads/details.aspx?familyid=be596899-7bb8-4208-b7fc-09e02a13696c&displaylang=en
http://blogs.msdn.com/smakofsky/archive/2004/11/02/251074.aspx

or something like

http://www.codeguru.com/cpp/v-s/devstudio_macros/debugging/article.php/c9263/

Re: Convert Win32 error code to text by mr_unreliable

mr_unreliable
Fri Apr 07 16:19:35 CDT 2006

This is a multi-part message in MIME format.
--------------030507010905060207050300
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Here are some win32 error code definitions, jw



--------------030507010905060207050300
Content-Type: text/plain;
name="system error codes (from win32api.txt).txt"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="system error codes (from win32api.txt).txt"


' -----------------------------------------
' Win32 API error code definitions
' -----------------------------------------
' This section contains the error code definitions for the Win32 API functions.

' NO_ERROR
Private Const NO_ERROR = 0 ' dderror

' The configuration registry database operation completed successfully.
Private Const ERROR_SUCCESS = 0&

' Incorrect function.
Private Const ERROR_INVALID_FUNCTION = 1 ' dderror

' The system cannot find the file specified.
Private Const ERROR_FILE_NOT_FOUND = 2&

' The system cannot find the path specified.
Private Const ERROR_PATH_NOT_FOUND = 3&

' The system cannot open the file.
Private Const ERROR_TOO_MANY_OPEN_FILES = 4&

' Access is denied.
Private Const ERROR_ACCESS_DENIED = 5&

' The handle is invalid.
Private Const ERROR_INVALID_HANDLE = 6&

' The storage control blocks were destroyed.
Private Const ERROR_ARENA_TRASHED = 7&

' Not enough storage is available to process this command.
Private Const ERROR_NOT_ENOUGH_MEMORY = 8 ' dderror

' The storage control block address is invalid.
Private Const ERROR_INVALID_BLOCK = 9&

' The environment is incorrect.
Private Const ERROR_BAD_ENVIRONMENT = 10&

' An attempt was made to load a program with an
' incorrect format.
Private Const ERROR_BAD_FORMAT = 11&

' The access code is invalid.
Private Const ERROR_INVALID_ACCESS = 12&

' The data is invalid.
Private Const ERROR_INVALID_DATA = 13&

' Not enough storage is available to complete this operation.
Private Const ERROR_OUTOFMEMORY = 14&

' The system cannot find the drive specified.
Private Const ERROR_INVALID_DRIVE = 15&

' The directory cannot be removed.
Private Const ERROR_CURRENT_DIRECTORY = 16&

' The system cannot move the file
' to a different disk drive.
Private Const ERROR_NOT_SAME_DEVICE = 17&

' There are no more files.
Private Const ERROR_NO_MORE_FILES = 18&

' The media is write protected.
Private Const ERROR_WRITE_PROTECT = 19&

' The system cannot find the device specified.
Private Const ERROR_BAD_UNIT = 20&

' The device is not ready.
Private Const ERROR_NOT_READY = 21&

' The device does not recognize the command.
Private Const ERROR_BAD_COMMAND = 22&

' Data error (cyclic redundancy check)
Private Const ERROR_CRC = 23&

' The program issued a command but the
' command length is incorrect.
Private Const ERROR_BAD_LENGTH = 24&

' The drive cannot locate a specific
' area or track on the disk.
Private Const ERROR_SEEK = 25&

' The specified disk or diskette cannot be accessed.
Private Const ERROR_NOT_DOS_DISK = 26&

' The drive cannot find the sector requested.
Private Const ERROR_SECTOR_NOT_FOUND = 27&

' The printer is out of paper.
Private Const ERROR_OUT_OF_PAPER = 28&

' The system cannot write to the specified device.
Private Const ERROR_WRITE_FAULT = 29&

' The system cannot read from the specified device.
Private Const ERROR_READ_FAULT = 30&

' A device attached to the system is not functioning.
Private Const ERROR_GEN_FAILURE = 31&

' The process cannot access the file because
' it is being used by another process.
Private Const ERROR_SHARING_VIOLATION = 32&

' The process cannot access the file because
' another process has locked a portion of the file.
Private Const ERROR_LOCK_VIOLATION = 33&

' The wrong diskette is in the drive.
' Insert %2 (Volume Serial Number: %3)
' into drive %1.
Private Const ERROR_WRONG_DISK = 34&

' Too many files opened for sharing.
Private Const ERROR_SHARING_BUFFER_EXCEEDED = 36&

' Reached end of file.
Private Const ERROR_HANDLE_EOF = 38&

' The disk is full.
Private Const ERROR_HANDLE_DISK_FULL = 39&

' The network request is not supported.
Private Const ERROR_NOT_SUPPORTED = 50&

' The remote computer is not available.
Private Const ERROR_REM_NOT_LIST = 51&

' A duplicate name exists on the network.
Private Const ERROR_DUP_NAME = 52&

' The network path was not found.
Private Const ERROR_BAD_NETPATH = 53&

' The network is busy.
Private Const ERROR_NETWORK_BUSY = 54&

' The specified network resource or device is no longer
' available.
Private Const ERROR_DEV_NOT_EXIST = 55 ' dderror

' The network BIOS command limit has been reached.
Private Const ERROR_TOO_MANY_CMDS = 56&

' A network adapter hardware error occurred.
Private Const ERROR_ADAP_HDW_ERR = 57&

' The specified server cannot perform the requested
' operation.
Private Const ERROR_BAD_NET_RESP = 58&

' An unexpected network error occurred.
Private Const ERROR_UNEXP_NET_ERR = 59&

' The remote adapter is not compatible.
Private Const ERROR_BAD_REM_ADAP = 60&

' The printer queue is full.
Private Const ERROR_PRINTQ_FULL = 61&

' Space to store the file waiting to be printed is
' not available on the server.
Private Const ERROR_NO_SPOOL_SPACE = 62&

' Your file waiting to be printed was deleted.
Private Const ERROR_PRINT_CANCELLED = 63&

' The specified network name is no longer available.
Private Const ERROR_NETNAME_DELETED = 64&

' Network access is denied.
Private Const ERROR_NETWORK_ACCESS_DENIED = 65&

' The network resource type is not correct.
Private Const ERROR_BAD_DEV_TYPE = 66&

' The network name cannot be found.
Private Const ERROR_BAD_NET_NAME = 67&

' The name limit for the local computer network
' adapter card was exceeded.
Private Const ERROR_TOO_MANY_NAMES = 68&

' The network BIOS session limit was exceeded.
Private Const ERROR_TOO_MANY_SESS = 69&

' The remote server has been paused or is in the
' process of being started.
Private Const ERROR_SHARING_PAUSED = 70&

' The network request was not accepted.
Private Const ERROR_REQ_NOT_ACCEP = 71&

' The specified printer or disk device has been paused.
Private Const ERROR_REDIR_PAUSED = 72&

' The file exists.
Private Const ERROR_FILE_EXISTS = 80&

' The directory or file cannot be created.
Private Const ERROR_CANNOT_MAKE = 82&

' Fail on INT 24
Private Const ERROR_FAIL_I24 = 83&

' Storage to process this request is not available.
Private Const ERROR_OUT_OF_STRUCTURES = 84&

' The local device name is already in use.
Private Const ERROR_ALREADY_ASSIGNED = 85&

' The specified network password is not correct.
Private Const ERROR_INVALID_PASSWORD = 86&

' The parameter is incorrect.
Private Const ERROR_INVALID_PARAMETER = 87 ' dderror

' A write fault occurred on the network.
Private Const ERROR_NET_WRITE_FAULT = 88&

' The system cannot start another process at
' this time.
Private Const ERROR_NO_PROC_SLOTS = 89&

' Cannot create another system semaphore.
Private Const ERROR_TOO_MANY_SEMAPHORES = 100&

' The exclusive semaphore is owned by another process.
Private Const ERROR_EXCL_SEM_ALREADY_OWNED = 101&

' The semaphore is set and cannot be closed.
Private Const ERROR_SEM_IS_SET = 102&

' The semaphore cannot be set again.
Private Const ERROR_TOO_MANY_SEM_REQUESTS = 103&

' Cannot request exclusive semaphores at interrupt time.
Private Const ERROR_INVALID_AT_INTERRUPT_TIME = 104&

' The previous ownership of this semaphore has ended.
Private Const ERROR_SEM_OWNER_DIED = 105&

' Insert the diskette for drive %1.
Private Const ERROR_SEM_USER_LIMIT = 106&

' Program stopped because alternate diskette was not inserted.
Private Const ERROR_DISK_CHANGE = 107&

' The disk is in use or locked by
' another process.
Private Const ERROR_DRIVE_LOCKED = 108&

' The pipe has been ended.
Private Const ERROR_BROKEN_PIPE = 109&

' The system cannot open the
' device or file specified.
Private Const ERROR_OPEN_FAILED = 110&

' The file name is too long.
Private Const ERROR_BUFFER_OVERFLOW = 111&

' There is not enough space on the disk.
Private Const ERROR_DISK_FULL = 112&

' No more internal file identifiers available.
Private Const ERROR_NO_MORE_SEARCH_HANDLES = 113&

' The target internal file identifier is incorrect.
Private Const ERROR_INVALID_TARGET_HANDLE = 114&

' The IOCTL call made by the application program is
' not correct.
Private Const ERROR_INVALID_CATEGORY = 117&

' The verify-on-write switch parameter value is not
' correct.
Private Const ERROR_INVALID_VERIFY_SWITCH = 118&

' The system does not support the command requested.
Private Const ERROR_BAD_DRIVER_LEVEL = 119&

' This function is only valid in Windows NT mode.
Private Const ERROR_CALL_NOT_IMPLEMENTED = 120&

' The semaphore timeout period has expired.
Private Const ERROR_SEM_TIMEOUT = 121&

' The data area passed to a system call is too
' small.
Private Const ERROR_INSUFFICIENT_BUFFER = 122&

' The filename, directory name, or volume label syntax is incorrect.
Private Const ERROR_INVALID_NAME = 123&

' The system call level is not correct.
Private Const ERROR_INVALID_LEVEL = 124&

' The disk has no volume label.
Private Const ERROR_NO_VOLUME_LABEL = 125&

' The specified module could not be found.
Private Const ERROR_MOD_NOT_FOUND = 126&

' The specified procedure could not be found.
Private Const ERROR_PROC_NOT_FOUND = 127&

' There are no child processes to wait for.
Private Const ERROR_WAIT_NO_CHILDREN = 128&

' The %1 application cannot be run in Windows NT mode.
Private Const ERROR_CHILD_NOT_COMPLETE = 129&

' Attempt to use a file handle to an open disk partition for an
' operation other than raw disk I/O.
Private Const ERROR_DIRECT_ACCESS_HANDLE = 130&

' An attempt was made to move the file pointer before the beginning of the file.
Private Const ERROR_NEGATIVE_SEEK = 131&

' The file pointer cannot be set on the specified device or file.
Private Const ERROR_SEEK_ON_DEVICE = 132&

' A JOIN or SUBST command
' cannot be used for a drive that
' contains previously joined drives.
Private Const ERROR_IS_JOIN_TARGET = 133&

' An attempt was made to use a
' JOIN or SUBST command on a drive that has
' already been joined.
Private Const ERROR_IS_JOINED = 134&

' An attempt was made to use a
' JOIN or SUBST command on a drive that has
' already been substituted.
Private Const ERROR_IS_SUBSTED = 135&

' The system tried to delete
' the JOIN of a drive that is not joined.
Private Const ERROR_NOT_JOINED = 136&

' The system tried to delete the
' substitution of a drive that is not substituted.
Private Const ERROR_NOT_SUBSTED = 137&

' The system tried to join a drive
' to a directory on a joined drive.
Private Const ERROR_JOIN_TO_JOIN = 138&

' The system tried to substitute a
' drive to a directory on a substituted drive.
Private Const ERROR_SUBST_TO_SUBST = 139&

' The system tried to join a drive to
' a directory on a substituted drive.
Private Const ERROR_JOIN_TO_SUBST = 140&

' The system tried to SUBST a drive
' to a directory on a joined drive.
Private Const ERROR_SUBST_TO_JOIN = 141&

' The system cannot perform a JOIN or SUBST at this time.
Private Const ERROR_BUSY_DRIVE = 142&

' The system cannot join or substitute a
' drive to or for a directory on the same drive.
Private Const ERROR_SAME_DRIVE = 143&

' The directory is not a subdirectory of the root directory.
Private Const ERROR_DIR_NOT_ROOT = 144&

' The directory is not empty.
Private Const ERROR_DIR_NOT_EMPTY = 145&

' The path specified is being used in
' a substitute.
Private Const ERROR_IS_SUBST_PATH = 146&

' Not enough resources are available to
' process this command.
Private Const ERROR_IS_JOIN_PATH = 147&

' The path specified cannot be used at this time.
Private Const ERROR_PATH_BUSY = 148&

' An attempt was made to join
' or substitute a drive for which a directory
' on the drive is the target of a previous
' substitute.
Private Const ERROR_IS_SUBST_TARGET = 149&

' System trace information was not specified in your
' CONFIG.SYS file, or tracing is disallowed.
Private Const ERROR_SYSTEM_TRACE = 150&

' The number of specified semaphore events for
' DosMuxSemWait is not correct.
Private Const ERROR_INVALID_EVENT_COUNT = 151&

' DosMuxSemWait did not execute; too many semaphores
' are already set.
Private Const ERROR_TOO_MANY_MUXWAITERS = 152&

' The DosMuxSemWait list is not correct.
Private Const ERROR_INVALID_LIST_FORMAT = 153&

' The volume label you entered exceeds the
' 11 character limit. The first 11 characters were written
' to disk. Any characters that exceeded the 11 character limit
' were automatically deleted.
Private Const ERROR_LABEL_TOO_LONG = 154&

' Cannot create another thread.
Private Const ERROR_TOO_MANY_TCBS = 155&

' The recipient process has refused the signal.
Private Const ERROR_SIGNAL_REFUSED = 156&

' The segment is already discarded and cannot be locked.
Private Const ERROR_DISCARDED = 157&

' The segment is already unlocked.
Private Const ERROR_NOT_LOCKED = 158&

' The address for the thread ID is not correct.
Private Const ERROR_BAD_THREADID_ADDR = 159&

' The argument string passed to DosExecPgm is not correct.
Private Const ERROR_BAD_ARGUMENTS = 160&

' The specified path is invalid.
Private Const ERROR_BAD_PATHNAME = 161&

' A signal is already pending.
Private Const ERROR_SIGNAL_PENDING = 162&

' No more threads can be created in the system.
Private Const ERROR_MAX_THRDS_REACHED = 164&

' Unable to lock a region of a file.
Private Const ERROR_LOCK_FAILED = 167&

' The requested resource is in use.
Private Const ERROR_BUSY = 170&

' A lock request was not outstanding for the supplied cancel region.
Private Const ERROR_CANCEL_VIOLATION = 173&

' The file system does not support atomic changes to the lock type.
Private Const ERROR_ATOMIC_LOCKS_NOT_SUPPORTED = 174&

' The system detected a segment number that was not correct.
Private Const ERROR_INVALID_SEGMENT_NUMBER = 180&

' The operating system cannot run %1.
Private Const ERROR_INVALID_ORDINAL = 182&

' Cannot create a file when that file already exists.
Private Const ERROR_ALREADY_EXISTS = 183&

' The flag passed is not correct.
Private Const ERROR_INVALID_FLAG_NUMBER = 186&

' The specified system semaphore name was not found.
Private Const ERROR_SEM_NOT_FOUND = 187&

' The operating system cannot run %1.
Private Const ERROR_INVALID_STARTING_CODESEG = 188&

' The operating system cannot run %1.
Private Const ERROR_INVALID_STACKSEG = 189&

' The operating system cannot run %1.
Private Const ERROR_INVALID_MODULETYPE = 190&

' Cannot run %1 in Windows NT mode.
Private Const ERROR_INVALID_EXE_SIGNATURE = 191&

' The operating system cannot run %1.
Private Const ERROR_EXE_MARKED_INVALID = 192&

' %1 is not a valid Windows NT application.
Private Const ERROR_BAD_EXE_FORMAT = 193&

' The operating system cannot run %1.
Private Const ERROR_ITERATED_DATA_EXCEEDS_64k = 194&

' The operating system cannot run %1.
Private Const ERROR_INVALID_MINALLOCSIZE = 195&

' The operating system cannot run this
' application program.
Private Const ERROR_DYNLINK_FROM_INVALID_RING = 196&

' The operating system is not presently
' configured to run this application.
Private Const ERROR_IOPL_NOT_ENABLED = 197&

' The operating system cannot run %1.
Private Const ERROR_INVALID_SEGDPL = 198&

' The operating system cannot run this
' application program.
Private Const ERROR_AUTODATASEG_EXCEEDS_64k = 199&

' The code segment cannot be greater than or equal to 64KB.
Private Const ERROR_RING2SEG_MUST_BE_MOVABLE = 200&

' The operating system cannot run %1.
Private Const ERROR_RELOC_CHAIN_XEEDS_SEGLIM = 201&

' The operating system cannot run %1.
Private Const ERROR_INFLOOP_IN_RELOC_CHAIN = 202&

' The system could not find the environment
' option that was entered.
Private Const ERROR_ENVVAR_NOT_FOUND = 203&

' No process in the command subtree has a
' signal handler.
Private Const ERROR_NO_SIGNAL_SENT = 205&

' The filename or extension is too long.
Private Const ERROR_FILENAME_EXCED_RANGE = 206&

' The ring 2 stack is in use.
Private Const ERROR_RING2_STACK_IN_USE = 207&

' The Global filename characters, or ?, are entered
' incorrectly or too many Global filename characters are specified.
Private Const ERROR_META_EXPANSION_TOO_LONG = 208&

' The signal being posted is not correct.
Private Const ERROR_INVALID_SIGNAL_NUMBER = 209&

' The signal handler cannot be set.
Private Const ERROR_THREAD_1_INACTIVE = 210&

' The segment is locked and cannot be reallocated.
Private Const ERROR_LOCKED = 212&

' Too many dynamic link modules are attached to this
' program or dynamic link module.
Private Const ERROR_TOO_MANY_MODULES = 214&

' Can't nest calls to LoadModule.
Private Const ERROR_NESTING_NOT_ALLOWED = 215&

' The pipe state is invalid.
Private Const ERROR_BAD_PIPE = 230&

' All pipe instances are busy.
Private Const ERROR_PIPE_BUSY = 231&

' The pipe is being closed.
Private Const ERROR_NO_DATA = 232&

' No process is on the other end of the pipe.
Private Const ERROR_PIPE_NOT_CONNECTED = 233&

' More data is available.
Private Const ERROR_MORE_DATA = 234 ' dderror

' The session was cancelled.
Private Const ERROR_VC_DISCONNECTED = 240&

' The specified extended attribute name was invalid.
Private Const ERROR_INVALID_EA_NAME = 254&

' The extended attributes are inconsistent.
Private Const ERROR_EA_LIST_INCONSISTENT = 255&

' No more data is available.
Private Const ERROR_NO_MORE_ITEMS = 259&

' The Copy API cannot be used.
Private Const ERROR_CANNOT_COPY = 266&

' The directory name is invalid.
Private Const ERROR_DIRECTORY = 267&

' The extended attributes did not fit in the buffer.
Private Const ERROR_EAS_DIDNT_FIT = 275&

' The extended attribute file on the mounted file system is corrupt.
Private Const ERROR_EA_FILE_CORRUPT = 276&

' The extended attribute table file is full.
Private Const ERROR_EA_TABLE_FULL = 277&

' The specified extended attribute handle is invalid.
Private Const ERROR_INVALID_EA_HANDLE = 278&

' The mounted file system does not support extended attributes.
Private Const ERROR_EAS_NOT_SUPPORTED = 282&

' Attempt to release mutex not owned by caller.
Private Const ERROR_NOT_OWNER = 288&

' Too many posts were made to a semaphore.
Private Const ERROR_TOO_MANY_POSTS = 298&

' The system cannot find message for message number 0x%1
' in message file for %2.
Private Const ERROR_MR_MID_NOT_FOUND = 317&

' Attempt to access invalid address.
Private Const ERROR_INVALID_ADDRESS = 487&

' Arithmetic result exceeded 32 bits.
Private Const ERROR_ARITHMETIC_OVERFLOW = 534&

' There is a process on other end of the pipe.
Private Const ERROR_PIPE_CONNECTED = 535&

' Waiting for a process to open the other end of the pipe.
Private Const ERROR_PIPE_LISTENING = 536&

' Access to the extended attribute was denied.
Private Const ERROR_EA_ACCESS_DENIED = 994&

' The I/O operation has been aborted because of either a thread exit
' or an application request.
Private Const ERROR_OPERATION_ABORTED = 995&

' Overlapped I/O event is not in a signalled state.
Private Const ERROR_IO_INCOMPLETE = 996&

' Overlapped I/O operation is in progress.
Private Const ERROR_IO_PENDING = 997 ' dderror

' Invalid access to memory location.
Private Const ERROR_NOACCESS = 998&

' Error performing inpage operation.
Private Const ERROR_SWAPERROR = 999&

' Recursion too deep, stack overflowed.
Private Const ERROR_STACK_OVERFLOW = 1001&

' The window cannot act on the sent message.
Private Const ERROR_INVALID_MESSAGE = 1002&

' Cannot complete this function.
Private Const ERROR_CAN_NOT_COMPLETE = 1003&

' Invalid flags.
Private Const ERROR_INVALID_FLAGS = 1004&

' The volume does not contain a recognized file system.
' Please make sure that all required file system drivers are loaded and that the
' volume is not corrupt.
Private Const ERROR_UNRECOGNIZED_VOLUME = 1005&

' The volume for a file has been externally altered such that the
' opened file is no longer valid.
Private Const ERROR_FILE_INVALID = 1006&

' The requested operation cannot be performed in full-screen mode.
Private Const ERROR_FULLSCREEN_MODE = 1007&

' An attempt was made to reference a token that does not exist.
Private Const ERROR_NO_TOKEN = 1008&

' The configuration registry database is corrupt.
Private Const ERROR_BADDB = 1009&

' The configuration registry key is invalid.
Private Const ERROR_BADKEY = 1010&

' The configuration registry key could not be opened.
Private Const ERROR_CANTOPEN = 1011&

' The configuration registry key could not be read.
Private Const ERROR_CANTREAD = 1012&

' The configuration registry key could not be written.
Private Const ERROR_CANTWRITE = 1013&

' One of the files in the Registry database had to be recovered
' by use of a log or alternate copy. The recovery was successful.
Private Const ERROR_REGISTRY_RECOVERED = 1014&

' The Registry is corrupt. The structure of one of the files that contains
' Registry data is corrupt, or the system's image of the file in memory
' is corrupt, or the file could not be recovered because the alternate
' copy or log was absent or corrupt.
Private Const ERROR_REGISTRY_CORRUPT = 1015&

' An I/O operation initiated by the Registry failed unrecoverably.
' The Registry could not read in, or write out, or flush, one of the files
' that contain the system's image of the Registry.
Private Const ERROR_REGISTRY_IO_FAILED = 1016&

' The system has attempted to load or restore a file into the Registry, but the
' specified file is not in a Registry file format.
Private Const ERROR_NOT_REGISTRY_FILE = 1017&

' Illegal operation attempted on a Registry key which has been marked for deletion.
Private Const ERROR_KEY_DELETED = 1018&

' System could not allocate the required space in a Registry log.
Private Const ERROR_NO_LOG_SPACE = 1019&

' Cannot create a symbolic link in a Registry key that already
' has subkeys or values.
Private Const ERROR_KEY_HAS_CHILDREN = 1020&

' Cannot create a stable subkey under a volatile parent key.
Private Const ERROR_CHILD_MUST_BE_VOLATILE = 1021&

' A notify change request is being completed and the information
' is not being returned in the caller's buffer. The caller now
' needs to enumerate the files to find the changes.
Private Const ERROR_NOTIFY_ENUM_DIR = 1022&

' A stop control has been sent to a service which other running services
' are dependent on.
Private Const ERROR_DEPENDENT_SERVICES_RUNNING = 1051&

' The requested control is not valid for this service
Private Const ERROR_INVALID_SERVICE_CONTROL = 1052&

' The service did not respond to the start or control request in a timely
' fashion.
Private Const ERROR_SERVICE_REQUEST_TIMEOUT = 1053&

' A thread could not be created for the service.
Private Const ERROR_SERVICE_NO_THREAD = 1054&

' The service database is locked.
Private Const ERROR_SERVICE_DATABASE_LOCKED = 1055&

' An instance of the service is already running.
Private Const ERROR_SERVICE_ALREADY_RUNNING = 1056&

' The account name is invalid or does not exist.
Private Const ERROR_INVALID_SERVICE_ACCOUNT = 1057&

' The specified service is disabled and cannot be started.
Private Const ERROR_SERVICE_DISABLED = 1058&

' Circular service dependency was specified.
Private Const ERROR_CIRCULAR_DEPENDENCY = 1059&

' The specified service does not exist as an installed service.
Private Const ERROR_SERVICE_DOES_NOT_EXIST = 1060&

' The service cannot accept control messages at this time.
Private Const ERROR_SERVICE_CANNOT_ACCEPT_CTRL = 1061&

' The service has not been started.
Private Const ERROR_SERVICE_NOT_ACTIVE = 1062&

' The service process could not connect to the service controller.
Private Const ERROR_FAILED_SERVICE_CONTROLLER_CONNECT = 1063&

' An exception occurred in the service when handling the control request.
Private Const ERROR_EXCEPTION_IN_SERVICE = 1064&

' The database specified does not exist.
Private Const ERROR_DATABASE_DOES_NOT_EXIST = 1065&

' The service has returned a service-specific error code.
Private Const ERROR_SERVICE_SPECIFIC_ERROR = 1066&

' The process terminated unexpectedly.
Private Const ERROR_PROCESS_ABORTED = 1067&

' The dependency service or group failed to start.
Private Const ERROR_SERVICE_DEPENDENCY_FAIL = 1068&

' The service did not start due to a logon failure.
Private Const ERROR_SERVICE_LOGON_FAILED = 1069&

' After starting, the service hung in a start-pending state.
Private Const ERROR_SERVICE_START_HANG = 1070&

' The specified service database lock is invalid.
Private Const ERROR_INVALID_SERVICE_LOCK = 1071&

' The specified service has been marked for deletion.
Private Const ERROR_SERVICE_MARKED_FOR_DELETE = 1072&

' The specified service already exists.
Private Const ERROR_SERVICE_EXISTS = 1073&

' The system is currently running with the last-known-good configuration.
Private Const ERROR_ALREADY_RUNNING_LKG = 1074&

' The dependency service does not exist or has been marked for
' deletion.
Private Const ERROR_SERVICE_DEPENDENCY_DELETED = 1075&

' The current boot has already been accepted for use as the
' last-known-good control set.
Private Const ERROR_BOOT_ALREADY_ACCEPTED = 1076&

' No attempts to start the service have been made since the last boot.
Private Const ERROR_SERVICE_NEVER_STARTED = 1077&

' The name is already in use as either a service name or a service display
' name.
Private Const ERROR_DUPLICATE_SERVICE_NAME = 1078&

' The physical end of the tape has been reached.
Private Const ERROR_END_OF_MEDIA = 1100&

' A tape access reached a filemark.
Private Const ERROR_FILEMARK_DETECTED = 1101&

' Beginning of tape or partition was encountered.
Private Const ERROR_BEGINNING_OF_MEDIA = 1102&

' A tape access reached the end of a set of files.
Private Const ERROR_SETMARK_DETECTED = 1103&

' No more data is on the tape.
Private Const ERROR_NO_DATA_DETECTED = 1104&

' Tape could not be partitioned.
Private Const ERROR_PARTITION_FAILURE = 1105&

' When accessing a new tape of a multivolume partition, the current
' blocksize is incorrect.
Private Const ERROR_INVALID_BLOCK_LENGTH = 1106&

' Tape partition information could not be found when loading a tape.
Private Const ERROR_DEVICE_NOT_PARTITIONED = 1107&

' Unable to lock the media eject mechanism.
Private Const ERROR_UNABLE_TO_LOCK_MEDIA = 1108&

' Unable to unload the media.
Private Const ERROR_UNABLE_TO_UNLOAD_MEDIA = 1109&

' Media in drive may have changed.
Private Const ERROR_MEDIA_CHANGED = 1110&

' The I/O bus was reset.
Private Const ERROR_BUS_RESET = 1111&

' No media in drive.
Private Const ERROR_NO_MEDIA_IN_DRIVE = 1112&

' No mapping for the Unicode character exists in the target multi-byte code page.
Private Const ERROR_NO_UNICODE_TRANSLATION = 1113&

' A dynamic link library (DLL) initialization routine failed.
Private Const ERROR_DLL_INIT_FAILED = 1114&

' A system shutdown is in progress.
Private Const ERROR_SHUTDOWN_IN_PROGRESS = 1115&

' Unable to abort the system shutdown because no shutdown was in progress.
Private Const ERROR_NO_SHUTDOWN_IN_PROGRESS = 1116&

' The request could not be performed because of an I/O device error.
Private Const ERROR_IO_DEVICE = 1117&

' No serial device was successfully initialized. The serial driver will unload.
Private Const ERROR_SERIAL_NO_DEVICE = 1118&

' Unable to open a device that was sharing an interrupt request (IRQ)
' with other devices. At least one other device that uses that IRQ
' was already opened.
Private Const ERROR_IRQ_BUSY = 1119&

' A serial I/O operation was completed by another write to the serial port.
' (The IOCTL_SERIAL_XOFF_COUNTER reached zero.)
Private Const ERROR_MORE_WRITES = 1120&

' A serial I/O operation completed because the time-out period expired.
' (The IOCTL_SERIAL_XOFF_COUNTER did not reach zero.)
Private Const ERROR_COUNTER_TIMEOUT = 1121&

' No ID address mark was found on the floppy disk.
Private Const ERROR_FLOPPY_ID_MARK_NOT_FOUND = 1122&

' Mismatch between the floppy disk sector ID field and the floppy disk
' controller track address.
Private Const ERROR_FLOPPY_WRONG_CYLINDER = 1123&

' The floppy disk controller reported an error that is not recognized
' by the floppy disk driver.
Private Const ERROR_FLOPPY_UNKNOWN_ERROR = 1124&

' The floppy disk controller returned inconsistent results in its registers.
Private Const ERROR_FLOPPY_BAD_REGISTERS = 1125&

' While accessing the hard disk, a recalibrate operation failed, even after retries.
Private Const ERROR_DISK_RECALIBRATE_FAILED = 1126&

' While accessing the hard disk, a disk operation failed even after retries.
Private Const ERROR_DISK_OPERATION_FAILED = 1127&

' While accessing the hard disk, a disk controller reset was needed, but
' even that failed.
Private Const ERROR_DISK_RESET_FAILED = 1128&

' Physical end of tape encountered.
Private Const ERROR_EOM_OVERFLOW = 1129&

' Not enough server storage is available to process this command.
Private Const ERROR_NOT_ENOUGH_SERVER_MEMORY = 1130&

' A potential deadlock condition has been detected.
Private Const ERROR_POSSIBLE_DEADLOCK = 1131&

' The base address or the file offset specified does not have the proper
' alignment.
Private Const ERROR_MAPPED_ALIGNMENT = 1132&

' NEW for Win32
Private Const ERROR_INVALID_PIXEL_FORMAT = 2000
Private Const ERROR_BAD_DRIVER = 2001
Private Const ERROR_INVALID_WINDOW_STYLE = 2002
Private Const ERROR_METAFILE_NOT_SUPPORTED = 2003
Private Const ERROR_TRANSFORM_NOT_SUPPORTED = 2004
Private Const ERROR_CLIPPING_NOT_SUPPORTED = 2005
Private Const ERROR_UNKNOWN_PRINT_MONITOR = 3000
Private Const ERROR_PRINTER_DRIVER_IN_USE = 3001
Private Const ERROR_SPOOL_FILE_NOT_FOUND = 3002
Private Const ERROR_SPL_NO_STARTDOC = 3003
Private Const ERROR_SPL_NO_ADDJOB = 3004
Private Const ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED = 3005
Private Const ERROR_PRINT_MONITOR_ALREADY_INSTALLED = 3006
Private Const ERROR_WINS_INTERNAL = 4000
Private Const ERROR_CAN_NOT_DEL_LOCAL_WINS = 4001
Private Const ERROR_STATIC_INIT = 4002
Private Const ERROR_INC_BACKUP = 4003
Private Const ERROR_FULL_BACKUP = 4004
Private Const ERROR_REC_NON_EXISTENT = 4005
Private Const ERROR_RPL_NOT_ALLOWED = 4006
Private Const SEVERITY_SUCCESS = 0
Private Const SEVERITY_ERROR = 1
Private Const FACILITY_NT_BIT = &H10000000
Private Const NOERROR = 0
Private Const E_UNEXPECTED = &H8000FFFF
Private Const E_NOTIMPL = &H80004001
Private Const E_OUTOFMEMORY = &H8007000E
Private Const E_INVALIDARG = &H80070057
Private Const E_NOINTERFACE = &H80004002
Private Const E_POINTER = &H80004003
Private Const E_HANDLE = &H80070006
Private Const E_ABORT = &H80004004
Private Const E_FAIL = &H80004005
Private Const E_ACCESSDENIED = &H80070005
Private Const CO_E_INIT_TLS = &H80004006
Private Const CO_E_INIT_SHARED_ALLOCATOR = &H80004007
Private Const CO_E_INIT_MEMORY_ALLOCATOR = &H80004008
Private Const CO_E_INIT_CLASS_CACHE = &H80004009
Private Const CO_E_INIT_RPC_CHANNEL = &H8000400A
Private Const CO_E_INIT_TLS_SET_CHANNEL_CONTROL = &H8000400B
Private Const CO_E_INIT_TLS_CHANNEL_CONTROL = &H8000400C
Private Const CO_E_INIT_UNACCEPTED_USER_ALLOCATOR = &H8000400D
Private Const CO_E_INIT_SCM_MUTEX_EXISTS = &H8000400E
Private Const CO_E_INIT_SCM_FILE_MAPPING_EXISTS = &H8000400F
Private Const CO_E_INIT_SCM_MAP_VIEW_OF_FILE = &H80004010
Private Const CO_E_INIT_SCM_EXEC_FAILURE = &H80004011
Private Const CO_E_INIT_ONLY_SINGLE_THREADED = &H80004012
Private Const S_OK = &H0
Private Const S_FALSE = &H1
Private Const OLE_E_FIRST = &H80040000
Private Const OLE_E_LAST = &H800400FF
Private Const OLE_S_FIRST = &H40000
Private Const OLE_S_LAST = &H400FF
Private Const OLE_E_OLEVERB = &H80040000
Private Const OLE_E_ADVF = &H80040001
Private Const OLE_E_ENUM_NOMORE = &H80040002
Private Const OLE_E_ADVISENOTSUPPORTED = &H80040003
Private Const OLE_E_NOCONNECTION = &H80040004
Private Const OLE_E_NOTRUNNING = &H80040005
Private Const OLE_E_NOCACHE = &H80040006
Private Const OLE_E_BLANK = &H80040007
Private Const OLE_E_CLASSDIFF = &H80040008
Private Const OLE_E_CANT_GETMONIKER = &H80040009
Private Const OLE_E_CANT_BINDTOSOURCE = &H8004000A
Private Const OLE_E_STATIC = &H8004000B
Private Const OLE_E_PROMPTSAVECANCELLED = &H8004000C
Private Const OLE_E_INVALIDRECT = &H8004000D
Private Const OLE_E_WRONGCOMPOBJ = &H8004000E
Private Const OLE_E_INVALIDhWnd = &H8004000F
Private Const OLE_E_NOT_INPLACEACTIVE = &H80040010
Private Const OLE_E_CANTCONVERT = &H80040011
Private Const OLE_E_NOSTORAGE = &H80040012
Private Const DV_E_FORMATETC = &H80040064
Private Const DV_E_DVTARGETDEVICE = &H80040065
Private Const DV_E_STGMEDIUM = &H80040066
Private Const DV_E_STATDATA = &H80040067
Private Const DV_E_LINDEX = &H80040068
Private Const DV_E_TYMED = &H80040069
Private Const DV_E_CLIPFORMAT = &H8004006A
Private Const DV_E_DVASPECT = &H8004006B
Private Const DV_E_DVTARGETDEVICE_SIZE = &H8004006C
Private Const DV_E_NOIVIEWOBJECT = &H8004006D
Private Const DRAGDROP_E_FIRST = &H80040100
Private Const DRAGDROP_E_LAST = &H8004010F
Private Const DRAGDROP_S_FIRST = &H40100
Private Const DRAGDROP_S_LAST = &H4010F
Private Const DRAGDROP_E_NOTREGISTERED = &H80040100
Private Const DRAGDROP_E_ALREADYREGISTERED = &H80040101
Private Const DRAGDROP_E_INVALIDhWnd = &H80040102
Private Const CLASSFACTORY_E_FIRST = &H80040110
Private Const CLASSFACTORY_E_LAST = &H8004011F
Private Const CLASSFACTORY_S_FIRST = &H40110
Private Const CLASSFACTORY_S_LAST = &H4011F
Private Const CLASS_E_NOAGGREGATION = &H80040110
Private Const CLASS_E_CLASSNOTAVAILABLE = &H80040111
Private Const MARSHAL_E_FIRST = &H80040120
Private Const MARSHAL_E_LAST = &H8004012F
Private Const MARSHAL_S_FIRST = &H40120
Private Const MARSHAL_S_LAST = &H4012F
Private Const DATA_E_FIRST = &H80040130
Private Const DATA_E_LAST = &H8004013F
Private Const DATA_S_FIRST = &H40130
Private Const DATA_S_LAST = &H4013F
Private Const VIEW_E_FIRST = &H80040140
Private Const VIEW_E_LAST = &H8004014F
Private Const VIEW_S_FIRST = &H40140
Private Const VIEW_S_LAST = &H4014F
Private Const VIEW_E_DRAW = &H80040140
Private Const REGDB_E_FIRST = &H80040150
Private Const REGDB_E_LAST = &H8004015F
Private Const REGDB_S_FIRST = &H40150
Private Const REGDB_S_LAST = &H4015F
Private Const REGDB_E_READREGDB = &H80040150
Private Const REGDB_E_WRITEREGDB = &H80040151
Private Const REGDB_E_KEYMISSING = &H80040152
Private Const REGDB_E_INVALIDVALUE = &H80040153
Private Const REGDB_E_CLASSNOTREG = &H80040154
Private Const REGDB_E_IIDNOTREG = &H80040155
Private Const CACHE_E_FIRST = &H80040170
Private Const CACHE_E_LAST = &H8004017F
Private Const CACHE_S_FIRST = &H40170
Private Const CACHE_S_LAST = &H4017F
Private Const CACHE_E_NOCACHE_UPDATED = &H80040170
Private Const OLEOBJ_E_FIRST = &H80040180
Private Const OLEOBJ_E_LAST = &H8004018F
Private Const OLEOBJ_S_FIRST = &H40180
Private Const OLEOBJ_S_LAST = &H4018F
Private Const OLEOBJ_E_NOVERBS = &H80040180
Private Const OLEOBJ_E_INVALIDVERB = &H80040181
Private Const CLIENTSITE_E_FIRST = &H80040190
Private Const CLIENTSITE_E_LAST = &H8004019F
Private Const CLIENTSITE_S_FIRST = &H40190
Private Const CLIENTSITE_S_LAST = &H4019F
Private Const INPLACE_E_NOTUNDOABLE = &H800401A0
Private Const INPLACE_E_NOTOOLSPACE = &H800401A1
Private Const INPLACE_E_FIRST = &H800401A0
Private Const INPLACE_E_LAST = &H800401AF
Private Const INPLACE_S_FIRST = &H401A0
Private Const INPLACE_S_LAST = &H401AF
Private Const ENUM_E_FIRST = &H800401B0
Private Const ENUM_E_LAST = &H800401BF
Private Const ENUM_S_FIRST = &H401B0
Private Const ENUM_S_LAST = &H401BF
Private Const CONVERT10_E_FIRST = &H800401C0
Private Const CONVERT10_E_LAST = &H800401CF
Private Const CONVERT10_S_FIRST = &H401C0
Private Const CONVERT10_S_LAST = &H401CF
Private Const CONVERT10_E_OLESTREAM_GET = &H800401C0
Private Const CONVERT10_E_OLESTREAM_PUT = &H800401C1
Private Const CONVERT10_E_OLESTREAM_FMT = &H800401C2
Private Const CONVERT10_E_OLESTREAM_BITMAP_TO_DIB = &H800401C3
Private Const CONVERT10_E_STG_FMT = &H800401C4
Private Const CONVERT10_E_STG_NO_STD_STREAM = &H800401C5
Private Const CONVERT10_E_STG_DIB_TO_BITMAP = &H800401C6
Private Const CLIPBRD_E_FIRST = &H800401D0
Private Const CLIPBRD_E_LAST = &H800401DF
Private Const CLIPBRD_S_FIRST = &H401D0
Private Const CLIPBRD_S_LAST = &H401DF
Private Const CLIPBRD_E_CANT_OPEN = &H800401D0
Private Const CLIPBRD_E_CANT_EMPTY = &H800401D1
Private Const CLIPBRD_E_CANT_SET = &H800401D2
Private Const CLIPBRD_E_BAD_DATA = &H800401D3
Private Const CLIPBRD_E_CANT_CLOSE = &H800401D4
Private Const MK_E_FIRST = &H800401E0
Private Const MK_E_LAST = &H800401EF
Private Const MK_S_FIRST = &H401E0
Private Const MK_S_LAST = &H401EF
Private Const MK_E_CONNECTMANUALLY = &H800401E0
Private Const MK_E_EXCEEDEDDEADLINE = &H800401E1
Private Const MK_E_NEEDGENERIC = &H800401E2
Private Const MK_E_UNAVAILABLE = &H800401E3
Private Const MK_E_SYNTAX = &H800401E4
Private Const MK_E_NOOBJECT = &H800401E5
Private Const MK_E_INVALIDEXTENSION = &H800401E6
Private Const MK_E_INTERMEDIATEINTERFACENOTSUPPORTED = &H800401E7
Private Const MK_E_NOTBINDABLE = &H800401E8
Private Const MK_E_NOTBOUND = &H800401E9
Private Const MK_E_CANTOPENFILE = &H800401EA
Private Const MK_E_MUSTBOTHERUSER = &H800401EB
Private Const MK_E_NOINVERSE = &H800401EC
Private Const MK_E_NOSTORAGE = &H800401ED
Private Const MK_E_NOPREFIX = &H800401EE
Private Const MK_E_ENUMERATION_FAILED = &H800401EF
Private Const CO_E_FIRST = &H800401F0
Private Const CO_E_LAST = &H800401FF
Private Const CO_S_FIRST = &H401F0
Private Const CO_S_LAST = &H401FF
Private Const CO_E_NOTINITIALIZED = &H800401F0
Private Const CO_E_ALREADYINITIALIZED = &H800401F1
Private Const CO_E_CANTDETERMINECLASS = &H800401F2
Private Const CO_E_CLASSSTRING = &H800401F3
Private Const CO_E_IIDSTRING = &H800401F4
Private Const CO_E_APPNOTFOUND = &H800401F5
Private Const CO_E_APPSINGLEUSE = &H800401F6
Private Const CO_E_ERRORINAPP = &H800401F7
Private Const CO_E_DLLNOTFOUND = &H800401F8
Private Const CO_E_ERRORINDLL = &H800401F9
Private Const CO_E_WRONGOSFORAPP = &H800401FA
Private Const CO_E_OBJNOTREG = &H800401FB
Private Const CO_E_OBJISREG = &H800401FC
Private Const CO_E_OBJNOTCONNECTED = &H800401FD
Private Const CO_E_APPDIDNTREG = &H800401FE
Private Const CO_E_RELEASED = &H800401FF
Private Const OLE_S_USEREG = &H40000
Private Const OLE_S_STATIC = &H40001
Private Const OLE_S_MAC_CLIPFORMAT = &H40002
Private Const DRAGDROP_S_DROP = &H40100
Private Const DRAGDROP_S_CANCEL = &H40101
Private Const DRAGDROP_S_USEDEFAULTCURSORS = &H40102
Private Const DATA_S_SAMEFORMATETC = &H40130
Private Const VIEW_S_ALREADY_FROZEN = &H40140
Private Const CACHE_S_FORMATETC_NOTSUPPORTED = &H40170
Private Const CACHE_S_SAMECACHE = &H40171
Private Const CACHE_S_SOMECACHES_NOTUPDATED = &H40172
Private Const OLEOBJ_S_INVALIDVERB = &H40180
Private Const OLEOBJ_S_CANNOT_DOVERB_NOW = &H40181
Private Const OLEOBJ_S_INVALIDhWnd = &H40182
Private Const INPLACE_S_TRUNCATED = &H401A0
Private Const CONVERT10_S_NO_PRESENTATION = &H401C0
Private Const MK_S_REDUCED_TO_SELF = &H401E2
Private Const MK_S_ME = &H401E4
Private Const MK_S_HIM = &H401E5
Private Const MK_S_US = &H401E6
Private Const MK_S_MONIKERALREADYREGISTERED = &H401E7
Private Const CO_E_CLASS_CREATE_FAILED = &H80080001
Private Const CO_E_SCM_ERROR = &H80080002
Private Const CO_E_SCM_RPC_FAILURE = &H80080003
Private Const CO_E_BAD_PATH = &H80080004
Private Const CO_E_SERVER_EXEC_FAILURE = &H80080005
Private Const CO_E_OBJSRV_RPC_FAILURE = &H80080006
Private Const MK_E_NO_NORMALIZED = &H80080007
Private Const CO_E_SERVER_STOPPING = &H80080008
Private Const MEM_E_INVALID_ROOT = &H80080009
Private Const MEM_E_INVALID_LINK = &H80080010
Private Const MEM_E_INVALID_SIZE = &H80080011
Private Const DISP_E_UNKNOWNINTERFACE = &H80020001
Private Const DISP_E_MEMBERNOTFOUND = &H80020003
Private Const DISP_E_PARAMNOTFOUND = &H80020004
Private Const DISP_E_TYPEMISMATCH = &H80020005
Private Const DISP_E_UNKNOWNNAME = &H80020006
Private Const DISP_E_NONAMEDARGS = &H80020007
Private Const DISP_E_BADVARTYPE = &H80020008
Private Const DISP_E_EXCEPTION = &H80020009
Private Const DISP_E_OVERFLOW = &H8002000A
Private Const DISP_E_BADINDEX = &H8002000B
Private Const DISP_E_UNKNOWNLCID = &H8002000C
Private Const DISP_E_ARRAYISLOCKED = &H8002000D
Private Const DISP_E_BADPARAMCOUNT = &H8002000E
Private Const DISP_E_PARAMNOTOPTIONAL = &H8002000F
Private Const DISP_E_BADCALLEE = &H80020010
Private Const DISP_E_NOTACOLLECTION = &H80020011
Private Const TYPE_E_BUFFERTOOSMALL = &H80028016
Private Const TYPE_E_INVDATAREAD = &H80028018
Private Const TYPE_E_UNSUPFORMAT = &H80028019
Private Const TYPE_E_REGISTRYACCESS = &H8002801C
Private Const TYPE_E_LIBNOTREGISTERED = &H8002801D
Private Const TYPE_E_UNDEFINEDTYPE = &H80028027
Private Const TYPE_E_QUALIFIEDNAMEDISALLOWED = &H80028028
Private Const TYPE_E_INVALIDSTATE = &H80028029
Private Const TYPE_E_WRONGTYPEKIND = &H8002802A
Private Const TYPE_E_ELEMENTNOTFOUND = &H8002802B
Private Const TYPE_E_AMBIGUOUSNAME = &H8002802C
Private Const TYPE_E_NAMECONFLICT = &H8002802D
Private Const TYPE_E_UNKNOWNLCID = &H8002802E
Private Const TYPE_E_DLLFUNCTIONNOTFOUND = &H8002802F
Private Const TYPE_E_BADMODULEKIND = &H800288BD
Private Const TYPE_E_SIZETOOBIG = &H800288C5
Private Const TYPE_E_DUPLICATEID = &H800288C6
Private Const TYPE_E_INVALIDID = &H800288CF
Private Const TYPE_E_TYPEMISMATCH = &H80028CA0
Private Const TYPE_E_OUTOFBOUNDS = &H80028CA1
Private Const TYPE_E_IOERROR = &H80028CA2
Private Const TYPE_E_CANTCREATETMPFILE = &H80028CA3
Private Const TYPE_E_CANTLOADLIBRARY = &H80029C4A
Private Const TYPE_E_INCONSISTENTPROPFUNCS = &H80029C83
Private Const TYPE_E_CIRCULARTYPE = &H80029C84
Private Const STG_E_INVALIDFUNCTION = &H80030001
Private Const STG_E_FILENOTFOUND = &H80030002
Private Const STG_E_PATHNOTFOUND = &H80030003
Private Const STG_E_TOOMANYOPENFILES = &H80030004
Private Const STG_E_ACCESSDENIED = &H80030005
Private Const STG_E_INVALIDHANDLE = &H80030006
Private Const STG_E_INSUFFICIENTMEMORY = &H80030008
Private Const STG_E_INVALIDPOINTER = &H80030009
Private Const STG_E_NOMOREFILES = &H80030012
Private Const STG_E_DISKISWRITEPROTECTED = &H80030013
Private Const STG_E_SEEKERROR = &H80030019
Private Const STG_E_WRITEFAULT = &H8003001D
Private Const STG_E_READFAULT = &H8003001E
Private Const STG_E_SHAREVIOLATION = &H80030020
Private Const STG_E_LOCKVIOLATION = &H80030021
Private Const STG_E_FILEALREADYEXISTS = &H80030050
Private Const STG_E_INVALIDPARAMETER = &H80030057
Private Const STG_E_MEDIUMFULL = &H80030070
Private Const STG_E_ABNORMALAPIEXIT = &H800300FA
Private Const STG_E_INVALIDHEADER = &H800300FB
Private Const STG_E_INVALIDNAME = &H800300FC
Private Const STG_E_UNKNOWN = &H800300FD
Private Const STG_E_UNIMPLEMENTEDFUNCTION = &H800300FE
Private Const STG_E_INVALIDFLAG = &H800300FF
Private Const STG_E_INUSE = &H80030100
Private Const STG_E_NOTCURRENT = &H80030101
Private Const STG_E_REVERTED = &H80030102
Private Const STG_E_CANTSAVE = &H80030103
Private Const STG_E_OLDFORMAT = &H80030104
Private Const STG_E_OLDDLL = &H80030105
Private Const STG_E_SHAREREQUIRED = &H80030106
Private Const STG_E_NOTFILEBASEDSTORAGE = &H80030107
Private Const STG_E_EXTANTMARSHALLINGS = &H80030108
Private Const STG_S_CONVERTED = &H30200
Private Const RPC_E_CALL_REJECTED = &H80010001
Private Const RPC_E_CALL_CANCELED = &H80010002
Private Const RPC_E_CANTPOST_INSENDCALL = &H80010003
Private Const RPC_E_CANTCALLOUT_INASYNCCALL = &H80010004
Private Const RPC_E_CANTCALLOUT_INEXTERNALCALL = &H80010005
Private Const RPC_E_CONNECTION_TERMINATED = &H80010006
Private Const RPC_E_SERVER_DIED = &H80010007
Private Const RPC_E_CLIENT_DIED = &H80010008
Private Const RPC_E_INVALID_DATAPACKET = &H80010009
Private Const RPC_E_CANTTRANSMIT_CALL = &H8001000A
Private Const RPC_E_CLIENT_CANTMARSHAL_DATA = &H8001000B
Private Const RPC_E_CLIENT_CANTUNMARSHAL_DATA = &H8001000C
Private Const RPC_E_SERVER_CANTMARSHAL_DATA = &H8001000D
Private Const RPC_E_SERVER_CANTUNMARSHAL_DATA = &H8001000E
Private Const RPC_E_INVALID_DATA = &H8001000F
Private Const RPC_E_INVALID_PARAMETER = &H80010010
Private Const RPC_E_CANTCALLOUT_AGAIN = &H80010011
Private Const RPC_E_SERVER_DIED