Copyright: Copyright © REDsys 1998


ConsoleIO unit

ConsoleIO contains the component TGUI2Console which is designed to provide a means to connect to hidden DOS/Console applications.  Simply drop the component on your form, fill in the application name and associated properties, and tell it to start.. The OnLine event occurs whenever a CR/LF delimited text line is read from the console.  One thing to note, TGUI2Console ignores all lines of text which are null (empty "").

Components

TGUI2Console

Constants

CR

CRLF

LF

Space

ErrorCodes

Installation

License


      TGUI2Console Component
Properties	Methods	Events

Unit

ConsoleIO

Description

ConsoleIO contains the multithreaded component TGUI2Console, which is designed to provide a means to connect to hidden DOS/Console applications by redirecting these applications stdio back to this component.  Simply drop the component on your form, fill in the application name and associated properties, and tell it to start.. The OnLine event occurs whenever a CR/LF delimited text line is read from the console.  One thing to note, TGUI2Console ignores all lines of text which are null (empty "").

This component uses Windows CreateProcess function to start the application you specify.  This function has several nuances associated with the Application and Command properties, as these are directly (almost) passed to the CreateProcess function.

Every effort has been made to make this practical and easy to use.  If you have any questions or feature requests don't hesitate to email me at redsys@interaccess.com.


ConsoleIO_TGUI2Console_Properties_Popup
Properties

 Run-time only	 Key properties

		Application			Command			PipeSize
		AppType			Environment			Priority
		AutoTerminate			HomeDirectory			Prompt
		BufferSize			LogFile			TimeOutDelay


ConsoleIO_TGUI2Console_Methods_Popup
Methods

 Key methods

		Start			Write			WriteLN
		Stop


ConsoleIO_TGUI2Console_Events_Popup
Events

 Key events

		OnDone			OnPreTerminate			OnStatus
		OnError			OnPrompt			OnTimeOut
		OnLine			OnStart


Application property

Applies to

TGUI2Console

Declaration

property Application : String;

Description

The properties Application and Command work hand in hand to specify the process that you want executed.

First, the Command property is optional.  Although Microsoft's online help indicates otherwise, the absolute path and file name must be used if the Application property is used, including the file extension (.com or .exe)

e.g.   (for cmd, the DOS console window in WindowsNT)

GUI2Console.Application := 'c:\windows\system32\cmd.exe';

Microsoft's doc indicates that CreateProcess will search the PATH to find the application, but it was discovered this only works when the following conditions are met.

1. The Application property is set to null

2. The Command property contains the application name.

e.g.

GUI2Console.Application := '';

GUI2Console.Command := 'cmd';

Optionally, the Command property should/may also contain optional parameters.

e.g.

GUI2Console.Application := '';

GUI2Console.Command := 'grep -i string *.pas'

*grep is a Borland supplied utility for performing text searches


AppType property

Applies to

TGUI2Console

Declaration

property AppType : TAppType;

TAppType = (at16bit,at32bit,atDontCare);

Description

Specifying the application type determines whether or not an application instance is created with it's own virtual memory space (for 16 bit applications).  This is done so that if the spawned application dies, it will not effect the GUI applications execution.

It has not been tried to see what happens if the spawned app has an exception which causes it to die.  Anyone who experiences this, causing a problem with TGUI2Console please let me know.


AutoTerminate property

Applies to

TGUI2Console

Declaration

property AutoTerminate : Boolean;

Description

If Autoterminate is set to true, and an application time out occurs (no text received after a predetermined interval), then TGUI2Console will kill the process.  Otherwise, the OnTimeOut event is fired.


BufferSize property

Applies to

TGUI2Console

Declaration

property BufferSize : TBufferSize;

TBufferSize = (bs256,bs512,bs1k,bs2k,bs4k,bs8k);

Description

As data is read from the console app, it is read in a manner much like raw data is read from a binary file. BufferSize allows you to specify how much data can be read at a time.  The larger the size, the fewer number of reads that will have to be peformed.


Command property

Applies to

TGUI2Console

Declaration

property Command : String;

Description

The properties Application and Command work hand in hand to specify the process that you want executed.

First, the Command property is optional.  Although Microsoft's online help indicates otherwise, the absolute path and file name must be used of the Application property is used.

e.g.   (for cmd, the DOS console window in WindowsNT)

GUI2Console.Application := 'c:\windows\system32\cmd.exe';

Microsoft's doc indicates that CreateProcess will search the PATH to find the application, but it was discovered this only works when the following conditions are met.

1. The Application property is set to null

2. The Command property contains the application name.

e.g.

GUI2Console.Application := '';

GUI2Console.Command := 'cmd';

Optionally, the Command property should/may also contain optional parameters.

e.g.

GUI2Console.Application := '';

GUI2Console.Command := 'grep -i string *.pas'

*grep is a Borland supplied utility for performing text searches


ComponentCount property

Applies to

TGUI2Console

Declaration

property ComponentCount: Integer;

Description


ComponentIndex property

Applies to

TGUI2Console

Declaration

property ComponentIndex: Integer;


Components property

Applies to

TGUI2Console

Declaration

property Components[Index: Integer]: TComponent;


ComponentState property

Applies to

TGUI2Console

Declaration

property ComponentState: TComponentState;


ComponentStyle property

Applies to

TGUI2Console

Declaration

property ComponentStyle: TComponentStyle;


Environment property

Applies to

TGUI2Console

Declaration

property Environment : String;

Description

Each process has an environment block associated with it. The environment block consists of a null-terminated block of null-terminated strings (meaning there are two null bytes at the end of the block), where each string is in the form:

name=value

All strings in the environment block must be sorted alphabetically by name. Because the equal sign is a separator, it must not be used in the name of an environment variable.

e.g.

GUI2Console.Environment := 'API=Win32s TEMP=c:\windows\temp ';


HomeDirectory property

Applies to

TGUI2Console

Declaration

property HomeDirectory : String;

Description

This is the home directory for the application you are executing.  This is optional and is typically used in those situations where initialization data or dll's which are not in the path are stored there.


LogFile property

Applies to

TGUI2Console

Declaration

property LogFile : String;

Description

A file name which specifies a log file.  All data received from the process is stored here.  The filename can either be a file name and extension or a filename which includes the exact path.  If just a file name is specified, it is created in the current directory for the application.  If an invalid filename is specified then file logging is ignored.


Owner property

Applies to

TGUI2Console

Declaration

property Owner: TComponent;


PipeSize property

Applies to

TGUI2Console

Declaration

property PipeSize : TPipeSize;

TPipeSize = (ps1k,ps2k,ps4k,ps8k,ps16k,ps32k,ps64k,ps96K,ps128k,ps256k);

Description

PipeSize indicates the size of am 'intermediate' data.  It is required for those applications that use very long strings to communicate.

e.g.  If you have a string which is 5K you would need an 8K pipe to hold it while it is being trasferred to/from the console app.


Priority property

Applies to

TGUI2Console

Declaration

property Priority : TThreadPriority;

type TThreadPriority = (tpIdle, tpLowest, tpLower, tpNormal, tpHigher, tpHighest, tpTimeCritical);

Description

Specifies the priority of the worker thread which peforms the console communication.


Prompt property

Applies to

TGUI2Console

Declaration

property Prompt : String;

Description

The prompt characters which TGUI2Console looks for to inform the user that the console app is waiting for input.  The logic used here is that once the prompt character sequence is recognized at the end of a line, a timer is started.  Once the timeout is reached, the OnPrompt event is fired.  The amount of delay used is specified in the TimeOutDelay property.

e.g.

The DOS/cmd prompt is typically a greater than sign '>'

