(Preliminary data - 20mar96) /**********************************************************************/ CLOCKMAN COMMANDS /**********************************************************************/ sList = CMEvtItemize (@CMFirst) Creates a space-delimited list of the ClockMan events. Parameters: (number) Which events to itemize: @CMFirst itemizes all events starting with the first one. (This is currently the only value ClockMan recognizes.) Returns: (string) A space-delimited list of all event IDs in ClockMan's database. After calling CMEvtItemize(), you'd normally loop through the returned list using ItemExtract() to get each event ID in the string. You use this event ID to get or set information about the event. See Also: CMGetEvtInfo, CMSetEvtInfo /**********************************************************************/ sInfo = CMGetEvtInfo (nEventID, nWhichInfo) nInfo = CMGetEvtInfo (nEventID, nWhichInfo) Extracts information about an event. Parameters: (number) Which event to get information on. @CMThisEvt gets info about the event that launched this WIL script. (number) Which piece of information to return: @CMEvtTime - When this event occurred, in WIL datetime fmt. @CMIsActive - Will this event ever occur again? @CMMsgType - One of these: @CMMsgAnn, @CMMsgCfm, @CMMsgCount, @CMMsgTSquare, @CMMsgNone. @CMMsg - The message text to display. @CMTune - Whether the "Beep" box is checked. @TRUE or @FALSE. @CMTuneName @CMAction - Which action this event carries out. One of these: @CMACMsgOnly, @CMACRunPgm, @CMACRunWIL, @CMACShutdown, @CMACAdj. @CMPgmLine - The full command line to execute. @CMPgmShowAs - How to show the program we launch. @CMPgmKeys - The keystrokes to send to the program. @CMAdjSecs - How many seconds to adjust the time. (Negative number implies adjusting backwards; positive is forwards.) Returns: (string) if @CMNextTime, @CMMsg, @CMTuneName, @CMPgmLine, @CMPgmKeys. (number) if @CMIsActive, @CMMsgType, @CMTune, @CMAction, @CMPgmShowAs, @CMAdjSecs. See Also: CMSetEvtInfo /**********************************************************************/ nTime = CMGetSysTime () Gets the PC's current system time as a Unix time (secs since 00:00:00 GMT 1/1/70). (For the current time in WIL datetime format, use TimeYmdHms.) Returns: (number) The number of secs since 00:00:00 GMT 1/1/70. See Also: CMSetSysTime /**********************************************************************/ sDesc = CMGetTimeDesc (@CMTimeNow, sFmt) Lets you build a custom date & time string using replacement variables. Parameters: (string) The time to convert to a string, or @CMTimeNow for the current time. (This function currently only recognizes @CMTimeNow.) (string) The format to use in converting the time. You use these replacement variables: &dt - Windows-defined short date &y4 - 4-digit year &yy - 2-digit year &MO - Full month name ("January".."December") &mo - Abbreviated month ("Jan".."Dec") &mm - Month of year w/o leading zeros ("1".."12") &0m - Month of year w/leading zero if necessary ("01".."12") &DA - Day of week ("Sunday".."Saturday") &da - Abbreviated DOW ("Sun".."Sat") &dd - Day of month w/o leading zeros ("1".."31") &0d - Day of month w/leading zero if necessary ("01".."31") &hr - Hour of day ("0".."24") &0h - Hour w/leading zero if necessary ("00".."24") &mi - Minute ("0".."59") &se - Second ("0".."59") Returns: (string) Your custom date & time string. This command creates a custom date & time description string using the same syntax you use to customize the ClockMan icon's title. Example: szNow = CMGetTimeDesc (@CMTimeNow, "It's &hr:&mi on &DA, &MO &dd") sets szNow to "It's 15:37 on Monday, August 15". /**********************************************************************/ nInfo = CMGetTimeInfo (sTime, nWhichInfo) Returns information about a specified time. Parameters: (string) The time to get information about, in WIL "datetime" format ("yy:mm:dd:hh:mi:ss"). (number) Which piece of information to get from it: @CMYear - The year (00..99) @CMMonth - The month (1..12) @CMDayOfMonth - The day of month (1..31) @CMDayOfWeek - The day of week (0-Sun..6-Sat) @CMHour - The hours (0..11) @CMMinute - The minutes (0..59) @CMSecond - The seconds (0..59) Returns: (number) The information requested above. See Also: CMSetTimeInfo /**********************************************************************/ CMLogMessage (sMessage) Writes a message out to CLOCKMAN.LOG. Parameters: (string) The message to write out, up to 256 characters. This command writes out the current date & time, and then the message you specify. The log file name is the same as the current .ALR file, except with a .LOG extension. This is usually CLOCKMAN.LOG. /**********************************************************************/ CMSetEvtInfo (nEventID, nWhich, nData) CMSetEvtInfo (nEventID, nWhich, sData) Parameters: (number) Event identifier. (See CMGetEvtInfo) (number) Which piece of data to set. (See CMGetEvtInfo) (number) The new data. It's a string if setting @CMEvtTime, or @CMMsg, @CMTuneName, @CMPgmLine, or @CMPgmKeys; (string) it's a number if setting @CMMsgType, @CMTune, @CMAction, @CMPgmShowAs, or @CMAdjSecs. Note: you can't use @CMIsActive. (When you call CMGetEvtInfo with @CMIsActive, it merely tells you if the event will ever occur again. This depends on whether it's a recurring or a one-time event, and whether or not this one time is set in the future or in the past.) See Also: CMGetEvtInfo /**********************************************************************/ CMSetSysTime (sTime) Sets the PC's system time. Parameters: (string) The new system time. This can be the local time in WIL datetime format ("yy:mm:dd:hh:mi:ss") or a single Unix time (secs since 00:00:00 GMT 1/1/70). See Also: CMGetSysTime /**********************************************************************/ sNewTime = CMSetTimeInfo (sOldTime, nWhichInfo, nData) Changes specific parts of a WIL "datetime" string. Parameters: (string) The time to change information about, in WIL datetime format ("yy:mm:dd:hh:mi:ss"). (number) Which piece of information to change: @CMYear - The year (00..99) @CMMonth - The month (1..12) @CMDayOfMonth - The day of month (1..31) @CMHour - The hours (0..11) @CMMinute - The minutes (0..59) @CMSecond - The seconds (0..59) @CMUnixTime - Assumes the string is a single number representing how many seconds have elapsed since 00:00:00 GMT on 1/1/70. This will convert it to a WIL "datetime" string. (number) The new data. (Ignored if @CMUnixTime.) Returns: (string) The time in WIL "datetime" format, with the appropriate data changed. See Also: CMGetTimeInfo (Preliminary data - 20mar96) THESE COMMANDS ARE SUBJECT TO CHANGE. These will eventually be merged into the standard WIL/WinBatch engine, possibly with slightly different syntax. /**********************************************************************/ DIAL-UP NETWORKING COMMANDS /**********************************************************************/ nConn = SDialUp (sHost) Dials up an Internet host, without making you respond to the "Connect to" dialog. Parameters: (string) The Internet host to dial up, such as returned from SEnumDialUps. (This is the descriptive name the user would see in the "Connect To" dialog, not the actual domain name.) Returns: (number) A handle that identifies the connection, or @FALSE if error. If you're already connected to this host, then this handle identifies the existing connection. SGetLastErr(): @SOK Dialed up the specified host successfully. @SAlready The dialup is already connected. The return value identifies the existing connection. @SErrNotFound Unknown host name specified. 600..750 Remote Access Service error code (see Appx B). See Also: SEnumDialUps, SHangUp /**********************************************************************/ sHosts = SEnumDialUps () Creates a list of all the valid Dial-Up Networking hosts. These are the ones the user normally chooses from when they connect to the Internet via the "Connect To" dialog. Returns: (string) A tab-delimited list of dial-up hosts (up to 16). SGetLastErr(): @SOK Created the list successfully. 600..750 Remote Access Service error code. (see Appx B). 603 User has more than 16 dial-up hosts defined. See Also: SDialUp /**********************************************************************/ nRet = SHangUp (nConn) Hangs up a specified dial-up Internet connection, or all existing connections (up to 16). Parameters: (number) The dial-up connection handle to hang up on (as returned from SDialUp), or 0 to hang up on all open connections. Returns: (number) @TRUE if OK, else @FALSE if there was an error. SGetLastErr(): @SOK Hung up the host(s) successfully. @SErrParam Unknown connection handle specified. 600..750 Remote Access Service error code (see Appx B). See Also: SDialUp (Preliminary data - 20mar96) THESE COMMANDS ARE SUBJECT TO CHANGE. These will eventually be merged into the standard WIL/WinBatch engine, possibly with slightly different syntax. /**********************************************************************/ INTERNET COMMANDS /**********************************************************************/ nData = SByteOrder16 (nData, nDirection) nData = SByteOrder32 (nData, nDirection) Converts a 16- or 32-bit binary number from network byte order to the PC's byte order & vice versa. (Note: You normally don't need to call these functions if you are just sending or receiving a value thru SSendNum8, SSendNum16, SSendNum32, SRecvNum8, SRecvNum16, or SRecvNum32. They all do the translation for you.) Parameters: (number) The binary number to translate. (number) @SNet2PC - translates a number received from the net to the PC's byte order. @SPC2Net - translates a number from the PC's byte order to the network's. Returns: (number) The translated number. /**********************************************************************/ nRet = SClose (hSocket) Closes a socket. Parameters: (number) The socket to close. Returns: (number) @TRUE if the socket was closed successfully, else @FALSE. SGetLastErr(): @SOK closed the socket OK. 10000..11004 Winsock error code (see Appendix A). See Also: SOpen /**********************************************************************/ nRet = SConnect (hSocket, szHost, szService) Connects a socket to an Internet host & network service (i.e. "ftp"). If you're not already hooked up to an Internet Service Provider, this will bring up the "Connect To" dialog. If you want it to dial up without human intervention, you must call SDialUp first. Parameters: (number) Which socket to connect. (string) Which host to connect to. This can be either a symbolic host name like "myserv.com", or a dotted- decimal IP address like "192.123.456.1". (string) The name of the service to connect this socket to, or the service's port number (ex: "time", or "37"). If you specify a service name, SConnect calls WinSock's getservbyname function to get the port #, which in turn looks up the service name in the standard WinSock SERVICE file. Strangely enough, http (port 80) isn't listed there, so in that case you'll have to use "80". Returns: (number) @TRUE if everything's OK, else @FALSE. SGetLastErr(): @SOK Connected OK. @SCancel User hit Cancel in the "Connect To" dialog, or unknown host name. @SErrParam Unknown socket # specified. @SErrService Unknown service name specified. @SErrIPAddr Invalid IP dotted-decimal address specified. @SErrHostName Unknown host name specified. @SErrNoConn Host computer refused to connect, possibly because it doesn't support the requested service. @SErrBusy Host computer too busy to connect. 10000..11003 Winsock error code (see Appendix A). See Also: SClose, SDialUp, SOpen /**********************************************************************/ nErr = SGetLastErr () Gets the last error generated by an Ixxx function. Returns: (number) The result of the last Ixxx function. (See the specific function description). /**********************************************************************/ bOK = SOK2Recv (hSocket, nSize) Is it OK to receive data from this socket without it having to wait? Parameters: (number) A handle specifying the socket to check. (number) How many bytes we want to receive. Returns: (number) @TRUE if an SRecvXXX command could be carried out without waiting, else @FALSE if the WIL script would have to wait first. SGetLastErr(): @SOK Determined the status OK. @SErrMustWait Not enough data in Winsock's recv queue without forcing the WIL script to wait. 10000..11004 Winsock error code from its recv function (see Appendix A). See Also: SOpen, SConnect, SRecvXXX /**********************************************************************/ bOK = SOK2Send (hSocket) Is it OK to send data thru this socket without it having to wait? Parameters: (number) A handle specifying the socket to check. Returns: (number) @TRUE if SSendXXX command could be carried out without waiting, else @FALSE if the WIL script would have to wait. SGetLastErr(): @SOK Determined the status OK. @SErrMustWait Winsock's send queue is full. See Also: SOpen, SConnect, SSendXXX /**********************************************************************/ nData = SRecvNum8 (hSocket) nData = SRecvNum16 (hSocket) nData = SRecvNum32(hSocket) Gets numeric data from a socket. The result is then converted from network byte order to PC byte order for you. Parameters: (number) The socket to get data from. Returns: (number) The next 1, 2, or 4 bytes of data received, expressed as a signed 8-, 16-, or 32-bit number. (These are converted, if necessary, from network byte order to PC byte order.) SGetLastErr(): @SOK Received the data OK. @SErrMustWait Socket is @SNonBlocking, & there wasn't enough data in the recv buffer. @SErrNoConn The server has already closed the connection. 10000..11004 Winsock error code (see Appendix A). See Also: SOpen, SConnect, SSendNum8, SSendNum16, SSendNum32 /**********************************************************************/ sData = SRecvLine (hSocket, nMaxChars) Gets a line of text from a socket, up to the first CR/LF. Parameters: (number) A handle specifying the socket to get data from. (number) The maximum characters to receive in one line. (This value must be less than 65535, which is the total allowed for all strings in your WIL script. A good value would be 32767.) Returns: (string) The next line of text in the receive buffer, with its trailing CR/LF stripped off. SGetLastErr(): @SOK Received the data OK. @SErrParam Max chars requested > 65535. @SErrMustWait Socket is @SNonBlocking, & there wasn't enough data in the recv buffer. (No data, or at least no CR/LFs yet). @SErrNoConn The server has already closed the connection. 10000..11004 Winsock error code (see Appendix A). See Also: SOpen, SConnect, SSendLine, SSendString /**********************************************************************/ nRet = SSendBin (hSocket, sData, nLen) Sends binary data to a socket. Parameters: (number) A handle specifying the socket to send data to. (string) The data to send. (number) How many bytes to send. Returns, SGetLastErr(): @SOK Sent the data OK. @SErrMustWait Socket is @SNonBlocking, & the send buffer is still full. You must wait a bit & retry. 10000..11004 Winsock error code (see Appendix A). See Also: SOpen, SConnect, SSendString, SSendNum8, SSendNum16, SSendNum32 /**********************************************************************/ nRet = SSendNum8 (hSocket, nData) nRet = SSendNum16 (hSocket, nData) nRet = SSendNum32 (hSocket, nData) Sends an integer to a socket. Parameters: (number) A handle specifying the socket to send data to. (number) The 1-, 2-, or 4-byte number to send. (This is converted, if necessary, from PC byte order to network byte order.) Returns, SGetLastErr(): @SOK Sent the data OK. @SErrMustWait Socket is @SNonBlocking, & the send buffer is still full. You must wait a bit & retry. 10000..11004 Winsock error code (see Appendix A). See Also: SOpen, SConnect, SSendBin, SSendString /**********************************************************************/ nRet = SSendString (hSocket, sData) nRet = SSendLine (hSocket, sData) Sends a string to a socket. SSendLine() will first append a CR/LF on the end of the string if it isn't already there. Parameters: (number) The socket to send data to. (string) The data to send. Returns, SGetLastErr(): @SOK Sent the data OK. @SErrMustWait Socket is @SNonBlocking, & the send buffer is still full. You must wait a bit & retry. 10000..11004 Winsock error code (see Appendix A). See Also: SOpen, SConnect, SSendBin, SSendNum8, SSendNum16, SSendNum32 /**********************************************************************/ hSocket = SOpen (nType) Creates a new stream (TCP) socket. Parameters: (number) What type of socket to create: @SBlocking or @SNonBlocking. (See below.) Returns: (number) A handle specifying the socket that was created, or @SErrSocket. SGetLastErr(): @SOK The socket was created successfully. @SErrParam Unknown socket type specified. @SErrWinsock Couldn't initialize Winsock. ClockMan needs Winsock v1.1 or higher. @SErrSocket Error creating the socket. See Also: SConnect, SClose When sending & receiving data with a remote host, your script can't control how fast the process runs. The server could be slow in responding to your requests for data, or you may be pushing so much data out faster than the network can process it that your Winsock send buffer may fill up. In either case the socket has to wait. If you create the socket as "blocking", any SSendXXX or SRecvXXX calls you make will wait until the data can be received/sent, and hitting Ctrl+Break WON'T escape out of it. On the other hand, when a "non-blocking" socket can't send or receive all the data, it returns immediately & sets SGetLastErr() to @SErrMustWait. To take advantage of this (mostly so you can hit Ctrl+Break if the network seems hung up), you must put each SSendXXX & SRecvXXX call in a while/endwhile loop. For example: hSocket = SOpen (@SNonBlocking) nRet = SSendLine (hSocket, szMyData) while (nRet==@SErrMustWait) nRet = SSendLine (hSocket, szMyData) endwhile nData = SRecvNum32 (hSocket) while (SGetLastErr() == @SErrMustWait) nData = SRecvNum32 (hSocket) endwhile /**********************************************************************/ APPENDIX A: Winsock error codes. /**********************************************************************/ WSAEINTR 10004 WSAEBADF 10009 WSAEACCES 10013 WSAEFAULT 10014 WSAEINVAL 10022 WSAEMFILE 10024 WSAEWOULDBLOCK 10035 (SSend/SRecv - Becomes @SErrMustWait) WSAEINPROGRESS 10036 WSAEALREADY 10037 WSAENOTSOCK 10038 (SConnect - Becomes @SErrSocket) WSAEDESTADDRREQ 10039 WSAEMSGSIZE 10040 WSAEPROTOTYPE 10041 WSAENOPROTOOPT 10042 WSAEPROTONOSUPPORT 10043 WSAESOCKTNOSUPPORT 10044 WSAEOPNOTSUPP 10045 WSAEPFNOSUPPORT 10046 WSAEAFNOSUPPORT 10047 WSAEADDRINUSE 10048 WSAEADDRNOTAVAIL 10049 WSAENETDOWN 10050 WSAENETUNREACH 10051 WSAENETRESET 10052 (SConnect - Becomes @SErrNoConn) WSAECONNABORTED 10053 (SConnect - Becomes @SErrNoConn) WSAECONNRESET 10054 WSAENOBUFS 10055 WSAEISCONN 10056 WSAENOTCONN 10057 WSAESHUTDOWN 10058 WSAETOOMANYREFS 10059 WSAETIMEDOUT 10060 (SConnect - Becomes @SErrNoConn) WSAECONNREFUSED 10061 (SConnect - Becomes @SErrBusy) WSAELOOP 10062 WSAENAMETOOLONG 10063 WSAEHOSTDOWN 10064 WSAEHOSTUNREACH 10065 WSAENOTEMPTY 10066 WSAEPROCLIM 10067 WSAEUSERS 10068 WSAEDQUOT 10069 WSAESTALE 10070 WSAEREMOTE 10071 WSAEDISCON 10101 WSASYSNOTREADY 10091 WSAVERNOTSUPPORTED 10092 WSANOTINITIALISED 10093 WSAHOST_NOT_FOUND 11001 WSATRY_AGAIN 11002 WSANO_RECOVERY 11003 WSANO_DATA 11004 (SConnect - Becomes @SCancel) /**********************************************************************/ APPENDIX B: Dial-Up Networking return codes. /**********************************************************************/ PENDING 600 ERROR_INVALID_PORT_HANDLE 601 ERROR_PORT_ALREADY_OPEN 602 (SDialUp - becomes @SAlready) ERROR_BUFFER_TOO_SMALL 603 (User has > 16 DU connections) ERROR_WRONG_INFO_SPECIFIED 604 ERROR_CANNOT_SET_PORT_INFO 605 ERROR_PORT_NOT_CONNECTED 606 ERROR_EVENT_INVALID 607 ERROR_DEVICE_DOES_NOT_EXIST 608 ERROR_DEVICETYPE_DOES_NOT_EXIST 609 ERROR_BUFFER_INVALID 610 ERROR_ROUTE_NOT_AVAILABLE 611 ERROR_ROUTE_NOT_ALLOCATED 612 ERROR_INVALID_COMPRESSION_SPECIFIED 613 ERROR_OUT_OF_BUFFERS 614 ERROR_PORT_NOT_FOUND 615 ERROR_ASYNC_REQUEST_PENDING 616 ERROR_ALREADY_DISCONNECTING 617 ERROR_PORT_NOT_OPEN 618 ERROR_PORT_DISCONNECTED 619 ERROR_NO_ENDPOINTS 620 ERROR_CANNOT_OPEN_PHONEBOOK 621 ERROR_CANNOT_LOAD_PHONEBOOK 622 ERROR_CANNOT_FIND_PHONEBOOK_ENTRY 623 (SDialUp - becomes @SErrNotFound) ERROR_CANNOT_WRITE_PHONEBOOK 624 ERROR_CORRUPT_PHONEBOOK 625 ERROR_CANNOT_LOAD_STRING 626 ERROR_KEY_NOT_FOUND 627 ERROR_DISCONNECTION 628 ERROR_REMOTE_DISCONNECTION 629 ERROR_HARDWARE_FAILURE 630 ERROR_USER_DISCONNECTION 631 ERROR_INVALID_SIZE 632 ERROR_PORT_NOT_AVAILABLE 633 ERROR_CANNOT_PROJECT_CLIENT 634 ERROR_UNKNOWN 635 ERROR_WRONG_DEVICE_ATTACHED 636 ERROR_BAD_STRING 637 ERROR_REQUEST_TIMEOUT 638 ERROR_CANNOT_GET_LANA 639 ERROR_NETBIOS_ERROR 640 ERROR_SERVER_OUT_OF_RESOURCES 641 ERROR_NAME_EXISTS_ON_NET 642 ERROR_SERVER_GENERAL_NET_FAILURE 643 WARNING_MSG_ALIAS_NOT_ADDED 644 ERROR_AUTH_INTERNAL 645 ERROR_RESTRICTED_LOGON_HOURS 646 ERROR_ACCT_DISABLED 647 ERROR_PASSWD_EXPIRED 648 ERROR_NO_DIALIN_PERMISSION 649 ERROR_SERVER_NOT_RESPONDING 650 ERROR_FROM_DEVICE 651 ERROR_UNRECOGNIZED_RESPONSE 652 ERROR_MACRO_NOT_FOUND 653 ERROR_MACRO_NOT_DEFINED 654 ERROR_MESSAGE_MACRO_NOT_FOUND 655 ERROR_DEFAULTOFF_MACRO_NOT_FOUND 656 ERROR_FILE_COULD_NOT_BE_OPENED 657 ERROR_DEVICENAME_TOO_LONG 658 ERROR_DEVICENAME_NOT_FOUND 659 ERROR_NO_RESPONSES 660 ERROR_NO_COMMAND_FOUND 661 ERROR_WRONG_KEY_SPECIFIED 662 ERROR_UNKNOWN_DEVICE_TYPE 663 ERROR_ALLOCATING_MEMORY 664 ERROR_PORT_NOT_CONFIGURED 665 ERROR_DEVICE_NOT_READY 666 ERROR_READING_INI_FILE 667 ERROR_NO_CONNECTION 668 ERROR_BAD_USAGE_IN_INI_FILE 669 ERROR_READING_SECTIONNAME 670 ERROR_READING_DEVICETYPE 671 ERROR_READING_DEVICENAME 672 ERROR_READING_USAGE 673 ERROR_READING_MAXCONNECTBPS 674 ERROR_READING_MAXCARRIERBPS 675 ERROR_LINE_BUSY 676 ERROR_VOICE_ANSWER 677 ERROR_NO_ANSWER 678 ERROR_NO_CARRIER 679 ERROR_NO_DIALTONE 680 ERROR_IN_COMMAND 681 ERROR_WRITING_SECTIONNAME 682 ERROR_WRITING_DEVICETYPE 683 ERROR_WRITING_DEVICENAME 684 ERROR_WRITING_MAXCONNECTBPS 685 ERROR_WRITING_MAXCARRIERBPS 686 ERROR_WRITING_USAGE 687 ERROR_WRITING_DEFAULTOFF 688 ERROR_READING_DEFAULTOFF 689 ERROR_EMPTY_INI_FILE 690 ERROR_AUTHENTICATION_FAILURE 691 ERROR_PORT_OR_DEVICE 692 ERROR_NOT_BINARY_MACRO 693 ERROR_DCB_NOT_FOUND 694 ERROR_STATE_MACHINES_NOT_STARTED 695 ERROR_STATE_MACHINES_ALREADY_STARTED 696 ERROR_PARTIAL_RESPONSE_LOOPING 697 ERROR_UNKNOWN_RESPONSE_KEY 698 ERROR_RECV_BUF_FULL 699 ERROR_CMD_TOO_LONG 700 ERROR_UNSUPPORTED_BPS 701 ERROR_UNEXPECTED_RESPONSE 702 ERROR_INTERACTIVE_MODE 703 ERROR_BAD_CALLBACK_NUMBER 704 ERROR_INVALID_AUTH_STATE 705 ERROR_WRITING_INITBPS 706 ERROR_X25_DIAGNOSTIC 707 ERROR_ACCT_EXPIRED 708 ERROR_CHANGING_PASSWORD 709 ERROR_OVERRUN 710 ERROR_RASMAN_CANNOT_INITIALIZE 711 ERROR_BIPLEX_PORT_NOT_AVAILABLE 712 ERROR_NO_ACTIVE_ISDN_LINES 713 ERROR_NO_ISDN_CHANNELS_AVAILABLE 714 ERROR_TOO_MANY_LINE_ERRORS 715 ERROR_IP_CONFIGURATION 716 ERROR_NO_IP_ADDRESSES 717 ERROR_PPP_TIMEOUT 718 ERROR_PPP_REMOTE_TERMINATED 719 ERROR_PPP_NO_PROTOCOLS_CONFIGURED 720 ERROR_PPP_NO_RESPONSE 721 ERROR_PPP_INVALID_PACKET 722 ERROR_PHONE_NUMBER_TOO_LONG 723 ERROR_IPXCP_NO_DIALOUT_CONFIGURED 724 ERROR_IPXCP_NO_DIALIN_CONFIGURED 725 ERROR_IPXCP_DIALOUT_ALREADY_ACTIVE 726 ERROR_ACCESSING_TCPCFGDLL 727 ERROR_NO_IP_RAS_ADAPTER 728 ERROR_SLIP_REQUIRES_IP 729 ERROR_PROJECTION_NOT_COMPLETE 730 ERROR_PROTOCOL_NOT_CONFIGURED 731 ERROR_PPP_NOT_CONVERGING 732 ERROR_PPP_CP_REJECTED 733 ERROR_PPP_LCP_TERMINATED 734 ERROR_PPP_REQUIRED_ADDRESS_REJECTED 735 ERROR_PPP_NCP_TERMINATED 736 ERROR_PPP_LOOPBACK_DETECTED 737 ERROR_PPP_NO_ADDRESS_ASSIGNED 738 ERROR_CANNOT_USE_LOGON_CREDENTIALS 739 ERROR_TAPI_CONFIGURATION 740 ERROR_NO_LOCAL_ENCRYPTION 741 ERROR_NO_REMOTE_ENCRYPTION 742 ERROR_REMOTE_REQUIRES_ENCRYPTION 743 ERROR_IPXCP_NET_NUMBER_CONFLICT 744 ERROR_INVALID_SMM 745 ERROR_SMM_UNINITIALIZED 746 ERROR_NO_MAC_FOR_PORT 747 ERROR_SMM_TIMEOUT 748 ERROR_BAD_PHONE_NUMBER 749 ERROR_WRONG_MODULE 750