Home » Personal collection » Acorn hard disk » apps » web » ReadMeDocs/Protocol

ReadMeDocs/Protocol

This website contains an archive of files for the Acorn Electron, BBC Micro, Acorn Archimedes, Commodore 16 and Commodore 64 computers, which Dominic Ford has rescued from his private collection of floppy disks and cassettes.

Some of these files were originally commercial releases in the 1980s and 1990s, but they are now widely available online. I assume that copyright over them is no longer being asserted. If you own the copyright and would like files to be removed, please contact me.

Tape/disk: Home » Personal collection » Acorn hard disk » apps » web
Filename: ReadMeDocs/Protocol
Read OK:
File size: 8F4A bytes
Load address: 0000
Exec address: 0000
Duplicates

There is 1 duplicate copy of this file in the archive:

File contents
/*
 * ArcWeb
 *
 * Copyright (C) Stewart Brodie, 1994, 1995, 1996, 1997
 *
 * This product is supplied under the terms laid down in the `Terms' file.
 *
 * This file: Protocol
 *
 *   For ArcWeb versions 1.77 and later (until superceded)
 *	Added flags for management of FTP directories (+object delete/rename)
 *
 *
 *   Changes from protocol in version 1.17
 *	Bits 6-13 in FetchRequest flags added - not all are implemented!
***	arcweb_TYPES_... macros withdrawn - use proper RISC OS types instead
 *
 *   Changes from protocol in version 0.35
 *	Bit 5 in ..Request flags added to 
 *
 *   Changes from protocol in version 0.31
 *      Bit 21 is reassigned in 'Done' messages for permanent relocation
 *      which will enable ArcWeb to modify hotlist entries etc. when the
 *      server has sent a 301 response.
 *      Some bit descriptions corrected.  The table was correct, but sometimes
 *      the descriptions had not been.
 *
 *   Changes from protocol in version 0.28
 *      Message_ArcwebWebBrowser added to allow a non-ArcWeb browser to
 *	transmit its name and version to ArcWeb.  OTHER BROWSERS MUST USE THIS
 *	Notes on this message added
 *
 *   Changes from protocol in version 0.26
 *      'reload' and 'fast images' bits have been switched
 *      the ExternalLaunch can accept non-extended URLs, although such use is
 *      deprecated.
 *
 *   Changes from protocol in version 0.25
 *      Message_ArcwebExternalLaunch added
 *      Message_ArcwebConfigure added
 *      Notes on both of the above added.
 *
 *   Changes from protocol in version 0.20
 *      More flags added to FetchRequest & PostRequest messages.  These are
 *      for the information of the fetcher only and do not need to be preserved
***     From version 0.25, the use on non-extended URLs is deprecated
 *
 *   Changes from protocol in version 0.19
 *      Comments about bit 27 handling (arcweb_FLAGS_url_changed) changed
 *      Comments in several other sections changed
 *      Whole document should be reread by those implementing any part of
 *      any of the ArcWeb protocols
 *
 *   Changes from protocol in version 0.12
 *      Extensions to the Message_ArcwebRenderDone buffer.  The image renderer
 *      must insert the X and Y pixel size of a graphical image (to enable
 *      ArcWeb to calculate URLs for imagemaps unless the information is not
 *      available or not applicable (eg. for sound)
 *
 *
 *   Changes from protocol in version 0.11
 *      Extended URL protocol defined
 *      - in *Request message blocks
 *      - notes about ownership of file handles
 *      - in comments about the Flags word
 *      - comments about how to handle Location: header from HTTP servers
 *      Message_ArcwebEMailRequest/Done added
 *      Handling of bit 27 in non-extended URL messages
 *      In Other Notes: comment about expiry dates updated
 *      Warning about setting type bits in Done messages
 *      Renderer protocol warnings added
 *      Sender protocol renamed to Poster protocol
 *      EMail protocol added (uses a new bit in flags)
 *      Suggestion about intelligent HTTP fetchers prefetching images
 *      Message_ArcwebAbortRequest added   + description
 *      Message_ArcwebTransferStatus added + description
 *
 */

This file describes the protocols used by ArcWeb.  There are nine protocols
planned, although only the first eight are fully implemented so far.


  * Fetcher Protocol
  * Renderer Protocol
  * Quit Protocol
  * Extended URL Protocol
  * Poster Protocol
  * Email Protocol
  * External Launch Protocol
  * Configuration Protocol
  * Expire Protocol


Programmers supporting these protocols must be extremely careful with their
memory, message and protocol management.  The protocols are allowed to be
concurrent and nested.

The obvious example is that a renderer may find an inline image in a
document, and will hence want to issue a request to fetch it.  A not so
obvious example is an intelligent HTTP fetcher which tries to intelligently
scan the returned document (if it was HTML) to pick out <img> tags and kick
off requests for these in-lined images so that when ArcWeb comes to ask for
them, a swifter reply can be made.  The impact of such a system would be
more noticable, the more images there are inlined in a document.


General
=======

  Each protocol consists of 2 messages, a "Request" and a "Done". The
Request is sent with event code 18 to force an acknowledgement.  The
fetcher/renderer should acknowledge with the Done message to prevent the
Wimp returning the message to the originator.  Should the fetcher/renderer
wish to call Wimp_Poll before it is ready to send the Done reply, it MUST ack
the message (ie. fill in the ref fields and reply with event type 19 to
prevent the Wimp returning it to the originator), and then send the Done
message when it is ready (having remembered to fill in the your_ref field
from the my_ref of the original Request).

  Instead of sending a Wimp acknowledgement with event type 19 to prevent
delivery failure, as mentioned above, it would be much better to actually
reply with a Message_ArcwebTransferStatus, which doubles both as the ack and
as a useful message.  Further Message_ArcwebTransferStatus messages can be
sent periodically (use event type 17 and zero the ref field for these)

  C programmers must use requester.h to define the structures used. 
The types have been divorced from any Wimp library, only char, void and int
types have been used.


Messages
========

buf is the buffer returned from Wimp_Poll (&e->data in Risc_OSlib).  The
obvious fields have been omitted (ie. buf+0 to buf+12).
The 'Private ArcWeb handle' must always be preserved, as this is the only
way ArcWeb can deliver replies to the request originator.

The types of each entry are given:  str0 = zero terminated string.  strN = 
string whose length is defined elsewhere.  str0/N = string zero terminated
unless it is maximum length (defined elsewhere) in which case the terminator
is missing; date5 = 5 byte date string (in UTC) as returned by OS_Word 14,3

The buffers are all defined together and then explained below.  requester.h
contains C structures for these messages.




Message_ArcwebFetchRequest      (msg_Arcweb__base +  0)

        buf+16  int     Message_ArcwebFetchRequest      (0x4A240)
        buf+20  void*   Private ArcWeb handle
        buf+24  int     Flags
        buf+28  int     RISC OS file handle (source)

EITHER  buf+32  str0    Uniform Resource Locator (fully qualified)

    OR  buf+32  int     RISC OS file handle (URL) (if flags bit 22 set)


Message_ArcwebFetchDone         (msg_Arcweb__base +  1)

        buf+12  int     my_ref from Message_ArcwebFetchRequest
        buf+16  int     Message_ArcwebFetchDone         (0x4A241)
        buf+20  void*   Private ArcWeb handle
        buf+24  int     Flags

 EITHER buf+28  str0    Error message

     OR buf+28  int     Zero=this item has an expiry date
        buf+32  int     Non-zero=use default expiry delay
        buf+36  date5   Expiry date in UTC (if buf+32 zero, and buf+28 zero)


Message_ArcwebRenderRequest     (msg_Arcweb__base +  2)

        buf+16  int     Message_ArcwebRenderRequest     (0x4A242)
        buf+20  void*   Private ArcWeb handle
        buf+24  int     flags
        buf+28  int     RISC OS file handle (source)
        buf+32  int     RISC OS file handle (temporary)
        buf+36  int     RISC OS file handle (diagram)
        buf+40  int     RISC OS file handle (link)
        buf+44  int     size of data following
        buf+48  ---     (contents of buf+44) bytes of source file

Message_ArcwebRenderDone        (msg_Arcweb__base +  3)

        buf+16  int     Message_ArcwebRenderDone        (0x4A243)
        buf+20  void*   Private ArcWeb handle
        buf+24  int     flags

EITHER  buf+28  int     size of image in x pixels (0 if N/A)
        buf+32  int     size of image in y pixesl (0 if N/A)

OR      buf+28  str0    error message


Message_ArcwebPostRequest       (msg_Arcweb__base +  4)

        buf+16  int     Message_ArcwebPostRequest       (0x4A244)
        buf+20  void*   Private ArcWeb handle
        buf+24  int     flags
        buf+28  int     RISC OS file handle (source)
        buf+32  int     RISC OS file handle (form)

EITHER  buf+36  str0    Uniform Resource Locator (if flags bit 22 clear)

    OR  buf+36  int     RISC OS file handle (URL) (if flags bit 22 set)

Message_ArcwebPostDone          (msg_Arcweb__base +  5)

        buf+12  int     my_ref from Message_ArcwebPostRequest
        buf+16  int     Message_ArcwebPostDone          (0x4A245)
        buf+20  void*   Private ArcWeb handle
        buf+24  int     flags

 EITHER buf+28  str0    Error message

     OR buf+28  int     Zero=this item has an expiry date
        buf+32  int     Non-zero=use default expiry delay
        buf+36  date5   Expiry date in UTC (if buf+32 zero, and buf+28 zero)

Message_ArcwebEMailRequest      (msg_Arcweb__base +  6)

        buf+16  int     Message_ArcwebEMailRequest      (0x4A246)
        buf+20  void*   Private ArcWeb handle
        buf+24  int     flags
        buf+28  int     RISC OS file handle (form file containing e-mail)

Message_ArcwebEMailDone         (msg_Arcweb__base +  7)

        buf+12  int     my_ref from Message_ArcwebEMailRequest
        buf+16  int     Message_ArcwebEMailDone         (0x4A247)
        buf+20  void*   Private ArcWeb handle
        buf+24  int     flags


Message_ArcwebQuit              (msg_Arcweb__base + 32)

        buf+16  int     Message_ArcwebQuit              (0x4A260)


Message_ArcwebExpire            (msg_Arcweb__base + 33)

        buf+16  int     Message_ArcwebExpire            (0x4A261)
        buf+20  void*   Private ArcWeb handle
        buf+24  int     flags
        buf+28  int     RISC OS file handle (source)

Message_ArcwebAbortRequest      (msg_Arcweb__base + 34)

        buf+16  int     Message_ArcwebAbortRequest      (0x4A262)
        buf+20  void*   Private ArcWeb handle
        buf+24  int     reserved
        buf+28  str0    reason for abort (could log this)

Message_ArcwebTransferStatus    (msg_Arcweb__base + 35)

        buf+16  int     Message_ArcwebTransferStatus    (0x4A263)
        buf+20  void*   Private ArcWeb handle from ..Request
        buf+24  int     reserved, must be zero
        buf+28  int     status flags
        buf+32  int     total size of data to be transmitted
        buf+36  int     size of data transmitted so far
        buf+40  int     total size of data to be received (if known)
        buf+44  int     size of data received so far
        buf+48  str0    current status of communication

Message_ArcwebConfigure         (msg_Arcweb__base + 36)

        buf+16  int     Message_ArcwebConfigure         (0x4A264)
        buf+20  void*   Unused
        buf+24  int     Unused
        buf+28  str0    Application to be configured
        
Message_ArcwebExternalLaunch    (msg_Arcweb__base + 37)

        buf+16  int     Message_ArcwebExternalLaunch    (0x4A265)
        buf+20  void*   Sender's private handle (not ArcWeb's)
        buf+24  int     Flags (see notes on this Message)
        buf+28  int     RISC OS file handle (URL)

Message_ArcwebLaunchDone        (msg_Arcweb__base + 38)

        buf+12  int     my_ref from Message_ArcwebExternalLaunch
        buf+16  int     Message_ArcwebLaunchDone        (0x4A265
        buf+20  void*   Preserved from the Launch message
        buf+24  int     Flags (will have bit 31 set on an error)
        buf+28  str0    Error message


Ownership of File Handles
=========================

Some people have expressed concern at the apparent capability to lose track
of which task 'owns' the RISC OS file handles passed in the messages.  There
is never any ambiguity, and this section will clarify this.

The task which sends the FetchRequest/RenderRequest/PostRequest message will
have called OS_Find to open the file, and this task (normally ArcWeb itself)
owns the returned file handle UNTIL it calls Wimp_Poll.  At this point, the
Wimp will start delivering the Request message to each task in turn.  While
the Wimp is doing this the file handle is in limbo (in effect, it is
'lost').

There are two possible continuations:

i) As soon as a task receives the Request message and decides that it wishes
to reply to the Request message, it will either send the corresponding Done
message, OR just ack it with the intention on replying properly later.  It
is upon the sending of this Done message, or Ack, (the call to
Wimp_SendMessage) that the task becomes the owner of the file handle, and
hence responsible for closing the file handle when it is finished with.

ii) The other scenario is when *no* task wants to reply to the Request
message. In this case, the Wimp will deliver an event code 19 copy of the
message to the originator.  The originator now regains ownership of the file
handle and is responsible for it (ArcWeb closes the file(s) and generates
an error if this is sensible).

In general, for any task, if it receives a Request message, it is guaranteed
to have exclusive use of the file handle until it next calls Wimp_Poll.

This system ensures that ownership of the file is guaranteed to be allocated
to one particular task in the system at any time, and that a task has to
'claim' ownership explicitly, as shown in (i) above.



Flags
=====

The Flags word contains several useful bits of information:

   On ..Request messages:
   
	bit  0		Reserved - must be zero (was reload bit in old versions)
        bit  1          If set, the previous page was a local: URL
        bit  2          If set, fast images are being used - not implemented
        bit  3          If set, the POST request should be sent as a PUT
        bit  4          If set, the user has disabled image fetching
	bit  5		If set, browser allow InProgress response for THIS fetch
	bit  6		Reserved - must be zero
	bit  7		Internal use only - must be zero for non-ArcWeb tasks
	bit  8		If set, user has forced image fetching for this fetch
	bit  9		If set, user requested a PUT operation
	bit  10		If set, user requested the URI be created as a directory
	bit  11		If set, user requested the directory URI be deleted
	bit  12		If set, user requested deletion of URI
	bit  13		If set, user requested rename of URI
	bit  21		If set, the email message is already complete
   
   On ..Done messages
   
        bits 0-15       RISC OS file type/ArcWeb file type (see bits 16,30)
        bit  16         If set, bits 0-15 are ArcWeb file type, else RISC OS
        bit  21		If set (+bit 27 set), new URL is permanent (301 Moved)

   In both types of message:

        bits 17 and 18  Reserved (must preserve in replies)
        bit  19         If set, user requested a 'save to disc'
   	bit  20		If set, user requested a reload on this document
        bit  21         If set, the email message is already complete
        bit  22         If set, an extended URL is in use
        bit  23         If set, ArcWeb will not display the results of the render
        bit  24         If set (+bit 31 set), ArcWeb will not raise an error
        bit  25         If set, this request is for an inlined resource
        bit  26         If set, ArcWeb will close the window which issued request
        bit  27         If set, extended URL has changed
        bit  28         If set, symbolic link request/confirm
        bit  29         If set, ArcWeb will not attempt to render the file
        bit  30         If set, bits 0-16 are valid, else they are invalid
        bit  31         If set, buffer contains an error message

The error bit (31) determines which of the options in two of the messages
above, is in force.  If the error bit is set, ArcWeb will raise an error to
the user UNLESS bit 24 is also set (indicating that the other application
has already handled this - this is the preferred way of doing it).

When a request to fetch a new page is issued, ArcWeb remembers which window
(if any) launched the request.  Once a successful RenderDone has been
delivered to the window, it will self-destruct if bit 26 is set.  ArcWeb
will set this bit itself according to the user's choice, and so this bit
should always be preserved, unless you absolutely want to set it (see bit 23
below).  That window is not allowed to launch further requests until the
whole transaction is completed.  This blocked state is indicated to the user
by the web animation in the information window for a busy page.

If you find that bit 22 is set upon receipt of a Request involving a URL,
then the buffer will not contain a URL, but a file handle of a file that
does.  The file will have been opened in R/W mode with OS_Find.  You should
read the whole of the file to obtain the URL.  It may be terminated by a
whitespace character, or by EOF.  The same rules about responsibility for
closing the file apply as for the other handles in ..Request messages.

If, during a conversation with an HTTP server, you receive a Location:
directive indicating a document relocation, then you should amend the
contents of the extended URL file to represent the new target URL.  You must
set flag bit 27 in the Done message (which you don't send immediately - you
pretend as though you had received the new URL from the Request message). 
The transparent obedience to Location: directives is not strictly required
(and the change cannot be signalled to ArcWeb if the extended URL protocol
is not being used), but is MOST HIGHLY ENCOURAGED.  At some point in the
future, only extended URLs will be used at all.  If the response from the
server was a 301 'moved permanently', then you should also set bit 21 in
the ..Done message to inform ArcWeb.  ArcWeb will then scan the hotlist
and history for that URL and change them, as HTTP spec suggests.

*** From version 0.25, the use on non-extended URLs is deprecated

If bit 19 was set, then the user did a SHIFT-click on the link to force it
to be loaded to disc only.

If bit 23 is set in RenderDone, ArcWeb will not display the results of the
render.  This is to allow applications such as image renderers to open their
own window to display the picture.  This must NOT be done if bit 25 is set
(as someone else is trying to render an inline image).  If bit 25 is set,
the application must convert the image into a sprite file and store it in
the 'diagram' file.  If you set bit 23, it is a good idea to clear bit 26 in
order not to confuse the user.  Make sure that you set the size of the image
in pixels (if appropriate) in the RenderDone message, as this will enable
image maps to work correctly.

Upon receipt of a FetchRequest message, the application should check bit 28. 
If bit 28 is set, then the application may opt to retrieve the file to its
own private directory and store the name of the file in the 'source' file. 
If it declines to do this (or bit 28 is clear anyway), bit 28 should be
cleared on the response and the fetched file placed in 'source'.  This
facility is provided mainly for the benefit of ArcWebLcl to avoid copying
files around the locally available filesystems.

If bit 21 is set on receipt of a EMailRequest message, then this indicates
that the form file contains a complete e-mail message ready to be mailed
off (excluding From: header).  If bit 21 is clear, then this indicates that
the helper application needs to open some kind of editor to allow the user
to complete the e-mail.  The editor should be initialised with the contents
of the form file.  If it is going to do anything at all, then the helper
application must reply with a EMailDone message.

Bit 4 is used by ArcWeb to indicate to fetchers that the user has
specifically requested that images are not fetched and rendered.  This
allows 'intelligent' HTTP fetchers mentioned at the start of this document,
to parse the HTML responses to its fetches and immediately kick off the
transfers for these images before the render of the document begins.  If bit
4 is set, then the fetcher should not do this.

Bits 10-13 are relevant only for Message_ArcwebFetchRequest messages.  They
indicate that the operation is targeted at direct manipulation of the URL.
These are not yet fully implemented (MKDIR and RMDIR are implemented for FTP
only)  The two directory ops require a terminating / on the URL.  Bits 10-13
are to be treated as a 4-bit unsigned value rather than a bit-field, and so
it MUST be treated as such by applications.

If bit 10 is set (directory creation), then an attempt to create the
directory is made and upon a successful response, it is treated as if a
redirection had occurred to the same resource (so the directory you just
created is opened).  However, if bit 11 is ALSO set, this redirection does
NOT occur.  ie. a value of 1 means create directory and enter it; a value
of 3 means create directory but do not enter it; a value of 2 means
delete directory.  A value of 4 means delete the object, and a value of 8
means rename the object.




Message_ArcwebAbortRequest
==========================

Upon receipt of this message, the fetcher application retrieving a URL under
the given ArcWeb Private handle, should terminate the fetch with an error. 
It should acknowledge this message with Message_ArcwebFetchDone, after
setting the flags correctly indicating some kind of error.  All active
fetches associated with the handle should be stopped.  This allows
intelligent fetchers to stop any automatic fetches that they might have
issued, to fetch inlined images.

At the choice of the FETCHER, it may decide to ignore the AbortRequest and
continue fetching data.  The most obvious situation in which this is useful
is if the fetch is large and nearly complete anyway - say less than 1 second
estimated to completion.  You must acknowledge the AbortRequest with a
FetchDone, in the usual manner (ie. you can acknowledge the message first,
then send a reply later).  The amount of time may be configurable in the
fetcher, but should not exceed a few seconds as this may confuse the user.



Message_ArcwebTransferStatus
============================

A fetcher which wishes to inform the user of the status of the communication
between itself and the remote information server (FTP, HTTP, Gopher, etc..)
may use this message to inform the browser of its progress.  The 4 size
elements in the message may be used by the browser to create a graphical
representation of the communication status.  Values of -1 should be known
for unknown quantities (0 is reserved for indicating no bytes yet
transferred or expected).  The browser may choose to ignore these values and
rely on the description string, which should say something like:

1000 bytes out of 2000 byte document read
0 bytes out of 16384 bytes of inlined image read
Looking up louis.ecs.soton.ac.uk ...

or whatever it feels is appropriate.  Fetcher writers must recognise that
the browser may attempt to display these messages in an icon, and will hence
be issuing redraw requests (even if only via Wimp_SetIconState) for each
message received.  The fetcher should provide a facility for disabling these
messages, and not send them too frequently - two or three times per second
is quite enough.


If you are going to provide byte counts as in the examples above, I HIGHLY
RECOMMEND using OS_Convert(Fixed)FileSize to give a useful display.  It
isn't terribly useful to know that 65539 bytes out of 268435456 bytes have
been received.  Far better, even if slightly inaccurate, to say '64K out of
256M' and maybe show the percentage that represents.

Returned messages should typically be less than about 64 characters long.

The browser may ignore these messages, and so the fetcher should not send
them recorded delivery (Wimp event type 18).

The flags for Message_ArcwebTransferStatus:

        bit   0         If set, transmission is in progress
        bit   1         If set, reception is in progress
        bit   2         If set, transmission is complete
        bit   3         If set, reception is complete
        bit   4         If set, other comms. are in progress eg. DNS lookup
        bits  5 - 31    Reserved



Other Notes
===========

You must preserve the ArcWeb Private Handle.  This is a private pointer to a
part of ArcWeb's application memory used to distribute the replies which
ArcWeb receives.

When specifying an expiry date in FetchDone messages, if you intend to
specify a date rather than allow the default to be used, then you must
specify this as an exact date.  ie. not relative to the current time, you
must add it up yourself.  HTTP servers may supply expiry dates on documents
which they return.  These should be honoured (see documentation of the
Territory module's handling of Time & Date).

The 'source', 'temporary', 'diagram' and 'link' words in the FetchRequest
and RenderRequest messages are RISC OS file handles to the appropriate files
in ArcWeb's cache.  If you acknowledge either of the Request messages, YOU
are responsible for closing the files (ie. passing the handle to OS_Find 0).
You must close ALL the file handles in the message even if you don't use
them all.  The reason for passing handles around is that filenames  won't
necessarily fit in the message buffer (particularly when you want to pass 5
of them).  If just having the handle is inconvenient, you should use OS_Args
7 to convert the handle into a filename (as !ArcWebLcl does), close the file
and reopen it how you want to do it.  BUT BEWARE: only do this if you are
going to acknowledge the message (otherwise other recipients of the message
will find that they have an illegal file handle in the message).  For
FetchRequest, 'source' is opened as read/write (OS_Find 0x83 - [I always
thought that was for output only, but my RO3 PRMs say otherwise]).  For
RenderRequest, 'source' is opened read only (OS_Find 0x43), and the others
are read/write (OS_Find 0x83).  For PostRequests, the source is as for
FetchRequests, and the form file is read only.  For EMailRequests, the form
file is read-only.

[An example of using OS_Args 7 in BASIC is in !ArcWebLcl which uses OS_CLI
to issue a straight *COPY command when the symlink bit is clear]


You do not need to fill in the file type bits (0-15,16 and 30) when sending
the Fetch Done message, but it will assist the renderers in deciding what to
do with the document if you do.  The most common types returned are plain
text (&FFF), HTML (&FAF), GIF (&695), JPEG (&C85) and XBM (&10104).

WARNING: Most HTTP servers are configured with a default type to return in
the case that it cannot work out the type of a file from its name or a
specific directive telling it the file type.  This default type is usually
text/plain.  This is a problem when you wish to store binary files (eg.
arcweb.arc) on HTTP servers, as louis.ecs.soton.ac.uk's server will tell you
that this is a text/plain file, when obviously it isn't.  ArcWeb 0.12 and
later will examine the data in the RenderRequest message* to ensure that it
does not contain non-printable characters before attempting to render it.

* see renderer protocol discussion below


Renderer Protocol
=================

  The Renderer Protocol is used to transform a file into something which can
be viewed in the ArcWeb window.  ArcWeb generates a DrawFile (type &AFF)
to represent the HTML document.  I have written my own parser to read the
HTML file (conforms with the HTML 2.0 specification, 13 June 1994) and
display it.  Renderers should convert images into sprites and store them in
the 'diagram' file (but only if it is an inline data fetch - see discussion
of bits 23 and 25 above).  ArcWeb will be expecting a sprite file to be
there which it can then import.  It will take the first sprite out of the
file.  ArcWeb will handle RISC OS sprite files (&FF9) itself (although it
will broadcast the message with the expectation of receiving it back).  You
should not acknowledge render requests for files of type &FF9

  Renderers should inspect the file type bits in the RenderRequest to see
whether the file is of a type which they can handle.  If the type is not
known* (bit 30 is clear), then the renderer may inspect the first few bytes
of the file.  Before sending the RenderRequest message, ArcWeb will have
loaded in as much of the file as possible to the message (to fill it up to
256 bytes).  The amount of data in the message is in buf+44, and the data
starts at buf+48.  Thus up to 208 bytes of data will be present (currently
it is 208 unless the file is not that long, in which case the whole file is
there).  If 208 bytes is not enough, the renderer may use the file handle
given in the message to read more of the file in.  The file pointer should
be reset to zero if it decides that it can't handle it.  As a safeguard,
Renderers MUST NOT assume that the file pointer will be zero, and should set
it explicitly.

* The renderer may decide that it doesn't 'trust' the given file type.  If
that is the case, then it is allowed to ignore bit 30 and attempt to
recognise the file type from the data in the message buffer and act on that
alone.



Quit Protocol
=============

  Fetchers and Renderers should have a configurable option to allow them to
quit when ArcWeb dies.  This provides a clean way of shutting ArcWeb and all
its related programs down in one go.  Upon receipt of a Message_ArcwebQuit
message, store the task handle (in buf+4) and wait for the Wimp task
closedown message (Message_TaskCloseDown 0x400C3) to arrive with the given
task handle.  [To prevent ArcWeb closing down, acknowledge the
Message_ArcwebQuit message - not in version 0.08.  ArcWeb will exit anyway.]

  By using an extra message, this avoids the need for the auxiliary apps to
lookup the task name from the handle to check whether it was ArcWeb or not,
and this also guards against the task name changing.

  Do not acknowledge Message_ArcwebQuit unless you wish to prevent the
shutdown (treat it like you would treat Message_PreQuit)


Expire Protocol
===============

  If a fetcher has used a symbolic link when fetching a file then that file
should be expired upon receipt of Message_ArcwebExpire.  ArcWeb will pass you
a handle to the file in the cache.  If the symbolic link bit (bit 28) is set
in the flags, then the file to be removed is really the file whose name is
in the file whose handle you have been given.  !ArcwebLcl ignores this
message completely (as it should).  This protocol is not fixed and should
not yet be used (there is a particular problem with extended URLs), but
fetcher authors should be aware of its future existence.  ArcWeb does not
currently send Message_ArcwebExpire messages.


Poster Protocol
===============

This protocol will be used when ArcWeb wants to send information to a URL
rather than retrieve it, ie. when an HTML form with a method of POST has
been completed and the SUBMIT button has been pressed.  If the form did not
override the default (GET) or chooses the GET method, the the FetchRequest
protocol is used, and the fetcher is not aware of the fact that the data
transfer has happened (an extended URL will have been used).

PostRequest should be treated exactly like Message_ArcwebFetchRequest,
except that the 'form' file handle is a RISC OS file handle pointing to a
read-only file containing data to tag onto the end of the request. 
Some forms use the PUT method instead.  The fetcher can determine whether
the submission was a post or put by checking arcweb_FLAGS_post_was_put bit
and sending a PUT instead of a POST if it was set.
Obviously, the fetcher should issue a POST command to the HTTP server
instead of a GET.  The data in the form file will be suitable for tacking on
IMMEDIATELY after the POST and other usual headers, as it will contain a
Content-Length: header followed by a blank line, followed by the form data
with all the appropriate escape characters already substituted in.  This
data should be passed transparently to the HTTP server.  The fetcher should
respond to ArcWeb with a Message_ArcwebPostDone in exactly the same format
as a response to Message_ArcwebFetchRequest.  The buffer for PostDone is the
same as the buffer for FetchDone.  This is because the target script on the
server responds with a new virtual document, usually confirming that the
data entry was successful/failed etc.

EMail Protocol
==============

This protocol will be used when ArcWeb wants to send some e-mail.  ArcWeb
will send this message when the users attempts to follow a mailto: hypertext
link, or when a form with a mailto: method is submitted.  In the former
case, the message remains to be constructed, so the contents of the form
file should be taken as the initial text to be placed in the editor.  ArcWeb
guarantees to make the first line of the file the To: header.  Furthermore,
bit 21 will be clear indicating that the message is not yet complete.  In
the latter case (the invoked form), bit 21 will be set, indicating a
complete message is in the buffer and ready for mailing.  ArcWeb will still
guarantee that the first line in the form file is the To: header, but will
also add an X-Mailer: header, a Date: header and any other headers as
directed by MH tags in the form (eg. Subject: headers)

Upon receipt of the EMailRequest, the e-mail application should take over
the process of sending e-mail and return an EMailDone, after taking a copy
of the form file contents and closing the form file.  ArcWeb is not
concerned with what happens to the e-mail next, as far as it is concerned,
the email is sent.

There is no virtual document returned from an EMailRequest.  The e-mail
application may flag an error in the usual way (and choose whether to report
the error itself of not).  ArcWeb will open a dialogue box indicating the
status of the e-mail, rather than generating a complete new page.

ArcWebTCP will provide the email facility only if it is configured to do so.
To configure it, you must give it your email address and SMTP gateway name.


Configuration Protocol
======================

This protocol is used when the user invokes an option off the Configure menu
on ArcWeb's icon bar menu.  It allows the configuration windows of the
helper applications to be accessed even when no icon bar icon is installed.
The name of the application (case insensitive) will be in the message.
The name may also be a string of length 1, that character being * which
indicates that all applications are to open their configuration windows.
There is no acknowledgement required for this protocol.


External Launch Protocol
========================

This protocol is used when an external application, such as a mail reader,
wishes to launch a URL fetch.  The 'Private handle' field will be
preserved in any response from ArcWeb allowing the client to have
multiple outstanding requests, although ArcWeb does not guarantee to be
able to support multiple concurrent external requests at this time. The flags
field corresponds to the usual flags specified for ..Request messages with
the following exceptions:  It should have bit 22 set indicating that a file
handle is present which contains a fully qualified URL.  It should have no
other flags may be set except for arcweb_FLAGS_reload,
arcweb_FLAGS_load_to_disc, or arcweb_FLAGS_images_disabled

This message should be sent recorded delivery (ie. Wimp event type 18) and
upon receipt of a failure (Wimp returns a Wimp event type 19) the external
application must close the URL file and issue its own error.  It must
assume that ArcWeb was not loaded or was otherwise unable to respond. 
ArcWeb will respond with a Message_ArcwebLaunchDone message if it can (and
thus assume full responsibility for the URL file handle).  The error status
is indicated by the error bit in the flags, and if this is set, then the
buffer contains an error message, otherwise the buffer contents are
indeterminate.


Message_ArcwebWebBrowser
========================

ArcWebTCP sends browser identification to HTTP servers when it talks to them. 
By default, it sends the latest known version of ArcWeb when it was compiled. 
However, since other web browsers can use the facilities provided by
ArcWebTCP, I have added this message to allow the browser to identify itself
to remote servers.  The content of the buffer (see requester.h) is a control
character terminated string of the form String/0.00 where String is the
browser name (may contain spaces) and 0.00 is the version number.  ArcWebTCP
will insert this string into the headers and append string " (Acorn RISC OS;
ARM) ArcWebTCP/v.vv" to it, substituing its version number.  Any control
characters or top bit set characters are treated as terminators to prevent
any security breaches.



