&51C44 QuickVoy_Message This is a multiple-purpose message allocated to QuickVoy. The base block (&51C40) has been officially allocated for use by my software (originally, to replace the &16F00 doors protocol; BBS stuff). The way this is allocated is a message number is assigned to each application - QuickVoy uses message &51C44 - and the word at data%!20 specifies what the message means. data%+24 is the data. This means, 64 applications can be supported, with 2147483650 possible messages available; which is much more flexible than only 64 messages for one application. The following codes are received by QuickVoy (data%!20): 1 - QuickVoy_Connect If not connected, connect now. 2 - QuickVoy_Disconnect If connected, disconnect now. 3 - QuickVoy_InvokeTransport Invoke transport - has no effect if not on-line. data%!24 bit 0 = News fetcher 1 = News sender 2 = Mail fetcher 3 = Mail sender 7 = Self upgrader (assumed to be at ...Utilities.!selfupgrd) 4 - QuickVoy_InvokeActivity Invokes a scripted activity data%!24 bit 0 = UPON STARTUP 1 = UPON CONNECT 2 = UPON TIMER 3 = UPON DISCONNECT 4 = UPON QUIT It is only really safe to call the timed events a little early; you can cause nasty things to happen by messing with this. 5 - QuickVoy_RQStatus Request status; replies code 10. 6 - QuickVoy_MbxWatch Broadcast by MbxWatch to indicate the status of the mailbox. Ignored by QuickVoy Small. data%!24 = Number of messages data%!28 = Size of all messages 7 - QuickVoy_Email Broadcast by the email progette in response to a mailto: URL having been chosen (in the browser). Ignored by QuickVoy Small. $(data%+24) = Email address $(data%+128) = Email subject The email subject is currently not decoded by the interface progrette ("...!QuickVoy.Utilities.!mailtourl"), but it is supported by QuickVoy. You could use this Wimp message to add your own email requests. 11 - QuickVoy_FetcherReady Broadcast by fetcher to say that it has loaded and is ready. Ignored by QuickVoy Small. 12 - QuickVoy_FetcherStatus Broadcast by fetcher to report on status. Ignored by QuickVoy Small. data%!24 = 1 Resolving 2 Connecting socket 3 Sending request 4 Waiting for response from server 5 Fetching data data%!28 = Amount fetched, if code = 5 data%!32 = Amount to be fetched or 0 if unknown (if code=5) 14 - QuickVoy_FetcherCompleted Fetch completed. Ignored by QuickVoy Small. 15 - QuickVoy_FetcherError Fetcher error. Ignored by QuickVoy Small. data%!24 = 1 No stack loaded 2 No resolver loaded 3 Unable to resolve domain 4 Unable to open output file 5 Unable to connect socket 6 Unable to fetch object 7 Internal error, quitting 8 Can't do fetch, already fetching something 9 Invalid input 10 Error overrun when fetching headers 11 Error overrun when fetching data 12 Remote system closed connection 14 Unable to open specifier file ("fetchrq") 15 Unable to parse URL in specifier file 16 No write name in specifier file 16 - QuickVoy_FetcherDied Broadcast by fetcher when asked to shut down. Ignored by QuickVoy Small. data%!24 = Handle of task that requested shutdown, or 0 if a TaskManager quit. 17 - QuickVoy_FetcherAlternate Broadcast by fetcher if the actual domain is something other than the specified domain. Not currently supported, and can probably be ignored anyway. $data%+24 = Alternative alias The following codes are broadcast by QuickVoy (data%!20): 10 - QuickVoy_Status data%!24 = &796F5651 ("QVoy", for identification) data%!28 = Version number * 100; if bit 31 is set then QuickVoy Small is being used. data%?32 = TRUE if connected, else FALSE. data%?33 = TRUE if dialling, 2 if logging in, else FALSE. $data%+36= Login name (like "UKARG/argxx99"), null terminated. 20 - QuickVoy_RQFetcher Requests the fetcher fetch something. The fetcher will look for the file ".Utilities.userdata.fetchrq" which should contain two lines of text: 1 - What to fetch (full URL) 2 - Where to write it to Won't be broadcast by QuickVoy Small. 21 - QuickVoy_RQFetcherStatus Requests a status on the fetcher (replies with code 12). Won't be broadcast by QuickVoy Small. 22 - QuickVoy_RQFetcherDie Requests the fetcher to abort and exit. Won't be broadcast by QuickVoy Small. Using the fetcher If you really must... * Load " .Utilities.!fetcher" (this name is fixed, any newer code will have the same utility name). * It will, upon loading, broadcast &51C44 with the word at +20 being 11. You should wait a few seconds for the fetcher to initialise, before reporting that the fetcher failed to load. * You create the " .Utilities.userdata.fetchrq" file; something like: http://www.heyrick.co.uk/voyager/quickvoy/index.html IDEFS::Willow.$.misc.qvindex/ht * Broadcast code 20. * Wait until you receive code 14, 15, or 16. You will periodically receive code 12 which you can use to update status displays. * If fetch completed okay, send code 22 to kill fetcher. If it didn't, then remove the fetched file as it is likely to be non-existant/incomplete.