GUI2Console.Prompt := '>';


Tag property

Applies to

TGUI2Console

Declaration

property Tag: Longint;


TimeOutDelay property

Applies to

TGUI2Console

Declaration

property TimeOutDelay : TTimeOutDelay;

TTimeOutDelay = 10..10000;

Description

Delay in milliseconds used to determine if the console app is at its prompt or if a console timeout has occured.  If at the prompt, the OnPrompt event is fired.  If not, the OnTimeOut event is fired.


Assign method

Applies To

TGUI2Console

Declaration

procedure Assign(Source: TPersistent);


HasParent method

Applies To

TGUI2Console

Declaration

function HasParent: Boolean;


Start method

Applies To

TGUI2Console

Declaration

procedure Start;

Description

Once all properties are set, calling Start does the obvious.  It starts the console app.


Stop method

Applies To

TGUI2Console

Declaration

procedure Stop;

Description

The opposite of Start, Stop not only stops the process of communicating with the console app, it terminates it and kills the thread that was being used to communicate with it.


Write method

Applies To

TGUI2Console

Declaration

procedure Write(Buffer : String);

Description

Writes the buffer to the console app without a terminating carriage return-line feed sequence.


WriteLN method

Applies To

TGUI2Console

Declaration

procedure WriteLN(Buffer : String);

Description

Writes the Buffer to the console app and adds a terminating carriage return - line feed.


OnDone event

Applies To

TGUI2Console

Declaration

property OnDone : TDoneEvent;

TDoneEvent = procedure(Sender : TObject) of object;t0 Arial;

Description

The OnDone event is fired whenever an instance of TGUI2Console completes successfully.


OnError event

Applies To

TGUI2Console

Declaration

property OnError : TError;

TError = procedure(Sender: TObject; const Error : String) of object;

Description

Whenever an error occurs, be it an internal error associated with TGUI2Console or an error associated with a Windows call, OnError is fired.


OnLine event

Applies To

TGUI2Console

Declaration

property OnLine : TSendLine;

TSendLine = procedure(Sender : TObject; const Line : String) of object;

Description

Whenever a line of text, terminated by a CR/LF sequence is received, OnLine is fired.  OnLine will on send printable ASCII lines.  If the console app sends CRLF CRLF CRLF sequences, they are ignored until the next text delimited line occurs.


OnPreTerminate event

Applies To

TGUI2Console

Declaration

property OnPreTerminate : TPreTerminateEvent;

TPreTerminateEvent = procedure(Sender : TObject) of object;

Description

Before the console process is terminated, this event gives you one last chance to talk to the console application.  This event game about when comunicating with 'cmd.exe' and I wanted to send a CTRL-C and Exit command to the app before it was terminating.  Allows for more graceful exits from these console apps.


OnPrompt event

Applies To

TGUI2Console

Declaration

property OnPrompt : TPromptEvent;

TPromptEvent = procedure(Sender : TObject; const Line : String) of object;

Description

When ever the prompt sequence is recognized and a timout occurs, the OnPrompt event is fired.  See TimeOutDelay.


OnStart event

Applies To

TGUI2Console

Declaration

property OnStart : TStartEvent;

TStartEvent = procedure(Sender : TObject; const Command : String) of object;

Description

This event is fired prior to creating an instance of the process.


OnStatus event

Applies To

TGUI2Console

Declaration

property OnStatus : TStatusEvent;

TStatusEvent = procedure(Sender : TObject; const Status : String) of object;

Description

Indicates the status of the communication with the console process.


OnTimeOut event

Applies To

TGUI2Console

Declaration

property OnTimeOut : TTimeOut;

TimeOut = procedure(Sender : TObject; var Kill : Boolean) of object;

Description

OnTimeOut is fired when, after a predetermined time delay, no data is received from the console process.  Set Kill to True if you want the process to be terminated.  See TimeOutDelay.


TConsoleThread type

Unit

ConsoleIO

Declaration

TConsoleThread = class(TThread)


ConsoleIO_Unit_ErrorCodes
ERROR CODES

These error codes come directly from the WIN32 help file provided with Delphi from Microsoft.  Whenever a Windows error occurs, it is reported via the OnError event.

-8        LZERROR_UNKNOWNALG

-7        LZERROR_BADVALUE

-6        LZERROR_GLOBLOCK

-5        LZERROR_GLOBALLOC

-4        LZERROR_WRITE

-3        LZERROR_READ

-2        LZERROR_BADOUTHANDLE

-1        LZERROR_BADINHANDLE

0L        NO_ERROR

0L        ERROR_SUCCESS

1L        ERROR_INVALID_FUNCTION

2L        ERROR_FILE_NOT_FOUND

3L        ERROR_PATH_NOT_FOUND

4L        ERROR_TOO_MANY_OPEN_FILES

5L        ERROR_ACCESS_DENIED

6L        ERROR_INVALID_HANDLE

7L        ERROR_ARENA_TRASHED

8L        ERROR_NOT_ENOUGH_MEMORY

9L        ERROR_INVALID_BLOCK

10L       ERROR_BAD_ENVIRONMENT

11L       ERROR_BAD_FORMAT

12L       ERROR_INVALID_ACCESS

13L       ERROR_INVALID_DATA

14L       ERROR_OUTOFMEMORY

15L       ERROR_INVALID_DRIVE

16L       ERROR_CURRENT_DIRECTORY

17L       ERROR_NOT_SAME_DEVICE

18L       ERROR_NO_MORE_FILES

19L       ERROR_WRITE_PROTECT

20L       ERROR_BAD_UNIT

21L       ERROR_NOT_READY

22L       ERROR_BAD_COMMAND

23L       ERROR_CRC

24L       ERROR_BAD_LENGTH

25L       ERROR_SEEK

26L       ERROR_NOT_DOS_DISK

27L       ERROR_SECTOR_NOT_FOUND

28L       ERROR_OUT_OF_PAPER

29L       ERROR_WRITE_FAULT

30L       ERROR_READ_FAULT

31L       ERROR_GEN_FAILURE

32L       ERROR_SHARING_VIOLATION

33L       ERROR_LOCK_VIOLATION

34L       ERROR_WRONG_DISK

36L       ERROR_SHARING_BUFFER_EXCEEDED

38L       ERROR_HANDLE_EOF

39L       ERROR_HANDLE_DISK_FULL

50L       ERROR_NOT_SUPPORTED

51L       ERROR_REM_NOT_LIST

52L       ERROR_DUP_NAME

53L       ERROR_BAD_NETPATH

54L       ERROR_NETWORK_BUSY

55L       ERROR_DEV_NOT_EXIST

56L       ERROR_TOO_MANY_CMDS

57L       ERROR_ADAP_HDW_ERR

58L       ERROR_BAD_NET_RESP

59L       ERROR_UNEXP_NET_ERR

60L       ERROR_BAD_REM_ADAP

61L       ERROR_PRINTQ_FULL

62L       ERROR_NO_SPOOL_SPACE

63L       ERROR_PRINT_CANCELLED

64L       ERROR_NETNAME_DELETED

65L       ERROR_NETWORK_ACCESS_DENIED

66L       ERROR_BAD_DEV_TYPE

67L       ERROR_BAD_NET_NAME

68L       ERROR_TOO_MANY_NAMES

69L       ERROR_TOO_MANY_SESS

70L       ERROR_SHARING_PAUSED

71L       ERROR_REQ_NOT_ACCEP

72L       ERROR_REDIR_PAUSED

80L       ERROR_FILE_EXISTS

82L       ERROR_CANNOT_MAKE

83L       ERROR_FAIL_I24

84L       ERROR_OUT_OF_STRUCTURES