==END==
00000000  2f 2a 0a 20 2a 20 41 72  63 57 65 62 0a 20 2a 0a  |/*. * ArcWeb. *.|
00000010  20 2a 20 43 6f 70 79 72  69 67 68 74 20 28 43 29  | * Copyright (C)|
00000020  20 53 74 65 77 61 72 74  20 42 72 6f 64 69 65 2c  | Stewart Brodie,|
00000030  20 31 39 39 34 2c 20 31  39 39 35 2c 20 31 39 39  | 1994, 1995, 199|
00000040  36 2c 20 31 39 39 37 0a  20 2a 0a 20 2a 20 54 68  |6, 1997. *. * Th|
00000050  69 73 20 70 72 6f 64 75  63 74 20 69 73 20 73 75  |is product is su|
00000060  70 70 6c 69 65 64 20 75  6e 64 65 72 20 74 68 65  |pplied under the|
00000070  20 74 65 72 6d 73 20 6c  61 69 64 20 64 6f 77 6e  | terms laid down|
00000080  20 69 6e 20 74 68 65 20  60 54 65 72 6d 73 27 20  | in the `Terms' |
00000090  66 69 6c 65 2e 0a 20 2a  0a 20 2a 20 54 68 69 73  |file.. *. * This|
000000a0  20 66 69 6c 65 3a 20 50  72 6f 74 6f 63 6f 6c 0a  | file: Protocol.|
000000b0  20 2a 0a 20 2a 20 20 20  46 6f 72 20 41 72 63 57  | *. *   For ArcW|
000000c0  65 62 20 76 65 72 73 69  6f 6e 73 20 31 2e 37 37  |eb versions 1.77|
000000d0  20 61 6e 64 20 6c 61 74  65 72 20 28 75 6e 74 69  | and later (unti|
000000e0  6c 20 73 75 70 65 72 63  65 64 65 64 29 0a 20 2a  |l superceded). *|
000000f0  09 41 64 64 65 64 20 66  6c 61 67 73 20 66 6f 72  |.Added flags for|
00000100  20 6d 61 6e 61 67 65 6d  65 6e 74 20 6f 66 20 46  | management of F|
00000110  54 50 20 64 69 72 65 63  74 6f 72 69 65 73 20 28  |TP directories (|
00000120  2b 6f 62 6a 65 63 74 20  64 65 6c 65 74 65 2f 72  |+object delete/r|
00000130  65 6e 61 6d 65 29 0a 20  2a 0a 20 2a 0a 20 2a 20  |ename). *. *. * |
00000140  20 20 43 68 61 6e 67 65  73 20 66 72 6f 6d 20 70  |  Changes from p|
00000150  72 6f 74 6f 63 6f 6c 20  69 6e 20 76 65 72 73 69  |rotocol in versi|
00000160  6f 6e 20 31 2e 31 37 0a  20 2a 09 42 69 74 73 20  |on 1.17. *.Bits |
00000170  36 2d 31 33 20 69 6e 20  46 65 74 63 68 52 65 71  |6-13 in FetchReq|
00000180  75 65 73 74 20 66 6c 61  67 73 20 61 64 64 65 64  |uest flags added|
00000190  20 2d 20 6e 6f 74 20 61  6c 6c 20 61 72 65 20 69  | - not all are i|
000001a0  6d 70 6c 65 6d 65 6e 74  65 64 21 0a 2a 2a 2a 09  |mplemented!.***.|
000001b0  61 72 63 77 65 62 5f 54  59 50 45 53 5f 2e 2e 2e  |arcweb_TYPES_...|
000001c0  20 6d 61 63 72 6f 73 20  77 69 74 68 64 72 61 77  | macros withdraw|
000001d0  6e 20 2d 20 75 73 65 20  70 72 6f 70 65 72 20 52  |n - use proper R|
000001e0  49 53 43 20 4f 53 20 74  79 70 65 73 20 69 6e 73  |ISC OS types ins|
000001f0  74 65 61 64 0a 20 2a 0a  20 2a 20 20 20 43 68 61  |tead. *. *   Cha|
00000200  6e 67 65 73 20 66 72 6f  6d 20 70 72 6f 74 6f 63  |nges from protoc|
00000210  6f 6c 20 69 6e 20 76 65  72 73 69 6f 6e 20 30 2e  |ol in version 0.|
00000220  33 35 0a 20 2a 09 42 69  74 20 35 20 69 6e 20 2e  |35. *.Bit 5 in .|
00000230  2e 52 65 71 75 65 73 74  20 66 6c 61 67 73 20 61  |.Request flags a|
00000240  64 64 65 64 20 74 6f 20  0a 20 2a 0a 20 2a 20 20  |dded to . *. *  |
00000250  20 43 68 61 6e 67 65 73  20 66 72 6f 6d 20 70 72  | Changes from pr|
00000260  6f 74 6f 63 6f 6c 20 69  6e 20 76 65 72 73 69 6f  |otocol in versio|
00000270  6e 20 30 2e 33 31 0a 20  2a 20 20 20 20 20 20 42  |n 0.31. *      B|
00000280  69 74 20 32 31 20 69 73  20 72 65 61 73 73 69 67  |it 21 is reassig|
00000290  6e 65 64 20 69 6e 20 27  44 6f 6e 65 27 20 6d 65  |ned in 'Done' me|
000002a0  73 73 61 67 65 73 20 66  6f 72 20 70 65 72 6d 61  |ssages for perma|
000002b0  6e 65 6e 74 20 72 65 6c  6f 63 61 74 69 6f 6e 0a  |nent relocation.|
000002c0  20 2a 20 20 20 20 20 20  77 68 69 63 68 20 77 69  | *      which wi|
000002d0  6c 6c 20 65 6e 61 62 6c  65 20 41 72 63 57 65 62  |ll enable ArcWeb|
000002e0  20 74 6f 20 6d 6f 64 69  66 79 20 68 6f 74 6c 69  | to modify hotli|
000002f0  73 74 20 65 6e 74 72 69  65 73 20 65 74 63 2e 20  |st entries etc. |
00000300  77 68 65 6e 20 74 68 65  0a 20 2a 20 20 20 20 20  |when the. *     |
00000310  20 73 65 72 76 65 72 20  68 61 73 20 73 65 6e 74  | server has sent|
00000320  20 61 20 33 30 31 20 72  65 73 70 6f 6e 73 65 2e  | a 301 response.|
00000330  0a 20 2a 20 20 20 20 20  20 53 6f 6d 65 20 62 69  |. *      Some bi|
00000340  74 20 64 65 73 63 72 69  70 74 69 6f 6e 73 20 63  |t descriptions c|
00000350  6f 72 72 65 63 74 65 64  2e 20 20 54 68 65 20 74  |orrected.  The t|
00000360  61 62 6c 65 20 77 61 73  20 63 6f 72 72 65 63 74  |able was correct|
00000370  2c 20 62 75 74 20 73 6f  6d 65 74 69 6d 65 73 0a  |, but sometimes.|
00000380  20 2a 20 20 20 20 20 20  74 68 65 20 64 65 73 63  | *      the desc|
00000390  72 69 70 74 69 6f 6e 73  20 68 61 64 20 6e 6f 74  |riptions had not|
000003a0  20 62 65 65 6e 2e 0a 20  2a 0a 20 2a 20 20 20 43  | been.. *. *   C|
000003b0  68 61 6e 67 65 73 20 66  72 6f 6d 20 70 72 6f 74  |hanges from prot|
000003c0  6f 63 6f 6c 20 69 6e 20  76 65 72 73 69 6f 6e 20  |ocol in version |
000003d0  30 2e 32 38 0a 20 2a 20  20 20 20 20 20 4d 65 73  |0.28. *      Mes|
000003e0  73 61 67 65 5f 41 72 63  77 65 62 57 65 62 42 72  |sage_ArcwebWebBr|
000003f0  6f 77 73 65 72 20 61 64  64 65 64 20 74 6f 20 61  |owser added to a|
00000400  6c 6c 6f 77 20 61 20 6e  6f 6e 2d 41 72 63 57 65  |llow a non-ArcWe|
00000410  62 20 62 72 6f 77 73 65  72 20 74 6f 0a 20 2a 09  |b browser to. *.|
00000420  74 72 61 6e 73 6d 69 74  20 69 74 73 20 6e 61 6d  |transmit its nam|
00000430  65 20 61 6e 64 20 76 65  72 73 69 6f 6e 20 74 6f  |e and version to|
00000440  20 41 72 63 57 65 62 2e  20 20 4f 54 48 45 52 20  | ArcWeb.  OTHER |
00000450  42 52 4f 57 53 45 52 53  20 4d 55 53 54 20 55 53  |BROWSERS MUST US|
00000460  45 20 54 48 49 53 0a 20  2a 09 4e 6f 74 65 73 20  |E THIS. *.Notes |
00000470  6f 6e 20 74 68 69 73 20  6d 65 73 73 61 67 65 20  |on this message |
00000480  61 64 64 65 64 0a 20 2a  0a 20 2a 20 20 20 43 68  |added. *. *   Ch|
00000490  61 6e 67 65 73 20 66 72  6f 6d 20 70 72 6f 74 6f  |anges from proto|
000004a0  63 6f 6c 20 69 6e 20 76  65 72 73 69 6f 6e 20 30  |col in version 0|
000004b0  2e 32 36 0a 20 2a 20 20  20 20 20 20 27 72 65 6c  |.26. *      'rel|
000004c0  6f 61 64 27 20 61 6e 64  20 27 66 61 73 74 20 69  |oad' and 'fast i|
000004d0  6d 61 67 65 73 27 20 62  69 74 73 20 68 61 76 65  |mages' bits have|
000004e0  20 62 65 65 6e 20 73 77  69 74 63 68 65 64 0a 20  | been switched. |
000004f0  2a 20 20 20 20 20 20 74  68 65 20 45 78 74 65 72  |*      the Exter|
00000500  6e 61 6c 4c 61 75 6e 63  68 20 63 61 6e 20 61 63  |nalLaunch can ac|
00000510  63 65 70 74 20 6e 6f 6e  2d 65 78 74 65 6e 64 65  |cept non-extende|
00000520  64 20 55 52 4c 73 2c 20  61 6c 74 68 6f 75 67 68  |d URLs, although|
00000530  20 73 75 63 68 20 75 73  65 20 69 73 0a 20 2a 20  | such use is. * |
00000540  20 20 20 20 20 64 65 70  72 65 63 61 74 65 64 2e  |     deprecated.|
00000550  0a 20 2a 0a 20 2a 20 20  20 43 68 61 6e 67 65 73  |. *. *   Changes|
00000560  20 66 72 6f 6d 20 70 72  6f 74 6f 63 6f 6c 20 69  | from protocol i|
00000570  6e 20 76 65 72 73 69 6f  6e 20 30 2e 32 35 0a 20  |n version 0.25. |
00000580  2a 20 20 20 20 20 20 4d  65 73 73 61 67 65 5f 41  |*      Message_A|
00000590  72 63 77 65 62 45 78 74  65 72 6e 61 6c 4c 61 75  |rcwebExternalLau|
000005a0  6e 63 68 20 61 64 64 65  64 0a 20 2a 20 20 20 20  |nch added. *    |
000005b0  20 20 4d 65 73 73 61 67  65 5f 41 72 63 77 65 62  |  Message_Arcweb|
000005c0  43 6f 6e 66 69 67 75 72  65 20 61 64 64 65 64 0a  |Configure added.|
000005d0  20 2a 20 20 20 20 20 20  4e 6f 74 65 73 20 6f 6e  | *      Notes on|
000005e0  20 62 6f 74 68 20 6f 66  20 74 68 65 20 61 62 6f  | both of the abo|
000005f0  76 65 20 61 64 64 65 64  2e 0a 20 2a 0a 20 2a 20  |ve added.. *. * |
00000600  20 20 43 68 61 6e 67 65  73 20 66 72 6f 6d 20 70  |  Changes from p|
00000610  72 6f 74 6f 63 6f 6c 20  69 6e 20 76 65 72 73 69  |rotocol in versi|
00000620  6f 6e 20 30 2e 32 30 0a  20 2a 20 20 20 20 20 20  |on 0.20. *      |
00000630  4d 6f 72 65 20 66 6c 61  67 73 20 61 64 64 65 64  |More flags added|
00000640  20 74 6f 20 46 65 74 63  68 52 65 71 75 65 73 74  | to FetchRequest|
00000650  20 26 20 50 6f 73 74 52  65 71 75 65 73 74 20 6d  | & PostRequest m|
00000660  65 73 73 61 67 65 73 2e  20 20 54 68 65 73 65 20  |essages.  These |
00000670  61 72 65 0a 20 2a 20 20  20 20 20 20 66 6f 72 20  |are. *      for |
00000680  74 68 65 20 69 6e 66 6f  72 6d 61 74 69 6f 6e 20  |the information |
00000690  6f 66 20 74 68 65 20 66  65 74 63 68 65 72 20 6f  |of the fetcher o|
000006a0  6e 6c 79 20 61 6e 64 20  64 6f 20 6e 6f 74 20 6e  |nly and do not n|
000006b0  65 65 64 20 74 6f 20 62  65 20 70 72 65 73 65 72  |eed to be preser|
000006c0  76 65 64 0a 2a 2a 2a 20  20 20 20 20 46 72 6f 6d  |ved.***     From|
000006d0  20 76 65 72 73 69 6f 6e  20 30 2e 32 35 2c 20 74  | version 0.25, t|
000006e0  68 65 20 75 73 65 20 6f  6e 20 6e 6f 6e 2d 65 78  |he use on non-ex|
000006f0  74 65 6e 64 65 64 20 55  52 4c 73 20 69 73 20 64  |tended URLs is d|
00000700  65 70 72 65 63 61 74 65  64 0a 20 2a 0a 20 2a 20  |eprecated. *. * |
00000710  20 20 43 68 61 6e 67 65  73 20 66 72 6f 6d 20 70  |  Changes from p|
00000720  72 6f 74 6f 63 6f 6c 20  69 6e 20 76 65 72 73 69  |rotocol in versi|
00000730  6f 6e 20 30 2e 31 39 0a  20 2a 20 20 20 20 20 20  |on 0.19. *      |
00000740  43 6f 6d 6d 65 6e 74 73  20 61 62 6f 75 74 20 62  |Comments about b|
00000750  69 74 20 32 37 20 68 61  6e 64 6c 69 6e 67 20 28  |it 27 handling (|
00000760  61 72 63 77 65 62 5f 46  4c 41 47 53 5f 75 72 6c  |arcweb_FLAGS_url|
00000770  5f 63 68 61 6e 67 65 64  29 20 63 68 61 6e 67 65  |_changed) change|
00000780  64 0a 20 2a 20 20 20 20  20 20 43 6f 6d 6d 65 6e  |d. *      Commen|
00000790  74 73 20 69 6e 20 73 65  76 65 72 61 6c 20 6f 74  |ts in several ot|
000007a0  68 65 72 20 73 65 63 74  69 6f 6e 73 20 63 68 61  |her sections cha|
000007b0  6e 67 65 64 0a 20 2a 20  20 20 20 20 20 57 68 6f  |nged. *      Who|
000007c0  6c 65 20 64 6f 63 75 6d  65 6e 74 20 73 68 6f 75  |le document shou|
000007d0  6c 64 20 62 65 20 72 65  72 65 61 64 20 62 79 20  |ld be reread by |
000007e0  74 68 6f 73 65 20 69 6d  70 6c 65 6d 65 6e 74 69  |those implementi|
000007f0  6e 67 20 61 6e 79 20 70  61 72 74 20 6f 66 0a 20  |ng any part of. |
00000800  2a 20 20 20 20 20 20 61  6e 79 20 6f 66 20 74 68  |*      any of th|
00000810  65 20 41 72 63 57 65 62  20 70 72 6f 74 6f 63 6f  |e ArcWeb protoco|
00000820  6c 73 0a 20 2a 0a 20 2a  20 20 20 43 68 61 6e 67  |ls. *. *   Chang|
00000830  65 73 20 66 72 6f 6d 20  70 72 6f 74 6f 63 6f 6c  |es from protocol|
00000840  20 69 6e 20 76 65 72 73  69 6f 6e 20 30 2e 31 32  | in version 0.12|
00000850  0a 20 2a 20 20 20 20 20  20 45 78 74 65 6e 73 69  |. *      Extensi|
00000860  6f 6e 73 20 74 6f 20 74  68 65 20 4d 65 73 73 61  |ons to the Messa|
00000870  67 65 5f 41 72 63 77 65  62 52 65 6e 64 65 72 44  |ge_ArcwebRenderD|
00000880  6f 6e 65 20 62 75 66 66  65 72 2e 20 20 54 68 65  |one buffer.  The|
00000890  20 69 6d 61 67 65 20 72  65 6e 64 65 72 65 72 0a  | image renderer.|
000008a0  20 2a 20 20 20 20 20 20  6d 75 73 74 20 69 6e 73  | *      must ins|
000008b0  65 72 74 20 74 68 65 20  58 20 61 6e 64 20 59 20  |ert the X and Y |
000008c0  70 69 78 65 6c 20 73 69  7a 65 20 6f 66 20 61 20  |pixel size of a |
000008d0  67 72 61 70 68 69 63 61  6c 20 69 6d 61 67 65 20  |graphical image |
000008e0  28 74 6f 20 65 6e 61 62  6c 65 0a 20 2a 20 20 20  |(to enable. *   |
000008f0  20 20 20 41 72 63 57 65  62 20 74 6f 20 63 61 6c  |   ArcWeb to cal|
00000900  63 75 6c 61 74 65 20 55  52 4c 73 20 66 6f 72 20  |culate URLs for |
00000910  69 6d 61 67 65 6d 61 70  73 20 75 6e 6c 65 73 73  |imagemaps unless|
00000920  20 74 68 65 20 69 6e 66  6f 72 6d 61 74 69 6f 6e  | the information|
00000930  20 69 73 20 6e 6f 74 0a  20 2a 20 20 20 20 20 20  | is not. *      |
00000940  61 76 61 69 6c 61 62 6c  65 20 6f 72 20 6e 6f 74  |available or not|
00000950  20 61 70 70 6c 69 63 61  62 6c 65 20 28 65 67 2e  | applicable (eg.|
00000960  20 66 6f 72 20 73 6f 75  6e 64 29 0a 20 2a 0a 20  | for sound). *. |
00000970  2a 0a 20 2a 20 20 20 43  68 61 6e 67 65 73 20 66  |*. *   Changes f|
00000980  72 6f 6d 20 70 72 6f 74  6f 63 6f 6c 20 69 6e 20  |rom protocol in |
00000990  76 65 72 73 69 6f 6e 20  30 2e 31 31 0a 20 2a 20  |version 0.11. * |
000009a0  20 20 20 20 20 45 78 74  65 6e 64 65 64 20 55 52  |     Extended UR|
000009b0  4c 20 70 72 6f 74 6f 63  6f 6c 20 64 65 66 69 6e  |L protocol defin|
000009c0  65 64 0a 20 2a 20 20 20  20 20 20 2d 20 69 6e 20  |ed. *      - in |
000009d0  2a 52 65 71 75 65 73 74  20 6d 65 73 73 61 67 65  |*Request message|
000009e0  20 62 6c 6f 63 6b 73 0a  20 2a 20 20 20 20 20 20  | blocks. *      |
000009f0  2d 20 6e 6f 74 65 73 20  61 62 6f 75 74 20 6f 77  |- notes about ow|
00000a00  6e 65 72 73 68 69 70 20  6f 66 20 66 69 6c 65 20  |nership of file |
00000a10  68 61 6e 64 6c 65 73 0a  20 2a 20 20 20 20 20 20  |handles. *      |
00000a20  2d 20 69 6e 20 63 6f 6d  6d 65 6e 74 73 20 61 62  |- in comments ab|
00000a30  6f 75 74 20 74 68 65 20  46 6c 61 67 73 20 77 6f  |out the Flags wo|
00000a40  72 64 0a 20 2a 20 20 20  20 20 20 2d 20 63 6f 6d  |rd. *      - com|
00000a50  6d 65 6e 74 73 20 61 62  6f 75 74 20 68 6f 77 20  |ments about how |
00000a60  74 6f 20 68 61 6e 64 6c  65 20 4c 6f 63 61 74 69  |to handle Locati|
00000a70  6f 6e 3a 20 68 65 61 64  65 72 20 66 72 6f 6d 20  |on: header from |
00000a80  48 54 54 50 20 73 65 72  76 65 72 73 0a 20 2a 20  |HTTP servers. * |
00000a90  20 20 20 20 20 4d 65 73  73 61 67 65 5f 41 72 63  |     Message_Arc|
00000aa0  77 65 62 45 4d 61 69 6c  52 65 71 75 65 73 74 2f  |webEMailRequest/|
00000ab0  44 6f 6e 65 20 61 64 64  65 64 0a 20 2a 20 20 20  |Done added. *   |
00000ac0  20 20 20 48 61 6e 64 6c  69 6e 67 20 6f 66 20 62  |   Handling of b|
00000ad0  69 74 20 32 37 20 69 6e  20 6e 6f 6e 2d 65 78 74  |it 27 in non-ext|
00000ae0  65 6e 64 65 64 20 55 52  4c 20 6d 65 73 73 61 67  |ended URL messag|
00000af0  65 73 0a 20 2a 20 20 20  20 20 20 49 6e 20 4f 74  |es. *      In Ot|
00000b00  68 65 72 20 4e 6f 74 65  73 3a 20 63 6f 6d 6d 65  |her Notes: comme|
00000b10  6e 74 20 61 62 6f 75 74  20 65 78 70 69 72 79 20  |nt about expiry |
00000b20  64 61 74 65 73 20 75 70  64 61 74 65 64 0a 20 2a  |dates updated. *|
00000b30  20 20 20 20 20 20 57 61  72 6e 69 6e 67 20 61 62  |      Warning ab|
00000b40  6f 75 74 20 73 65 74 74  69 6e 67 20 74 79 70 65  |out setting type|
00000b50  20 62 69 74 73 20 69 6e  20 44 6f 6e 65 20 6d 65  | bits in Done me|
00000b60  73 73 61 67 65 73 0a 20  2a 20 20 20 20 20 20 52  |ssages. *      R|
00000b70  65 6e 64 65 72 65 72 20  70 72 6f 74 6f 63 6f 6c  |enderer protocol|
00000b80  20 77 61 72 6e 69 6e 67  73 20 61 64 64 65 64 0a  | warnings added.|
00000b90  20 2a 20 20 20 20 20 20  53 65 6e 64 65 72 20 70  | *      Sender p|
00000ba0  72 6f 74 6f 63 6f 6c 20  72 65 6e 61 6d 65 64 20  |rotocol renamed |
00000bb0  74 6f 20 50 6f 73 74 65  72 20 70 72 6f 74 6f 63  |to Poster protoc|
00000bc0  6f 6c 0a 20 2a 20 20 20  20 20 20 45 4d 61 69 6c  |ol. *      EMail|
00000bd0  20 70 72 6f 74 6f 63 6f  6c 20 61 64 64 65 64 20  | protocol added |
00000be0  28 75 73 65 73 20 61 20  6e 65 77 20 62 69 74 20  |(uses a new bit |
00000bf0  69 6e 20 66 6c 61 67 73  29 0a 20 2a 20 20 20 20  |in flags). *    |
00000c00  20 20 53 75 67 67 65 73  74 69 6f 6e 20 61 62 6f  |  Suggestion abo|
00000c10  75 74 20 69 6e 74 65 6c  6c 69 67 65 6e 74 20 48  |ut intelligent H|
00000c20  54 54 50 20 66 65 74 63  68 65 72 73 20 70 72 65  |TTP fetchers pre|
00000c30  66 65 74 63 68 69 6e 67  20 69 6d 61 67 65 73 0a  |fetching images.|
00000c40  20 2a 20 20 20 20 20 20  4d 65 73 73 61 67 65 5f  | *      Message_|
00000c50  41 72 63 77 65 62 41 62  6f 72 74 52 65 71 75 65  |ArcwebAbortReque|
00000c60  73 74 20 61 64 64 65 64  20 20 20 2b 20 64 65 73  |st added   + des|
00000c70  63 72 69 70 74 69 6f 6e  0a 20 2a 20 20 20 20 20  |cription. *     |
00000c80  20 4d 65 73 73 61 67 65  5f 41 72 63 77 65 62 54  | Message_ArcwebT|
00000c90  72 61 6e 73 66 65 72 53  74 61 74 75 73 20 61 64  |ransferStatus ad|
00000ca0  64 65 64 20 2b 20 64 65  73 63 72 69 70 74 69 6f  |ded + descriptio|
00000cb0  6e 0a 20 2a 0a 20 2a 2f  0a 0a 54 68 69 73 20 66  |n. *. */..This f|
00000cc0  69 6c 65 20 64 65 73 63  72 69 62 65 73 20 74 68  |ile describes th|
00000cd0  65 20 70 72 6f 74 6f 63  6f 6c 73 20 75 73 65 64  |e protocols used|
00000ce0  20 62 79 20 41 72 63 57  65 62 2e 20 20 54 68 65  | by ArcWeb.  The|
00000cf0  72 65 20 61 72 65 20 6e  69 6e 65 20 70 72 6f 74  |re are nine prot|
00000d00  6f 63 6f 6c 73 0a 70 6c  61 6e 6e 65 64 2c 20 61  |ocols.planned, a|
00000d10  6c 74 68 6f 75 67 68 20  6f 6e 6c 79 20 74 68 65  |lthough only the|
00000d20  20 66 69 72 73 74 20 65  69 67 68 74 20 61 72 65  | first eight are|
00000d30  20 66 75 6c 6c 79 20 69  6d 70 6c 65 6d 65 6e 74  | fully implement|
00000d40  65 64 20 73 6f 20 66 61  72 2e 0a 0a 0a 20 20 2a  |ed so far....  *|
00000d50  20 46 65 74 63 68 65 72  20 50 72 6f 74 6f 63 6f  | Fetcher Protoco|
00000d60  6c 0a 20 20 2a 20 52 65  6e 64 65 72 65 72 20 50  |l.  * Renderer P|
00000d70  72 6f 74 6f 63 6f 6c 0a  20 20 2a 20 51 75 69 74  |rotocol.  * Quit|
00000d80  20 50 72 6f 74 6f 63 6f  6c 0a 20 20 2a 20 45 78  | Protocol.  * Ex|
00000d90  74 65 6e 64 65 64 20 55  52 4c 20 50 72 6f 74 6f  |tended URL Proto|
00000da0  63 6f 6c 0a 20 20 2a 20  50 6f 73 74 65 72 20 50  |col.  * Poster P|
00000db0  72 6f 74 6f 63 6f 6c 0a  20 20 2a 20 45 6d 61 69  |rotocol.  * Emai|
00000dc0  6c 20 50 72 6f 74 6f 63  6f 6c 0a 20 20 2a 20 45  |l Protocol.  * E|
00000dd0  78 74 65 72 6e 61 6c 20  4c 61 75 6e 63 68 20 50  |xternal Launch P|
00000de0  72 6f 74 6f 63 6f 6c 0a  20 20 2a 20 43 6f 6e 66  |rotocol.  * Conf|
00000df0  69 67 75 72 61 74 69 6f  6e 20 50 72 6f 74 6f 63  |iguration Protoc|
00000e00  6f 6c 0a 20 20 2a 20 45  78 70 69 72 65 20 50 72  |ol.  * Expire Pr|
00000e10  6f 74 6f 63 6f 6c 0a 0a  0a 50 72 6f 67 72 61 6d  |otocol...Program|
00000e20  6d 65 72 73 20 73 75 70  70 6f 72 74 69 6e 67 20  |mers supporting |
00000e30  74 68 65 73 65 20 70 72  6f 74 6f 63 6f 6c 73 20  |these protocols |
00000e40  6d 75 73 74 20 62 65 20  65 78 74 72 65 6d 65 6c  |must be extremel|
00000e50  79 20 63 61 72 65 66 75  6c 20 77 69 74 68 20 74  |y careful with t|
00000e60  68 65 69 72 0a 6d 65 6d  6f 72 79 2c 20 6d 65 73  |heir.memory, mes|
00000e70  73 61 67 65 20 61 6e 64  20 70 72 6f 74 6f 63 6f  |sage and protoco|
00000e80  6c 20 6d 61 6e 61 67 65  6d 65 6e 74 2e 20 20 54  |l management.  T|
00000e90  68 65 20 70 72 6f 74 6f  63 6f 6c 73 20 61 72 65  |he protocols are|
00000ea0  20 61 6c 6c 6f 77 65 64  20 74 6f 20 62 65 0a 63  | allowed to be.c|
00000eb0  6f 6e 63 75 72 72 65 6e  74 20 61 6e 64 20 6e 65  |oncurrent and ne|
00000ec0  73 74 65 64 2e 0a 0a 54  68 65 20 6f 62 76 69 6f  |sted...The obvio|
00000ed0  75 73 20 65 78 61 6d 70  6c 65 20 69 73 20 74 68  |us example is th|
00000ee0  61 74 20 61 20 72 65 6e  64 65 72 65 72 20 6d 61  |at a renderer ma|
00000ef0  79 20 66 69 6e 64 20 61  6e 20 69 6e 6c 69 6e 65  |y find an inline|
00000f00  20 69 6d 61 67 65 20 69  6e 20 61 0a 64 6f 63 75  | image in a.docu|
00000f10  6d 65 6e 74 2c 20 61 6e  64 20 77 69 6c 6c 20 68  |ment, and will h|
00000f20  65 6e 63 65 20 77 61 6e  74 20 74 6f 20 69 73 73  |ence want to iss|
00000f30  75 65 20 61 20 72 65 71  75 65 73 74 20 74 6f 20  |ue a request to |
00000f40  66 65 74 63 68 20 69 74  2e 20 20 41 20 6e 6f 74  |fetch it.  A not|
00000f50  20 73 6f 0a 6f 62 76 69  6f 75 73 20 65 78 61 6d  | so.obvious exam|
00000f60  70 6c 65 20 69 73 20 61  6e 20 69 6e 74 65 6c 6c  |ple is an intell|
00000f70  69 67 65 6e 74 20 48 54  54 50 20 66 65 74 63 68  |igent HTTP fetch|
00000f80  65 72 20 77 68 69 63 68  20 74 72 69 65 73 20 74  |er which tries t|
00000f90  6f 20 69 6e 74 65 6c 6c  69 67 65 6e 74 6c 79 0a  |o intelligently.|
00000fa0  73 63 61 6e 20 74 68 65  20 72 65 74 75 72 6e 65  |scan the returne|
00000fb0  64 20 64 6f 63 75 6d 65  6e 74 20 28 69 66 20 69  |d document (if i|
00000fc0  74 20 77 61 73 20 48 54  4d 4c 29 20 74 6f 20 70  |t was HTML) to p|
00000fd0  69 63 6b 20 6f 75 74 20  3c 69 6d 67 3e 20 74 61  |ick out <img> ta|
00000fe0  67 73 20 61 6e 64 20 6b  69 63 6b 0a 6f 66 66 20  |gs and kick.off |
00000ff0  72 65 71 75 65 73 74 73  20 66 6f 72 20 74 68 65  |requests for the|
00001000  73 65 20 69 6e 2d 6c 69  6e 65 64 20 69 6d 61 67  |se in-lined imag|
00001010  65 73 20 73 6f 20 74 68  61 74 20 77 68 65 6e 20  |es so that when |
00001020  41 72 63 57 65 62 20 63  6f 6d 65 73 20 74 6f 20  |ArcWeb comes to |
00001030  61 73 6b 20 66 6f 72 0a  74 68 65 6d 2c 20 61 20  |ask for.them, a |
00001040  73 77 69 66 74 65 72 20  72 65 70 6c 79 20 63 61  |swifter reply ca|
00001050  6e 20 62 65 20 6d 61 64  65 2e 20 20 54 68 65 20  |n be made.  The |
00001060  69 6d 70 61 63 74 20 6f  66 20 73 75 63 68 20 61  |impact of such a|
00001070  20 73 79 73 74 65 6d 20  77 6f 75 6c 64 20 62 65  | system would be|
00001080  0a 6d 6f 72 65 20 6e 6f  74 69 63 61 62 6c 65 2c  |.more noticable,|
00001090  20 74 68 65 20 6d 6f 72  65 20 69 6d 61 67 65 73  | the more images|
000010a0  20 74 68 65 72 65 20 61  72 65 20 69 6e 6c 69 6e  | there are inlin|
000010b0  65 64 20 69 6e 20 61 20  64 6f 63 75 6d 65 6e 74  |ed in a document|
000010c0  2e 0a 0a 0a 47 65 6e 65  72 61 6c 0a 3d 3d 3d 3d  |....General.====|
000010d0  3d 3d 3d 0a 0a 20 20 45  61 63 68 20 70 72 6f 74  |===..  Each prot|
000010e0  6f 63 6f 6c 20 63 6f 6e  73 69 73 74 73 20 6f 66  |ocol consists of|
000010f0  20 32 20 6d 65 73 73 61  67 65 73 2c 20 61 20 22  | 2 messages, a "|
00001100  52 65 71 75 65 73 74 22  20 61 6e 64 20 61 20 22  |Request" and a "|
00001110  44 6f 6e 65 22 2e 20 54  68 65 0a 52 65 71 75 65  |Done". The.Reque|
00001120  73 74 20 69 73 20 73 65  6e 74 20 77 69 74 68 20  |st is sent with |
00001130  65 76 65 6e 74 20 63 6f  64 65 20 31 38 20 74 6f  |event code 18 to|
00001140  20 66 6f 72 63 65 20 61  6e 20 61 63 6b 6e 6f 77  | force an acknow|
00001150  6c 65 64 67 65 6d 65 6e  74 2e 20 20 54 68 65 0a  |ledgement.  The.|
00001160  66 65 74 63 68 65 72 2f  72 65 6e 64 65 72 65 72  |fetcher/renderer|
00001170  20 73 68 6f 75 6c 64 20  61 63 6b 6e 6f 77 6c 65  | should acknowle|
00001180  64 67 65 20 77 69 74 68  20 74 68 65 20 44 6f 6e  |dge with the Don|
00001190  65 20 6d 65 73 73 61 67  65 20 74 6f 20 70 72 65  |e message to pre|
000011a0  76 65 6e 74 20 74 68 65  0a 57 69 6d 70 20 72 65  |vent the.Wimp re|
000011b0  74 75 72 6e 69 6e 67 20  74 68 65 20 6d 65 73 73  |turning the mess|
000011c0  61 67 65 20 74 6f 20 74  68 65 20 6f 72 69 67 69  |age to the origi|
000011d0  6e 61 74 6f 72 2e 20 20  53 68 6f 75 6c 64 20 74  |nator.  Should t|
000011e0  68 65 20 66 65 74 63 68  65 72 2f 72 65 6e 64 65  |he fetcher/rende|
000011f0  72 65 72 0a 77 69 73 68  20 74 6f 20 63 61 6c 6c  |rer.wish to call|
00001200  20 57 69 6d 70 5f 50 6f  6c 6c 20 62 65 66 6f 72  | Wimp_Poll befor|
00001210  65 20 69 74 20 69 73 20  72 65 61 64 79 20 74 6f  |e it is ready to|
00001220  20 73 65 6e 64 20 74 68  65 20 44 6f 6e 65 20 72  | send the Done r|
00001230  65 70 6c 79 2c 20 69 74  20 4d 55 53 54 20 61 63  |eply, it MUST ac|
00001240  6b 0a 74 68 65 20 6d 65  73 73 61 67 65 20 28 69  |k.the message (i|
00001250  65 2e 20 66 69 6c 6c 20  69 6e 20 74 68 65 20 72  |e. fill in the r|
00001260  65 66 20 66 69 65 6c 64  73 20 61 6e 64 20 72 65  |ef fields and re|
00001270  70 6c 79 20 77 69 74 68  20 65 76 65 6e 74 20 74  |ply with event t|
00001280  79 70 65 20 31 39 20 74  6f 0a 70 72 65 76 65 6e  |ype 19 to.preven|
00001290  74 20 74 68 65 20 57 69  6d 70 20 72 65 74 75 72  |t the Wimp retur|
000012a0  6e 69 6e 67 20 69 74 20  74 6f 20 74 68 65 20 6f  |ning it to the o|
000012b0  72 69 67 69 6e 61 74 6f  72 29 2c 20 61 6e 64 20  |riginator), and |
000012c0  74 68 65 6e 20 73 65 6e  64 20 74 68 65 20 44 6f  |then send the Do|
000012d0  6e 65 0a 6d 65 73 73 61  67 65 20 77 68 65 6e 20  |ne.message when |
000012e0  69 74 20 69 73 20 72 65  61 64 79 20 28 68 61 76  |it is ready (hav|
000012f0  69 6e 67 20 72 65 6d 65  6d 62 65 72 65 64 20 74  |ing remembered t|
00001300  6f 20 66 69 6c 6c 20 69  6e 20 74 68 65 20 79 6f  |o fill in the yo|
00001310  75 72 5f 72 65 66 20 66  69 65 6c 64 0a 66 72 6f  |ur_ref field.fro|
00001320  6d 20 74 68 65 20 6d 79  5f 72 65 66 20 6f 66 20  |m the my_ref of |
00001330  74 68 65 20 6f 72 69 67  69 6e 61 6c 20 52 65 71  |the original Req|
00001340  75 65 73 74 29 2e 0a 0a  20 20 49 6e 73 74 65 61  |uest)...  Instea|
00001350  64 20 6f 66 20 73 65 6e  64 69 6e 67 20 61 20 57  |d of sending a W|
00001360  69 6d 70 20 61 63 6b 6e  6f 77 6c 65 64 67 65 6d  |imp acknowledgem|
00001370  65 6e 74 20 77 69 74 68  20 65 76 65 6e 74 20 74  |ent with event t|
00001380  79 70 65 20 31 39 20 74  6f 20 70 72 65 76 65 6e  |ype 19 to preven|
00001390  74 0a 64 65 6c 69 76 65  72 79 20 66 61 69 6c 75  |t.delivery failu|
000013a0  72 65 2c 20 61 73 20 6d  65 6e 74 69 6f 6e 65 64  |re, as mentioned|
000013b0  20 61 62 6f 76 65 2c 20  69 74 20 77 6f 75 6c 64  | above, it would|
000013c0  20 62 65 20 6d 75 63 68  20 62 65 74 74 65 72 20  | be much better |
000013d0  74 6f 20 61 63 74 75 61  6c 6c 79 0a 72 65 70 6c  |to actually.repl|
000013e0  79 20 77 69 74 68 20 61  20 4d 65 73 73 61 67 65  |y with a Message|
000013f0  5f 41 72 63 77 65 62 54  72 61 6e 73 66 65 72 53  |_ArcwebTransferS|
00001400  74 61 74 75 73 2c 20 77  68 69 63 68 20 64 6f 75  |tatus, which dou|
00001410  62 6c 65 73 20 62 6f 74  68 20 61 73 20 74 68 65  |bles both as the|
00001420  20 61 63 6b 20 61 6e 64  0a 61 73 20 61 20 75 73  | ack and.as a us|
00001430  65 66 75 6c 20 6d 65 73  73 61 67 65 2e 20 20 46  |eful message.  F|
00001440  75 72 74 68 65 72 20 4d  65 73 73 61 67 65 5f 41  |urther Message_A|
00001450  72 63 77 65 62 54 72 61  6e 73 66 65 72 53 74 61  |rcwebTransferSta|
00001460  74 75 73 20 6d 65 73 73  61 67 65 73 20 63 61 6e  |tus messages can|
00001470  20 62 65 0a 73 65 6e 74  20 70 65 72 69 6f 64 69  | be.sent periodi|
00001480  63 61 6c 6c 79 20 28 75  73 65 20 65 76 65 6e 74  |cally (use event|
00001490  20 74 79 70 65 20 31 37  20 61 6e 64 20 7a 65 72  | type 17 and zer|
000014a0  6f 20 74 68 65 20 72 65  66 20 66 69 65 6c 64 20  |o the ref field |
000014b0  66 6f 72 20 74 68 65 73  65 29 0a 0a 20 20 43 20  |for these)..  C |
000014c0  70 72 6f 67 72 61 6d 6d  65 72 73 20 6d 75 73 74  |programmers must|
000014d0  20 75 73 65 20 72 65 71  75 65 73 74 65 72 2e 68  | use requester.h|
000014e0  20 74 6f 20 64 65 66 69  6e 65 20 74 68 65 20 73  | to define the s|
000014f0  74 72 75 63 74 75 72 65  73 20 75 73 65 64 2e 20  |tructures used. |
00001500  0a 54 68 65 20 74 79 70  65 73 20 68 61 76 65 20  |.The types have |
00001510  62 65 65 6e 20 64 69 76  6f 72 63 65 64 20 66 72  |been divorced fr|
00001520  6f 6d 20 61 6e 79 20 57  69 6d 70 20 6c 69 62 72  |om any Wimp libr|
00001530  61 72 79 2c 20 6f 6e 6c  79 20 63 68 61 72 2c 20  |ary, only char, |
00001540  76 6f 69 64 20 61 6e 64  20 69 6e 74 0a 74 79 70  |void and int.typ|
00001550  65 73 20 68 61 76 65 20  62 65 65 6e 20 75 73 65  |es have been use|
00001560  64 2e 0a 0a 0a 4d 65 73  73 61 67 65 73 0a 3d 3d  |d....Messages.==|
00001570  3d 3d 3d 3d 3d 3d 0a 0a  62 75 66 20 69 73 20 74  |======..buf is t|
00001580  68 65 20 62 75 66 66 65  72 20 72 65 74 75 72 6e  |he buffer return|
00001590  65 64 20 66 72 6f 6d 20  57 69 6d 70 5f 50 6f 6c  |ed from Wimp_Pol|
000015a0  6c 20 28 26 65 2d 3e 64  61 74 61 20 69 6e 20 52  |l (&e->data in R|
000015b0  69 73 63 5f 4f 53 6c 69  62 29 2e 20 20 54 68 65  |isc_OSlib).  The|
000015c0  0a 6f 62 76 69 6f 75 73  20 66 69 65 6c 64 73 20  |.obvious fields |
000015d0  68 61 76 65 20 62 65 65  6e 20 6f 6d 69 74 74 65  |have been omitte|
000015e0  64 20 28 69 65 2e 20 62  75 66 2b 30 20 74 6f 20  |d (ie. buf+0 to |
000015f0  62 75 66 2b 31 32 29 2e  0a 54 68 65 20 27 50 72  |buf+12)..The 'Pr|
00001600  69 76 61 74 65 20 41 72  63 57 65 62 20 68 61 6e  |ivate ArcWeb han|
00001610  64 6c 65 27 20 6d 75 73  74 20 61 6c 77 61 79 73  |dle' must always|
00001620  20 62 65 20 70 72 65 73  65 72 76 65 64 2c 20 61  | be preserved, a|
00001630  73 20 74 68 69 73 20 69  73 20 74 68 65 20 6f 6e  |s this is the on|
00001640  6c 79 0a 77 61 79 20 41  72 63 57 65 62 20 63 61  |ly.way ArcWeb ca|
00001650  6e 20 64 65 6c 69 76 65  72 20 72 65 70 6c 69 65  |n deliver replie|
00001660  73 20 74 6f 20 74 68 65  20 72 65 71 75 65 73 74  |s to the request|
00001670  20 6f 72 69 67 69 6e 61  74 6f 72 2e 0a 0a 54 68  | originator...Th|
00001680  65 20 74 79 70 65 73 20  6f 66 20 65 61 63 68 20  |e types of each |
00001690  65 6e 74 72 79 20 61 72  65 20 67 69 76 65 6e 3a  |entry are given:|
000016a0  20 20 73 74 72 30 20 3d  20 7a 65 72 6f 20 74 65  |  str0 = zero te|
000016b0  72 6d 69 6e 61 74 65 64  20 73 74 72 69 6e 67 2e  |rminated string.|
000016c0  20 20 73 74 72 4e 20 3d  20 0a 73 74 72 69 6e 67  |  strN = .string|
000016d0  20 77 68 6f 73 65 20 6c  65 6e 67 74 68 20 69 73  | whose length is|
000016e0  20 64 65 66 69 6e 65 64  20 65 6c 73 65 77 68 65  | defined elsewhe|
000016f0  72 65 2e 20 20 73 74 72  30 2f 4e 20 3d 20 73 74  |re.  str0/N = st|
00001700  72 69 6e 67 20 7a 65 72  6f 20 74 65 72 6d 69 6e  |ring zero termin|
00001710  61 74 65 64 0a 75 6e 6c  65 73 73 20 69 74 20 69  |ated.unless it i|
00001720  73 20 6d 61 78 69 6d 75  6d 20 6c 65 6e 67 74 68  |s maximum length|
00001730  20 28 64 65 66 69 6e 65  64 20 65 6c 73 65 77 68  | (defined elsewh|
00001740  65 72 65 29 20 69 6e 20  77 68 69 63 68 20 63 61  |ere) in which ca|
00001750  73 65 20 74 68 65 20 74  65 72 6d 69 6e 61 74 6f  |se the terminato|
00001760  72 0a 69 73 20 6d 69 73  73 69 6e 67 3b 20 64 61  |r.is missing; da|
00001770  74 65 35 20 3d 20 35 20  62 79 74 65 20 64 61 74  |te5 = 5 byte dat|
00001780  65 20 73 74 72 69 6e 67  20 28 69 6e 20 55 54 43  |e string (in UTC|
00001790  29 20 61 73 20 72 65 74  75 72 6e 65 64 20 62 79  |) as returned by|
000017a0  20 4f 53 5f 57 6f 72 64  20 31 34 2c 33 0a 0a 54  | OS_Word 14,3..T|
000017b0  68 65 20 62 75 66 66 65  72 73 20 61 72 65 20 61  |he buffers are a|
000017c0  6c 6c 20 64 65 66 69 6e  65 64 20 74 6f 67 65 74  |ll defined toget|
000017d0  68 65 72 20 61 6e 64 20  74 68 65 6e 20 65 78 70  |her and then exp|
000017e0  6c 61 69 6e 65 64 20 62  65 6c 6f 77 2e 20 20 72  |lained below.  r|
000017f0  65 71 75 65 73 74 65 72  2e 68 0a 63 6f 6e 74 61  |equester.h.conta|
00001800  69 6e 73 20 43 20 73 74  72 75 63 74 75 72 65 73  |ins C structures|
00001810  20 66 6f 72 20 74 68 65  73 65 20 6d 65 73 73 61  | for these messa|
00001820  67 65 73 2e 0a 0a 0a 0a  0a 4d 65 73 73 61 67 65  |ges......Message|
00001830  5f 41 72 63 77 65 62 46  65 74 63 68 52 65 71 75  |_ArcwebFetchRequ|
00001840  65 73 74 20 20 20 20 20  20 28 6d 73 67 5f 41 72  |est      (msg_Ar|
00001850  63 77 65 62 5f 5f 62 61  73 65 20 2b 20 20 30 29  |cweb__base +  0)|
00001860  0a 0a 20 20 20 20 20 20  20 20 62 75 66 2b 31 36  |..        buf+16|
00001870  20 20 69 6e 74 20 20 20  20 20 4d 65 73 73 61 67  |  int     Messag|
00001880  65 5f 41 72 63 77 65 62  46 65 74 63 68 52 65 71  |e_ArcwebFetchReq|
00001890  75 65 73 74 20 20 20 20  20 20 28 30 78 34 41 32  |uest      (0x4A2|
000018a0  34 30 29 0a 20 20 20 20  20 20 20 20 62 75 66 2b  |40).        buf+|
000018b0  32 30 20 20 76 6f 69 64  2a 20 20 20 50 72 69 76  |20  void*   Priv|
000018c0  61 74 65 20 41 72 63 57  65 62 20 68 61 6e 64 6c  |ate ArcWeb handl|
000018d0  65 0a 20 20 20 20 20 20  20 20 62 75 66 2b 32 34  |e.        buf+24|
000018e0  20 20 69 6e 74 20 20 20  20 20 46 6c 61 67 73 0a  |  int     Flags.|
000018f0  20 20 20 20 20 20 20 20  62 75 66 2b 32 38 20 20  |        buf+28  |
00001900  69 6e 74 20 20 20 20 20  52 49 53 43 20 4f 53 20  |int     RISC OS |
00001910  66 69 6c 65 20 68 61 6e  64 6c 65 20 28 73 6f 75  |file handle (sou|
00001920  72 63 65 29 0a 0a 45 49  54 48 45 52 20 20 62 75  |rce)..EITHER  bu|
00001930  66 2b 33 32 20 20 73 74  72 30 20 20 20 20 55 6e  |f+32  str0    Un|
00001940  69 66 6f 72 6d 20 52 65  73 6f 75 72 63 65 20 4c  |iform Resource L|
00001950  6f 63 61 74 6f 72 20 28  66 75 6c 6c 79 20 71 75  |ocator (fully qu|
00001960  61 6c 69 66 69 65 64 29  0a 0a 20 20 20 20 4f 52  |alified)..    OR|
00001970  20 20 62 75 66 2b 33 32  20 20 69 6e 74 20 20 20  |  buf+32  int   |
00001980  20 20 52 49 53 43 20 4f  53 20 66 69 6c 65 20 68  |  RISC OS file h|
00001990  61 6e 64 6c 65 20 28 55  52 4c 29 20 28 69 66 20  |andle (URL) (if |
000019a0  66 6c 61 67 73 20 62 69  74 20 32 32 20 73 65 74  |flags bit 22 set|
000019b0  29 0a 0a 0a 4d 65 73 73  61 67 65 5f 41 72 63 77  |)...Message_Arcw|
000019c0  65 62 46 65 74 63 68 44  6f 6e 65 20 20 20 20 20  |ebFetchDone     |
000019d0  20 20 20 20 28 6d 73 67  5f 41 72 63 77 65 62 5f  |    (msg_Arcweb_|
000019e0  5f 62 61 73 65 20 2b 20  20 31 29 0a 0a 20 20 20  |_base +  1)..   |
000019f0  20 20 20 20 20 62 75 66  2b 31 32 20 20 69 6e 74  |     buf+12  int|
00001a00  20 20 20 20 20 6d 79 5f  72 65 66 20 66 72 6f 6d  |     my_ref from|
00001a10  20 4d 65 73 73 61 67 65  5f 41 72 63 77 65 62 46  | Message_ArcwebF|
00001a20  65 74 63 68 52 65 71 75  65 73 74 0a 20 20 20 20  |etchRequest.    |
00001a30  20 20 20 20 62 75 66 2b  31 36 20 20 69 6e 74 20  |    buf+16  int |
00001a40  20 20 20 20 4d 65 73 73  61 67 65 5f 41 72 63 77  |    Message_Arcw|
00001a50  65 62 46 65 74 63 68 44  6f 6e 65 20 20 20 20 20  |ebFetchDone     |
00001a60  20 20 20 20 28 30 78 34  41 32 34 31 29 0a 20 20  |    (0x4A241).  |
00001a70  20 20 20 20 20 20 62 75  66 2b 32 30 20 20 76 6f  |      buf+20  vo|
00001a80  69 64 2a 20 20 20 50 72  69 76 61 74 65 20 41 72  |id*   Private Ar|
00001a90  63 57 65 62 20 68 61 6e  64 6c 65 0a 20 20 20 20  |cWeb handle.    |
00001aa0  20 20 20 20 62 75 66 2b  32 34 20 20 69 6e 74 20  |    buf+24  int |
00001ab0  20 20 20 20 46 6c 61 67  73 0a 0a 20 45 49 54 48  |    Flags.. EITH|
00001ac0  45 52 20 62 75 66 2b 32  38 20 20 73 74 72 30 20  |ER buf+28  str0 |
00001ad0  20 20 20 45 72 72 6f 72  20 6d 65 73 73 61 67 65  |   Error message|
00001ae0  0a 0a 20 20 20 20 20 4f  52 20 62 75 66 2b 32 38  |..     OR buf+28|
00001af0  20 20 69 6e 74 20 20 20  20 20 5a 65 72 6f 3d 74  |  int     Zero=t|
00001b00  68 69 73 20 69 74 65 6d  20 68 61 73 20 61 6e 20  |his item has an |
00001b10  65 78 70 69 72 79 20 64  61 74 65 0a 20 20 20 20  |expiry date.    |
00001b20  20 20 20 20 62 75 66 2b  33 32 20 20 69 6e 74 20  |    buf+32  int |
00001b30  20 20 20 20 4e 6f 6e 2d  7a 65 72 6f 3d 75 73 65  |    Non-zero=use|
00001b40  20 64 65 66 61 75 6c 74  20 65 78 70 69 72 79 20  | default expiry |
00001b50  64 65 6c 61 79 0a 20 20  20 20 20 20 20 20 62 75  |delay.        bu|
00001b60  66 2b 33 36 20 20 64 61  74 65 35 20 20 20 45 78  |f+36  date5   Ex|
00001b70  70 69 72 79 20 64 61 74  65 20 69 6e 20 55 54 43  |piry date in UTC|
00001b80  20 28 69 66 20 62 75 66  2b 33 32 20 7a 65 72 6f  | (if buf+32 zero|
00001b90  2c 20 61 6e 64 20 62 75  66 2b 32 38 20 7a 65 72  |, and buf+28 zer|
00001ba0  6f 29 0a 0a 0a 4d 65 73  73 61 67 65 5f 41 72 63  |o)...Message_Arc|
00001bb0  77 65 62 52 65 6e 64 65  72 52 65 71 75 65 73 74  |webRenderRequest|
00001bc0  20 20 20 20 20 28 6d 73  67 5f 41 72 63 77 65 62  |     (msg_Arcweb|
00001bd0  5f 5f 62 61 73 65 20 2b  20 20 32 29 0a 0a 20 20  |__base +  2)..  |
00001be0  20 20 20 20 20 20 62 75  66 2b 31 36 20 20 69 6e  |      buf+16  in|
00001bf0  74 20 20 20 20 20 4d 65  73 73 61 67 65 5f 41 72  |t     Message_Ar|
00001c00  63 77 65 62 52 65 6e 64  65 72 52 65 71 75 65 73  |cwebRenderReques|
00001c10  74 20 20 20 20 20 28 30  78 34 41 32 34 32 29 0a  |t     (0x4A242).|
00001c20  20 20 20 20 20 20 20 20  62 75 66 2b 32 30 20 20  |        buf+20  |
00001c30  76 6f 69 64 2a 20 20 20  50 72 69 76 61 74 65 20  |void*   Private |
00001c40  41 72 63 57 65 62 20 68  61 6e 64 6c 65 0a 20 20  |ArcWeb handle.  |
00001c50  20 20 20 20 20 20 62 75  66 2b 32 34 20 20 69 6e  |      buf+24  in|
00001c60  74 20 20 20 20 20 66 6c  61 67 73 0a 20 20 20 20  |t     flags.    |
00001c70  20 20 20 20 62 75 66 2b  32 38 20 20 69 6e 74 20  |    buf+28  int |
00001c80  20 20 20 20 52 49 53 43  20 4f 53 20 66 69 6c 65  |    RISC OS file|
00001c90  20 68 61 6e 64 6c 65 20  28 73 6f 75 72 63 65 29  | handle (source)|
00001ca0  0a 20 20 20 20 20 20 20  20 62 75 66 2b 33 32 20  |.        buf+32 |
00001cb0  20 69 6e 74 20 20 20 20  20 52 49 53 43 20 4f 53  | int     RISC OS|
00001cc0  20 66 69 6c 65 20 68 61  6e 64 6c 65 20 28 74 65  | file handle (te|
00001cd0  6d 70 6f 72 61 72 79 29  0a 20 20 20 20 20 20 20  |mporary).       |
00001ce0  20 62 75 66 2b 33 36 20  20 69 6e 74 20 20 20 20  | buf+36  int    |
00001cf0  20 52 49 53 43 20 4f 53  20 66 69 6c 65 20 68 61  | RISC OS file ha|
00001d00  6e 64 6c 65 20 28 64 69  61 67 72 61 6d 29 0a 20  |ndle (diagram). |
00001d10  20 20 20 20 20 20 20 62  75 66 2b 34 30 20 20 69  |       buf+40  i|
00001d20  6e 74 20 20 20 20 20 52  49 53 43 20 4f 53 20 66  |nt     RISC OS f|
00001d30  69 6c 65 20 68 61 6e 64  6c 65 20 28 6c 69 6e 6b  |ile handle (link|
00001d40  29 0a 20 20 20 20 20 20  20 20 62 75 66 2b 34 34  |).        buf+44|
00001d50  20 20 69 6e 74 20 20 20  20 20 73 69 7a 65 20 6f  |  int     size o|
00001d60  66 20 64 61 74 61 20 66  6f 6c 6c 6f 77 69 6e 67  |f data following|
00001d70  0a 20 20 20 20 20 20 20  20 62 75 66 2b 34 38 20  |.        buf+48 |
00001d80  20 2d 2d 2d 20 20 20 20  20 28 63 6f 6e 74 65 6e  | ---     (conten|
00001d90  74 73 20 6f 66 20 62 75  66 2b 34 34 29 20 62 79  |ts of buf+44) by|
00001da0  74 65 73 20 6f 66 20 73  6f 75 72 63 65 20 66 69  |tes of source fi|
00001db0  6c 65 0a 0a 4d 65 73 73  61 67 65 5f 41 72 63 77  |le..Message_Arcw|
00001dc0  65 62 52 65 6e 64 65 72  44 6f 6e 65 20 20 20 20  |ebRenderDone    |
00001dd0  20 20 20 20 28 6d 73 67  5f 41 72 63 77 65 62 5f  |    (msg_Arcweb_|
00001de0  5f 62 61 73 65 20 2b 20  20 33 29 0a 0a 20 20 20  |_base +  3)..   |
00001df0  20 20 20 20 20 62 75 66  2b 31 36 20 20 69 6e 74  |     buf+16  int|
00001e00  20 20 20 20 20 4d 65 73  73 61 67 65 5f 41 72 63  |     Message_Arc|
00001e10  77 65 62 52 65 6e 64 65  72 44 6f 6e 65 20 20 20  |webRenderDone   |
00001e20  20 20 20 20 20 28 30 78  34 41 32 34 33 29 0a 20  |     (0x4A243). |
00001e30  20 20 20 20 20 20 20 62  75 66 2b 32 30 20 20 76  |       buf+20  v|
00001e40  6f 69 64 2a 20 20 20 50  72 69 76 61 74 65 20 41  |oid*   Private A|
00001e50  72 63 57 65 62 20 68 61  6e 64 6c 65 0a 20 20 20  |rcWeb handle.   |
00001e60  20 20 20 20 20 62 75 66  2b 32 34 20 20 69 6e 74  |     buf+24  int|
00001e70  20 20 20 20 20 66 6c 61  67 73 0a 0a 45 49 54 48  |     flags..EITH|
00001e80  45 52 20 20 62 75 66 2b  32 38 20 20 69 6e 74 20  |ER  buf+28  int |
00001e90  20 20 20 20 73 69 7a 65  20 6f 66 20 69 6d 61 67  |    size of imag|
00001ea0  65 20 69 6e 20 78 20 70  69 78 65 6c 73 20 28 30  |e in x pixels (0|
00001eb0  20 69 66 20 4e 2f 41 29  0a 20 20 20 20 20 20 20  | if N/A).       |
00001ec0  20 62 75 66 2b 33 32 20  20 69 6e 74 20 20 20 20  | buf+32  int    |
00001ed0  20 73 69 7a 65 20 6f 66  20 69 6d 61 67 65 20 69  | size of image i|
00001ee0  6e 20 79 20 70 69 78 65  73 6c 20 28 30 20 69 66  |n y pixesl (0 if|
00001ef0  20 4e 2f 41 29 0a 0a 4f  52 20 20 20 20 20 20 62  | N/A)..OR      b|
00001f00  75 66 2b 32 38 20 20 73  74 72 30 20 20 20 20 65  |uf+28  str0    e|
00001f10  72 72 6f 72 20 6d 65 73  73 61 67 65 0a 0a 0a 4d  |rror message...M|
00001f20  65 73 73 61 67 65 5f 41  72 63 77 65 62 50 6f 73  |essage_ArcwebPos|
00001f30  74 52 65 71 75 65 73 74  20 20 20 20 20 20 20 28  |tRequest       (|
00001f40  6d 73 67 5f 41 72 63 77  65 62 5f 5f 62 61 73 65  |msg_Arcweb__base|
00001f50  20 2b 20 20 34 29 0a 0a  20 20 20 20 20 20 20 20  | +  4)..        |
00001f60  62 75 66 2b 31 36 20 20  69 6e 74 20 20 20 20 20  |buf+16  int     |
00001f70  4d 65 73 73 61 67 65 5f  41 72 63 77 65 62 50 6f  |Message_ArcwebPo|
00001f80  73 74 52 65 71 75 65 73  74 20 20 20 20 20 20 20  |stRequest       |
00001f90  28 30 78 34 41 32 34 34  29 0a 20 20 20 20 20 20  |(0x4A244).      |
00001fa0  20 20 62 75 66 2b 32 30  20 20 76 6f 69 64 2a 20  |  buf+20  void* |
00001fb0  20 20 50 72 69 76 61 74  65 20 41 72 63 57 65 62  |  Private ArcWeb|
00001fc0  20 68 61 6e 64 6c 65 0a  20 20 20 20 20 20 20 20  | handle.        |
00001fd0  62 75 66 2b 32 34 20 20  69 6e 74 20 20 20 20 20  |buf+24  int     |
00001fe0  66 6c 61 67 73 0a 20 20  20 20 20 20 20 20 62 75  |flags.        bu|
00001ff0  66 2b 32 38 20 20 69 6e  74 20 20 20 20 20 52 49  |f+28  int     RI|
00002000  53 43 20 4f 53 20 66 69  6c 65 20 68 61 6e 64 6c  |SC OS file handl|
00002010  65 20 28 73 6f 75 72 63  65 29 0a 20 20 20 20 20  |e (source).     |
00002020  20 20 20 62 75 66 2b 33  32 20 20 69 6e 74 20 20  |   buf+32  int  |
00002030  20 20 20 52 49 53 43 20  4f 53 20 66 69 6c 65 20  |   RISC OS file |
00002040  68 61 6e 64 6c 65 20 28  66 6f 72 6d 29 0a 0a 45  |handle (form)..E|
00002050  49 54 48 45 52 20 20 62  75 66 2b 33 36 20 20 73  |ITHER  buf+36  s|
00002060  74 72 30 20 20 20 20 55  6e 69 66 6f 72 6d 20 52  |tr0    Uniform R|
00002070  65 73 6f 75 72 63 65 20  4c 6f 63 61 74 6f 72 20  |esource Locator |
00002080  28 69 66 20 66 6c 61 67  73 20 62 69 74 20 32 32  |(if flags bit 22|
00002090  20 63 6c 65 61 72 29 0a  0a 20 20 20 20 4f 52 20  | clear)..    OR |
000020a0  20 62 75 66 2b 33 36 20  20 69 6e 74 20 20 20 20  | buf+36  int    |
000020b0  20 52 49 53 43 20 4f 53  20 66 69 6c 65 20 68 61  | RISC OS file ha|
000020c0  6e 64 6c 65 20 28 55 52  4c 29 20 28 69 66 20 66  |ndle (URL) (if f|
000020d0  6c 61 67 73 20 62 69 74  20 32 32 20 73 65 74 29  |lags bit 22 set)|
000020e0  0a 0a 4d 65 73 73 61 67  65 5f 41 72 63 77 65 62  |..Message_Arcweb|
000020f0  50 6f 73 74 44 6f 6e 65  20 20 20 20 20 20 20 20  |PostDone        |
00002100  20 20 28 6d 73 67 5f 41  72 63 77 65 62 5f 5f 62  |  (msg_Arcweb__b|
00002110  61 73 65 20 2b 20 20 35  29 0a 0a 20 20 20 20 20  |ase +  5)..     |
00002120  20 20 20 62 75 66 2b 31  32 20 20 69 6e 74 20 20  |   buf+12  int  |
00002130  20 20 20 6d 79 5f 72 65  66 20 66 72 6f 6d 20 4d  |   my_ref from M|
00002140  65 73 73 61 67 65 5f 41  72 63 77 65 62 50 6f 73  |essage_ArcwebPos|
00002150  74 52 65 71 75 65 73 74  0a 20 20 20 20 20 20 20  |tRequest.       |
00002160  20 62 75 66 2b 31 36 20  20 69 6e 74 20 20 20 20  | buf+16  int    |
00002170  20 4d 65 73 73 61 67 65  5f 41 72 63 77 65 62 50  | Message_ArcwebP|
00002180  6f 73 74 44 6f 6e 65 20  20 20 20 20 20 20 20 20  |ostDone         |
00002190  20 28 30 78 34 41 32 34  35 29 0a 20 20 20 20 20  | (0x4A245).     |
000021a0  20 20 20 62 75 66 2b 32  30 20 20 76 6f 69 64 2a  |   buf+20  void*|
000021b0  20 20 20 50 72 69 76 61  74 65 20 41 72 63 57 65  |   Private ArcWe|
000021c0  62 20 68 61 6e 64 6c 65  0a 20 20 20 20 20 20 20  |b handle.       |
000021d0  20 62 75 66 2b 32 34 20  20 69 6e 74 20 20 20 20  | buf+24  int    |
000021e0  20 66 6c 61 67 73 0a 0a  20 45 49 54 48 45 52 20  | flags.. EITHER |
000021f0  62 75 66 2b 32 38 20 20  73 74 72 30 20 20 20 20  |buf+28  str0    |
00002200  45 72 72 6f 72 20 6d 65  73 73 61 67 65 0a 0a 20  |Error message.. |
00002210  20 20 20 20 4f 52 20 62  75 66 2b 32 38 20 20 69  |    OR buf+28  i|
00002220  6e 74 20 20 20 20 20 5a  65 72 6f 3d 74 68 69 73  |nt     Zero=this|
00002230  20 69 74 65 6d 20 68 61  73 20 61 6e 20 65 78 70  | item has an exp|
00002240  69 72 79 20 64 61 74 65  0a 20 20 20 20 20 20 20  |iry date.       |
00002250  20 62 75 66 2b 33 32 20  20 69 6e 74 20 20 20 20  | buf+32  int    |
00002260  20 4e 6f 6e 2d 7a 65 72  6f 3d 75 73 65 20 64 65  | Non-zero=use de|
00002270  66 61 75 6c 74 20 65 78  70 69 72 79 20 64 65 6c  |fault expiry del|
00002280  61 79 0a 20 20 20 20 20  20 20 20 62 75 66 2b 33  |ay.        buf+3|
00002290  36 20 20 64 61 74 65 35  20 20 20 45 78 70 69 72  |6  date5   Expir|
000022a0  79 20 64 61 74 65 20 69  6e 20 55 54 43 20 28 69  |y date in UTC (i|
000022b0  66 20 62 75 66 2b 33 32  20 7a 65 72 6f 2c 20 61  |f buf+32 zero, a|
000022c0  6e 64 20 62 75 66 2b 32  38 20 7a 65 72 6f 29 0a  |nd buf+28 zero).|
000022d0  0a 4d 65 73 73 61 67 65  5f 41 72 63 77 65 62 45  |.Message_ArcwebE|
000022e0  4d 61 69 6c 52 65 71 75  65 73 74 20 20 20 20 20  |MailRequest     |
000022f0  20 28 6d 73 67 5f 41 72  63 77 65 62 5f 5f 62 61  | (msg_Arcweb__ba|
00002300  73 65 20 2b 20 20 36 29  0a 0a 20 20 20 20 20 20  |se +  6)..      |
00002310  20 20 62 75 66 2b 31 36  20 20 69 6e 74 20 20 20  |  buf+16  int   |
00002320  20 20 4d 65 73 73 61 67  65 5f 41 72 63 77 65 62  |  Message_Arcweb|
00002330  45 4d 61 69 6c 52 65 71  75 65 73 74 20 20 20 20  |EMailRequest    |
00002340  20 20 28 30 78 34 41 32  34 36 29 0a 20 20 20 20  |  (0x4A246).    |
00002350  20 20 20 20 62 75 66 2b  32 30 20 20 76 6f 69 64  |    buf+20  void|
00002360  2a 20 20 20 50 72 69 76  61 74 65 20 41 72 63 57  |*   Private ArcW|
00002370  65 62 20 68 61 6e 64 6c  65 0a 20 20 20 20 20 20  |eb handle.      |
00002380  20 20 62 75 66 2b 32 34  20 20 69 6e 74 20 20 20  |  buf+24  int   |
00002390  20 20 66 6c 61 67 73 0a  20 20 20 20 20 20 20 20  |  flags.        |
000023a0  62 75 66 2b 32 38 20 20  69 6e 74 20 20 20 20 20  |buf+28  int     |
000023b0  52 49 53 43 20 4f 53 20  66 69 6c 65 20 68 61 6e  |RISC OS file han|
000023c0  64 6c 65 20 28 66 6f 72  6d 20 66 69 6c 65 20 63  |dle (form file c|
000023d0  6f 6e 74 61 69 6e 69 6e  67 20 65 2d 6d 61 69 6c  |ontaining e-mail|
000023e0  29 0a 0a 4d 65 73 73 61  67 65 5f 41 72 63 77 65  |)..Message_Arcwe|
000023f0  62 45 4d 61 69 6c 44 6f  6e 65 20 20 20 20 20 20  |bEMailDone      |
00002400  20 20 20 28 6d 73 67 5f  41 72 63 77 65 62 5f 5f  |   (msg_Arcweb__|
00002410  62 61 73 65 20 2b 20 20  37 29 0a 0a 20 20 20 20  |base +  7)..    |
00002420  20 20 20 20 62 75 66 2b  31 32 20 20 69 6e 74 20  |    buf+12  int |
00002430  20 20 20 20 6d 79 5f 72  65 66 20 66 72 6f 6d 20  |    my_ref from |
00002440  4d 65 73 73 61 67 65 5f  41 72 63 77 65 62 45 4d  |Message_ArcwebEM|
00002450  61 69 6c 52 65 71 75 65  73 74 0a 20 20 20 20 20  |ailRequest.     |
00002460  20 20 20 62 75 66 2b 31  36 20 20 69 6e 74 20 20  |   buf+16  int  |
00002470  20 20 20 4d 65 73 73 61  67 65 5f 41 72 63 77 65  |   Message_Arcwe|
00002480  62 45 4d 61 69 6c 44 6f  6e 65 20 20 20 20 20 20  |bEMailDone      |
00002490  20 20 20 28 30 78 34 41  32 34 37 29 0a 20 20 20  |   (0x4A247).   |
000024a0  20 20 20 20 20 62 75 66  2b 32 30 20 20 76 6f 69  |     buf+20  voi|
000024b0  64 2a 20 20 20 50 72 69  76 61 74 65 20 41 72 63  |d*   Private Arc|
000024c0  57 65 62 20 68 61 6e 64  6c 65 0a 20 20 20 20 20  |Web handle.     |
000024d0  20 20 20 62 75 66 2b 32  34 20 20 69 6e 74 20 20  |   buf+24  int  |
000024e0  20 20 20 66 6c 61 67 73  0a 0a 0a 4d 65 73 73 61  |   flags...Messa|
000024f0  67 65 5f 41 72 63 77 65  62 51 75 69 74 20 20 20  |ge_ArcwebQuit   |
00002500  20 20 20 20 20 20 20 20  20 20 20 28 6d 73 67 5f  |           (msg_|
00002510  41 72 63 77 65 62 5f 5f  62 61 73 65 20 2b 20 33  |Arcweb__base + 3|
00002520  32 29 0a 0a 20 20 20 20  20 20 20 20 62 75 66 2b  |2)..        buf+|
00002530  31 36 20 20 69 6e 74 20  20 20 20 20 4d 65 73 73  |16  int     Mess|
00002540  61 67 65 5f 41 72 63 77  65 62 51 75 69 74 20 20  |age_ArcwebQuit  |
00002550  20 20 20 20 20 20 20 20  20 20 20 20 28 30 78 34  |            (0x4|
00002560  41 32 36 30 29 0a 0a 0a  4d 65 73 73 61 67 65 5f  |A260)...Message_|
00002570  41 72 63 77 65 62 45 78  70 69 72 65 20 20 20 20  |ArcwebExpire    |
00002580  20 20 20 20 20 20 20 20  28 6d 73 67 5f 41 72 63  |        (msg_Arc|
00002590  77 65 62 5f 5f 62 61 73  65 20 2b 20 33 33 29 0a  |web__base + 33).|
000025a0  0a 20 20 20 20 20 20 20  20 62 75 66 2b 31 36 20  |.        buf+16 |
000025b0  20 69 6e 74 20 20 20 20  20 4d 65 73 73 61 67 65  | int     Message|
000025c0  5f 41 72 63 77 65 62 45  78 70 69 72 65 20 20 20  |_ArcwebExpire   |
000025d0  20 20 20 20 20 20 20 20  20 28 30 78 34 41 32 36  |         (0x4A26|
000025e0  31 29 0a 20 20 20 20 20  20 20 20 62 75 66 2b 32  |1).        buf+2|
000025f0  30 20 20 76 6f 69 64 2a  20 20 20 50 72 69 76 61  |0  void*   Priva|
00002600  74 65 20 41 72 63 57 65  62 20 68 61 6e 64 6c 65  |te ArcWeb handle|
00002610  0a 20 20 20 20 20 20 20  20 62 75 66 2b 32 34 20  |.        buf+24 |
00002620  20 69 6e 74 20 20 20 20  20 66 6c 61 67 73 0a 20  | int     flags. |
00002630  20 20 20 20 20 20 20 62  75 66 2b 32 38 20 20 69  |       buf+28  i|
00002640  6e 74 20 20 20 20 20 52  49 53 43 20 4f 53 20 66  |nt     RISC OS f|
00002650  69 6c 65 20 68 61 6e 64  6c 65 20 28 73 6f 75 72  |ile handle (sour|
00002660  63 65 29 0a 0a 4d 65 73  73 61 67 65 5f 41 72 63  |ce)..Message_Arc|
00002670  77 65 62 41 62 6f 72 74  52 65 71 75 65 73 74 20  |webAbortRequest |
00002680  20 20 20 20 20 28 6d 73  67 5f 41 72 63 77 65 62  |     (msg_Arcweb|
00002690  5f 5f 62 61 73 65 20 2b  20 33 34 29 0a 0a 20 20  |__base + 34)..  |
000026a0  20 20 20 20 20 20 62 75  66 2b 31 36 20 20 69 6e  |      buf+16  in|
000026b0  74 20 20 20 20 20 4d 65  73 73 61 67 65 5f 41 72  |t     Message_Ar|
000026c0  63 77 65 62 41 62 6f 72  74 52 65 71 75 65 73 74  |cwebAbortRequest|
000026d0  20 20 20 20 20 20 28 30  78 34 41 32 36 32 29 0a  |      (0x4A262).|
000026e0  20 20 20 20 20 20 20 20  62 75 66 2b 32 30 20 20  |        buf+20  |
000026f0  76 6f 69 64 2a 20 20 20  50 72 69 76 61 74 65 20  |void*   Private |
00002700  41 72 63 57 65 62 20 68  61 6e 64 6c 65 0a 20 20  |ArcWeb handle.  |
00002710  20 20 20 20 20 20 62 75  66 2b 32 34 20 20 69 6e  |      buf+24  in|
00002720  74 20 20 20 20 20 72 65  73 65 72 76 65 64 0a 20  |t     reserved. |
00002730  20 20 20 20 20 20 20 62  75 66 2b 32 38 20 20 73  |       buf+28  s|
00002740  74 72 30 20 20 20 20 72  65 61 73 6f 6e 20 66 6f  |tr0    reason fo|
00002750  72 20 61 62 6f 72 74 20  28 63 6f 75 6c 64 20 6c  |r abort (could l|
00002760  6f 67 20 74 68 69 73 29  0a 0a 4d 65 73 73 61 67  |og this)..Messag|
00002770  65 5f 41 72 63 77 65 62  54 72 61 6e 73 66 65 72  |e_ArcwebTransfer|
00002780  53 74 61 74 75 73 20 20  20 20 28 6d 73 67 5f 41  |Status    (msg_A|
00002790  72 63 77 65 62 5f 5f 62  61 73 65 20 2b 20 33 35  |rcweb__base + 35|
000027a0  29 0a 0a 20 20 20 20 20  20 20 20 62 75 66 2b 31  |)..        buf+1|
000027b0  36 20 20 69 6e 74 20 20  20 20 20 4d 65 73 73 61  |6  int     Messa|
000027c0  67 65 5f 41 72 63 77 65  62 54 72 61 6e 73 66 65  |ge_ArcwebTransfe|
000027d0  72 53 74 61 74 75 73 20  20 20 20 28 30 78 34 41  |rStatus    (0x4A|
000027e0  32 36 33 29 0a 20 20 20  20 20 20 20 20 62 75 66  |263).        buf|
000027f0  2b 32 30 20 20 76 6f 69  64 2a 20 20 20 50 72 69  |+20  void*   Pri|
00002800  76 61 74 65 20 41 72 63  57 65 62 20 68 61 6e 64  |vate ArcWeb hand|
00002810  6c 65 20 66 72 6f 6d 20  2e 2e 52 65 71 75 65 73  |le from ..Reques|
00002820  74 0a 20 20 20 20 20 20  20 20 62 75 66 2b 32 34  |t.        buf+24|
00002830  20 20 69 6e 74 20 20 20  20 20 72 65 73 65 72 76  |  int     reserv|
00002840  65 64 2c 20 6d 75 73 74  20 62 65 20 7a 65 72 6f  |ed, must be zero|
00002850  0a 20 20 20 20 20 20 20  20 62 75 66 2b 32 38 20  |.        buf+28 |
00002860  20 69 6e 74 20 20 20 20  20 73 74 61 74 75 73 20  | int     status |
00002870  66 6c 61 67 73 0a 20 20  20 20 20 20 20 20 62 75  |flags.        bu|
00002880  66 2b 33 32 20 20 69 6e  74 20 20 20 20 20 74 6f  |f+32  int     to|
00002890  74 61 6c 20 73 69 7a 65  20 6f 66 20 64 61 74 61  |tal size of data|
000028a0  20 74 6f 20 62 65 20 74  72 61 6e 73 6d 69 74 74  | to be transmitt|
000028b0  65 64 0a 20 20 20 20 20  20 20 20 62 75 66 2b 33  |ed.        buf+3|
000028c0  36 20 20 69 6e 74 20 20  20 20 20 73 69 7a 65 20  |6  int     size |
000028d0  6f 66 20 64 61 74 61 20  74 72 61 6e 73 6d 69 74  |of data transmit|
000028e0  74 65 64 20 73 6f 20 66  61 72 0a 20 20 20 20 20  |ted so far.     |
000028f0  20 20 20 62 75 66 2b 34  30 20 20 69 6e 74 20 20  |   buf+40  int  |
00002900  20 20 20 74 6f 74 61 6c  20 73 69 7a 65 20 6f 66  |   total size of|
00002910  20 64 61 74 61 20 74 6f  20 62 65 20 72 65 63 65  | data to be rece|
00002920  69 76 65 64 20 28 69 66  20 6b 6e 6f 77 6e 29 0a  |ived (if known).|
00002930  20 20 20 20 20 20 20 20  62 75 66 2b 34 34 20 20  |        buf+44  |
00002940  69 6e 74 20 20 20 20 20  73 69 7a 65 20 6f 66 20  |int     size of |
00002950  64 61 74 61 20 72 65 63  65 69 76 65 64 20 73 6f  |data received so|
00002960  20 66 61 72 0a 20 20 20  20 20 20 20 20 62 75 66  | far.        buf|
00002970  2b 34 38 20 20 73 74 72  30 20 20 20 20 63 75 72  |+48  str0    cur|
00002980  72 65 6e 74 20 73 74 61  74 75 73 20 6f 66 20 63  |rent status of c|
00002990  6f 6d 6d 75 6e 69 63 61  74 69 6f 6e 0a 0a 4d 65  |ommunication..Me|
000029a0  73 73 61 67 65 5f 41 72  63 77 65 62 43 6f 6e 66  |ssage_ArcwebConf|
000029b0  69 67 75 72 65 20 20 20  20 20 20 20 20 20 28 6d  |igure         (m|
000029c0  73 67 5f 41 72 63 77 65  62 5f 5f 62 61 73 65 20  |sg_Arcweb__base |
000029d0  2b 20 33 36 29 0a 0a 20  20 20 20 20 20 20 20 62  |+ 36)..        b|
000029e0  75 66 2b 31 36 20 20 69  6e 74 20 20 20 20 20 4d  |uf+16  int     M|
000029f0  65 73 73 61 67 65 5f 41  72 63 77 65 62 43 6f 6e  |essage_ArcwebCon|
00002a00  66 69 67 75 72 65 20 20  20 20 20 20 20 20 20 28  |figure         (|
00002a10  30 78 34 41 32 36 34 29  0a 20 20 20 20 20 20 20  |0x4A264).       |
00002a20  20 62 75 66 2b 32 30 20  20 76 6f 69 64 2a 20 20  | buf+20  void*  |
00002a30  20 55 6e 75 73 65 64 0a  20 20 20 20 20 20 20 20  | Unused.        |
00002a40  62 75 66 2b 32 34 20 20  69 6e 74 20 20 20 20 20  |buf+24  int     |
00002a50  55 6e 75 73 65 64 0a 20  20 20 20 20 20 20 20 62  |Unused.        b|
00002a60  75 66 2b 32 38 20 20 73  74 72 30 20 20 20 20 41  |uf+28  str0    A|
00002a70  70 70 6c 69 63 61 74 69  6f 6e 20 74 6f 20 62 65  |pplication to be|
00002a80  20 63 6f 6e 66 69 67 75  72 65 64 0a 20 20 20 20  | configured.    |
00002a90  20 20 20 20 0a 4d 65 73  73 61 67 65 5f 41 72 63  |    .Message_Arc|
00002aa0  77 65 62 45 78 74 65 72  6e 61 6c 4c 61 75 6e 63  |webExternalLaunc|
00002ab0  68 20 20 20 20 28 6d 73  67 5f 41 72 63 77 65 62  |h    (msg_Arcweb|
00002ac0  5f 5f 62 61 73 65 20 2b  20 33 37 29 0a 0a 20 20  |__base + 37)..  |
00002ad0  20 20 20 20 20 20 62 75  66 2b 31 36 20 20 69 6e  |      buf+16  in|
00002ae0  74 20 20 20 20 20 4d 65  73 73 61 67 65 5f 41 72  |t     Message_Ar|
00002af0  63 77 65 62 45 78 74 65  72 6e 61 6c 4c 61 75 6e  |cwebExternalLaun|
00002b00  63 68 20 20 20 20 28 30  78 34 41 32 36 35 29 0a  |ch    (0x4A265).|
00002b10  20 20 20 20 20 20 20 20  62 75 66 2b 32 30 20 20  |        buf+20  |
00002b20  76 6f 69 64 2a 20 20 20  53 65 6e 64 65 72 27 73  |void*   Sender's|
00002b30  20 70 72 69 76 61 74 65  20 68 61 6e 64 6c 65 20  | private handle |
00002b40  28 6e 6f 74 20 41 72 63  57 65 62 27 73 29 0a 20  |(not ArcWeb's). |
00002b50  20 20 20 20 20 20 20 62  75 66 2b 32 34 20 20 69  |       buf+24  i|
00002b60  6e 74 20 20 20 20 20 46  6c 61 67 73 20 28 73 65  |nt     Flags (se|
00002b70  65 20 6e 6f 74 65 73 20  6f 6e 20 74 68 69 73 20  |e notes on this |
00002b80  4d 65 73 73 61 67 65 29  0a 20 20 20 20 20 20 20  |Message).       |
00002b90  20 62 75 66 2b 32 38 20  20 69 6e 74 20 20 20 20  | buf+28  int    |
00002ba0  20 52 49 53 43 20 4f 53  20 66 69 6c 65 20 68 61  | RISC OS file ha|
00002bb0  6e 64 6c 65 20 28 55 52  4c 29 0a 0a 4d 65 73 73  |ndle (URL)..Mess|
00002bc0  61 67 65 5f 41 72 63 77  65 62 4c 61 75 6e 63 68  |age_ArcwebLaunch|
00002bd0  44 6f 6e 65 20 20 20 20  20 20 20 20 28 6d 73 67  |Done        (msg|
00002be0  5f 41 72 63 77 65 62 5f  5f 62 61 73 65 20 2b 20  |_Arcweb__base + |
00002bf0  33 38 29 0a 0a 20 20 20  20 20 20 20 20 62 75 66  |38)..        buf|
00002c00  2b 31 32 20 20 69 6e 74  20 20 20 20 20 6d 79 5f  |+12  int     my_|
00002c10  72 65 66 20 66 72 6f 6d  20 4d 65 73 73 61 67 65  |ref from Message|
00002c20  5f 41 72 63 77 65 62 45  78 74 65 72 6e 61 6c 4c  |_ArcwebExternalL|
00002c30  61 75 6e 63 68 0a 20 20  20 20 20 20 20 20 62 75  |aunch.        bu|
00002c40  66 2b 31 36 20 20 69 6e  74 20 20 20 20 20 4d 65  |f+16  int     Me|
00002c50  73 73 61 67 65 5f 41 72  63 77 65 62 4c 61 75 6e  |ssage_ArcwebLaun|
00002c60  63 68 44 6f 6e 65 20 20  20 20 20 20 20 20 28 30  |chDone        (0|
00002c70  78 34 41 32 36 35 0a 20  20 20 20 20 20 20 20 62  |x4A265.        b|
00002c80  75 66 2b 32 30 20 20 76  6f 69 64 2a 20 20 20 50  |uf+20  void*   P|
00002c90  72 65 73 65 72 76 65 64  20 66 72 6f 6d 20 74 68  |reserved from th|
00002ca0  65 20 4c 61 75 6e 63 68  20 6d 65 73 73 61 67 65  |e Launch message|
00002cb0  0a 20 20 20 20 20 20 20  20 62 75 66 2b 32 34 20  |.        buf+24 |
00002cc0  20 69 6e 74 20 20 20 20  20 46 6c 61 67 73 20 28  | int     Flags (|
00002cd0  77 69 6c 6c 20 68 61 76  65 20 62 69 74 20 33 31  |will have bit 31|
00002ce0  20 73 65 74 20 6f 6e 20  61 6e 20 65 72 72 6f 72  | set on an error|
00002cf0  29 0a 20 20 20 20 20 20  20 20 62 75 66 2b 32 38  |).        buf+28|
00002d00  20 20 73 74 72 30 20 20  20 20 45 72 72 6f 72 20  |  str0    Error |
00002d10  6d 65 73 73 61 67 65 0a  0a 0a 4f 77 6e 65 72 73  |message...Owners|
00002d20  68 69 70 20 6f 66 20 46  69 6c 65 20 48 61 6e 64  |hip of File Hand|
00002d30  6c 65 73 0a 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |les.============|
00002d40  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 0a 0a 53  |=============..S|
00002d50  6f 6d 65 20 70 65 6f 70  6c 65 20 68 61 76 65 20  |ome people have |
00002d60  65 78 70 72 65 73 73 65  64 20 63 6f 6e 63 65 72  |expressed concer|
00002d70  6e 20 61 74 20 74 68 65  20 61 70 70 61 72 65 6e  |n at the apparen|
00002d80  74 20 63 61 70 61 62 69  6c 69 74 79 20 74 6f 20  |t capability to |
00002d90  6c 6f 73 65 20 74 72 61  63 6b 0a 6f 66 20 77 68  |lose track.of wh|
00002da0  69 63 68 20 74 61 73 6b  20 27 6f 77 6e 73 27 20  |ich task 'owns' |
00002db0  74 68 65 20 52 49 53 43  20 4f 53 20 66 69 6c 65  |the RISC OS file|
00002dc0  20 68 61 6e 64 6c 65 73  20 70 61 73 73 65 64 20  | handles passed |
00002dd0  69 6e 20 74 68 65 20 6d  65 73 73 61 67 65 73 2e  |in the messages.|
00002de0  20 20 54 68 65 72 65 0a  69 73 20 6e 65 76 65 72  |  There.is never|
00002df0  20 61 6e 79 20 61 6d 62  69 67 75 69 74 79 2c 20  | any ambiguity, |
00002e00  61 6e 64 20 74 68 69 73  20 73 65 63 74 69 6f 6e  |and this section|
00002e10  20 77 69 6c 6c 20 63 6c  61 72 69 66 79 20 74 68  | will clarify th|
00002e20  69 73 2e 0a 0a 54 68 65  20 74 61 73 6b 20 77 68  |is...The task wh|
00002e30  69 63 68 20 73 65 6e 64  73 20 74 68 65 20 46 65  |ich sends the Fe|
00002e40  74 63 68 52 65 71 75 65  73 74 2f 52 65 6e 64 65  |tchRequest/Rende|
00002e50  72 52 65 71 75 65 73 74  2f 50 6f 73 74 52 65 71  |rRequest/PostReq|
00002e60  75 65 73 74 20 6d 65 73  73 61 67 65 20 77 69 6c  |uest message wil|
00002e70  6c 0a 68 61 76 65 20 63  61 6c 6c 65 64 20 4f 53  |l.have called OS|
00002e80  5f 46 69 6e 64 20 74 6f  20 6f 70 65 6e 20 74 68  |_Find to open th|
00002e90  65 20 66 69 6c 65 2c 20  61 6e 64 20 74 68 69 73  |e file, and this|
00002ea0  20 74 61 73 6b 20 28 6e  6f 72 6d 61 6c 6c 79 20  | task (normally |
00002eb0  41 72 63 57 65 62 20 69  74 73 65 6c 66 29 0a 6f  |ArcWeb itself).o|
00002ec0  77 6e 73 20 74 68 65 20  72 65 74 75 72 6e 65 64  |wns the returned|
00002ed0  20 66 69 6c 65 20 68 61  6e 64 6c 65 20 55 4e 54  | file handle UNT|
00002ee0  49 4c 20 69 74 20 63 61  6c 6c 73 20 57 69 6d 70  |IL it calls Wimp|
00002ef0  5f 50 6f 6c 6c 2e 20 20  41 74 20 74 68 69 73 20  |_Poll.  At this |
00002f00  70 6f 69 6e 74 2c 20 74  68 65 0a 57 69 6d 70 20  |point, the.Wimp |
00002f10  77 69 6c 6c 20 73 74 61  72 74 20 64 65 6c 69 76  |will start deliv|
00002f20  65 72 69 6e 67 20 74 68  65 20 52 65 71 75 65 73  |ering the Reques|
00002f30  74 20 6d 65 73 73 61 67  65 20 74 6f 20 65 61 63  |t message to eac|
00002f40  68 20 74 61 73 6b 20 69  6e 20 74 75 72 6e 2e 20  |h task in turn. |
00002f50  20 57 68 69 6c 65 0a 74  68 65 20 57 69 6d 70 20  | While.the Wimp |
00002f60  69 73 20 64 6f 69 6e 67  20 74 68 69 73 20 74 68  |is doing this th|
00002f70  65 20 66 69 6c 65 20 68  61 6e 64 6c 65 20 69 73  |e file handle is|
00002f80  20 69 6e 20 6c 69 6d 62  6f 20 28 69 6e 20 65 66  | in limbo (in ef|
00002f90  66 65 63 74 2c 20 69 74  20 69 73 0a 27 6c 6f 73  |fect, it is.'los|
00002fa0  74 27 29 2e 0a 0a 54 68  65 72 65 20 61 72 65 20  |t')...There are |
00002fb0  74 77 6f 20 70 6f 73 73  69 62 6c 65 20 63 6f 6e  |two possible con|
00002fc0  74 69 6e 75 61 74 69 6f  6e 73 3a 0a 0a 69 29 20  |tinuations:..i) |
00002fd0  41 73 20 73 6f 6f 6e 20  61 73 20 61 20 74 61 73  |As soon as a tas|
00002fe0  6b 20 72 65 63 65 69 76  65 73 20 74 68 65 20 52  |k receives the R|
00002ff0  65 71 75 65 73 74 20 6d  65 73 73 61 67 65 20 61  |equest message a|
00003000  6e 64 20 64 65 63 69 64  65 73 20 74 68 61 74 20  |nd decides that |
00003010  69 74 20 77 69 73 68 65  73 0a 74 6f 20 72 65 70  |it wishes.to rep|
00003020  6c 79 20 74 6f 20 74 68  65 20 52 65 71 75 65 73  |ly to the Reques|
00003030  74 20 6d 65 73 73 61 67  65 2c 20 69 74 20 77 69  |t message, it wi|
00003040  6c 6c 20 65 69 74 68 65  72 20 73 65 6e 64 20 74  |ll either send t|
00003050  68 65 20 63 6f 72 72 65  73 70 6f 6e 64 69 6e 67  |he corresponding|
00003060  20 44 6f 6e 65 0a 6d 65  73 73 61 67 65 2c 20 4f  | Done.message, O|
00003070  52 20 6a 75 73 74 20 61  63 6b 20 69 74 20 77 69  |R just ack it wi|
00003080  74 68 20 74 68 65 20 69  6e 74 65 6e 74 69 6f 6e  |th the intention|
00003090  20 6f 6e 20 72 65 70 6c  79 69 6e 67 20 70 72 6f  | on replying pro|
000030a0  70 65 72 6c 79 20 6c 61  74 65 72 2e 20 20 49 74  |perly later.  It|
000030b0  0a 69 73 20 75 70 6f 6e  20 74 68 65 20 73 65 6e  |.is upon the sen|
000030c0  64 69 6e 67 20 6f 66 20  74 68 69 73 20 44 6f 6e  |ding of this Don|
000030d0  65 20 6d 65 73 73 61 67  65 2c 20 6f 72 20 41 63  |e message, or Ac|
000030e0  6b 2c 20 28 74 68 65 20  63 61 6c 6c 20 74 6f 0a  |k, (the call to.|
000030f0  57 69 6d 70 5f 53 65 6e  64 4d 65 73 73 61 67 65  |Wimp_SendMessage|
00003100  29 20 74 68 61 74 20 74  68 65 20 74 61 73 6b 20  |) that the task |
00003110  62 65 63 6f 6d 65 73 20  74 68 65 20 6f 77 6e 65  |becomes the owne|
00003120  72 20 6f 66 20 74 68 65  20 66 69 6c 65 20 68 61  |r of the file ha|
00003130  6e 64 6c 65 2c 20 61 6e  64 0a 68 65 6e 63 65 20  |ndle, and.hence |
00003140  72 65 73 70 6f 6e 73 69  62 6c 65 20 66 6f 72 20  |responsible for |
00003150  63 6c 6f 73 69 6e 67 20  74 68 65 20 66 69 6c 65  |closing the file|
00003160  20 68 61 6e 64 6c 65 20  77 68 65 6e 20 69 74 20  | handle when it |
00003170  69 73 20 66 69 6e 69 73  68 65 64 20 77 69 74 68  |is finished with|
00003180  2e 0a 0a 69 69 29 20 54  68 65 20 6f 74 68 65 72  |...ii) The other|
00003190  20 73 63 65 6e 61 72 69  6f 20 69 73 20 77 68 65  | scenario is whe|
000031a0  6e 20 2a 6e 6f 2a 20 74  61 73 6b 20 77 61 6e 74  |n *no* task want|
000031b0  73 20 74 6f 20 72 65 70  6c 79 20 74 6f 20 74 68  |s to reply to th|
000031c0  65 20 52 65 71 75 65 73  74 0a 6d 65 73 73 61 67  |e Request.messag|
000031d0  65 2e 20 49 6e 20 74 68  69 73 20 63 61 73 65 2c  |e. In this case,|
000031e0  20 74 68 65 20 57 69 6d  70 20 77 69 6c 6c 20 64  | the Wimp will d|
000031f0  65 6c 69 76 65 72 20 61  6e 20 65 76 65 6e 74 20  |eliver an event |
00003200  63 6f 64 65 20 31 39 20  63 6f 70 79 20 6f 66 20  |code 19 copy of |
00003210  74 68 65 0a 6d 65 73 73  61 67 65 20 74 6f 20 74  |the.message to t|
00003220  68 65 20 6f 72 69 67 69  6e 61 74 6f 72 2e 20 20  |he originator.  |
00003230  54 68 65 20 6f 72 69 67  69 6e 61 74 6f 72 20 6e  |The originator n|
00003240  6f 77 20 72 65 67 61 69  6e 73 20 6f 77 6e 65 72  |ow regains owner|
00003250  73 68 69 70 20 6f 66 20  74 68 65 20 66 69 6c 65  |ship of the file|
00003260  0a 68 61 6e 64 6c 65 20  61 6e 64 20 69 73 20 72  |.handle and is r|
00003270  65 73 70 6f 6e 73 69 62  6c 65 20 66 6f 72 20 69  |esponsible for i|
00003280  74 20 28 41 72 63 57 65  62 20 63 6c 6f 73 65 73  |t (ArcWeb closes|
00003290  20 74 68 65 20 66 69 6c  65 28 73 29 20 61 6e 64  | the file(s) and|
000032a0  20 67 65 6e 65 72 61 74  65 73 0a 61 6e 20 65 72  | generates.an er|
000032b0  72 6f 72 20 69 66 20 74  68 69 73 20 69 73 20 73  |ror if this is s|
000032c0  65 6e 73 69 62 6c 65 29  2e 0a 0a 49 6e 20 67 65  |ensible)...In ge|
000032d0  6e 65 72 61 6c 2c 20 66  6f 72 20 61 6e 79 20 74  |neral, for any t|
000032e0  61 73 6b 2c 20 69 66 20  69 74 20 72 65 63 65 69  |ask, if it recei|
000032f0  76 65 73 20 61 20 52 65  71 75 65 73 74 20 6d 65  |ves a Request me|
00003300  73 73 61 67 65 2c 20 69  74 20 69 73 20 67 75 61  |ssage, it is gua|
00003310  72 61 6e 74 65 65 64 0a  74 6f 20 68 61 76 65 20  |ranteed.to have |
00003320  65 78 63 6c 75 73 69 76  65 20 75 73 65 20 6f 66  |exclusive use of|
00003330  20 74 68 65 20 66 69 6c  65 20 68 61 6e 64 6c 65  | the file handle|
00003340  20 75 6e 74 69 6c 20 69  74 20 6e 65 78 74 20 63  | until it next c|
00003350  61 6c 6c 73 20 57 69 6d  70 5f 50 6f 6c 6c 2e 0a  |alls Wimp_Poll..|
00003360  0a 54 68 69 73 20 73 79  73 74 65 6d 20 65 6e 73  |.This system ens|
00003370  75 72 65 73 20 74 68 61  74 20 6f 77 6e 65 72 73  |ures that owners|
00003380  68 69 70 20 6f 66 20 74  68 65 20 66 69 6c 65 20  |hip of the file |
00003390  69 73 20 67 75 61 72 61  6e 74 65 65 64 20 74 6f  |is guaranteed to|
000033a0  20 62 65 20 61 6c 6c 6f  63 61 74 65 64 0a 74 6f  | be allocated.to|
000033b0  20 6f 6e 65 20 70 61 72  74 69 63 75 6c 61 72 20  | one particular |
000033c0  74 61 73 6b 20 69 6e 20  74 68 65 20 73 79 73 74  |task in the syst|
000033d0  65 6d 20 61 74 20 61 6e  79 20 74 69 6d 65 2c 20  |em at any time, |
000033e0  61 6e 64 20 74 68 61 74  20 61 20 74 61 73 6b 20  |and that a task |
000033f0  68 61 73 20 74 6f 0a 27  63 6c 61 69 6d 27 20 6f  |has to.'claim' o|
00003400  77 6e 65 72 73 68 69 70  20 65 78 70 6c 69 63 69  |wnership explici|
00003410  74 6c 79 2c 20 61 73 20  73 68 6f 77 6e 20 69 6e  |tly, as shown in|
00003420  20 28 69 29 20 61 62 6f  76 65 2e 0a 0a 0a 0a 46  | (i) above.....F|
00003430  6c 61 67 73 0a 3d 3d 3d  3d 3d 0a 0a 54 68 65 20  |lags.=====..The |
00003440  46 6c 61 67 73 20 77 6f  72 64 20 63 6f 6e 74 61  |Flags word conta|
00003450  69 6e 73 20 73 65 76 65  72 61 6c 20 75 73 65 66  |ins several usef|
00003460  75 6c 20 62 69 74 73 20  6f 66 20 69 6e 66 6f 72  |ul bits of infor|
00003470  6d 61 74 69 6f 6e 3a 0a  0a 20 20 20 4f 6e 20 2e  |mation:..   On .|
00003480  2e 52 65 71 75 65 73 74  20 6d 65 73 73 61 67 65  |.Request message|
00003490  73 3a 0a 20 20 20 0a 09  62 69 74 20 20 30 09 09  |s:.   ..bit  0..|
000034a0  52 65 73 65 72 76 65 64  20 2d 20 6d 75 73 74 20  |Reserved - must |
000034b0  62 65 20 7a 65 72 6f 20  28 77 61 73 20 72 65 6c  |be zero (was rel|
000034c0  6f 61 64 20 62 69 74 20  69 6e 20 6f 6c 64 20 76  |oad bit in old v|
000034d0  65 72 73 69 6f 6e 73 29  0a 20 20 20 20 20 20 20  |ersions).       |
000034e0  20 62 69 74 20 20 31 20  20 20 20 20 20 20 20 20  | bit  1         |
000034f0  20 49 66 20 73 65 74 2c  20 74 68 65 20 70 72 65  | If set, the pre|
00003500  76 69 6f 75 73 20 70 61  67 65 20 77 61 73 20 61  |vious page was a|
00003510  20 6c 6f 63 61 6c 3a 20  55 52 4c 0a 20 20 20 20  | local: URL.    |
00003520  20 20 20 20 62 69 74 20  20 32 20 20 20 20 20 20  |    bit  2      |
00003530  20 20 20 20 49 66 20 73  65 74 2c 20 66 61 73 74  |    If set, fast|
00003540  20 69 6d 61 67 65 73 20  61 72 65 20 62 65 69 6e  | images are bein|
00003550  67 20 75 73 65 64 20 2d  20 6e 6f 74 20 69 6d 70  |g used - not imp|
00003560  6c 65 6d 65 6e 74 65 64  0a 20 20 20 20 20 20 20  |lemented.       |
00003570  20 62 69 74 20 20 33 20  20 20 20 20 20 20 20 20  | bit  3         |
00003580  20 49 66 20 73 65 74 2c  20 74 68 65 20 50 4f 53  | If set, the POS|
00003590  54 20 72 65 71 75 65 73  74 20 73 68 6f 75 6c 64  |T request should|
000035a0  20 62 65 20 73 65 6e 74  20 61 73 20 61 20 50 55  | be sent as a PU|
000035b0  54 0a 20 20 20 20 20 20  20 20 62 69 74 20 20 34  |T.        bit  4|
000035c0  20 20 20 20 20 20 20 20  20 20 49 66 20 73 65 74  |          If set|
000035d0  2c 20 74 68 65 20 75 73  65 72 20 68 61 73 20 64  |, the user has d|
000035e0  69 73 61 62 6c 65 64 20  69 6d 61 67 65 20 66 65  |isabled image fe|
000035f0  74 63 68 69 6e 67 0a 09  62 69 74 20 20 35 09 09  |tching..bit  5..|
00003600  49 66 20 73 65 74 2c 20  62 72 6f 77 73 65 72 20  |If set, browser |
00003610  61 6c 6c 6f 77 20 49 6e  50 72 6f 67 72 65 73 73  |allow InProgress|
00003620  20 72 65 73 70 6f 6e 73  65 20 66 6f 72 20 54 48  | response for TH|
00003630  49 53 20 66 65 74 63 68  0a 09 62 69 74 20 20 36  |IS fetch..bit  6|
00003640  09 09 52 65 73 65 72 76  65 64 20 2d 20 6d 75 73  |..Reserved - mus|
00003650  74 20 62 65 20 7a 65 72  6f 0a 09 62 69 74 20 20  |t be zero..bit  |
00003660  37 09 09 49 6e 74 65 72  6e 61 6c 20 75 73 65 20  |7..Internal use |
00003670  6f 6e 6c 79 20 2d 20 6d  75 73 74 20 62 65 20 7a  |only - must be z|
00003680  65 72 6f 20 66 6f 72 20  6e 6f 6e 2d 41 72 63 57  |ero for non-ArcW|
00003690  65 62 20 74 61 73 6b 73  0a 09 62 69 74 20 20 38  |eb tasks..bit  8|
000036a0  09 09 49 66 20 73 65 74  2c 20 75 73 65 72 20 68  |..If set, user h|
000036b0  61 73 20 66 6f 72 63 65  64 20 69 6d 61 67 65 20  |as forced image |
000036c0  66 65 74 63 68 69 6e 67  20 66 6f 72 20 74 68 69  |fetching for thi|
000036d0  73 20 66 65 74 63 68 0a  09 62 69 74 20 20 39 09  |s fetch..bit  9.|
000036e0  09 49 66 20 73 65 74 2c  20 75 73 65 72 20 72 65  |.If set, user re|
000036f0  71 75 65 73 74 65 64 20  61 20 50 55 54 20 6f 70  |quested a PUT op|
00003700  65 72 61 74 69 6f 6e 0a  09 62 69 74 20 20 31 30  |eration..bit  10|
00003710  09 09 49 66 20 73 65 74  2c 20 75 73 65 72 20 72  |..If set, user r|
00003720  65 71 75 65 73 74 65 64  20 74 68 65 20 55 52 49  |equested the URI|
00003730  20 62 65 20 63 72 65 61  74 65 64 20 61 73 20 61  | be created as a|
00003740  20 64 69 72 65 63 74 6f  72 79 0a 09 62 69 74 20  | directory..bit |
00003750  20 31 31 09 09 49 66 20  73 65 74 2c 20 75 73 65  | 11..If set, use|
00003760  72 20 72 65 71 75 65 73  74 65 64 20 74 68 65 20  |r requested the |
00003770  64 69 72 65 63 74 6f 72  79 20 55 52 49 20 62 65  |directory URI be|
00003780  20 64 65 6c 65 74 65 64  0a 09 62 69 74 20 20 31  | deleted..bit  1|
00003790  32 09 09 49 66 20 73 65  74 2c 20 75 73 65 72 20  |2..If set, user |
000037a0  72 65 71 75 65 73 74 65  64 20 64 65 6c 65 74 69  |requested deleti|
000037b0  6f 6e 20 6f 66 20 55 52  49 0a 09 62 69 74 20 20  |on of URI..bit  |
000037c0  31 33 09 09 49 66 20 73  65 74 2c 20 75 73 65 72  |13..If set, user|
000037d0  20 72 65 71 75 65 73 74  65 64 20 72 65 6e 61 6d  | requested renam|
000037e0  65 20 6f 66 20 55 52 49  0a 09 62 69 74 20 20 32  |e of URI..bit  2|
000037f0  31 09 09 49 66 20 73 65  74 2c 20 74 68 65 20 65  |1..If set, the e|
00003800  6d 61 69 6c 20 6d 65 73  73 61 67 65 20 69 73 20  |mail message is |
00003810  61 6c 72 65 61 64 79 20  63 6f 6d 70 6c 65 74 65  |already complete|
00003820  0a 20 20 20 0a 20 20 20  4f 6e 20 2e 2e 44 6f 6e  |.   .   On ..Don|
00003830  65 20 6d 65 73 73 61 67  65 73 0a 20 20 20 0a 20  |e messages.   . |
00003840  20 20 20 20 20 20 20 62  69 74 73 20 30 2d 31 35  |       bits 0-15|
00003850  20 20 20 20 20 20 20 52  49 53 43 20 4f 53 20 66  |       RISC OS f|
00003860  69 6c 65 20 74 79 70 65  2f 41 72 63 57 65 62 20  |ile type/ArcWeb |
00003870  66 69 6c 65 20 74 79 70  65 20 28 73 65 65 20 62  |file type (see b|
00003880  69 74 73 20 31 36 2c 33  30 29 0a 20 20 20 20 20  |its 16,30).     |
00003890  20 20 20 62 69 74 20 20  31 36 20 20 20 20 20 20  |   bit  16      |
000038a0  20 20 20 49 66 20 73 65  74 2c 20 62 69 74 73 20  |   If set, bits |
000038b0  30 2d 31 35 20 61 72 65  20 41 72 63 57 65 62 20  |0-15 are ArcWeb |
000038c0  66 69 6c 65 20 74 79 70  65 2c 20 65 6c 73 65 20  |file type, else |
000038d0  52 49 53 43 20 4f 53 0a  20 20 20 20 20 20 20 20  |RISC OS.        |
000038e0  62 69 74 20 20 32 31 09  09 49 66 20 73 65 74 20  |bit  21..If set |
000038f0  28 2b 62 69 74 20 32 37  20 73 65 74 29 2c 20 6e  |(+bit 27 set), n|
00003900  65 77 20 55 52 4c 20 69  73 20 70 65 72 6d 61 6e  |ew URL is perman|
00003910  65 6e 74 20 28 33 30 31  20 4d 6f 76 65 64 29 0a  |ent (301 Moved).|
00003920  0a 20 20 20 49 6e 20 62  6f 74 68 20 74 79 70 65  |.   In both type|
00003930  73 20 6f 66 20 6d 65 73  73 61 67 65 3a 0a 0a 20  |s of message:.. |
00003940  20 20 20 20 20 20 20 62  69 74 73 20 31 37 20 61  |       bits 17 a|
00003950  6e 64 20 31 38 20 20 52  65 73 65 72 76 65 64 20  |nd 18  Reserved |
00003960  28 6d 75 73 74 20 70 72  65 73 65 72 76 65 20 69  |(must preserve i|
00003970  6e 20 72 65 70 6c 69 65  73 29 0a 20 20 20 20 20  |n replies).     |
00003980  20 20 20 62 69 74 20 20  31 39 20 20 20 20 20 20  |   bit  19      |
00003990  20 20 20 49 66 20 73 65  74 2c 20 75 73 65 72 20  |   If set, user |
000039a0  72 65 71 75 65 73 74 65  64 20 61 20 27 73 61 76  |requested a 'sav|
000039b0  65 20 74 6f 20 64 69 73  63 27 0a 20 20 20 09 62  |e to disc'.   .b|
000039c0  69 74 20 20 32 30 09 09  49 66 20 73 65 74 2c 20  |it  20..If set, |
000039d0  75 73 65 72 20 72 65 71  75 65 73 74 65 64 20 61  |user requested a|
000039e0  20 72 65 6c 6f 61 64 20  6f 6e 20 74 68 69 73 20  | reload on this |
000039f0  64 6f 63 75 6d 65 6e 74  0a 20 20 20 20 20 20 20  |document.       |
00003a00  20 62 69 74 20 20 32 31  20 20 20 20 20 20 20 20  | bit  21        |
00003a10  20 49 66 20 73 65 74 2c  20 74 68 65 20 65 6d 61  | If set, the ema|
00003a20  69 6c 20 6d 65 73 73 61  67 65 20 69 73 20 61 6c  |il message is al|
00003a30  72 65 61 64 79 20 63 6f  6d 70 6c 65 74 65 0a 20  |ready complete. |
00003a40  20 20 20 20 20 20 20 62  69 74 20 20 32 32 20 20  |       bit  22  |
00003a50  20 20 20 20 20 20 20 49  66 20 73 65 74 2c 20 61  |       If set, a|
00003a60  6e 20 65 78 74 65 6e 64  65 64 20 55 52 4c 20 69  |n extended URL i|
00003a70  73 20 69 6e 20 75 73 65  0a 20 20 20 20 20 20 20  |s in use.       |
00003a80  20 62 69 74 20 20 32 33  20 20 20 20 20 20 20 20  | bit  23        |
00003a90  20 49 66 20 73 65 74 2c  20 41 72 63 57 65 62 20  | If set, ArcWeb |
00003aa0  77 69 6c 6c 20 6e 6f 74  20 64 69 73 70 6c 61 79  |will not display|
00003ab0  20 74 68 65 20 72 65 73  75 6c 74 73 20 6f 66 20  | the results of |
00003ac0  74 68 65 20 72 65 6e 64  65 72 0a 20 20 20 20 20  |the render.     |
00003ad0  20 20 20 62 69 74 20 20  32 34 20 20 20 20 20 20  |   bit  24      |
00003ae0  20 20 20 49 66 20 73 65  74 20 28 2b 62 69 74 20  |   If set (+bit |
00003af0  33 31 20 73 65 74 29 2c  20 41 72 63 57 65 62 20  |31 set), ArcWeb |
00003b00  77 69 6c 6c 20 6e 6f 74  20 72 61 69 73 65 20 61  |will not raise a|
00003b10  6e 20 65 72 72 6f 72 0a  20 20 20 20 20 20 20 20  |n error.        |
00003b20  62 69 74 20 20 32 35 20  20 20 20 20 20 20 20 20  |bit  25         |
00003b30  49 66 20 73 65 74 2c 20  74 68 69 73 20 72 65 71  |If set, this req|
00003b40  75 65 73 74 20 69 73 20  66 6f 72 20 61 6e 20 69  |uest is for an i|
00003b50  6e 6c 69 6e 65 64 20 72  65 73 6f 75 72 63 65 0a  |nlined resource.|
00003b60  20 20 20 20 20 20 20 20  62 69 74 20 20 32 36 20  |        bit  26 |
00003b70  20 20 20 20 20 20 20 20  49 66 20 73 65 74 2c 20  |        If set, |
00003b80  41 72 63 57 65 62 20 77  69 6c 6c 20 63 6c 6f 73  |ArcWeb will clos|
00003b90  65 20 74 68 65 20 77 69  6e 64 6f 77 20 77 68 69  |e the window whi|
00003ba0  63 68 20 69 73 73 75 65  64 20 72 65 71 75 65 73  |ch issued reques|
00003bb0  74 0a 20 20 20 20 20 20  20 20 62 69 74 20 20 32  |t.        bit  2|
00003bc0  37 20 20 20 20 20 20 20  20 20 49 66 20 73 65 74  |7         If set|
00003bd0  2c 20 65 78 74 65 6e 64  65 64 20 55 52 4c 20 68  |, extended URL h|
00003be0  61 73 20 63 68 61 6e 67  65 64 0a 20 20 20 20 20  |as changed.     |
00003bf0  20 20 20 62 69 74 20 20  32 38 20 20 20 20 20 20  |   bit  28      |
00003c00  20 20 20 49 66 20 73 65  74 2c 20 73 79 6d 62 6f  |   If set, symbo|
00003c10  6c 69 63 20 6c 69 6e 6b  20 72 65 71 75 65 73 74  |lic link request|
00003c20  2f 63 6f 6e 66 69 72 6d  0a 20 20 20 20 20 20 20  |/confirm.       |
00003c30  20 62 69 74 20 20 32 39  20 20 20 20 20 20 20 20  | bit  29        |
00003c40  20 49 66 20 73 65 74 2c  20 41 72 63 57 65 62 20  | If set, ArcWeb |
00003c50  77 69 6c 6c 20 6e 6f 74  20 61 74 74 65 6d 70 74  |will not attempt|
00003c60  20 74 6f 20 72 65 6e 64  65 72 20 74 68 65 20 66  | to render the f|
00003c70  69 6c 65 0a 20 20 20 20  20 20 20 20 62 69 74 20  |ile.        bit |
00003c80  20 33 30 20 20 20 20 20  20 20 20 20 49 66 20 73  | 30         If s|
00003c90  65 74 2c 20 62 69 74 73  20 30 2d 31 36 20 61 72  |et, bits 0-16 ar|
00003ca0  65 20 76 61 6c 69 64 2c  20 65 6c 73 65 20 74 68  |e valid, else th|
00003cb0  65 79 20 61 72 65 20 69  6e 76 61 6c 69 64 0a 20  |ey are invalid. |
00003cc0  20 20 20 20 20 20 20 62  69 74 20 20 33 31 20 20  |       bit  31  |
00003cd0  20 20 20 20 20 20 20 49  66 20 73 65 74 2c 20 62  |       If set, b|
00003ce0  75 66 66 65 72 20 63 6f  6e 74 61 69 6e 73 20 61  |uffer contains a|
00003cf0  6e 20 65 72 72 6f 72 20  6d 65 73 73 61 67 65 0a  |n error message.|
00003d00  0a 54 68 65 20 65 72 72  6f 72 20 62 69 74 20 28  |.The error bit (|
00003d10  33 31 29 20 64 65 74 65  72 6d 69 6e 65 73 20 77  |31) determines w|
00003d20  68 69 63 68 20 6f 66 20  74 68 65 20 6f 70 74 69  |hich of the opti|
00003d30  6f 6e 73 20 69 6e 20 74  77 6f 20 6f 66 20 74 68  |ons in two of th|
00003d40  65 20 6d 65 73 73 61 67  65 73 0a 61 62 6f 76 65  |e messages.above|
00003d50  2c 20 69 73 20 69 6e 20  66 6f 72 63 65 2e 20 20  |, is in force.  |
00003d60  49 66 20 74 68 65 20 65  72 72 6f 72 20 62 69 74  |If the error bit|
00003d70  20 69 73 20 73 65 74 2c  20 41 72 63 57 65 62 20  | is set, ArcWeb |
00003d80  77 69 6c 6c 20 72 61 69  73 65 20 61 6e 20 65 72  |will raise an er|
00003d90  72 6f 72 20 74 6f 0a 74  68 65 20 75 73 65 72 20  |ror to.the user |
00003da0  55 4e 4c 45 53 53 20 62  69 74 20 32 34 20 69 73  |UNLESS bit 24 is|
00003db0  20 61 6c 73 6f 20 73 65  74 20 28 69 6e 64 69 63  | also set (indic|
00003dc0  61 74 69 6e 67 20 74 68  61 74 20 74 68 65 20 6f  |ating that the o|
00003dd0  74 68 65 72 20 61 70 70  6c 69 63 61 74 69 6f 6e  |ther application|
00003de0  0a 68 61 73 20 61 6c 72  65 61 64 79 20 68 61 6e  |.has already han|
00003df0  64 6c 65 64 20 74 68 69  73 20 2d 20 74 68 69 73  |dled this - this|
00003e00  20 69 73 20 74 68 65 20  70 72 65 66 65 72 72 65  | is the preferre|
00003e10  64 20 77 61 79 20 6f 66  20 64 6f 69 6e 67 20 69  |d way of doing i|
00003e20  74 29 2e 0a 0a 57 68 65  6e 20 61 20 72 65 71 75  |t)...When a requ|
00003e30  65 73 74 20 74 6f 20 66  65 74 63 68 20 61 20 6e  |est to fetch a n|
00003e40  65 77 20 70 61 67 65 20  69 73 20 69 73 73 75 65  |ew page is issue|
00003e50  64 2c 20 41 72 63 57 65  62 20 72 65 6d 65 6d 62  |d, ArcWeb rememb|
00003e60  65 72 73 20 77 68 69 63  68 20 77 69 6e 64 6f 77  |ers which window|
00003e70  0a 28 69 66 20 61 6e 79  29 20 6c 61 75 6e 63 68  |.(if any) launch|
00003e80  65 64 20 74 68 65 20 72  65 71 75 65 73 74 2e 20  |ed the request. |
00003e90  20 4f 6e 63 65 20 61 20  73 75 63 63 65 73 73 66  | Once a successf|
00003ea0  75 6c 20 52 65 6e 64 65  72 44 6f 6e 65 20 68 61  |ul RenderDone ha|
00003eb0  73 20 62 65 65 6e 0a 64  65 6c 69 76 65 72 65 64  |s been.delivered|
00003ec0  20 74 6f 20 74 68 65 20  77 69 6e 64 6f 77 2c 20  | to the window, |
00003ed0  69 74 20 77 69 6c 6c 20  73 65 6c 66 2d 64 65 73  |it will self-des|
00003ee0  74 72 75 63 74 20 69 66  20 62 69 74 20 32 36 20  |truct if bit 26 |
00003ef0  69 73 20 73 65 74 2e 20  20 41 72 63 57 65 62 0a  |is set.  ArcWeb.|
00003f00  77 69 6c 6c 20 73 65 74  20 74 68 69 73 20 62 69  |will set this bi|
00003f10  74 20 69 74 73 65 6c 66  20 61 63 63 6f 72 64 69  |t itself accordi|
00003f20  6e 67 20 74 6f 20 74 68  65 20 75 73 65 72 27 73  |ng to the user's|
00003f30  20 63 68 6f 69 63 65 2c  20 61 6e 64 20 73 6f 20  | choice, and so |
00003f40  74 68 69 73 20 62 69 74  0a 73 68 6f 75 6c 64 20  |this bit.should |
00003f50  61 6c 77 61 79 73 20 62  65 20 70 72 65 73 65 72  |always be preser|
00003f60  76 65 64 2c 20 75 6e 6c  65 73 73 20 79 6f 75 20  |ved, unless you |
00003f70  61 62 73 6f 6c 75 74 65  6c 79 20 77 61 6e 74 20  |absolutely want |
00003f80  74 6f 20 73 65 74 20 69  74 20 28 73 65 65 20 62  |to set it (see b|
00003f90  69 74 20 32 33 0a 62 65  6c 6f 77 29 2e 20 20 54  |it 23.below).  T|
00003fa0  68 61 74 20 77 69 6e 64  6f 77 20 69 73 20 6e 6f  |hat window is no|
00003fb0  74 20 61 6c 6c 6f 77 65  64 20 74 6f 20 6c 61 75  |t allowed to lau|
00003fc0  6e 63 68 20 66 75 72 74  68 65 72 20 72 65 71 75  |nch further requ|
00003fd0  65 73 74 73 20 75 6e 74  69 6c 20 74 68 65 0a 77  |ests until the.w|
00003fe0  68 6f 6c 65 20 74 72 61  6e 73 61 63 74 69 6f 6e  |hole transaction|
00003ff0  20 69 73 20 63 6f 6d 70  6c 65 74 65 64 2e 20 20  | is completed.  |
00004000  54 68 69 73 20 62 6c 6f  63 6b 65 64 20 73 74 61  |This blocked sta|
00004010  74 65 20 69 73 20 69 6e  64 69 63 61 74 65 64 20  |te is indicated |
00004020  74 6f 20 74 68 65 20 75  73 65 72 0a 62 79 20 74  |to the user.by t|
00004030  68 65 20 77 65 62 20 61  6e 69 6d 61 74 69 6f 6e  |he web animation|
00004040  20 69 6e 20 74 68 65 20  69 6e 66 6f 72 6d 61 74  | in the informat|
00004050  69 6f 6e 20 77 69 6e 64  6f 77 20 66 6f 72 20 61  |ion window for a|
00004060  20 62 75 73 79 20 70 61  67 65 2e 0a 0a 49 66 20  | busy page...If |
00004070  79 6f 75 20 66 69 6e 64  20 74 68 61 74 20 62 69  |you find that bi|
00004080  74 20 32 32 20 69 73 20  73 65 74 20 75 70 6f 6e  |t 22 is set upon|
00004090  20 72 65 63 65 69 70 74  20 6f 66 20 61 20 52 65  | receipt of a Re|
000040a0  71 75 65 73 74 20 69 6e  76 6f 6c 76 69 6e 67 20  |quest involving |
000040b0  61 20 55 52 4c 2c 0a 74  68 65 6e 20 74 68 65 20  |a URL,.then the |
000040c0  62 75 66 66 65 72 20 77  69 6c 6c 20 6e 6f 74 20  |buffer will not |
000040d0  63 6f 6e 74 61 69 6e 20  61 20 55 52 4c 2c 20 62  |contain a URL, b|
000040e0  75 74 20 61 20 66 69 6c  65 20 68 61 6e 64 6c 65  |ut a file handle|
000040f0  20 6f 66 20 61 20 66 69  6c 65 20 74 68 61 74 0a  | of a file that.|
00004100  64 6f 65 73 2e 20 20 54  68 65 20 66 69 6c 65 20  |does.  The file |
00004110  77 69 6c 6c 20 68 61 76  65 20 62 65 65 6e 20 6f  |will have been o|
00004120  70 65 6e 65 64 20 69 6e  20 52 2f 57 20 6d 6f 64  |pened in R/W mod|
00004130  65 20 77 69 74 68 20 4f  53 5f 46 69 6e 64 2e 20  |e with OS_Find. |
00004140  20 59 6f 75 20 73 68 6f  75 6c 64 0a 72 65 61 64  | You should.read|
00004150  20 74 68 65 20 77 68 6f  6c 65 20 6f 66 20 74 68  | the whole of th|
00004160  65 20 66 69 6c 65 20 74  6f 20 6f 62 74 61 69 6e  |e file to obtain|
00004170  20 74 68 65 20 55 52 4c  2e 20 20 49 74 20 6d 61  | the URL.  It ma|
00004180  79 20 62 65 20 74 65 72  6d 69 6e 61 74 65 64 20  |y be terminated |
00004190  62 79 20 61 0a 77 68 69  74 65 73 70 61 63 65 20  |by a.whitespace |
000041a0  63 68 61 72 61 63 74 65  72 2c 20 6f 72 20 62 79  |character, or by|
000041b0  20 45 4f 46 2e 20 20 54  68 65 20 73 61 6d 65 20  | EOF.  The same |
000041c0  72 75 6c 65 73 20 61 62  6f 75 74 20 72 65 73 70  |rules about resp|
000041d0  6f 6e 73 69 62 69 6c 69  74 79 20 66 6f 72 0a 63  |onsibility for.c|
000041e0  6c 6f 73 69 6e 67 20 74  68 65 20 66 69 6c 65 20  |losing the file |
000041f0  61 70 70 6c 79 20 61 73  20 66 6f 72 20 74 68 65  |apply as for the|
00004200  20 6f 74 68 65 72 20 68  61 6e 64 6c 65 73 20 69  | other handles i|
00004210  6e 20 2e 2e 52 65 71 75  65 73 74 20 6d 65 73 73  |n ..Request mess|
00004220  61 67 65 73 2e 0a 0a 49  66 2c 20 64 75 72 69 6e  |ages...If, durin|
00004230  67 20 61 20 63 6f 6e 76  65 72 73 61 74 69 6f 6e  |g a conversation|
00004240  20 77 69 74 68 20 61 6e  20 48 54 54 50 20 73 65  | with an HTTP se|
00004250  72 76 65 72 2c 20 79 6f  75 20 72 65 63 65 69 76  |rver, you receiv|
00004260  65 20 61 20 4c 6f 63 61  74 69 6f 6e 3a 0a 64 69  |e a Location:.di|
00004270  72 65 63 74 69 76 65 20  69 6e 64 69 63 61 74 69  |rective indicati|
00004280  6e 67 20 61 20 64 6f 63  75 6d 65 6e 74 20 72 65  |ng a document re|
00004290  6c 6f 63 61 74 69 6f 6e  2c 20 74 68 65 6e 20 79  |location, then y|
000042a0  6f 75 20 73 68 6f 75 6c  64 20 61 6d 65 6e 64 20  |ou should amend |
000042b0  74 68 65 0a 63 6f 6e 74  65 6e 74 73 20 6f 66 20  |the.contents of |
000042c0  74 68 65 20 65 78 74 65  6e 64 65 64 20 55 52 4c  |the extended URL|
000042d0  20 66 69 6c 65 20 74 6f  20 72 65 70 72 65 73 65  | file to represe|
000042e0  6e 74 20 74 68 65 20 6e  65 77 20 74 61 72 67 65  |nt the new targe|
000042f0  74 20 55 52 4c 2e 20 20  59 6f 75 20 6d 75 73 74  |t URL.  You must|
00004300  0a 73 65 74 20 66 6c 61  67 20 62 69 74 20 32 37  |.set flag bit 27|
00004310  20 69 6e 20 74 68 65 20  44 6f 6e 65 20 6d 65 73  | in the Done mes|
00004320  73 61 67 65 20 28 77 68  69 63 68 20 79 6f 75 20  |sage (which you |
00004330  64 6f 6e 27 74 20 73 65  6e 64 20 69 6d 6d 65 64  |don't send immed|
00004340  69 61 74 65 6c 79 20 2d  20 79 6f 75 0a 70 72 65  |iately - you.pre|
00004350  74 65 6e 64 20 61 73 20  74 68 6f 75 67 68 20 79  |tend as though y|
00004360  6f 75 20 68 61 64 20 72  65 63 65 69 76 65 64 20  |ou had received |
00004370  74 68 65 20 6e 65 77 20  55 52 4c 20 66 72 6f 6d  |the new URL from|
00004380  20 74 68 65 20 52 65 71  75 65 73 74 20 6d 65 73  | the Request mes|
00004390  73 61 67 65 29 2e 20 0a  54 68 65 20 74 72 61 6e  |sage). .The tran|
000043a0  73 70 61 72 65 6e 74 20  6f 62 65 64 69 65 6e 63  |sparent obedienc|
000043b0  65 20 74 6f 20 4c 6f 63  61 74 69 6f 6e 3a 20 64  |e to Location: d|
000043c0  69 72 65 63 74 69 76 65  73 20 69 73 20 6e 6f 74  |irectives is not|
000043d0  20 73 74 72 69 63 74 6c  79 20 72 65 71 75 69 72  | strictly requir|
000043e0  65 64 0a 28 61 6e 64 20  74 68 65 20 63 68 61 6e  |ed.(and the chan|
000043f0  67 65 20 63 61 6e 6e 6f  74 20 62 65 20 73 69 67  |ge cannot be sig|
00004400  6e 61 6c 6c 65 64 20 74  6f 20 41 72 63 57 65 62  |nalled to ArcWeb|
00004410  20 69 66 20 74 68 65 20  65 78 74 65 6e 64 65 64  | if the extended|
00004420  20 55 52 4c 20 70 72 6f  74 6f 63 6f 6c 0a 69 73  | URL protocol.is|
00004430  20 6e 6f 74 20 62 65 69  6e 67 20 75 73 65 64 29  | not being used)|
00004440  2c 20 62 75 74 20 69 73  20 4d 4f 53 54 20 48 49  |, but is MOST HI|
00004450  47 48 4c 59 20 45 4e 43  4f 55 52 41 47 45 44 2e  |GHLY ENCOURAGED.|
00004460  20 20 41 74 20 73 6f 6d  65 20 70 6f 69 6e 74 20  |  At some point |
00004470  69 6e 20 74 68 65 0a 66  75 74 75 72 65 2c 20 6f  |in the.future, o|
00004480  6e 6c 79 20 65 78 74 65  6e 64 65 64 20 55 52 4c  |nly extended URL|
00004490  73 20 77 69 6c 6c 20 62  65 20 75 73 65 64 20 61  |s will be used a|
000044a0  74 20 61 6c 6c 2e 20 20  49 66 20 74 68 65 20 72  |t all.  If the r|
000044b0  65 73 70 6f 6e 73 65 20  66 72 6f 6d 20 74 68 65  |esponse from the|
000044c0  0a 73 65 72 76 65 72 20  77 61 73 20 61 20 33 30  |.server was a 30|
000044d0  31 20 27 6d 6f 76 65 64  20 70 65 72 6d 61 6e 65  |1 'moved permane|
000044e0  6e 74 6c 79 27 2c 20 74  68 65 6e 20 79 6f 75 20  |ntly', then you |
000044f0  73 68 6f 75 6c 64 20 61  6c 73 6f 20 73 65 74 20  |should also set |
00004500  62 69 74 20 32 31 20 69  6e 0a 74 68 65 20 2e 2e  |bit 21 in.the ..|
00004510  44 6f 6e 65 20 6d 65 73  73 61 67 65 20 74 6f 20  |Done message to |
00004520  69 6e 66 6f 72 6d 20 41  72 63 57 65 62 2e 20 20  |inform ArcWeb.  |
00004530  41 72 63 57 65 62 20 77  69 6c 6c 20 74 68 65 6e  |ArcWeb will then|
00004540  20 73 63 61 6e 20 74 68  65 20 68 6f 74 6c 69 73  | scan the hotlis|
00004550  74 0a 61 6e 64 20 68 69  73 74 6f 72 79 20 66 6f  |t.and history fo|
00004560  72 20 74 68 61 74 20 55  52 4c 20 61 6e 64 20 63  |r that URL and c|
00004570  68 61 6e 67 65 20 74 68  65 6d 2c 20 61 73 20 48  |hange them, as H|
00004580  54 54 50 20 73 70 65 63  20 73 75 67 67 65 73 74  |TTP spec suggest|
00004590  73 2e 0a 0a 2a 2a 2a 20  46 72 6f 6d 20 76 65 72  |s...*** From ver|
000045a0  73 69 6f 6e 20 30 2e 32  35 2c 20 74 68 65 20 75  |sion 0.25, the u|
000045b0  73 65 20 6f 6e 20 6e 6f  6e 2d 65 78 74 65 6e 64  |se on non-extend|
000045c0  65 64 20 55 52 4c 73 20  69 73 20 64 65 70 72 65  |ed URLs is depre|
000045d0  63 61 74 65 64 0a 0a 49  66 20 62 69 74 20 31 39  |cated..If bit 19|
000045e0  20 77 61 73 20 73 65 74  2c 20 74 68 65 6e 20 74  | was set, then t|
000045f0  68 65 20 75 73 65 72 20  64 69 64 20 61 20 53 48  |he user did a SH|
00004600  49 46 54 2d 63 6c 69 63  6b 20 6f 6e 20 74 68 65  |IFT-click on the|
00004610  20 6c 69 6e 6b 20 74 6f  20 66 6f 72 63 65 20 69  | link to force i|
00004620  74 0a 74 6f 20 62 65 20  6c 6f 61 64 65 64 20 74  |t.to be loaded t|
00004630  6f 20 64 69 73 63 20 6f  6e 6c 79 2e 0a 0a 49 66  |o disc only...If|
00004640  20 62 69 74 20 32 33 20  69 73 20 73 65 74 20 69  | bit 23 is set i|
00004650  6e 20 52 65 6e 64 65 72  44 6f 6e 65 2c 20 41 72  |n RenderDone, Ar|
00004660  63 57 65 62 20 77 69 6c  6c 20 6e 6f 74 20 64 69  |cWeb will not di|
00004670  73 70 6c 61 79 20 74 68  65 20 72 65 73 75 6c 74  |splay the result|
00004680  73 20 6f 66 20 74 68 65  0a 72 65 6e 64 65 72 2e  |s of the.render.|
00004690  20 20 54 68 69 73 20 69  73 20 74 6f 20 61 6c 6c  |  This is to all|
000046a0  6f 77 20 61 70 70 6c 69  63 61 74 69 6f 6e 73 20  |ow applications |
000046b0  73 75 63 68 20 61 73 20  69 6d 61 67 65 20 72 65  |such as image re|
000046c0  6e 64 65 72 65 72 73 20  74 6f 20 6f 70 65 6e 20  |nderers to open |
000046d0  74 68 65 69 72 0a 6f 77  6e 20 77 69 6e 64 6f 77  |their.own window|
000046e0  20 74 6f 20 64 69 73 70  6c 61 79 20 74 68 65 20  | to display the |
000046f0  70 69 63 74 75 72 65 2e  20 20 54 68 69 73 20 6d  |picture.  This m|
00004700  75 73 74 20 4e 4f 54 20  62 65 20 64 6f 6e 65 20  |ust NOT be done |
00004710  69 66 20 62 69 74 20 32  35 20 69 73 20 73 65 74  |if bit 25 is set|
00004720  0a 28 61 73 20 73 6f 6d  65 6f 6e 65 20 65 6c 73  |.(as someone els|
00004730  65 20 69 73 20 74 72 79  69 6e 67 20 74 6f 20 72  |e is trying to r|
00004740  65 6e 64 65 72 20 61 6e  20 69 6e 6c 69 6e 65 20  |ender an inline |
00004750  69 6d 61 67 65 29 2e 20  20 49 66 20 62 69 74 20  |image).  If bit |
00004760  32 35 20 69 73 20 73 65  74 2c 0a 74 68 65 20 61  |25 is set,.the a|
00004770  70 70 6c 69 63 61 74 69  6f 6e 20 6d 75 73 74 20  |pplication must |
00004780  63 6f 6e 76 65 72 74 20  74 68 65 20 69 6d 61 67  |convert the imag|
00004790  65 20 69 6e 74 6f 20 61  20 73 70 72 69 74 65 20  |e into a sprite |
000047a0  66 69 6c 65 20 61 6e 64  20 73 74 6f 72 65 20 69  |file and store i|
000047b0  74 20 69 6e 0a 74 68 65  20 27 64 69 61 67 72 61  |t in.the 'diagra|
000047c0  6d 27 20 66 69 6c 65 2e  20 20 49 66 20 79 6f 75  |m' file.  If you|
000047d0  20 73 65 74 20 62 69 74  20 32 33 2c 20 69 74 20  | set bit 23, it |
000047e0  69 73 20 61 20 67 6f 6f  64 20 69 64 65 61 20 74  |is a good idea t|
000047f0  6f 20 63 6c 65 61 72 20  62 69 74 20 32 36 20 69  |o clear bit 26 i|
00004800  6e 0a 6f 72 64 65 72 20  6e 6f 74 20 74 6f 20 63  |n.order not to c|
00004810  6f 6e 66 75 73 65 20 74  68 65 20 75 73 65 72 2e  |onfuse the user.|
00004820  20 20 4d 61 6b 65 20 73  75 72 65 20 74 68 61 74  |  Make sure that|
00004830  20 79 6f 75 20 73 65 74  20 74 68 65 20 73 69 7a  | you set the siz|
00004840  65 20 6f 66 20 74 68 65  20 69 6d 61 67 65 0a 69  |e of the image.i|
00004850  6e 20 70 69 78 65 6c 73  20 28 69 66 20 61 70 70  |n pixels (if app|
00004860  72 6f 70 72 69 61 74 65  29 20 69 6e 20 74 68 65  |ropriate) in the|
00004870  20 52 65 6e 64 65 72 44  6f 6e 65 20 6d 65 73 73  | RenderDone mess|
00004880  61 67 65 2c 20 61 73 20  74 68 69 73 20 77 69 6c  |age, as this wil|
00004890  6c 20 65 6e 61 62 6c 65  0a 69 6d 61 67 65 20 6d  |l enable.image m|
000048a0  61 70 73 20 74 6f 20 77  6f 72 6b 20 63 6f 72 72  |aps to work corr|
000048b0  65 63 74 6c 79 2e 0a 0a  55 70 6f 6e 20 72 65 63  |ectly...Upon rec|
000048c0  65 69 70 74 20 6f 66 20  61 20 46 65 74 63 68 52  |eipt of a FetchR|
000048d0  65 71 75 65 73 74 20 6d  65 73 73 61 67 65 2c 20  |equest message, |
000048e0  74 68 65 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |the application |
000048f0  73 68 6f 75 6c 64 20 63  68 65 63 6b 20 62 69 74  |should check bit|
00004900  20 32 38 2e 20 0a 49 66  20 62 69 74 20 32 38 20  | 28. .If bit 28 |
00004910  69 73 20 73 65 74 2c 20  74 68 65 6e 20 74 68 65  |is set, then the|
00004920  20 61 70 70 6c 69 63 61  74 69 6f 6e 20 6d 61 79  | application may|
00004930  20 6f 70 74 20 74 6f 20  72 65 74 72 69 65 76 65  | opt to retrieve|
00004940  20 74 68 65 20 66 69 6c  65 20 74 6f 20 69 74 73  | the file to its|
00004950  0a 6f 77 6e 20 70 72 69  76 61 74 65 20 64 69 72  |.own private dir|
00004960  65 63 74 6f 72 79 20 61  6e 64 20 73 74 6f 72 65  |ectory and store|
00004970  20 74 68 65 20 6e 61 6d  65 20 6f 66 20 74 68 65  | the name of the|
00004980  20 66 69 6c 65 20 69 6e  20 74 68 65 20 27 73 6f  | file in the 'so|
00004990  75 72 63 65 27 20 66 69  6c 65 2e 20 0a 49 66 20  |urce' file. .If |
000049a0  69 74 20 64 65 63 6c 69  6e 65 73 20 74 6f 20 64  |it declines to d|
000049b0  6f 20 74 68 69 73 20 28  6f 72 20 62 69 74 20 32  |o this (or bit 2|
000049c0  38 20 69 73 20 63 6c 65  61 72 20 61 6e 79 77 61  |8 is clear anywa|
000049d0  79 29 2c 20 62 69 74 20  32 38 20 73 68 6f 75 6c  |y), bit 28 shoul|
000049e0  64 20 62 65 0a 63 6c 65  61 72 65 64 20 6f 6e 20  |d be.cleared on |
000049f0  74 68 65 20 72 65 73 70  6f 6e 73 65 20 61 6e 64  |the response and|
00004a00  20 74 68 65 20 66 65 74  63 68 65 64 20 66 69 6c  | the fetched fil|
00004a10  65 20 70 6c 61 63 65 64  20 69 6e 20 27 73 6f 75  |e placed in 'sou|
00004a20  72 63 65 27 2e 20 20 54  68 69 73 0a 66 61 63 69  |rce'.  This.faci|
00004a30  6c 69 74 79 20 69 73 20  70 72 6f 76 69 64 65 64  |lity is provided|
00004a40  20 6d 61 69 6e 6c 79 20  66 6f 72 20 74 68 65 20  | mainly for the |
00004a50  62 65 6e 65 66 69 74 20  6f 66 20 41 72 63 57 65  |benefit of ArcWe|
00004a60  62 4c 63 6c 20 74 6f 20  61 76 6f 69 64 20 63 6f  |bLcl to avoid co|
00004a70  70 79 69 6e 67 0a 66 69  6c 65 73 20 61 72 6f 75  |pying.files arou|
00004a80  6e 64 20 74 68 65 20 6c  6f 63 61 6c 6c 79 20 61  |nd the locally a|
00004a90  76 61 69 6c 61 62 6c 65  20 66 69 6c 65 73 79 73  |vailable filesys|
00004aa0  74 65 6d 73 2e 0a 0a 49  66 20 62 69 74 20 32 31  |tems...If bit 21|
00004ab0  20 69 73 20 73 65 74 20  6f 6e 20 72 65 63 65 69  | is set on recei|
00004ac0  70 74 20 6f 66 20 61 20  45 4d 61 69 6c 52 65 71  |pt of a EMailReq|
00004ad0  75 65 73 74 20 6d 65 73  73 61 67 65 2c 20 74 68  |uest message, th|
00004ae0  65 6e 20 74 68 69 73 20  69 6e 64 69 63 61 74 65  |en this indicate|
00004af0  73 0a 74 68 61 74 20 74  68 65 20 66 6f 72 6d 20  |s.that the form |
00004b00  66 69 6c 65 20 63 6f 6e  74 61 69 6e 73 20 61 20  |file contains a |
00004b10  63 6f 6d 70 6c 65 74 65  20 65 2d 6d 61 69 6c 20  |complete e-mail |
00004b20  6d 65 73 73 61 67 65 20  72 65 61 64 79 20 74 6f  |message ready to|
00004b30  20 62 65 20 6d 61 69 6c  65 64 0a 6f 66 66 20 28  | be mailed.off (|
00004b40  65 78 63 6c 75 64 69 6e  67 20 46 72 6f 6d 3a 20  |excluding From: |
00004b50  68 65 61 64 65 72 29 2e  20 20 49 66 20 62 69 74  |header).  If bit|
00004b60  20 32 31 20 69 73 20 63  6c 65 61 72 2c 20 74 68  | 21 is clear, th|
00004b70  65 6e 20 74 68 69 73 20  69 6e 64 69 63 61 74 65  |en this indicate|
00004b80  73 20 74 68 61 74 0a 74  68 65 20 68 65 6c 70 65  |s that.the helpe|
00004b90  72 20 61 70 70 6c 69 63  61 74 69 6f 6e 20 6e 65  |r application ne|
00004ba0  65 64 73 20 74 6f 20 6f  70 65 6e 20 73 6f 6d 65  |eds to open some|
00004bb0  20 6b 69 6e 64 20 6f 66  20 65 64 69 74 6f 72 20  | kind of editor |
00004bc0  74 6f 20 61 6c 6c 6f 77  20 74 68 65 20 75 73 65  |to allow the use|
00004bd0  72 0a 74 6f 20 63 6f 6d  70 6c 65 74 65 20 74 68  |r.to complete th|
00004be0  65 20 65 2d 6d 61 69 6c  2e 20 20 54 68 65 20 65  |e e-mail.  The e|
00004bf0  64 69 74 6f 72 20 73 68  6f 75 6c 64 20 62 65 20  |ditor should be |
00004c00  69 6e 69 74 69 61 6c 69  73 65 64 20 77 69 74 68  |initialised with|
00004c10  20 74 68 65 20 63 6f 6e  74 65 6e 74 73 0a 6f 66  | the contents.of|
00004c20  20 74 68 65 20 66 6f 72  6d 20 66 69 6c 65 2e 20  | the form file. |
00004c30  20 49 66 20 69 74 20 69  73 20 67 6f 69 6e 67 20  | If it is going |
00004c40  74 6f 20 64 6f 20 61 6e  79 74 68 69 6e 67 20 61  |to do anything a|
00004c50  74 20 61 6c 6c 2c 20 74  68 65 6e 20 74 68 65 20  |t all, then the |
00004c60  68 65 6c 70 65 72 0a 61  70 70 6c 69 63 61 74 69  |helper.applicati|
00004c70  6f 6e 20 6d 75 73 74 20  72 65 70 6c 79 20 77 69  |on must reply wi|
00004c80  74 68 20 61 20 45 4d 61  69 6c 44 6f 6e 65 20 6d  |th a EMailDone m|
00004c90  65 73 73 61 67 65 2e 0a  0a 42 69 74 20 34 20 69  |essage...Bit 4 i|
00004ca0  73 20 75 73 65 64 20 62  79 20 41 72 63 57 65 62  |s used by ArcWeb|
00004cb0  20 74 6f 20 69 6e 64 69  63 61 74 65 20 74 6f 20  | to indicate to |
00004cc0  66 65 74 63 68 65 72 73  20 74 68 61 74 20 74 68  |fetchers that th|
00004cd0  65 20 75 73 65 72 20 68  61 73 0a 73 70 65 63 69  |e user has.speci|
00004ce0  66 69 63 61 6c 6c 79 20  72 65 71 75 65 73 74 65  |fically requeste|
00004cf0  64 20 74 68 61 74 20 69  6d 61 67 65 73 20 61 72  |d that images ar|
00004d00  65 20 6e 6f 74 20 66 65  74 63 68 65 64 20 61 6e  |e not fetched an|
00004d10  64 20 72 65 6e 64 65 72  65 64 2e 20 20 54 68 69  |d rendered.  Thi|
00004d20  73 0a 61 6c 6c 6f 77 73  20 27 69 6e 74 65 6c 6c  |s.allows 'intell|
00004d30  69 67 65 6e 74 27 20 48  54 54 50 20 66 65 74 63  |igent' HTTP fetc|
00004d40  68 65 72 73 20 6d 65 6e  74 69 6f 6e 65 64 20 61  |hers mentioned a|
00004d50  74 20 74 68 65 20 73 74  61 72 74 20 6f 66 20 74  |t the start of t|
00004d60  68 69 73 20 64 6f 63 75  6d 65 6e 74 2c 0a 74 6f  |his document,.to|
00004d70  20 70 61 72 73 65 20 74  68 65 20 48 54 4d 4c 20  | parse the HTML |
00004d80  72 65 73 70 6f 6e 73 65  73 20 74 6f 20 69 74 73  |responses to its|
00004d90  20 66 65 74 63 68 65 73  20 61 6e 64 20 69 6d 6d  | fetches and imm|
00004da0  65 64 69 61 74 65 6c 79  20 6b 69 63 6b 20 6f 66  |ediately kick of|
00004db0  66 20 74 68 65 0a 74 72  61 6e 73 66 65 72 73 20  |f the.transfers |
00004dc0  66 6f 72 20 74 68 65 73  65 20 69 6d 61 67 65 73  |for these images|
00004dd0  20 62 65 66 6f 72 65 20  74 68 65 20 72 65 6e 64  | before the rend|
00004de0  65 72 20 6f 66 20 74 68  65 20 64 6f 63 75 6d 65  |er of the docume|
00004df0  6e 74 20 62 65 67 69 6e  73 2e 20 20 49 66 20 62  |nt begins.  If b|
00004e00  69 74 0a 34 20 69 73 20  73 65 74 2c 20 74 68 65  |it.4 is set, the|
00004e10  6e 20 74 68 65 20 66 65  74 63 68 65 72 20 73 68  |n the fetcher sh|
00004e20  6f 75 6c 64 20 6e 6f 74  20 64 6f 20 74 68 69 73  |ould not do this|
00004e30  2e 0a 0a 42 69 74 73 20  31 30 2d 31 33 20 61 72  |...Bits 10-13 ar|
00004e40  65 20 72 65 6c 65 76 61  6e 74 20 6f 6e 6c 79 20  |e relevant only |
00004e50  66 6f 72 20 4d 65 73 73  61 67 65 5f 41 72 63 77  |for Message_Arcw|
00004e60  65 62 46 65 74 63 68 52  65 71 75 65 73 74 20 6d  |ebFetchRequest m|
00004e70  65 73 73 61 67 65 73 2e  20 20 54 68 65 79 0a 69  |essages.  They.i|
00004e80  6e 64 69 63 61 74 65 20  74 68 61 74 20 74 68 65  |ndicate that the|
00004e90  20 6f 70 65 72 61 74 69  6f 6e 20 69 73 20 74 61  | operation is ta|
00004ea0  72 67 65 74 65 64 20 61  74 20 64 69 72 65 63 74  |rgeted at direct|
00004eb0  20 6d 61 6e 69 70 75 6c  61 74 69 6f 6e 20 6f 66  | manipulation of|
00004ec0  20 74 68 65 20 55 52 4c  2e 0a 54 68 65 73 65 20  | the URL..These |
00004ed0  61 72 65 20 6e 6f 74 20  79 65 74 20 66 75 6c 6c  |are not yet full|
00004ee0  79 20 69 6d 70 6c 65 6d  65 6e 74 65 64 20 28 4d  |y implemented (M|
00004ef0  4b 44 49 52 20 61 6e 64  20 52 4d 44 49 52 20 61  |KDIR and RMDIR a|
00004f00  72 65 20 69 6d 70 6c 65  6d 65 6e 74 65 64 20 66  |re implemented f|
00004f10  6f 72 20 46 54 50 0a 6f  6e 6c 79 29 20 20 54 68  |or FTP.only)  Th|
00004f20  65 20 74 77 6f 20 64 69  72 65 63 74 6f 72 79 20  |e two directory |
00004f30  6f 70 73 20 72 65 71 75  69 72 65 20 61 20 74 65  |ops require a te|
00004f40  72 6d 69 6e 61 74 69 6e  67 20 2f 20 6f 6e 20 74  |rminating / on t|
00004f50  68 65 20 55 52 4c 2e 20  20 42 69 74 73 20 31 30  |he URL.  Bits 10|
00004f60  2d 31 33 0a 61 72 65 20  74 6f 20 62 65 20 74 72  |-13.are to be tr|
00004f70  65 61 74 65 64 20 61 73  20 61 20 34 2d 62 69 74  |eated as a 4-bit|
00004f80  20 75 6e 73 69 67 6e 65  64 20 76 61 6c 75 65 20  | unsigned value |
00004f90  72 61 74 68 65 72 20 74  68 61 6e 20 61 20 62 69  |rather than a bi|
00004fa0  74 2d 66 69 65 6c 64 2c  20 61 6e 64 20 73 6f 0a  |t-field, and so.|
00004fb0  69 74 20 4d 55 53 54 20  62 65 20 74 72 65 61 74  |it MUST be treat|
00004fc0  65 64 20 61 73 20 73 75  63 68 20 62 79 20 61 70  |ed as such by ap|
00004fd0  70 6c 69 63 61 74 69 6f  6e 73 2e 0a 0a 49 66 20  |plications...If |
00004fe0  62 69 74 20 31 30 20 69  73 20 73 65 74 20 28 64  |bit 10 is set (d|
00004ff0  69 72 65 63 74 6f 72 79  20 63 72 65 61 74 69 6f  |irectory creatio|
00005000  6e 29 2c 20 74 68 65 6e  20 61 6e 20 61 74 74 65  |n), then an atte|
00005010  6d 70 74 20 74 6f 20 63  72 65 61 74 65 20 74 68  |mpt to create th|
00005020  65 0a 64 69 72 65 63 74  6f 72 79 20 69 73 20 6d  |e.directory is m|
00005030  61 64 65 20 61 6e 64 20  75 70 6f 6e 20 61 20 73  |ade and upon a s|
00005040  75 63 63 65 73 73 66 75  6c 20 72 65 73 70 6f 6e  |uccessful respon|
00005050  73 65 2c 20 69 74 20 69  73 20 74 72 65 61 74 65  |se, it is treate|
00005060  64 20 61 73 20 69 66 20  61 0a 72 65 64 69 72 65  |d as if a.redire|
00005070  63 74 69 6f 6e 20 68 61  64 20 6f 63 63 75 72 72  |ction had occurr|
00005080  65 64 20 74 6f 20 74 68  65 20 73 61 6d 65 20 72  |ed to the same r|
00005090  65 73 6f 75 72 63 65 20  28 73 6f 20 74 68 65 20  |esource (so the |
000050a0  64 69 72 65 63 74 6f 72  79 20 79 6f 75 20 6a 75  |directory you ju|
000050b0  73 74 0a 63 72 65 61 74  65 64 20 69 73 20 6f 70  |st.created is op|
000050c0  65 6e 65 64 29 2e 20 20  48 6f 77 65 76 65 72 2c  |ened).  However,|
000050d0  20 69 66 20 62 69 74 20  31 31 20 69 73 20 41 4c  | if bit 11 is AL|
000050e0  53 4f 20 73 65 74 2c 20  74 68 69 73 20 72 65 64  |SO set, this red|
000050f0  69 72 65 63 74 69 6f 6e  20 64 6f 65 73 0a 4e 4f  |irection does.NO|
00005100  54 20 6f 63 63 75 72 2e  20 20 69 65 2e 20 61 20  |T occur.  ie. a |
00005110  76 61 6c 75 65 20 6f 66  20 31 20 6d 65 61 6e 73  |value of 1 means|
00005120  20 63 72 65 61 74 65 20  64 69 72 65 63 74 6f 72  | create director|
00005130  79 20 61 6e 64 20 65 6e  74 65 72 20 69 74 3b 20  |y and enter it; |
00005140  61 20 76 61 6c 75 65 0a  6f 66 20 33 20 6d 65 61  |a value.of 3 mea|
00005150  6e 73 20 63 72 65 61 74  65 20 64 69 72 65 63 74  |ns create direct|
00005160  6f 72 79 20 62 75 74 20  64 6f 20 6e 6f 74 20 65  |ory but do not e|
00005170  6e 74 65 72 20 69 74 3b  20 61 20 76 61 6c 75 65  |nter it; a value|
00005180  20 6f 66 20 32 20 6d 65  61 6e 73 0a 64 65 6c 65  | of 2 means.dele|
00005190  74 65 20 64 69 72 65 63  74 6f 72 79 2e 20 20 41  |te directory.  A|
000051a0  20 76 61 6c 75 65 20 6f  66 20 34 20 6d 65 61 6e  | value of 4 mean|
000051b0  73 20 64 65 6c 65 74 65  20 74 68 65 20 6f 62 6a  |s delete the obj|
000051c0  65 63 74 2c 20 61 6e 64  20 61 20 76 61 6c 75 65  |ect, and a value|
000051d0  20 6f 66 20 38 0a 6d 65  61 6e 73 20 72 65 6e 61  | of 8.means rena|
000051e0  6d 65 20 74 68 65 20 6f  62 6a 65 63 74 2e 0a 0a  |me the object...|
000051f0  0a 0a 0a 4d 65 73 73 61  67 65 5f 41 72 63 77 65  |...Message_Arcwe|
00005200  62 41 62 6f 72 74 52 65  71 75 65 73 74 0a 3d 3d  |bAbortRequest.==|
00005210  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00005220  3d 3d 3d 3d 3d 3d 3d 3d  0a 0a 55 70 6f 6e 20 72  |========..Upon r|
00005230  65 63 65 69 70 74 20 6f  66 20 74 68 69 73 20 6d  |eceipt of this m|
00005240  65 73 73 61 67 65 2c 20  74 68 65 20 66 65 74 63  |essage, the fetc|
00005250  68 65 72 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |her application |
00005260  72 65 74 72 69 65 76 69  6e 67 20 61 20 55 52 4c  |retrieving a URL|
00005270  20 75 6e 64 65 72 0a 74  68 65 20 67 69 76 65 6e  | under.the given|
00005280  20 41 72 63 57 65 62 20  50 72 69 76 61 74 65 20  | ArcWeb Private |
00005290  68 61 6e 64 6c 65 2c 20  73 68 6f 75 6c 64 20 74  |handle, should t|
000052a0  65 72 6d 69 6e 61 74 65  20 74 68 65 20 66 65 74  |erminate the fet|
000052b0  63 68 20 77 69 74 68 20  61 6e 20 65 72 72 6f 72  |ch with an error|
000052c0  2e 20 0a 49 74 20 73 68  6f 75 6c 64 20 61 63 6b  |. .It should ack|
000052d0  6e 6f 77 6c 65 64 67 65  20 74 68 69 73 20 6d 65  |nowledge this me|
000052e0  73 73 61 67 65 20 77 69  74 68 20 4d 65 73 73 61  |ssage with Messa|
000052f0  67 65 5f 41 72 63 77 65  62 46 65 74 63 68 44 6f  |ge_ArcwebFetchDo|
00005300  6e 65 2c 20 61 66 74 65  72 0a 73 65 74 74 69 6e  |ne, after.settin|
00005310  67 20 74 68 65 20 66 6c  61 67 73 20 63 6f 72 72  |g the flags corr|
00005320  65 63 74 6c 79 20 69 6e  64 69 63 61 74 69 6e 67  |ectly indicating|
00005330  20 73 6f 6d 65 20 6b 69  6e 64 20 6f 66 20 65 72  | some kind of er|
00005340  72 6f 72 2e 20 20 41 6c  6c 20 61 63 74 69 76 65  |ror.  All active|
00005350  0a 66 65 74 63 68 65 73  20 61 73 73 6f 63 69 61  |.fetches associa|
00005360  74 65 64 20 77 69 74 68  20 74 68 65 20 68 61 6e  |ted with the han|
00005370  64 6c 65 20 73 68 6f 75  6c 64 20 62 65 20 73 74  |dle should be st|
00005380  6f 70 70 65 64 2e 20 20  54 68 69 73 20 61 6c 6c  |opped.  This all|
00005390  6f 77 73 0a 69 6e 74 65  6c 6c 69 67 65 6e 74 20  |ows.intelligent |
000053a0  66 65 74 63 68 65 72 73  20 74 6f 20 73 74 6f 70  |fetchers to stop|
000053b0  20 61 6e 79 20 61 75 74  6f 6d 61 74 69 63 20 66  | any automatic f|
000053c0  65 74 63 68 65 73 20 74  68 61 74 20 74 68 65 79  |etches that they|
000053d0  20 6d 69 67 68 74 20 68  61 76 65 0a 69 73 73 75  | might have.issu|
000053e0  65 64 2c 20 74 6f 20 66  65 74 63 68 20 69 6e 6c  |ed, to fetch inl|
000053f0  69 6e 65 64 20 69 6d 61  67 65 73 2e 0a 0a 41 74  |ined images...At|
00005400  20 74 68 65 20 63 68 6f  69 63 65 20 6f 66 20 74  | the choice of t|
00005410  68 65 20 46 45 54 43 48  45 52 2c 20 69 74 20 6d  |he FETCHER, it m|
00005420  61 79 20 64 65 63 69 64  65 20 74 6f 20 69 67 6e  |ay decide to ign|
00005430  6f 72 65 20 74 68 65 20  41 62 6f 72 74 52 65 71  |ore the AbortReq|
00005440  75 65 73 74 20 61 6e 64  0a 63 6f 6e 74 69 6e 75  |uest and.continu|
00005450  65 20 66 65 74 63 68 69  6e 67 20 64 61 74 61 2e  |e fetching data.|
00005460  20 20 54 68 65 20 6d 6f  73 74 20 6f 62 76 69 6f  |  The most obvio|
00005470  75 73 20 73 69 74 75 61  74 69 6f 6e 20 69 6e 20  |us situation in |
00005480  77 68 69 63 68 20 74 68  69 73 20 69 73 20 75 73  |which this is us|
00005490  65 66 75 6c 0a 69 73 20  69 66 20 74 68 65 20 66  |eful.is if the f|
000054a0  65 74 63 68 20 69 73 20  6c 61 72 67 65 20 61 6e  |etch is large an|
000054b0  64 20 6e 65 61 72 6c 79  20 63 6f 6d 70 6c 65 74  |d nearly complet|
000054c0  65 20 61 6e 79 77 61 79  20 2d 20 73 61 79 20 6c  |e anyway - say l|
000054d0  65 73 73 20 74 68 61 6e  20 31 20 73 65 63 6f 6e  |ess than 1 secon|
000054e0  64 0a 65 73 74 69 6d 61  74 65 64 20 74 6f 20 63  |d.estimated to c|
000054f0  6f 6d 70 6c 65 74 69 6f  6e 2e 20 20 59 6f 75 20  |ompletion.  You |
00005500  6d 75 73 74 20 61 63 6b  6e 6f 77 6c 65 64 67 65  |must acknowledge|
00005510  20 74 68 65 20 41 62 6f  72 74 52 65 71 75 65 73  | the AbortReques|
00005520  74 20 77 69 74 68 20 61  0a 46 65 74 63 68 44 6f  |t with a.FetchDo|
00005530  6e 65 2c 20 69 6e 20 74  68 65 20 75 73 75 61 6c  |ne, in the usual|
00005540  20 6d 61 6e 6e 65 72 20  28 69 65 2e 20 79 6f 75  | manner (ie. you|
00005550  20 63 61 6e 20 61 63 6b  6e 6f 77 6c 65 64 67 65  | can acknowledge|
00005560  20 74 68 65 20 6d 65 73  73 61 67 65 20 66 69 72  | the message fir|
00005570  73 74 2c 0a 74 68 65 6e  20 73 65 6e 64 20 61 20  |st,.then send a |
00005580  72 65 70 6c 79 20 6c 61  74 65 72 29 2e 20 20 54  |reply later).  T|
00005590  68 65 20 61 6d 6f 75 6e  74 20 6f 66 20 74 69 6d  |he amount of tim|
000055a0  65 20 6d 61 79 20 62 65  20 63 6f 6e 66 69 67 75  |e may be configu|
000055b0  72 61 62 6c 65 20 69 6e  20 74 68 65 0a 66 65 74  |rable in the.fet|
000055c0  63 68 65 72 2c 20 62 75  74 20 73 68 6f 75 6c 64  |cher, but should|
000055d0  20 6e 6f 74 20 65 78 63  65 65 64 20 61 20 66 65  | not exceed a fe|
000055e0  77 20 73 65 63 6f 6e 64  73 20 61 73 20 74 68 69  |w seconds as thi|
000055f0  73 20 6d 61 79 20 63 6f  6e 66 75 73 65 20 74 68  |s may confuse th|
00005600  65 20 75 73 65 72 2e 0a  0a 0a 0a 4d 65 73 73 61  |e user.....Messa|
00005610  67 65 5f 41 72 63 77 65  62 54 72 61 6e 73 66 65  |ge_ArcwebTransfe|
00005620  72 53 74 61 74 75 73 0a  3d 3d 3d 3d 3d 3d 3d 3d  |rStatus.========|
00005630  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00005640  3d 3d 3d 3d 0a 0a 41 20  66 65 74 63 68 65 72 20  |====..A fetcher |
00005650  77 68 69 63 68 20 77 69  73 68 65 73 20 74 6f 20  |which wishes to |
00005660  69 6e 66 6f 72 6d 20 74  68 65 20 75 73 65 72 20  |inform the user |
00005670  6f 66 20 74 68 65 20 73  74 61 74 75 73 20 6f 66  |of the status of|
00005680  20 74 68 65 20 63 6f 6d  6d 75 6e 69 63 61 74 69  | the communicati|
00005690  6f 6e 0a 62 65 74 77 65  65 6e 20 69 74 73 65 6c  |on.between itsel|
000056a0  66 20 61 6e 64 20 74 68  65 20 72 65 6d 6f 74 65  |f and the remote|
000056b0  20 69 6e 66 6f 72 6d 61  74 69 6f 6e 20 73 65 72  | information ser|
000056c0  76 65 72 20 28 46 54 50  2c 20 48 54 54 50 2c 20  |ver (FTP, HTTP, |
000056d0  47 6f 70 68 65 72 2c 20  65 74 63 2e 2e 29 0a 6d  |Gopher, etc..).m|
000056e0  61 79 20 75 73 65 20 74  68 69 73 20 6d 65 73 73  |ay use this mess|
000056f0  61 67 65 20 74 6f 20 69  6e 66 6f 72 6d 20 74 68  |age to inform th|
00005700  65 20 62 72 6f 77 73 65  72 20 6f 66 20 69 74 73  |e browser of its|
00005710  20 70 72 6f 67 72 65 73  73 2e 20 20 54 68 65 20  | progress.  The |
00005720  34 20 73 69 7a 65 0a 65  6c 65 6d 65 6e 74 73 20  |4 size.elements |
00005730  69 6e 20 74 68 65 20 6d  65 73 73 61 67 65 20 6d  |in the message m|
00005740  61 79 20 62 65 20 75 73  65 64 20 62 79 20 74 68  |ay be used by th|
00005750  65 20 62 72 6f 77 73 65  72 20 74 6f 20 63 72 65  |e browser to cre|
00005760  61 74 65 20 61 20 67 72  61 70 68 69 63 61 6c 0a  |ate a graphical.|
00005770  72 65 70 72 65 73 65 6e  74 61 74 69 6f 6e 20 6f  |representation o|
00005780  66 20 74 68 65 20 63 6f  6d 6d 75 6e 69 63 61 74  |f the communicat|
00005790  69 6f 6e 20 73 74 61 74  75 73 2e 20 20 56 61 6c  |ion status.  Val|
000057a0  75 65 73 20 6f 66 20 2d  31 20 73 68 6f 75 6c 64  |ues of -1 should|
000057b0  20 62 65 20 6b 6e 6f 77  6e 0a 66 6f 72 20 75 6e  | be known.for un|
000057c0  6b 6e 6f 77 6e 20 71 75  61 6e 74 69 74 69 65 73  |known quantities|
000057d0  20 28 30 20 69 73 20 72  65 73 65 72 76 65 64 20  | (0 is reserved |
000057e0  66 6f 72 20 69 6e 64 69  63 61 74 69 6e 67 20 6e  |for indicating n|
000057f0  6f 20 62 79 74 65 73 20  79 65 74 0a 74 72 61 6e  |o bytes yet.tran|
00005800  73 66 65 72 72 65 64 20  6f 72 20 65 78 70 65 63  |sferred or expec|
00005810  74 65 64 29 2e 20 20 54  68 65 20 62 72 6f 77 73  |ted).  The brows|
00005820  65 72 20 6d 61 79 20 63  68 6f 6f 73 65 20 74 6f  |er may choose to|
00005830  20 69 67 6e 6f 72 65 20  74 68 65 73 65 20 76 61  | ignore these va|
00005840  6c 75 65 73 20 61 6e 64  0a 72 65 6c 79 20 6f 6e  |lues and.rely on|
00005850  20 74 68 65 20 64 65 73  63 72 69 70 74 69 6f 6e  | the description|
00005860  20 73 74 72 69 6e 67 2c  20 77 68 69 63 68 20 73  | string, which s|
00005870  68 6f 75 6c 64 20 73 61  79 20 73 6f 6d 65 74 68  |hould say someth|
00005880  69 6e 67 20 6c 69 6b 65  3a 0a 0a 31 30 30 30 20  |ing like:..1000 |
00005890  62 79 74 65 73 20 6f 75  74 20 6f 66 20 32 30 30  |bytes out of 200|
000058a0  30 20 62 79 74 65 20 64  6f 63 75 6d 65 6e 74 20  |0 byte document |
000058b0  72 65 61 64 0a 30 20 62  79 74 65 73 20 6f 75 74  |read.0 bytes out|
000058c0  20 6f 66 20 31 36 33 38  34 20 62 79 74 65 73 20  | of 16384 bytes |
000058d0  6f 66 20 69 6e 6c 69 6e  65 64 20 69 6d 61 67 65  |of inlined image|
000058e0  20 72 65 61 64 0a 4c 6f  6f 6b 69 6e 67 20 75 70  | read.Looking up|
000058f0  20 6c 6f 75 69 73 2e 65  63 73 2e 73 6f 74 6f 6e  | louis.ecs.soton|
00005900  2e 61 63 2e 75 6b 20 2e  2e 2e 0a 0a 6f 72 20 77  |.ac.uk .....or w|
00005910  68 61 74 65 76 65 72 20  69 74 20 66 65 65 6c 73  |hatever it feels|
00005920  20 69 73 20 61 70 70 72  6f 70 72 69 61 74 65 2e  | is appropriate.|
00005930  20 20 46 65 74 63 68 65  72 20 77 72 69 74 65 72  |  Fetcher writer|
00005940  73 20 6d 75 73 74 20 72  65 63 6f 67 6e 69 73 65  |s must recognise|
00005950  20 74 68 61 74 0a 74 68  65 20 62 72 6f 77 73 65  | that.the browse|
00005960  72 20 6d 61 79 20 61 74  74 65 6d 70 74 20 74 6f  |r may attempt to|
00005970  20 64 69 73 70 6c 61 79  20 74 68 65 73 65 20 6d  | display these m|
00005980  65 73 73 61 67 65 73 20  69 6e 20 61 6e 20 69 63  |essages in an ic|
00005990  6f 6e 2c 20 61 6e 64 20  77 69 6c 6c 20 68 65 6e  |on, and will hen|
000059a0  63 65 0a 62 65 20 69 73  73 75 69 6e 67 20 72 65  |ce.be issuing re|
000059b0  64 72 61 77 20 72 65 71  75 65 73 74 73 20 28 65  |draw requests (e|
000059c0  76 65 6e 20 69 66 20 6f  6e 6c 79 20 76 69 61 20  |ven if only via |
000059d0  57 69 6d 70 5f 53 65 74  49 63 6f 6e 53 74 61 74  |Wimp_SetIconStat|
000059e0  65 29 20 66 6f 72 20 65  61 63 68 0a 6d 65 73 73  |e) for each.mess|
000059f0  61 67 65 20 72 65 63 65  69 76 65 64 2e 20 20 54  |age received.  T|
00005a00  68 65 20 66 65 74 63 68  65 72 20 73 68 6f 75 6c  |he fetcher shoul|
00005a10  64 20 70 72 6f 76 69 64  65 20 61 20 66 61 63 69  |d provide a faci|
00005a20  6c 69 74 79 20 66 6f 72  20 64 69 73 61 62 6c 69  |lity for disabli|
00005a30  6e 67 20 74 68 65 73 65  0a 6d 65 73 73 61 67 65  |ng these.message|
00005a40  73 2c 20 61 6e 64 20 6e  6f 74 20 73 65 6e 64 20  |s, and not send |
00005a50  74 68 65 6d 20 74 6f 6f  20 66 72 65 71 75 65 6e  |them too frequen|
00005a60  74 6c 79 20 2d 20 74 77  6f 20 6f 72 20 74 68 72  |tly - two or thr|
00005a70  65 65 20 74 69 6d 65 73  20 70 65 72 20 73 65 63  |ee times per sec|
00005a80  6f 6e 64 0a 69 73 20 71  75 69 74 65 20 65 6e 6f  |ond.is quite eno|
00005a90  75 67 68 2e 0a 0a 0a 49  66 20 79 6f 75 20 61 72  |ugh....If you ar|
00005aa0  65 20 67 6f 69 6e 67 20  74 6f 20 70 72 6f 76 69  |e going to provi|
00005ab0  64 65 20 62 79 74 65 20  63 6f 75 6e 74 73 20 61  |de byte counts a|
00005ac0  73 20 69 6e 20 74 68 65  20 65 78 61 6d 70 6c 65  |s in the example|
00005ad0  73 20 61 62 6f 76 65 2c  20 49 20 48 49 47 48 4c  |s above, I HIGHL|
00005ae0  59 0a 52 45 43 4f 4d 4d  45 4e 44 20 75 73 69 6e  |Y.RECOMMEND usin|
00005af0  67 20 4f 53 5f 43 6f 6e  76 65 72 74 28 46 69 78  |g OS_Convert(Fix|
00005b00  65 64 29 46 69 6c 65 53  69 7a 65 20 74 6f 20 67  |ed)FileSize to g|
00005b10  69 76 65 20 61 20 75 73  65 66 75 6c 20 64 69 73  |ive a useful dis|
00005b20  70 6c 61 79 2e 20 20 49  74 0a 69 73 6e 27 74 20  |play.  It.isn't |
00005b30  74 65 72 72 69 62 6c 79  20 75 73 65 66 75 6c 20  |terribly useful |
00005b40  74 6f 20 6b 6e 6f 77 20  74 68 61 74 20 36 35 35  |to know that 655|
00005b50  33 39 20 62 79 74 65 73  20 6f 75 74 20 6f 66 20  |39 bytes out of |
00005b60  32 36 38 34 33 35 34 35  36 20 62 79 74 65 73 20  |268435456 bytes |
00005b70  68 61 76 65 0a 62 65 65  6e 20 72 65 63 65 69 76  |have.been receiv|
00005b80  65 64 2e 20 20 46 61 72  20 62 65 74 74 65 72 2c  |ed.  Far better,|
00005b90  20 65 76 65 6e 20 69 66  20 73 6c 69 67 68 74 6c  | even if slightl|
00005ba0  79 20 69 6e 61 63 63 75  72 61 74 65 2c 20 74 6f  |y inaccurate, to|
00005bb0  20 73 61 79 20 27 36 34  4b 20 6f 75 74 20 6f 66  | say '64K out of|
00005bc0  0a 32 35 36 4d 27 20 61  6e 64 20 6d 61 79 62 65  |.256M' and maybe|
00005bd0  20 73 68 6f 77 20 74 68  65 20 70 65 72 63 65 6e  | show the percen|
00005be0  74 61 67 65 20 74 68 61  74 20 72 65 70 72 65 73  |tage that repres|
00005bf0  65 6e 74 73 2e 0a 0a 52  65 74 75 72 6e 65 64 20  |ents...Returned |
00005c00  6d 65 73 73 61 67 65 73  20 73 68 6f 75 6c 64 20  |messages should |
00005c10  74 79 70 69 63 61 6c 6c  79 20 62 65 20 6c 65 73  |typically be les|
00005c20  73 20 74 68 61 6e 20 61  62 6f 75 74 20 36 34 20  |s than about 64 |
00005c30  63 68 61 72 61 63 74 65  72 73 20 6c 6f 6e 67 2e  |characters long.|
00005c40  0a 0a 54 68 65 20 62 72  6f 77 73 65 72 20 6d 61  |..The browser ma|
00005c50  79 20 69 67 6e 6f 72 65  20 74 68 65 73 65 20 6d  |y ignore these m|
00005c60  65 73 73 61 67 65 73 2c  20 61 6e 64 20 73 6f 20  |essages, and so |
00005c70  74 68 65 20 66 65 74 63  68 65 72 20 73 68 6f 75  |the fetcher shou|
00005c80  6c 64 20 6e 6f 74 20 73  65 6e 64 0a 74 68 65 6d  |ld not send.them|
00005c90  20 72 65 63 6f 72 64 65  64 20 64 65 6c 69 76 65  | recorded delive|
00005ca0  72 79 20 28 57 69 6d 70  20 65 76 65 6e 74 20 74  |ry (Wimp event t|
00005cb0  79 70 65 20 31 38 29 2e  0a 0a 54 68 65 20 66 6c  |ype 18)...The fl|
00005cc0  61 67 73 20 66 6f 72 20  4d 65 73 73 61 67 65 5f  |ags for Message_|
00005cd0  41 72 63 77 65 62 54 72  61 6e 73 66 65 72 53 74  |ArcwebTransferSt|
00005ce0  61 74 75 73 3a 0a 0a 20  20 20 20 20 20 20 20 62  |atus:..        b|
00005cf0  69 74 20 20 20 30 20 20  20 20 20 20 20 20 20 49  |it   0         I|
00005d00  66 20 73 65 74 2c 20 74  72 61 6e 73 6d 69 73 73  |f set, transmiss|
00005d10  69 6f 6e 20 69 73 20 69  6e 20 70 72 6f 67 72 65  |ion is in progre|
00005d20  73 73 0a 20 20 20 20 20  20 20 20 62 69 74 20 20  |ss.        bit  |
00005d30  20 31 20 20 20 20 20 20  20 20 20 49 66 20 73 65  | 1         If se|
00005d40  74 2c 20 72 65 63 65 70  74 69 6f 6e 20 69 73 20  |t, reception is |
00005d50  69 6e 20 70 72 6f 67 72  65 73 73 0a 20 20 20 20  |in progress.    |
00005d60  20 20 20 20 62 69 74 20  20 20 32 20 20 20 20 20  |    bit   2     |
00005d70  20 20 20 20 49 66 20 73  65 74 2c 20 74 72 61 6e  |    If set, tran|
00005d80  73 6d 69 73 73 69 6f 6e  20 69 73 20 63 6f 6d 70  |smission is comp|
00005d90  6c 65 74 65 0a 20 20 20  20 20 20 20 20 62 69 74  |lete.        bit|
00005da0  20 20 20 33 20 20 20 20  20 20 20 20 20 49 66 20  |   3         If |
00005db0  73 65 74 2c 20 72 65 63  65 70 74 69 6f 6e 20 69  |set, reception i|
00005dc0  73 20 63 6f 6d 70 6c 65  74 65 0a 20 20 20 20 20  |s complete.     |
00005dd0  20 20 20 62 69 74 20 20  20 34 20 20 20 20 20 20  |   bit   4      |
00005de0  20 20 20 49 66 20 73 65  74 2c 20 6f 74 68 65 72  |   If set, other|
00005df0  20 63 6f 6d 6d 73 2e 20  61 72 65 20 69 6e 20 70  | comms. are in p|
00005e00  72 6f 67 72 65 73 73 20  65 67 2e 20 44 4e 53 20  |rogress eg. DNS |
00005e10  6c 6f 6f 6b 75 70 0a 20  20 20 20 20 20 20 20 62  |lookup.        b|
00005e20  69 74 73 20 20 35 20 2d  20 33 31 20 20 20 20 52  |its  5 - 31    R|
00005e30  65 73 65 72 76 65 64 0a  0a 0a 0a 4f 74 68 65 72  |eserved....Other|
00005e40  20 4e 6f 74 65 73 0a 3d  3d 3d 3d 3d 3d 3d 3d 3d  | Notes.=========|
00005e50  3d 3d 0a 0a 59 6f 75 20  6d 75 73 74 20 70 72 65  |==..You must pre|
00005e60  73 65 72 76 65 20 74 68  65 20 41 72 63 57 65 62  |serve the ArcWeb|
00005e70  20 50 72 69 76 61 74 65  20 48 61 6e 64 6c 65 2e  | Private Handle.|
00005e80  20 20 54 68 69 73 20 69  73 20 61 20 70 72 69 76  |  This is a priv|
00005e90  61 74 65 20 70 6f 69 6e  74 65 72 20 74 6f 20 61  |ate pointer to a|
00005ea0  0a 70 61 72 74 20 6f 66  20 41 72 63 57 65 62 27  |.part of ArcWeb'|
00005eb0  73 20 61 70 70 6c 69 63  61 74 69 6f 6e 20 6d 65  |s application me|
00005ec0  6d 6f 72 79 20 75 73 65  64 20 74 6f 20 64 69 73  |mory used to dis|
00005ed0  74 72 69 62 75 74 65 20  74 68 65 20 72 65 70 6c  |tribute the repl|
00005ee0  69 65 73 20 77 68 69 63  68 0a 41 72 63 57 65 62  |ies which.ArcWeb|
00005ef0  20 72 65 63 65 69 76 65  73 2e 0a 0a 57 68 65 6e  | receives...When|
00005f00  20 73 70 65 63 69 66 79  69 6e 67 20 61 6e 20 65  | specifying an e|
00005f10  78 70 69 72 79 20 64 61  74 65 20 69 6e 20 46 65  |xpiry date in Fe|
00005f20  74 63 68 44 6f 6e 65 20  6d 65 73 73 61 67 65 73  |tchDone messages|
00005f30  2c 20 69 66 20 79 6f 75  20 69 6e 74 65 6e 64 20  |, if you intend |
00005f40  74 6f 0a 73 70 65 63 69  66 79 20 61 20 64 61 74  |to.specify a dat|
00005f50  65 20 72 61 74 68 65 72  20 74 68 61 6e 20 61 6c  |e rather than al|
00005f60  6c 6f 77 20 74 68 65 20  64 65 66 61 75 6c 74 20  |low the default |
00005f70  74 6f 20 62 65 20 75 73  65 64 2c 20 74 68 65 6e  |to be used, then|
00005f80  20 79 6f 75 20 6d 75 73  74 0a 73 70 65 63 69 66  | you must.specif|
00005f90  79 20 74 68 69 73 20 61  73 20 61 6e 20 65 78 61  |y this as an exa|
00005fa0  63 74 20 64 61 74 65 2e  20 20 69 65 2e 20 6e 6f  |ct date.  ie. no|
00005fb0  74 20 72 65 6c 61 74 69  76 65 20 74 6f 20 74 68  |t relative to th|
00005fc0  65 20 63 75 72 72 65 6e  74 20 74 69 6d 65 2c 20  |e current time, |
00005fd0  79 6f 75 0a 6d 75 73 74  20 61 64 64 20 69 74 20  |you.must add it |
00005fe0  75 70 20 79 6f 75 72 73  65 6c 66 2e 20 20 48 54  |up yourself.  HT|
00005ff0  54 50 20 73 65 72 76 65  72 73 20 6d 61 79 20 73  |TP servers may s|
00006000  75 70 70 6c 79 20 65 78  70 69 72 79 20 64 61 74  |upply expiry dat|
00006010  65 73 20 6f 6e 20 64 6f  63 75 6d 65 6e 74 73 0a  |es on documents.|
00006020  77 68 69 63 68 20 74 68  65 79 20 72 65 74 75 72  |which they retur|
00006030  6e 2e 20 20 54 68 65 73  65 20 73 68 6f 75 6c 64  |n.  These should|
00006040  20 62 65 20 68 6f 6e 6f  75 72 65 64 20 28 73 65  | be honoured (se|
00006050  65 20 64 6f 63 75 6d 65  6e 74 61 74 69 6f 6e 20  |e documentation |
00006060  6f 66 20 74 68 65 0a 54  65 72 72 69 74 6f 72 79  |of the.Territory|
00006070  20 6d 6f 64 75 6c 65 27  73 20 68 61 6e 64 6c 69  | module's handli|
00006080  6e 67 20 6f 66 20 54 69  6d 65 20 26 20 44 61 74  |ng of Time & Dat|
00006090  65 29 2e 0a 0a 54 68 65  20 27 73 6f 75 72 63 65  |e)...The 'source|
000060a0  27 2c 20 27 74 65 6d 70  6f 72 61 72 79 27 2c 20  |', 'temporary', |
000060b0  27 64 69 61 67 72 61 6d  27 20 61 6e 64 20 27 6c  |'diagram' and 'l|
000060c0  69 6e 6b 27 20 77 6f 72  64 73 20 69 6e 20 74 68  |ink' words in th|
000060d0  65 20 46 65 74 63 68 52  65 71 75 65 73 74 0a 61  |e FetchRequest.a|
000060e0  6e 64 20 52 65 6e 64 65  72 52 65 71 75 65 73 74  |nd RenderRequest|
000060f0  20 6d 65 73 73 61 67 65  73 20 61 72 65 20 52 49  | messages are RI|
00006100  53 43 20 4f 53 20 66 69  6c 65 20 68 61 6e 64 6c  |SC OS file handl|
00006110  65 73 20 74 6f 20 74 68  65 20 61 70 70 72 6f 70  |es to the approp|
00006120  72 69 61 74 65 20 66 69  6c 65 73 0a 69 6e 20 41  |riate files.in A|
00006130  72 63 57 65 62 27 73 20  63 61 63 68 65 2e 20 20  |rcWeb's cache.  |
00006140  49 66 20 79 6f 75 20 61  63 6b 6e 6f 77 6c 65 64  |If you acknowled|
00006150  67 65 20 65 69 74 68 65  72 20 6f 66 20 74 68 65  |ge either of the|
00006160  20 52 65 71 75 65 73 74  20 6d 65 73 73 61 67 65  | Request message|
00006170  73 2c 20 59 4f 55 0a 61  72 65 20 72 65 73 70 6f  |s, YOU.are respo|
00006180  6e 73 69 62 6c 65 20 66  6f 72 20 63 6c 6f 73 69  |nsible for closi|
00006190  6e 67 20 74 68 65 20 66  69 6c 65 73 20 28 69 65  |ng the files (ie|
000061a0  2e 20 70 61 73 73 69 6e  67 20 74 68 65 20 68 61  |. passing the ha|
000061b0  6e 64 6c 65 20 74 6f 20  4f 53 5f 46 69 6e 64 20  |ndle to OS_Find |
000061c0  30 29 2e 0a 59 6f 75 20  6d 75 73 74 20 63 6c 6f  |0)..You must clo|
000061d0  73 65 20 41 4c 4c 20 74  68 65 20 66 69 6c 65 20  |se ALL the file |
000061e0  68 61 6e 64 6c 65 73 20  69 6e 20 74 68 65 20 6d  |handles in the m|
000061f0  65 73 73 61 67 65 20 65  76 65 6e 20 69 66 20 79  |essage even if y|
00006200  6f 75 20 64 6f 6e 27 74  20 75 73 65 0a 74 68 65  |ou don't use.the|
00006210  6d 20 61 6c 6c 2e 20 20  54 68 65 20 72 65 61 73  |m all.  The reas|
00006220  6f 6e 20 66 6f 72 20 70  61 73 73 69 6e 67 20 68  |on for passing h|
00006230  61 6e 64 6c 65 73 20 61  72 6f 75 6e 64 20 69 73  |andles around is|
00006240  20 74 68 61 74 20 66 69  6c 65 6e 61 6d 65 73 20  | that filenames |
00006250  20 77 6f 6e 27 74 0a 6e  65 63 65 73 73 61 72 69  | won't.necessari|
00006260  6c 79 20 66 69 74 20 69  6e 20 74 68 65 20 6d 65  |ly fit in the me|
00006270  73 73 61 67 65 20 62 75  66 66 65 72 20 28 70 61  |ssage buffer (pa|
00006280  72 74 69 63 75 6c 61 72  6c 79 20 77 68 65 6e 20  |rticularly when |
00006290  79 6f 75 20 77 61 6e 74  20 74 6f 20 70 61 73 73  |you want to pass|
000062a0  20 35 0a 6f 66 20 74 68  65 6d 29 2e 20 20 49 66  | 5.of them).  If|
000062b0  20 6a 75 73 74 20 68 61  76 69 6e 67 20 74 68 65  | just having the|
000062c0  20 68 61 6e 64 6c 65 20  69 73 20 69 6e 63 6f 6e  | handle is incon|
000062d0  76 65 6e 69 65 6e 74 2c  20 79 6f 75 20 73 68 6f  |venient, you sho|
000062e0  75 6c 64 20 75 73 65 20  4f 53 5f 41 72 67 73 0a  |uld use OS_Args.|
000062f0  37 20 74 6f 20 63 6f 6e  76 65 72 74 20 74 68 65  |7 to convert the|
00006300  20 68 61 6e 64 6c 65 20  69 6e 74 6f 20 61 20 66  | handle into a f|
00006310  69 6c 65 6e 61 6d 65 20  28 61 73 20 21 41 72 63  |ilename (as !Arc|
00006320  57 65 62 4c 63 6c 20 64  6f 65 73 29 2c 20 63 6c  |WebLcl does), cl|
00006330  6f 73 65 20 74 68 65 20  66 69 6c 65 0a 61 6e 64  |ose the file.and|
00006340  20 72 65 6f 70 65 6e 20  69 74 20 68 6f 77 20 79  | reopen it how y|
00006350  6f 75 20 77 61 6e 74 20  74 6f 20 64 6f 20 69 74  |ou want to do it|
00006360  2e 20 20 42 55 54 20 42  45 57 41 52 45 3a 20 6f  |.  BUT BEWARE: o|
00006370  6e 6c 79 20 64 6f 20 74  68 69 73 20 69 66 20 79  |nly do this if y|
00006380  6f 75 20 61 72 65 0a 67  6f 69 6e 67 20 74 6f 20  |ou are.going to |
00006390  61 63 6b 6e 6f 77 6c 65  64 67 65 20 74 68 65 20  |acknowledge the |
000063a0  6d 65 73 73 61 67 65 20  28 6f 74 68 65 72 77 69  |message (otherwi|
000063b0  73 65 20 6f 74 68 65 72  20 72 65 63 69 70 69 65  |se other recipie|
000063c0  6e 74 73 20 6f 66 20 74  68 65 20 6d 65 73 73 61  |nts of the messa|
000063d0  67 65 0a 77 69 6c 6c 20  66 69 6e 64 20 74 68 61  |ge.will find tha|
000063e0  74 20 74 68 65 79 20 68  61 76 65 20 61 6e 20 69  |t they have an i|
000063f0  6c 6c 65 67 61 6c 20 66  69 6c 65 20 68 61 6e 64  |llegal file hand|
00006400  6c 65 20 69 6e 20 74 68  65 20 6d 65 73 73 61 67  |le in the messag|
00006410  65 29 2e 20 20 46 6f 72  0a 46 65 74 63 68 52 65  |e).  For.FetchRe|
00006420  71 75 65 73 74 2c 20 27  73 6f 75 72 63 65 27 20  |quest, 'source' |
00006430  69 73 20 6f 70 65 6e 65  64 20 61 73 20 72 65 61  |is opened as rea|
00006440  64 2f 77 72 69 74 65 20  28 4f 53 5f 46 69 6e 64  |d/write (OS_Find|
00006450  20 30 78 38 33 20 2d 20  5b 49 20 61 6c 77 61 79  | 0x83 - [I alway|
00006460  73 0a 74 68 6f 75 67 68  74 20 74 68 61 74 20 77  |s.thought that w|
00006470  61 73 20 66 6f 72 20 6f  75 74 70 75 74 20 6f 6e  |as for output on|
00006480  6c 79 2c 20 62 75 74 20  6d 79 20 52 4f 33 20 50  |ly, but my RO3 P|
00006490  52 4d 73 20 73 61 79 20  6f 74 68 65 72 77 69 73  |RMs say otherwis|
000064a0  65 5d 29 2e 20 20 46 6f  72 0a 52 65 6e 64 65 72  |e]).  For.Render|
000064b0  52 65 71 75 65 73 74 2c  20 27 73 6f 75 72 63 65  |Request, 'source|
000064c0  27 20 69 73 20 6f 70 65  6e 65 64 20 72 65 61 64  |' is opened read|
000064d0  20 6f 6e 6c 79 20 28 4f  53 5f 46 69 6e 64 20 30  | only (OS_Find 0|
000064e0  78 34 33 29 2c 20 61 6e  64 20 74 68 65 20 6f 74  |x43), and the ot|
000064f0  68 65 72 73 0a 61 72 65  20 72 65 61 64 2f 77 72  |hers.are read/wr|
00006500  69 74 65 20 28 4f 53 5f  46 69 6e 64 20 30 78 38  |ite (OS_Find 0x8|
00006510  33 29 2e 20 20 46 6f 72  20 50 6f 73 74 52 65 71  |3).  For PostReq|
00006520  75 65 73 74 73 2c 20 74  68 65 20 73 6f 75 72 63  |uests, the sourc|
00006530  65 20 69 73 20 61 73 20  66 6f 72 0a 46 65 74 63  |e is as for.Fetc|
00006540  68 52 65 71 75 65 73 74  73 2c 20 61 6e 64 20 74  |hRequests, and t|
00006550  68 65 20 66 6f 72 6d 20  66 69 6c 65 20 69 73 20  |he form file is |
00006560  72 65 61 64 20 6f 6e 6c  79 2e 20 20 46 6f 72 20  |read only.  For |
00006570  45 4d 61 69 6c 52 65 71  75 65 73 74 73 2c 20 74  |EMailRequests, t|
00006580  68 65 20 66 6f 72 6d 0a  66 69 6c 65 20 69 73 20  |he form.file is |
00006590  72 65 61 64 2d 6f 6e 6c  79 2e 0a 0a 5b 41 6e 20  |read-only...[An |
000065a0  65 78 61 6d 70 6c 65 20  6f 66 20 75 73 69 6e 67  |example of using|
000065b0  20 4f 53 5f 41 72 67 73  20 37 20 69 6e 20 42 41  | OS_Args 7 in BA|
000065c0  53 49 43 20 69 73 20 69  6e 20 21 41 72 63 57 65  |SIC is in !ArcWe|
000065d0  62 4c 63 6c 20 77 68 69  63 68 20 75 73 65 73 20  |bLcl which uses |
000065e0  4f 53 5f 43 4c 49 0a 74  6f 20 69 73 73 75 65 20  |OS_CLI.to issue |
000065f0  61 20 73 74 72 61 69 67  68 74 20 2a 43 4f 50 59  |a straight *COPY|
00006600  20 63 6f 6d 6d 61 6e 64  20 77 68 65 6e 20 74 68  | command when th|
00006610  65 20 73 79 6d 6c 69 6e  6b 20 62 69 74 20 69 73  |e symlink bit is|
00006620  20 63 6c 65 61 72 5d 0a  0a 0a 59 6f 75 20 64 6f  | clear]...You do|
00006630  20 6e 6f 74 20 6e 65 65  64 20 74 6f 20 66 69 6c  | not need to fil|
00006640  6c 20 69 6e 20 74 68 65  20 66 69 6c 65 20 74 79  |l in the file ty|
00006650  70 65 20 62 69 74 73 20  28 30 2d 31 35 2c 31 36  |pe bits (0-15,16|
00006660  20 61 6e 64 20 33 30 29  20 77 68 65 6e 20 73 65  | and 30) when se|
00006670  6e 64 69 6e 67 0a 74 68  65 20 46 65 74 63 68 20  |nding.the Fetch |
00006680  44 6f 6e 65 20 6d 65 73  73 61 67 65 2c 20 62 75  |Done message, bu|
00006690  74 20 69 74 20 77 69 6c  6c 20 61 73 73 69 73 74  |t it will assist|
000066a0  20 74 68 65 20 72 65 6e  64 65 72 65 72 73 20 69  | the renderers i|
000066b0  6e 20 64 65 63 69 64 69  6e 67 20 77 68 61 74 20  |n deciding what |
000066c0  74 6f 0a 64 6f 20 77 69  74 68 20 74 68 65 20 64  |to.do with the d|
000066d0  6f 63 75 6d 65 6e 74 20  69 66 20 79 6f 75 20 64  |ocument if you d|
000066e0  6f 2e 20 20 54 68 65 20  6d 6f 73 74 20 63 6f 6d  |o.  The most com|
000066f0  6d 6f 6e 20 74 79 70 65  73 20 72 65 74 75 72 6e  |mon types return|
00006700  65 64 20 61 72 65 20 70  6c 61 69 6e 0a 74 65 78  |ed are plain.tex|
00006710  74 20 28 26 46 46 46 29  2c 20 48 54 4d 4c 20 28  |t (&FFF), HTML (|
00006720  26 46 41 46 29 2c 20 47  49 46 20 28 26 36 39 35  |&FAF), GIF (&695|
00006730  29 2c 20 4a 50 45 47 20  28 26 43 38 35 29 20 61  |), JPEG (&C85) a|
00006740  6e 64 20 58 42 4d 20 28  26 31 30 31 30 34 29 2e  |nd XBM (&10104).|
00006750  0a 0a 57 41 52 4e 49 4e  47 3a 20 4d 6f 73 74 20  |..WARNING: Most |
00006760  48 54 54 50 20 73 65 72  76 65 72 73 20 61 72 65  |HTTP servers are|
00006770  20 63 6f 6e 66 69 67 75  72 65 64 20 77 69 74 68  | configured with|
00006780  20 61 20 64 65 66 61 75  6c 74 20 74 79 70 65 20  | a default type |
00006790  74 6f 20 72 65 74 75 72  6e 20 69 6e 0a 74 68 65  |to return in.the|
000067a0  20 63 61 73 65 20 74 68  61 74 20 69 74 20 63 61  | case that it ca|
000067b0  6e 6e 6f 74 20 77 6f 72  6b 20 6f 75 74 20 74 68  |nnot work out th|
000067c0  65 20 74 79 70 65 20 6f  66 20 61 20 66 69 6c 65  |e type of a file|
000067d0  20 66 72 6f 6d 20 69 74  73 20 6e 61 6d 65 20 6f  | from its name o|
000067e0  72 20 61 0a 73 70 65 63  69 66 69 63 20 64 69 72  |r a.specific dir|
000067f0  65 63 74 69 76 65 20 74  65 6c 6c 69 6e 67 20 69  |ective telling i|
00006800  74 20 74 68 65 20 66 69  6c 65 20 74 79 70 65 2e  |t the file type.|
00006810  20 20 54 68 69 73 20 64  65 66 61 75 6c 74 20 74  |  This default t|
00006820  79 70 65 20 69 73 20 75  73 75 61 6c 6c 79 0a 74  |ype is usually.t|
00006830  65 78 74 2f 70 6c 61 69  6e 2e 20 20 54 68 69 73  |ext/plain.  This|
00006840  20 69 73 20 61 20 70 72  6f 62 6c 65 6d 20 77 68  | is a problem wh|
00006850  65 6e 20 79 6f 75 20 77  69 73 68 20 74 6f 20 73  |en you wish to s|
00006860  74 6f 72 65 20 62 69 6e  61 72 79 20 66 69 6c 65  |tore binary file|
00006870  73 20 28 65 67 2e 0a 61  72 63 77 65 62 2e 61 72  |s (eg..arcweb.ar|
00006880  63 29 20 6f 6e 20 48 54  54 50 20 73 65 72 76 65  |c) on HTTP serve|
00006890  72 73 2c 20 61 73 20 6c  6f 75 69 73 2e 65 63 73  |rs, as louis.ecs|
000068a0  2e 73 6f 74 6f 6e 2e 61  63 2e 75 6b 27 73 20 73  |.soton.ac.uk's s|
000068b0  65 72 76 65 72 20 77 69  6c 6c 20 74 65 6c 6c 20  |erver will tell |
000068c0  79 6f 75 0a 74 68 61 74  20 74 68 69 73 20 69 73  |you.that this is|
000068d0  20 61 20 74 65 78 74 2f  70 6c 61 69 6e 20 66 69  | a text/plain fi|
000068e0  6c 65 2c 20 77 68 65 6e  20 6f 62 76 69 6f 75 73  |le, when obvious|
000068f0  6c 79 20 69 74 20 69 73  6e 27 74 2e 20 20 41 72  |ly it isn't.  Ar|
00006900  63 57 65 62 20 30 2e 31  32 20 61 6e 64 0a 6c 61  |cWeb 0.12 and.la|
00006910  74 65 72 20 77 69 6c 6c  20 65 78 61 6d 69 6e 65  |ter will examine|
00006920  20 74 68 65 20 64 61 74  61 20 69 6e 20 74 68 65  | the data in the|
00006930  20 52 65 6e 64 65 72 52  65 71 75 65 73 74 20 6d  | RenderRequest m|
00006940  65 73 73 61 67 65 2a 20  74 6f 20 65 6e 73 75 72  |essage* to ensur|
00006950  65 20 74 68 61 74 20 69  74 0a 64 6f 65 73 20 6e  |e that it.does n|
00006960  6f 74 20 63 6f 6e 74 61  69 6e 20 6e 6f 6e 2d 70  |ot contain non-p|
00006970  72 69 6e 74 61 62 6c 65  20 63 68 61 72 61 63 74  |rintable charact|
00006980  65 72 73 20 62 65 66 6f  72 65 20 61 74 74 65 6d  |ers before attem|
00006990  70 74 69 6e 67 20 74 6f  20 72 65 6e 64 65 72 20  |pting to render |
000069a0  69 74 2e 0a 0a 2a 20 73  65 65 20 72 65 6e 64 65  |it...* see rende|
000069b0  72 65 72 20 70 72 6f 74  6f 63 6f 6c 20 64 69 73  |rer protocol dis|
000069c0  63 75 73 73 69 6f 6e 20  62 65 6c 6f 77 0a 0a 0a  |cussion below...|
000069d0  52 65 6e 64 65 72 65 72  20 50 72 6f 74 6f 63 6f  |Renderer Protoco|
000069e0  6c 0a 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |l.==============|
000069f0  3d 3d 3d 0a 0a 20 20 54  68 65 20 52 65 6e 64 65  |===..  The Rende|
00006a00  72 65 72 20 50 72 6f 74  6f 63 6f 6c 20 69 73 20  |rer Protocol is |
00006a10  75 73 65 64 20 74 6f 20  74 72 61 6e 73 66 6f 72  |used to transfor|
00006a20  6d 20 61 20 66 69 6c 65  20 69 6e 74 6f 20 73 6f  |m a file into so|
00006a30  6d 65 74 68 69 6e 67 20  77 68 69 63 68 20 63 61  |mething which ca|
00006a40  6e 0a 62 65 20 76 69 65  77 65 64 20 69 6e 20 74  |n.be viewed in t|
00006a50  68 65 20 41 72 63 57 65  62 20 77 69 6e 64 6f 77  |he ArcWeb window|
00006a60  2e 20 20 41 72 63 57 65  62 20 67 65 6e 65 72 61  |.  ArcWeb genera|
00006a70  74 65 73 20 61 20 44 72  61 77 46 69 6c 65 20 28  |tes a DrawFile (|
00006a80  74 79 70 65 20 26 41 46  46 29 0a 74 6f 20 72 65  |type &AFF).to re|
00006a90  70 72 65 73 65 6e 74 20  74 68 65 20 48 54 4d 4c  |present the HTML|
00006aa0  20 64 6f 63 75 6d 65 6e  74 2e 20 20 49 20 68 61  | document.  I ha|
00006ab0  76 65 20 77 72 69 74 74  65 6e 20 6d 79 20 6f 77  |ve written my ow|
00006ac0  6e 20 70 61 72 73 65 72  20 74 6f 20 72 65 61 64  |n parser to read|
00006ad0  20 74 68 65 0a 48 54 4d  4c 20 66 69 6c 65 20 28  | the.HTML file (|
00006ae0  63 6f 6e 66 6f 72 6d 73  20 77 69 74 68 20 74 68  |conforms with th|
00006af0  65 20 48 54 4d 4c 20 32  2e 30 20 73 70 65 63 69  |e HTML 2.0 speci|
00006b00  66 69 63 61 74 69 6f 6e  2c 20 31 33 20 4a 75 6e  |fication, 13 Jun|
00006b10  65 20 31 39 39 34 29 20  61 6e 64 0a 64 69 73 70  |e 1994) and.disp|
00006b20  6c 61 79 20 69 74 2e 20  20 52 65 6e 64 65 72 65  |lay it.  Rendere|
00006b30  72 73 20 73 68 6f 75 6c  64 20 63 6f 6e 76 65 72  |rs should conver|
00006b40  74 20 69 6d 61 67 65 73  20 69 6e 74 6f 20 73 70  |t images into sp|
00006b50  72 69 74 65 73 20 61 6e  64 20 73 74 6f 72 65 20  |rites and store |
00006b60  74 68 65 6d 20 69 6e 0a  74 68 65 20 27 64 69 61  |them in.the 'dia|
00006b70  67 72 61 6d 27 20 66 69  6c 65 20 28 62 75 74 20  |gram' file (but |
00006b80  6f 6e 6c 79 20 69 66 20  69 74 20 69 73 20 61 6e  |only if it is an|
00006b90  20 69 6e 6c 69 6e 65 20  64 61 74 61 20 66 65 74  | inline data fet|
00006ba0  63 68 20 2d 20 73 65 65  20 64 69 73 63 75 73 73  |ch - see discuss|
00006bb0  69 6f 6e 0a 6f 66 20 62  69 74 73 20 32 33 20 61  |ion.of bits 23 a|
00006bc0  6e 64 20 32 35 20 61 62  6f 76 65 29 2e 20 20 41  |nd 25 above).  A|
00006bd0  72 63 57 65 62 20 77 69  6c 6c 20 62 65 20 65 78  |rcWeb will be ex|
00006be0  70 65 63 74 69 6e 67 20  61 20 73 70 72 69 74 65  |pecting a sprite|
00006bf0  20 66 69 6c 65 20 74 6f  20 62 65 0a 74 68 65 72  | file to be.ther|
00006c00  65 20 77 68 69 63 68 20  69 74 20 63 61 6e 20 74  |e which it can t|
00006c10  68 65 6e 20 69 6d 70 6f  72 74 2e 20 20 49 74 20  |hen import.  It |
00006c20  77 69 6c 6c 20 74 61 6b  65 20 74 68 65 20 66 69  |will take the fi|
00006c30  72 73 74 20 73 70 72 69  74 65 20 6f 75 74 20 6f  |rst sprite out o|
00006c40  66 20 74 68 65 0a 66 69  6c 65 2e 20 20 41 72 63  |f the.file.  Arc|
00006c50  57 65 62 20 77 69 6c 6c  20 68 61 6e 64 6c 65 20  |Web will handle |
00006c60  52 49 53 43 20 4f 53 20  73 70 72 69 74 65 20 66  |RISC OS sprite f|
00006c70  69 6c 65 73 20 28 26 46  46 39 29 20 69 74 73 65  |iles (&FF9) itse|
00006c80  6c 66 20 28 61 6c 74 68  6f 75 67 68 20 69 74 0a  |lf (although it.|
00006c90  77 69 6c 6c 20 62 72 6f  61 64 63 61 73 74 20 74  |will broadcast t|
00006ca0  68 65 20 6d 65 73 73 61  67 65 20 77 69 74 68 20  |he message with |
00006cb0  74 68 65 20 65 78 70 65  63 74 61 74 69 6f 6e 20  |the expectation |
00006cc0  6f 66 20 72 65 63 65 69  76 69 6e 67 20 69 74 20  |of receiving it |
00006cd0  62 61 63 6b 29 2e 20 20  59 6f 75 0a 73 68 6f 75  |back).  You.shou|
00006ce0  6c 64 20 6e 6f 74 20 61  63 6b 6e 6f 77 6c 65 64  |ld not acknowled|
00006cf0  67 65 20 72 65 6e 64 65  72 20 72 65 71 75 65 73  |ge render reques|
00006d00  74 73 20 66 6f 72 20 66  69 6c 65 73 20 6f 66 20  |ts for files of |
00006d10  74 79 70 65 20 26 46 46  39 0a 0a 20 20 52 65 6e  |type &FF9..  Ren|
00006d20  64 65 72 65 72 73 20 73  68 6f 75 6c 64 20 69 6e  |derers should in|
00006d30  73 70 65 63 74 20 74 68  65 20 66 69 6c 65 20 74  |spect the file t|
00006d40  79 70 65 20 62 69 74 73  20 69 6e 20 74 68 65 20  |ype bits in the |
00006d50  52 65 6e 64 65 72 52 65  71 75 65 73 74 20 74 6f  |RenderRequest to|
00006d60  20 73 65 65 0a 77 68 65  74 68 65 72 20 74 68 65  | see.whether the|
00006d70  20 66 69 6c 65 20 69 73  20 6f 66 20 61 20 74 79  | file is of a ty|
00006d80  70 65 20 77 68 69 63 68  20 74 68 65 79 20 63 61  |pe which they ca|
00006d90  6e 20 68 61 6e 64 6c 65  2e 20 20 49 66 20 74 68  |n handle.  If th|
00006da0  65 20 74 79 70 65 20 69  73 20 6e 6f 74 0a 6b 6e  |e type is not.kn|
00006db0  6f 77 6e 2a 20 28 62 69  74 20 33 30 20 69 73 20  |own* (bit 30 is |
00006dc0  63 6c 65 61 72 29 2c 20  74 68 65 6e 20 74 68 65  |clear), then the|
00006dd0  20 72 65 6e 64 65 72 65  72 20 6d 61 79 20 69 6e  | renderer may in|
00006de0  73 70 65 63 74 20 74 68  65 20 66 69 72 73 74 20  |spect the first |
00006df0  66 65 77 20 62 79 74 65  73 0a 6f 66 20 74 68 65  |few bytes.of the|
00006e00  20 66 69 6c 65 2e 20 20  42 65 66 6f 72 65 20 73  | file.  Before s|
00006e10  65 6e 64 69 6e 67 20 74  68 65 20 52 65 6e 64 65  |ending the Rende|
00006e20  72 52 65 71 75 65 73 74  20 6d 65 73 73 61 67 65  |rRequest message|
00006e30  2c 20 41 72 63 57 65 62  20 77 69 6c 6c 20 68 61  |, ArcWeb will ha|
00006e40  76 65 0a 6c 6f 61 64 65  64 20 69 6e 20 61 73 20  |ve.loaded in as |
00006e50  6d 75 63 68 20 6f 66 20  74 68 65 20 66 69 6c 65  |much of the file|
00006e60  20 61 73 20 70 6f 73 73  69 62 6c 65 20 74 6f 20  | as possible to |
00006e70  74 68 65 20 6d 65 73 73  61 67 65 20 28 74 6f 20  |the message (to |
00006e80  66 69 6c 6c 20 69 74 20  75 70 20 74 6f 0a 32 35  |fill it up to.25|
00006e90  36 20 62 79 74 65 73 29  2e 20 20 54 68 65 20 61  |6 bytes).  The a|
00006ea0  6d 6f 75 6e 74 20 6f 66  20 64 61 74 61 20 69 6e  |mount of data in|
00006eb0  20 74 68 65 20 6d 65 73  73 61 67 65 20 69 73 20  | the message is |
00006ec0  69 6e 20 62 75 66 2b 34  34 2c 20 61 6e 64 20 74  |in buf+44, and t|
00006ed0  68 65 20 64 61 74 61 0a  73 74 61 72 74 73 20 61  |he data.starts a|
00006ee0  74 20 62 75 66 2b 34 38  2e 20 20 54 68 75 73 20  |t buf+48.  Thus |
00006ef0  75 70 20 74 6f 20 32 30  38 20 62 79 74 65 73 20  |up to 208 bytes |
00006f00  6f 66 20 64 61 74 61 20  77 69 6c 6c 20 62 65 20  |of data will be |
00006f10  70 72 65 73 65 6e 74 20  28 63 75 72 72 65 6e 74  |present (current|
00006f20  6c 79 0a 69 74 20 69 73  20 32 30 38 20 75 6e 6c  |ly.it is 208 unl|
00006f30  65 73 73 20 74 68 65 20  66 69 6c 65 20 69 73 20  |ess the file is |
00006f40  6e 6f 74 20 74 68 61 74  20 6c 6f 6e 67 2c 20 69  |not that long, i|
00006f50  6e 20 77 68 69 63 68 20  63 61 73 65 20 74 68 65  |n which case the|
00006f60  20 77 68 6f 6c 65 20 66  69 6c 65 20 69 73 0a 74  | whole file is.t|
00006f70  68 65 72 65 29 2e 20 20  49 66 20 32 30 38 20 62  |here).  If 208 b|
00006f80  79 74 65 73 20 69 73 20  6e 6f 74 20 65 6e 6f 75  |ytes is not enou|
00006f90  67 68 2c 20 74 68 65 20  72 65 6e 64 65 72 65 72  |gh, the renderer|
00006fa0  20 6d 61 79 20 75 73 65  20 74 68 65 20 66 69 6c  | may use the fil|
00006fb0  65 20 68 61 6e 64 6c 65  0a 67 69 76 65 6e 20 69  |e handle.given i|
00006fc0  6e 20 74 68 65 20 6d 65  73 73 61 67 65 20 74 6f  |n the message to|
00006fd0  20 72 65 61 64 20 6d 6f  72 65 20 6f 66 20 74 68  | read more of th|
00006fe0  65 20 66 69 6c 65 20 69  6e 2e 20 20 54 68 65 20  |e file in.  The |
00006ff0  66 69 6c 65 20 70 6f 69  6e 74 65 72 20 73 68 6f  |file pointer sho|
00007000  75 6c 64 0a 62 65 20 72  65 73 65 74 20 74 6f 20  |uld.be reset to |
00007010  7a 65 72 6f 20 69 66 20  69 74 20 64 65 63 69 64  |zero if it decid|
00007020  65 73 20 74 68 61 74 20  69 74 20 63 61 6e 27 74  |es that it can't|
00007030  20 68 61 6e 64 6c 65 20  69 74 2e 20 20 41 73 20  | handle it.  As |
00007040  61 20 73 61 66 65 67 75  61 72 64 2c 0a 52 65 6e  |a safeguard,.Ren|
00007050  64 65 72 65 72 73 20 4d  55 53 54 20 4e 4f 54 20  |derers MUST NOT |
00007060  61 73 73 75 6d 65 20 74  68 61 74 20 74 68 65 20  |assume that the |
00007070  66 69 6c 65 20 70 6f 69  6e 74 65 72 20 77 69 6c  |file pointer wil|
00007080  6c 20 62 65 20 7a 65 72  6f 2c 20 61 6e 64 20 73  |l be zero, and s|
00007090  68 6f 75 6c 64 20 73 65  74 0a 69 74 20 65 78 70  |hould set.it exp|
000070a0  6c 69 63 69 74 6c 79 2e  0a 0a 2a 20 54 68 65 20  |licitly...* The |
000070b0  72 65 6e 64 65 72 65 72  20 6d 61 79 20 64 65 63  |renderer may dec|
000070c0  69 64 65 20 74 68 61 74  20 69 74 20 64 6f 65 73  |ide that it does|
000070d0  6e 27 74 20 27 74 72 75  73 74 27 20 74 68 65 20  |n't 'trust' the |
000070e0  67 69 76 65 6e 20 66 69  6c 65 20 74 79 70 65 2e  |given file type.|
000070f0  20 20 49 66 0a 74 68 61  74 20 69 73 20 74 68 65  |  If.that is the|
00007100  20 63 61 73 65 2c 20 74  68 65 6e 20 69 74 20 69  | case, then it i|
00007110  73 20 61 6c 6c 6f 77 65  64 20 74 6f 20 69 67 6e  |s allowed to ign|
00007120  6f 72 65 20 62 69 74 20  33 30 20 61 6e 64 20 61  |ore bit 30 and a|
00007130  74 74 65 6d 70 74 20 74  6f 0a 72 65 63 6f 67 6e  |ttempt to.recogn|
00007140  69 73 65 20 74 68 65 20  66 69 6c 65 20 74 79 70  |ise the file typ|
00007150  65 20 66 72 6f 6d 20 74  68 65 20 64 61 74 61 20  |e from the data |
00007160  69 6e 20 74 68 65 20 6d  65 73 73 61 67 65 20 62  |in the message b|
00007170  75 66 66 65 72 20 61 6e  64 20 61 63 74 20 6f 6e  |uffer and act on|
00007180  20 74 68 61 74 0a 61 6c  6f 6e 65 2e 0a 0a 0a 0a  | that.alone.....|
00007190  51 75 69 74 20 50 72 6f  74 6f 63 6f 6c 0a 3d 3d  |Quit Protocol.==|
000071a0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 0a 0a 20 20 46  |===========..  F|
000071b0  65 74 63 68 65 72 73 20  61 6e 64 20 52 65 6e 64  |etchers and Rend|
000071c0  65 72 65 72 73 20 73 68  6f 75 6c 64 20 68 61 76  |erers should hav|
000071d0  65 20 61 20 63 6f 6e 66  69 67 75 72 61 62 6c 65  |e a configurable|
000071e0  20 6f 70 74 69 6f 6e 20  74 6f 20 61 6c 6c 6f 77  | option to allow|
000071f0  20 74 68 65 6d 20 74 6f  0a 71 75 69 74 20 77 68  | them to.quit wh|
00007200  65 6e 20 41 72 63 57 65  62 20 64 69 65 73 2e 20  |en ArcWeb dies. |
00007210  20 54 68 69 73 20 70 72  6f 76 69 64 65 73 20 61  | This provides a|
00007220  20 63 6c 65 61 6e 20 77  61 79 20 6f 66 20 73 68  | clean way of sh|
00007230  75 74 74 69 6e 67 20 41  72 63 57 65 62 20 61 6e  |utting ArcWeb an|
00007240  64 20 61 6c 6c 0a 69 74  73 20 72 65 6c 61 74 65  |d all.its relate|
00007250  64 20 70 72 6f 67 72 61  6d 73 20 64 6f 77 6e 20  |d programs down |
00007260  69 6e 20 6f 6e 65 20 67  6f 2e 20 20 55 70 6f 6e  |in one go.  Upon|
00007270  20 72 65 63 65 69 70 74  20 6f 66 20 61 20 4d 65  | receipt of a Me|
00007280  73 73 61 67 65 5f 41 72  63 77 65 62 51 75 69 74  |ssage_ArcwebQuit|
00007290  0a 6d 65 73 73 61 67 65  2c 20 73 74 6f 72 65 20  |.message, store |
000072a0  74 68 65 20 74 61 73 6b  20 68 61 6e 64 6c 65 20  |the task handle |
000072b0  28 69 6e 20 62 75 66 2b  34 29 20 61 6e 64 20 77  |(in buf+4) and w|
000072c0  61 69 74 20 66 6f 72 20  74 68 65 20 57 69 6d 70  |ait for the Wimp|
000072d0  20 74 61 73 6b 0a 63 6c  6f 73 65 64 6f 77 6e 20  | task.closedown |
000072e0  6d 65 73 73 61 67 65 20  28 4d 65 73 73 61 67 65  |message (Message|
000072f0  5f 54 61 73 6b 43 6c 6f  73 65 44 6f 77 6e 20 30  |_TaskCloseDown 0|
00007300  78 34 30 30 43 33 29 20  74 6f 20 61 72 72 69 76  |x400C3) to arriv|
00007310  65 20 77 69 74 68 20 74  68 65 20 67 69 76 65 6e  |e with the given|
00007320  0a 74 61 73 6b 20 68 61  6e 64 6c 65 2e 20 20 5b  |.task handle.  [|
00007330  54 6f 20 70 72 65 76 65  6e 74 20 41 72 63 57 65  |To prevent ArcWe|
00007340  62 20 63 6c 6f 73 69 6e  67 20 64 6f 77 6e 2c 20  |b closing down, |
00007350  61 63 6b 6e 6f 77 6c 65  64 67 65 20 74 68 65 0a  |acknowledge the.|
00007360  4d 65 73 73 61 67 65 5f  41 72 63 77 65 62 51 75  |Message_ArcwebQu|
00007370  69 74 20 6d 65 73 73 61  67 65 20 2d 20 6e 6f 74  |it message - not|
00007380  20 69 6e 20 76 65 72 73  69 6f 6e 20 30 2e 30 38  | in version 0.08|
00007390  2e 20 20 41 72 63 57 65  62 20 77 69 6c 6c 20 65  |.  ArcWeb will e|
000073a0  78 69 74 20 61 6e 79 77  61 79 2e 5d 0a 0a 20 20  |xit anyway.]..  |
000073b0  42 79 20 75 73 69 6e 67  20 61 6e 20 65 78 74 72  |By using an extr|
000073c0  61 20 6d 65 73 73 61 67  65 2c 20 74 68 69 73 20  |a message, this |
000073d0  61 76 6f 69 64 73 20 74  68 65 20 6e 65 65 64 20  |avoids the need |
000073e0  66 6f 72 20 74 68 65 20  61 75 78 69 6c 69 61 72  |for the auxiliar|
000073f0  79 20 61 70 70 73 20 74  6f 0a 6c 6f 6f 6b 75 70  |y apps to.lookup|
00007400  20 74 68 65 20 74 61 73  6b 20 6e 61 6d 65 20 66  | the task name f|
00007410  72 6f 6d 20 74 68 65 20  68 61 6e 64 6c 65 20 74  |rom the handle t|
00007420  6f 20 63 68 65 63 6b 20  77 68 65 74 68 65 72 20  |o check whether |
00007430  69 74 20 77 61 73 20 41  72 63 57 65 62 20 6f 72  |it was ArcWeb or|
00007440  20 6e 6f 74 2c 0a 61 6e  64 20 74 68 69 73 20 61  | not,.and this a|
00007450  6c 73 6f 20 67 75 61 72  64 73 20 61 67 61 69 6e  |lso guards again|
00007460  73 74 20 74 68 65 20 74  61 73 6b 20 6e 61 6d 65  |st the task name|
00007470  20 63 68 61 6e 67 69 6e  67 2e 0a 0a 20 20 44 6f  | changing...  Do|
00007480  20 6e 6f 74 20 61 63 6b  6e 6f 77 6c 65 64 67 65  | not acknowledge|
00007490  20 4d 65 73 73 61 67 65  5f 41 72 63 77 65 62 51  | Message_ArcwebQ|
000074a0  75 69 74 20 75 6e 6c 65  73 73 20 79 6f 75 20 77  |uit unless you w|
000074b0  69 73 68 20 74 6f 20 70  72 65 76 65 6e 74 20 74  |ish to prevent t|
000074c0  68 65 0a 73 68 75 74 64  6f 77 6e 20 28 74 72 65  |he.shutdown (tre|
000074d0  61 74 20 69 74 20 6c 69  6b 65 20 79 6f 75 20 77  |at it like you w|
000074e0  6f 75 6c 64 20 74 72 65  61 74 20 4d 65 73 73 61  |ould treat Messa|
000074f0  67 65 5f 50 72 65 51 75  69 74 29 0a 0a 0a 45 78  |ge_PreQuit)...Ex|
00007500  70 69 72 65 20 50 72 6f  74 6f 63 6f 6c 0a 3d 3d  |pire Protocol.==|
00007510  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 0a 0a 20  |=============.. |
00007520  20 49 66 20 61 20 66 65  74 63 68 65 72 20 68 61  | If a fetcher ha|
00007530  73 20 75 73 65 64 20 61  20 73 79 6d 62 6f 6c 69  |s used a symboli|
00007540  63 20 6c 69 6e 6b 20 77  68 65 6e 20 66 65 74 63  |c link when fetc|
00007550  68 69 6e 67 20 61 20 66  69 6c 65 20 74 68 65 6e  |hing a file then|
00007560  20 74 68 61 74 20 66 69  6c 65 0a 73 68 6f 75 6c  | that file.shoul|
00007570  64 20 62 65 20 65 78 70  69 72 65 64 20 75 70 6f  |d be expired upo|
00007580  6e 20 72 65 63 65 69 70  74 20 6f 66 20 4d 65 73  |n receipt of Mes|
00007590  73 61 67 65 5f 41 72 63  77 65 62 45 78 70 69 72  |sage_ArcwebExpir|
000075a0  65 2e 20 20 41 72 63 57  65 62 20 77 69 6c 6c 20  |e.  ArcWeb will |
000075b0  70 61 73 73 20 79 6f 75  0a 61 20 68 61 6e 64 6c  |pass you.a handl|
000075c0  65 20 74 6f 20 74 68 65  20 66 69 6c 65 20 69 6e  |e to the file in|
000075d0  20 74 68 65 20 63 61 63  68 65 2e 20 20 49 66 20  | the cache.  If |
000075e0  74 68 65 20 73 79 6d 62  6f 6c 69 63 20 6c 69 6e  |the symbolic lin|
000075f0  6b 20 62 69 74 20 28 62  69 74 20 32 38 29 20 69  |k bit (bit 28) i|
00007600  73 20 73 65 74 0a 69 6e  20 74 68 65 20 66 6c 61  |s set.in the fla|
00007610  67 73 2c 20 74 68 65 6e  20 74 68 65 20 66 69 6c  |gs, then the fil|
00007620  65 20 74 6f 20 62 65 20  72 65 6d 6f 76 65 64 20  |e to be removed |
00007630  69 73 20 72 65 61 6c 6c  79 20 74 68 65 20 66 69  |is really the fi|
00007640  6c 65 20 77 68 6f 73 65  20 6e 61 6d 65 20 69 73  |le whose name is|
00007650  0a 69 6e 20 74 68 65 20  66 69 6c 65 20 77 68 6f  |.in the file who|
00007660  73 65 20 68 61 6e 64 6c  65 20 79 6f 75 20 68 61  |se handle you ha|
00007670  76 65 20 62 65 65 6e 20  67 69 76 65 6e 2e 20 20  |ve been given.  |
00007680  21 41 72 63 77 65 62 4c  63 6c 20 69 67 6e 6f 72  |!ArcwebLcl ignor|
00007690  65 73 20 74 68 69 73 0a  6d 65 73 73 61 67 65 20  |es this.message |
000076a0  63 6f 6d 70 6c 65 74 65  6c 79 20 28 61 73 20 69  |completely (as i|
000076b0  74 20 73 68 6f 75 6c 64  29 2e 20 20 54 68 69 73  |t should).  This|
000076c0  20 70 72 6f 74 6f 63 6f  6c 20 69 73 20 6e 6f 74  | protocol is not|
000076d0  20 66 69 78 65 64 20 61  6e 64 20 73 68 6f 75 6c  | fixed and shoul|
000076e0  64 0a 6e 6f 74 20 79 65  74 20 62 65 20 75 73 65  |d.not yet be use|
000076f0  64 20 28 74 68 65 72 65  20 69 73 20 61 20 70 61  |d (there is a pa|
00007700  72 74 69 63 75 6c 61 72  20 70 72 6f 62 6c 65 6d  |rticular problem|
00007710  20 77 69 74 68 20 65 78  74 65 6e 64 65 64 20 55  | with extended U|
00007720  52 4c 73 29 2c 20 62 75  74 0a 66 65 74 63 68 65  |RLs), but.fetche|
00007730  72 20 61 75 74 68 6f 72  73 20 73 68 6f 75 6c 64  |r authors should|
00007740  20 62 65 20 61 77 61 72  65 20 6f 66 20 69 74 73  | be aware of its|
00007750  20 66 75 74 75 72 65 20  65 78 69 73 74 65 6e 63  | future existenc|
00007760  65 2e 20 20 41 72 63 57  65 62 20 64 6f 65 73 20  |e.  ArcWeb does |
00007770  6e 6f 74 0a 63 75 72 72  65 6e 74 6c 79 20 73 65  |not.currently se|
00007780  6e 64 20 4d 65 73 73 61  67 65 5f 41 72 63 77 65  |nd Message_Arcwe|
00007790  62 45 78 70 69 72 65 20  6d 65 73 73 61 67 65 73  |bExpire messages|
000077a0  2e 0a 0a 0a 50 6f 73 74  65 72 20 50 72 6f 74 6f  |....Poster Proto|
000077b0  63 6f 6c 0a 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |col.============|
000077c0  3d 3d 3d 0a 0a 54 68 69  73 20 70 72 6f 74 6f 63  |===..This protoc|
000077d0  6f 6c 20 77 69 6c 6c 20  62 65 20 75 73 65 64 20  |ol will be used |
000077e0  77 68 65 6e 20 41 72 63  57 65 62 20 77 61 6e 74  |when ArcWeb want|
000077f0  73 20 74 6f 20 73 65 6e  64 20 69 6e 66 6f 72 6d  |s to send inform|
00007800  61 74 69 6f 6e 20 74 6f  20 61 20 55 52 4c 0a 72  |ation to a URL.r|
00007810  61 74 68 65 72 20 74 68  61 6e 20 72 65 74 72 69  |ather than retri|
00007820  65 76 65 20 69 74 2c 20  69 65 2e 20 77 68 65 6e  |eve it, ie. when|
00007830  20 61 6e 20 48 54 4d 4c  20 66 6f 72 6d 20 77 69  | an HTML form wi|
00007840  74 68 20 61 20 6d 65 74  68 6f 64 20 6f 66 20 50  |th a method of P|
00007850  4f 53 54 20 68 61 73 0a  62 65 65 6e 20 63 6f 6d  |OST has.been com|
00007860  70 6c 65 74 65 64 20 61  6e 64 20 74 68 65 20 53  |pleted and the S|
00007870  55 42 4d 49 54 20 62 75  74 74 6f 6e 20 68 61 73  |UBMIT button has|
00007880  20 62 65 65 6e 20 70 72  65 73 73 65 64 2e 20 20  | been pressed.  |
00007890  49 66 20 74 68 65 20 66  6f 72 6d 20 64 69 64 20  |If the form did |
000078a0  6e 6f 74 0a 6f 76 65 72  72 69 64 65 20 74 68 65  |not.override the|
000078b0  20 64 65 66 61 75 6c 74  20 28 47 45 54 29 20 6f  | default (GET) o|
000078c0  72 20 63 68 6f 6f 73 65  73 20 74 68 65 20 47 45  |r chooses the GE|
000078d0  54 20 6d 65 74 68 6f 64  2c 20 74 68 65 20 74 68  |T method, the th|
000078e0  65 20 46 65 74 63 68 52  65 71 75 65 73 74 0a 70  |e FetchRequest.p|
000078f0  72 6f 74 6f 63 6f 6c 20  69 73 20 75 73 65 64 2c  |rotocol is used,|
00007900  20 61 6e 64 20 74 68 65  20 66 65 74 63 68 65 72  | and the fetcher|
00007910  20 69 73 20 6e 6f 74 20  61 77 61 72 65 20 6f 66  | is not aware of|
00007920  20 74 68 65 20 66 61 63  74 20 74 68 61 74 20 74  | the fact that t|
00007930  68 65 20 64 61 74 61 0a  74 72 61 6e 73 66 65 72  |he data.transfer|
00007940  20 68 61 73 20 68 61 70  70 65 6e 65 64 20 28 61  | has happened (a|
00007950  6e 20 65 78 74 65 6e 64  65 64 20 55 52 4c 20 77  |n extended URL w|
00007960  69 6c 6c 20 68 61 76 65  20 62 65 65 6e 20 75 73  |ill have been us|
00007970  65 64 29 2e 0a 0a 50 6f  73 74 52 65 71 75 65 73  |ed)...PostReques|
00007980  74 20 73 68 6f 75 6c 64  20 62 65 20 74 72 65 61  |t should be trea|
00007990  74 65 64 20 65 78 61 63  74 6c 79 20 6c 69 6b 65  |ted exactly like|
000079a0  20 4d 65 73 73 61 67 65  5f 41 72 63 77 65 62 46  | Message_ArcwebF|
000079b0  65 74 63 68 52 65 71 75  65 73 74 2c 0a 65 78 63  |etchRequest,.exc|
000079c0  65 70 74 20 74 68 61 74  20 74 68 65 20 27 66 6f  |ept that the 'fo|
000079d0  72 6d 27 20 66 69 6c 65  20 68 61 6e 64 6c 65 20  |rm' file handle |
000079e0  69 73 20 61 20 52 49 53  43 20 4f 53 20 66 69 6c  |is a RISC OS fil|
000079f0  65 20 68 61 6e 64 6c 65  20 70 6f 69 6e 74 69 6e  |e handle pointin|
00007a00  67 20 74 6f 20 61 0a 72  65 61 64 2d 6f 6e 6c 79  |g to a.read-only|
00007a10  20 66 69 6c 65 20 63 6f  6e 74 61 69 6e 69 6e 67  | file containing|
00007a20  20 64 61 74 61 20 74 6f  20 74 61 67 20 6f 6e 74  | data to tag ont|
00007a30  6f 20 74 68 65 20 65 6e  64 20 6f 66 20 74 68 65  |o the end of the|
00007a40  20 72 65 71 75 65 73 74  2e 20 0a 53 6f 6d 65 20  | request. .Some |
00007a50  66 6f 72 6d 73 20 75 73  65 20 74 68 65 20 50 55  |forms use the PU|
00007a60  54 20 6d 65 74 68 6f 64  20 69 6e 73 74 65 61 64  |T method instead|
00007a70  2e 20 20 54 68 65 20 66  65 74 63 68 65 72 20 63  |.  The fetcher c|
00007a80  61 6e 20 64 65 74 65 72  6d 69 6e 65 20 77 68 65  |an determine whe|
00007a90  74 68 65 72 0a 74 68 65  20 73 75 62 6d 69 73 73  |ther.the submiss|
00007aa0  69 6f 6e 20 77 61 73 20  61 20 70 6f 73 74 20 6f  |ion was a post o|
00007ab0  72 20 70 75 74 20 62 79  20 63 68 65 63 6b 69 6e  |r put by checkin|
00007ac0  67 20 61 72 63 77 65 62  5f 46 4c 41 47 53 5f 70  |g arcweb_FLAGS_p|
00007ad0  6f 73 74 5f 77 61 73 5f  70 75 74 20 62 69 74 0a  |ost_was_put bit.|
00007ae0  61 6e 64 20 73 65 6e 64  69 6e 67 20 61 20 50 55  |and sending a PU|
00007af0  54 20 69 6e 73 74 65 61  64 20 6f 66 20 61 20 50  |T instead of a P|
00007b00  4f 53 54 20 69 66 20 69  74 20 77 61 73 20 73 65  |OST if it was se|
00007b10  74 2e 0a 4f 62 76 69 6f  75 73 6c 79 2c 20 74 68  |t..Obviously, th|
00007b20  65 20 66 65 74 63 68 65  72 20 73 68 6f 75 6c 64  |e fetcher should|
00007b30  20 69 73 73 75 65 20 61  20 50 4f 53 54 20 63 6f  | issue a POST co|
00007b40  6d 6d 61 6e 64 20 74 6f  20 74 68 65 20 48 54 54  |mmand to the HTT|
00007b50  50 20 73 65 72 76 65 72  0a 69 6e 73 74 65 61 64  |P server.instead|
00007b60  20 6f 66 20 61 20 47 45  54 2e 20 20 54 68 65 20  | of a GET.  The |
00007b70  64 61 74 61 20 69 6e 20  74 68 65 20 66 6f 72 6d  |data in the form|
00007b80  20 66 69 6c 65 20 77 69  6c 6c 20 62 65 20 73 75  | file will be su|
00007b90  69 74 61 62 6c 65 20 66  6f 72 20 74 61 63 6b 69  |itable for tacki|
00007ba0  6e 67 20 6f 6e 0a 49 4d  4d 45 44 49 41 54 45 4c  |ng on.IMMEDIATEL|
00007bb0  59 20 61 66 74 65 72 20  74 68 65 20 50 4f 53 54  |Y after the POST|
00007bc0  20 61 6e 64 20 6f 74 68  65 72 20 75 73 75 61 6c  | and other usual|
00007bd0  20 68 65 61 64 65 72 73  2c 20 61 73 20 69 74 20  | headers, as it |
00007be0  77 69 6c 6c 20 63 6f 6e  74 61 69 6e 20 61 0a 43  |will contain a.C|
00007bf0  6f 6e 74 65 6e 74 2d 4c  65 6e 67 74 68 3a 20 68  |ontent-Length: h|
00007c00  65 61 64 65 72 20 66 6f  6c 6c 6f 77 65 64 20 62  |eader followed b|
00007c10  79 20 61 20 62 6c 61 6e  6b 20 6c 69 6e 65 2c 20  |y a blank line, |
00007c20  66 6f 6c 6c 6f 77 65 64  20 62 79 20 74 68 65 20  |followed by the |
00007c30  66 6f 72 6d 20 64 61 74  61 0a 77 69 74 68 20 61  |form data.with a|
00007c40  6c 6c 20 74 68 65 20 61  70 70 72 6f 70 72 69 61  |ll the appropria|
00007c50  74 65 20 65 73 63 61 70  65 20 63 68 61 72 61 63  |te escape charac|
00007c60  74 65 72 73 20 61 6c 72  65 61 64 79 20 73 75 62  |ters already sub|
00007c70  73 74 69 74 75 74 65 64  20 69 6e 2e 20 20 54 68  |stituted in.  Th|
00007c80  69 73 0a 64 61 74 61 20  73 68 6f 75 6c 64 20 62  |is.data should b|
00007c90  65 20 70 61 73 73 65 64  20 74 72 61 6e 73 70 61  |e passed transpa|
00007ca0  72 65 6e 74 6c 79 20 74  6f 20 74 68 65 20 48 54  |rently to the HT|
00007cb0  54 50 20 73 65 72 76 65  72 2e 20 20 54 68 65 20  |TP server.  The |
00007cc0  66 65 74 63 68 65 72 20  73 68 6f 75 6c 64 0a 72  |fetcher should.r|
00007cd0  65 73 70 6f 6e 64 20 74  6f 20 41 72 63 57 65 62  |espond to ArcWeb|
00007ce0  20 77 69 74 68 20 61 20  4d 65 73 73 61 67 65 5f  | with a Message_|
00007cf0  41 72 63 77 65 62 50 6f  73 74 44 6f 6e 65 20 69  |ArcwebPostDone i|
00007d00  6e 20 65 78 61 63 74 6c  79 20 74 68 65 20 73 61  |n exactly the sa|
00007d10  6d 65 20 66 6f 72 6d 61  74 0a 61 73 20 61 20 72  |me format.as a r|
00007d20  65 73 70 6f 6e 73 65 20  74 6f 20 4d 65 73 73 61  |esponse to Messa|
00007d30  67 65 5f 41 72 63 77 65  62 46 65 74 63 68 52 65  |ge_ArcwebFetchRe|
00007d40  71 75 65 73 74 2e 20 20  54 68 65 20 62 75 66 66  |quest.  The buff|
00007d50  65 72 20 66 6f 72 20 50  6f 73 74 44 6f 6e 65 20  |er for PostDone |
00007d60  69 73 20 74 68 65 0a 73  61 6d 65 20 61 73 20 74  |is the.same as t|
00007d70  68 65 20 62 75 66 66 65  72 20 66 6f 72 20 46 65  |he buffer for Fe|
00007d80  74 63 68 44 6f 6e 65 2e  20 20 54 68 69 73 20 69  |tchDone.  This i|
00007d90  73 20 62 65 63 61 75 73  65 20 74 68 65 20 74 61  |s because the ta|
00007da0  72 67 65 74 20 73 63 72  69 70 74 20 6f 6e 20 74  |rget script on t|
00007db0  68 65 0a 73 65 72 76 65  72 20 72 65 73 70 6f 6e  |he.server respon|
00007dc0  64 73 20 77 69 74 68 20  61 20 6e 65 77 20 76 69  |ds with a new vi|
00007dd0  72 74 75 61 6c 20 64 6f  63 75 6d 65 6e 74 2c 20  |rtual document, |
00007de0  75 73 75 61 6c 6c 79 20  63 6f 6e 66 69 72 6d 69  |usually confirmi|
00007df0  6e 67 20 74 68 61 74 20  74 68 65 0a 64 61 74 61  |ng that the.data|
00007e00  20 65 6e 74 72 79 20 77  61 73 20 73 75 63 63 65  | entry was succe|
00007e10  73 73 66 75 6c 2f 66 61  69 6c 65 64 20 65 74 63  |ssful/failed etc|
00007e20  2e 0a 0a 45 4d 61 69 6c  20 50 72 6f 74 6f 63 6f  |...EMail Protoco|
00007e30  6c 0a 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |l.==============|
00007e40  0a 0a 54 68 69 73 20 70  72 6f 74 6f 63 6f 6c 20  |..This protocol |
00007e50  77 69 6c 6c 20 62 65 20  75 73 65 64 20 77 68 65  |will be used whe|
00007e60  6e 20 41 72 63 57 65 62  20 77 61 6e 74 73 20 74  |n ArcWeb wants t|
00007e70  6f 20 73 65 6e 64 20 73  6f 6d 65 20 65 2d 6d 61  |o send some e-ma|
00007e80  69 6c 2e 20 20 41 72 63  57 65 62 0a 77 69 6c 6c  |il.  ArcWeb.will|
00007e90  20 73 65 6e 64 20 74 68  69 73 20 6d 65 73 73 61  | send this messa|
00007ea0  67 65 20 77 68 65 6e 20  74 68 65 20 75 73 65 72  |ge when the user|
00007eb0  73 20 61 74 74 65 6d 70  74 73 20 74 6f 20 66 6f  |s attempts to fo|
00007ec0  6c 6c 6f 77 20 61 20 6d  61 69 6c 74 6f 3a 20 68  |llow a mailto: h|
00007ed0  79 70 65 72 74 65 78 74  0a 6c 69 6e 6b 2c 20 6f  |ypertext.link, o|
00007ee0  72 20 77 68 65 6e 20 61  20 66 6f 72 6d 20 77 69  |r when a form wi|
00007ef0  74 68 20 61 20 6d 61 69  6c 74 6f 3a 20 6d 65 74  |th a mailto: met|
00007f00  68 6f 64 20 69 73 20 73  75 62 6d 69 74 74 65 64  |hod is submitted|
00007f10  2e 20 20 49 6e 20 74 68  65 20 66 6f 72 6d 65 72  |.  In the former|
00007f20  0a 63 61 73 65 2c 20 74  68 65 20 6d 65 73 73 61  |.case, the messa|
00007f30  67 65 20 72 65 6d 61 69  6e 73 20 74 6f 20 62 65  |ge remains to be|
00007f40  20 63 6f 6e 73 74 72 75  63 74 65 64 2c 20 73 6f  | constructed, so|
00007f50  20 74 68 65 20 63 6f 6e  74 65 6e 74 73 20 6f 66  | the contents of|
00007f60  20 74 68 65 20 66 6f 72  6d 0a 66 69 6c 65 20 73  | the form.file s|
00007f70  68 6f 75 6c 64 20 62 65  20 74 61 6b 65 6e 20 61  |hould be taken a|
00007f80  73 20 74 68 65 20 69 6e  69 74 69 61 6c 20 74 65  |s the initial te|
00007f90  78 74 20 74 6f 20 62 65  20 70 6c 61 63 65 64 20  |xt to be placed |
00007fa0  69 6e 20 74 68 65 20 65  64 69 74 6f 72 2e 20 20  |in the editor.  |
00007fb0  41 72 63 57 65 62 0a 67  75 61 72 61 6e 74 65 65  |ArcWeb.guarantee|
00007fc0  73 20 74 6f 20 6d 61 6b  65 20 74 68 65 20 66 69  |s to make the fi|
00007fd0  72 73 74 20 6c 69 6e 65  20 6f 66 20 74 68 65 20  |rst line of the |
00007fe0  66 69 6c 65 20 74 68 65  20 54 6f 3a 20 68 65 61  |file the To: hea|
00007ff0  64 65 72 2e 20 20 46 75  72 74 68 65 72 6d 6f 72  |der.  Furthermor|
00008000  65 2c 0a 62 69 74 20 32  31 20 77 69 6c 6c 20 62  |e,.bit 21 will b|
00008010  65 20 63 6c 65 61 72 20  69 6e 64 69 63 61 74 69  |e clear indicati|
00008020  6e 67 20 74 68 61 74 20  74 68 65 20 6d 65 73 73  |ng that the mess|
00008030  61 67 65 20 69 73 20 6e  6f 74 20 79 65 74 20 63  |age is not yet c|
00008040  6f 6d 70 6c 65 74 65 2e  20 20 49 6e 0a 74 68 65  |omplete.  In.the|
00008050  20 6c 61 74 74 65 72 20  63 61 73 65 20 28 74 68  | latter case (th|
00008060  65 20 69 6e 76 6f 6b 65  64 20 66 6f 72 6d 29 2c  |e invoked form),|
00008070  20 62 69 74 20 32 31 20  77 69 6c 6c 20 62 65 20  | bit 21 will be |
00008080  73 65 74 2c 20 69 6e 64  69 63 61 74 69 6e 67 20  |set, indicating |
00008090  61 0a 63 6f 6d 70 6c 65  74 65 20 6d 65 73 73 61  |a.complete messa|
000080a0  67 65 20 69 73 20 69 6e  20 74 68 65 20 62 75 66  |ge is in the buf|
000080b0  66 65 72 20 61 6e 64 20  72 65 61 64 79 20 66 6f  |fer and ready fo|
000080c0  72 20 6d 61 69 6c 69 6e  67 2e 20 20 41 72 63 57  |r mailing.  ArcW|
000080d0  65 62 20 77 69 6c 6c 20  73 74 69 6c 6c 0a 67 75  |eb will still.gu|
000080e0  61 72 61 6e 74 65 65 20  74 68 61 74 20 74 68 65  |arantee that the|
000080f0  20 66 69 72 73 74 20 6c  69 6e 65 20 69 6e 20 74  | first line in t|
00008100  68 65 20 66 6f 72 6d 20  66 69 6c 65 20 69 73 20  |he form file is |
00008110  74 68 65 20 54 6f 3a 20  68 65 61 64 65 72 2c 20  |the To: header, |
00008120  62 75 74 20 77 69 6c 6c  0a 61 6c 73 6f 20 61 64  |but will.also ad|
00008130  64 20 61 6e 20 58 2d 4d  61 69 6c 65 72 3a 20 68  |d an X-Mailer: h|
00008140  65 61 64 65 72 2c 20 61  20 44 61 74 65 3a 20 68  |eader, a Date: h|
00008150  65 61 64 65 72 20 61 6e  64 20 61 6e 79 20 6f 74  |eader and any ot|
00008160  68 65 72 20 68 65 61 64  65 72 73 20 61 73 0a 64  |her headers as.d|
00008170  69 72 65 63 74 65 64 20  62 79 20 4d 48 20 74 61  |irected by MH ta|
00008180  67 73 20 69 6e 20 74 68  65 20 66 6f 72 6d 20 28  |gs in the form (|
00008190  65 67 2e 20 53 75 62 6a  65 63 74 3a 20 68 65 61  |eg. Subject: hea|
000081a0  64 65 72 73 29 0a 0a 55  70 6f 6e 20 72 65 63 65  |ders)..Upon rece|
000081b0  69 70 74 20 6f 66 20 74  68 65 20 45 4d 61 69 6c  |ipt of the EMail|
000081c0  52 65 71 75 65 73 74 2c  20 74 68 65 20 65 2d 6d  |Request, the e-m|
000081d0  61 69 6c 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |ail application |
000081e0  73 68 6f 75 6c 64 20 74  61 6b 65 20 6f 76 65 72  |should take over|
000081f0  0a 74 68 65 20 70 72 6f  63 65 73 73 20 6f 66 20  |.the process of |
00008200  73 65 6e 64 69 6e 67 20  65 2d 6d 61 69 6c 20 61  |sending e-mail a|
00008210  6e 64 20 72 65 74 75 72  6e 20 61 6e 20 45 4d 61  |nd return an EMa|
00008220  69 6c 44 6f 6e 65 2c 20  61 66 74 65 72 20 74 61  |ilDone, after ta|
00008230  6b 69 6e 67 20 61 20 63  6f 70 79 0a 6f 66 20 74  |king a copy.of t|
00008240  68 65 20 66 6f 72 6d 20  66 69 6c 65 20 63 6f 6e  |he form file con|
00008250  74 65 6e 74 73 20 61 6e  64 20 63 6c 6f 73 69 6e  |tents and closin|
00008260  67 20 74 68 65 20 66 6f  72 6d 20 66 69 6c 65 2e  |g the form file.|
00008270  20 20 41 72 63 57 65 62  20 69 73 20 6e 6f 74 0a  |  ArcWeb is not.|
00008280  63 6f 6e 63 65 72 6e 65  64 20 77 69 74 68 20 77  |concerned with w|
00008290  68 61 74 20 68 61 70 70  65 6e 73 20 74 6f 20 74  |hat happens to t|
000082a0  68 65 20 65 2d 6d 61 69  6c 20 6e 65 78 74 2c 20  |he e-mail next, |
000082b0  61 73 20 66 61 72 20 61  73 20 69 74 20 69 73 20  |as far as it is |
000082c0  63 6f 6e 63 65 72 6e 65  64 2c 0a 74 68 65 20 65  |concerned,.the e|
000082d0  6d 61 69 6c 20 69 73 20  73 65 6e 74 2e 0a 0a 54  |mail is sent...T|
000082e0  68 65 72 65 20 69 73 20  6e 6f 20 76 69 72 74 75  |here is no virtu|
000082f0  61 6c 20 64 6f 63 75 6d  65 6e 74 20 72 65 74 75  |al document retu|
00008300  72 6e 65 64 20 66 72 6f  6d 20 61 6e 20 45 4d 61  |rned from an EMa|
00008310  69 6c 52 65 71 75 65 73  74 2e 20 20 54 68 65 20  |ilRequest.  The |
00008320  65 2d 6d 61 69 6c 0a 61  70 70 6c 69 63 61 74 69  |e-mail.applicati|
00008330  6f 6e 20 6d 61 79 20 66  6c 61 67 20 61 6e 20 65  |on may flag an e|
00008340  72 72 6f 72 20 69 6e 20  74 68 65 20 75 73 75 61  |rror in the usua|
00008350  6c 20 77 61 79 20 28 61  6e 64 20 63 68 6f 6f 73  |l way (and choos|
00008360  65 20 77 68 65 74 68 65  72 20 74 6f 20 72 65 70  |e whether to rep|
00008370  6f 72 74 0a 74 68 65 20  65 72 72 6f 72 20 69 74  |ort.the error it|
00008380  73 65 6c 66 20 6f 66 20  6e 6f 74 29 2e 20 20 41  |self of not).  A|
00008390  72 63 57 65 62 20 77 69  6c 6c 20 6f 70 65 6e 20  |rcWeb will open |
000083a0  61 20 64 69 61 6c 6f 67  75 65 20 62 6f 78 20 69  |a dialogue box i|
000083b0  6e 64 69 63 61 74 69 6e  67 20 74 68 65 0a 73 74  |ndicating the.st|
000083c0  61 74 75 73 20 6f 66 20  74 68 65 20 65 2d 6d 61  |atus of the e-ma|
000083d0  69 6c 2c 20 72 61 74 68  65 72 20 74 68 61 6e 20  |il, rather than |
000083e0  67 65 6e 65 72 61 74 69  6e 67 20 61 20 63 6f 6d  |generating a com|
000083f0  70 6c 65 74 65 20 6e 65  77 20 70 61 67 65 2e 0a  |plete new page..|
00008400  0a 41 72 63 57 65 62 54  43 50 20 77 69 6c 6c 20  |.ArcWebTCP will |
00008410  70 72 6f 76 69 64 65 20  74 68 65 20 65 6d 61 69  |provide the emai|
00008420  6c 20 66 61 63 69 6c 69  74 79 20 6f 6e 6c 79 20  |l facility only |
00008430  69 66 20 69 74 20 69 73  20 63 6f 6e 66 69 67 75  |if it is configu|
00008440  72 65 64 20 74 6f 20 64  6f 20 73 6f 2e 0a 54 6f  |red to do so..To|
00008450  20 63 6f 6e 66 69 67 75  72 65 20 69 74 2c 20 79  | configure it, y|
00008460  6f 75 20 6d 75 73 74 20  67 69 76 65 20 69 74 20  |ou must give it |
00008470  79 6f 75 72 20 65 6d 61  69 6c 20 61 64 64 72 65  |your email addre|
00008480  73 73 20 61 6e 64 20 53  4d 54 50 20 67 61 74 65  |ss and SMTP gate|
00008490  77 61 79 20 6e 61 6d 65  2e 0a 0a 0a 43 6f 6e 66  |way name....Conf|
000084a0  69 67 75 72 61 74 69 6f  6e 20 50 72 6f 74 6f 63  |iguration Protoc|
000084b0  6f 6c 0a 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |ol.=============|
000084c0  3d 3d 3d 3d 3d 3d 3d 3d  3d 0a 0a 54 68 69 73 20  |=========..This |
000084d0  70 72 6f 74 6f 63 6f 6c  20 69 73 20 75 73 65 64  |protocol is used|
000084e0  20 77 68 65 6e 20 74 68  65 20 75 73 65 72 20 69  | when the user i|
000084f0  6e 76 6f 6b 65 73 20 61  6e 20 6f 70 74 69 6f 6e  |nvokes an option|
00008500  20 6f 66 66 20 74 68 65  20 43 6f 6e 66 69 67 75  | off the Configu|
00008510  72 65 20 6d 65 6e 75 0a  6f 6e 20 41 72 63 57 65  |re menu.on ArcWe|
00008520  62 27 73 20 69 63 6f 6e  20 62 61 72 20 6d 65 6e  |b's icon bar men|
00008530  75 2e 20 20 49 74 20 61  6c 6c 6f 77 73 20 74 68  |u.  It allows th|
00008540  65 20 63 6f 6e 66 69 67  75 72 61 74 69 6f 6e 20  |e configuration |
00008550  77 69 6e 64 6f 77 73 20  6f 66 20 74 68 65 0a 68  |windows of the.h|
00008560  65 6c 70 65 72 20 61 70  70 6c 69 63 61 74 69 6f  |elper applicatio|
00008570  6e 73 20 74 6f 20 62 65  20 61 63 63 65 73 73 65  |ns to be accesse|
00008580  64 20 65 76 65 6e 20 77  68 65 6e 20 6e 6f 20 69  |d even when no i|
00008590  63 6f 6e 20 62 61 72 20  69 63 6f 6e 20 69 73 20  |con bar icon is |
000085a0  69 6e 73 74 61 6c 6c 65  64 2e 0a 54 68 65 20 6e  |installed..The n|
000085b0  61 6d 65 20 6f 66 20 74  68 65 20 61 70 70 6c 69  |ame of the appli|
000085c0  63 61 74 69 6f 6e 20 28  63 61 73 65 20 69 6e 73  |cation (case ins|
000085d0  65 6e 73 69 74 69 76 65  29 20 77 69 6c 6c 20 62  |ensitive) will b|
000085e0  65 20 69 6e 20 74 68 65  20 6d 65 73 73 61 67 65  |e in the message|
000085f0  2e 0a 54 68 65 20 6e 61  6d 65 20 6d 61 79 20 61  |..The name may a|
00008600  6c 73 6f 20 62 65 20 61  20 73 74 72 69 6e 67 20  |lso be a string |
00008610  6f 66 20 6c 65 6e 67 74  68 20 31 2c 20 74 68 61  |of length 1, tha|
00008620  74 20 63 68 61 72 61 63  74 65 72 20 62 65 69 6e  |t character bein|
00008630  67 20 2a 20 77 68 69 63  68 0a 69 6e 64 69 63 61  |g * which.indica|
00008640  74 65 73 20 74 68 61 74  20 61 6c 6c 20 61 70 70  |tes that all app|
00008650  6c 69 63 61 74 69 6f 6e  73 20 61 72 65 20 74 6f  |lications are to|
00008660  20 6f 70 65 6e 20 74 68  65 69 72 20 63 6f 6e 66  | open their conf|
00008670  69 67 75 72 61 74 69 6f  6e 20 77 69 6e 64 6f 77  |iguration window|
00008680  73 2e 0a 54 68 65 72 65  20 69 73 20 6e 6f 20 61  |s..There is no a|
00008690  63 6b 6e 6f 77 6c 65 64  67 65 6d 65 6e 74 20 72  |cknowledgement r|
000086a0  65 71 75 69 72 65 64 20  66 6f 72 20 74 68 69 73  |equired for this|
000086b0  20 70 72 6f 74 6f 63 6f  6c 2e 0a 0a 0a 45 78 74  | protocol....Ext|
000086c0  65 72 6e 61 6c 20 4c 61  75 6e 63 68 20 50 72 6f  |ernal Launch Pro|
000086d0  74 6f 63 6f 6c 0a 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |tocol.==========|
000086e0  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 0a 0a  |==============..|
000086f0  54 68 69 73 20 70 72 6f  74 6f 63 6f 6c 20 69 73  |This protocol is|
00008700  20 75 73 65 64 20 77 68  65 6e 20 61 6e 20 65 78  | used when an ex|
00008710  74 65 72 6e 61 6c 20 61  70 70 6c 69 63 61 74 69  |ternal applicati|
00008720  6f 6e 2c 20 73 75 63 68  20 61 73 20 61 20 6d 61  |on, such as a ma|
00008730  69 6c 20 72 65 61 64 65  72 2c 0a 77 69 73 68 65  |il reader,.wishe|
00008740  73 20 74 6f 20 6c 61 75  6e 63 68 20 61 20 55 52  |s to launch a UR|
00008750  4c 20 66 65 74 63 68 2e  20 20 54 68 65 20 27 50  |L fetch.  The 'P|
00008760  72 69 76 61 74 65 20 68  61 6e 64 6c 65 27 20 66  |rivate handle' f|
00008770  69 65 6c 64 20 77 69 6c  6c 20 62 65 0a 70 72 65  |ield will be.pre|
00008780  73 65 72 76 65 64 20 69  6e 20 61 6e 79 20 72 65  |served in any re|
00008790  73 70 6f 6e 73 65 20 66  72 6f 6d 20 41 72 63 57  |sponse from ArcW|
000087a0  65 62 20 61 6c 6c 6f 77  69 6e 67 20 74 68 65 20  |eb allowing the |
000087b0  63 6c 69 65 6e 74 20 74  6f 20 68 61 76 65 0a 6d  |client to have.m|
000087c0  75 6c 74 69 70 6c 65 20  6f 75 74 73 74 61 6e 64  |ultiple outstand|
000087d0  69 6e 67 20 72 65 71 75  65 73 74 73 2c 20 61 6c  |ing requests, al|
000087e0  74 68 6f 75 67 68 20 41  72 63 57 65 62 20 64 6f  |though ArcWeb do|
000087f0  65 73 20 6e 6f 74 20 67  75 61 72 61 6e 74 65 65  |es not guarantee|
00008800  20 74 6f 20 62 65 0a 61  62 6c 65 20 74 6f 20 73  | to be.able to s|
00008810  75 70 70 6f 72 74 20 6d  75 6c 74 69 70 6c 65 20  |upport multiple |
00008820  63 6f 6e 63 75 72 72 65  6e 74 20 65 78 74 65 72  |concurrent exter|
00008830  6e 61 6c 20 72 65 71 75  65 73 74 73 20 61 74 20  |nal requests at |
00008840  74 68 69 73 20 74 69 6d  65 2e 20 54 68 65 20 66  |this time. The f|
00008850  6c 61 67 73 0a 66 69 65  6c 64 20 63 6f 72 72 65  |lags.field corre|
00008860  73 70 6f 6e 64 73 20 74  6f 20 74 68 65 20 75 73  |sponds to the us|
00008870  75 61 6c 20 66 6c 61 67  73 20 73 70 65 63 69 66  |ual flags specif|
00008880  69 65 64 20 66 6f 72 20  2e 2e 52 65 71 75 65 73  |ied for ..Reques|
00008890  74 20 6d 65 73 73 61 67  65 73 20 77 69 74 68 0a  |t messages with.|
000088a0  74 68 65 20 66 6f 6c 6c  6f 77 69 6e 67 20 65 78  |the following ex|
000088b0  63 65 70 74 69 6f 6e 73  3a 20 20 49 74 20 73 68  |ceptions:  It sh|
000088c0  6f 75 6c 64 20 68 61 76  65 20 62 69 74 20 32 32  |ould have bit 22|
000088d0  20 73 65 74 20 69 6e 64  69 63 61 74 69 6e 67 20  | set indicating |
000088e0  74 68 61 74 20 61 20 66  69 6c 65 0a 68 61 6e 64  |that a file.hand|
000088f0  6c 65 20 69 73 20 70 72  65 73 65 6e 74 20 77 68  |le is present wh|
00008900  69 63 68 20 63 6f 6e 74  61 69 6e 73 20 61 20 66  |ich contains a f|
00008910  75 6c 6c 79 20 71 75 61  6c 69 66 69 65 64 20 55  |ully qualified U|
00008920  52 4c 2e 20 20 49 74 20  73 68 6f 75 6c 64 20 68  |RL.  It should h|
00008930  61 76 65 20 6e 6f 0a 6f  74 68 65 72 20 66 6c 61  |ave no.other fla|
00008940  67 73 20 6d 61 79 20 62  65 20 73 65 74 20 65 78  |gs may be set ex|
00008950  63 65 70 74 20 66 6f 72  20 61 72 63 77 65 62 5f  |cept for arcweb_|
00008960  46 4c 41 47 53 5f 72 65  6c 6f 61 64 2c 0a 61 72  |FLAGS_reload,.ar|
00008970  63 77 65 62 5f 46 4c 41  47 53 5f 6c 6f 61 64 5f  |cweb_FLAGS_load_|
00008980  74 6f 5f 64 69 73 63 2c  20 6f 72 20 61 72 63 77  |to_disc, or arcw|
00008990  65 62 5f 46 4c 41 47 53  5f 69 6d 61 67 65 73 5f  |eb_FLAGS_images_|
000089a0  64 69 73 61 62 6c 65 64  0a 0a 54 68 69 73 20 6d  |disabled..This m|
000089b0  65 73 73 61 67 65 20 73  68 6f 75 6c 64 20 62 65  |essage should be|
000089c0  20 73 65 6e 74 20 72 65  63 6f 72 64 65 64 20 64  | sent recorded d|
000089d0  65 6c 69 76 65 72 79 20  28 69 65 2e 20 57 69 6d  |elivery (ie. Wim|
000089e0  70 20 65 76 65 6e 74 20  74 79 70 65 20 31 38 29  |p event type 18)|
000089f0  20 61 6e 64 0a 75 70 6f  6e 20 72 65 63 65 69 70  | and.upon receip|
00008a00  74 20 6f 66 20 61 20 66  61 69 6c 75 72 65 20 28  |t of a failure (|
00008a10  57 69 6d 70 20 72 65 74  75 72 6e 73 20 61 20 57  |Wimp returns a W|
00008a20  69 6d 70 20 65 76 65 6e  74 20 74 79 70 65 20 31  |imp event type 1|
00008a30  39 29 20 74 68 65 20 65  78 74 65 72 6e 61 6c 0a  |9) the external.|
00008a40  61 70 70 6c 69 63 61 74  69 6f 6e 20 6d 75 73 74  |application must|
00008a50  20 63 6c 6f 73 65 20 74  68 65 20 55 52 4c 20 66  | close the URL f|
00008a60  69 6c 65 20 61 6e 64 20  69 73 73 75 65 20 69 74  |ile and issue it|
00008a70  73 20 6f 77 6e 20 65 72  72 6f 72 2e 20 20 49 74  |s own error.  It|
00008a80  20 6d 75 73 74 0a 61 73  73 75 6d 65 20 74 68 61  | must.assume tha|
00008a90  74 20 41 72 63 57 65 62  20 77 61 73 20 6e 6f 74  |t ArcWeb was not|
00008aa0  20 6c 6f 61 64 65 64 20  6f 72 20 77 61 73 20 6f  | loaded or was o|
00008ab0  74 68 65 72 77 69 73 65  20 75 6e 61 62 6c 65 20  |therwise unable |
00008ac0  74 6f 20 72 65 73 70 6f  6e 64 2e 20 0a 41 72 63  |to respond. .Arc|
00008ad0  57 65 62 20 77 69 6c 6c  20 72 65 73 70 6f 6e 64  |Web will respond|
00008ae0  20 77 69 74 68 20 61 20  4d 65 73 73 61 67 65 5f  | with a Message_|
00008af0  41 72 63 77 65 62 4c 61  75 6e 63 68 44 6f 6e 65  |ArcwebLaunchDone|
00008b00  20 6d 65 73 73 61 67 65  20 69 66 20 69 74 20 63  | message if it c|
00008b10  61 6e 20 28 61 6e 64 0a  74 68 75 73 20 61 73 73  |an (and.thus ass|
00008b20  75 6d 65 20 66 75 6c 6c  20 72 65 73 70 6f 6e 73  |ume full respons|
00008b30  69 62 69 6c 69 74 79 20  66 6f 72 20 74 68 65 20  |ibility for the |
00008b40  55 52 4c 20 66 69 6c 65  20 68 61 6e 64 6c 65 29  |URL file handle)|
00008b50  2e 20 20 54 68 65 20 65  72 72 6f 72 20 73 74 61  |.  The error sta|
00008b60  74 75 73 0a 69 73 20 69  6e 64 69 63 61 74 65 64  |tus.is indicated|
00008b70  20 62 79 20 74 68 65 20  65 72 72 6f 72 20 62 69  | by the error bi|
00008b80  74 20 69 6e 20 74 68 65  20 66 6c 61 67 73 2c 20  |t in the flags, |
00008b90  61 6e 64 20 69 66 20 74  68 69 73 20 69 73 20 73  |and if this is s|
00008ba0  65 74 2c 20 74 68 65 6e  20 74 68 65 0a 62 75 66  |et, then the.buf|
00008bb0  66 65 72 20 63 6f 6e 74  61 69 6e 73 20 61 6e 20  |fer contains an |
00008bc0  65 72 72 6f 72 20 6d 65  73 73 61 67 65 2c 20 6f  |error message, o|
00008bd0  74 68 65 72 77 69 73 65  20 74 68 65 20 62 75 66  |therwise the buf|
00008be0  66 65 72 20 63 6f 6e 74  65 6e 74 73 20 61 72 65  |fer contents are|
00008bf0  0a 69 6e 64 65 74 65 72  6d 69 6e 61 74 65 2e 0a  |.indeterminate..|
00008c00  0a 0a 4d 65 73 73 61 67  65 5f 41 72 63 77 65 62  |..Message_Arcweb|
00008c10  57 65 62 42 72 6f 77 73  65 72 0a 3d 3d 3d 3d 3d  |WebBrowser.=====|
00008c20  3d 3d 3d 3d 3d 3d 3d 3d  3d 3d 3d 3d 3d 3d 3d 3d  |================|
00008c30  3d 3d 3d 0a 0a 41 72 63  57 65 62 54 43 50 20 73  |===..ArcWebTCP s|
00008c40  65 6e 64 73 20 62 72 6f  77 73 65 72 20 69 64 65  |ends browser ide|
00008c50  6e 74 69 66 69 63 61 74  69 6f 6e 20 74 6f 20 48  |ntification to H|
00008c60  54 54 50 20 73 65 72 76  65 72 73 20 77 68 65 6e  |TTP servers when|
00008c70  20 69 74 20 74 61 6c 6b  73 20 74 6f 20 74 68 65  | it talks to the|
00008c80  6d 2e 20 0a 42 79 20 64  65 66 61 75 6c 74 2c 20  |m. .By default, |
00008c90  69 74 20 73 65 6e 64 73  20 74 68 65 20 6c 61 74  |it sends the lat|
00008ca0  65 73 74 20 6b 6e 6f 77  6e 20 76 65 72 73 69 6f  |est known versio|
00008cb0  6e 20 6f 66 20 41 72 63  57 65 62 20 77 68 65 6e  |n of ArcWeb when|
00008cc0  20 69 74 20 77 61 73 20  63 6f 6d 70 69 6c 65 64  | it was compiled|
00008cd0  2e 20 0a 48 6f 77 65 76  65 72 2c 20 73 69 6e 63  |. .However, sinc|
00008ce0  65 20 6f 74 68 65 72 20  77 65 62 20 62 72 6f 77  |e other web brow|
00008cf0  73 65 72 73 20 63 61 6e  20 75 73 65 20 74 68 65  |sers can use the|
00008d00  20 66 61 63 69 6c 69 74  69 65 73 20 70 72 6f 76  | facilities prov|
00008d10  69 64 65 64 20 62 79 0a  41 72 63 57 65 62 54 43  |ided by.ArcWebTC|
00008d20  50 2c 20 49 20 68 61 76  65 20 61 64 64 65 64 20  |P, I have added |
00008d30  74 68 69 73 20 6d 65 73  73 61 67 65 20 74 6f 20  |this message to |
00008d40  61 6c 6c 6f 77 20 74 68  65 20 62 72 6f 77 73 65  |allow the browse|
00008d50  72 20 74 6f 20 69 64 65  6e 74 69 66 79 20 69 74  |r to identify it|
00008d60  73 65 6c 66 0a 74 6f 20  72 65 6d 6f 74 65 20 73  |self.to remote s|
00008d70  65 72 76 65 72 73 2e 20  20 54 68 65 20 63 6f 6e  |ervers.  The con|
00008d80  74 65 6e 74 20 6f 66 20  74 68 65 20 62 75 66 66  |tent of the buff|
00008d90  65 72 20 28 73 65 65 20  72 65 71 75 65 73 74 65  |er (see requeste|
00008da0  72 2e 68 29 20 69 73 20  61 20 63 6f 6e 74 72 6f  |r.h) is a contro|
00008db0  6c 0a 63 68 61 72 61 63  74 65 72 20 74 65 72 6d  |l.character term|
00008dc0  69 6e 61 74 65 64 20 73  74 72 69 6e 67 20 6f 66  |inated string of|
00008dd0  20 74 68 65 20 66 6f 72  6d 20 53 74 72 69 6e 67  | the form String|
00008de0  2f 30 2e 30 30 20 77 68  65 72 65 20 53 74 72 69  |/0.00 where Stri|
00008df0  6e 67 20 69 73 20 74 68  65 0a 62 72 6f 77 73 65  |ng is the.browse|
00008e00  72 20 6e 61 6d 65 20 28  6d 61 79 20 63 6f 6e 74  |r name (may cont|
00008e10  61 69 6e 20 73 70 61 63  65 73 29 20 61 6e 64 20  |ain spaces) and |
00008e20  30 2e 30 30 20 69 73 20  74 68 65 20 76 65 72 73  |0.00 is the vers|
00008e30  69 6f 6e 20 6e 75 6d 62  65 72 2e 20 20 41 72 63  |ion number.  Arc|
00008e40  57 65 62 54 43 50 0a 77  69 6c 6c 20 69 6e 73 65  |WebTCP.will inse|
00008e50  72 74 20 74 68 69 73 20  73 74 72 69 6e 67 20 69  |rt this string i|
00008e60  6e 74 6f 20 74 68 65 20  68 65 61 64 65 72 73 20  |nto the headers |
00008e70  61 6e 64 20 61 70 70 65  6e 64 20 73 74 72 69 6e  |and append strin|
00008e80  67 20 22 20 28 41 63 6f  72 6e 20 52 49 53 43 20  |g " (Acorn RISC |
00008e90  4f 53 3b 0a 41 52 4d 29  20 41 72 63 57 65 62 54  |OS;.ARM) ArcWebT|
00008ea0  43 50 2f 76 2e 76 76 22  20 74 6f 20 69 74 2c 20  |CP/v.vv" to it, |
00008eb0  73 75 62 73 74 69 74 75  69 6e 67 20 69 74 73 20  |substituing its |
00008ec0  76 65 72 73 69 6f 6e 20  6e 75 6d 62 65 72 2e 20  |version number. |
00008ed0  20 41 6e 79 20 63 6f 6e  74 72 6f 6c 0a 63 68 61  | Any control.cha|
00008ee0  72 61 63 74 65 72 73 20  6f 72 20 74 6f 70 20 62  |racters or top b|
00008ef0  69 74 20 73 65 74 20 63  68 61 72 61 63 74 65 72  |it set character|
00008f00  73 20 61 72 65 20 74 72  65 61 74 65 64 20 61 73  |s are treated as|
00008f10  20 74 65 72 6d 69 6e 61  74 6f 72 73 20 74 6f 20  | terminators to |
00008f20  70 72 65 76 65 6e 74 0a  61 6e 79 20 73 65 63 75  |prevent.any secu|
00008f30  72 69 74 79 20 62 72 65  61 63 68 65 73 2e 0a 0a  |rity breaches...|
00008f40  0a 0a 3d 3d 45 4e 44 3d  3d 0a                    |..==END==.|
00008f4a