85L       ERROR_ALREADY_ASSIGNED

86L       ERROR_INVALID_PASSWORD

87L       ERROR_INVALID_PARAMETER

88L       ERROR_NET_WRITE_FAULT

89L       ERROR_NO_PROC_SLOTS

100L      ERROR_TOO_MANY_SEMAPHORES

101L      ERROR_EXCL_SEM_ALREADY_OWNED

102L      ERROR_SEM_IS_SET

103L      ERROR_TOO_MANY_SEM_REQUESTS

104L      ERROR_INVALID_AT_INTERRUPT_TIME

105L      ERROR_SEM_OWNER_DIED

106L      ERROR_SEM_USER_LIMIT

107L      ERROR_DISK_CHANGE

108L      ERROR_DRIVE_LOCKED

109L      ERROR_BROKEN_PIPE

110L      ERROR_OPEN_FAILED

111L      ERROR_BUFFER_OVERFLOW

112L      ERROR_DISK_FULL

113L      ERROR_NO_MORE_SEARCH_HANDLES

114L      ERROR_INVALID_TARGET_HANDLE

117L      ERROR_INVALID_CATEGORY

118L      ERROR_INVALID_VERIFY_SWITCH

119L      ERROR_BAD_DRIVER_LEVEL

120L      ERROR_CALL_NOT_IMPLEMENTED

121L      ERROR_SEM_TIMEOUT

122L      ERROR_INSUFFICIENT_BUFFER

123L      ERROR_INVALID_NAME

124L      ERROR_INVALID_LEVEL

125L      ERROR_NO_VOLUME_LABEL

126L      ERROR_MOD_NOT_FOUND

127L      ERROR_PROC_NOT_FOUND

128L      ERROR_WAIT_NO_CHILDREN

129L      ERROR_CHILD_NOT_COMPLETE

130L      ERROR_DIRECT_ACCESS_HANDLE

131L      ERROR_NEGATIVE_SEEK

132L      ERROR_SEEK_ON_DEVICE

133L      ERROR_IS_JOIN_TARGET

134L      ERROR_IS_JOINED

135L      ERROR_IS_SUBSTED

136L      ERROR_NOT_JOINED

137L      ERROR_NOT_SUBSTED

138L      ERROR_JOIN_TO_JOIN

139L      ERROR_SUBST_TO_SUBST

140L      ERROR_JOIN_TO_SUBST

141L      ERROR_SUBST_TO_JOIN

142L      ERROR_BUSY_DRIVE

143L      ERROR_SAME_DRIVE

144L      ERROR_DIR_NOT_ROOT

145L      ERROR_DIR_NOT_EMPTY

146L      ERROR_IS_SUBST_PATH

147L      ERROR_IS_JOIN_PATH

148L      ERROR_PATH_BUSY

149L      ERROR_IS_SUBST_TARGET

150L      ERROR_SYSTEM_TRACE

151L      ERROR_INVALID_EVENT_COUNT

152L      ERROR_TOO_MANY_MUXWAITERS

153L      ERROR_INVALID_LIST_FORMAT

154L      ERROR_LABEL_TOO_LONG

155L      ERROR_TOO_MANY_TCBS

156L      ERROR_SIGNAL_REFUSED

157L      ERROR_DISCARDED

158L      ERROR_NOT_LOCKED

159L      ERROR_BAD_THREADID_ADDR

160L      ERROR_BAD_ARGUMENTS

161L      ERROR_BAD_PATHNAME

162L      ERROR_SIGNAL_PENDING

164L      ERROR_MAX_THRDS_REACHED

167L      ERROR_LOCK_FAILED

170L      ERROR_BUSY

173L      ERROR_CANCEL_VIOLATION

174L      ERROR_ATOMIC_LOCKS_NOT_SUPPORTED

180L      ERROR_INVALID_SEGMENT_NUMBER

182L      ERROR_INVALID_ORDINAL

183L      ERROR_ALREADY_EXISTS

186L      ERROR_INVALID_FLAG_NUMBER

187L      ERROR_SEM_NOT_FOUND

188L      ERROR_INVALID_STARTING_CODESEG

189L      ERROR_INVALID_STACKSEG

190L      ERROR_INVALID_MODULETYPE

191L      ERROR_INVALID_EXE_SIGNATURE

192L      ERROR_EXE_MARKED_INVALID

193L      ERROR_BAD_EXE_FORMAT

194L      ERROR_ITERATED_DATA_EXCEEDS_64k

195L      ERROR_INVALID_MINALLOCSIZE

196L      ERROR_DYNLINK_FROM_INVALID_RING

197L      ERROR_IOPL_NOT_ENABLED

198L      ERROR_INVALID_SEGDPL

199L      ERROR_AUTODATASEG_EXCEEDS_64k

200L      ERROR_RING2SEG_MUST_BE_MOVABLE

201L      ERROR_RELOC_CHAIN_XEEDS_SEGLIM

202L      ERROR_INFLOOP_IN_RELOC_CHAIN

203L      ERROR_ENVVAR_NOT_FOUND

205L      ERROR_NO_SIGNAL_SENT

206L      ERROR_FILENAME_EXCED_RANGE

207L      ERROR_RING2_STACK_IN_USE

208L      ERROR_META_EXPANSION_TOO_LONG

209L      ERROR_INVALID_SIGNAL_NUMBER

210L      ERROR_THREAD_1_INACTIVE

212L      ERROR_LOCKED

214L      ERROR_TOO_MANY_MODULES

215L      ERROR_NESTING_NOT_ALLOWED

230L      ERROR_BAD_PIPE

231L      ERROR_PIPE_BUSY

232L      ERROR_NO_DATA

233L      ERROR_PIPE_NOT_CONNECTED

234L      ERROR_MORE_DATA

240L      ERROR_VC_DISCONNECTED

254L      ERROR_INVALID_EA_NAME

255L      ERROR_EA_LIST_INCONSISTENT

259L      ERROR_NO_MORE_ITEMS

266L      ERROR_CANNOT_COPY

267L      ERROR_DIRECTORY

275L      ERROR_EAS_DIDNT_FIT

276L      ERROR_EA_FILE_CORRUPT

277L      ERROR_EA_TABLE_FULL

278L      ERROR_INVALID_EA_HANDLE

282L      ERROR_EAS_NOT_SUPPORTED

288L      ERROR_NOT_OWNER

298L      ERROR_TOO_MANY_POSTS

299L      ERROR_PARTIAL_COPY

317L      ERROR_MR_MID_NOT_FOUND

487L      ERROR_INVALID_ADDRESS

534L      ERROR_ARITHMETIC_OVERFLOW

535L      ERROR_PIPE_CONNECTED

536L      ERROR_PIPE_LISTENING

994L      ERROR_EA_ACCESS_DENIED

995L      ERROR_OPERATION_ABORTED

996L      ERROR_IO_INCOMPLETE

997L      ERROR_IO_PENDING

998L      ERROR_NOACCESS

999L      ERROR_SWAPERROR

1001L     ERROR_STACK_OVERFLOW

1002L     ERROR_INVALID_MESSAGE

1003L     ERROR_CAN_NOT_COMPLETE

1004L     ERROR_INVALID_FLAGS

1005L     ERROR_UNRECOGNIZED_VOLUME

1006L     ERROR_FILE_INVALID

1007L     ERROR_FULLSCREEN_MODE

1008L     ERROR_NO_TOKEN

1009L     ERROR_BADDB

1010L     ERROR_BADKEY

1011L     ERROR_CANTOPEN

1012L     ERROR_CANTREAD

1013L     ERROR_CANTWRITE

1014L     ERROR_REGISTRY_RECOVERED

1015L     ERROR_REGISTRY_CORRUPT

1016L     ERROR_REGISTRY_IO_FAILED

1017L     ERROR_NOT_REGISTRY_FILE

1018L     ERROR_KEY_DELETED

1019L     ERROR_NO_LOG_SPACE

1020L     ERROR_KEY_HAS_CHILDREN

1021L     ERROR_CHILD_MUST_BE_VOLATILE

1022L     ERROR_NOTIFY_ENUM_DIR

1051L     ERROR_DEPENDENT_SERVICES_RUNNING

1052L     ERROR_INVALID_SERVICE_CONTROL

1053L     ERROR_SERVICE_REQUEST_TIMEOUT

1054L     ERROR_SERVICE_NO_THREAD

1055L     ERROR_SERVICE_DATABASE_LOCKED

1056L     ERROR_SERVICE_ALREADY_RUNNING

1057L     ERROR_INVALID_SERVICE_ACCOUNT

1058L     ERROR_SERVICE_DISABLED

1059L     ERROR_CIRCULAR_DEPENDENCY

1060L     ERROR_SERVICE_DOES_NOT_EXIST

1061L     ERROR_SERVICE_CANNOT_ACCEPT_CTRL

1062L     ERROR_SERVICE_NOT_ACTIVE

1063L     ERROR_FAILED_SERVICE_CONTROLLER_CONNECT

1064L     ERROR_EXCEPTION_IN_SERVICE

1065L     ERROR_DATABASE_DOES_NOT_EXIST

1066L     ERROR_SERVICE_SPECIFIC_ERROR

1067L     ERROR_PROCESS_ABORTED

1068L     ERROR_SERVICE_DEPENDENCY_FAIL

1069L     ERROR_SERVICE_LOGON_FAILED

1070L     ERROR_SERVICE_START_HANG

1071L     ERROR_INVALID_SERVICE_LOCK

1072L     ERROR_SERVICE_MARKED_FOR_DELETE

1073L     ERROR_SERVICE_EXISTS

1074L     ERROR_ALREADY_RUNNING_LKG

1075L     ERROR_SERVICE_DEPENDENCY_DELETED

1076L     ERROR_BOOT_ALREADY_ACCEPTED

1077L     ERROR_SERVICE_NEVER_STARTED

1078L     ERROR_DUPLICATE_SERVICE_NAME

1079L     ERROR_DIFFERENT_SERVICE_ACCOUNT

1100L     ERROR_END_OF_MEDIA

1101L     ERROR_FILEMARK_DETECTED

1102L     ERROR_BEGINNING_OF_MEDIA

1103L     ERROR_SETMARK_DETECTED

1104L     ERROR_NO_DATA_DETECTED

1105L     ERROR_PARTITION_FAILURE

1106L     ERROR_INVALID_BLOCK_LENGTH

1107L     ERROR_DEVICE_NOT_PARTITIONED

1108L     ERROR_UNABLE_TO_LOCK_MEDIA

1109L     ERROR_UNABLE_TO_UNLOAD_MEDIA

1110L     ERROR_MEDIA_CHANGED

1111L     ERROR_BUS_RESET

1112L     ERROR_NO_MEDIA_IN_DRIVE

1113L     ERROR_NO_UNICODE_TRANSLATION

1114L     ERROR_DLL_INIT_FAILED

1115L     ERROR_SHUTDOWN_IN_PROGRESS

1116L     ERROR_NO_SHUTDOWN_IN_PROGRESS

1117L     ERROR_IO_DEVICE

1118L     ERROR_SERIAL_NO_DEVICE

1119L     ERROR_IRQ_BUSY

1120L     ERROR_MORE_WRITES

1121L     ERROR_COUNTER_TIMEOUT

1122L     ERROR_FLOPPY_ID_MARK_NOT_FOUND

1123L     ERROR_FLOPPY_WRONG_CYLINDER

1124L     ERROR_FLOPPY_UNKNOWN_ERROR

1125L     ERROR_FLOPPY_BAD_REGISTERS

1126L     ERROR_DISK_RECALIBRATE_FAILED

1127L     ERROR_DISK_OPERATION_FAILED

1128L     ERROR_DISK_RESET_FAILED

1129L     ERROR_EOM_OVERFLOW

1130L     ERROR_NOT_ENOUGH_SERVER_MEMORY

1131L     ERROR_POSSIBLE_DEADLOCK

1132L     ERROR_MAPPED_ALIGNMENT

1140L     ERROR_SET_POWER_STATE_VETOED

1141L     ERROR_SET_POWER_STATE_FAILED

1142L     ERROR_TOO_MANY_LINKS

1150L     ERROR_OLD_WIN_VERSION

1151L     ERROR_APP_WRONG_OS

1152L     ERROR_SINGLE_INSTANCE_APP

1153L     ERROR_RMODE_APP

1154L     ERROR_INVALID_DLL

1155L     ERROR_NO_ASSOCIATION

1156L     ERROR_DDE_FAIL

1157L     ERROR_DLL_NOT_FOUND

1200L     ERROR_BAD_DEVICE

1201L     ERROR_CONNECTION_UNAVAIL

1202L     ERROR_DEVICE_ALREADY_REMEMBERED

1203L     ERROR_NO_NET_OR_BAD_PATH

1204L     ERROR_BAD_PROVIDER

1205L     ERROR_CANNOT_OPEN_PROFILE

1206L     ERROR_BAD_PROFILE

1207L     ERROR_NOT_CONTAINER

1208L     ERROR_EXTENDED_ERROR

1209L     ERROR_INVALID_GROUPNAME

1210L     ERROR_INVALID_COMPUTERNAME

1211L     ERROR_INVALID_EVENTNAME

1212L     ERROR_INVALID_DOMAINNAME

1213L     ERROR_INVALID_SERVICENAME

1214L     ERROR_INVALID_NETNAME

1215L     ERROR_INVALID_SHARENAME

1216L     ERROR_INVALID_PASSWORDNAME

1217L     ERROR_INVALID_MESSAGENAME

1218L     ERROR_INVALID_MESSAGEDEST

1219L     ERROR_SESSION_CREDENTIAL_CONFLICT

1220L     ERROR_REMOTE_SESSION_LIMIT_EXCEEDED

1221L     ERROR_DUP_DOMAINNAME

1222L     ERROR_NO_NETWORK

1223L     ERROR_CANCELLED

1224L     ERROR_USER_MAPPED_FILE

1225L     ERROR_CONNECTION_REFUSED

1226L     ERROR_GRACEFUL_DISCONNECT

1227L     ERROR_ADDRESS_ALREADY_ASSOCIATED

1228L     ERROR_ADDRESS_NOT_ASSOCIATED

1229L     ERROR_CONNECTION_INVALID

1230L     ERROR_CONNECTION_ACTIVE

1231L     ERROR_NETWORK_UNREACHABLE

1232L     ERROR_HOST_UNREACHABLE

1233L     ERROR_PROTOCOL_UNREACHABLE

1234L     ERROR_PORT_UNREACHABLE

1235L     ERROR_REQUEST_ABORTED

1236L     ERROR_CONNECTION_ABORTED

1237L     ERROR_RETRY

1238L     ERROR_CONNECTION_COUNT_LIMIT

1239L     ERROR_LOGIN_TIME_RESTRICTION

1240L     ERROR_LOGIN_WKSTA_RESTRICTION

1241L     ERROR_INCORRECT_ADDRESS

1242L     ERROR_ALREADY_REGISTERED

1243L     ERROR_SERVICE_NOT_FOUND

1244L     ERROR_NOT_AUTHENTICATED

1245L     ERROR_NOT_LOGGED_ON

1246L     ERROR_CONTINUE

1247L     ERROR_ALREADY_INITIALIZED

1248L     ERROR_NO_MORE_DEVICES

1300L     ERROR_NOT_ALL_ASSIGNED

1301L     ERROR_SOME_NOT_MAPPED

1302L     ERROR_NO_QUOTAS_FOR_ACCOUNT

1303L     ERROR_LOCAL_USER_SESSION_KEY

1304L     ERROR_NULL_LM_PASSWORD

1305L     ERROR_UNKNOWN_REVISION

1306L     ERROR_REVISION_MISMATCH

1307L     ERROR_INVALID_OWNER

1308L     ERROR_INVALID_PRIMARY_GROUP

1309L     ERROR_NO_IMPERSONATION_TOKEN

1310L     ERROR_CANT_DISABLE_MANDATORY

1311L     ERROR_NO_LOGON_SERVERS

1312L     ERROR_NO_SUCH_LOGON_SESSION

1313L     ERROR_NO_SUCH_PRIVILEGE

1314L     ERROR_PRIVILEGE_NOT_HELD

1315L     ERROR_INVALID_ACCOUNT_NAME

1316L     ERROR_USER_EXISTS

1317L     ERROR_NO_SUCH_USER

1318L     ERROR_GROUP_EXISTS

1319L     ERROR_NO_SUCH_GROUP

1320L     ERROR_MEMBER_IN_GROUP

1321L     ERROR_MEMBER_NOT_IN_GROUP

1322L     ERROR_LAST_ADMIN

1323L     ERROR_WRONG_PASSWORD

1324L     ERROR_ILL_FORMED_PASSWORD

1325L     ERROR_PASSWORD_RESTRICTION

1326L     ERROR_LOGON_FAILURE

1327L     ERROR_ACCOUNT_RESTRICTION

1328L     ERROR_INVALID_LOGON_HOURS

1329L     ERROR_INVALID_WORKSTATION

1330L     ERROR_PASSWORD_EXPIRED

1331L     ERROR_ACCOUNT_DISABLED

1332L     ERROR_NONE_MAPPED

1333L     ERROR_TOO_MANY_LUIDS_REQUESTED

1334L     ERROR_LUIDS_EXHAUSTED

1335L     ERROR_INVALID_SUB_AUTHORITY

1336L     ERROR_INVALID_ACL

1337L     ERROR_INVALID_SID

1338L     ERROR_INVALID_SECURITY_DESCR

1340L     ERROR_BAD_INHERITANCE_ACL

1341L     ERROR_SERVER_DISABLED

1342L     ERROR_SERVER_NOT_DISABLED

1343L     ERROR_INVALID_ID_AUTHORITY

1344L     ERROR_ALLOTTED_SPACE_EXCEEDED

1345L     ERROR_INVALID_GROUP_ATTRIBUTES

1346L     ERROR_BAD_IMPERSONATION_LEVEL

1347L     ERROR_CANT_OPEN_ANONYMOUS

1348L     ERROR_BAD_VALIDATION_CLASS

1349L     ERROR_BAD_TOKEN_TYPE

1350L     ERROR_NO_SECURITY_ON_OBJECT

1351L     ERROR_CANT_ACCESS_DOMAIN_INFO

1352L     ERROR_INVALID_SERVER_STATE

1353L     ERROR_INVALID_DOMAIN_STATE

1354L     ERROR_INVALID_DOMAIN_ROLE

1355L     ERROR_NO_SUCH_DOMAIN

1356L     ERROR_DOMAIN_EXISTS

1357L     ERROR_DOMAIN_LIMIT_EXCEEDED

1358L     ERROR_INTERNAL_DB_CORRUPTION

1359L     ERROR_INTERNAL_ERROR

1360L     ERROR_GENERIC_NOT_MAPPED

1361L     ERROR_BAD_DESCRIPTOR_FORMAT

1362L     ERROR_NOT_LOGON_PROCESS

1363L     ERROR_LOGON_SESSION_EXISTS

1364L     ERROR_NO_SUCH_PACKAGE

1365L     ERROR_BAD_LOGON_SESSION_STATE

1366L     ERROR_LOGON_SESSION_COLLISION

1367L     ERROR_INVALID_LOGON_TYPE

1368L     ERROR_CANNOT_IMPERSONATE

1369L     ERROR_RXACT_INVALID_STATE

1370L     ERROR_RXACT_COMMIT_FAILURE

1371L     ERROR_SPECIAL_ACCOUNT

1372L     ERROR_SPECIAL_GROUP

1373L     ERROR_SPECIAL_USER

1374L     ERROR_MEMBERS_PRIMARY_GROUP

1375L     ERROR_TOKEN_ALREADY_IN_USE

1376L     ERROR_NO_SUCH_ALIAS

1377L     ERROR_MEMBER_NOT_IN_ALIAS

1378L     ERROR_MEMBER_IN_ALIAS

1379L     ERROR_ALIAS_EXISTS

1380L     ERROR_LOGON_NOT_GRANTED

1381L     ERROR_TOO_MANY_SECRETS

1382L     ERROR_SECRET_TOO_LONG

1383L     ERROR_INTERNAL_DB_ERROR

1384L     ERROR_TOO_MANY_CONTEXT_IDS

1385L     ERROR_LOGON_TYPE_NOT_GRANTED

1386L     ERROR_NT_CROSS_ENCRYPTION_REQUIRED

1387L     ERROR_NO_SUCH_MEMBER

1388L     ERROR_INVALID_MEMBER

1389L     ERROR_TOO_MANY_SIDS

1390L     ERROR_LM_CROSS_ENCRYPTION_REQUIRED

1391L     ERROR_NO_INHERITANCE

1392L     ERROR_FILE_CORRUPT

1393L     ERROR_DISK_CORRUPT

1394L     ERROR_NO_USER_SESSION_KEY

1395L     ERROR_LICENSE_QUOTA_EXCEEDED

1400L     ERROR_INVALID_WINDOW_HANDLE

1401L     ERROR_INVALID_MENU_HANDLE

1402L     ERROR_INVALID_CURSOR_HANDLE

1403L     ERROR_INVALID_ACCEL_HANDLE

1404L     ERROR_INVALID_HOOK_HANDLE

1405L     ERROR_INVALID_DWP_HANDLE

1406L     ERROR_TLW_WITH_WSCHILD

1407L     ERROR_CANNOT_FIND_WND_CLASS

1408L     ERROR_WINDOW_OF_OTHER_THREAD

1409L     ERROR_HOTKEY_ALREADY_REGISTERED

1410L     ERROR_CLASS_ALREADY_EXISTS

1411L     ERROR_CLASS_DOES_NOT_EXIST

1412L     ERROR_CLASS_HAS_WINDOWS

1413L     ERROR_INVALID_INDEX

1414L     ERROR_INVALID_ICON_HANDLE

1415L     ERROR_PRIVATE_DIALOG_INDEX

1416L     ERROR_LISTBOX_ID_NOT_FOUND

1417L     ERROR_NO_WILDCARD_CHARACTERS

1418L     ERROR_CLIPBOARD_NOT_OPEN

1419L     ERROR_HOTKEY_NOT_REGISTERED

1420L     ERROR_WINDOW_NOT_DIALOG

1421L     ERROR_CONTROL_ID_NOT_FOUND

1422L     ERROR_INVALID_COMBOBOX_MESSAGE

1423L     ERROR_WINDOW_NOT_COMBOBOX

1424L     ERROR_INVALID_EDIT_HEIGHT

1425L     ERROR_DC_NOT_FOUND

1426L     ERROR_INVALID_HOOK_FILTER

1427L     ERROR_INVALID_FILTER_PROC

1428L     ERROR_HOOK_NEEDS_HMOD

1429L     ERROR_GLOBAL_ONLY_HOOK

1430L     ERROR_JOURNAL_HOOK_SET

1431L     ERROR_HOOK_NOT_INSTALLED

1432L     ERROR_INVALID_LB_MESSAGE

1433L     ERROR_SETCOUNT_ON_BAD_LB

1434L     ERROR_LB_WITHOUT_TABSTOPS

1435L     ERROR_DESTROY_OBJECT_OF_OTHER_THREAD

1436L     ERROR_CHILD_WINDOW_MENU

1437L     ERROR_NO_SYSTEM_MENU

1438L     ERROR_INVALID_MSGBOX_STYLE

1439L     ERROR_INVALID_SPI_VALUE

1440L     ERROR_SCREEN_ALREADY_LOCKED

1441L     ERROR_HWNDS_HAVE_DIFFERENT_PARENT

1442L     ERROR_NOT_CHILD_WINDOW

1443L     ERROR_INVALID_GW_COMMAND

1444L     ERROR_INVALID_THREAD_ID

1445L     ERROR_NON_MDICHILD_WINDOW

1446L     ERROR_POPUP_ALREADY_ACTIVE

1447L     ERROR_NO_SCROLLBARS

1448L     ERROR_INVALID_SCROLLBAR_RANGE

1449L     ERROR_INVALID_SHOWWIN_COMMAND

1450L     ERROR_NO_SYSTEM_RESOURCES

1451L     ERROR_NONPAGED_SYSTEM_RESOURCES

1452L     ERROR_PAGED_SYSTEM_RESOURCES

1453L     ERROR_WORKING_SET_QUOTA

1454L     ERROR_PAGEFILE_QUOTA

1455L     ERROR_COMMITMENT_LIMIT

1456L     ERROR_MENU_ITEM_NOT_FOUND

1457L     ERROR_INVALID_KEYBOARD_HANDLE

1458L     ERROR_HOOK_TYPE_NOT_ALLOWED

1500L     ERROR_EVENTLOG_FILE_CORRUPT

1501L     ERROR_EVENTLOG_CANT_START

1502L     ERROR_LOG_FILE_FULL

1503L     ERROR_EVENTLOG_FILE_CHANGED

1700L     RPC_S_INVALID_STRING_BINDING

1701L     RPC_S_WRONG_KIND_OF_BINDING

1702L     RPC_S_INVALID_BINDING

1703L     RPC_S_PROTSEQ_NOT_SUPPORTED

1704L     RPC_S_INVALID_RPC_PROTSEQ

1705L     RPC_S_INVALID_STRING_UUID

1706L     RPC_S_INVALID_ENDPOINT_FORMAT

1707L     RPC_S_INVALID_NET_ADDR

1708L     RPC_S_NO_ENDPOINT_FOUND

1709L     RPC_S_INVALID_TIMEOUT

1710L     RPC_S_OBJECT_NOT_FOUND

1711L     RPC_S_ALREADY_REGISTERED

1712L     RPC_S_TYPE_ALREADY_REGISTERED

1713L     RPC_S_ALREADY_LISTENING

1714L     RPC_S_NO_PROTSEQS_REGISTERED

1715L     RPC_S_NOT_LISTENING

1716L     RPC_S_UNKNOWN_MGR_TYPE

1717L     RPC_S_UNKNOWN_IF

1718L     RPC_S_NO_BINDINGS

1719L     RPC_S_NO_PROTSEQS

1720L     RPC_S_CANT_CREATE_ENDPOINT

1721L     RPC_S_OUT_OF_RESOURCES

1722L     RPC_S_SERVER_UNAVAILABLE

1723L     RPC_S_SERVER_TOO_BUSY

1724L     RPC_S_INVALID_NETWORK_OPTIONS

1725L     RPC_S_NO_CALL_ACTIVE

1726L     RPC_S_CALL_FAILED

1727L     RPC_S_CALL_FAILED_DNE

1728L     RPC_S_PROTOCOL_ERROR

1730L     RPC_S_UNSUPPORTED_TRANS_SYN

1731L     RPC_S_SERVER_OUT_OF_MEMORY

1732L     RPC_S_UNSUPPORTED_TYPE

1733L     RPC_S_INVALID_TAG

1734L     RPC_S_INVALID_BOUND

1735L     RPC_S_NO_ENTRY_NAME

1736L     RPC_S_INVALID_NAME_SYNTAX

1737L     RPC_S_UNSUPPORTED_NAME_SYNTAX

1739L     RPC_S_UUID_NO_ADDRESS

1740L     RPC_S_DUPLICATE_ENDPOINT

1741L     RPC_S_UNKNOWN_AUTHN_TYPE

1742L     RPC_S_MAX_CALLS_TOO_SMALL

1743L     RPC_S_STRING_TOO_LONG

1744L     RPC_S_PROTSEQ_NOT_FOUND

1745L     RPC_S_PROCNUM_OUT_OF_RANGE

1746L     RPC_S_BINDING_HAS_NO_AUTH

1747L     RPC_S_UNKNOWN_AUTHN_SERVICE

1748L     RPC_S_UNKNOWN_AUTHN_LEVEL

1749L     RPC_S_INVALID_AUTH_IDENTITY

1750L     RPC_S_UNKNOWN_AUTHZ_SERVICE

1751L     EPT_S_INVALID_ENTRY

1752L     EPT_S_CANT_PERFORM_OP

1753L     EPT_S_NOT_REGISTERED

1755L     RPC_S_INCOMPLETE_NAME

1756L     RPC_S_INVALID_VERS_OPTION

1757L     RPC_S_NO_MORE_MEMBERS

1758L     RPC_S_NOT_ALL_OBJS_UNEXPORTED

1759L     RPC_S_INTERFACE_NOT_FOUND

1760L     RPC_S_ENTRY_ALREADY_EXISTS

1761L     RPC_S_ENTRY_NOT_FOUND

1762L     RPC_S_NAME_SERVICE_UNAVAILABLE

1764L     RPC_S_CANNOT_SUPPORT

1765L     RPC_S_NO_CONTEXT_AVAILABLE

1766L     RPC_S_INTERNAL_ERROR

1767L     RPC_S_ZERO_DIVIDE

1768L     RPC_S_ADDRESS_ERROR

1769L     RPC_S_FP_DIV_ZERO

1770L     RPC_S_FP_UNDERFLOW

1771L     RPC_S_FP_OVERFLOW

1772L     RPC_X_NO_MORE_ENTRIES

1773L     RPC_X_SS_CHAR_TRANS_OPEN_FAIL

1774L     RPC_X_SS_CHAR_TRANS_SHORT_FILE

1775L     RPC_X_SS_IN_NULL_CONTEXT

1776L     RPC_X_SS_CONTEXT_MISMATCH

1777L     RPC_X_SS_CONTEXT_DAMAGED

1778L     RPC_X_SS_HANDLES_MISMATCH

1779L     RPC_X_SS_CANNOT_GET_CALL_HANDLE

1780L     RPC_X_NULL_REF_POINTER

1781L     RPC_X_ENUM_VALUE_OUT_OF_RANGE

1782L     RPC_X_BYTE_COUNT_TOO_SMALL

1783L     RPC_X_BAD_STUB_DATA

1784L     ERROR_INVALID_USER_BUFFER

1785L     ERROR_UNRECOGNIZED_MEDIA

1786L     ERROR_NO_TRUST_LSA_SECRET

1787L     ERROR_NO_TRUST_SAM_ACCOUNT

1788L     ERROR_TRUSTED_DOMAIN_FAILURE

1789L     ERROR_TRUSTED_RELATIONSHIP_FAILURE

1790L     ERROR_TRUST_FAILURE

1791L     RPC_S_CALL_IN_PROGRESS

1792L     ERROR_NETLOGON_NOT_STARTED

1793L     ERROR_ACCOUNT_EXPIRED

1794L     ERROR_REDIRECTOR_HAS_OPEN_HANDLES

1795L     ERROR_PRINTER_DRIVER_ALREADY_INSTALLED

1796L     ERROR_UNKNOWN_PORT

1797L     ERROR_UNKNOWN_PRINTER_DRIVER

1798L     ERROR_UNKNOWN_PRINTPROCESSOR

1799L     ERROR_INVALID_SEPARATOR_FILE

1800L     ERROR_INVALID_PRIORITY

1801L     ERROR_INVALID_PRINTER_NAME

1802L     ERROR_PRINTER_ALREADY_EXISTS

1803L     ERROR_INVALID_PRINTER_COMMAND

1804L     ERROR_INVALID_DATATYPE

1805L     ERROR_INVALID_ENVIRONMENT

1806L     RPC_S_NO_MORE_BINDINGS

1807L     ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT

1808L     ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT

1809L     ERROR_NOLOGON_SERVER_TRUST_ACCOUNT

1810L     ERROR_DOMAIN_TRUST_INCONSISTENT

1811L     ERROR_SERVER_HAS_OPEN_HANDLES

1812L     ERROR_RESOURCE_DATA_NOT_FOUND

1813L     ERROR_RESOURCE_TYPE_NOT_FOUND

1814L     ERROR_RESOURCE_NAME_NOT_FOUND

1815L     ERROR_RESOURCE_LANG_NOT_FOUND

1816L     ERROR_NOT_ENOUGH_QUOTA

1817L     RPC_S_NO_INTERFACES

1818L     RPC_S_CALL_CANCELLED

1819L     RPC_S_BINDING_INCOMPLETE

1820L     RPC_S_COMM_FAILURE

1821L     RPC_S_UNSUPPORTED_AUTHN_LEVEL

1822L     RPC_S_NO_PRINC_NAME

1823L     RPC_S_NOT_RPC_ERROR

1824L     RPC_S_UUID_LOCAL_ONLY

1825L     RPC_S_SEC_PKG_ERROR

1826L     RPC_S_NOT_CANCELLED

1827L     RPC_X_INVALID_ES_ACTION

1828L     RPC_X_WRONG_ES_VERSION

1829L     RPC_X_WRONG_STUB_VERSION

1830L     RPC_X_INVALID_PIPE_OBJECT

1831L     RPC_X_INVALID_PIPE_OPERATION

1832L     RPC_X_WRONG_PIPE_VERSION

1898L     RPC_S_GROUP_MEMBER_NOT_FOUND

1899L     EPT_S_CANT_CREATE

1900L     RPC_S_INVALID_OBJECT

1901L     ERROR_INVALID_TIME

1902L     ERROR_INVALID_FORM_NAME

1903L     ERROR_INVALID_FORM_SIZE

1904L     ERROR_ALREADY_WAITING

1905L     ERROR_PRINTER_DELETED

1906L     ERROR_INVALID_PRINTER_STATE

1907L     ERROR_PASSWORD_MUST_CHANGE

1908L     ERROR_DOMAIN_CONTROLLER_NOT_FOUND

1909L     ERROR_ACCOUNT_LOCKED_OUT

1910L     OR_INVALID_OXID

1911L     OR_INVALID_OID

1912L     OR_INVALID_SET

1913L     RPC_S_SEND_INCOMPLETE

2000L     ERROR_INVALID_PIXEL_FORMAT

2001L     ERROR_BAD_DRIVER

2002L     ERROR_INVALID_WINDOW_STYLE

2003L     ERROR_METAFILE_NOT_SUPPORTED

2004L     ERROR_TRANSFORM_NOT_SUPPORTED

2005L     ERROR_CLIPPING_NOT_SUPPORTED

2138L     ERROR_NO_NETWORK

2202L     ERROR_BAD_USERNAME

2250L     ERROR_NOT_CONNECTED

2401L     ERROR_OPEN_FILES

2402L     ERROR_ACTIVE_CONNECTIONS

2404L     ERROR_DEVICE_IN_USE

3000L     ERROR_UNKNOWN_PRINT_MONITOR

3001L     ERROR_PRINTER_DRIVER_IN_USE

3002L     ERROR_SPOOL_FILE_NOT_FOUND

3003L     ERROR_SPL_NO_STARTDOC

3004L     ERROR_SPL_NO_ADDJOB

3005L     ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED

3006L     ERROR_PRINT_MONITOR_ALREADY_INSTALLED

3007L     ERROR_INVALID_PRINT_MONITOR

3008L     ERROR_PRINT_MONITOR_IN_USE

3009L     ERROR_PRINTER_HAS_JOBS_QUEUED

3010L     ERROR_SUCCESS_REBOOT_REQUIRED

3011L     ERROR_SUCCESS_RESTART_REQUIRED

4000L     ERROR_WINS_INTERNAL

4001L     ERROR_CAN_NOT_DEL_LOCAL_WINS

4002L     ERROR_STATIC_INIT

4003L     ERROR_INC_BACKUP

4004L     ERROR_FULL_BACKUP

4005L     ERROR_REC_NON_EXISTENT

4006L     ERROR_RPL_NOT_ALLOWED

6118L     ERROR_NO_BROWSER_SERVERS_FOUND


ConsoleIO_Unit_Installation
INSTALLATION

INSTALLING TGUI2CONSOLE

CONTENTS

---------------------------------------------------------------------------

   Delphi 3

   C++ Builder

DELPHI 3

---------------------------------------------------------------------------

  (1) From the Delphi IDE select Component | Install Packages...

  (2) Press the Add... button and select the file redCONIO.dpl from

      the lib\d3 directory and press OK from the File Open Dialog Box

      then OK from the Install Packages dialog box.

  (3) TGUI2Console is now installed in the 'REDSys' tab.

C++ Builder

---------------------------------------------------------------------------

  (1) From the C++Builder IDE select Component | Install Packages...

  (2) Press the Add... button and select the file redCONIO.dpl from

      the lib\d3 directory and press OK from the File Open Dialog Box

      then OK from the Install Packages dialog box.

  (3) TGUI2Console is now installed in the 'REDSys' tab.

© 1998 REDsystems

Suggestions to redsys@interaccess.com


ConsoleIO_Unit_License
SOFTWARE LICENSE

LICENSE AGREEMENT

=================

Use of this software indicates your acceptance of the

following license agreement:

In the following, TGUI2CONSOLE Component for Delphi and C++Builder

will be referred to as the 'software'.

License

-------

REDSystems grants to you the right to use one copy of this

software on a single computer.

The software is in use when it is loaded into temporary memory

(i.e: RAM) or installed into permanent memory (e.g: hard disk,

or other storage device).

Copyright

---------

The software is owned by the REDSystems and is protected by

U.S. copyright laws, international treaty provisions, and

all other applicable national laws. Therefore, you must treat

the software like any other copyrighted material.

REDSystems retains all rights not expressly granted.

You may make one copy of the software solely for backup or

archival purposes.

Other Restrictions

------------------

You may not sublicense, assign, or transfer the license to the

software unless the receiving party agrees to the terms and

conditions of this agreement.  Should you transfer the license

to the software you must also transfer all copies to the

receiving party and destroy any remaining copies. Any attempt

otherwise to sublicense, assign, or transfer any of the right,

duties or obligations hereunder is void.

If you licensed the source code for this software, you may not

use it to sell or otherwise distribute products similar to

the software.

This restriction does not apply to application executables you

created, using the software or parts of it.

Termination

-----------

This License Agreement is effective until terminated.

You may terminate it at any time by returning or destroying

the license together with all copies, in any form and so

notifying the REDSystems in writing of your intention to terminate

this license.  It will also terminate upon conditions set

forth elsewhere in the Agreement or if you infringe any

copyright of REDSystems or fail to comply with any term or

condition of this License Agreement.

Limited Warranty

----------------

REDSystems warrants that the magnetic media or the archive file

on which the software is distributed and the user documentation

are free from defects in materials and workmanship.

REDSystems will replace defective media or user documentation

at no charge, provided you return the item with dated proof of

payment to REDSystems within 90 days of the date of delivery.

If REDSystems is unable to replace defective media or user

documentation, REDSystems will refund the amount you paid for

the software. These are your sole remedies for any breach of

warranty.

Except as specifically provided herein, the REDSystems makes no

warranty or representation, either express or implied , with

respect to this software or user documentation, including their

quality, performance, merchantability, or fitness for a

particular purpose.

Because software is inherently complex and may not be

completely free of errors, you are advised to verify your

work and to make backup copies. In no event will REDSystems

be liable for direct, indirect, special, incidental, cover,

or consequential damages arising out of the use of or

inability to use the software or user documentation, even if

advised of the possibility of such damages. In no case shall

REDSystem's liability one tenth of the amount paid by you for

 the software.

Copyright (c)1998 by REDSystems


CR constant

Unit

ConsoleIO

Declaration

CR = #13;


CRLF constant

Unit

ConsoleIO

Declaration

CRLF = #13#10;


LF constant

Unit

ConsoleIO

Declaration

LF = #10;


pTBuffer type

Unit

ConsoleIO

Declaration

pTBuffer = ^TBuffer;


Register
Registering TGUI2Console

By Mail	By Credit Card

Why Register

Thank you for your interest in !!! ENTER NAME HERE.  If you find it useful in your own projects, please support the shareware concept.  Much time and effort was put into providing a quality component along with adequate documentation, help, and demos.

Registered users will receive the latest registered version of !!! ENTER NAME HERE, free on-line support, and the source code.

Questions & Comments

Please refer questions or comments about !!! ENTER NAME HERE to:

!!! ENTER ADDRESS HERE


Register routine

Unit

ConsoleIO

Declaration

procedure Register;


Register_Credit
Registration By Credit Card

Visa	Discover	MasterCard	$25.00

For technical support or comments about this program, you may contact !!! ENTER NAME HERE at:

!!! ENTER CONTACT INFO HERE

For your convenience we have contracted another company, NorthStar Solutions to process any orders you may wish to place with your Visa, Discover, or MasterCard.  NorthStar Solutions can be easily contacted for orders only via any of the following methods:

ONLINE ORDERS

You may register !!! ENTER NAME HERE via an online order form by pointing your browser to:

!!! ENTER WEB PAGE HERE

PHONED ORDERS

Calls are taken 10 am - 8 pm, EST, Monday thru Saturday.

1-800-699-6395 (From the U.S. only.)

1-803-699-6395

FAXED ORDERS

Available 24 hours.  International & business orders are encouraged.

1-803-699-5465

EMAILED ORDERS

starmail@aol.com

starmail@compuserve.com

Please provide (or be prepared to provide) the following information:

 + The program you are registering.

 + Your mailing address.

 + Your Visa, Discover, or MasterCard # and it's expiration date (if using credit card).

 + Your EMail address (so NorthStar Solutions can send you email confirming your order and so we can contact you easily with important follow-up information or upgrade announcements.


Register_Mail
Registration By Mail

Select Print Topic from the File menu to print this form.

Item: !!! ENTER NAME HERE

Price: !!! ENTER PRICING INFO HERE

Please register my copy of !!! ENTER NAME HERE,

I am sending a check or money order for $___________

Name:________________________________________

Company:_____________________________________

Address1:____________________________________

Address2:____________________________________

City:________________________________________

State:_______________________Zip:____________

Country:_____________________________________

Phone:_______________________________optional

Email:_______________________________optional

Please send completed form with payment to:

!!! ENTER ADDRESS HERE


Space constant

Unit

ConsoleIO

Declaration

Space = ' ';


TABufferSize type

Unit

ConsoleIO

Declaration

TABufferSize = array[bs256..bs8K] of LongInt;


TAPipeSize type

Unit

ConsoleIO

Declaration

TAPipeSize = array[ps1k..ps256k] of LongInt;


TAppType Type


TBufferSize type

Unit

ConsoleIO

Declaration

TBufferSize = (bs256,bs512,bs1k,bs2k,bs4k,bs8k);


TConsoleEvents type

Unit

ConsoleIO

Declaration

TConsoleEvents = record
   FStart : TStartEvent;
   FDone : TDoneEvent;
   FSendLine : TSendLine;
   FError : TError;
   FStatus : TStatusEvent;
   FTimeOut : TTimeOut;
   FAppType : TAppType;
   FPromptEvent : TPromptEvent;
   FPreTerminate : TPreTerminateEvent;
 end;


TConsoleProperties type

Unit

ConsoleIO

Declaration

TConsoleProperties = record
   FTimeOutDelay : TTimeOutDelay;
   FPipeSize : TPipeSize;
   FBufferSize : TBufferSize;
   FAutoTerminate : Boolean;
   FLogFile : String;
   FEnvironment : String;
   FApp: String;
   FAppType : TAppType;
   FCommand : String;
   FPrompt : String;
   FPromptLength : integer;
   FHomeDir : String;
   FPriority : TThreadPriority;
 end;


TDoneEvent type

Unit

ConsoleIO

Declaration

TDoneEvent = procedure(Sender : TObject) of object;


TError type

Unit

ConsoleIO

Declaration

TError = procedure(Sender: TObject; const Error : String) of object;


TLineStream type

Unit

ConsoleIO

Declaration

TLineStream = class(TMemoryStream)

Description

Internal Class used to buffer data between reads from the console app.


TLogFile type

Unit

ConsoleIO

Declaration

TLogFile = class(TFileStream)

Description

Internal class used to log data to a file.


TPipeSize type

Unit

ConsoleIO

Declaration

TPipeSize = (ps1k,ps2k,ps4k,ps8k,ps16k,ps32k,ps64k,ps96K,ps128k,ps256k);


TPreTerminateEvent type

Unit

ConsoleIO

Declaration

TPreTerminateEvent = procedure(Sender : TObject) of object;


TProcessState type

Unit

ConsoleIO

Declaration

TProcessState = (psRunning,psTimeOut,psFinished);


TPromptEvent type

Unit

ConsoleIO

Declaration

TPromptEvent = procedure(Sender : TObject; const Line : String) of object;


TSendLine type

Unit

ConsoleIO

Declaration

TSendLine = procedure(Sender : TObject; const Line : String) of object;


TStartEvent type

Unit

ConsoleIO

Declaration

TStartEvent = procedure(Sender : TObject; const Command : String) of object;


TStatusEvent type

Unit

ConsoleIO

Declaration

TStatusEvent = procedure(Sender : TObject; const Status : String) of object;


TTimeOut type

Unit

ConsoleIO

Declaration

TTimeOut = procedure(Sender : TObject; var Kill : Boolean) of object;


TTimeOutDelay type

Unit

ConsoleIO

Declaration

TTimeOutDelay = 10..10000;