Home » Archimedes archive » Acorn User » AU 1996-12 B.adf » Features » PCA/Docs/PCA7_HTM

PCA/Docs/PCA7_HTM

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 » Archimedes archive » Acorn User » AU 1996-12 B.adf » Features
Filename: PCA/Docs/PCA7_HTM
Read OK:
File size: D3E0 bytes
Load address: 0000
Exec address: 0000
File contents
<HTML>
<HEAD>
<TITLE>PCA</TITLE>


</HEAD>
<BODY bgcolor="#bbbbbb" BACKGROUND="graphics/crumple.gif" text="#000000" link="#004499" vlink="#dd0000">
<CENTER><IMG SRC="GRAPHICS/PCA.GIF" ALT="PCA Logo" WIDTH=258 HEIGHT=144></CENTER><P>
<HR>To view the latest version of this protocol visit our web site at
<P>
<A HREF="http://www.stcoll.ac.uk/clares/support/pca.html">http://www.stcoll.ac.uk/clares/support/pca.html</A>
 <BR><HR>
<H1>Plug In Compliant Application</H1>
<P>

<H4>
<A NAME="top">
Contents
</A></H4><P>

<UL>
<LI><A HREF="#intro">Introduction</A>
<LI><A HREF="#summary">Message Summary</A>
<LI><A HREF="#mesdefs">Message definitions</A>
<LI><A HREF="#remote">In-place editing</A>
<LI><A HREF="#interface">User Interface</A>
<LI><A HREF="#swis">SWIs</A>
<LI><A HREF="#licence">Licence Conditions</A>
<LI><A HREF="#contacts">Contacting Clares</A>
<LI><A HREF="#disclaim">Disclaimer</A>
<LI><A HREF="#examples">Example applications</A> (The examples archive contains a copy of this document for reading off line)

</UL>
<BR>
<P>

<HR>


<H2><A NAME="intro">Introduction</A></H2>

The Clares Plug In Compliant Application (PCA) specification provides an
easy to implement way of allowing multiple applications to share common
objects residing in shared memory areas. A program written to the PCA
specification will work with any other which supports the standard and uses
the same type of objects.<BR>
<P>

<B>What does PCA do for me as a user ?</B>
<P>

The PCA standard works at two levels. In each case a document in a common
memory area can be 'shared' between two or more applications. This is
<B>not</B> like the versions of OLE implemented on the Acorn platform. There
is a major difference in that OLE <B>copies</B> the document for the second
application to work on, thus your data takes up twice as much RAM. With PCA
all applications work on the <B>same</B> document thus incurring no RAM
overheads. <P> The controlling application is called the <A
HREF="#local">Local</A> application and the slave application is called the
<A HREF="#remote1">Remote</A> application.

<P>
When a document is edited in a Remote application the object in the Local
application is automatically updated.
<P>
What we have up to now is a more efficient way of doing OLE. However, PCA
does not stop there. Take an application like Composition which provides a
page make up environment for bit image and vector images - all of which can
be moved and edited - a bit like Draw for bit images but with a LOT of
extras. Composition does not provide 'painting' tools but ProArtisan 24
does. If both applications are PCA compliant then a Utilities menu in Compo
will show ProArt 24 as a 'tool'. Clicking on this menu entry opens a PA24
window showing the selected Compo object. PA24 can paint into this object or
indeed perform any of its functions on the object. All changes are reflected
immediately in Compo.
<P>
This means that an application can have other applications as 'tools'. Small
'applets' can be written to provide specific functions to a PCA application
<I>and they will be usable by any other PCA compliant application.</I>
<P>
Imagine a simple application that does nothing else except display a sprite
and conform to the PCA standard. Another application could provide paint
tools, yet another could provide filters, another might provide warping
tools - you get the picture I'm sure. From this range of applets you can
construct the <B>tool</B> that you require to get the job done.
<P>

What's more, more than one remote applet can work on the same object at the
same time and changes made in any one of these will be immediately reflected
in all of them.<P> This is an awful lot better than OLE but there's still
more.

<P>
Instead of each applet opening its own window we can use 'In-place' editing.
This means that only the <B>Local</B> application displays the document.
When you click on a 'tool' entry in the Utilities menu the new tool's
Toolbar opens over the Local application's window. All tools then work on
the image in the Local's window.

<P>
Now you are really able to construct an application from a range of applets.
All you will see is one window displaying the document.
<P>
Take this a little further and imagine a DTP package supporting the PCA
standard. It could have a frame containing a graphic image and you could
link this to PA24, Compo or any other PCA application, which could
manipulate the image. The changes would be reflected immediately in the DTP
window. However, if In-place editing is used, the Toolbars would appear in
the DTP window and allow you to edit the graphic directly in the DTP window.
<P>
<CENTER><IMG SRC="GRAPHICS/PCA1.GIF" ALT="A screenshot showing PCA in a DTP
app" WIDTH=254 HEIGHT=303></CENTER>
<CENTER><I>A PCA Toolbar acting on an image in a DTP frame</I></CENTER>
<P>

What we now have is a system whereby an application can have an infinite
number of additional tools and all applications conforming to PCA can be
used with and by all other PCA applications.
<P>
An example of this could be an image in a DTP frame linked to Compo which
used this image as a 'canvas' for a composite picture. From Compo one of
the images in the composite picture could also be linked to ProArt24 and
any changes would immediately be reflected in Compo and the DTP package.

<P>
If you jump to the bottom of this page you can download some <A HREF="#examples">example
applications</A> and documentation that may make things clearer. The main
document to read is 'ToTest'.
<P>
<H2>A more technical explanation</H2>

There are two 'sides' to PCA support. Applications may support either or
both as it suits them.
<P>

<B><A NAME=A NAME="local">Local</A></B>
<P>


A Local application creates and maintains an area of shared memory (on the
RiscPC this is most likely to be a dynamic area, older hardware must use RMA
or something like the Dynamite memory manager). Objects in this area may be
edited by any PCA 'remote' application which is running, provided that it
knows about the type of object concerned. It is the local application's
responsibility to create and maintain pointers to objects and to take the
correct action when an object moves or changes size. 

 <P>

<B><A NAME=A NAME="remote1">Remote</A></B>
<P>
A Remote application modifies an object in some way when requested to do so
by a Local application. Remote applications can be small 'applets' or
major programs in their own right. The PCA specification sets no limits
on the changes which may be made to an object.
<P>
In practice, the two sides blur considerably. For example, it is possible
for more than one 'Remote' task to work on the same object at the same
time in which case the 'Remote' tasks must respond to some messages in a similar
way to the 'Local' task.
<P>
In addition, an optional extension to the standard provides support for
'In-place' editing of objects directly in another application's window.
<P>


<B>
Limitations, assumptions and philosophy
</B>

<P>



The PCA standard requires the following:
<P>



<UL>

<LI>    Objects are stored in an area of memory available to all tasks. (eg.
Dynamic areas). Beyond that the PCA is designed to be as transparent as
possible to the memory management system used by a program. See below for
some notes on memory management related issues.

<LI>    Objects are either entirely paged into RAM during any PCA exchange, or a
        virtual memory system which is transparent to the program accessing memory
        is used (Eg. Clares Virtualise).<P>

<LI>    Objects are stored in a cross-program standard format for which there is a
        method of rendering readily available to other programmers.
        Examples are RISC OS Sprites, Drawfiles, ArtWorks files, Plain text
etc.
</UL><P>If you are writing or have written a program which produces
data objects that may be desirable for other programs to render, you should
consider providing a rendering module (or some code) which
other applications can use to display your object types. You should also
consider placing the details (if not the rendering code itself) in the
public domain. <P>

No well written RISC OS application is an island. By supporting the PCA
standard programs can take advantage of each other's good features and
minimise their weaknesses while providing the user with a far richer and
more productive working environment.
<P>

<B>
Memory management issues
</B>

<P>

For backwards compatability programs that wish to use PCA on pre RiscPC
hardware can fall back to using the RMA or something like the Dynamite
memory manager. We do <b>not</b> however believe that Dynamite is the best
solution for a PCA task on the RiscPC. This is because Dynamite uses one
dynamic area to store all of its data rather than one dynamic area for each
task. This practice means that, in the event of a PCA remote task going
wrong and writing beyond the end of the object being edited, *all* tasks
using Dynamite could crash rather than just the one local task in question.
Also, Dynamite will not work with <i>Virtualise</i> which provides a PCA
compatible virtual memory system.<P> 

<P>
<A HREF="#top">Return to Contents</A>
<HR>


<H1><A NAME="mesdefs">Plug In Compliant Application Message specification</A></H1>  <P>



<AU>
 </P> Author  : Rob Davison (rdavison@xtra.co.nz)<BR>
Date    : 01/08/96<BR>
Status  : Release 1<BR>
</AU>

<P>
Message Index<BR>


<UL>
<TT>

<LI><A HREF="#whos">Message_WhosAbout0x83484</A>
<LI><A HREF="#im">Message_ImHere0x83485</A>
<LI><A HREF="#do">Message_DoYourStuff0x83486</A>
<LI><A HREF="#desel">Message_Deselect0x83487</A>
<LI><A HREF="#done">Message_DoneMyStuff0x83488</A>
<LI><A HREF="#changed">Message_Changed0x8348A</A>
<LI><A HREF="#resize">Message_ResizeRequest0x8348B</A>
<LI><A HREF="#update">Message_UpdateArea0x8348C</A>
<LI><A HREF="#resizeack">Message_ResizeAck0x8348D</A>
<LI><A HREF="#misc">Message_MiscOp0x8348E</A>
<LI><A HREF="#info">Message_Info0x8348F</A>
<LI><A HREF="#pos">Message_ObjectPosition0x83490</A>
<LI><A HREF="#hook">Message_HookMe0x83491</A>
<LI><A HREF="#unhook">Message_UnhookMe0x83492</A>


</UL>
</TT>

<P>


<B>
Notes:
</B>
<P>


Filetype is divided into two fields with this format:

<PRE>

           b 0-12 RISC OS filetype
           b13-31 reserved - zero.

</PRE>

<P>

On reading, please mask bits 13-31 out before checking the filetype.
<P>

Strings are null terminated but supporting applications should accept Ctrl.
terminated (ASCII 0-31).<P>


'Address of base' is the beginning of the data structure which contains the object.<P>
'Offset to object' is the offset from the Address of base to the object-of-interest
<P>

For example, the 'Offset to object' of a sprite is the offset to the sprite
itself (base!8 for the first sprite in a sprite area). The 'Address of base'
is the address of the sprite area in which the sprite resides. For objects
where the offset has no meaning the offset to the object must be zero.

<P>

The PCA references objects using 'tags'. Each tag is usually 16 bytes in length
and its format is defined thus:<P>
<PRE>
tag+0  = Address of base. (anchor)
tag+4  = Offset to object from base.
tag+8  = Length of object. (if applicable - see note below)
tag+12 = Extension size and flags
               b0-15 These bits are to provide for expansion of the size of a
               tag by up to 65532 bytes. Typically, this is for app. or object
               specific data. This document specifies two extensions to show
               you how it's done. Details below.

               b16-31 (reserved, set to zero)
</PRE>

The first two values in a tag are most important as they are pointers to the
address of the object and the base of the data structure containing it.
Remote tasks must <B>*always*</B> reference an object by reading these values.
Generally speaking, Remote tasks can usually trust the address and offset
until the next Wimp_Poll but if in doubt, re-read it from the tag. The Local
task has the responsibility of creating the object's tag when the object
joins the PCA system, updating the relevant fields in the tag if the object
is moved or resized and discarding the tag when it is sure it is no longer
needed. Tags must themselves be in a common memory area and they <em>must
not move</em> during the lifetime of the object in the PCA system. Clares
provide a small module called 'PCASupport' which may be freely distributed
by registered PCA developers to facilitate the creation of PCA tags for
applications which do not want to create tags themselves.

<p>

Notes:<p>

Many objects store their length within the object data structure itself and
in that case you <b>must</b> use the value stored within the object's data
instead of relying on the length field in the tag. It is intended for object
types which include no record of their size (text for example).

<P>

Tag extensions must adhere to the following standard:
<pre>
tag+12.b0-15   = (bytes required+4). Multiples of 4 bytes only.
tag+16           extension id. Types 0-&fff are reserved for Clares PCA.
                 Other values are allocated in line with SWI/Message
                 chunk numbers for application developers.
(extended data dependant on tag id)
</pre>

To give an example of a tag extension we define two tag extensions which may
be used with PCA text objects.

<p>

<pre>

Simple text object
------------------
tag+12 8
tag+16 &FFF
tag+20 length of buffer allocated to object
       (ie the remote task can extend the size of the text (as given at tag+8)
       until its size reaches tag+20 bytes before calling Message_Resize.

Edited text object
------------------
tag+12 16
tag+16 &FFE
tag+20 length of buffer for first chunk
tag+24 offset to rest of text from object base
tag+28 length of rest of text
</pre>

Edited text objects are split into two separate parts, the pointer to base
at the beginning of the tag, points to the start of the first chunk of text,
the offset to object points to the end of this chunk of text (= the caret
position) while the values at tag+24 and tag+28 point to the rest of the
text. Suitable manipulation of these values should allow a text editor to
work with PCA. <em>Note:</em> this has not been tested with any code -
any comments please contact the author of PCA.

<p>

The tag extension system is potentially very powerful but please do not
abuse it. If everyone who ever writes a PCA program creates a tag extension
for their own object format then chaos will reign and the PCA system will
become useless. (Anyone questioning this is invited to use the specification
document for the TIFF file format as bedside reading - a perfect example of
a tagged file format gone wrong). In general, the basic tag structure or the
'pca text' extension defined above will do for most data types. If you
really feel you have to create your own extension then please double check
with Clares that a suitable extension does not already exist. The extension
should then be defined in the format given above and the information sent to
Clares for distribution to the PCA community.

<p>

On receipt of a PCA message you should decide if the message refers to one
of your objects (either a local one you created yourself or a remote object
which you are editing). You do this by comparing the object's tag address,
passed in the message, with a local array of tags that you know about. Get into
the habit of doing it this way (rather than comparing the tag's address
fields with your own data structures) as one message, <A
HREF="#desel">Message_Deselect</A> may pass a tag address which no longer
actually contains valid data (the object itself having been deleted). See
its entry for details.

<p>

In the following documentation '<I>Local</I>' is the 'owning task' being the
task to which the object is 'local'. This task created the object and its
PCA tag. It knows how to resize and how to delete the object.

<P>

'<I>Remote</I>' is the 'utility' task - the one which modifies an object for
the 'local' or owning task.
<P>

Please note which messages are to be broadcast and which are sent
task-to-task. The correct functioning of the system depends on the correct
usage.
<P>

<h3><A NAME="summary">PCA Message Summary</A></h3><BR>

This is intended to give the programmer an overview of what goes on in a typical
PCA session. It ignores many of the finer points of the protocol.

<p>

1. Local task broadcasts Message_WhosAbout for a selected object.<BR>
2. Remote tasks examine message data and respond with Message_ImHere.<BR>
3. Local task, in response to users choice of Remote sends Message_DoYourStuff.<BR>
4. (if doing inplace editing) Remote task, on receipt of DoYourStuff  sends Message_HookMe.<BR>
5. (repeated) Remote and Local tasks broadcast Message_UpdateArea if the user changes the object.<BR>
6. Remote task sends Message_Unhook when user closes window/toolbar onto object.<BR>
7. Local task broadcasts Message_Deselect if user deletes object/quits program.<BR>

The variable names used in the example BASIC program are included after the
message number.

<P>



<STRONG><A NAME="whos">
Message_WhosAbout
</A> (&83484) </STRONG> (Msg_Whos%)<P>


Broadcast by Local task when opening Utility sub-menu/popup (see the section
on user interface). 

<P>

The block pointed to by R1 contains:<P>
<PRE>
R1+20   filetype of object
R1+24   address of object tag
R1+28   reserved - 0
</PRE>

<P>


Receiving remote tasks should respond with <A HREF="#im">Message_ImHere</A>
as defined below if the filetype is 'interesting'. You can examine the data
in the tag at R1+24 if the filetype alone does not suffice (for example, a
program which can only edit 32bpp sprites should examine the sprite type
word at !(R1+24)+(R1+24)!4) +40 (ie tag address field+offset to object
field)+40 before sending <A HREF="#im">Message_ImHere</A>).

<P>

<STRONG><A NAME="im">
Message_ImHere
</A> (&83485) (Msg_Im%) </STRONG><P>


Sent by Remote task to Local task. Local records the data passed for later
use in creating a dialogue box or menu.

<P>


The block pointed to by R1 contains:<P>
<PRE>
R1+20
        bits 0-7 flags:
                b0 Spritename supplied
                b1 Info available
                b2 Reserved - 0
                b3 Tool wants to 'own' the object
                b4 Tool wants In place editing
                b5-7 Reserved - 0
                b8-31 Reserved - 0

R1+24           Tool id.
R1+28           String. Menu entry/Function name (eg. Contrast...).
                Length limited to 31chars+terminator.
R1+60           String. Name of sprite in wimp sprite pool
                (if b0 of R1+20 is set)


<P>
</PRE>
</P>

The tool id is intended for remote tasks which provide more than one
utility. It is returned to the task with <A
HREF="#do">Message_DoYourStuff</A>.

<P>
Flags:<P>

<PRE>
b0      indicates to the recipient that there is a sprite name at R1+60
        - the sprite is stored in the Wimp sprite pool and should be
        used when rendering the popup dialogue box.<P>

b1      indicates that the tool can provide a response
        to <A HREF="#info">Message_Info</A>.

b2      Reserved - 0

b3      indicates that the tool wants to 'own' the object.
        Local task should send Msg_Deselect for the object
        before sending <A HREF="#do">Message_DoYourStuff</A> if this bit is
        set. Do not set this bit unless you have to as it
        will prevent other remote tasks from sharing the
        object at the same time. It should only be set when
        the remote task wants to 'take over' the object completely.

        - such as Composition taking over a 32bpp sprite
        for use as a canvas.

b4      This bit is designed to allow for real 'in place editing'
        operations. Because of the amount of code necessary
        at the local end to handle this it has been defined
        as an optional part of the standard.
</PRE>
       
<P>
Local applications which do not support in place editing should clear bit 4
of the flags word and send that with DoYourStuff. On receipt, the remote
application should check if bit 4 is still set and if not open a remote
window onto the object.

<P>


Notes: In early versions of this standard bits 28-31 of the flags word had
another use. This data has been moved to <A HREF="#hook">Message_HookMe.</A>
Please see below.

<P>


<STRONG>
<A NAME="do">
Message_DoYourStuff
</A> (&83486) (Msg_Do%)
</STRONG>
<P>

The block pointed to by R1 contains:<P>

<PRE>
R1+20   Filetype of object
R1+24   Address of object tag
R1+28   reserved - 0
R1+32   Tool id
R1+36   Tool flags word
R1+40   String. Name of object or null (&0)
</PRE>
<P>

Sent by Local task to remote task depending on entry selected in Utilities
sub-menu/dialogue. Remote task should record the tag address and open its
window (or just its toolbar if bit 4 of the flags word is set). 

<P>

<B>
Notes:
</B><P>

If the Remote task set bit 4 of the flags word in <A
HREF="#im">Message_ImHere</A> when replying to <A
HREF="#whos">Message_WhosAbout</A> it should check that this bit is still
set now. If it has been cleared then the Local task cannot handle remote
messaging and the Remote task must open a separate window onto the object.
<P>

If bit 4 is still set it means that the local task is willing to participate
in an in-place editing session. In this case the Remote task should simply
open its toolbar and send <A HREF="#hook">Message_HookMe</A> to the Local
task to ask it to intercept mouse button and other Wimp events. Receipt of
this message will also cause the Local task to send <A
HREF="#pos">Message_ObjectPosition</A> to move the remote tasks toolbar to
the correct position. 

<P>

Nothing about the standard prevents the object changing type (eg from sprite
to Drawfile) between <A HREF="#whos">Message_WhosAbout</A> and this message.
On receipt of this message the Remote task must therefore check the filetype
field and as much of the object's data structure as necessary to ensure that
it can edit the object and delink/ignore the message quietly if the type is
not to its liking. This allows the Local task to 'move' a remote task to
different objects cleanly.

<P>


Before sending Message_DoYourStuff with bit 4 set the local task should
broadcast <A HREF="#unhook">Message_UnhookMe</A> to prevent more than one
remote task attempting to do in-place editing at once.

<p> 

Before sending Message_DoYourStuff with bit 3 set the local task should
broadcast <A HREF="#desel">Message_Deselect</A> as the remote task in
question wants to 'own' the object.

<P>

<STRONG>
<A NAME="desel">
Message_Deselect
</A> (&83487) (Msg_Desel%)
</STRONG>
<P>

Broadcast by Local task when the object has been deleted.
<P>

The block pointed to by R1 contains:<P>

<PRE>
R1+20   Filetype of object.
R1+24   Address of object tag
</PRE>
<P>

All Tasks interested in the object should close their window/abandon their
operations as the object in question has been removed from the PCA system
(usually because it has been deleted). Local tasks <b>must</b> generate this
message when deleting an object, quitting etc. or remote tasks using the
object will crash. If the Local task is using PCASupport for tag generation
it should call SWI PCA_DeleteAndKill which will delete the tag and send this
message in one operation but <b>only</b> when the object really is being
deleted.<p> Note: This implies that the remote task, on receipt of this
message <b>cannot</b> rely on more than the tag address as a key to the
object. It _cannot_ access the object data via the tag passed as SWI
PCA_DeleteTag has already been called (the address fields within the tag
will contain -1 and the object data itself may well have been discarded).
This is unavoidable without a two message (Message/Ack) deselection system
which would be more difficuilt for tasks to handle. Especially (as is often
the case) if the local task is about to quit.


<P>


<STRONG>
<A NAME="done">
Message_DoneMyStuff
</A> (&83488) (Msg_Done%)
</STRONG>
<P>

Broadcast by a task when it has modified the object. All tasks accessing the
object other than the originator of the message should recognise this
message and redraw the object.

<P>

The block pointed to by R1 contains:<P>
<PRE>
R1+20   0
R1+24   Address of object tag

</PRE><P>

Use this message for 'whole object changed' operations which do not involve
changes to the object's basic structure (Eg. image filter of sprite).

<P>

Note: Recepit of this message by the Local task should
not be taken as an indication that the remote task is no longer interested
in it. That is what <A HREF="#unhook">Message_UnhookMe</A> is for.

<p>

<STRONG>
<A NAME="changed">
Message_Changed
</A> (&8348A) (Msg_Changed%)
</STRONG>
<P>

Broadcast by Local or Remote task when the object has changed (either in
size or its details). Task should act as if it had got a new DoYourStuff
message.

<P>

Broadcast by Remote task after it has changed the object's size. Local and
other interested Remote tasks will re-read the object's details and redraw
the object.<P>


The block pointed to by R1 contains:<P>

<PRE>
R1+20   Filetype of object
R1+24   Address of object tag
R1+28   reserved - 0
R1+32   String. New name of object or zero for no change.

</PRE><P>

Note: Nothing about the standard prevents the object changing type (eg from
sprite to Drawfile). On receipt of this message please check the filetype
field as well as all necessary aspects of the object's data structure. If
the object is not to a Remote task's liking it should send Message_UnHook and
delink quietly.


<P>

<STRONG>
<A NAME="resize">
Message_ResizeRequest
</A>  (&8348B) (Msg_Resize%)
</STRONG><P>


Sent by Remote task to Local (task handle in R1+4 of DoYourStuff message).
If the Local task fails to deal successfully it will claim the message.

<P>


The block pointed to by R1 contains:<P>
<PRE>
R1+20   0
R1+24   Address of object tag
R1+28   reserved - 0
R1+32   New size. Total size of object structure
        (including header, offset to base etc.) if flags b1
        clear otherwise new size of object itself.
R1+36   Flags
               b0 set 'Resize associated objects as well'
               b1 set 'New Size is for object alone - does not include header.'
</PRE>
<P>

If the Local task succeeds then it will send <A
HREF="#resizeack">Message_ResizeAck</A> (basically, copy R1+8 to R1+12, put
Message ResizeAck into R1+16, update R1+32 and return to sender). On receipt
of ResizeAck message the sender of ResizeRequest should modify the object
appropriately (for example, adding rows/columns to a sprite).

<P>

<B>
Notes:
</B><P>

You must be prepared for the resize request to fail in which case it is the
responsibility of the Local task to report to the user and the Remote task
to continue safely.

<P>


If the ResizeAck message returns to a Remote task you must check that the
field in R1+12 is equal to the MyRef generated by the Resize message you
sent to ensure that the ResizeAck is for the object you have requested be
resized. If it is, ensure that the object is in a renderable state before
the next Wimp_Poll by updating the relevant parts of the object's internal
data structure.

<P>


The local task's only modification to the data after a Resize is to write new
size fields where appropriate and to update the object's tag address fields
if the object moves. For sprites the new total area size should be written
into 'Base of data'+0 - it does not know what the Remote task is going to do
with the sprite and therefore cannot make any other modifications to the
data.

<P>

For data types which do not store size within their data structure then the
length field of the tag should also be modified (along with the address
fields if the object has to be moved).

<P>

After modifying the object the Remote task must broadcast <A
HREF="#changed">Message_Changed</A>.

<P>

Composition will read bit zero of the flags word. If this bit is set, it will
resize masks associated with the sprite in question as well. The amount by
which masks will be resized is calculated from the resize-request for
the sprite itself. Other applications can ignore or act on this bit as they
wish. The task which requested the resize must be able to handle either
action.

<P>
Bit one of the flags word is intended to facilitate the resizing of paths
in Drawfiles and similar data structures under the PCA though no code has been
written to do this yet.
<p>

<H3>
Resize Summary

</H3><P>

This is what you do to change the size of an object you are editing:<P>

<em>From a Remote task's point of view:</em><P>

Send <A HREF="#resize">Message_ResizeRequest</A> and keep myref generated
>from the message. On receipt of ResizeAck check myref, modify object data
and broadcast <A HREF="#changed">Message_Changed</A>.

<P>

<em>From the Local task's point of view:</em><P>

On receipt of <A HREF="#resize">Message_ResizeRequest</A> resize object if
possible, update the objects tag anchors and send ResizeAck otherwise claim
the message and report an error to user.

<P>

<em>Both Remote and Local tasks:</em><P>

On receipt of <A HREF="#changed">Message_Changed</A> re-read the object
header as if it was newly created and redraw the entire object. (You may
need to regenerate an area of your window the size of the old object -
remember the new object may occupy less screen area).


<P>
<em>Resize speed issues</em>
<P>

When the object being resized is very large, VM (Virtual Memory)is being
used, or the resize requests are frequent, there may be a performance issue.
In such situations the Local task should consider moving the object to the
top of its data storage area to prevent repeated memory moving operations.
In applications where many small resize requests are likely then consider
employing a tag extension system similar to the one defined above for text
files to reduce the frequency of the resize requests. 

 <P>

<STRONG>
<A NAME="update">
Message_UpdateArea
</A>  (&8348C) (Msg_Uparea%)
</STRONG><P>


Broadcast by task when it has modified part of an object. Apps interested in
the object should redraw the appropriate area of the object as quickly as
possible if they have a window onto the object open.

<P>

The block pointed to by R1 contains:<P>
<PRE>
R1+20   Format of subsequent data (0)
R1+24   Address of object tag
R1+28   Xlow  (OS units at 1:1 scale)
R1+32   Ylow  (OS units at 1:1 scale)
R1+36   Xhi   (OS units at 1:1 scale)
R1+40   Yhi   (OS units at 1:1 scale)
</PRE><P>

where coordinates are relative to the bottom left of the object.
<P>

Currently this is the only format supported by code (working with bitmap
sprites). 

<P>

Other proposed formats are as follows:
<P>

<PRE>
R1+20   Format of subsequent data (1)
R1+24   Address of object tag
R1+28   Xlow (Draw units = OS units &lt;&lt;8)
R1+32   Ylow (Draw units = OS units &lt;&lt;8)
R1+36   Xhi  (Draw units = OS units &lt;&lt;8)
R1+40   Yhi  (Draw units = OS units &lt;&lt;8)
</PRE>
<P>

where coordinates are relative to the bottom left of the object.
<P>

<PRE>
R1+20   Format of subsequent data (2)
R1+24   Address of object tag
R1+28   Xlow (Draw units = OS units &lt;&lt;8)
R1+32   Ylow (Draw units = OS units &lt;&lt;8)
R1+36   Xhi  (Draw units = OS units &lt;&lt;8)
R1+40   Yhi  (Draw units = OS units &lt;&lt;8)
</PRE>
<P>

where coordinates are relative to the top left of the object.

<P>                                                         

If you have anyother suggestions please contact Clares or the author.

<p>


<STRONG>
<A NAME="resizeack">
Message_ResizeAck
</A> (&8348D)  (Msg_ResizeAck%)
</STRONG>
<P>

Sent by Local task when a resize request has succeeded. On receipt by a
Remote task, check that R1+12 is the myref generated from <A
HREF="#resize">Message_ResizeRequest</A> before modifying the object data
structure and broadcasting <A HREF="#changed">Message_Changed</A>.

<P>


The block pointed to by R1 contains:

<P>

<PRE>
R1+20   reserved - 0
R1+24   Address of object tag
R1+28   reserved - 0
R1+32   New size allocated to object
R1+36   Flags

</PRE><P>


<STRONG>
<A NAME="misc">
Message_MiscOp
</A>(&8348E)  (Msg_Misc%)
</STRONG>
<P>

This message is designed to provide a private interface option for PCA
programs without them having to request other message allocations from
Acorn.

<P>


The block pointed to by R1 contains:<P>

<PRE>
R1+20   Sub-reason code
</PRE>
<P>

- other data dependant on sub-reason code.<P>

The sub-reason codes available to application developers are allocated in
line with SWI and Message blocks - if you have one of these then those
values may be used by your programs. Where appropriate, please make details
of your messages available to the PCA community by sending them to Clares
for distribution.

<P>

Currently, only two sub-reasons are defined for use with Composition. The
current format of these is given below but is subject to change. Please
contact Clares before releasing programs which rely on it:

<P>


        <STRONG>
SubReason_GiveAssociatedData (&83480)
</STRONG>
<P>

        Broadcast by remote plug-in when it would like to know more about the object.
<P>

        The block pointed to by R1 contains:<P>
<PRE>
        R1+24   Address of object tag
</PRE>


        <STRONG>
SubReason_AssociatedDataCompo  (&83481)
</STRONG><P>


        Sent by Compo to Remote which broadcast GiveAssociatedData containing a tag pointing to a Compo object.
<P>

        The block pointed to by R1 contains:<P>
<PRE>
        R1+24   Address of object tag
        R1+28   reserved - 0
        R1+32   two eight bit and one sixteen bit fields
                bits 0-7     Masks in use by object
                bits 8-15    Format of subsequent data (zero)
                bits 16-31   Reserved
        R1+36   Reserved (0)
        R1+40   Blend mask address or zero    = no Blend mask
        R1+44   Tint mask address or zero     = no Tint mask
        R1+48   Curve mask address or zero    = no Curve mask
        R1+52   Displace mask address or zero = no Displace mask
        R1+56   Shadow mask address or zero   = no Shadow mask
        R1+60   Reserved
        R1+64   Reserved
        R1+68   Opacity of object (65536=solid 0=transparent)
        R1+72   Math type in use for object

</PRE><P>

Notes: The 'mask address' passed is the address of the base of a sprite area
containing one eight bit greyscale sprite (at address+address!8). The size
of a mask should not be assumed to be the same as that of the object - read
it from the mask sprite data or use OS_SpriteOp to extract it. 

<P>

The data returned by this message is fragile - re-read whenever you want to
make use of it.

<P>


<STRONG>

<A NAME="info">
Message_Info
</A> (&8348F) (Msg_Info%)
</STRONG><P>


Sent by Local to Remote application when the info button in the pop-up is clicked.
<P>

The block pointed to by R1 contains:<P>

<PRE>
R1+20   0
</PRE>
<P>

Remote application should write a suitable info string into +20, change the
message size and return the message to the sender.

<P>

Example info strings:<BR>

"Image Filter. No image linked at the moment."<BR>

"Image Filter. Image 'Face' linked at the moment."<BR>

<P>


<STRONG>
<A NAME="pos">
Message_ObjectPosition
</A>  (&83490) (Msg_ObjPos%)
</STRONG>
<P>

This message is generated by the Local application after receipt of <A
HREF="#hook">Message_HookMe</A>, object repositioning operations and window
open operations, if the Local application supports 'in-place editing'.<P>


The block pointed to by R1 contains:

<P>

<PRE>
R1+20   0
R1+24   Address of object tag
R1+28   Y scale of object in Local window (65536=1:1 or 100%)
R1+32   Xlow of object on screen in 'Local' window. (limited to visible area)
R1+36   Ylow of object on screen in 'Local' window. (limited to visible area)
R1+40   Handle of 'Local' window.
R1+44   Handle of Local windows toolbar window (or -1 if no toolbar)
R1+48   X scale factor of object in Local window (16.16 format eg 65536=1:1 or 100%)
R1+52   Xlow of object on screen in Local window. (unlimited)
R1+56   Ylow of object on screen in Local window. (unlimited)

</PRE><P>
On receipt, the Remote task should open its toolbar/infobar relative to the
positions in R1+32 and R1+36 behind the window handle at R1+44. The
coordinates passed in R1+32 and R1+36 should be limited to the windows
visible area (by the Local task) while those at +52 and +56 should not.

<P>

The information at R1+28 and R1+48 onwards is for use by the Remote task
during mouse click operations on the object. To convert mouse coordinates
read directly it should subtract the values at R1+52,R1+56 from the raw
mousex and mousey coordinates, and then scale them by the factors in
R1+28 and R1+48.
<P>
The X and Y scale factors are in 16.16 format. To convert a scale factor
into this format, multiply by 1 &lt;&lt; 16. For example, 100% = a scale factor of
one and is therefore (1 &lt;&lt; 16) * 1 which is 65536 or &10000. 150% = a scale
factor of 1.5 and is therefore (1 &lt;&lt; 16) * 1.5 which is 98304 or &18000.

<p>

See the remote painting code (DEFPROCremote_win) in !Spaint for a practical
example of what you should do.

<P>

<STRONG>
<A NAME="hook">
Message_HookMe
</A>  (&83491)  (Msg_Hook%)

</STRONG><P>


This message is sent by the Remote task to the Local task. It indicates to
the Local task that it should begin intercepting mouse button and other Wimp
events to the object and send them to the Remote task. On receipt, the Local
task should create a trap icon over the object (using the button type in
r1+28) and send Message_ObjectPosition. 

<P>


The block pointed to by R1 contains:<P>

<PRE>
R1+20   0
R1+24   Address of object tag
R1+28   bits 0-27 Flags - reserved and set to zero.
        bits 28-31 Window 'work area' button type to use for trap icon.
R1+32   Window handle
R1+36   String. indirection string for icon or Null (&0)
</PRE>
<P>

To make life easier for the remote task the Local task should also take note
of the window handle at R1+32 and insert that value into the window handle
field when passing on Wimp messages. This allows the remote task to use much
of the same code to deal with remotely generated messages and messages to
their own window.

<P>

The optional indirection string at R1+36 is intended to allow for adding a
mouse pointer change when entering in-place edited objects. Take care with
this string as certain settings can disrupt the Local task's message
trapping. This extension is optional. Some local tasks may not support it so
do not rely on it. 

<p>

If the remote task is already editing an object in-place (and it is going to
replace it) then it should send Message_Unhook to the local task previously
being worked with so that it deletes its trap icon. 

<P>

Please see the section below on In-place editing for details of the best
method of trapping messages and the alterations which should be made before
forwarding them.

<P>

<STRONG>
<A NAME="unhook">
Message_UnhookMe
</A> (&83492)  (Msg_Unhook%)

</STRONG><P>

This message is sent by a remote task to the Local task (or local to remote)
when it wants to 'unhook' from the object.

<P>

The block pointed to by R1 contains:<P>

<PRE>
R1+20   0
R1+24   Address of object tag
R1+28   reserved  - 0
R1+32   Window handle
R1+36   Unhook 'type'

</PRE><P>

This message should be used by a Remote task to indicate its lack of
interest in an object. After sending this message the Remote task should
forget any references to the object and close its toolbar and/or window.

<P>

Little action need be taken at the Local end on receipt of this message
unless 'Inplace editing' is going on between the tasks in which case it
should remove the traps on Button click messages etc for the object. If the
Local task wishes to be efficient in its generation of PCA messages then it
should keep a counter for each object in the PCA system, increase the
counter on each call to Message_DoYourStuff and decrease it on each receipt
of Message_UnHook. Then PCA messages need only be generated in response to
changes made by the Local task if the objects counter is greater than zero.
When the counter reaches zero the Local task should broadcast Message_Deselect
as a saftey measure to ensure that all Remote tasks stop using the object.

<P>

The 'unhook type' at R1+36 currently has two defined values:
<P>

<PRE>
R1+36   0 'Unhook' is temporary
          (used by Compo to support the 'Track selected'
          preference option)
R1+36   1 'Unhook' is permanent - forget about this PCA.
</PRE><P>


All values other than zero should currently be treated as 'permanent'.<P>
<P>
<A HREF="#top">Return to Contents</A>
<HR>

<H1><A NAME="remote">PCA In-place editing specification</A></H1><P>
<AU>

Author  : Rob Davison (rdavison@xtra.co.nz)<BR>

Date    : 15/08/96<BR>

Status  : Release 1<BR>


</AU>

<H2>
Introduction
</H2>

<P>

The aim of this section is to define the work necessary for applications to
support 'in-place' editing (applications working on an object within another
application's window) within the framework supplied by the PCA itself.

<P>

This feature is an optional part of the PCA specification. All remote tasks
must be able to operate according to the normal PCA specification (open
their own window onto the object) if the Local task in question does not
support in-place editing. Even if the Local task does support this, it is
wise for the remote task to give the user the option of switching to
external editing as in-place editing has its disadvantages as well as
advantages. (The principal disadvantage being that
only one in-place editing session per object can be undertaken at a time,
for obvious reasons).

<P>


<B>
Local task

</B><P>
The greatest amount of work is down to the 'Local' or object-owning application.
<P>

After invoking a remote task with the PCA message DoYourStuff when bit 4 of
the flags word is set, it must expect receipt of <A
HREF="#hook">Message_HookMe</A> from the remote task. When it gets this
message it should create a transparent icon in its window which completely
covers the object and send <A HREF="#pos">Message_ObjectPosition</A>.

<P>

The button type of this icon should be taken from bits 28-31 of the flags
word as sent by <A HREF="#hook">Message_HookMe</A> and the indirection
string (if supported) from R1+36

<P>

Then, on receipt of the following standard Wimp messages the Local task must
check to see if the message refers to an icon covering the object, and if it
is, modify the message block and pass the message to the remote task using
Wimp_SendMessage.
<P>

Doing this effectively cuts a 'hole' in the window where the object is.
Messages into that region get shunted to the Remote task and are ignored by
the Local task.
<P>

<H3>
Details of the modifications:

</H3><P>

<B>
6. Button_Click
</B><P>

xposition and yposition should be made relative to the object's bottom left.
Window handle must be set to the one supplied in <A
HREF="#hook">Message_HookMe</A>. Icon handle must be set to the special
value -&414350 (-"PCA")

<P>

??? Other messages ???<BR>
??? Which to support and how to modify them ???<BR>
??? Advise us if you have any suggestions ???
<P>

On receipt of Message_OpenWindow for the window in which the object resides
the Local task must send <A HREF="#pos">Message_ObjectPosition</A> to the
remote task so that it can open its toolbar at an appropriate place.

<P>

Also, any actions which cause the position or size of the remotely linked
object to change must resize and reposition the icon created above and send
<A HREF="#pos">Message_ObjectPosition</A> again.

<P>

On receipt of <A HREF="#unhook">Message_UnhookMe</A> it must delete the icon
covering the object and carry out any other work necessary to restore normal
access to the object. The same action should obviously also be undertaken if
the object is deleted.

<P>
<B>Remote Task</B>
<P>

On receipt of <A HREF="#pos">Message_ObjectPosition</A> the remote task must
open its toolbar at an appropriate position calculated from the data
contained in the message.

<P>

This toolbar must contain at least one icon which, when clicked on, sends <A
HREF="#unhook">Message_UnhookMe</A> to the local task, removes any
references it has to the object and closes the toolbar. Model the appearance
of this icon on the window close icon and position the icon at the far left
horizontal toolbars or at the top left of vertical toolbars.

<P>

On receipt of<A HREF="#do"> Message_Do</A>/<A
HREF="#changed">Message_Changed</A> the remote task must check to see if
In-place editing is on (b4 of flags in Message_Do) and, if so, send <A
HREF="#hook">Message_HookMe</A> rather than opening its own window onto the
object.

<P>

On receipt of ButtonClick messages (apparently) to its main window the
remote task should check the icon handle and if it is equal to -&414350
treat the coordinates passed in the ButtonClick block as 'corrected' for the
position of its window, scrollbars etc as the coordinates are already
relative to the objects bottom left. Modify the object data as appropriate
and generate <A HREF="#update">Message_UpdateArea</A> as with standard PCA
practice.

<P>

You should be able to use the same code for remote and local actions just do
not convert pointer coordinates to be relative to your main window and do
not redraw your main window (it should be closed anyway).

<P>

Note: For 'painting' or 'dragging' type actions it is sometimes wise to set
the remote button type (in Message_HookMe) to Click and to do a tight
repeating 'loop' around your redraw/paint code, reading the mouse pointer
information directly until the button click stops. In this situation the
Remote task should make use of the information in the last
Message_ObjectPosition it receieved to work out the visible size and
position of the object in the Local task's window (see the !Spaint example).

<P>

<A HREF="#top">Return to Contents</A>
<HR>

<H1>
<A NAME="interface">
PCA User Interface specifications
</A>

</H1><AU>
Author  : Rob Davison (rdavison@xtra.co.nz)<BR>

Date    : 15/08/96<BR>

Status  : Release 1<BR>

</AU>
<P>

This documents the suggested user-interface and general message handling
requirements for applications on both sides of the PCA protocol. You should
note that it is possible for applications to implement either or both sides
of the protocol.

<P>

<H3>
Local application

</H3>
The local application must poll the PCA system with <A
HREF="#whos">Message_WhosAbout</A> and present that information to the user.
It is recommended that you provide several methods of doing this:

<P>

<H3>
Invoking the protocol

</H3>
Invoking the protocol scans the active tasks and presents a list of the
available utilities. This list can be presented in two ways; as a simple
RISC OS menu or as a graphical 'pop-up' window. You should support both
methods in your applications by providing a preferences option to the user.

<P>


To invoke the popup Ctrl-Shift-Double Click is recommended. If that shortcut
is not free another combination is acceptable, preferably related in some
way to the Ctrl-Double click Acorn OLE-1 standard.

<P>

In addition, add the PCA to your menu structure. The sub-menu item
"Utilities >" is appropriate.

<P>

Another alternative is to add a button to your toolbar to invoke the protocol.
<P>
<CENTER>
<IMG SRC="GRAPHICS/POPUP.gif" WIDTH=511 HEIGHT=253>
</CENTER>
<P>


<CENTER>
<B>
A typical PCA popup dialogue. All measurements in OS units

</B>
</CENTER>
<P>

The width of this dialogue should be set to the width of the longest tool
name returned in the <A HREF="#im">Message_ImHere</A> messages (which may be
found on the RiscPC using SWI Wimp_TextOp). Add 220 OS-units to the width of
all items to allow for the Tool icon and Info buttons. The height of each
item is fixed at 96 OS-units.

<P>

The tool icon is present in the Wimp sprite pool and is usually the PCA
applications icon. Applications which provide multiple 'tools' can register
more than once, passing a unique 'toolnumber' with <A
HREF="#im">Message_ImHere</A>.

<P>


The popup should be opened such that the pointer is centred over the top
tool name and as a menu so it automatically closes on any mouse access
outside it. If there are more than five PCAs available the popup dialogue
should be given a vertical scrollbar and the initial size limited to five
items. For a more detailed example, see the PCA version of Composition or
the dialogue creation and redraw code in !Spaint.

<P>

<B>Other options</B>
<P>

Several other options may be offered to the user by a Local task. Which are
practical depends on the application in question but the following may be
appropriate for a task which supports both sides of the protocol:

<P>

<CENTER>
<IMG SRC="GRAPHICS/prefs.gif" ALT="Preferences" WIDTH=382 HEIGHT=161 ALIGN="MIDDLE">
</CENTER>
<P>

The display radio buttons allow the user to choose the form of popup which
will be presented to the user. Menus are simpler and take up less desktop
space. Dialogue boxes look better and provide more information.

<P>

The In-place editing option should be provided by a Remote task. If no
objects are being edited then toggling this option simply prevents or allows
bit 4 of the flags word to be set in subsequent <A
HREF="#im">Message_ImHere</A> messages generated. If an object is being
edited in-place when this option is toggled the Remote task should switch
between in-place and remote operation on that object as the option is
toggled.

<P>

The 'Follow selected' option is provided by a Local task and, when on, the
last task sent a <A HREF="#do">Message_DoYourStuff</A> is automatically sent
a new <A HREF="#do">Message_DoYourStuff</A> every time the 'selected object'
changes. Obviously this option only has validity when there is a concept of
the 'selected object'.

<P>


<A HREF="#top">Return to Contents</A>
<HR>

<H1>
<A NAME="swis">
PCA support module SWIs
</A>
</H1>

Module  : PCASupport<P>
Version : 0.07 (12 August 1996)<P>
Chunk   : &4D6C0

<P>
<P>

The PCA support module is designed to facilitate the creation of PCA style
'tags' in an area of shared memory. At a future date other useful PCA
related SWIs (eg. colaescing update area rectangles) may be added. In the
meantime the following SWIs are provided.

<p>

<pre>
<STRONG>SWI PCA_CreateTag</STRONG>
on entry -

r1 = address of base
r2 = Offset to object
r3 = size of object (optional)
r4 = flags/extension data (not in this version.)

on exit -

r0 = address of tag
(r1-r4 are written into the tag as initial values.)
All other registers preserved.


Errors returnable:

"This version of the PCA support module cannot create extended tags."
Produced if bits set in R4 (b0-15).

"This version does not resize the tag block on old hardware. (too many tags)."
Produced on pre-RPC hardware if more than 2048 tags are in use.


</pre><p>

<b>NOTE:</b> PCASupport relies on the first value of a valid tag not being
&FFFFFFFF (-1). NEVER write this value into the base field of the tag as the
next call to PCA_CreateTag will probably map your tag to another object -
causing chaos.

<p>
<pre>

<STRONG>SWI PCA_DeleteTag</STRONG>
on entry -

R0 = ptr to tag

on exit all registers preserved.

Errors returnable:
"Bad tag passed to PCASupport."


<STRONG>SWI PCA_DeleteAndKill</STRONG>
on entry -

R0 = ptr to tag
R1 = filetype of object

on exit all registers preserved.

</pre>

As well as the functionality of the above SWI this also broadcasts
Message_Deselect for you.

<P>


<A HREF="#top">Return to Contents</A>
<HR>



<H1>
<A NAME="licence">
Licence conditions
</A>

</H1>
<P>



You are invited to add the PCA standard to your programs and to create PCA
'applets'. However, before publishing or distributing (in any form) a program
which makes use of the PCA standard you must first obtain a licence to do so
>from Clares Micro Supplies.
<P>

The licence is currently free of charge and early adopters will be guaranteed
that the license will remain free for a minimum of five years. We do not
have any plans to charge for a license but we do not want to preclude the
possibility at a later date - well would you ?<br>

<P>
PD Authors : We gurantee that your license will *always* be free.<p>

<P>

Licensing the PCA standard allows us to keep track of who is using it,
inform them of changes to the standard and provide support in the case of a
problem.

<P>


<B>
PCA Logo
</B>
<P>

The PCA logo may be used by licensed PCA developers to indicate PCA
compliancy. Licensed developers must not use the logo to suggest any Clares
approval or branding for their products.

<B><P>

<A NAME="contacts">
Contacts
</A>

</B>
<P>

<A HREF="mailto://DJackson@Clares.demon.co.uk">DJackson@clares.demon.co.uk</A> - Licensing details and project coordination.<BR>

<A HREF="mailto://rdavison@xtra.co.nz">
rdavison@xtra.co.nz
</A>           - Author of the standard.

<P>

<B>
<A NAME="disclaim">
Disclaimer
</A>

</B><P>

This standard is supplied 'as is'; neither Clares nor the author of the standard
make any warranty, whether express or implied, as to the merchantability of
the software or standard or its fitness for any purpose.
<P>

In no circumstances will Clares or the author of the standard be liable for
any damage, loss of profits, goodwill or for any indirect or consequential
loss arising from the use of this standard or software.
<P>

Implementation of the standard is deemed acceptance of these terms.

<P>
<A HREF="#top">Return to Contents</A>
<P>
<HR>
<A NAME="examples"></A>
<H1>PCA Compliant examples</H1>
<P>

We have prepared several examples of PCA applications in both C and BASIC.
They show different interfaces that can be used as well as an example of
'In-Place' editing. <P>

Don't forget to let us know what applications you are writing to comply with
the standard. <A HREF="mailto://DClare@Clares.demon.co.uk">Clares</A> may be
interested in publishing any PCA applications that you write so please send
us a copy if this appeals to you.

<P>
The examples are compressed with Spark. Use either SparkFS or the PD
SparkPlug to decompress the files.


<P>
<A HREF="#top">Return to Contents</A>
<HR>
<FONT SIZE=1>
Last updated 28/08/96</FONT>
</BODY>
</HTML>








00000000  3c 48 54 4d 4c 3e 0a 3c  48 45 41 44 3e 0a 3c 54  |<HTML>.<HEAD>.<T|
00000010  49 54 4c 45 3e 50 43 41  3c 2f 54 49 54 4c 45 3e  |ITLE>PCA</TITLE>|
00000020  0a 0a 0a 3c 2f 48 45 41  44 3e 0a 3c 42 4f 44 59  |...</HEAD>.<BODY|
00000030  20 62 67 63 6f 6c 6f 72  3d 22 23 62 62 62 62 62  | bgcolor="#bbbbb|
00000040  62 22 20 42 41 43 4b 47  52 4f 55 4e 44 3d 22 67  |b" BACKGROUND="g|
00000050  72 61 70 68 69 63 73 2f  63 72 75 6d 70 6c 65 2e  |raphics/crumple.|
00000060  67 69 66 22 20 74 65 78  74 3d 22 23 30 30 30 30  |gif" text="#0000|
00000070  30 30 22 20 6c 69 6e 6b  3d 22 23 30 30 34 34 39  |00" link="#00449|
00000080  39 22 20 76 6c 69 6e 6b  3d 22 23 64 64 30 30 30  |9" vlink="#dd000|
00000090  30 22 3e 0a 3c 43 45 4e  54 45 52 3e 3c 49 4d 47  |0">.<CENTER><IMG|
000000a0  20 53 52 43 3d 22 47 52  41 50 48 49 43 53 2f 50  | SRC="GRAPHICS/P|
000000b0  43 41 2e 47 49 46 22 20  41 4c 54 3d 22 50 43 41  |CA.GIF" ALT="PCA|
000000c0  20 4c 6f 67 6f 22 20 57  49 44 54 48 3d 32 35 38  | Logo" WIDTH=258|
000000d0  20 48 45 49 47 48 54 3d  31 34 34 3e 3c 2f 43 45  | HEIGHT=144></CE|
000000e0  4e 54 45 52 3e 3c 50 3e  0a 3c 48 52 3e 54 6f 20  |NTER><P>.<HR>To |
000000f0  76 69 65 77 20 74 68 65  20 6c 61 74 65 73 74 20  |view the latest |
00000100  76 65 72 73 69 6f 6e 20  6f 66 20 74 68 69 73 20  |version of this |
00000110  70 72 6f 74 6f 63 6f 6c  20 76 69 73 69 74 20 6f  |protocol visit o|
00000120  75 72 20 77 65 62 20 73  69 74 65 20 61 74 0a 3c  |ur web site at.<|
00000130  50 3e 0a 3c 41 20 48 52  45 46 3d 22 68 74 74 70  |P>.<A HREF="http|
00000140  3a 2f 2f 77 77 77 2e 73  74 63 6f 6c 6c 2e 61 63  |://www.stcoll.ac|
00000150  2e 75 6b 2f 63 6c 61 72  65 73 2f 73 75 70 70 6f  |.uk/clares/suppo|
00000160  72 74 2f 70 63 61 2e 68  74 6d 6c 22 3e 68 74 74  |rt/pca.html">htt|
00000170  70 3a 2f 2f 77 77 77 2e  73 74 63 6f 6c 6c 2e 61  |p://www.stcoll.a|
00000180  63 2e 75 6b 2f 63 6c 61  72 65 73 2f 73 75 70 70  |c.uk/clares/supp|
00000190  6f 72 74 2f 70 63 61 2e  68 74 6d 6c 3c 2f 41 3e  |ort/pca.html</A>|
000001a0  0a 20 3c 42 52 3e 3c 48  52 3e 0a 3c 48 31 3e 50  |. <BR><HR>.<H1>P|
000001b0  6c 75 67 20 49 6e 20 43  6f 6d 70 6c 69 61 6e 74  |lug In Compliant|
000001c0  20 41 70 70 6c 69 63 61  74 69 6f 6e 3c 2f 48 31  | Application</H1|
000001d0  3e 0a 3c 50 3e 0a 0a 3c  48 34 3e 0a 3c 41 20 4e  |>.<P>..<H4>.<A N|
000001e0  41 4d 45 3d 22 74 6f 70  22 3e 0a 43 6f 6e 74 65  |AME="top">.Conte|
000001f0  6e 74 73 0a 3c 2f 41 3e  3c 2f 48 34 3e 3c 50 3e  |nts.</A></H4><P>|
00000200  0a 0a 3c 55 4c 3e 0a 3c  4c 49 3e 3c 41 20 48 52  |..<UL>.<LI><A HR|
00000210  45 46 3d 22 23 69 6e 74  72 6f 22 3e 49 6e 74 72  |EF="#intro">Intr|
00000220  6f 64 75 63 74 69 6f 6e  3c 2f 41 3e 0a 3c 4c 49  |oduction</A>.<LI|
00000230  3e 3c 41 20 48 52 45 46  3d 22 23 73 75 6d 6d 61  |><A HREF="#summa|
00000240  72 79 22 3e 4d 65 73 73  61 67 65 20 53 75 6d 6d  |ry">Message Summ|
00000250  61 72 79 3c 2f 41 3e 0a  3c 4c 49 3e 3c 41 20 48  |ary</A>.<LI><A H|
00000260  52 45 46 3d 22 23 6d 65  73 64 65 66 73 22 3e 4d  |REF="#mesdefs">M|
00000270  65 73 73 61 67 65 20 64  65 66 69 6e 69 74 69 6f  |essage definitio|
00000280  6e 73 3c 2f 41 3e 0a 3c  4c 49 3e 3c 41 20 48 52  |ns</A>.<LI><A HR|
00000290  45 46 3d 22 23 72 65 6d  6f 74 65 22 3e 49 6e 2d  |EF="#remote">In-|
000002a0  70 6c 61 63 65 20 65 64  69 74 69 6e 67 3c 2f 41  |place editing</A|
000002b0  3e 0a 3c 4c 49 3e 3c 41  20 48 52 45 46 3d 22 23  |>.<LI><A HREF="#|
000002c0  69 6e 74 65 72 66 61 63  65 22 3e 55 73 65 72 20  |interface">User |
000002d0  49 6e 74 65 72 66 61 63  65 3c 2f 41 3e 0a 3c 4c  |Interface</A>.<L|
000002e0  49 3e 3c 41 20 48 52 45  46 3d 22 23 73 77 69 73  |I><A HREF="#swis|
000002f0  22 3e 53 57 49 73 3c 2f  41 3e 0a 3c 4c 49 3e 3c  |">SWIs</A>.<LI><|
00000300  41 20 48 52 45 46 3d 22  23 6c 69 63 65 6e 63 65  |A HREF="#licence|
00000310  22 3e 4c 69 63 65 6e 63  65 20 43 6f 6e 64 69 74  |">Licence Condit|
00000320  69 6f 6e 73 3c 2f 41 3e  0a 3c 4c 49 3e 3c 41 20  |ions</A>.<LI><A |
00000330  48 52 45 46 3d 22 23 63  6f 6e 74 61 63 74 73 22  |HREF="#contacts"|
00000340  3e 43 6f 6e 74 61 63 74  69 6e 67 20 43 6c 61 72  |>Contacting Clar|
00000350  65 73 3c 2f 41 3e 0a 3c  4c 49 3e 3c 41 20 48 52  |es</A>.<LI><A HR|
00000360  45 46 3d 22 23 64 69 73  63 6c 61 69 6d 22 3e 44  |EF="#disclaim">D|
00000370  69 73 63 6c 61 69 6d 65  72 3c 2f 41 3e 0a 3c 4c  |isclaimer</A>.<L|
00000380  49 3e 3c 41 20 48 52 45  46 3d 22 23 65 78 61 6d  |I><A HREF="#exam|
00000390  70 6c 65 73 22 3e 45 78  61 6d 70 6c 65 20 61 70  |ples">Example ap|
000003a0  70 6c 69 63 61 74 69 6f  6e 73 3c 2f 41 3e 20 28  |plications</A> (|
000003b0  54 68 65 20 65 78 61 6d  70 6c 65 73 20 61 72 63  |The examples arc|
000003c0  68 69 76 65 20 63 6f 6e  74 61 69 6e 73 20 61 20  |hive contains a |
000003d0  63 6f 70 79 20 6f 66 20  74 68 69 73 20 64 6f 63  |copy of this doc|
000003e0  75 6d 65 6e 74 20 66 6f  72 20 72 65 61 64 69 6e  |ument for readin|
000003f0  67 20 6f 66 66 20 6c 69  6e 65 29 0a 0a 3c 2f 55  |g off line)..</U|
00000400  4c 3e 0a 3c 42 52 3e 0a  3c 50 3e 0a 0a 3c 48 52  |L>.<BR>.<P>..<HR|
00000410  3e 0a 0a 0a 3c 48 32 3e  3c 41 20 4e 41 4d 45 3d  |>...<H2><A NAME=|
00000420  22 69 6e 74 72 6f 22 3e  49 6e 74 72 6f 64 75 63  |"intro">Introduc|
00000430  74 69 6f 6e 3c 2f 41 3e  3c 2f 48 32 3e 0a 0a 54  |tion</A></H2>..T|
00000440  68 65 20 43 6c 61 72 65  73 20 50 6c 75 67 20 49  |he Clares Plug I|
00000450  6e 20 43 6f 6d 70 6c 69  61 6e 74 20 41 70 70 6c  |n Compliant Appl|
00000460  69 63 61 74 69 6f 6e 20  28 50 43 41 29 20 73 70  |ication (PCA) sp|
00000470  65 63 69 66 69 63 61 74  69 6f 6e 20 70 72 6f 76  |ecification prov|
00000480  69 64 65 73 20 61 6e 0a  65 61 73 79 20 74 6f 20  |ides an.easy to |
00000490  69 6d 70 6c 65 6d 65 6e  74 20 77 61 79 20 6f 66  |implement way of|
000004a0  20 61 6c 6c 6f 77 69 6e  67 20 6d 75 6c 74 69 70  | allowing multip|
000004b0  6c 65 20 61 70 70 6c 69  63 61 74 69 6f 6e 73 20  |le applications |
000004c0  74 6f 20 73 68 61 72 65  20 63 6f 6d 6d 6f 6e 0a  |to share common.|
000004d0  6f 62 6a 65 63 74 73 20  72 65 73 69 64 69 6e 67  |objects residing|
000004e0  20 69 6e 20 73 68 61 72  65 64 20 6d 65 6d 6f 72  | in shared memor|
000004f0  79 20 61 72 65 61 73 2e  20 41 20 70 72 6f 67 72  |y areas. A progr|
00000500  61 6d 20 77 72 69 74 74  65 6e 20 74 6f 20 74 68  |am written to th|
00000510  65 20 50 43 41 0a 73 70  65 63 69 66 69 63 61 74  |e PCA.specificat|
00000520  69 6f 6e 20 77 69 6c 6c  20 77 6f 72 6b 20 77 69  |ion will work wi|
00000530  74 68 20 61 6e 79 20 6f  74 68 65 72 20 77 68 69  |th any other whi|
00000540  63 68 20 73 75 70 70 6f  72 74 73 20 74 68 65 20  |ch supports the |
00000550  73 74 61 6e 64 61 72 64  20 61 6e 64 20 75 73 65  |standard and use|
00000560  73 0a 74 68 65 20 73 61  6d 65 20 74 79 70 65 20  |s.the same type |
00000570  6f 66 20 6f 62 6a 65 63  74 73 2e 3c 42 52 3e 0a  |of objects.<BR>.|
00000580  3c 50 3e 0a 0a 3c 42 3e  57 68 61 74 20 64 6f 65  |<P>..<B>What doe|
00000590  73 20 50 43 41 20 64 6f  20 66 6f 72 20 6d 65 20  |s PCA do for me |
000005a0  61 73 20 61 20 75 73 65  72 20 3f 3c 2f 42 3e 0a  |as a user ?</B>.|
000005b0  3c 50 3e 0a 0a 54 68 65  20 50 43 41 20 73 74 61  |<P>..The PCA sta|
000005c0  6e 64 61 72 64 20 77 6f  72 6b 73 20 61 74 20 74  |ndard works at t|
000005d0  77 6f 20 6c 65 76 65 6c  73 2e 20 49 6e 20 65 61  |wo levels. In ea|
000005e0  63 68 20 63 61 73 65 20  61 20 64 6f 63 75 6d 65  |ch case a docume|
000005f0  6e 74 20 69 6e 20 61 20  63 6f 6d 6d 6f 6e 0a 6d  |nt in a common.m|
00000600  65 6d 6f 72 79 20 61 72  65 61 20 63 61 6e 20 62  |emory area can b|
00000610  65 20 27 73 68 61 72 65  64 27 20 62 65 74 77 65  |e 'shared' betwe|
00000620  65 6e 20 74 77 6f 20 6f  72 20 6d 6f 72 65 20 61  |en two or more a|
00000630  70 70 6c 69 63 61 74 69  6f 6e 73 2e 20 54 68 69  |pplications. Thi|
00000640  73 20 69 73 0a 3c 42 3e  6e 6f 74 3c 2f 42 3e 20  |s is.<B>not</B> |
00000650  6c 69 6b 65 20 74 68 65  20 76 65 72 73 69 6f 6e  |like the version|
00000660  73 20 6f 66 20 4f 4c 45  20 69 6d 70 6c 65 6d 65  |s of OLE impleme|
00000670  6e 74 65 64 20 6f 6e 20  74 68 65 20 41 63 6f 72  |nted on the Acor|
00000680  6e 20 70 6c 61 74 66 6f  72 6d 2e 20 54 68 65 72  |n platform. Ther|
00000690  65 0a 69 73 20 61 20 6d  61 6a 6f 72 20 64 69 66  |e.is a major dif|
000006a0  66 65 72 65 6e 63 65 20  69 6e 20 74 68 61 74 20  |ference in that |
000006b0  4f 4c 45 20 3c 42 3e 63  6f 70 69 65 73 3c 2f 42  |OLE <B>copies</B|
000006c0  3e 20 74 68 65 20 64 6f  63 75 6d 65 6e 74 20 66  |> the document f|
000006d0  6f 72 20 74 68 65 20 73  65 63 6f 6e 64 0a 61 70  |or the second.ap|
000006e0  70 6c 69 63 61 74 69 6f  6e 20 74 6f 20 77 6f 72  |plication to wor|
000006f0  6b 20 6f 6e 2c 20 74 68  75 73 20 79 6f 75 72 20  |k on, thus your |
00000700  64 61 74 61 20 74 61 6b  65 73 20 75 70 20 74 77  |data takes up tw|
00000710  69 63 65 20 61 73 20 6d  75 63 68 20 52 41 4d 2e  |ice as much RAM.|
00000720  20 57 69 74 68 20 50 43  41 0a 61 6c 6c 20 61 70  | With PCA.all ap|
00000730  70 6c 69 63 61 74 69 6f  6e 73 20 77 6f 72 6b 20  |plications work |
00000740  6f 6e 20 74 68 65 20 3c  42 3e 73 61 6d 65 3c 2f  |on the <B>same</|
00000750  42 3e 20 64 6f 63 75 6d  65 6e 74 20 74 68 75 73  |B> document thus|
00000760  20 69 6e 63 75 72 72 69  6e 67 20 6e 6f 20 52 41  | incurring no RA|
00000770  4d 0a 6f 76 65 72 68 65  61 64 73 2e 20 3c 50 3e  |M.overheads. <P>|
00000780  20 54 68 65 20 63 6f 6e  74 72 6f 6c 6c 69 6e 67  | The controlling|
00000790  20 61 70 70 6c 69 63 61  74 69 6f 6e 20 69 73 20  | application is |
000007a0  63 61 6c 6c 65 64 20 74  68 65 20 3c 41 0a 48 52  |called the <A.HR|
000007b0  45 46 3d 22 23 6c 6f 63  61 6c 22 3e 4c 6f 63 61  |EF="#local">Loca|
000007c0  6c 3c 2f 41 3e 20 61 70  70 6c 69 63 61 74 69 6f  |l</A> applicatio|
000007d0  6e 20 61 6e 64 20 74 68  65 20 73 6c 61 76 65 20  |n and the slave |
000007e0  61 70 70 6c 69 63 61 74  69 6f 6e 20 69 73 20 63  |application is c|
000007f0  61 6c 6c 65 64 20 74 68  65 0a 3c 41 20 48 52 45  |alled the.<A HRE|
00000800  46 3d 22 23 72 65 6d 6f  74 65 31 22 3e 52 65 6d  |F="#remote1">Rem|
00000810  6f 74 65 3c 2f 41 3e 20  61 70 70 6c 69 63 61 74  |ote</A> applicat|
00000820  69 6f 6e 2e 0a 0a 3c 50  3e 0a 57 68 65 6e 20 61  |ion...<P>.When a|
00000830  20 64 6f 63 75 6d 65 6e  74 20 69 73 20 65 64 69  | document is edi|
00000840  74 65 64 20 69 6e 20 61  20 52 65 6d 6f 74 65 20  |ted in a Remote |
00000850  61 70 70 6c 69 63 61 74  69 6f 6e 20 74 68 65 20  |application the |
00000860  6f 62 6a 65 63 74 20 69  6e 20 74 68 65 20 4c 6f  |object in the Lo|
00000870  63 61 6c 0a 61 70 70 6c  69 63 61 74 69 6f 6e 20  |cal.application |
00000880  69 73 20 61 75 74 6f 6d  61 74 69 63 61 6c 6c 79  |is automatically|
00000890  20 75 70 64 61 74 65 64  2e 0a 3c 50 3e 0a 57 68  | updated..<P>.Wh|
000008a0  61 74 20 77 65 20 68 61  76 65 20 75 70 20 74 6f  |at we have up to|
000008b0  20 6e 6f 77 20 69 73 20  61 20 6d 6f 72 65 20 65  | now is a more e|
000008c0  66 66 69 63 69 65 6e 74  20 77 61 79 20 6f 66 20  |fficient way of |
000008d0  64 6f 69 6e 67 20 4f 4c  45 2e 20 48 6f 77 65 76  |doing OLE. Howev|
000008e0  65 72 2c 20 50 43 41 0a  64 6f 65 73 20 6e 6f 74  |er, PCA.does not|
000008f0  20 73 74 6f 70 20 74 68  65 72 65 2e 20 54 61 6b  | stop there. Tak|
00000900  65 20 61 6e 20 61 70 70  6c 69 63 61 74 69 6f 6e  |e an application|
00000910  20 6c 69 6b 65 20 43 6f  6d 70 6f 73 69 74 69 6f  | like Compositio|
00000920  6e 20 77 68 69 63 68 20  70 72 6f 76 69 64 65 73  |n which provides|
00000930  20 61 0a 70 61 67 65 20  6d 61 6b 65 20 75 70 20  | a.page make up |
00000940  65 6e 76 69 72 6f 6e 6d  65 6e 74 20 66 6f 72 20  |environment for |
00000950  62 69 74 20 69 6d 61 67  65 20 61 6e 64 20 76 65  |bit image and ve|
00000960  63 74 6f 72 20 69 6d 61  67 65 73 20 2d 20 61 6c  |ctor images - al|
00000970  6c 20 6f 66 20 77 68 69  63 68 20 63 61 6e 0a 62  |l of which can.b|
00000980  65 20 6d 6f 76 65 64 20  61 6e 64 20 65 64 69 74  |e moved and edit|
00000990  65 64 20 2d 20 61 20 62  69 74 20 6c 69 6b 65 20  |ed - a bit like |
000009a0  44 72 61 77 20 66 6f 72  20 62 69 74 20 69 6d 61  |Draw for bit ima|
000009b0  67 65 73 20 62 75 74 20  77 69 74 68 20 61 20 4c  |ges but with a L|
000009c0  4f 54 20 6f 66 0a 65 78  74 72 61 73 2e 20 43 6f  |OT of.extras. Co|
000009d0  6d 70 6f 73 69 74 69 6f  6e 20 64 6f 65 73 20 6e  |mposition does n|
000009e0  6f 74 20 70 72 6f 76 69  64 65 20 27 70 61 69 6e  |ot provide 'pain|
000009f0  74 69 6e 67 27 20 74 6f  6f 6c 73 20 62 75 74 20  |ting' tools but |
00000a00  50 72 6f 41 72 74 69 73  61 6e 20 32 34 0a 64 6f  |ProArtisan 24.do|
00000a10  65 73 2e 20 49 66 20 62  6f 74 68 20 61 70 70 6c  |es. If both appl|
00000a20  69 63 61 74 69 6f 6e 73  20 61 72 65 20 50 43 41  |ications are PCA|
00000a30  20 63 6f 6d 70 6c 69 61  6e 74 20 74 68 65 6e 20  | compliant then |
00000a40  61 20 55 74 69 6c 69 74  69 65 73 20 6d 65 6e 75  |a Utilities menu|
00000a50  20 69 6e 20 43 6f 6d 70  6f 0a 77 69 6c 6c 20 73  | in Compo.will s|
00000a60  68 6f 77 20 50 72 6f 41  72 74 20 32 34 20 61 73  |how ProArt 24 as|
00000a70  20 61 20 27 74 6f 6f 6c  27 2e 20 43 6c 69 63 6b  | a 'tool'. Click|
00000a80  69 6e 67 20 6f 6e 20 74  68 69 73 20 6d 65 6e 75  |ing on this menu|
00000a90  20 65 6e 74 72 79 20 6f  70 65 6e 73 20 61 20 50  | entry opens a P|
00000aa0  41 32 34 0a 77 69 6e 64  6f 77 20 73 68 6f 77 69  |A24.window showi|
00000ab0  6e 67 20 74 68 65 20 73  65 6c 65 63 74 65 64 20  |ng the selected |
00000ac0  43 6f 6d 70 6f 20 6f 62  6a 65 63 74 2e 20 50 41  |Compo object. PA|
00000ad0  32 34 20 63 61 6e 20 70  61 69 6e 74 20 69 6e 74  |24 can paint int|
00000ae0  6f 20 74 68 69 73 20 6f  62 6a 65 63 74 20 6f 72  |o this object or|
00000af0  0a 69 6e 64 65 65 64 20  70 65 72 66 6f 72 6d 20  |.indeed perform |
00000b00  61 6e 79 20 6f 66 20 69  74 73 20 66 75 6e 63 74  |any of its funct|
00000b10  69 6f 6e 73 20 6f 6e 20  74 68 65 20 6f 62 6a 65  |ions on the obje|
00000b20  63 74 2e 20 41 6c 6c 20  63 68 61 6e 67 65 73 20  |ct. All changes |
00000b30  61 72 65 20 72 65 66 6c  65 63 74 65 64 0a 69 6d  |are reflected.im|
00000b40  6d 65 64 69 61 74 65 6c  79 20 69 6e 20 43 6f 6d  |mediately in Com|
00000b50  70 6f 2e 0a 3c 50 3e 0a  54 68 69 73 20 6d 65 61  |po..<P>.This mea|
00000b60  6e 73 20 74 68 61 74 20  61 6e 20 61 70 70 6c 69  |ns that an appli|
00000b70  63 61 74 69 6f 6e 20 63  61 6e 20 68 61 76 65 20  |cation can have |
00000b80  6f 74 68 65 72 20 61 70  70 6c 69 63 61 74 69 6f  |other applicatio|
00000b90  6e 73 20 61 73 20 27 74  6f 6f 6c 73 27 2e 20 53  |ns as 'tools'. S|
00000ba0  6d 61 6c 6c 0a 27 61 70  70 6c 65 74 73 27 20 63  |mall.'applets' c|
00000bb0  61 6e 20 62 65 20 77 72  69 74 74 65 6e 20 74 6f  |an be written to|
00000bc0  20 70 72 6f 76 69 64 65  20 73 70 65 63 69 66 69  | provide specifi|
00000bd0  63 20 66 75 6e 63 74 69  6f 6e 73 20 74 6f 20 61  |c functions to a|
00000be0  20 50 43 41 20 61 70 70  6c 69 63 61 74 69 6f 6e  | PCA application|
00000bf0  0a 3c 49 3e 61 6e 64 20  74 68 65 79 20 77 69 6c  |.<I>and they wil|
00000c00  6c 20 62 65 20 75 73 61  62 6c 65 20 62 79 20 61  |l be usable by a|
00000c10  6e 79 20 6f 74 68 65 72  20 50 43 41 20 63 6f 6d  |ny other PCA com|
00000c20  70 6c 69 61 6e 74 20 61  70 70 6c 69 63 61 74 69  |pliant applicati|
00000c30  6f 6e 2e 3c 2f 49 3e 0a  3c 50 3e 0a 49 6d 61 67  |on.</I>.<P>.Imag|
00000c40  69 6e 65 20 61 20 73 69  6d 70 6c 65 20 61 70 70  |ine a simple app|
00000c50  6c 69 63 61 74 69 6f 6e  20 74 68 61 74 20 64 6f  |lication that do|
00000c60  65 73 20 6e 6f 74 68 69  6e 67 20 65 6c 73 65 20  |es nothing else |
00000c70  65 78 63 65 70 74 20 64  69 73 70 6c 61 79 20 61  |except display a|
00000c80  20 73 70 72 69 74 65 0a  61 6e 64 20 63 6f 6e 66  | sprite.and conf|
00000c90  6f 72 6d 20 74 6f 20 74  68 65 20 50 43 41 20 73  |orm to the PCA s|
00000ca0  74 61 6e 64 61 72 64 2e  20 41 6e 6f 74 68 65 72  |tandard. Another|
00000cb0  20 61 70 70 6c 69 63 61  74 69 6f 6e 20 63 6f 75  | application cou|
00000cc0  6c 64 20 70 72 6f 76 69  64 65 20 70 61 69 6e 74  |ld provide paint|
00000cd0  0a 74 6f 6f 6c 73 2c 20  79 65 74 20 61 6e 6f 74  |.tools, yet anot|
00000ce0  68 65 72 20 63 6f 75 6c  64 20 70 72 6f 76 69 64  |her could provid|
00000cf0  65 20 66 69 6c 74 65 72  73 2c 20 61 6e 6f 74 68  |e filters, anoth|
00000d00  65 72 20 6d 69 67 68 74  20 70 72 6f 76 69 64 65  |er might provide|
00000d10  20 77 61 72 70 69 6e 67  0a 74 6f 6f 6c 73 20 2d  | warping.tools -|
00000d20  20 79 6f 75 20 67 65 74  20 74 68 65 20 70 69 63  | you get the pic|
00000d30  74 75 72 65 20 49 27 6d  20 73 75 72 65 2e 20 46  |ture I'm sure. F|
00000d40  72 6f 6d 20 74 68 69 73  20 72 61 6e 67 65 20 6f  |rom this range o|
00000d50  66 20 61 70 70 6c 65 74  73 20 79 6f 75 20 63 61  |f applets you ca|
00000d60  6e 0a 63 6f 6e 73 74 72  75 63 74 20 74 68 65 20  |n.construct the |
00000d70  3c 42 3e 74 6f 6f 6c 3c  2f 42 3e 20 74 68 61 74  |<B>tool</B> that|
00000d80  20 79 6f 75 20 72 65 71  75 69 72 65 20 74 6f 20  | you require to |
00000d90  67 65 74 20 74 68 65 20  6a 6f 62 20 64 6f 6e 65  |get the job done|
00000da0  2e 0a 3c 50 3e 0a 0a 57  68 61 74 27 73 20 6d 6f  |..<P>..What's mo|
00000db0  72 65 2c 20 6d 6f 72 65  20 74 68 61 6e 20 6f 6e  |re, more than on|
00000dc0  65 20 72 65 6d 6f 74 65  20 61 70 70 6c 65 74 20  |e remote applet |
00000dd0  63 61 6e 20 77 6f 72 6b  20 6f 6e 20 74 68 65 20  |can work on the |
00000de0  73 61 6d 65 20 6f 62 6a  65 63 74 20 61 74 20 74  |same object at t|
00000df0  68 65 0a 73 61 6d 65 20  74 69 6d 65 20 61 6e 64  |he.same time and|
00000e00  20 63 68 61 6e 67 65 73  20 6d 61 64 65 20 69 6e  | changes made in|
00000e10  20 61 6e 79 20 6f 6e 65  20 6f 66 20 74 68 65 73  | any one of thes|
00000e20  65 20 77 69 6c 6c 20 62  65 20 69 6d 6d 65 64 69  |e will be immedi|
00000e30  61 74 65 6c 79 20 72 65  66 6c 65 63 74 65 64 0a  |ately reflected.|
00000e40  69 6e 20 61 6c 6c 20 6f  66 20 74 68 65 6d 2e 3c  |in all of them.<|
00000e50  50 3e 20 54 68 69 73 20  69 73 20 61 6e 20 61 77  |P> This is an aw|
00000e60  66 75 6c 20 6c 6f 74 20  62 65 74 74 65 72 20 74  |ful lot better t|
00000e70  68 61 6e 20 4f 4c 45 20  62 75 74 20 74 68 65 72  |han OLE but ther|
00000e80  65 27 73 20 73 74 69 6c  6c 0a 6d 6f 72 65 2e 0a  |e's still.more..|
00000e90  0a 3c 50 3e 0a 49 6e 73  74 65 61 64 20 6f 66 20  |.<P>.Instead of |
00000ea0  65 61 63 68 20 61 70 70  6c 65 74 20 6f 70 65 6e  |each applet open|
00000eb0  69 6e 67 20 69 74 73 20  6f 77 6e 20 77 69 6e 64  |ing its own wind|
00000ec0  6f 77 20 77 65 20 63 61  6e 20 75 73 65 20 27 49  |ow we can use 'I|
00000ed0  6e 2d 70 6c 61 63 65 27  20 65 64 69 74 69 6e 67  |n-place' editing|
00000ee0  2e 0a 54 68 69 73 20 6d  65 61 6e 73 20 74 68 61  |..This means tha|
00000ef0  74 20 6f 6e 6c 79 20 74  68 65 20 3c 42 3e 4c 6f  |t only the <B>Lo|
00000f00  63 61 6c 3c 2f 42 3e 20  61 70 70 6c 69 63 61 74  |cal</B> applicat|
00000f10  69 6f 6e 20 64 69 73 70  6c 61 79 73 20 74 68 65  |ion displays the|
00000f20  20 64 6f 63 75 6d 65 6e  74 2e 0a 57 68 65 6e 20  | document..When |
00000f30  79 6f 75 20 63 6c 69 63  6b 20 6f 6e 20 61 20 27  |you click on a '|
00000f40  74 6f 6f 6c 27 20 65 6e  74 72 79 20 69 6e 20 74  |tool' entry in t|
00000f50  68 65 20 55 74 69 6c 69  74 69 65 73 20 6d 65 6e  |he Utilities men|
00000f60  75 20 74 68 65 20 6e 65  77 20 74 6f 6f 6c 27 73  |u the new tool's|
00000f70  0a 54 6f 6f 6c 62 61 72  20 6f 70 65 6e 73 20 6f  |.Toolbar opens o|
00000f80  76 65 72 20 74 68 65 20  4c 6f 63 61 6c 20 61 70  |ver the Local ap|
00000f90  70 6c 69 63 61 74 69 6f  6e 27 73 20 77 69 6e 64  |plication's wind|
00000fa0  6f 77 2e 20 41 6c 6c 20  74 6f 6f 6c 73 20 74 68  |ow. All tools th|
00000fb0  65 6e 20 77 6f 72 6b 20  6f 6e 0a 74 68 65 20 69  |en work on.the i|
00000fc0  6d 61 67 65 20 69 6e 20  74 68 65 20 4c 6f 63 61  |mage in the Loca|
00000fd0  6c 27 73 20 77 69 6e 64  6f 77 2e 0a 0a 3c 50 3e  |l's window...<P>|
00000fe0  0a 4e 6f 77 20 79 6f 75  20 61 72 65 20 72 65 61  |.Now you are rea|
00000ff0  6c 6c 79 20 61 62 6c 65  20 74 6f 20 63 6f 6e 73  |lly able to cons|
00001000  74 72 75 63 74 20 61 6e  20 61 70 70 6c 69 63 61  |truct an applica|
00001010  74 69 6f 6e 20 66 72 6f  6d 20 61 20 72 61 6e 67  |tion from a rang|
00001020  65 20 6f 66 20 61 70 70  6c 65 74 73 2e 0a 41 6c  |e of applets..Al|
00001030  6c 20 79 6f 75 20 77 69  6c 6c 20 73 65 65 20 69  |l you will see i|
00001040  73 20 6f 6e 65 20 77 69  6e 64 6f 77 20 64 69 73  |s one window dis|
00001050  70 6c 61 79 69 6e 67 20  74 68 65 20 64 6f 63 75  |playing the docu|
00001060  6d 65 6e 74 2e 0a 3c 50  3e 0a 54 61 6b 65 20 74  |ment..<P>.Take t|
00001070  68 69 73 20 61 20 6c 69  74 74 6c 65 20 66 75 72  |his a little fur|
00001080  74 68 65 72 20 61 6e 64  20 69 6d 61 67 69 6e 65  |ther and imagine|
00001090  20 61 20 44 54 50 20 70  61 63 6b 61 67 65 20 73  | a DTP package s|
000010a0  75 70 70 6f 72 74 69 6e  67 20 74 68 65 20 50 43  |upporting the PC|
000010b0  41 0a 73 74 61 6e 64 61  72 64 2e 20 49 74 20 63  |A.standard. It c|
000010c0  6f 75 6c 64 20 68 61 76  65 20 61 20 66 72 61 6d  |ould have a fram|
000010d0  65 20 63 6f 6e 74 61 69  6e 69 6e 67 20 61 20 67  |e containing a g|
000010e0  72 61 70 68 69 63 20 69  6d 61 67 65 20 61 6e 64  |raphic image and|
000010f0  20 79 6f 75 20 63 6f 75  6c 64 0a 6c 69 6e 6b 20  | you could.link |
00001100  74 68 69 73 20 74 6f 20  50 41 32 34 2c 20 43 6f  |this to PA24, Co|
00001110  6d 70 6f 20 6f 72 20 61  6e 79 20 6f 74 68 65 72  |mpo or any other|
00001120  20 50 43 41 20 61 70 70  6c 69 63 61 74 69 6f 6e  | PCA application|
00001130  2c 20 77 68 69 63 68 20  63 6f 75 6c 64 0a 6d 61  |, which could.ma|
00001140  6e 69 70 75 6c 61 74 65  20 74 68 65 20 69 6d 61  |nipulate the ima|
00001150  67 65 2e 20 54 68 65 20  63 68 61 6e 67 65 73 20  |ge. The changes |
00001160  77 6f 75 6c 64 20 62 65  20 72 65 66 6c 65 63 74  |would be reflect|
00001170  65 64 20 69 6d 6d 65 64  69 61 74 65 6c 79 20 69  |ed immediately i|
00001180  6e 20 74 68 65 20 44 54  50 0a 77 69 6e 64 6f 77  |n the DTP.window|
00001190  2e 20 48 6f 77 65 76 65  72 2c 20 69 66 20 49 6e  |. However, if In|
000011a0  2d 70 6c 61 63 65 20 65  64 69 74 69 6e 67 20 69  |-place editing i|
000011b0  73 20 75 73 65 64 2c 20  74 68 65 20 54 6f 6f 6c  |s used, the Tool|
000011c0  62 61 72 73 20 77 6f 75  6c 64 20 61 70 70 65 61  |bars would appea|
000011d0  72 20 69 6e 0a 74 68 65  20 44 54 50 20 77 69 6e  |r in.the DTP win|
000011e0  64 6f 77 20 61 6e 64 20  61 6c 6c 6f 77 20 79 6f  |dow and allow yo|
000011f0  75 20 74 6f 20 65 64 69  74 20 74 68 65 20 67 72  |u to edit the gr|
00001200  61 70 68 69 63 20 64 69  72 65 63 74 6c 79 20 69  |aphic directly i|
00001210  6e 20 74 68 65 20 44 54  50 20 77 69 6e 64 6f 77  |n the DTP window|
00001220  2e 0a 3c 50 3e 0a 3c 43  45 4e 54 45 52 3e 3c 49  |..<P>.<CENTER><I|
00001230  4d 47 20 53 52 43 3d 22  47 52 41 50 48 49 43 53  |MG SRC="GRAPHICS|
00001240  2f 50 43 41 31 2e 47 49  46 22 20 41 4c 54 3d 22  |/PCA1.GIF" ALT="|
00001250  41 20 73 63 72 65 65 6e  73 68 6f 74 20 73 68 6f  |A screenshot sho|
00001260  77 69 6e 67 20 50 43 41  20 69 6e 20 61 20 44 54  |wing PCA in a DT|
00001270  50 0a 61 70 70 22 20 57  49 44 54 48 3d 32 35 34  |P.app" WIDTH=254|
00001280  20 48 45 49 47 48 54 3d  33 30 33 3e 3c 2f 43 45  | HEIGHT=303></CE|
00001290  4e 54 45 52 3e 0a 3c 43  45 4e 54 45 52 3e 3c 49  |NTER>.<CENTER><I|
000012a0  3e 41 20 50 43 41 20 54  6f 6f 6c 62 61 72 20 61  |>A PCA Toolbar a|
000012b0  63 74 69 6e 67 20 6f 6e  20 61 6e 20 69 6d 61 67  |cting on an imag|
000012c0  65 20 69 6e 20 61 20 44  54 50 20 66 72 61 6d 65  |e in a DTP frame|
000012d0  3c 2f 49 3e 3c 2f 43 45  4e 54 45 52 3e 0a 3c 50  |</I></CENTER>.<P|
000012e0  3e 0a 0a 57 68 61 74 20  77 65 20 6e 6f 77 20 68  |>..What we now h|
000012f0  61 76 65 20 69 73 20 61  20 73 79 73 74 65 6d 20  |ave is a system |
00001300  77 68 65 72 65 62 79 20  61 6e 20 61 70 70 6c 69  |whereby an appli|
00001310  63 61 74 69 6f 6e 20 63  61 6e 20 68 61 76 65 20  |cation can have |
00001320  61 6e 20 69 6e 66 69 6e  69 74 65 0a 6e 75 6d 62  |an infinite.numb|
00001330  65 72 20 6f 66 20 61 64  64 69 74 69 6f 6e 61 6c  |er of additional|
00001340  20 74 6f 6f 6c 73 20 61  6e 64 20 61 6c 6c 20 61  | tools and all a|
00001350  70 70 6c 69 63 61 74 69  6f 6e 73 20 63 6f 6e 66  |pplications conf|
00001360  6f 72 6d 69 6e 67 20 74  6f 20 50 43 41 20 63 61  |orming to PCA ca|
00001370  6e 20 62 65 0a 75 73 65  64 20 77 69 74 68 20 61  |n be.used with a|
00001380  6e 64 20 62 79 20 61 6c  6c 20 6f 74 68 65 72 20  |nd by all other |
00001390  50 43 41 20 61 70 70 6c  69 63 61 74 69 6f 6e 73  |PCA applications|
000013a0  2e 0a 3c 50 3e 0a 41 6e  20 65 78 61 6d 70 6c 65  |..<P>.An example|
000013b0  20 6f 66 20 74 68 69 73  20 63 6f 75 6c 64 20 62  | of this could b|
000013c0  65 20 61 6e 20 69 6d 61  67 65 20 69 6e 20 61 20  |e an image in a |
000013d0  44 54 50 20 66 72 61 6d  65 20 6c 69 6e 6b 65 64  |DTP frame linked|
000013e0  20 74 6f 20 43 6f 6d 70  6f 20 77 68 69 63 68 0a  | to Compo which.|
000013f0  75 73 65 64 20 74 68 69  73 20 69 6d 61 67 65 20  |used this image |
00001400  61 73 20 61 20 27 63 61  6e 76 61 73 27 20 66 6f  |as a 'canvas' fo|
00001410  72 20 61 20 63 6f 6d 70  6f 73 69 74 65 20 70 69  |r a composite pi|
00001420  63 74 75 72 65 2e 20 46  72 6f 6d 20 43 6f 6d 70  |cture. From Comp|
00001430  6f 20 6f 6e 65 20 6f 66  0a 74 68 65 20 69 6d 61  |o one of.the ima|
00001440  67 65 73 20 69 6e 20 74  68 65 20 63 6f 6d 70 6f  |ges in the compo|
00001450  73 69 74 65 20 70 69 63  74 75 72 65 20 63 6f 75  |site picture cou|
00001460  6c 64 20 61 6c 73 6f 20  62 65 20 6c 69 6e 6b 65  |ld also be linke|
00001470  64 20 74 6f 20 50 72 6f  41 72 74 32 34 20 61 6e  |d to ProArt24 an|
00001480  64 0a 61 6e 79 20 63 68  61 6e 67 65 73 20 77 6f  |d.any changes wo|
00001490  75 6c 64 20 69 6d 6d 65  64 69 61 74 65 6c 79 20  |uld immediately |
000014a0  62 65 20 72 65 66 6c 65  63 74 65 64 20 69 6e 20  |be reflected in |
000014b0  43 6f 6d 70 6f 20 61 6e  64 20 74 68 65 20 44 54  |Compo and the DT|
000014c0  50 20 70 61 63 6b 61 67  65 2e 0a 0a 3c 50 3e 0a  |P package...<P>.|
000014d0  49 66 20 79 6f 75 20 6a  75 6d 70 20 74 6f 20 74  |If you jump to t|
000014e0  68 65 20 62 6f 74 74 6f  6d 20 6f 66 20 74 68 69  |he bottom of thi|
000014f0  73 20 70 61 67 65 20 79  6f 75 20 63 61 6e 20 64  |s page you can d|
00001500  6f 77 6e 6c 6f 61 64 20  73 6f 6d 65 20 3c 41 20  |ownload some <A |
00001510  48 52 45 46 3d 22 23 65  78 61 6d 70 6c 65 73 22  |HREF="#examples"|
00001520  3e 65 78 61 6d 70 6c 65  0a 61 70 70 6c 69 63 61  |>example.applica|
00001530  74 69 6f 6e 73 3c 2f 41  3e 20 61 6e 64 20 64 6f  |tions</A> and do|
00001540  63 75 6d 65 6e 74 61 74  69 6f 6e 20 74 68 61 74  |cumentation that|
00001550  20 6d 61 79 20 6d 61 6b  65 20 74 68 69 6e 67 73  | may make things|
00001560  20 63 6c 65 61 72 65 72  2e 20 54 68 65 20 6d 61  | clearer. The ma|
00001570  69 6e 0a 64 6f 63 75 6d  65 6e 74 20 74 6f 20 72  |in.document to r|
00001580  65 61 64 20 69 73 20 27  54 6f 54 65 73 74 27 2e  |ead is 'ToTest'.|
00001590  0a 3c 50 3e 0a 3c 48 32  3e 41 20 6d 6f 72 65 20  |.<P>.<H2>A more |
000015a0  74 65 63 68 6e 69 63 61  6c 20 65 78 70 6c 61 6e  |technical explan|
000015b0  61 74 69 6f 6e 3c 2f 48  32 3e 0a 0a 54 68 65 72  |ation</H2>..Ther|
000015c0  65 20 61 72 65 20 74 77  6f 20 27 73 69 64 65 73  |e are two 'sides|
000015d0  27 20 74 6f 20 50 43 41  20 73 75 70 70 6f 72 74  |' to PCA support|
000015e0  2e 20 41 70 70 6c 69 63  61 74 69 6f 6e 73 20 6d  |. Applications m|
000015f0  61 79 20 73 75 70 70 6f  72 74 20 65 69 74 68 65  |ay support eithe|
00001600  72 20 6f 72 0a 62 6f 74  68 20 61 73 20 69 74 20  |r or.both as it |
00001610  73 75 69 74 73 20 74 68  65 6d 2e 0a 3c 50 3e 0a  |suits them..<P>.|
00001620  0a 3c 42 3e 3c 41 20 4e  41 4d 45 3d 41 20 4e 41  |.<B><A NAME=A NA|
00001630  4d 45 3d 22 6c 6f 63 61  6c 22 3e 4c 6f 63 61 6c  |ME="local">Local|
00001640  3c 2f 41 3e 3c 2f 42 3e  0a 3c 50 3e 0a 0a 0a 41  |</A></B>.<P>...A|
00001650  20 4c 6f 63 61 6c 20 61  70 70 6c 69 63 61 74 69  | Local applicati|
00001660  6f 6e 20 63 72 65 61 74  65 73 20 61 6e 64 20 6d  |on creates and m|
00001670  61 69 6e 74 61 69 6e 73  20 61 6e 20 61 72 65 61  |aintains an area|
00001680  20 6f 66 20 73 68 61 72  65 64 20 6d 65 6d 6f 72  | of shared memor|
00001690  79 20 28 6f 6e 20 74 68  65 0a 52 69 73 63 50 43  |y (on the.RiscPC|
000016a0  20 74 68 69 73 20 69 73  20 6d 6f 73 74 20 6c 69  | this is most li|
000016b0  6b 65 6c 79 20 74 6f 20  62 65 20 61 20 64 79 6e  |kely to be a dyn|
000016c0  61 6d 69 63 20 61 72 65  61 2c 20 6f 6c 64 65 72  |amic area, older|
000016d0  20 68 61 72 64 77 61 72  65 20 6d 75 73 74 20 75  | hardware must u|
000016e0  73 65 20 52 4d 41 0a 6f  72 20 73 6f 6d 65 74 68  |se RMA.or someth|
000016f0  69 6e 67 20 6c 69 6b 65  20 74 68 65 20 44 79 6e  |ing like the Dyn|
00001700  61 6d 69 74 65 20 6d 65  6d 6f 72 79 20 6d 61 6e  |amite memory man|
00001710  61 67 65 72 29 2e 20 4f  62 6a 65 63 74 73 20 69  |ager). Objects i|
00001720  6e 20 74 68 69 73 20 61  72 65 61 20 6d 61 79 20  |n this area may |
00001730  62 65 0a 65 64 69 74 65  64 20 62 79 20 61 6e 79  |be.edited by any|
00001740  20 50 43 41 20 27 72 65  6d 6f 74 65 27 20 61 70  | PCA 'remote' ap|
00001750  70 6c 69 63 61 74 69 6f  6e 20 77 68 69 63 68 20  |plication which |
00001760  69 73 20 72 75 6e 6e 69  6e 67 2c 20 70 72 6f 76  |is running, prov|
00001770  69 64 65 64 20 74 68 61  74 20 69 74 0a 6b 6e 6f  |ided that it.kno|
00001780  77 73 20 61 62 6f 75 74  20 74 68 65 20 74 79 70  |ws about the typ|
00001790  65 20 6f 66 20 6f 62 6a  65 63 74 20 63 6f 6e 63  |e of object conc|
000017a0  65 72 6e 65 64 2e 20 49  74 20 69 73 20 74 68 65  |erned. It is the|
000017b0  20 6c 6f 63 61 6c 20 61  70 70 6c 69 63 61 74 69  | local applicati|
000017c0  6f 6e 27 73 0a 72 65 73  70 6f 6e 73 69 62 69 6c  |on's.responsibil|
000017d0  69 74 79 20 74 6f 20 63  72 65 61 74 65 20 61 6e  |ity to create an|
000017e0  64 20 6d 61 69 6e 74 61  69 6e 20 70 6f 69 6e 74  |d maintain point|
000017f0  65 72 73 20 74 6f 20 6f  62 6a 65 63 74 73 20 61  |ers to objects a|
00001800  6e 64 20 74 6f 20 74 61  6b 65 20 74 68 65 0a 63  |nd to take the.c|
00001810  6f 72 72 65 63 74 20 61  63 74 69 6f 6e 20 77 68  |orrect action wh|
00001820  65 6e 20 61 6e 20 6f 62  6a 65 63 74 20 6d 6f 76  |en an object mov|
00001830  65 73 20 6f 72 20 63 68  61 6e 67 65 73 20 73 69  |es or changes si|
00001840  7a 65 2e 20 0a 0a 20 3c  50 3e 0a 0a 3c 42 3e 3c  |ze. .. <P>..<B><|
00001850  41 20 4e 41 4d 45 3d 41  20 4e 41 4d 45 3d 22 72  |A NAME=A NAME="r|
00001860  65 6d 6f 74 65 31 22 3e  52 65 6d 6f 74 65 3c 2f  |emote1">Remote</|
00001870  41 3e 3c 2f 42 3e 0a 3c  50 3e 0a 41 20 52 65 6d  |A></B>.<P>.A Rem|
00001880  6f 74 65 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |ote application |
00001890  6d 6f 64 69 66 69 65 73  20 61 6e 20 6f 62 6a 65  |modifies an obje|
000018a0  63 74 20 69 6e 20 73 6f  6d 65 20 77 61 79 20 77  |ct in some way w|
000018b0  68 65 6e 20 72 65 71 75  65 73 74 65 64 20 74 6f  |hen requested to|
000018c0  20 64 6f 20 73 6f 0a 62  79 20 61 20 4c 6f 63 61  | do so.by a Loca|
000018d0  6c 20 61 70 70 6c 69 63  61 74 69 6f 6e 2e 20 52  |l application. R|
000018e0  65 6d 6f 74 65 20 61 70  70 6c 69 63 61 74 69 6f  |emote applicatio|
000018f0  6e 73 20 63 61 6e 20 62  65 20 73 6d 61 6c 6c 20  |ns can be small |
00001900  27 61 70 70 6c 65 74 73  27 20 6f 72 0a 6d 61 6a  |'applets' or.maj|
00001910  6f 72 20 70 72 6f 67 72  61 6d 73 20 69 6e 20 74  |or programs in t|
00001920  68 65 69 72 20 6f 77 6e  20 72 69 67 68 74 2e 20  |heir own right. |
00001930  54 68 65 20 50 43 41 20  73 70 65 63 69 66 69 63  |The PCA specific|
00001940  61 74 69 6f 6e 20 73 65  74 73 20 6e 6f 20 6c 69  |ation sets no li|
00001950  6d 69 74 73 0a 6f 6e 20  74 68 65 20 63 68 61 6e  |mits.on the chan|
00001960  67 65 73 20 77 68 69 63  68 20 6d 61 79 20 62 65  |ges which may be|
00001970  20 6d 61 64 65 20 74 6f  20 61 6e 20 6f 62 6a 65  | made to an obje|
00001980  63 74 2e 0a 3c 50 3e 0a  49 6e 20 70 72 61 63 74  |ct..<P>.In pract|
00001990  69 63 65 2c 20 74 68 65  20 74 77 6f 20 73 69 64  |ice, the two sid|
000019a0  65 73 20 62 6c 75 72 20  63 6f 6e 73 69 64 65 72  |es blur consider|
000019b0  61 62 6c 79 2e 20 46 6f  72 20 65 78 61 6d 70 6c  |ably. For exampl|
000019c0  65 2c 20 69 74 20 69 73  20 70 6f 73 73 69 62 6c  |e, it is possibl|
000019d0  65 0a 66 6f 72 20 6d 6f  72 65 20 74 68 61 6e 20  |e.for more than |
000019e0  6f 6e 65 20 27 52 65 6d  6f 74 65 27 20 74 61 73  |one 'Remote' tas|
000019f0  6b 20 74 6f 20 77 6f 72  6b 20 6f 6e 20 74 68 65  |k to work on the|
00001a00  20 73 61 6d 65 20 6f 62  6a 65 63 74 20 61 74 20  | same object at |
00001a10  74 68 65 20 73 61 6d 65  0a 74 69 6d 65 20 69 6e  |the same.time in|
00001a20  20 77 68 69 63 68 20 63  61 73 65 20 74 68 65 20  | which case the |
00001a30  27 52 65 6d 6f 74 65 27  20 74 61 73 6b 73 20 6d  |'Remote' tasks m|
00001a40  75 73 74 20 72 65 73 70  6f 6e 64 20 74 6f 20 73  |ust respond to s|
00001a50  6f 6d 65 20 6d 65 73 73  61 67 65 73 20 69 6e 20  |ome messages in |
00001a60  61 20 73 69 6d 69 6c 61  72 0a 77 61 79 20 74 6f  |a similar.way to|
00001a70  20 74 68 65 20 27 4c 6f  63 61 6c 27 20 74 61 73  | the 'Local' tas|
00001a80  6b 2e 0a 3c 50 3e 0a 49  6e 20 61 64 64 69 74 69  |k..<P>.In additi|
00001a90  6f 6e 2c 20 61 6e 20 6f  70 74 69 6f 6e 61 6c 20  |on, an optional |
00001aa0  65 78 74 65 6e 73 69 6f  6e 20 74 6f 20 74 68 65  |extension to the|
00001ab0  20 73 74 61 6e 64 61 72  64 20 70 72 6f 76 69 64  | standard provid|
00001ac0  65 73 20 73 75 70 70 6f  72 74 20 66 6f 72 0a 27  |es support for.'|
00001ad0  49 6e 2d 70 6c 61 63 65  27 20 65 64 69 74 69 6e  |In-place' editin|
00001ae0  67 20 6f 66 20 6f 62 6a  65 63 74 73 20 64 69 72  |g of objects dir|
00001af0  65 63 74 6c 79 20 69 6e  20 61 6e 6f 74 68 65 72  |ectly in another|
00001b00  20 61 70 70 6c 69 63 61  74 69 6f 6e 27 73 20 77  | application's w|
00001b10  69 6e 64 6f 77 2e 0a 3c  50 3e 0a 0a 0a 3c 42 3e  |indow..<P>...<B>|
00001b20  0a 4c 69 6d 69 74 61 74  69 6f 6e 73 2c 20 61 73  |.Limitations, as|
00001b30  73 75 6d 70 74 69 6f 6e  73 20 61 6e 64 20 70 68  |sumptions and ph|
00001b40  69 6c 6f 73 6f 70 68 79  0a 3c 2f 42 3e 0a 0a 3c  |ilosophy.</B>..<|
00001b50  50 3e 0a 0a 0a 0a 54 68  65 20 50 43 41 20 73 74  |P>....The PCA st|
00001b60  61 6e 64 61 72 64 20 72  65 71 75 69 72 65 73 20  |andard requires |
00001b70  74 68 65 20 66 6f 6c 6c  6f 77 69 6e 67 3a 0a 3c  |the following:.<|
00001b80  50 3e 0a 0a 0a 0a 3c 55  4c 3e 0a 0a 3c 4c 49 3e  |P>....<UL>..<LI>|
00001b90  20 20 20 20 4f 62 6a 65  63 74 73 20 61 72 65 20  |    Objects are |
00001ba0  73 74 6f 72 65 64 20 69  6e 20 61 6e 20 61 72 65  |stored in an are|
00001bb0  61 20 6f 66 20 6d 65 6d  6f 72 79 20 61 76 61 69  |a of memory avai|
00001bc0  6c 61 62 6c 65 20 74 6f  20 61 6c 6c 20 74 61 73  |lable to all tas|
00001bd0  6b 73 2e 20 28 65 67 2e  0a 44 79 6e 61 6d 69 63  |ks. (eg..Dynamic|
00001be0  20 61 72 65 61 73 29 2e  20 42 65 79 6f 6e 64 20  | areas). Beyond |
00001bf0  74 68 61 74 20 74 68 65  20 50 43 41 20 69 73 20  |that the PCA is |
00001c00  64 65 73 69 67 6e 65 64  20 74 6f 20 62 65 20 61  |designed to be a|
00001c10  73 20 74 72 61 6e 73 70  61 72 65 6e 74 20 61 73  |s transparent as|
00001c20  0a 70 6f 73 73 69 62 6c  65 20 74 6f 20 74 68 65  |.possible to the|
00001c30  20 6d 65 6d 6f 72 79 20  6d 61 6e 61 67 65 6d 65  | memory manageme|
00001c40  6e 74 20 73 79 73 74 65  6d 20 75 73 65 64 20 62  |nt system used b|
00001c50  79 20 61 20 70 72 6f 67  72 61 6d 2e 20 53 65 65  |y a program. See|
00001c60  20 62 65 6c 6f 77 20 66  6f 72 0a 73 6f 6d 65 20  | below for.some |
00001c70  6e 6f 74 65 73 20 6f 6e  20 6d 65 6d 6f 72 79 20  |notes on memory |
00001c80  6d 61 6e 61 67 65 6d 65  6e 74 20 72 65 6c 61 74  |management relat|
00001c90  65 64 20 69 73 73 75 65  73 2e 0a 0a 3c 4c 49 3e  |ed issues...<LI>|
00001ca0  20 20 20 20 4f 62 6a 65  63 74 73 20 61 72 65 20  |    Objects are |
00001cb0  65 69 74 68 65 72 20 65  6e 74 69 72 65 6c 79 20  |either entirely |
00001cc0  70 61 67 65 64 20 69 6e  74 6f 20 52 41 4d 20 64  |paged into RAM d|
00001cd0  75 72 69 6e 67 20 61 6e  79 20 50 43 41 20 65 78  |uring any PCA ex|
00001ce0  63 68 61 6e 67 65 2c 20  6f 72 20 61 0a 20 20 20  |change, or a.   |
00001cf0  20 20 20 20 20 76 69 72  74 75 61 6c 20 6d 65 6d  |     virtual mem|
00001d00  6f 72 79 20 73 79 73 74  65 6d 20 77 68 69 63 68  |ory system which|
00001d10  20 69 73 20 74 72 61 6e  73 70 61 72 65 6e 74 20  | is transparent |
00001d20  74 6f 20 74 68 65 20 70  72 6f 67 72 61 6d 20 61  |to the program a|
00001d30  63 63 65 73 73 69 6e 67  20 6d 65 6d 6f 72 79 0a  |ccessing memory.|
00001d40  20 20 20 20 20 20 20 20  69 73 20 75 73 65 64 20  |        is used |
00001d50  28 45 67 2e 20 43 6c 61  72 65 73 20 56 69 72 74  |(Eg. Clares Virt|
00001d60  75 61 6c 69 73 65 29 2e  3c 50 3e 0a 0a 3c 4c 49  |ualise).<P>..<LI|
00001d70  3e 20 20 20 20 4f 62 6a  65 63 74 73 20 61 72 65  |>    Objects are|
00001d80  20 73 74 6f 72 65 64 20  69 6e 20 61 20 63 72 6f  | stored in a cro|
00001d90  73 73 2d 70 72 6f 67 72  61 6d 20 73 74 61 6e 64  |ss-program stand|
00001da0  61 72 64 20 66 6f 72 6d  61 74 20 66 6f 72 20 77  |ard format for w|
00001db0  68 69 63 68 20 74 68 65  72 65 20 69 73 20 61 0a  |hich there is a.|
00001dc0  20 20 20 20 20 20 20 20  6d 65 74 68 6f 64 20 6f  |        method o|
00001dd0  66 20 72 65 6e 64 65 72  69 6e 67 20 72 65 61 64  |f rendering read|
00001de0  69 6c 79 20 61 76 61 69  6c 61 62 6c 65 20 74 6f  |ily available to|
00001df0  20 6f 74 68 65 72 20 70  72 6f 67 72 61 6d 6d 65  | other programme|
00001e00  72 73 2e 0a 20 20 20 20  20 20 20 20 45 78 61 6d  |rs..        Exam|
00001e10  70 6c 65 73 20 61 72 65  20 52 49 53 43 20 4f 53  |ples are RISC OS|
00001e20  20 53 70 72 69 74 65 73  2c 20 44 72 61 77 66 69  | Sprites, Drawfi|
00001e30  6c 65 73 2c 20 41 72 74  57 6f 72 6b 73 20 66 69  |les, ArtWorks fi|
00001e40  6c 65 73 2c 20 50 6c 61  69 6e 20 74 65 78 74 0a  |les, Plain text.|
00001e50  65 74 63 2e 0a 3c 2f 55  4c 3e 3c 50 3e 49 66 20  |etc..</UL><P>If |
00001e60  79 6f 75 20 61 72 65 20  77 72 69 74 69 6e 67 20  |you are writing |
00001e70  6f 72 20 68 61 76 65 20  77 72 69 74 74 65 6e 20  |or have written |
00001e80  61 20 70 72 6f 67 72 61  6d 20 77 68 69 63 68 20  |a program which |
00001e90  70 72 6f 64 75 63 65 73  0a 64 61 74 61 20 6f 62  |produces.data ob|
00001ea0  6a 65 63 74 73 20 74 68  61 74 20 6d 61 79 20 62  |jects that may b|
00001eb0  65 20 64 65 73 69 72 61  62 6c 65 20 66 6f 72 20  |e desirable for |
00001ec0  6f 74 68 65 72 20 70 72  6f 67 72 61 6d 73 20 74  |other programs t|
00001ed0  6f 20 72 65 6e 64 65 72  2c 20 79 6f 75 20 73 68  |o render, you sh|
00001ee0  6f 75 6c 64 0a 63 6f 6e  73 69 64 65 72 20 70 72  |ould.consider pr|
00001ef0  6f 76 69 64 69 6e 67 20  61 20 72 65 6e 64 65 72  |oviding a render|
00001f00  69 6e 67 20 6d 6f 64 75  6c 65 20 28 6f 72 20 73  |ing module (or s|
00001f10  6f 6d 65 20 63 6f 64 65  29 20 77 68 69 63 68 0a  |ome code) which.|
00001f20  6f 74 68 65 72 20 61 70  70 6c 69 63 61 74 69 6f  |other applicatio|
00001f30  6e 73 20 63 61 6e 20 75  73 65 20 74 6f 20 64 69  |ns can use to di|
00001f40  73 70 6c 61 79 20 79 6f  75 72 20 6f 62 6a 65 63  |splay your objec|
00001f50  74 20 74 79 70 65 73 2e  20 59 6f 75 20 73 68 6f  |t types. You sho|
00001f60  75 6c 64 20 61 6c 73 6f  0a 63 6f 6e 73 69 64 65  |uld also.conside|
00001f70  72 20 70 6c 61 63 69 6e  67 20 74 68 65 20 64 65  |r placing the de|
00001f80  74 61 69 6c 73 20 28 69  66 20 6e 6f 74 20 74 68  |tails (if not th|
00001f90  65 20 72 65 6e 64 65 72  69 6e 67 20 63 6f 64 65  |e rendering code|
00001fa0  20 69 74 73 65 6c 66 29  20 69 6e 20 74 68 65 0a  | itself) in the.|
00001fb0  70 75 62 6c 69 63 20 64  6f 6d 61 69 6e 2e 20 3c  |public domain. <|
00001fc0  50 3e 0a 0a 4e 6f 20 77  65 6c 6c 20 77 72 69 74  |P>..No well writ|
00001fd0  74 65 6e 20 52 49 53 43  20 4f 53 20 61 70 70 6c  |ten RISC OS appl|
00001fe0  69 63 61 74 69 6f 6e 20  69 73 20 61 6e 20 69 73  |ication is an is|
00001ff0  6c 61 6e 64 2e 20 42 79  20 73 75 70 70 6f 72 74  |land. By support|
00002000  69 6e 67 20 74 68 65 20  50 43 41 0a 73 74 61 6e  |ing the PCA.stan|
00002010  64 61 72 64 20 70 72 6f  67 72 61 6d 73 20 63 61  |dard programs ca|
00002020  6e 20 74 61 6b 65 20 61  64 76 61 6e 74 61 67 65  |n take advantage|
00002030  20 6f 66 20 65 61 63 68  20 6f 74 68 65 72 27 73  | of each other's|
00002040  20 67 6f 6f 64 20 66 65  61 74 75 72 65 73 20 61  | good features a|
00002050  6e 64 0a 6d 69 6e 69 6d  69 73 65 20 74 68 65 69  |nd.minimise thei|
00002060  72 20 77 65 61 6b 6e 65  73 73 65 73 20 77 68 69  |r weaknesses whi|
00002070  6c 65 20 70 72 6f 76 69  64 69 6e 67 20 74 68 65  |le providing the|
00002080  20 75 73 65 72 20 77 69  74 68 20 61 20 66 61 72  | user with a far|
00002090  20 72 69 63 68 65 72 20  61 6e 64 0a 6d 6f 72 65  | richer and.more|
000020a0  20 70 72 6f 64 75 63 74  69 76 65 20 77 6f 72 6b  | productive work|
000020b0  69 6e 67 20 65 6e 76 69  72 6f 6e 6d 65 6e 74 2e  |ing environment.|
000020c0  0a 3c 50 3e 0a 0a 3c 42  3e 0a 4d 65 6d 6f 72 79  |.<P>..<B>.Memory|
000020d0  20 6d 61 6e 61 67 65 6d  65 6e 74 20 69 73 73 75  | management issu|
000020e0  65 73 0a 3c 2f 42 3e 0a  0a 3c 50 3e 0a 0a 46 6f  |es.</B>..<P>..Fo|
000020f0  72 20 62 61 63 6b 77 61  72 64 73 20 63 6f 6d 70  |r backwards comp|
00002100  61 74 61 62 69 6c 69 74  79 20 70 72 6f 67 72 61  |atability progra|
00002110  6d 73 20 74 68 61 74 20  77 69 73 68 20 74 6f 20  |ms that wish to |
00002120  75 73 65 20 50 43 41 20  6f 6e 20 70 72 65 20 52  |use PCA on pre R|
00002130  69 73 63 50 43 0a 68 61  72 64 77 61 72 65 20 63  |iscPC.hardware c|
00002140  61 6e 20 66 61 6c 6c 20  62 61 63 6b 20 74 6f 20  |an fall back to |
00002150  75 73 69 6e 67 20 74 68  65 20 52 4d 41 20 6f 72  |using the RMA or|
00002160  20 73 6f 6d 65 74 68 69  6e 67 20 6c 69 6b 65 20  | something like |
00002170  74 68 65 20 44 79 6e 61  6d 69 74 65 0a 6d 65 6d  |the Dynamite.mem|
00002180  6f 72 79 20 6d 61 6e 61  67 65 72 2e 20 57 65 20  |ory manager. We |
00002190  64 6f 20 3c 62 3e 6e 6f  74 3c 2f 62 3e 20 68 6f  |do <b>not</b> ho|
000021a0  77 65 76 65 72 20 62 65  6c 69 65 76 65 20 74 68  |wever believe th|
000021b0  61 74 20 44 79 6e 61 6d  69 74 65 20 69 73 20 74  |at Dynamite is t|
000021c0  68 65 20 62 65 73 74 0a  73 6f 6c 75 74 69 6f 6e  |he best.solution|
000021d0  20 66 6f 72 20 61 20 50  43 41 20 74 61 73 6b 20  | for a PCA task |
000021e0  6f 6e 20 74 68 65 20 52  69 73 63 50 43 2e 20 54  |on the RiscPC. T|
000021f0  68 69 73 20 69 73 20 62  65 63 61 75 73 65 20 44  |his is because D|
00002200  79 6e 61 6d 69 74 65 20  75 73 65 73 20 6f 6e 65  |ynamite uses one|
00002210  0a 64 79 6e 61 6d 69 63  20 61 72 65 61 20 74 6f  |.dynamic area to|
00002220  20 73 74 6f 72 65 20 61  6c 6c 20 6f 66 20 69 74  | store all of it|
00002230  73 20 64 61 74 61 20 72  61 74 68 65 72 20 74 68  |s data rather th|
00002240  61 6e 20 6f 6e 65 20 64  79 6e 61 6d 69 63 20 61  |an one dynamic a|
00002250  72 65 61 20 66 6f 72 20  65 61 63 68 0a 74 61 73  |rea for each.tas|
00002260  6b 2e 20 54 68 69 73 20  70 72 61 63 74 69 63 65  |k. This practice|
00002270  20 6d 65 61 6e 73 20 74  68 61 74 2c 20 69 6e 20  | means that, in |
00002280  74 68 65 20 65 76 65 6e  74 20 6f 66 20 61 20 50  |the event of a P|
00002290  43 41 20 72 65 6d 6f 74  65 20 74 61 73 6b 20 67  |CA remote task g|
000022a0  6f 69 6e 67 0a 77 72 6f  6e 67 20 61 6e 64 20 77  |oing.wrong and w|
000022b0  72 69 74 69 6e 67 20 62  65 79 6f 6e 64 20 74 68  |riting beyond th|
000022c0  65 20 65 6e 64 20 6f 66  20 74 68 65 20 6f 62 6a  |e end of the obj|
000022d0  65 63 74 20 62 65 69 6e  67 20 65 64 69 74 65 64  |ect being edited|
000022e0  2c 20 2a 61 6c 6c 2a 20  74 61 73 6b 73 0a 75 73  |, *all* tasks.us|
000022f0  69 6e 67 20 44 79 6e 61  6d 69 74 65 20 63 6f 75  |ing Dynamite cou|
00002300  6c 64 20 63 72 61 73 68  20 72 61 74 68 65 72 20  |ld crash rather |
00002310  74 68 61 6e 20 6a 75 73  74 20 74 68 65 20 6f 6e  |than just the on|
00002320  65 20 6c 6f 63 61 6c 20  74 61 73 6b 20 69 6e 20  |e local task in |
00002330  71 75 65 73 74 69 6f 6e  2e 0a 41 6c 73 6f 2c 20  |question..Also, |
00002340  44 79 6e 61 6d 69 74 65  20 77 69 6c 6c 20 6e 6f  |Dynamite will no|
00002350  74 20 77 6f 72 6b 20 77  69 74 68 20 3c 69 3e 56  |t work with <i>V|
00002360  69 72 74 75 61 6c 69 73  65 3c 2f 69 3e 20 77 68  |irtualise</i> wh|
00002370  69 63 68 20 70 72 6f 76  69 64 65 73 20 61 20 50  |ich provides a P|
00002380  43 41 0a 63 6f 6d 70 61  74 69 62 6c 65 20 76 69  |CA.compatible vi|
00002390  72 74 75 61 6c 20 6d 65  6d 6f 72 79 20 73 79 73  |rtual memory sys|
000023a0  74 65 6d 2e 3c 50 3e 20  0a 0a 3c 50 3e 0a 3c 41  |tem.<P> ..<P>.<A|
000023b0  20 48 52 45 46 3d 22 23  74 6f 70 22 3e 52 65 74  | HREF="#top">Ret|
000023c0  75 72 6e 20 74 6f 20 43  6f 6e 74 65 6e 74 73 3c  |urn to Contents<|
000023d0  2f 41 3e 0a 3c 48 52 3e  0a 0a 0a 3c 48 31 3e 3c  |/A>.<HR>...<H1><|
000023e0  41 20 4e 41 4d 45 3d 22  6d 65 73 64 65 66 73 22  |A NAME="mesdefs"|
000023f0  3e 50 6c 75 67 20 49 6e  20 43 6f 6d 70 6c 69 61  |>Plug In Complia|
00002400  6e 74 20 41 70 70 6c 69  63 61 74 69 6f 6e 20 4d  |nt Application M|
00002410  65 73 73 61 67 65 20 73  70 65 63 69 66 69 63 61  |essage specifica|
00002420  74 69 6f 6e 3c 2f 41 3e  3c 2f 48 31 3e 20 20 3c  |tion</A></H1>  <|
00002430  50 3e 0a 0a 0a 0a 3c 41  55 3e 0a 20 3c 2f 50 3e  |P>....<AU>. </P>|
00002440  20 41 75 74 68 6f 72 20  20 3a 20 52 6f 62 20 44  | Author  : Rob D|
00002450  61 76 69 73 6f 6e 20 28  72 64 61 76 69 73 6f 6e  |avison (rdavison|
00002460  40 78 74 72 61 2e 63 6f  2e 6e 7a 29 3c 42 52 3e  |@xtra.co.nz)<BR>|
00002470  0a 44 61 74 65 20 20 20  20 3a 20 30 31 2f 30 38  |.Date    : 01/08|
00002480  2f 39 36 3c 42 52 3e 0a  53 74 61 74 75 73 20 20  |/96<BR>.Status  |
00002490  3a 20 52 65 6c 65 61 73  65 20 31 3c 42 52 3e 0a  |: Release 1<BR>.|
000024a0  3c 2f 41 55 3e 0a 0a 3c  50 3e 0a 4d 65 73 73 61  |</AU>..<P>.Messa|
000024b0  67 65 20 49 6e 64 65 78  3c 42 52 3e 0a 0a 0a 3c  |ge Index<BR>...<|
000024c0  55 4c 3e 0a 3c 54 54 3e  0a 0a 3c 4c 49 3e 3c 41  |UL>.<TT>..<LI><A|
000024d0  20 48 52 45 46 3d 22 23  77 68 6f 73 22 3e 4d 65  | HREF="#whos">Me|
000024e0  73 73 61 67 65 5f 57 68  6f 73 41 62 6f 75 74 30  |ssage_WhosAbout0|
000024f0  78 38 33 34 38 34 3c 2f  41 3e 0a 3c 4c 49 3e 3c  |x83484</A>.<LI><|
00002500  41 20 48 52 45 46 3d 22  23 69 6d 22 3e 4d 65 73  |A HREF="#im">Mes|
00002510  73 61 67 65 5f 49 6d 48  65 72 65 30 78 38 33 34  |sage_ImHere0x834|
00002520  38 35 3c 2f 41 3e 0a 3c  4c 49 3e 3c 41 20 48 52  |85</A>.<LI><A HR|
00002530  45 46 3d 22 23 64 6f 22  3e 4d 65 73 73 61 67 65  |EF="#do">Message|
00002540  5f 44 6f 59 6f 75 72 53  74 75 66 66 30 78 38 33  |_DoYourStuff0x83|
00002550  34 38 36 3c 2f 41 3e 0a  3c 4c 49 3e 3c 41 20 48  |486</A>.<LI><A H|
00002560  52 45 46 3d 22 23 64 65  73 65 6c 22 3e 4d 65 73  |REF="#desel">Mes|
00002570  73 61 67 65 5f 44 65 73  65 6c 65 63 74 30 78 38  |sage_Deselect0x8|
00002580  33 34 38 37 3c 2f 41 3e  0a 3c 4c 49 3e 3c 41 20  |3487</A>.<LI><A |
00002590  48 52 45 46 3d 22 23 64  6f 6e 65 22 3e 4d 65 73  |HREF="#done">Mes|
000025a0  73 61 67 65 5f 44 6f 6e  65 4d 79 53 74 75 66 66  |sage_DoneMyStuff|
000025b0  30 78 38 33 34 38 38 3c  2f 41 3e 0a 3c 4c 49 3e  |0x83488</A>.<LI>|
000025c0  3c 41 20 48 52 45 46 3d  22 23 63 68 61 6e 67 65  |<A HREF="#change|
000025d0  64 22 3e 4d 65 73 73 61  67 65 5f 43 68 61 6e 67  |d">Message_Chang|
000025e0  65 64 30 78 38 33 34 38  41 3c 2f 41 3e 0a 3c 4c  |ed0x8348A</A>.<L|
000025f0  49 3e 3c 41 20 48 52 45  46 3d 22 23 72 65 73 69  |I><A HREF="#resi|
00002600  7a 65 22 3e 4d 65 73 73  61 67 65 5f 52 65 73 69  |ze">Message_Resi|
00002610  7a 65 52 65 71 75 65 73  74 30 78 38 33 34 38 42  |zeRequest0x8348B|
00002620  3c 2f 41 3e 0a 3c 4c 49  3e 3c 41 20 48 52 45 46  |</A>.<LI><A HREF|
00002630  3d 22 23 75 70 64 61 74  65 22 3e 4d 65 73 73 61  |="#update">Messa|
00002640  67 65 5f 55 70 64 61 74  65 41 72 65 61 30 78 38  |ge_UpdateArea0x8|
00002650  33 34 38 43 3c 2f 41 3e  0a 3c 4c 49 3e 3c 41 20  |348C</A>.<LI><A |
00002660  48 52 45 46 3d 22 23 72  65 73 69 7a 65 61 63 6b  |HREF="#resizeack|
00002670  22 3e 4d 65 73 73 61 67  65 5f 52 65 73 69 7a 65  |">Message_Resize|
00002680  41 63 6b 30 78 38 33 34  38 44 3c 2f 41 3e 0a 3c  |Ack0x8348D</A>.<|
00002690  4c 49 3e 3c 41 20 48 52  45 46 3d 22 23 6d 69 73  |LI><A HREF="#mis|
000026a0  63 22 3e 4d 65 73 73 61  67 65 5f 4d 69 73 63 4f  |c">Message_MiscO|
000026b0  70 30 78 38 33 34 38 45  3c 2f 41 3e 0a 3c 4c 49  |p0x8348E</A>.<LI|
000026c0  3e 3c 41 20 48 52 45 46  3d 22 23 69 6e 66 6f 22  |><A HREF="#info"|
000026d0  3e 4d 65 73 73 61 67 65  5f 49 6e 66 6f 30 78 38  |>Message_Info0x8|
000026e0  33 34 38 46 3c 2f 41 3e  0a 3c 4c 49 3e 3c 41 20  |348F</A>.<LI><A |
000026f0  48 52 45 46 3d 22 23 70  6f 73 22 3e 4d 65 73 73  |HREF="#pos">Mess|
00002700  61 67 65 5f 4f 62 6a 65  63 74 50 6f 73 69 74 69  |age_ObjectPositi|
00002710  6f 6e 30 78 38 33 34 39  30 3c 2f 41 3e 0a 3c 4c  |on0x83490</A>.<L|
00002720  49 3e 3c 41 20 48 52 45  46 3d 22 23 68 6f 6f 6b  |I><A HREF="#hook|
00002730  22 3e 4d 65 73 73 61 67  65 5f 48 6f 6f 6b 4d 65  |">Message_HookMe|
00002740  30 78 38 33 34 39 31 3c  2f 41 3e 0a 3c 4c 49 3e  |0x83491</A>.<LI>|
00002750  3c 41 20 48 52 45 46 3d  22 23 75 6e 68 6f 6f 6b  |<A HREF="#unhook|
00002760  22 3e 4d 65 73 73 61 67  65 5f 55 6e 68 6f 6f 6b  |">Message_Unhook|
00002770  4d 65 30 78 38 33 34 39  32 3c 2f 41 3e 0a 0a 0a  |Me0x83492</A>...|
00002780  3c 2f 55 4c 3e 0a 3c 2f  54 54 3e 0a 0a 3c 50 3e  |</UL>.</TT>..<P>|
00002790  0a 0a 0a 3c 42 3e 0a 4e  6f 74 65 73 3a 0a 3c 2f  |...<B>.Notes:.</|
000027a0  42 3e 0a 3c 50 3e 0a 0a  0a 46 69 6c 65 74 79 70  |B>.<P>...Filetyp|
000027b0  65 20 69 73 20 64 69 76  69 64 65 64 20 69 6e 74  |e is divided int|
000027c0  6f 20 74 77 6f 20 66 69  65 6c 64 73 20 77 69 74  |o two fields wit|
000027d0  68 20 74 68 69 73 20 66  6f 72 6d 61 74 3a 0a 0a  |h this format:..|
000027e0  3c 50 52 45 3e 0a 0a 20  20 20 20 20 20 20 20 20  |<PRE>..         |
000027f0  20 20 62 20 30 2d 31 32  20 52 49 53 43 20 4f 53  |  b 0-12 RISC OS|
00002800  20 66 69 6c 65 74 79 70  65 0a 20 20 20 20 20 20  | filetype.      |
00002810  20 20 20 20 20 62 31 33  2d 33 31 20 72 65 73 65  |     b13-31 rese|
00002820  72 76 65 64 20 2d 20 7a  65 72 6f 2e 0a 0a 3c 2f  |rved - zero...</|
00002830  50 52 45 3e 0a 0a 3c 50  3e 0a 0a 4f 6e 20 72 65  |PRE>..<P>..On re|
00002840  61 64 69 6e 67 2c 20 70  6c 65 61 73 65 20 6d 61  |ading, please ma|
00002850  73 6b 20 62 69 74 73 20  31 33 2d 33 31 20 6f 75  |sk bits 13-31 ou|
00002860  74 20 62 65 66 6f 72 65  20 63 68 65 63 6b 69 6e  |t before checkin|
00002870  67 20 74 68 65 20 66 69  6c 65 74 79 70 65 2e 0a  |g the filetype..|
00002880  3c 50 3e 0a 0a 53 74 72  69 6e 67 73 20 61 72 65  |<P>..Strings are|
00002890  20 6e 75 6c 6c 20 74 65  72 6d 69 6e 61 74 65 64  | null terminated|
000028a0  20 62 75 74 20 73 75 70  70 6f 72 74 69 6e 67 20  | but supporting |
000028b0  61 70 70 6c 69 63 61 74  69 6f 6e 73 20 73 68 6f  |applications sho|
000028c0  75 6c 64 20 61 63 63 65  70 74 20 43 74 72 6c 2e  |uld accept Ctrl.|
000028d0  0a 74 65 72 6d 69 6e 61  74 65 64 20 28 41 53 43  |.terminated (ASC|
000028e0  49 49 20 30 2d 33 31 29  2e 3c 50 3e 0a 0a 0a 27  |II 0-31).<P>...'|
000028f0  41 64 64 72 65 73 73 20  6f 66 20 62 61 73 65 27  |Address of base'|
00002900  20 69 73 20 74 68 65 20  62 65 67 69 6e 6e 69 6e  | is the beginnin|
00002910  67 20 6f 66 20 74 68 65  20 64 61 74 61 20 73 74  |g of the data st|
00002920  72 75 63 74 75 72 65 20  77 68 69 63 68 20 63 6f  |ructure which co|
00002930  6e 74 61 69 6e 73 20 74  68 65 20 6f 62 6a 65 63  |ntains the objec|
00002940  74 2e 3c 50 3e 0a 27 4f  66 66 73 65 74 20 74 6f  |t.<P>.'Offset to|
00002950  20 6f 62 6a 65 63 74 27  20 69 73 20 74 68 65 20  | object' is the |
00002960  6f 66 66 73 65 74 20 66  72 6f 6d 20 74 68 65 20  |offset from the |
00002970  41 64 64 72 65 73 73 20  6f 66 20 62 61 73 65 20  |Address of base |
00002980  74 6f 20 74 68 65 20 6f  62 6a 65 63 74 2d 6f 66  |to the object-of|
00002990  2d 69 6e 74 65 72 65 73  74 0a 3c 50 3e 0a 0a 46  |-interest.<P>..F|
000029a0  6f 72 20 65 78 61 6d 70  6c 65 2c 20 74 68 65 20  |or example, the |
000029b0  27 4f 66 66 73 65 74 20  74 6f 20 6f 62 6a 65 63  |'Offset to objec|
000029c0  74 27 20 6f 66 20 61 20  73 70 72 69 74 65 20 69  |t' of a sprite i|
000029d0  73 20 74 68 65 20 6f 66  66 73 65 74 20 74 6f 20  |s the offset to |
000029e0  74 68 65 20 73 70 72 69  74 65 0a 69 74 73 65 6c  |the sprite.itsel|
000029f0  66 20 28 62 61 73 65 21  38 20 66 6f 72 20 74 68  |f (base!8 for th|
00002a00  65 20 66 69 72 73 74 20  73 70 72 69 74 65 20 69  |e first sprite i|
00002a10  6e 20 61 20 73 70 72 69  74 65 20 61 72 65 61 29  |n a sprite area)|
00002a20  2e 20 54 68 65 20 27 41  64 64 72 65 73 73 20 6f  |. The 'Address o|
00002a30  66 20 62 61 73 65 27 0a  69 73 20 74 68 65 20 61  |f base'.is the a|
00002a40  64 64 72 65 73 73 20 6f  66 20 74 68 65 20 73 70  |ddress of the sp|
00002a50  72 69 74 65 20 61 72 65  61 20 69 6e 20 77 68 69  |rite area in whi|
00002a60  63 68 20 74 68 65 20 73  70 72 69 74 65 20 72 65  |ch the sprite re|
00002a70  73 69 64 65 73 2e 20 46  6f 72 20 6f 62 6a 65 63  |sides. For objec|
00002a80  74 73 0a 77 68 65 72 65  20 74 68 65 20 6f 66 66  |ts.where the off|
00002a90  73 65 74 20 68 61 73 20  6e 6f 20 6d 65 61 6e 69  |set has no meani|
00002aa0  6e 67 20 74 68 65 20 6f  66 66 73 65 74 20 74 6f  |ng the offset to|
00002ab0  20 74 68 65 20 6f 62 6a  65 63 74 20 6d 75 73 74  | the object must|
00002ac0  20 62 65 20 7a 65 72 6f  2e 0a 0a 3c 50 3e 0a 0a  | be zero...<P>..|
00002ad0  54 68 65 20 50 43 41 20  72 65 66 65 72 65 6e 63  |The PCA referenc|
00002ae0  65 73 20 6f 62 6a 65 63  74 73 20 75 73 69 6e 67  |es objects using|
00002af0  20 27 74 61 67 73 27 2e  20 45 61 63 68 20 74 61  | 'tags'. Each ta|
00002b00  67 20 69 73 20 75 73 75  61 6c 6c 79 20 31 36 20  |g is usually 16 |
00002b10  62 79 74 65 73 20 69 6e  20 6c 65 6e 67 74 68 0a  |bytes in length.|
00002b20  61 6e 64 20 69 74 73 20  66 6f 72 6d 61 74 20 69  |and its format i|
00002b30  73 20 64 65 66 69 6e 65  64 20 74 68 75 73 3a 3c  |s defined thus:<|
00002b40  50 3e 0a 3c 50 52 45 3e  0a 74 61 67 2b 30 20 20  |P>.<PRE>.tag+0  |
00002b50  3d 20 41 64 64 72 65 73  73 20 6f 66 20 62 61 73  |= Address of bas|
00002b60  65 2e 20 28 61 6e 63 68  6f 72 29 0a 74 61 67 2b  |e. (anchor).tag+|
00002b70  34 20 20 3d 20 4f 66 66  73 65 74 20 74 6f 20 6f  |4  = Offset to o|
00002b80  62 6a 65 63 74 20 66 72  6f 6d 20 62 61 73 65 2e  |bject from base.|
00002b90  0a 74 61 67 2b 38 20 20  3d 20 4c 65 6e 67 74 68  |.tag+8  = Length|
00002ba0  20 6f 66 20 6f 62 6a 65  63 74 2e 20 28 69 66 20  | of object. (if |
00002bb0  61 70 70 6c 69 63 61 62  6c 65 20 2d 20 73 65 65  |applicable - see|
00002bc0  20 6e 6f 74 65 20 62 65  6c 6f 77 29 0a 74 61 67  | note below).tag|
00002bd0  2b 31 32 20 3d 20 45 78  74 65 6e 73 69 6f 6e 20  |+12 = Extension |
00002be0  73 69 7a 65 20 61 6e 64  20 66 6c 61 67 73 0a 20  |size and flags. |
00002bf0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 62 30  |              b0|
00002c00  2d 31 35 20 54 68 65 73  65 20 62 69 74 73 20 61  |-15 These bits a|
00002c10  72 65 20 74 6f 20 70 72  6f 76 69 64 65 20 66 6f  |re to provide fo|
00002c20  72 20 65 78 70 61 6e 73  69 6f 6e 20 6f 66 20 74  |r expansion of t|
00002c30  68 65 20 73 69 7a 65 20  6f 66 20 61 0a 20 20 20  |he size of a.   |
00002c40  20 20 20 20 20 20 20 20  20 20 20 20 74 61 67 20  |            tag |
00002c50  62 79 20 75 70 20 74 6f  20 36 35 35 33 32 20 62  |by up to 65532 b|
00002c60  79 74 65 73 2e 20 54 79  70 69 63 61 6c 6c 79 2c  |ytes. Typically,|
00002c70  20 74 68 69 73 20 69 73  20 66 6f 72 20 61 70 70  | this is for app|
00002c80  2e 20 6f 72 20 6f 62 6a  65 63 74 0a 20 20 20 20  |. or object.    |
00002c90  20 20 20 20 20 20 20 20  20 20 20 73 70 65 63 69  |           speci|
00002ca0  66 69 63 20 64 61 74 61  2e 20 54 68 69 73 20 64  |fic data. This d|
00002cb0  6f 63 75 6d 65 6e 74 20  73 70 65 63 69 66 69 65  |ocument specifie|
00002cc0  73 20 74 77 6f 20 65 78  74 65 6e 73 69 6f 6e 73  |s two extensions|
00002cd0  20 74 6f 20 73 68 6f 77  0a 20 20 20 20 20 20 20  | to show.       |
00002ce0  20 20 20 20 20 20 20 20  79 6f 75 20 68 6f 77 20  |        you how |
00002cf0  69 74 27 73 20 64 6f 6e  65 2e 20 44 65 74 61 69  |it's done. Detai|
00002d00  6c 73 20 62 65 6c 6f 77  2e 0a 0a 20 20 20 20 20  |ls below...     |
00002d10  20 20 20 20 20 20 20 20  20 20 62 31 36 2d 33 31  |          b16-31|
00002d20  20 28 72 65 73 65 72 76  65 64 2c 20 73 65 74 20  | (reserved, set |
00002d30  74 6f 20 7a 65 72 6f 29  0a 3c 2f 50 52 45 3e 0a  |to zero).</PRE>.|
00002d40  0a 54 68 65 20 66 69 72  73 74 20 74 77 6f 20 76  |.The first two v|
00002d50  61 6c 75 65 73 20 69 6e  20 61 20 74 61 67 20 61  |alues in a tag a|
00002d60  72 65 20 6d 6f 73 74 20  69 6d 70 6f 72 74 61 6e  |re most importan|
00002d70  74 20 61 73 20 74 68 65  79 20 61 72 65 20 70 6f  |t as they are po|
00002d80  69 6e 74 65 72 73 20 74  6f 20 74 68 65 0a 61 64  |inters to the.ad|
00002d90  64 72 65 73 73 20 6f 66  20 74 68 65 20 6f 62 6a  |dress of the obj|
00002da0  65 63 74 20 61 6e 64 20  74 68 65 20 62 61 73 65  |ect and the base|
00002db0  20 6f 66 20 74 68 65 20  64 61 74 61 20 73 74 72  | of the data str|
00002dc0  75 63 74 75 72 65 20 63  6f 6e 74 61 69 6e 69 6e  |ucture containin|
00002dd0  67 20 69 74 2e 0a 52 65  6d 6f 74 65 20 74 61 73  |g it..Remote tas|
00002de0  6b 73 20 6d 75 73 74 20  3c 42 3e 2a 61 6c 77 61  |ks must <B>*alwa|
00002df0  79 73 2a 3c 2f 42 3e 20  72 65 66 65 72 65 6e 63  |ys*</B> referenc|
00002e00  65 20 61 6e 20 6f 62 6a  65 63 74 20 62 79 20 72  |e an object by r|
00002e10  65 61 64 69 6e 67 20 74  68 65 73 65 20 76 61 6c  |eading these val|
00002e20  75 65 73 2e 0a 47 65 6e  65 72 61 6c 6c 79 20 73  |ues..Generally s|
00002e30  70 65 61 6b 69 6e 67 2c  20 52 65 6d 6f 74 65 20  |peaking, Remote |
00002e40  74 61 73 6b 73 20 63 61  6e 20 75 73 75 61 6c 6c  |tasks can usuall|
00002e50  79 20 74 72 75 73 74 20  74 68 65 20 61 64 64 72  |y trust the addr|
00002e60  65 73 73 20 61 6e 64 20  6f 66 66 73 65 74 0a 75  |ess and offset.u|
00002e70  6e 74 69 6c 20 74 68 65  20 6e 65 78 74 20 57 69  |ntil the next Wi|
00002e80  6d 70 5f 50 6f 6c 6c 20  62 75 74 20 69 66 20 69  |mp_Poll but if i|
00002e90  6e 20 64 6f 75 62 74 2c  20 72 65 2d 72 65 61 64  |n doubt, re-read|
00002ea0  20 69 74 20 66 72 6f 6d  20 74 68 65 20 74 61 67  | it from the tag|
00002eb0  2e 20 54 68 65 20 4c 6f  63 61 6c 0a 74 61 73 6b  |. The Local.task|
00002ec0  20 68 61 73 20 74 68 65  20 72 65 73 70 6f 6e 73  | has the respons|
00002ed0  69 62 69 6c 69 74 79 20  6f 66 20 63 72 65 61 74  |ibility of creat|
00002ee0  69 6e 67 20 74 68 65 20  6f 62 6a 65 63 74 27 73  |ing the object's|
00002ef0  20 74 61 67 20 77 68 65  6e 20 74 68 65 20 6f 62  | tag when the ob|
00002f00  6a 65 63 74 0a 6a 6f 69  6e 73 20 74 68 65 20 50  |ject.joins the P|
00002f10  43 41 20 73 79 73 74 65  6d 2c 20 75 70 64 61 74  |CA system, updat|
00002f20  69 6e 67 20 74 68 65 20  72 65 6c 65 76 61 6e 74  |ing the relevant|
00002f30  20 66 69 65 6c 64 73 20  69 6e 20 74 68 65 20 74  | fields in the t|
00002f40  61 67 20 69 66 20 74 68  65 20 6f 62 6a 65 63 74  |ag if the object|
00002f50  0a 69 73 20 6d 6f 76 65  64 20 6f 72 20 72 65 73  |.is moved or res|
00002f60  69 7a 65 64 20 61 6e 64  20 64 69 73 63 61 72 64  |ized and discard|
00002f70  69 6e 67 20 74 68 65 20  74 61 67 20 77 68 65 6e  |ing the tag when|
00002f80  20 69 74 20 69 73 20 73  75 72 65 20 69 74 20 69  | it is sure it i|
00002f90  73 20 6e 6f 20 6c 6f 6e  67 65 72 0a 6e 65 65 64  |s no longer.need|
00002fa0  65 64 2e 20 54 61 67 73  20 6d 75 73 74 20 74 68  |ed. Tags must th|
00002fb0  65 6d 73 65 6c 76 65 73  20 62 65 20 69 6e 20 61  |emselves be in a|
00002fc0  20 63 6f 6d 6d 6f 6e 20  6d 65 6d 6f 72 79 20 61  | common memory a|
00002fd0  72 65 61 20 61 6e 64 20  74 68 65 79 20 3c 65 6d  |rea and they <em|
00002fe0  3e 6d 75 73 74 0a 6e 6f  74 20 6d 6f 76 65 3c 2f  |>must.not move</|
00002ff0  65 6d 3e 20 64 75 72 69  6e 67 20 74 68 65 20 6c  |em> during the l|
00003000  69 66 65 74 69 6d 65 20  6f 66 20 74 68 65 20 6f  |ifetime of the o|
00003010  62 6a 65 63 74 20 69 6e  20 74 68 65 20 50 43 41  |bject in the PCA|
00003020  20 73 79 73 74 65 6d 2e  20 43 6c 61 72 65 73 0a  | system. Clares.|
00003030  70 72 6f 76 69 64 65 20  61 20 73 6d 61 6c 6c 20  |provide a small |
00003040  6d 6f 64 75 6c 65 20 63  61 6c 6c 65 64 20 27 50  |module called 'P|
00003050  43 41 53 75 70 70 6f 72  74 27 20 77 68 69 63 68  |CASupport' which|
00003060  20 6d 61 79 20 62 65 20  66 72 65 65 6c 79 20 64  | may be freely d|
00003070  69 73 74 72 69 62 75 74  65 64 0a 62 79 20 72 65  |istributed.by re|
00003080  67 69 73 74 65 72 65 64  20 50 43 41 20 64 65 76  |gistered PCA dev|
00003090  65 6c 6f 70 65 72 73 20  74 6f 20 66 61 63 69 6c  |elopers to facil|
000030a0  69 74 61 74 65 20 74 68  65 20 63 72 65 61 74 69  |itate the creati|
000030b0  6f 6e 20 6f 66 20 50 43  41 20 74 61 67 73 20 66  |on of PCA tags f|
000030c0  6f 72 0a 61 70 70 6c 69  63 61 74 69 6f 6e 73 20  |or.applications |
000030d0  77 68 69 63 68 20 64 6f  20 6e 6f 74 20 77 61 6e  |which do not wan|
000030e0  74 20 74 6f 20 63 72 65  61 74 65 20 74 61 67 73  |t to create tags|
000030f0  20 74 68 65 6d 73 65 6c  76 65 73 2e 0a 0a 3c 70  | themselves...<p|
00003100  3e 0a 0a 4e 6f 74 65 73  3a 3c 70 3e 0a 0a 4d 61  |>..Notes:<p>..Ma|
00003110  6e 79 20 6f 62 6a 65 63  74 73 20 73 74 6f 72 65  |ny objects store|
00003120  20 74 68 65 69 72 20 6c  65 6e 67 74 68 20 77 69  | their length wi|
00003130  74 68 69 6e 20 74 68 65  20 6f 62 6a 65 63 74 20  |thin the object |
00003140  64 61 74 61 20 73 74 72  75 63 74 75 72 65 20 69  |data structure i|
00003150  74 73 65 6c 66 20 61 6e  64 0a 69 6e 20 74 68 61  |tself and.in tha|
00003160  74 20 63 61 73 65 20 79  6f 75 20 3c 62 3e 6d 75  |t case you <b>mu|
00003170  73 74 3c 2f 62 3e 20 75  73 65 20 74 68 65 20 76  |st</b> use the v|
00003180  61 6c 75 65 20 73 74 6f  72 65 64 20 77 69 74 68  |alue stored with|
00003190  69 6e 20 74 68 65 20 6f  62 6a 65 63 74 27 73 20  |in the object's |
000031a0  64 61 74 61 0a 69 6e 73  74 65 61 64 20 6f 66 20  |data.instead of |
000031b0  72 65 6c 79 69 6e 67 20  6f 6e 20 74 68 65 20 6c  |relying on the l|
000031c0  65 6e 67 74 68 20 66 69  65 6c 64 20 69 6e 20 74  |ength field in t|
000031d0  68 65 20 74 61 67 2e 20  49 74 20 69 73 20 69 6e  |he tag. It is in|
000031e0  74 65 6e 64 65 64 20 66  6f 72 20 6f 62 6a 65 63  |tended for objec|
000031f0  74 0a 74 79 70 65 73 20  77 68 69 63 68 20 69 6e  |t.types which in|
00003200  63 6c 75 64 65 20 6e 6f  20 72 65 63 6f 72 64 20  |clude no record |
00003210  6f 66 20 74 68 65 69 72  20 73 69 7a 65 20 28 74  |of their size (t|
00003220  65 78 74 20 66 6f 72 20  65 78 61 6d 70 6c 65 29  |ext for example)|
00003230  2e 0a 0a 3c 50 3e 0a 0a  54 61 67 20 65 78 74 65  |...<P>..Tag exte|
00003240  6e 73 69 6f 6e 73 20 6d  75 73 74 20 61 64 68 65  |nsions must adhe|
00003250  72 65 20 74 6f 20 74 68  65 20 66 6f 6c 6c 6f 77  |re to the follow|
00003260  69 6e 67 20 73 74 61 6e  64 61 72 64 3a 0a 3c 70  |ing standard:.<p|
00003270  72 65 3e 0a 74 61 67 2b  31 32 2e 62 30 2d 31 35  |re>.tag+12.b0-15|
00003280  20 20 20 3d 20 28 62 79  74 65 73 20 72 65 71 75  |   = (bytes requ|
00003290  69 72 65 64 2b 34 29 2e  20 4d 75 6c 74 69 70 6c  |ired+4). Multipl|
000032a0  65 73 20 6f 66 20 34 20  62 79 74 65 73 20 6f 6e  |es of 4 bytes on|
000032b0  6c 79 2e 0a 74 61 67 2b  31 36 20 20 20 20 20 20  |ly..tag+16      |
000032c0  20 20 20 20 20 65 78 74  65 6e 73 69 6f 6e 20 69  |     extension i|
000032d0  64 2e 20 54 79 70 65 73  20 30 2d 26 66 66 66 20  |d. Types 0-&fff |
000032e0  61 72 65 20 72 65 73 65  72 76 65 64 20 66 6f 72  |are reserved for|
000032f0  20 43 6c 61 72 65 73 20  50 43 41 2e 0a 20 20 20  | Clares PCA..   |
00003300  20 20 20 20 20 20 20 20  20 20 20 20 20 20 4f 74  |              Ot|
00003310  68 65 72 20 76 61 6c 75  65 73 20 61 72 65 20 61  |her values are a|
00003320  6c 6c 6f 63 61 74 65 64  20 69 6e 20 6c 69 6e 65  |llocated in line|
00003330  20 77 69 74 68 20 53 57  49 2f 4d 65 73 73 61 67  | with SWI/Messag|
00003340  65 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |e.              |
00003350  20 20 20 63 68 75 6e 6b  20 6e 75 6d 62 65 72 73  |   chunk numbers|
00003360  20 66 6f 72 20 61 70 70  6c 69 63 61 74 69 6f 6e  | for application|
00003370  20 64 65 76 65 6c 6f 70  65 72 73 2e 0a 28 65 78  | developers..(ex|
00003380  74 65 6e 64 65 64 20 64  61 74 61 20 64 65 70 65  |tended data depe|
00003390  6e 64 61 6e 74 20 6f 6e  20 74 61 67 20 69 64 29  |ndant on tag id)|
000033a0  0a 3c 2f 70 72 65 3e 0a  0a 54 6f 20 67 69 76 65  |.</pre>..To give|
000033b0  20 61 6e 20 65 78 61 6d  70 6c 65 20 6f 66 20 61  | an example of a|
000033c0  20 74 61 67 20 65 78 74  65 6e 73 69 6f 6e 20 77  | tag extension w|
000033d0  65 20 64 65 66 69 6e 65  20 74 77 6f 20 74 61 67  |e define two tag|
000033e0  20 65 78 74 65 6e 73 69  6f 6e 73 20 77 68 69 63  | extensions whic|
000033f0  68 20 6d 61 79 0a 62 65  20 75 73 65 64 20 77 69  |h may.be used wi|
00003400  74 68 20 50 43 41 20 74  65 78 74 20 6f 62 6a 65  |th PCA text obje|
00003410  63 74 73 2e 0a 0a 3c 70  3e 0a 0a 3c 70 72 65 3e  |cts...<p>..<pre>|
00003420  0a 0a 53 69 6d 70 6c 65  20 74 65 78 74 20 6f 62  |..Simple text ob|
00003430  6a 65 63 74 0a 2d 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |ject.-----------|
00003440  2d 2d 2d 2d 2d 2d 2d 0a  74 61 67 2b 31 32 20 38  |-------.tag+12 8|
00003450  0a 74 61 67 2b 31 36 20  26 46 46 46 0a 74 61 67  |.tag+16 &FFF.tag|
00003460  2b 32 30 20 6c 65 6e 67  74 68 20 6f 66 20 62 75  |+20 length of bu|
00003470  66 66 65 72 20 61 6c 6c  6f 63 61 74 65 64 20 74  |ffer allocated t|
00003480  6f 20 6f 62 6a 65 63 74  0a 20 20 20 20 20 20 20  |o object.       |
00003490  28 69 65 20 74 68 65 20  72 65 6d 6f 74 65 20 74  |(ie the remote t|
000034a0  61 73 6b 20 63 61 6e 20  65 78 74 65 6e 64 20 74  |ask can extend t|
000034b0  68 65 20 73 69 7a 65 20  6f 66 20 74 68 65 20 74  |he size of the t|
000034c0  65 78 74 20 28 61 73 20  67 69 76 65 6e 20 61 74  |ext (as given at|
000034d0  20 74 61 67 2b 38 29 0a  20 20 20 20 20 20 20 75  | tag+8).       u|
000034e0  6e 74 69 6c 20 69 74 73  20 73 69 7a 65 20 72 65  |ntil its size re|
000034f0  61 63 68 65 73 20 74 61  67 2b 32 30 20 62 79 74  |aches tag+20 byt|
00003500  65 73 20 62 65 66 6f 72  65 20 63 61 6c 6c 69 6e  |es before callin|
00003510  67 20 4d 65 73 73 61 67  65 5f 52 65 73 69 7a 65  |g Message_Resize|
00003520  2e 0a 0a 45 64 69 74 65  64 20 74 65 78 74 20 6f  |...Edited text o|
00003530  62 6a 65 63 74 0a 2d 2d  2d 2d 2d 2d 2d 2d 2d 2d  |bject.----------|
00003540  2d 2d 2d 2d 2d 2d 2d 2d  0a 74 61 67 2b 31 32 20  |--------.tag+12 |
00003550  31 36 0a 74 61 67 2b 31  36 20 26 46 46 45 0a 74  |16.tag+16 &FFE.t|
00003560  61 67 2b 32 30 20 6c 65  6e 67 74 68 20 6f 66 20  |ag+20 length of |
00003570  62 75 66 66 65 72 20 66  6f 72 20 66 69 72 73 74  |buffer for first|
00003580  20 63 68 75 6e 6b 0a 74  61 67 2b 32 34 20 6f 66  | chunk.tag+24 of|
00003590  66 73 65 74 20 74 6f 20  72 65 73 74 20 6f 66 20  |fset to rest of |
000035a0  74 65 78 74 20 66 72 6f  6d 20 6f 62 6a 65 63 74  |text from object|
000035b0  20 62 61 73 65 0a 74 61  67 2b 32 38 20 6c 65 6e  | base.tag+28 len|
000035c0  67 74 68 20 6f 66 20 72  65 73 74 20 6f 66 20 74  |gth of rest of t|
000035d0  65 78 74 0a 3c 2f 70 72  65 3e 0a 0a 45 64 69 74  |ext.</pre>..Edit|
000035e0  65 64 20 74 65 78 74 20  6f 62 6a 65 63 74 73 20  |ed text objects |
000035f0  61 72 65 20 73 70 6c 69  74 20 69 6e 74 6f 20 74  |are split into t|
00003600  77 6f 20 73 65 70 61 72  61 74 65 20 70 61 72 74  |wo separate part|
00003610  73 2c 20 74 68 65 20 70  6f 69 6e 74 65 72 20 74  |s, the pointer t|
00003620  6f 20 62 61 73 65 0a 61  74 20 74 68 65 20 62 65  |o base.at the be|
00003630  67 69 6e 6e 69 6e 67 20  6f 66 20 74 68 65 20 74  |ginning of the t|
00003640  61 67 2c 20 70 6f 69 6e  74 73 20 74 6f 20 74 68  |ag, points to th|
00003650  65 20 73 74 61 72 74 20  6f 66 20 74 68 65 20 66  |e start of the f|
00003660  69 72 73 74 20 63 68 75  6e 6b 20 6f 66 20 74 65  |irst chunk of te|
00003670  78 74 2c 0a 74 68 65 20  6f 66 66 73 65 74 20 74  |xt,.the offset t|
00003680  6f 20 6f 62 6a 65 63 74  20 70 6f 69 6e 74 73 20  |o object points |
00003690  74 6f 20 74 68 65 20 65  6e 64 20 6f 66 20 74 68  |to the end of th|
000036a0  69 73 20 63 68 75 6e 6b  20 6f 66 20 74 65 78 74  |is chunk of text|
000036b0  20 28 3d 20 74 68 65 20  63 61 72 65 74 0a 70 6f  | (= the caret.po|
000036c0  73 69 74 69 6f 6e 29 20  77 68 69 6c 65 20 74 68  |sition) while th|
000036d0  65 20 76 61 6c 75 65 73  20 61 74 20 74 61 67 2b  |e values at tag+|
000036e0  32 34 20 61 6e 64 20 74  61 67 2b 32 38 20 70 6f  |24 and tag+28 po|
000036f0  69 6e 74 20 74 6f 20 74  68 65 20 72 65 73 74 20  |int to the rest |
00003700  6f 66 20 74 68 65 0a 74  65 78 74 2e 20 53 75 69  |of the.text. Sui|
00003710  74 61 62 6c 65 20 6d 61  6e 69 70 75 6c 61 74 69  |table manipulati|
00003720  6f 6e 20 6f 66 20 74 68  65 73 65 20 76 61 6c 75  |on of these valu|
00003730  65 73 20 73 68 6f 75 6c  64 20 61 6c 6c 6f 77 20  |es should allow |
00003740  61 20 74 65 78 74 20 65  64 69 74 6f 72 20 74 6f  |a text editor to|
00003750  0a 77 6f 72 6b 20 77 69  74 68 20 50 43 41 2e 20  |.work with PCA. |
00003760  3c 65 6d 3e 4e 6f 74 65  3a 3c 2f 65 6d 3e 20 74  |<em>Note:</em> t|
00003770  68 69 73 20 68 61 73 20  6e 6f 74 20 62 65 65 6e  |his has not been|
00003780  20 74 65 73 74 65 64 20  77 69 74 68 20 61 6e 79  | tested with any|
00003790  20 63 6f 64 65 20 2d 0a  61 6e 79 20 63 6f 6d 6d  | code -.any comm|
000037a0  65 6e 74 73 20 70 6c 65  61 73 65 20 63 6f 6e 74  |ents please cont|
000037b0  61 63 74 20 74 68 65 20  61 75 74 68 6f 72 20 6f  |act the author o|
000037c0  66 20 50 43 41 2e 0a 0a  3c 70 3e 0a 0a 54 68 65  |f PCA...<p>..The|
000037d0  20 74 61 67 20 65 78 74  65 6e 73 69 6f 6e 20 73  | tag extension s|
000037e0  79 73 74 65 6d 20 69 73  20 70 6f 74 65 6e 74 69  |ystem is potenti|
000037f0  61 6c 6c 79 20 76 65 72  79 20 70 6f 77 65 72 66  |ally very powerf|
00003800  75 6c 20 62 75 74 20 70  6c 65 61 73 65 20 64 6f  |ul but please do|
00003810  20 6e 6f 74 0a 61 62 75  73 65 20 69 74 2e 20 49  | not.abuse it. I|
00003820  66 20 65 76 65 72 79 6f  6e 65 20 77 68 6f 20 65  |f everyone who e|
00003830  76 65 72 20 77 72 69 74  65 73 20 61 20 50 43 41  |ver writes a PCA|
00003840  20 70 72 6f 67 72 61 6d  20 63 72 65 61 74 65 73  | program creates|
00003850  20 61 20 74 61 67 20 65  78 74 65 6e 73 69 6f 6e  | a tag extension|
00003860  0a 66 6f 72 20 74 68 65  69 72 20 6f 77 6e 20 6f  |.for their own o|
00003870  62 6a 65 63 74 20 66 6f  72 6d 61 74 20 74 68 65  |bject format the|
00003880  6e 20 63 68 61 6f 73 20  77 69 6c 6c 20 72 65 69  |n chaos will rei|
00003890  67 6e 20 61 6e 64 20 74  68 65 20 50 43 41 20 73  |gn and the PCA s|
000038a0  79 73 74 65 6d 20 77 69  6c 6c 0a 62 65 63 6f 6d  |ystem will.becom|
000038b0  65 20 75 73 65 6c 65 73  73 2e 20 28 41 6e 79 6f  |e useless. (Anyo|
000038c0  6e 65 20 71 75 65 73 74  69 6f 6e 69 6e 67 20 74  |ne questioning t|
000038d0  68 69 73 20 69 73 20 69  6e 76 69 74 65 64 20 74  |his is invited t|
000038e0  6f 20 75 73 65 20 74 68  65 20 73 70 65 63 69 66  |o use the specif|
000038f0  69 63 61 74 69 6f 6e 0a  64 6f 63 75 6d 65 6e 74  |ication.document|
00003900  20 66 6f 72 20 74 68 65  20 54 49 46 46 20 66 69  | for the TIFF fi|
00003910  6c 65 20 66 6f 72 6d 61  74 20 61 73 20 62 65 64  |le format as bed|
00003920  73 69 64 65 20 72 65 61  64 69 6e 67 20 2d 20 61  |side reading - a|
00003930  20 70 65 72 66 65 63 74  20 65 78 61 6d 70 6c 65  | perfect example|
00003940  20 6f 66 0a 61 20 74 61  67 67 65 64 20 66 69 6c  | of.a tagged fil|
00003950  65 20 66 6f 72 6d 61 74  20 67 6f 6e 65 20 77 72  |e format gone wr|
00003960  6f 6e 67 29 2e 20 49 6e  20 67 65 6e 65 72 61 6c  |ong). In general|
00003970  2c 20 74 68 65 20 62 61  73 69 63 20 74 61 67 20  |, the basic tag |
00003980  73 74 72 75 63 74 75 72  65 20 6f 72 20 74 68 65  |structure or the|
00003990  0a 27 70 63 61 20 74 65  78 74 27 20 65 78 74 65  |.'pca text' exte|
000039a0  6e 73 69 6f 6e 20 64 65  66 69 6e 65 64 20 61 62  |nsion defined ab|
000039b0  6f 76 65 20 77 69 6c 6c  20 64 6f 20 66 6f 72 20  |ove will do for |
000039c0  6d 6f 73 74 20 64 61 74  61 20 74 79 70 65 73 2e  |most data types.|
000039d0  20 49 66 20 79 6f 75 0a  72 65 61 6c 6c 79 20 66  | If you.really f|
000039e0  65 65 6c 20 79 6f 75 20  68 61 76 65 20 74 6f 20  |eel you have to |
000039f0  63 72 65 61 74 65 20 79  6f 75 72 20 6f 77 6e 20  |create your own |
00003a00  65 78 74 65 6e 73 69 6f  6e 20 74 68 65 6e 20 70  |extension then p|
00003a10  6c 65 61 73 65 20 64 6f  75 62 6c 65 20 63 68 65  |lease double che|
00003a20  63 6b 0a 77 69 74 68 20  43 6c 61 72 65 73 20 74  |ck.with Clares t|
00003a30  68 61 74 20 61 20 73 75  69 74 61 62 6c 65 20 65  |hat a suitable e|
00003a40  78 74 65 6e 73 69 6f 6e  20 64 6f 65 73 20 6e 6f  |xtension does no|
00003a50  74 20 61 6c 72 65 61 64  79 20 65 78 69 73 74 2e  |t already exist.|
00003a60  20 54 68 65 20 65 78 74  65 6e 73 69 6f 6e 0a 73  | The extension.s|
00003a70  68 6f 75 6c 64 20 74 68  65 6e 20 62 65 20 64 65  |hould then be de|
00003a80  66 69 6e 65 64 20 69 6e  20 74 68 65 20 66 6f 72  |fined in the for|
00003a90  6d 61 74 20 67 69 76 65  6e 20 61 62 6f 76 65 20  |mat given above |
00003aa0  61 6e 64 20 74 68 65 20  69 6e 66 6f 72 6d 61 74  |and the informat|
00003ab0  69 6f 6e 20 73 65 6e 74  20 74 6f 0a 43 6c 61 72  |ion sent to.Clar|
00003ac0  65 73 20 66 6f 72 20 64  69 73 74 72 69 62 75 74  |es for distribut|
00003ad0  69 6f 6e 20 74 6f 20 74  68 65 20 50 43 41 20 63  |ion to the PCA c|
00003ae0  6f 6d 6d 75 6e 69 74 79  2e 0a 0a 3c 70 3e 0a 0a  |ommunity...<p>..|
00003af0  4f 6e 20 72 65 63 65 69  70 74 20 6f 66 20 61 20  |On receipt of a |
00003b00  50 43 41 20 6d 65 73 73  61 67 65 20 79 6f 75 20  |PCA message you |
00003b10  73 68 6f 75 6c 64 20 64  65 63 69 64 65 20 69 66  |should decide if|
00003b20  20 74 68 65 20 6d 65 73  73 61 67 65 20 72 65 66  | the message ref|
00003b30  65 72 73 20 74 6f 20 6f  6e 65 0a 6f 66 20 79 6f  |ers to one.of yo|
00003b40  75 72 20 6f 62 6a 65 63  74 73 20 28 65 69 74 68  |ur objects (eith|
00003b50  65 72 20 61 20 6c 6f 63  61 6c 20 6f 6e 65 20 79  |er a local one y|
00003b60  6f 75 20 63 72 65 61 74  65 64 20 79 6f 75 72 73  |ou created yours|
00003b70  65 6c 66 20 6f 72 20 61  20 72 65 6d 6f 74 65 20  |elf or a remote |
00003b80  6f 62 6a 65 63 74 0a 77  68 69 63 68 20 79 6f 75  |object.which you|
00003b90  20 61 72 65 20 65 64 69  74 69 6e 67 29 2e 20 59  | are editing). Y|
00003ba0  6f 75 20 64 6f 20 74 68  69 73 20 62 79 20 63 6f  |ou do this by co|
00003bb0  6d 70 61 72 69 6e 67 20  74 68 65 20 6f 62 6a 65  |mparing the obje|
00003bc0  63 74 27 73 20 74 61 67  20 61 64 64 72 65 73 73  |ct's tag address|
00003bd0  2c 0a 70 61 73 73 65 64  20 69 6e 20 74 68 65 20  |,.passed in the |
00003be0  6d 65 73 73 61 67 65 2c  20 77 69 74 68 20 61 20  |message, with a |
00003bf0  6c 6f 63 61 6c 20 61 72  72 61 79 20 6f 66 20 74  |local array of t|
00003c00  61 67 73 20 74 68 61 74  20 79 6f 75 20 6b 6e 6f  |ags that you kno|
00003c10  77 20 61 62 6f 75 74 2e  20 47 65 74 20 69 6e 74  |w about. Get int|
00003c20  6f 0a 74 68 65 20 68 61  62 69 74 20 6f 66 20 64  |o.the habit of d|
00003c30  6f 69 6e 67 20 69 74 20  74 68 69 73 20 77 61 79  |oing it this way|
00003c40  20 28 72 61 74 68 65 72  20 74 68 61 6e 20 63 6f  | (rather than co|
00003c50  6d 70 61 72 69 6e 67 20  74 68 65 20 74 61 67 27  |mparing the tag'|
00003c60  73 20 61 64 64 72 65 73  73 0a 66 69 65 6c 64 73  |s address.fields|
00003c70  20 77 69 74 68 20 79 6f  75 72 20 6f 77 6e 20 64  | with your own d|
00003c80  61 74 61 20 73 74 72 75  63 74 75 72 65 73 29 20  |ata structures) |
00003c90  61 73 20 6f 6e 65 20 6d  65 73 73 61 67 65 2c 20  |as one message, |
00003ca0  3c 41 0a 48 52 45 46 3d  22 23 64 65 73 65 6c 22  |<A.HREF="#desel"|
00003cb0  3e 4d 65 73 73 61 67 65  5f 44 65 73 65 6c 65 63  |>Message_Deselec|
00003cc0  74 3c 2f 41 3e 20 6d 61  79 20 70 61 73 73 20 61  |t</A> may pass a|
00003cd0  20 74 61 67 20 61 64 64  72 65 73 73 20 77 68 69  | tag address whi|
00003ce0  63 68 20 6e 6f 20 6c 6f  6e 67 65 72 0a 61 63 74  |ch no longer.act|
00003cf0  75 61 6c 6c 79 20 63 6f  6e 74 61 69 6e 73 20 76  |ually contains v|
00003d00  61 6c 69 64 20 64 61 74  61 20 28 74 68 65 20 6f  |alid data (the o|
00003d10  62 6a 65 63 74 20 69 74  73 65 6c 66 20 68 61 76  |bject itself hav|
00003d20  69 6e 67 20 62 65 65 6e  20 64 65 6c 65 74 65 64  |ing been deleted|
00003d30  29 2e 20 53 65 65 0a 69  74 73 20 65 6e 74 72 79  |). See.its entry|
00003d40  20 66 6f 72 20 64 65 74  61 69 6c 73 2e 0a 0a 3c  | for details...<|
00003d50  70 3e 0a 0a 49 6e 20 74  68 65 20 66 6f 6c 6c 6f  |p>..In the follo|
00003d60  77 69 6e 67 20 64 6f 63  75 6d 65 6e 74 61 74 69  |wing documentati|
00003d70  6f 6e 20 27 3c 49 3e 4c  6f 63 61 6c 3c 2f 49 3e  |on '<I>Local</I>|
00003d80  27 20 69 73 20 74 68 65  20 27 6f 77 6e 69 6e 67  |' is the 'owning|
00003d90  20 74 61 73 6b 27 20 62  65 69 6e 67 20 74 68 65  | task' being the|
00003da0  0a 74 61 73 6b 20 74 6f  20 77 68 69 63 68 20 74  |.task to which t|
00003db0  68 65 20 6f 62 6a 65 63  74 20 69 73 20 27 6c 6f  |he object is 'lo|
00003dc0  63 61 6c 27 2e 20 54 68  69 73 20 74 61 73 6b 20  |cal'. This task |
00003dd0  63 72 65 61 74 65 64 20  74 68 65 20 6f 62 6a 65  |created the obje|
00003de0  63 74 20 61 6e 64 20 69  74 73 0a 50 43 41 20 74  |ct and its.PCA t|
00003df0  61 67 2e 20 49 74 20 6b  6e 6f 77 73 20 68 6f 77  |ag. It knows how|
00003e00  20 74 6f 20 72 65 73 69  7a 65 20 61 6e 64 20 68  | to resize and h|
00003e10  6f 77 20 74 6f 20 64 65  6c 65 74 65 20 74 68 65  |ow to delete the|
00003e20  20 6f 62 6a 65 63 74 2e  0a 0a 3c 50 3e 0a 0a 27  | object...<P>..'|
00003e30  3c 49 3e 52 65 6d 6f 74  65 3c 2f 49 3e 27 20 69  |<I>Remote</I>' i|
00003e40  73 20 74 68 65 20 27 75  74 69 6c 69 74 79 27 20  |s the 'utility' |
00003e50  74 61 73 6b 20 2d 20 74  68 65 20 6f 6e 65 20 77  |task - the one w|
00003e60  68 69 63 68 20 6d 6f 64  69 66 69 65 73 20 61 6e  |hich modifies an|
00003e70  20 6f 62 6a 65 63 74 20  66 6f 72 0a 74 68 65 20  | object for.the |
00003e80  27 6c 6f 63 61 6c 27 20  6f 72 20 6f 77 6e 69 6e  |'local' or ownin|
00003e90  67 20 74 61 73 6b 2e 0a  3c 50 3e 0a 0a 50 6c 65  |g task..<P>..Ple|
00003ea0  61 73 65 20 6e 6f 74 65  20 77 68 69 63 68 20 6d  |ase note which m|
00003eb0  65 73 73 61 67 65 73 20  61 72 65 20 74 6f 20 62  |essages are to b|
00003ec0  65 20 62 72 6f 61 64 63  61 73 74 20 61 6e 64 20  |e broadcast and |
00003ed0  77 68 69 63 68 20 61 72  65 20 73 65 6e 74 0a 74  |which are sent.t|
00003ee0  61 73 6b 2d 74 6f 2d 74  61 73 6b 2e 20 54 68 65  |ask-to-task. The|
00003ef0  20 63 6f 72 72 65 63 74  20 66 75 6e 63 74 69 6f  | correct functio|
00003f00  6e 69 6e 67 20 6f 66 20  74 68 65 20 73 79 73 74  |ning of the syst|
00003f10  65 6d 20 64 65 70 65 6e  64 73 20 6f 6e 20 74 68  |em depends on th|
00003f20  65 20 63 6f 72 72 65 63  74 0a 75 73 61 67 65 2e  |e correct.usage.|
00003f30  0a 3c 50 3e 0a 0a 3c 68  33 3e 3c 41 20 4e 41 4d  |.<P>..<h3><A NAM|
00003f40  45 3d 22 73 75 6d 6d 61  72 79 22 3e 50 43 41 20  |E="summary">PCA |
00003f50  4d 65 73 73 61 67 65 20  53 75 6d 6d 61 72 79 3c  |Message Summary<|
00003f60  2f 41 3e 3c 2f 68 33 3e  3c 42 52 3e 0a 0a 54 68  |/A></h3><BR>..Th|
00003f70  69 73 20 69 73 20 69 6e  74 65 6e 64 65 64 20 74  |is is intended t|
00003f80  6f 20 67 69 76 65 20 74  68 65 20 70 72 6f 67 72  |o give the progr|
00003f90  61 6d 6d 65 72 20 61 6e  20 6f 76 65 72 76 69 65  |ammer an overvie|
00003fa0  77 20 6f 66 20 77 68 61  74 20 67 6f 65 73 20 6f  |w of what goes o|
00003fb0  6e 20 69 6e 20 61 20 74  79 70 69 63 61 6c 0a 50  |n in a typical.P|
00003fc0  43 41 20 73 65 73 73 69  6f 6e 2e 20 49 74 20 69  |CA session. It i|
00003fd0  67 6e 6f 72 65 73 20 6d  61 6e 79 20 6f 66 20 74  |gnores many of t|
00003fe0  68 65 20 66 69 6e 65 72  20 70 6f 69 6e 74 73 20  |he finer points |
00003ff0  6f 66 20 74 68 65 20 70  72 6f 74 6f 63 6f 6c 2e  |of the protocol.|
00004000  0a 0a 3c 70 3e 0a 0a 31  2e 20 4c 6f 63 61 6c 20  |..<p>..1. Local |
00004010  74 61 73 6b 20 62 72 6f  61 64 63 61 73 74 73 20  |task broadcasts |
00004020  4d 65 73 73 61 67 65 5f  57 68 6f 73 41 62 6f 75  |Message_WhosAbou|
00004030  74 20 66 6f 72 20 61 20  73 65 6c 65 63 74 65 64  |t for a selected|
00004040  20 6f 62 6a 65 63 74 2e  3c 42 52 3e 0a 32 2e 20  | object.<BR>.2. |
00004050  52 65 6d 6f 74 65 20 74  61 73 6b 73 20 65 78 61  |Remote tasks exa|
00004060  6d 69 6e 65 20 6d 65 73  73 61 67 65 20 64 61 74  |mine message dat|
00004070  61 20 61 6e 64 20 72 65  73 70 6f 6e 64 20 77 69  |a and respond wi|
00004080  74 68 20 4d 65 73 73 61  67 65 5f 49 6d 48 65 72  |th Message_ImHer|
00004090  65 2e 3c 42 52 3e 0a 33  2e 20 4c 6f 63 61 6c 20  |e.<BR>.3. Local |
000040a0  74 61 73 6b 2c 20 69 6e  20 72 65 73 70 6f 6e 73  |task, in respons|
000040b0  65 20 74 6f 20 75 73 65  72 73 20 63 68 6f 69 63  |e to users choic|
000040c0  65 20 6f 66 20 52 65 6d  6f 74 65 20 73 65 6e 64  |e of Remote send|
000040d0  73 20 4d 65 73 73 61 67  65 5f 44 6f 59 6f 75 72  |s Message_DoYour|
000040e0  53 74 75 66 66 2e 3c 42  52 3e 0a 34 2e 20 28 69  |Stuff.<BR>.4. (i|
000040f0  66 20 64 6f 69 6e 67 20  69 6e 70 6c 61 63 65 20  |f doing inplace |
00004100  65 64 69 74 69 6e 67 29  20 52 65 6d 6f 74 65 20  |editing) Remote |
00004110  74 61 73 6b 2c 20 6f 6e  20 72 65 63 65 69 70 74  |task, on receipt|
00004120  20 6f 66 20 44 6f 59 6f  75 72 53 74 75 66 66 20  | of DoYourStuff |
00004130  20 73 65 6e 64 73 20 4d  65 73 73 61 67 65 5f 48  | sends Message_H|
00004140  6f 6f 6b 4d 65 2e 3c 42  52 3e 0a 35 2e 20 28 72  |ookMe.<BR>.5. (r|
00004150  65 70 65 61 74 65 64 29  20 52 65 6d 6f 74 65 20  |epeated) Remote |
00004160  61 6e 64 20 4c 6f 63 61  6c 20 74 61 73 6b 73 20  |and Local tasks |
00004170  62 72 6f 61 64 63 61 73  74 20 4d 65 73 73 61 67  |broadcast Messag|
00004180  65 5f 55 70 64 61 74 65  41 72 65 61 20 69 66 20  |e_UpdateArea if |
00004190  74 68 65 20 75 73 65 72  20 63 68 61 6e 67 65 73  |the user changes|
000041a0  20 74 68 65 20 6f 62 6a  65 63 74 2e 3c 42 52 3e  | the object.<BR>|
000041b0  0a 36 2e 20 52 65 6d 6f  74 65 20 74 61 73 6b 20  |.6. Remote task |
000041c0  73 65 6e 64 73 20 4d 65  73 73 61 67 65 5f 55 6e  |sends Message_Un|
000041d0  68 6f 6f 6b 20 77 68 65  6e 20 75 73 65 72 20 63  |hook when user c|
000041e0  6c 6f 73 65 73 20 77 69  6e 64 6f 77 2f 74 6f 6f  |loses window/too|
000041f0  6c 62 61 72 20 6f 6e 74  6f 20 6f 62 6a 65 63 74  |lbar onto object|
00004200  2e 3c 42 52 3e 0a 37 2e  20 4c 6f 63 61 6c 20 74  |.<BR>.7. Local t|
00004210  61 73 6b 20 62 72 6f 61  64 63 61 73 74 73 20 4d  |ask broadcasts M|
00004220  65 73 73 61 67 65 5f 44  65 73 65 6c 65 63 74 20  |essage_Deselect |
00004230  69 66 20 75 73 65 72 20  64 65 6c 65 74 65 73 20  |if user deletes |
00004240  6f 62 6a 65 63 74 2f 71  75 69 74 73 20 70 72 6f  |object/quits pro|
00004250  67 72 61 6d 2e 3c 42 52  3e 0a 0a 54 68 65 20 76  |gram.<BR>..The v|
00004260  61 72 69 61 62 6c 65 20  6e 61 6d 65 73 20 75 73  |ariable names us|
00004270  65 64 20 69 6e 20 74 68  65 20 65 78 61 6d 70 6c  |ed in the exampl|
00004280  65 20 42 41 53 49 43 20  70 72 6f 67 72 61 6d 20  |e BASIC program |
00004290  61 72 65 20 69 6e 63 6c  75 64 65 64 20 61 66 74  |are included aft|
000042a0  65 72 20 74 68 65 0a 6d  65 73 73 61 67 65 20 6e  |er the.message n|
000042b0  75 6d 62 65 72 2e 0a 0a  3c 50 3e 0a 0a 0a 0a 3c  |umber...<P>....<|
000042c0  53 54 52 4f 4e 47 3e 3c  41 20 4e 41 4d 45 3d 22  |STRONG><A NAME="|
000042d0  77 68 6f 73 22 3e 0a 4d  65 73 73 61 67 65 5f 57  |whos">.Message_W|
000042e0  68 6f 73 41 62 6f 75 74  0a 3c 2f 41 3e 20 28 26  |hosAbout.</A> (&|
000042f0  38 33 34 38 34 29 20 3c  2f 53 54 52 4f 4e 47 3e  |83484) </STRONG>|
00004300  20 28 4d 73 67 5f 57 68  6f 73 25 29 3c 50 3e 0a  | (Msg_Whos%)<P>.|
00004310  0a 0a 42 72 6f 61 64 63  61 73 74 20 62 79 20 4c  |..Broadcast by L|
00004320  6f 63 61 6c 20 74 61 73  6b 20 77 68 65 6e 20 6f  |ocal task when o|
00004330  70 65 6e 69 6e 67 20 55  74 69 6c 69 74 79 20 73  |pening Utility s|
00004340  75 62 2d 6d 65 6e 75 2f  70 6f 70 75 70 20 28 73  |ub-menu/popup (s|
00004350  65 65 20 74 68 65 20 73  65 63 74 69 6f 6e 0a 6f  |ee the section.o|
00004360  6e 20 75 73 65 72 20 69  6e 74 65 72 66 61 63 65  |n user interface|
00004370  29 2e 20 0a 0a 3c 50 3e  0a 0a 54 68 65 20 62 6c  |). ..<P>..The bl|
00004380  6f 63 6b 20 70 6f 69 6e  74 65 64 20 74 6f 20 62  |ock pointed to b|
00004390  79 20 52 31 20 63 6f 6e  74 61 69 6e 73 3a 3c 50  |y R1 contains:<P|
000043a0  3e 0a 3c 50 52 45 3e 0a  52 31 2b 32 30 20 20 20  |>.<PRE>.R1+20   |
000043b0  66 69 6c 65 74 79 70 65  20 6f 66 20 6f 62 6a 65  |filetype of obje|
000043c0  63 74 0a 52 31 2b 32 34  20 20 20 61 64 64 72 65  |ct.R1+24   addre|
000043d0  73 73 20 6f 66 20 6f 62  6a 65 63 74 20 74 61 67  |ss of object tag|
000043e0  0a 52 31 2b 32 38 20 20  20 72 65 73 65 72 76 65  |.R1+28   reserve|
000043f0  64 20 2d 20 30 0a 3c 2f  50 52 45 3e 0a 0a 3c 50  |d - 0.</PRE>..<P|
00004400  3e 0a 0a 0a 52 65 63 65  69 76 69 6e 67 20 72 65  |>...Receiving re|
00004410  6d 6f 74 65 20 74 61 73  6b 73 20 73 68 6f 75 6c  |mote tasks shoul|
00004420  64 20 72 65 73 70 6f 6e  64 20 77 69 74 68 20 3c  |d respond with <|
00004430  41 20 48 52 45 46 3d 22  23 69 6d 22 3e 4d 65 73  |A HREF="#im">Mes|
00004440  73 61 67 65 5f 49 6d 48  65 72 65 3c 2f 41 3e 0a  |sage_ImHere</A>.|
00004450  61 73 20 64 65 66 69 6e  65 64 20 62 65 6c 6f 77  |as defined below|
00004460  20 69 66 20 74 68 65 20  66 69 6c 65 74 79 70 65  | if the filetype|
00004470  20 69 73 20 27 69 6e 74  65 72 65 73 74 69 6e 67  | is 'interesting|
00004480  27 2e 20 59 6f 75 20 63  61 6e 20 65 78 61 6d 69  |'. You can exami|
00004490  6e 65 20 74 68 65 20 64  61 74 61 0a 69 6e 20 74  |ne the data.in t|
000044a0  68 65 20 74 61 67 20 61  74 20 52 31 2b 32 34 20  |he tag at R1+24 |
000044b0  69 66 20 74 68 65 20 66  69 6c 65 74 79 70 65 20  |if the filetype |
000044c0  61 6c 6f 6e 65 20 64 6f  65 73 20 6e 6f 74 20 73  |alone does not s|
000044d0  75 66 66 69 63 65 20 28  66 6f 72 20 65 78 61 6d  |uffice (for exam|
000044e0  70 6c 65 2c 20 61 0a 70  72 6f 67 72 61 6d 20 77  |ple, a.program w|
000044f0  68 69 63 68 20 63 61 6e  20 6f 6e 6c 79 20 65 64  |hich can only ed|
00004500  69 74 20 33 32 62 70 70  20 73 70 72 69 74 65 73  |it 32bpp sprites|
00004510  20 73 68 6f 75 6c 64 20  65 78 61 6d 69 6e 65 20  | should examine |
00004520  74 68 65 20 73 70 72 69  74 65 20 74 79 70 65 0a  |the sprite type.|
00004530  77 6f 72 64 20 61 74 20  21 28 52 31 2b 32 34 29  |word at !(R1+24)|
00004540  2b 28 52 31 2b 32 34 29  21 34 29 20 2b 34 30 20  |+(R1+24)!4) +40 |
00004550  28 69 65 20 74 61 67 20  61 64 64 72 65 73 73 20  |(ie tag address |
00004560  66 69 65 6c 64 2b 6f 66  66 73 65 74 20 74 6f 20  |field+offset to |
00004570  6f 62 6a 65 63 74 0a 66  69 65 6c 64 29 2b 34 30  |object.field)+40|
00004580  20 62 65 66 6f 72 65 20  73 65 6e 64 69 6e 67 20  | before sending |
00004590  3c 41 20 48 52 45 46 3d  22 23 69 6d 22 3e 4d 65  |<A HREF="#im">Me|
000045a0  73 73 61 67 65 5f 49 6d  48 65 72 65 3c 2f 41 3e  |ssage_ImHere</A>|
000045b0  29 2e 0a 0a 3c 50 3e 0a  0a 3c 53 54 52 4f 4e 47  |)...<P>..<STRONG|
000045c0  3e 3c 41 20 4e 41 4d 45  3d 22 69 6d 22 3e 0a 4d  |><A NAME="im">.M|
000045d0  65 73 73 61 67 65 5f 49  6d 48 65 72 65 0a 3c 2f  |essage_ImHere.</|
000045e0  41 3e 20 28 26 38 33 34  38 35 29 20 28 4d 73 67  |A> (&83485) (Msg|
000045f0  5f 49 6d 25 29 20 3c 2f  53 54 52 4f 4e 47 3e 3c  |_Im%) </STRONG><|
00004600  50 3e 0a 0a 0a 53 65 6e  74 20 62 79 20 52 65 6d  |P>...Sent by Rem|
00004610  6f 74 65 20 74 61 73 6b  20 74 6f 20 4c 6f 63 61  |ote task to Loca|
00004620  6c 20 74 61 73 6b 2e 20  4c 6f 63 61 6c 20 72 65  |l task. Local re|
00004630  63 6f 72 64 73 20 74 68  65 20 64 61 74 61 20 70  |cords the data p|
00004640  61 73 73 65 64 20 66 6f  72 20 6c 61 74 65 72 0a  |assed for later.|
00004650  75 73 65 20 69 6e 20 63  72 65 61 74 69 6e 67 20  |use in creating |
00004660  61 20 64 69 61 6c 6f 67  75 65 20 62 6f 78 20 6f  |a dialogue box o|
00004670  72 20 6d 65 6e 75 2e 0a  0a 3c 50 3e 0a 0a 0a 54  |r menu...<P>...T|
00004680  68 65 20 62 6c 6f 63 6b  20 70 6f 69 6e 74 65 64  |he block pointed|
00004690  20 74 6f 20 62 79 20 52  31 20 63 6f 6e 74 61 69  | to by R1 contai|
000046a0  6e 73 3a 3c 50 3e 0a 3c  50 52 45 3e 0a 52 31 2b  |ns:<P>.<PRE>.R1+|
000046b0  32 30 0a 20 20 20 20 20  20 20 20 62 69 74 73 20  |20.        bits |
000046c0  30 2d 37 20 66 6c 61 67  73 3a 0a 20 20 20 20 20  |0-7 flags:.     |
000046d0  20 20 20 20 20 20 20 20  20 20 20 62 30 20 53 70  |           b0 Sp|
000046e0  72 69 74 65 6e 61 6d 65  20 73 75 70 70 6c 69 65  |ritename supplie|
000046f0  64 0a 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |d.              |
00004700  20 20 62 31 20 49 6e 66  6f 20 61 76 61 69 6c 61  |  b1 Info availa|
00004710  62 6c 65 0a 20 20 20 20  20 20 20 20 20 20 20 20  |ble.            |
00004720  20 20 20 20 62 32 20 52  65 73 65 72 76 65 64 20  |    b2 Reserved |
00004730  2d 20 30 0a 20 20 20 20  20 20 20 20 20 20 20 20  |- 0.            |
00004740  20 20 20 20 62 33 20 54  6f 6f 6c 20 77 61 6e 74  |    b3 Tool want|
00004750  73 20 74 6f 20 27 6f 77  6e 27 20 74 68 65 20 6f  |s to 'own' the o|
00004760  62 6a 65 63 74 0a 20 20  20 20 20 20 20 20 20 20  |bject.          |
00004770  20 20 20 20 20 20 62 34  20 54 6f 6f 6c 20 77 61  |      b4 Tool wa|
00004780  6e 74 73 20 49 6e 20 70  6c 61 63 65 20 65 64 69  |nts In place edi|
00004790  74 69 6e 67 0a 20 20 20  20 20 20 20 20 20 20 20  |ting.           |
000047a0  20 20 20 20 20 62 35 2d  37 20 52 65 73 65 72 76  |     b5-7 Reserv|
000047b0  65 64 20 2d 20 30 0a 20  20 20 20 20 20 20 20 20  |ed - 0.         |
000047c0  20 20 20 20 20 20 20 62  38 2d 33 31 20 52 65 73  |       b8-31 Res|
000047d0  65 72 76 65 64 20 2d 20  30 0a 0a 52 31 2b 32 34  |erved - 0..R1+24|
000047e0  20 20 20 20 20 20 20 20  20 20 20 54 6f 6f 6c 20  |           Tool |
000047f0  69 64 2e 0a 52 31 2b 32  38 20 20 20 20 20 20 20  |id..R1+28       |
00004800  20 20 20 20 53 74 72 69  6e 67 2e 20 4d 65 6e 75  |    String. Menu|
00004810  20 65 6e 74 72 79 2f 46  75 6e 63 74 69 6f 6e 20  | entry/Function |
00004820  6e 61 6d 65 20 28 65 67  2e 20 43 6f 6e 74 72 61  |name (eg. Contra|
00004830  73 74 2e 2e 2e 29 2e 0a  20 20 20 20 20 20 20 20  |st...)..        |
00004840  20 20 20 20 20 20 20 20  4c 65 6e 67 74 68 20 6c  |        Length l|
00004850  69 6d 69 74 65 64 20 74  6f 20 33 31 63 68 61 72  |imited to 31char|
00004860  73 2b 74 65 72 6d 69 6e  61 74 6f 72 2e 0a 52 31  |s+terminator..R1|
00004870  2b 36 30 20 20 20 20 20  20 20 20 20 20 20 53 74  |+60           St|
00004880  72 69 6e 67 2e 20 4e 61  6d 65 20 6f 66 20 73 70  |ring. Name of sp|
00004890  72 69 74 65 20 69 6e 20  77 69 6d 70 20 73 70 72  |rite in wimp spr|
000048a0  69 74 65 20 70 6f 6f 6c  0a 20 20 20 20 20 20 20  |ite pool.       |
000048b0  20 20 20 20 20 20 20 20  20 28 69 66 20 62 30 20  |         (if b0 |
000048c0  6f 66 20 52 31 2b 32 30  20 69 73 20 73 65 74 29  |of R1+20 is set)|
000048d0  0a 0a 0a 3c 50 3e 0a 3c  2f 50 52 45 3e 0a 3c 2f  |...<P>.</PRE>.</|
000048e0  50 3e 0a 0a 54 68 65 20  74 6f 6f 6c 20 69 64 20  |P>..The tool id |
000048f0  69 73 20 69 6e 74 65 6e  64 65 64 20 66 6f 72 20  |is intended for |
00004900  72 65 6d 6f 74 65 20 74  61 73 6b 73 20 77 68 69  |remote tasks whi|
00004910  63 68 20 70 72 6f 76 69  64 65 20 6d 6f 72 65 20  |ch provide more |
00004920  74 68 61 6e 20 6f 6e 65  0a 75 74 69 6c 69 74 79  |than one.utility|
00004930  2e 20 49 74 20 69 73 20  72 65 74 75 72 6e 65 64  |. It is returned|
00004940  20 74 6f 20 74 68 65 20  74 61 73 6b 20 77 69 74  | to the task wit|
00004950  68 20 3c 41 0a 48 52 45  46 3d 22 23 64 6f 22 3e  |h <A.HREF="#do">|
00004960  4d 65 73 73 61 67 65 5f  44 6f 59 6f 75 72 53 74  |Message_DoYourSt|
00004970  75 66 66 3c 2f 41 3e 2e  0a 0a 3c 50 3e 0a 46 6c  |uff</A>...<P>.Fl|
00004980  61 67 73 3a 3c 50 3e 0a  0a 3c 50 52 45 3e 0a 62  |ags:<P>..<PRE>.b|
00004990  30 20 20 20 20 20 20 69  6e 64 69 63 61 74 65 73  |0      indicates|
000049a0  20 74 6f 20 74 68 65 20  72 65 63 69 70 69 65 6e  | to the recipien|
000049b0  74 20 74 68 61 74 20 74  68 65 72 65 20 69 73 20  |t that there is |
000049c0  61 20 73 70 72 69 74 65  20 6e 61 6d 65 20 61 74  |a sprite name at|
000049d0  20 52 31 2b 36 30 0a 20  20 20 20 20 20 20 20 2d  | R1+60.        -|
000049e0  20 74 68 65 20 73 70 72  69 74 65 20 69 73 20 73  | the sprite is s|
000049f0  74 6f 72 65 64 20 69 6e  20 74 68 65 20 57 69 6d  |tored in the Wim|
00004a00  70 20 73 70 72 69 74 65  20 70 6f 6f 6c 20 61 6e  |p sprite pool an|
00004a10  64 20 73 68 6f 75 6c 64  20 62 65 0a 20 20 20 20  |d should be.    |
00004a20  20 20 20 20 75 73 65 64  20 77 68 65 6e 20 72 65  |    used when re|
00004a30  6e 64 65 72 69 6e 67 20  74 68 65 20 70 6f 70 75  |ndering the popu|
00004a40  70 20 64 69 61 6c 6f 67  75 65 20 62 6f 78 2e 3c  |p dialogue box.<|
00004a50  50 3e 0a 0a 62 31 20 20  20 20 20 20 69 6e 64 69  |P>..b1      indi|
00004a60  63 61 74 65 73 20 74 68  61 74 20 74 68 65 20 74  |cates that the t|
00004a70  6f 6f 6c 20 63 61 6e 20  70 72 6f 76 69 64 65 20  |ool can provide |
00004a80  61 20 72 65 73 70 6f 6e  73 65 0a 20 20 20 20 20  |a response.     |
00004a90  20 20 20 74 6f 20 3c 41  20 48 52 45 46 3d 22 23  |   to <A HREF="#|
00004aa0  69 6e 66 6f 22 3e 4d 65  73 73 61 67 65 5f 49 6e  |info">Message_In|
00004ab0  66 6f 3c 2f 41 3e 2e 0a  0a 62 32 20 20 20 20 20  |fo</A>...b2     |
00004ac0  20 52 65 73 65 72 76 65  64 20 2d 20 30 0a 0a 62  | Reserved - 0..b|
00004ad0  33 20 20 20 20 20 20 69  6e 64 69 63 61 74 65 73  |3      indicates|
00004ae0  20 74 68 61 74 20 74 68  65 20 74 6f 6f 6c 20 77  | that the tool w|
00004af0  61 6e 74 73 20 74 6f 20  27 6f 77 6e 27 20 74 68  |ants to 'own' th|
00004b00  65 20 6f 62 6a 65 63 74  2e 0a 20 20 20 20 20 20  |e object..      |
00004b10  20 20 4c 6f 63 61 6c 20  74 61 73 6b 20 73 68 6f  |  Local task sho|
00004b20  75 6c 64 20 73 65 6e 64  20 4d 73 67 5f 44 65 73  |uld send Msg_Des|
00004b30  65 6c 65 63 74 20 66 6f  72 20 74 68 65 20 6f 62  |elect for the ob|
00004b40  6a 65 63 74 0a 20 20 20  20 20 20 20 20 62 65 66  |ject.        bef|
00004b50  6f 72 65 20 73 65 6e 64  69 6e 67 20 3c 41 20 48  |ore sending <A H|
00004b60  52 45 46 3d 22 23 64 6f  22 3e 4d 65 73 73 61 67  |REF="#do">Messag|
00004b70  65 5f 44 6f 59 6f 75 72  53 74 75 66 66 3c 2f 41  |e_DoYourStuff</A|
00004b80  3e 20 69 66 20 74 68 69  73 20 62 69 74 20 69 73  |> if this bit is|
00004b90  0a 20 20 20 20 20 20 20  20 73 65 74 2e 20 44 6f  |.        set. Do|
00004ba0  20 6e 6f 74 20 73 65 74  20 74 68 69 73 20 62 69  | not set this bi|
00004bb0  74 20 75 6e 6c 65 73 73  20 79 6f 75 20 68 61 76  |t unless you hav|
00004bc0  65 20 74 6f 20 61 73 20  69 74 0a 20 20 20 20 20  |e to as it.     |
00004bd0  20 20 20 77 69 6c 6c 20  70 72 65 76 65 6e 74 20  |   will prevent |
00004be0  6f 74 68 65 72 20 72 65  6d 6f 74 65 20 74 61 73  |other remote tas|
00004bf0  6b 73 20 66 72 6f 6d 20  73 68 61 72 69 6e 67 20  |ks from sharing |
00004c00  74 68 65 0a 20 20 20 20  20 20 20 20 6f 62 6a 65  |the.        obje|
00004c10  63 74 20 61 74 20 74 68  65 20 73 61 6d 65 20 74  |ct at the same t|
00004c20  69 6d 65 2e 20 49 74 20  73 68 6f 75 6c 64 20 6f  |ime. It should o|
00004c30  6e 6c 79 20 62 65 20 73  65 74 20 77 68 65 6e 0a  |nly be set when.|
00004c40  20 20 20 20 20 20 20 20  74 68 65 20 72 65 6d 6f  |        the remo|
00004c50  74 65 20 74 61 73 6b 20  77 61 6e 74 73 20 74 6f  |te task wants to|
00004c60  20 27 74 61 6b 65 20 6f  76 65 72 27 20 74 68 65  | 'take over' the|
00004c70  20 6f 62 6a 65 63 74 20  63 6f 6d 70 6c 65 74 65  | object complete|
00004c80  6c 79 2e 0a 0a 20 20 20  20 20 20 20 20 2d 20 73  |ly...        - s|
00004c90  75 63 68 20 61 73 20 43  6f 6d 70 6f 73 69 74 69  |uch as Compositi|
00004ca0  6f 6e 20 74 61 6b 69 6e  67 20 6f 76 65 72 20 61  |on taking over a|
00004cb0  20 33 32 62 70 70 20 73  70 72 69 74 65 0a 20 20  | 32bpp sprite.  |
00004cc0  20 20 20 20 20 20 66 6f  72 20 75 73 65 20 61 73  |      for use as|
00004cd0  20 61 20 63 61 6e 76 61  73 2e 0a 0a 62 34 20 20  | a canvas...b4  |
00004ce0  20 20 20 20 54 68 69 73  20 62 69 74 20 69 73 20  |    This bit is |
00004cf0  64 65 73 69 67 6e 65 64  20 74 6f 20 61 6c 6c 6f  |designed to allo|
00004d00  77 20 66 6f 72 20 72 65  61 6c 20 27 69 6e 20 70  |w for real 'in p|
00004d10  6c 61 63 65 20 65 64 69  74 69 6e 67 27 0a 20 20  |lace editing'.  |
00004d20  20 20 20 20 20 20 6f 70  65 72 61 74 69 6f 6e 73  |      operations|
00004d30  2e 20 42 65 63 61 75 73  65 20 6f 66 20 74 68 65  |. Because of the|
00004d40  20 61 6d 6f 75 6e 74 20  6f 66 20 63 6f 64 65 20  | amount of code |
00004d50  6e 65 63 65 73 73 61 72  79 0a 20 20 20 20 20 20  |necessary.      |
00004d60  20 20 61 74 20 74 68 65  20 6c 6f 63 61 6c 20 65  |  at the local e|
00004d70  6e 64 20 74 6f 20 68 61  6e 64 6c 65 20 74 68 69  |nd to handle thi|
00004d80  73 20 69 74 20 68 61 73  20 62 65 65 6e 20 64 65  |s it has been de|
00004d90  66 69 6e 65 64 0a 20 20  20 20 20 20 20 20 61 73  |fined.        as|
00004da0  20 61 6e 20 6f 70 74 69  6f 6e 61 6c 20 70 61 72  | an optional par|
00004db0  74 20 6f 66 20 74 68 65  20 73 74 61 6e 64 61 72  |t of the standar|
00004dc0  64 2e 0a 3c 2f 50 52 45  3e 0a 20 20 20 20 20 20  |d..</PRE>.      |
00004dd0  20 0a 3c 50 3e 0a 4c 6f  63 61 6c 20 61 70 70 6c  | .<P>.Local appl|
00004de0  69 63 61 74 69 6f 6e 73  20 77 68 69 63 68 20 64  |ications which d|
00004df0  6f 20 6e 6f 74 20 73 75  70 70 6f 72 74 20 69 6e  |o not support in|
00004e00  20 70 6c 61 63 65 20 65  64 69 74 69 6e 67 20 73  | place editing s|
00004e10  68 6f 75 6c 64 20 63 6c  65 61 72 20 62 69 74 20  |hould clear bit |
00004e20  34 0a 6f 66 20 74 68 65  20 66 6c 61 67 73 20 77  |4.of the flags w|
00004e30  6f 72 64 20 61 6e 64 20  73 65 6e 64 20 74 68 61  |ord and send tha|
00004e40  74 20 77 69 74 68 20 44  6f 59 6f 75 72 53 74 75  |t with DoYourStu|
00004e50  66 66 2e 20 4f 6e 20 72  65 63 65 69 70 74 2c 20  |ff. On receipt, |
00004e60  74 68 65 20 72 65 6d 6f  74 65 0a 61 70 70 6c 69  |the remote.appli|
00004e70  63 61 74 69 6f 6e 20 73  68 6f 75 6c 64 20 63 68  |cation should ch|
00004e80  65 63 6b 20 69 66 20 62  69 74 20 34 20 69 73 20  |eck if bit 4 is |
00004e90  73 74 69 6c 6c 20 73 65  74 20 61 6e 64 20 69 66  |still set and if|
00004ea0  20 6e 6f 74 20 6f 70 65  6e 20 61 20 72 65 6d 6f  | not open a remo|
00004eb0  74 65 0a 77 69 6e 64 6f  77 20 6f 6e 74 6f 20 74  |te.window onto t|
00004ec0  68 65 20 6f 62 6a 65 63  74 2e 0a 0a 3c 50 3e 0a  |he object...<P>.|
00004ed0  0a 0a 4e 6f 74 65 73 3a  20 49 6e 20 65 61 72 6c  |..Notes: In earl|
00004ee0  79 20 76 65 72 73 69 6f  6e 73 20 6f 66 20 74 68  |y versions of th|
00004ef0  69 73 20 73 74 61 6e 64  61 72 64 20 62 69 74 73  |is standard bits|
00004f00  20 32 38 2d 33 31 20 6f  66 20 74 68 65 20 66 6c  | 28-31 of the fl|
00004f10  61 67 73 20 77 6f 72 64  20 68 61 64 0a 61 6e 6f  |ags word had.ano|
00004f20  74 68 65 72 20 75 73 65  2e 20 54 68 69 73 20 64  |ther use. This d|
00004f30  61 74 61 20 68 61 73 20  62 65 65 6e 20 6d 6f 76  |ata has been mov|
00004f40  65 64 20 74 6f 20 3c 41  20 48 52 45 46 3d 22 23  |ed to <A HREF="#|
00004f50  68 6f 6f 6b 22 3e 4d 65  73 73 61 67 65 5f 48 6f  |hook">Message_Ho|
00004f60  6f 6b 4d 65 2e 3c 2f 41  3e 0a 50 6c 65 61 73 65  |okMe.</A>.Please|
00004f70  20 73 65 65 20 62 65 6c  6f 77 2e 0a 0a 3c 50 3e  | see below...<P>|
00004f80  0a 0a 0a 3c 53 54 52 4f  4e 47 3e 0a 3c 41 20 4e  |...<STRONG>.<A N|
00004f90  41 4d 45 3d 22 64 6f 22  3e 0a 4d 65 73 73 61 67  |AME="do">.Messag|
00004fa0  65 5f 44 6f 59 6f 75 72  53 74 75 66 66 0a 3c 2f  |e_DoYourStuff.</|
00004fb0  41 3e 20 28 26 38 33 34  38 36 29 20 28 4d 73 67  |A> (&83486) (Msg|
00004fc0  5f 44 6f 25 29 0a 3c 2f  53 54 52 4f 4e 47 3e 0a  |_Do%).</STRONG>.|
00004fd0  3c 50 3e 0a 0a 54 68 65  20 62 6c 6f 63 6b 20 70  |<P>..The block p|
00004fe0  6f 69 6e 74 65 64 20 74  6f 20 62 79 20 52 31 20  |ointed to by R1 |
00004ff0  63 6f 6e 74 61 69 6e 73  3a 3c 50 3e 0a 0a 3c 50  |contains:<P>..<P|
00005000  52 45 3e 0a 52 31 2b 32  30 20 20 20 46 69 6c 65  |RE>.R1+20   File|
00005010  74 79 70 65 20 6f 66 20  6f 62 6a 65 63 74 0a 52  |type of object.R|
00005020  31 2b 32 34 20 20 20 41  64 64 72 65 73 73 20 6f  |1+24   Address o|
00005030  66 20 6f 62 6a 65 63 74  20 74 61 67 0a 52 31 2b  |f object tag.R1+|
00005040  32 38 20 20 20 72 65 73  65 72 76 65 64 20 2d 20  |28   reserved - |
00005050  30 0a 52 31 2b 33 32 20  20 20 54 6f 6f 6c 20 69  |0.R1+32   Tool i|
00005060  64 0a 52 31 2b 33 36 20  20 20 54 6f 6f 6c 20 66  |d.R1+36   Tool f|
00005070  6c 61 67 73 20 77 6f 72  64 0a 52 31 2b 34 30 20  |lags word.R1+40 |
00005080  20 20 53 74 72 69 6e 67  2e 20 4e 61 6d 65 20 6f  |  String. Name o|
00005090  66 20 6f 62 6a 65 63 74  20 6f 72 20 6e 75 6c 6c  |f object or null|
000050a0  20 28 26 30 29 0a 3c 2f  50 52 45 3e 0a 3c 50 3e  | (&0).</PRE>.<P>|
000050b0  0a 0a 53 65 6e 74 20 62  79 20 4c 6f 63 61 6c 20  |..Sent by Local |
000050c0  74 61 73 6b 20 74 6f 20  72 65 6d 6f 74 65 20 74  |task to remote t|
000050d0  61 73 6b 20 64 65 70 65  6e 64 69 6e 67 20 6f 6e  |ask depending on|
000050e0  20 65 6e 74 72 79 20 73  65 6c 65 63 74 65 64 20  | entry selected |
000050f0  69 6e 20 55 74 69 6c 69  74 69 65 73 0a 73 75 62  |in Utilities.sub|
00005100  2d 6d 65 6e 75 2f 64 69  61 6c 6f 67 75 65 2e 20  |-menu/dialogue. |
00005110  52 65 6d 6f 74 65 20 74  61 73 6b 20 73 68 6f 75  |Remote task shou|
00005120  6c 64 20 72 65 63 6f 72  64 20 74 68 65 20 74 61  |ld record the ta|
00005130  67 20 61 64 64 72 65 73  73 20 61 6e 64 20 6f 70  |g address and op|
00005140  65 6e 20 69 74 73 0a 77  69 6e 64 6f 77 20 28 6f  |en its.window (o|
00005150  72 20 6a 75 73 74 20 69  74 73 20 74 6f 6f 6c 62  |r just its toolb|
00005160  61 72 20 69 66 20 62 69  74 20 34 20 6f 66 20 74  |ar if bit 4 of t|
00005170  68 65 20 66 6c 61 67 73  20 77 6f 72 64 20 69 73  |he flags word is|
00005180  20 73 65 74 29 2e 20 0a  0a 3c 50 3e 0a 0a 3c 42  | set). ..<P>..<B|
00005190  3e 0a 4e 6f 74 65 73 3a  0a 3c 2f 42 3e 3c 50 3e  |>.Notes:.</B><P>|
000051a0  0a 0a 49 66 20 74 68 65  20 52 65 6d 6f 74 65 20  |..If the Remote |
000051b0  74 61 73 6b 20 73 65 74  20 62 69 74 20 34 20 6f  |task set bit 4 o|
000051c0  66 20 74 68 65 20 66 6c  61 67 73 20 77 6f 72 64  |f the flags word|
000051d0  20 69 6e 20 3c 41 0a 48  52 45 46 3d 22 23 69 6d  | in <A.HREF="#im|
000051e0  22 3e 4d 65 73 73 61 67  65 5f 49 6d 48 65 72 65  |">Message_ImHere|
000051f0  3c 2f 41 3e 20 77 68 65  6e 20 72 65 70 6c 79 69  |</A> when replyi|
00005200  6e 67 20 74 6f 20 3c 41  0a 48 52 45 46 3d 22 23  |ng to <A.HREF="#|
00005210  77 68 6f 73 22 3e 4d 65  73 73 61 67 65 5f 57 68  |whos">Message_Wh|
00005220  6f 73 41 62 6f 75 74 3c  2f 41 3e 20 69 74 20 73  |osAbout</A> it s|
00005230  68 6f 75 6c 64 20 63 68  65 63 6b 20 74 68 61 74  |hould check that|
00005240  20 74 68 69 73 20 62 69  74 20 69 73 20 73 74 69  | this bit is sti|
00005250  6c 6c 0a 73 65 74 20 6e  6f 77 2e 20 49 66 20 69  |ll.set now. If i|
00005260  74 20 68 61 73 20 62 65  65 6e 20 63 6c 65 61 72  |t has been clear|
00005270  65 64 20 74 68 65 6e 20  74 68 65 20 4c 6f 63 61  |ed then the Loca|
00005280  6c 20 74 61 73 6b 20 63  61 6e 6e 6f 74 20 68 61  |l task cannot ha|
00005290  6e 64 6c 65 20 72 65 6d  6f 74 65 0a 6d 65 73 73  |ndle remote.mess|
000052a0  61 67 69 6e 67 20 61 6e  64 20 74 68 65 20 52 65  |aging and the Re|
000052b0  6d 6f 74 65 20 74 61 73  6b 20 6d 75 73 74 20 6f  |mote task must o|
000052c0  70 65 6e 20 61 20 73 65  70 61 72 61 74 65 20 77  |pen a separate w|
000052d0  69 6e 64 6f 77 20 6f 6e  74 6f 20 74 68 65 20 6f  |indow onto the o|
000052e0  62 6a 65 63 74 2e 0a 3c  50 3e 0a 0a 49 66 20 62  |bject..<P>..If b|
000052f0  69 74 20 34 20 69 73 20  73 74 69 6c 6c 20 73 65  |it 4 is still se|
00005300  74 20 69 74 20 6d 65 61  6e 73 20 74 68 61 74 20  |t it means that |
00005310  74 68 65 20 6c 6f 63 61  6c 20 74 61 73 6b 20 69  |the local task i|
00005320  73 20 77 69 6c 6c 69 6e  67 20 74 6f 20 70 61 72  |s willing to par|
00005330  74 69 63 69 70 61 74 65  0a 69 6e 20 61 6e 20 69  |ticipate.in an i|
00005340  6e 2d 70 6c 61 63 65 20  65 64 69 74 69 6e 67 20  |n-place editing |
00005350  73 65 73 73 69 6f 6e 2e  20 49 6e 20 74 68 69 73  |session. In this|
00005360  20 63 61 73 65 20 74 68  65 20 52 65 6d 6f 74 65  | case the Remote|
00005370  20 74 61 73 6b 20 73 68  6f 75 6c 64 20 73 69 6d  | task should sim|
00005380  70 6c 79 0a 6f 70 65 6e  20 69 74 73 20 74 6f 6f  |ply.open its too|
00005390  6c 62 61 72 20 61 6e 64  20 73 65 6e 64 20 3c 41  |lbar and send <A|
000053a0  20 48 52 45 46 3d 22 23  68 6f 6f 6b 22 3e 4d 65  | HREF="#hook">Me|
000053b0  73 73 61 67 65 5f 48 6f  6f 6b 4d 65 3c 2f 41 3e  |ssage_HookMe</A>|
000053c0  20 74 6f 20 74 68 65 20  4c 6f 63 61 6c 0a 74 61  | to the Local.ta|
000053d0  73 6b 20 74 6f 20 61 73  6b 20 69 74 20 74 6f 20  |sk to ask it to |
000053e0  69 6e 74 65 72 63 65 70  74 20 6d 6f 75 73 65 20  |intercept mouse |
000053f0  62 75 74 74 6f 6e 20 61  6e 64 20 6f 74 68 65 72  |button and other|
00005400  20 57 69 6d 70 20 65 76  65 6e 74 73 2e 20 52 65  | Wimp events. Re|
00005410  63 65 69 70 74 20 6f 66  0a 74 68 69 73 20 6d 65  |ceipt of.this me|
00005420  73 73 61 67 65 20 77 69  6c 6c 20 61 6c 73 6f 20  |ssage will also |
00005430  63 61 75 73 65 20 74 68  65 20 4c 6f 63 61 6c 20  |cause the Local |
00005440  74 61 73 6b 20 74 6f 20  73 65 6e 64 20 3c 41 0a  |task to send <A.|
00005450  48 52 45 46 3d 22 23 70  6f 73 22 3e 4d 65 73 73  |HREF="#pos">Mess|
00005460  61 67 65 5f 4f 62 6a 65  63 74 50 6f 73 69 74 69  |age_ObjectPositi|
00005470  6f 6e 3c 2f 41 3e 20 74  6f 20 6d 6f 76 65 20 74  |on</A> to move t|
00005480  68 65 20 72 65 6d 6f 74  65 20 74 61 73 6b 73 20  |he remote tasks |
00005490  74 6f 6f 6c 62 61 72 20  74 6f 0a 74 68 65 20 63  |toolbar to.the c|
000054a0  6f 72 72 65 63 74 20 70  6f 73 69 74 69 6f 6e 2e  |orrect position.|
000054b0  20 0a 0a 3c 50 3e 0a 0a  4e 6f 74 68 69 6e 67 20  | ..<P>..Nothing |
000054c0  61 62 6f 75 74 20 74 68  65 20 73 74 61 6e 64 61  |about the standa|
000054d0  72 64 20 70 72 65 76 65  6e 74 73 20 74 68 65 20  |rd prevents the |
000054e0  6f 62 6a 65 63 74 20 63  68 61 6e 67 69 6e 67 20  |object changing |
000054f0  74 79 70 65 20 28 65 67  20 66 72 6f 6d 20 73 70  |type (eg from sp|
00005500  72 69 74 65 0a 74 6f 20  44 72 61 77 66 69 6c 65  |rite.to Drawfile|
00005510  29 20 62 65 74 77 65 65  6e 20 3c 41 20 48 52 45  |) between <A HRE|
00005520  46 3d 22 23 77 68 6f 73  22 3e 4d 65 73 73 61 67  |F="#whos">Messag|
00005530  65 5f 57 68 6f 73 41 62  6f 75 74 3c 2f 41 3e 20  |e_WhosAbout</A> |
00005540  61 6e 64 20 74 68 69 73  20 6d 65 73 73 61 67 65  |and this message|
00005550  2e 0a 4f 6e 20 72 65 63  65 69 70 74 20 6f 66 20  |..On receipt of |
00005560  74 68 69 73 20 6d 65 73  73 61 67 65 20 74 68 65  |this message the|
00005570  20 52 65 6d 6f 74 65 20  74 61 73 6b 20 6d 75 73  | Remote task mus|
00005580  74 20 74 68 65 72 65 66  6f 72 65 20 63 68 65 63  |t therefore chec|
00005590  6b 20 74 68 65 20 66 69  6c 65 74 79 70 65 0a 66  |k the filetype.f|
000055a0  69 65 6c 64 20 61 6e 64  20 61 73 20 6d 75 63 68  |ield and as much|
000055b0  20 6f 66 20 74 68 65 20  6f 62 6a 65 63 74 27 73  | of the object's|
000055c0  20 64 61 74 61 20 73 74  72 75 63 74 75 72 65 20  | data structure |
000055d0  61 73 20 6e 65 63 65 73  73 61 72 79 20 74 6f 20  |as necessary to |
000055e0  65 6e 73 75 72 65 20 74  68 61 74 0a 69 74 20 63  |ensure that.it c|
000055f0  61 6e 20 65 64 69 74 20  74 68 65 20 6f 62 6a 65  |an edit the obje|
00005600  63 74 20 61 6e 64 20 64  65 6c 69 6e 6b 2f 69 67  |ct and delink/ig|
00005610  6e 6f 72 65 20 74 68 65  20 6d 65 73 73 61 67 65  |nore the message|
00005620  20 71 75 69 65 74 6c 79  20 69 66 20 74 68 65 20  | quietly if the |
00005630  74 79 70 65 20 69 73 0a  6e 6f 74 20 74 6f 20 69  |type is.not to i|
00005640  74 73 20 6c 69 6b 69 6e  67 2e 20 54 68 69 73 20  |ts liking. This |
00005650  61 6c 6c 6f 77 73 20 74  68 65 20 4c 6f 63 61 6c  |allows the Local|
00005660  20 74 61 73 6b 20 74 6f  20 27 6d 6f 76 65 27 20  | task to 'move' |
00005670  61 20 72 65 6d 6f 74 65  20 74 61 73 6b 20 74 6f  |a remote task to|
00005680  0a 64 69 66 66 65 72 65  6e 74 20 6f 62 6a 65 63  |.different objec|
00005690  74 73 20 63 6c 65 61 6e  6c 79 2e 0a 0a 3c 50 3e  |ts cleanly...<P>|
000056a0  0a 0a 0a 42 65 66 6f 72  65 20 73 65 6e 64 69 6e  |...Before sendin|
000056b0  67 20 4d 65 73 73 61 67  65 5f 44 6f 59 6f 75 72  |g Message_DoYour|
000056c0  53 74 75 66 66 20 77 69  74 68 20 62 69 74 20 34  |Stuff with bit 4|
000056d0  20 73 65 74 20 74 68 65  20 6c 6f 63 61 6c 20 74  | set the local t|
000056e0  61 73 6b 20 73 68 6f 75  6c 64 0a 62 72 6f 61 64  |ask should.broad|
000056f0  63 61 73 74 20 3c 41 20  48 52 45 46 3d 22 23 75  |cast <A HREF="#u|
00005700  6e 68 6f 6f 6b 22 3e 4d  65 73 73 61 67 65 5f 55  |nhook">Message_U|
00005710  6e 68 6f 6f 6b 4d 65 3c  2f 41 3e 20 74 6f 20 70  |nhookMe</A> to p|
00005720  72 65 76 65 6e 74 20 6d  6f 72 65 20 74 68 61 6e  |revent more than|
00005730  20 6f 6e 65 0a 72 65 6d  6f 74 65 20 74 61 73 6b  | one.remote task|
00005740  20 61 74 74 65 6d 70 74  69 6e 67 20 74 6f 20 64  | attempting to d|
00005750  6f 20 69 6e 2d 70 6c 61  63 65 20 65 64 69 74 69  |o in-place editi|
00005760  6e 67 20 61 74 20 6f 6e  63 65 2e 0a 0a 3c 70 3e  |ng at once...<p>|
00005770  20 0a 0a 42 65 66 6f 72  65 20 73 65 6e 64 69 6e  | ..Before sendin|
00005780  67 20 4d 65 73 73 61 67  65 5f 44 6f 59 6f 75 72  |g Message_DoYour|
00005790  53 74 75 66 66 20 77 69  74 68 20 62 69 74 20 33  |Stuff with bit 3|
000057a0  20 73 65 74 20 74 68 65  20 6c 6f 63 61 6c 20 74  | set the local t|
000057b0  61 73 6b 20 73 68 6f 75  6c 64 0a 62 72 6f 61 64  |ask should.broad|
000057c0  63 61 73 74 20 3c 41 20  48 52 45 46 3d 22 23 64  |cast <A HREF="#d|
000057d0  65 73 65 6c 22 3e 4d 65  73 73 61 67 65 5f 44 65  |esel">Message_De|
000057e0  73 65 6c 65 63 74 3c 2f  41 3e 20 61 73 20 74 68  |select</A> as th|
000057f0  65 20 72 65 6d 6f 74 65  20 74 61 73 6b 20 69 6e  |e remote task in|
00005800  0a 71 75 65 73 74 69 6f  6e 20 77 61 6e 74 73 20  |.question wants |
00005810  74 6f 20 27 6f 77 6e 27  20 74 68 65 20 6f 62 6a  |to 'own' the obj|
00005820  65 63 74 2e 0a 0a 3c 50  3e 0a 0a 3c 53 54 52 4f  |ect...<P>..<STRO|
00005830  4e 47 3e 0a 3c 41 20 4e  41 4d 45 3d 22 64 65 73  |NG>.<A NAME="des|
00005840  65 6c 22 3e 0a 4d 65 73  73 61 67 65 5f 44 65 73  |el">.Message_Des|
00005850  65 6c 65 63 74 0a 3c 2f  41 3e 20 28 26 38 33 34  |elect.</A> (&834|
00005860  38 37 29 20 28 4d 73 67  5f 44 65 73 65 6c 25 29  |87) (Msg_Desel%)|
00005870  0a 3c 2f 53 54 52 4f 4e  47 3e 0a 3c 50 3e 0a 0a  |.</STRONG>.<P>..|
00005880  42 72 6f 61 64 63 61 73  74 20 62 79 20 4c 6f 63  |Broadcast by Loc|
00005890  61 6c 20 74 61 73 6b 20  77 68 65 6e 20 74 68 65  |al task when the|
000058a0  20 6f 62 6a 65 63 74 20  68 61 73 20 62 65 65 6e  | object has been|
000058b0  20 64 65 6c 65 74 65 64  2e 0a 3c 50 3e 0a 0a 54  | deleted..<P>..T|
000058c0  68 65 20 62 6c 6f 63 6b  20 70 6f 69 6e 74 65 64  |he block pointed|
000058d0  20 74 6f 20 62 79 20 52  31 20 63 6f 6e 74 61 69  | to by R1 contai|
000058e0  6e 73 3a 3c 50 3e 0a 0a  3c 50 52 45 3e 0a 52 31  |ns:<P>..<PRE>.R1|
000058f0  2b 32 30 20 20 20 46 69  6c 65 74 79 70 65 20 6f  |+20   Filetype o|
00005900  66 20 6f 62 6a 65 63 74  2e 0a 52 31 2b 32 34 20  |f object..R1+24 |
00005910  20 20 41 64 64 72 65 73  73 20 6f 66 20 6f 62 6a  |  Address of obj|
00005920  65 63 74 20 74 61 67 0a  3c 2f 50 52 45 3e 0a 3c  |ect tag.</PRE>.<|
00005930  50 3e 0a 0a 41 6c 6c 20  54 61 73 6b 73 20 69 6e  |P>..All Tasks in|
00005940  74 65 72 65 73 74 65 64  20 69 6e 20 74 68 65 20  |terested in the |
00005950  6f 62 6a 65 63 74 20 73  68 6f 75 6c 64 20 63 6c  |object should cl|
00005960  6f 73 65 20 74 68 65 69  72 20 77 69 6e 64 6f 77  |ose their window|
00005970  2f 61 62 61 6e 64 6f 6e  20 74 68 65 69 72 0a 6f  |/abandon their.o|
00005980  70 65 72 61 74 69 6f 6e  73 20 61 73 20 74 68 65  |perations as the|
00005990  20 6f 62 6a 65 63 74 20  69 6e 20 71 75 65 73 74  | object in quest|
000059a0  69 6f 6e 20 68 61 73 20  62 65 65 6e 20 72 65 6d  |ion has been rem|
000059b0  6f 76 65 64 20 66 72 6f  6d 20 74 68 65 20 50 43  |oved from the PC|
000059c0  41 20 73 79 73 74 65 6d  0a 28 75 73 75 61 6c 6c  |A system.(usuall|
000059d0  79 20 62 65 63 61 75 73  65 20 69 74 20 68 61 73  |y because it has|
000059e0  20 62 65 65 6e 20 64 65  6c 65 74 65 64 29 2e 20  | been deleted). |
000059f0  4c 6f 63 61 6c 20 74 61  73 6b 73 20 3c 62 3e 6d  |Local tasks <b>m|
00005a00  75 73 74 3c 2f 62 3e 20  67 65 6e 65 72 61 74 65  |ust</b> generate|
00005a10  20 74 68 69 73 0a 6d 65  73 73 61 67 65 20 77 68  | this.message wh|
00005a20  65 6e 20 64 65 6c 65 74  69 6e 67 20 61 6e 20 6f  |en deleting an o|
00005a30  62 6a 65 63 74 2c 20 71  75 69 74 74 69 6e 67 20  |bject, quitting |
00005a40  65 74 63 2e 20 6f 72 20  72 65 6d 6f 74 65 20 74  |etc. or remote t|
00005a50  61 73 6b 73 20 75 73 69  6e 67 20 74 68 65 0a 6f  |asks using the.o|
00005a60  62 6a 65 63 74 20 77 69  6c 6c 20 63 72 61 73 68  |bject will crash|
00005a70  2e 20 49 66 20 74 68 65  20 4c 6f 63 61 6c 20 74  |. If the Local t|
00005a80  61 73 6b 20 69 73 20 75  73 69 6e 67 20 50 43 41  |ask is using PCA|
00005a90  53 75 70 70 6f 72 74 20  66 6f 72 20 74 61 67 20  |Support for tag |
00005aa0  67 65 6e 65 72 61 74 69  6f 6e 0a 69 74 20 73 68  |generation.it sh|
00005ab0  6f 75 6c 64 20 63 61 6c  6c 20 53 57 49 20 50 43  |ould call SWI PC|
00005ac0  41 5f 44 65 6c 65 74 65  41 6e 64 4b 69 6c 6c 20  |A_DeleteAndKill |
00005ad0  77 68 69 63 68 20 77 69  6c 6c 20 64 65 6c 65 74  |which will delet|
00005ae0  65 20 74 68 65 20 74 61  67 20 61 6e 64 20 73 65  |e the tag and se|
00005af0  6e 64 20 74 68 69 73 0a  6d 65 73 73 61 67 65 20  |nd this.message |
00005b00  69 6e 20 6f 6e 65 20 6f  70 65 72 61 74 69 6f 6e  |in one operation|
00005b10  20 62 75 74 20 3c 62 3e  6f 6e 6c 79 3c 2f 62 3e  | but <b>only</b>|
00005b20  20 77 68 65 6e 20 74 68  65 20 6f 62 6a 65 63 74  | when the object|
00005b30  20 72 65 61 6c 6c 79 20  69 73 20 62 65 69 6e 67  | really is being|
00005b40  0a 64 65 6c 65 74 65 64  2e 3c 70 3e 20 4e 6f 74  |.deleted.<p> Not|
00005b50  65 3a 20 54 68 69 73 20  69 6d 70 6c 69 65 73 20  |e: This implies |
00005b60  74 68 61 74 20 74 68 65  20 72 65 6d 6f 74 65 20  |that the remote |
00005b70  74 61 73 6b 2c 20 6f 6e  20 72 65 63 65 69 70 74  |task, on receipt|
00005b80  20 6f 66 20 74 68 69 73  0a 6d 65 73 73 61 67 65  | of this.message|
00005b90  20 3c 62 3e 63 61 6e 6e  6f 74 3c 2f 62 3e 20 72  | <b>cannot</b> r|
00005ba0  65 6c 79 20 6f 6e 20 6d  6f 72 65 20 74 68 61 6e  |ely on more than|
00005bb0  20 74 68 65 20 74 61 67  20 61 64 64 72 65 73 73  | the tag address|
00005bc0  20 61 73 20 61 20 6b 65  79 20 74 6f 20 74 68 65  | as a key to the|
00005bd0  0a 6f 62 6a 65 63 74 2e  20 49 74 20 5f 63 61 6e  |.object. It _can|
00005be0  6e 6f 74 5f 20 61 63 63  65 73 73 20 74 68 65 20  |not_ access the |
00005bf0  6f 62 6a 65 63 74 20 64  61 74 61 20 76 69 61 20  |object data via |
00005c00  74 68 65 20 74 61 67 20  70 61 73 73 65 64 20 61  |the tag passed a|
00005c10  73 20 53 57 49 0a 50 43  41 5f 44 65 6c 65 74 65  |s SWI.PCA_Delete|
00005c20  54 61 67 20 68 61 73 20  61 6c 72 65 61 64 79 20  |Tag has already |
00005c30  62 65 65 6e 20 63 61 6c  6c 65 64 20 28 74 68 65  |been called (the|
00005c40  20 61 64 64 72 65 73 73  20 66 69 65 6c 64 73 20  | address fields |
00005c50  77 69 74 68 69 6e 20 74  68 65 20 74 61 67 0a 77  |within the tag.w|
00005c60  69 6c 6c 20 63 6f 6e 74  61 69 6e 20 2d 31 20 61  |ill contain -1 a|
00005c70  6e 64 20 74 68 65 20 6f  62 6a 65 63 74 20 64 61  |nd the object da|
00005c80  74 61 20 69 74 73 65 6c  66 20 6d 61 79 20 77 65  |ta itself may we|
00005c90  6c 6c 20 68 61 76 65 20  62 65 65 6e 20 64 69 73  |ll have been dis|
00005ca0  63 61 72 64 65 64 29 2e  0a 54 68 69 73 20 69 73  |carded)..This is|
00005cb0  20 75 6e 61 76 6f 69 64  61 62 6c 65 20 77 69 74  | unavoidable wit|
00005cc0  68 6f 75 74 20 61 20 74  77 6f 20 6d 65 73 73 61  |hout a two messa|
00005cd0  67 65 20 28 4d 65 73 73  61 67 65 2f 41 63 6b 29  |ge (Message/Ack)|
00005ce0  20 64 65 73 65 6c 65 63  74 69 6f 6e 20 73 79 73  | deselection sys|
00005cf0  74 65 6d 0a 77 68 69 63  68 20 77 6f 75 6c 64 20  |tem.which would |
00005d00  62 65 20 6d 6f 72 65 20  64 69 66 66 69 63 75 69  |be more difficui|
00005d10  6c 74 20 66 6f 72 20 74  61 73 6b 73 20 74 6f 20  |lt for tasks to |
00005d20  68 61 6e 64 6c 65 2e 20  45 73 70 65 63 69 61 6c  |handle. Especial|
00005d30  6c 79 20 28 61 73 20 69  73 20 6f 66 74 65 6e 0a  |ly (as is often.|
00005d40  74 68 65 20 63 61 73 65  29 20 69 66 20 74 68 65  |the case) if the|
00005d50  20 6c 6f 63 61 6c 20 74  61 73 6b 20 69 73 20 61  | local task is a|
00005d60  62 6f 75 74 20 74 6f 20  71 75 69 74 2e 0a 0a 0a  |bout to quit....|
00005d70  3c 50 3e 0a 0a 0a 3c 53  54 52 4f 4e 47 3e 0a 3c  |<P>...<STRONG>.<|
00005d80  41 20 4e 41 4d 45 3d 22  64 6f 6e 65 22 3e 0a 4d  |A NAME="done">.M|
00005d90  65 73 73 61 67 65 5f 44  6f 6e 65 4d 79 53 74 75  |essage_DoneMyStu|
00005da0  66 66 0a 3c 2f 41 3e 20  28 26 38 33 34 38 38 29  |ff.</A> (&83488)|
00005db0  20 28 4d 73 67 5f 44 6f  6e 65 25 29 0a 3c 2f 53  | (Msg_Done%).</S|
00005dc0  54 52 4f 4e 47 3e 0a 3c  50 3e 0a 0a 42 72 6f 61  |TRONG>.<P>..Broa|
00005dd0  64 63 61 73 74 20 62 79  20 61 20 74 61 73 6b 20  |dcast by a task |
00005de0  77 68 65 6e 20 69 74 20  68 61 73 20 6d 6f 64 69  |when it has modi|
00005df0  66 69 65 64 20 74 68 65  20 6f 62 6a 65 63 74 2e  |fied the object.|
00005e00  20 41 6c 6c 20 74 61 73  6b 73 20 61 63 63 65 73  | All tasks acces|
00005e10  73 69 6e 67 20 74 68 65  0a 6f 62 6a 65 63 74 20  |sing the.object |
00005e20  6f 74 68 65 72 20 74 68  61 6e 20 74 68 65 20 6f  |other than the o|
00005e30  72 69 67 69 6e 61 74 6f  72 20 6f 66 20 74 68 65  |riginator of the|
00005e40  20 6d 65 73 73 61 67 65  20 73 68 6f 75 6c 64 20  | message should |
00005e50  72 65 63 6f 67 6e 69 73  65 20 74 68 69 73 0a 6d  |recognise this.m|
00005e60  65 73 73 61 67 65 20 61  6e 64 20 72 65 64 72 61  |essage and redra|
00005e70  77 20 74 68 65 20 6f 62  6a 65 63 74 2e 0a 0a 3c  |w the object...<|
00005e80  50 3e 0a 0a 54 68 65 20  62 6c 6f 63 6b 20 70 6f  |P>..The block po|
00005e90  69 6e 74 65 64 20 74 6f  20 62 79 20 52 31 20 63  |inted to by R1 c|
00005ea0  6f 6e 74 61 69 6e 73 3a  3c 50 3e 0a 3c 50 52 45  |ontains:<P>.<PRE|
00005eb0  3e 0a 52 31 2b 32 30 20  20 20 30 0a 52 31 2b 32  |>.R1+20   0.R1+2|
00005ec0  34 20 20 20 41 64 64 72  65 73 73 20 6f 66 20 6f  |4   Address of o|
00005ed0  62 6a 65 63 74 20 74 61  67 0a 0a 3c 2f 50 52 45  |bject tag..</PRE|
00005ee0  3e 3c 50 3e 0a 0a 55 73  65 20 74 68 69 73 20 6d  |><P>..Use this m|
00005ef0  65 73 73 61 67 65 20 66  6f 72 20 27 77 68 6f 6c  |essage for 'whol|
00005f00  65 20 6f 62 6a 65 63 74  20 63 68 61 6e 67 65 64  |e object changed|
00005f10  27 20 6f 70 65 72 61 74  69 6f 6e 73 20 77 68 69  |' operations whi|
00005f20  63 68 20 64 6f 20 6e 6f  74 20 69 6e 76 6f 6c 76  |ch do not involv|
00005f30  65 0a 63 68 61 6e 67 65  73 20 74 6f 20 74 68 65  |e.changes to the|
00005f40  20 6f 62 6a 65 63 74 27  73 20 62 61 73 69 63 20  | object's basic |
00005f50  73 74 72 75 63 74 75 72  65 20 28 45 67 2e 20 69  |structure (Eg. i|
00005f60  6d 61 67 65 20 66 69 6c  74 65 72 20 6f 66 20 73  |mage filter of s|
00005f70  70 72 69 74 65 29 2e 0a  0a 3c 50 3e 0a 0a 4e 6f  |prite)...<P>..No|
00005f80  74 65 3a 20 52 65 63 65  70 69 74 20 6f 66 20 74  |te: Recepit of t|
00005f90  68 69 73 20 6d 65 73 73  61 67 65 20 62 79 20 74  |his message by t|
00005fa0  68 65 20 4c 6f 63 61 6c  20 74 61 73 6b 20 73 68  |he Local task sh|
00005fb0  6f 75 6c 64 0a 6e 6f 74  20 62 65 20 74 61 6b 65  |ould.not be take|
00005fc0  6e 20 61 73 20 61 6e 20  69 6e 64 69 63 61 74 69  |n as an indicati|
00005fd0  6f 6e 20 74 68 61 74 20  74 68 65 20 72 65 6d 6f  |on that the remo|
00005fe0  74 65 20 74 61 73 6b 20  69 73 20 6e 6f 20 6c 6f  |te task is no lo|
00005ff0  6e 67 65 72 20 69 6e 74  65 72 65 73 74 65 64 0a  |nger interested.|
00006000  69 6e 20 69 74 2e 20 54  68 61 74 20 69 73 20 77  |in it. That is w|
00006010  68 61 74 20 3c 41 20 48  52 45 46 3d 22 23 75 6e  |hat <A HREF="#un|
00006020  68 6f 6f 6b 22 3e 4d 65  73 73 61 67 65 5f 55 6e  |hook">Message_Un|
00006030  68 6f 6f 6b 4d 65 3c 2f  41 3e 20 69 73 20 66 6f  |hookMe</A> is fo|
00006040  72 2e 0a 0a 3c 70 3e 0a  0a 3c 53 54 52 4f 4e 47  |r...<p>..<STRONG|
00006050  3e 0a 3c 41 20 4e 41 4d  45 3d 22 63 68 61 6e 67  |>.<A NAME="chang|
00006060  65 64 22 3e 0a 4d 65 73  73 61 67 65 5f 43 68 61  |ed">.Message_Cha|
00006070  6e 67 65 64 0a 3c 2f 41  3e 20 28 26 38 33 34 38  |nged.</A> (&8348|
00006080  41 29 20 28 4d 73 67 5f  43 68 61 6e 67 65 64 25  |A) (Msg_Changed%|
00006090  29 0a 3c 2f 53 54 52 4f  4e 47 3e 0a 3c 50 3e 0a  |).</STRONG>.<P>.|
000060a0  0a 42 72 6f 61 64 63 61  73 74 20 62 79 20 4c 6f  |.Broadcast by Lo|
000060b0  63 61 6c 20 6f 72 20 52  65 6d 6f 74 65 20 74 61  |cal or Remote ta|
000060c0  73 6b 20 77 68 65 6e 20  74 68 65 20 6f 62 6a 65  |sk when the obje|
000060d0  63 74 20 68 61 73 20 63  68 61 6e 67 65 64 20 28  |ct has changed (|
000060e0  65 69 74 68 65 72 20 69  6e 0a 73 69 7a 65 20 6f  |either in.size o|
000060f0  72 20 69 74 73 20 64 65  74 61 69 6c 73 29 2e 20  |r its details). |
00006100  54 61 73 6b 20 73 68 6f  75 6c 64 20 61 63 74 20  |Task should act |
00006110  61 73 20 69 66 20 69 74  20 68 61 64 20 67 6f 74  |as if it had got|
00006120  20 61 20 6e 65 77 20 44  6f 59 6f 75 72 53 74 75  | a new DoYourStu|
00006130  66 66 0a 6d 65 73 73 61  67 65 2e 0a 0a 3c 50 3e  |ff.message...<P>|
00006140  0a 0a 42 72 6f 61 64 63  61 73 74 20 62 79 20 52  |..Broadcast by R|
00006150  65 6d 6f 74 65 20 74 61  73 6b 20 61 66 74 65 72  |emote task after|
00006160  20 69 74 20 68 61 73 20  63 68 61 6e 67 65 64 20  | it has changed |
00006170  74 68 65 20 6f 62 6a 65  63 74 27 73 20 73 69 7a  |the object's siz|
00006180  65 2e 20 4c 6f 63 61 6c  20 61 6e 64 0a 6f 74 68  |e. Local and.oth|
00006190  65 72 20 69 6e 74 65 72  65 73 74 65 64 20 52 65  |er interested Re|
000061a0  6d 6f 74 65 20 74 61 73  6b 73 20 77 69 6c 6c 20  |mote tasks will |
000061b0  72 65 2d 72 65 61 64 20  74 68 65 20 6f 62 6a 65  |re-read the obje|
000061c0  63 74 27 73 20 64 65 74  61 69 6c 73 20 61 6e 64  |ct's details and|
000061d0  20 72 65 64 72 61 77 0a  74 68 65 20 6f 62 6a 65  | redraw.the obje|
000061e0  63 74 2e 3c 50 3e 0a 0a  0a 54 68 65 20 62 6c 6f  |ct.<P>...The blo|
000061f0  63 6b 20 70 6f 69 6e 74  65 64 20 74 6f 20 62 79  |ck pointed to by|
00006200  20 52 31 20 63 6f 6e 74  61 69 6e 73 3a 3c 50 3e  | R1 contains:<P>|
00006210  0a 0a 3c 50 52 45 3e 0a  52 31 2b 32 30 20 20 20  |..<PRE>.R1+20   |
00006220  46 69 6c 65 74 79 70 65  20 6f 66 20 6f 62 6a 65  |Filetype of obje|
00006230  63 74 0a 52 31 2b 32 34  20 20 20 41 64 64 72 65  |ct.R1+24   Addre|
00006240  73 73 20 6f 66 20 6f 62  6a 65 63 74 20 74 61 67  |ss of object tag|
00006250  0a 52 31 2b 32 38 20 20  20 72 65 73 65 72 76 65  |.R1+28   reserve|
00006260  64 20 2d 20 30 0a 52 31  2b 33 32 20 20 20 53 74  |d - 0.R1+32   St|
00006270  72 69 6e 67 2e 20 4e 65  77 20 6e 61 6d 65 20 6f  |ring. New name o|
00006280  66 20 6f 62 6a 65 63 74  20 6f 72 20 7a 65 72 6f  |f object or zero|
00006290  20 66 6f 72 20 6e 6f 20  63 68 61 6e 67 65 2e 0a  | for no change..|
000062a0  0a 3c 2f 50 52 45 3e 3c  50 3e 0a 0a 4e 6f 74 65  |.</PRE><P>..Note|
000062b0  3a 20 4e 6f 74 68 69 6e  67 20 61 62 6f 75 74 20  |: Nothing about |
000062c0  74 68 65 20 73 74 61 6e  64 61 72 64 20 70 72 65  |the standard pre|
000062d0  76 65 6e 74 73 20 74 68  65 20 6f 62 6a 65 63 74  |vents the object|
000062e0  20 63 68 61 6e 67 69 6e  67 20 74 79 70 65 20 28  | changing type (|
000062f0  65 67 20 66 72 6f 6d 0a  73 70 72 69 74 65 20 74  |eg from.sprite t|
00006300  6f 20 44 72 61 77 66 69  6c 65 29 2e 20 4f 6e 20  |o Drawfile). On |
00006310  72 65 63 65 69 70 74 20  6f 66 20 74 68 69 73 20  |receipt of this |
00006320  6d 65 73 73 61 67 65 20  70 6c 65 61 73 65 20 63  |message please c|
00006330  68 65 63 6b 20 74 68 65  20 66 69 6c 65 74 79 70  |heck the filetyp|
00006340  65 0a 66 69 65 6c 64 20  61 73 20 77 65 6c 6c 20  |e.field as well |
00006350  61 73 20 61 6c 6c 20 6e  65 63 65 73 73 61 72 79  |as all necessary|
00006360  20 61 73 70 65 63 74 73  20 6f 66 20 74 68 65 20  | aspects of the |
00006370  6f 62 6a 65 63 74 27 73  20 64 61 74 61 20 73 74  |object's data st|
00006380  72 75 63 74 75 72 65 2e  20 49 66 0a 74 68 65 20  |ructure. If.the |
00006390  6f 62 6a 65 63 74 20 69  73 20 6e 6f 74 20 74 6f  |object is not to|
000063a0  20 61 20 52 65 6d 6f 74  65 20 74 61 73 6b 27 73  | a Remote task's|
000063b0  20 6c 69 6b 69 6e 67 20  69 74 20 73 68 6f 75 6c  | liking it shoul|
000063c0  64 20 73 65 6e 64 20 4d  65 73 73 61 67 65 5f 55  |d send Message_U|
000063d0  6e 48 6f 6f 6b 20 61 6e  64 0a 64 65 6c 69 6e 6b  |nHook and.delink|
000063e0  20 71 75 69 65 74 6c 79  2e 0a 0a 0a 3c 50 3e 0a  | quietly....<P>.|
000063f0  0a 3c 53 54 52 4f 4e 47  3e 0a 3c 41 20 4e 41 4d  |.<STRONG>.<A NAM|
00006400  45 3d 22 72 65 73 69 7a  65 22 3e 0a 4d 65 73 73  |E="resize">.Mess|
00006410  61 67 65 5f 52 65 73 69  7a 65 52 65 71 75 65 73  |age_ResizeReques|
00006420  74 0a 3c 2f 41 3e 20 20  28 26 38 33 34 38 42 29  |t.</A>  (&8348B)|
00006430  20 28 4d 73 67 5f 52 65  73 69 7a 65 25 29 0a 3c  | (Msg_Resize%).<|
00006440  2f 53 54 52 4f 4e 47 3e  3c 50 3e 0a 0a 0a 53 65  |/STRONG><P>...Se|
00006450  6e 74 20 62 79 20 52 65  6d 6f 74 65 20 74 61 73  |nt by Remote tas|
00006460  6b 20 74 6f 20 4c 6f 63  61 6c 20 28 74 61 73 6b  |k to Local (task|
00006470  20 68 61 6e 64 6c 65 20  69 6e 20 52 31 2b 34 20  | handle in R1+4 |
00006480  6f 66 20 44 6f 59 6f 75  72 53 74 75 66 66 20 6d  |of DoYourStuff m|
00006490  65 73 73 61 67 65 29 2e  0a 49 66 20 74 68 65 20  |essage)..If the |
000064a0  4c 6f 63 61 6c 20 74 61  73 6b 20 66 61 69 6c 73  |Local task fails|
000064b0  20 74 6f 20 64 65 61 6c  20 73 75 63 63 65 73 73  | to deal success|
000064c0  66 75 6c 6c 79 20 69 74  20 77 69 6c 6c 20 63 6c  |fully it will cl|
000064d0  61 69 6d 20 74 68 65 20  6d 65 73 73 61 67 65 2e  |aim the message.|
000064e0  0a 0a 3c 50 3e 0a 0a 0a  54 68 65 20 62 6c 6f 63  |..<P>...The bloc|
000064f0  6b 20 70 6f 69 6e 74 65  64 20 74 6f 20 62 79 20  |k pointed to by |
00006500  52 31 20 63 6f 6e 74 61  69 6e 73 3a 3c 50 3e 0a  |R1 contains:<P>.|
00006510  3c 50 52 45 3e 0a 52 31  2b 32 30 20 20 20 30 0a  |<PRE>.R1+20   0.|
00006520  52 31 2b 32 34 20 20 20  41 64 64 72 65 73 73 20  |R1+24   Address |
00006530  6f 66 20 6f 62 6a 65 63  74 20 74 61 67 0a 52 31  |of object tag.R1|
00006540  2b 32 38 20 20 20 72 65  73 65 72 76 65 64 20 2d  |+28   reserved -|
00006550  20 30 0a 52 31 2b 33 32  20 20 20 4e 65 77 20 73  | 0.R1+32   New s|
00006560  69 7a 65 2e 20 54 6f 74  61 6c 20 73 69 7a 65 20  |ize. Total size |
00006570  6f 66 20 6f 62 6a 65 63  74 20 73 74 72 75 63 74  |of object struct|
00006580  75 72 65 0a 20 20 20 20  20 20 20 20 28 69 6e 63  |ure.        (inc|
00006590  6c 75 64 69 6e 67 20 68  65 61 64 65 72 2c 20 6f  |luding header, o|
000065a0  66 66 73 65 74 20 74 6f  20 62 61 73 65 20 65 74  |ffset to base et|
000065b0  63 2e 29 20 69 66 20 66  6c 61 67 73 20 62 31 0a  |c.) if flags b1.|
000065c0  20 20 20 20 20 20 20 20  63 6c 65 61 72 20 6f 74  |        clear ot|
000065d0  68 65 72 77 69 73 65 20  6e 65 77 20 73 69 7a 65  |herwise new size|
000065e0  20 6f 66 20 6f 62 6a 65  63 74 20 69 74 73 65 6c  | of object itsel|
000065f0  66 2e 0a 52 31 2b 33 36  20 20 20 46 6c 61 67 73  |f..R1+36   Flags|
00006600  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00006610  62 30 20 73 65 74 20 27  52 65 73 69 7a 65 20 61  |b0 set 'Resize a|
00006620  73 73 6f 63 69 61 74 65  64 20 6f 62 6a 65 63 74  |ssociated object|
00006630  73 20 61 73 20 77 65 6c  6c 27 0a 20 20 20 20 20  |s as well'.     |
00006640  20 20 20 20 20 20 20 20  20 20 62 31 20 73 65 74  |          b1 set|
00006650  20 27 4e 65 77 20 53 69  7a 65 20 69 73 20 66 6f  | 'New Size is fo|
00006660  72 20 6f 62 6a 65 63 74  20 61 6c 6f 6e 65 20 2d  |r object alone -|
00006670  20 64 6f 65 73 20 6e 6f  74 20 69 6e 63 6c 75 64  | does not includ|
00006680  65 20 68 65 61 64 65 72  2e 27 0a 3c 2f 50 52 45  |e header.'.</PRE|
00006690  3e 0a 3c 50 3e 0a 0a 49  66 20 74 68 65 20 4c 6f  |>.<P>..If the Lo|
000066a0  63 61 6c 20 74 61 73 6b  20 73 75 63 63 65 65 64  |cal task succeed|
000066b0  73 20 74 68 65 6e 20 69  74 20 77 69 6c 6c 20 73  |s then it will s|
000066c0  65 6e 64 20 3c 41 0a 48  52 45 46 3d 22 23 72 65  |end <A.HREF="#re|
000066d0  73 69 7a 65 61 63 6b 22  3e 4d 65 73 73 61 67 65  |sizeack">Message|
000066e0  5f 52 65 73 69 7a 65 41  63 6b 3c 2f 41 3e 20 28  |_ResizeAck</A> (|
000066f0  62 61 73 69 63 61 6c 6c  79 2c 20 63 6f 70 79 20  |basically, copy |
00006700  52 31 2b 38 20 74 6f 20  52 31 2b 31 32 2c 20 70  |R1+8 to R1+12, p|
00006710  75 74 0a 4d 65 73 73 61  67 65 20 52 65 73 69 7a  |ut.Message Resiz|
00006720  65 41 63 6b 20 69 6e 74  6f 20 52 31 2b 31 36 2c  |eAck into R1+16,|
00006730  20 75 70 64 61 74 65 20  52 31 2b 33 32 20 61 6e  | update R1+32 an|
00006740  64 20 72 65 74 75 72 6e  20 74 6f 20 73 65 6e 64  |d return to send|
00006750  65 72 29 2e 20 4f 6e 20  72 65 63 65 69 70 74 0a  |er). On receipt.|
00006760  6f 66 20 52 65 73 69 7a  65 41 63 6b 20 6d 65 73  |of ResizeAck mes|
00006770  73 61 67 65 20 74 68 65  20 73 65 6e 64 65 72 20  |sage the sender |
00006780  6f 66 20 52 65 73 69 7a  65 52 65 71 75 65 73 74  |of ResizeRequest|
00006790  20 73 68 6f 75 6c 64 20  6d 6f 64 69 66 79 20 74  | should modify t|
000067a0  68 65 20 6f 62 6a 65 63  74 0a 61 70 70 72 6f 70  |he object.approp|
000067b0  72 69 61 74 65 6c 79 20  28 66 6f 72 20 65 78 61  |riately (for exa|
000067c0  6d 70 6c 65 2c 20 61 64  64 69 6e 67 20 72 6f 77  |mple, adding row|
000067d0  73 2f 63 6f 6c 75 6d 6e  73 20 74 6f 20 61 20 73  |s/columns to a s|
000067e0  70 72 69 74 65 29 2e 0a  0a 3c 50 3e 0a 0a 3c 42  |prite)...<P>..<B|
000067f0  3e 0a 4e 6f 74 65 73 3a  0a 3c 2f 42 3e 3c 50 3e  |>.Notes:.</B><P>|
00006800  0a 0a 59 6f 75 20 6d 75  73 74 20 62 65 20 70 72  |..You must be pr|
00006810  65 70 61 72 65 64 20 66  6f 72 20 74 68 65 20 72  |epared for the r|
00006820  65 73 69 7a 65 20 72 65  71 75 65 73 74 20 74 6f  |esize request to|
00006830  20 66 61 69 6c 20 69 6e  20 77 68 69 63 68 20 63  | fail in which c|
00006840  61 73 65 20 69 74 20 69  73 20 74 68 65 0a 72 65  |ase it is the.re|
00006850  73 70 6f 6e 73 69 62 69  6c 69 74 79 20 6f 66 20  |sponsibility of |
00006860  74 68 65 20 4c 6f 63 61  6c 20 74 61 73 6b 20 74  |the Local task t|
00006870  6f 20 72 65 70 6f 72 74  20 74 6f 20 74 68 65 20  |o report to the |
00006880  75 73 65 72 20 61 6e 64  20 74 68 65 20 52 65 6d  |user and the Rem|
00006890  6f 74 65 20 74 61 73 6b  0a 74 6f 20 63 6f 6e 74  |ote task.to cont|
000068a0  69 6e 75 65 20 73 61 66  65 6c 79 2e 0a 0a 3c 50  |inue safely...<P|
000068b0  3e 0a 0a 0a 49 66 20 74  68 65 20 52 65 73 69 7a  |>...If the Resiz|
000068c0  65 41 63 6b 20 6d 65 73  73 61 67 65 20 72 65 74  |eAck message ret|
000068d0  75 72 6e 73 20 74 6f 20  61 20 52 65 6d 6f 74 65  |urns to a Remote|
000068e0  20 74 61 73 6b 20 79 6f  75 20 6d 75 73 74 20 63  | task you must c|
000068f0  68 65 63 6b 20 74 68 61  74 20 74 68 65 0a 66 69  |heck that the.fi|
00006900  65 6c 64 20 69 6e 20 52  31 2b 31 32 20 69 73 20  |eld in R1+12 is |
00006910  65 71 75 61 6c 20 74 6f  20 74 68 65 20 4d 79 52  |equal to the MyR|
00006920  65 66 20 67 65 6e 65 72  61 74 65 64 20 62 79 20  |ef generated by |
00006930  74 68 65 20 52 65 73 69  7a 65 20 6d 65 73 73 61  |the Resize messa|
00006940  67 65 20 79 6f 75 0a 73  65 6e 74 20 74 6f 20 65  |ge you.sent to e|
00006950  6e 73 75 72 65 20 74 68  61 74 20 74 68 65 20 52  |nsure that the R|
00006960  65 73 69 7a 65 41 63 6b  20 69 73 20 66 6f 72 20  |esizeAck is for |
00006970  74 68 65 20 6f 62 6a 65  63 74 20 79 6f 75 20 68  |the object you h|
00006980  61 76 65 20 72 65 71 75  65 73 74 65 64 20 62 65  |ave requested be|
00006990  0a 72 65 73 69 7a 65 64  2e 20 49 66 20 69 74 20  |.resized. If it |
000069a0  69 73 2c 20 65 6e 73 75  72 65 20 74 68 61 74 20  |is, ensure that |
000069b0  74 68 65 20 6f 62 6a 65  63 74 20 69 73 20 69 6e  |the object is in|
000069c0  20 61 20 72 65 6e 64 65  72 61 62 6c 65 20 73 74  | a renderable st|
000069d0  61 74 65 20 62 65 66 6f  72 65 0a 74 68 65 20 6e  |ate before.the n|
000069e0  65 78 74 20 57 69 6d 70  5f 50 6f 6c 6c 20 62 79  |ext Wimp_Poll by|
000069f0  20 75 70 64 61 74 69 6e  67 20 74 68 65 20 72 65  | updating the re|
00006a00  6c 65 76 61 6e 74 20 70  61 72 74 73 20 6f 66 20  |levant parts of |
00006a10  74 68 65 20 6f 62 6a 65  63 74 27 73 20 69 6e 74  |the object's int|
00006a20  65 72 6e 61 6c 0a 64 61  74 61 20 73 74 72 75 63  |ernal.data struc|
00006a30  74 75 72 65 2e 0a 0a 3c  50 3e 0a 0a 0a 54 68 65  |ture...<P>...The|
00006a40  20 6c 6f 63 61 6c 20 74  61 73 6b 27 73 20 6f 6e  | local task's on|
00006a50  6c 79 20 6d 6f 64 69 66  69 63 61 74 69 6f 6e 20  |ly modification |
00006a60  74 6f 20 74 68 65 20 64  61 74 61 20 61 66 74 65  |to the data afte|
00006a70  72 20 61 20 52 65 73 69  7a 65 20 69 73 20 74 6f  |r a Resize is to|
00006a80  20 77 72 69 74 65 20 6e  65 77 0a 73 69 7a 65 20  | write new.size |
00006a90  66 69 65 6c 64 73 20 77  68 65 72 65 20 61 70 70  |fields where app|
00006aa0  72 6f 70 72 69 61 74 65  20 61 6e 64 20 74 6f 20  |ropriate and to |
00006ab0  75 70 64 61 74 65 20 74  68 65 20 6f 62 6a 65 63  |update the objec|
00006ac0  74 27 73 20 74 61 67 20  61 64 64 72 65 73 73 20  |t's tag address |
00006ad0  66 69 65 6c 64 73 0a 69  66 20 74 68 65 20 6f 62  |fields.if the ob|
00006ae0  6a 65 63 74 20 6d 6f 76  65 73 2e 20 46 6f 72 20  |ject moves. For |
00006af0  73 70 72 69 74 65 73 20  74 68 65 20 6e 65 77 20  |sprites the new |
00006b00  74 6f 74 61 6c 20 61 72  65 61 20 73 69 7a 65 20  |total area size |
00006b10  73 68 6f 75 6c 64 20 62  65 20 77 72 69 74 74 65  |should be writte|
00006b20  6e 0a 69 6e 74 6f 20 27  42 61 73 65 20 6f 66 20  |n.into 'Base of |
00006b30  64 61 74 61 27 2b 30 20  2d 20 69 74 20 64 6f 65  |data'+0 - it doe|
00006b40  73 20 6e 6f 74 20 6b 6e  6f 77 20 77 68 61 74 20  |s not know what |
00006b50  74 68 65 20 52 65 6d 6f  74 65 20 74 61 73 6b 20  |the Remote task |
00006b60  69 73 20 67 6f 69 6e 67  20 74 6f 20 64 6f 0a 77  |is going to do.w|
00006b70  69 74 68 20 74 68 65 20  73 70 72 69 74 65 20 61  |ith the sprite a|
00006b80  6e 64 20 74 68 65 72 65  66 6f 72 65 20 63 61 6e  |nd therefore can|
00006b90  6e 6f 74 20 6d 61 6b 65  20 61 6e 79 20 6f 74 68  |not make any oth|
00006ba0  65 72 20 6d 6f 64 69 66  69 63 61 74 69 6f 6e 73  |er modifications|
00006bb0  20 74 6f 20 74 68 65 0a  64 61 74 61 2e 0a 0a 3c  | to the.data...<|
00006bc0  50 3e 0a 0a 46 6f 72 20  64 61 74 61 20 74 79 70  |P>..For data typ|
00006bd0  65 73 20 77 68 69 63 68  20 64 6f 20 6e 6f 74 20  |es which do not |
00006be0  73 74 6f 72 65 20 73 69  7a 65 20 77 69 74 68 69  |store size withi|
00006bf0  6e 20 74 68 65 69 72 20  64 61 74 61 20 73 74 72  |n their data str|
00006c00  75 63 74 75 72 65 20 74  68 65 6e 20 74 68 65 0a  |ucture then the.|
00006c10  6c 65 6e 67 74 68 20 66  69 65 6c 64 20 6f 66 20  |length field of |
00006c20  74 68 65 20 74 61 67 20  73 68 6f 75 6c 64 20 61  |the tag should a|
00006c30  6c 73 6f 20 62 65 20 6d  6f 64 69 66 69 65 64 20  |lso be modified |
00006c40  28 61 6c 6f 6e 67 20 77  69 74 68 20 74 68 65 20  |(along with the |
00006c50  61 64 64 72 65 73 73 0a  66 69 65 6c 64 73 20 69  |address.fields i|
00006c60  66 20 74 68 65 20 6f 62  6a 65 63 74 20 68 61 73  |f the object has|
00006c70  20 74 6f 20 62 65 20 6d  6f 76 65 64 29 2e 0a 0a  | to be moved)...|
00006c80  3c 50 3e 0a 0a 41 66 74  65 72 20 6d 6f 64 69 66  |<P>..After modif|
00006c90  79 69 6e 67 20 74 68 65  20 6f 62 6a 65 63 74 20  |ying the object |
00006ca0  74 68 65 20 52 65 6d 6f  74 65 20 74 61 73 6b 20  |the Remote task |
00006cb0  6d 75 73 74 20 62 72 6f  61 64 63 61 73 74 20 3c  |must broadcast <|
00006cc0  41 0a 48 52 45 46 3d 22  23 63 68 61 6e 67 65 64  |A.HREF="#changed|
00006cd0  22 3e 4d 65 73 73 61 67  65 5f 43 68 61 6e 67 65  |">Message_Change|
00006ce0  64 3c 2f 41 3e 2e 0a 0a  3c 50 3e 0a 0a 43 6f 6d  |d</A>...<P>..Com|
00006cf0  70 6f 73 69 74 69 6f 6e  20 77 69 6c 6c 20 72 65  |position will re|
00006d00  61 64 20 62 69 74 20 7a  65 72 6f 20 6f 66 20 74  |ad bit zero of t|
00006d10  68 65 20 66 6c 61 67 73  20 77 6f 72 64 2e 20 49  |he flags word. I|
00006d20  66 20 74 68 69 73 20 62  69 74 20 69 73 20 73 65  |f this bit is se|
00006d30  74 2c 20 69 74 20 77 69  6c 6c 0a 72 65 73 69 7a  |t, it will.resiz|
00006d40  65 20 6d 61 73 6b 73 20  61 73 73 6f 63 69 61 74  |e masks associat|
00006d50  65 64 20 77 69 74 68 20  74 68 65 20 73 70 72 69  |ed with the spri|
00006d60  74 65 20 69 6e 20 71 75  65 73 74 69 6f 6e 20 61  |te in question a|
00006d70  73 20 77 65 6c 6c 2e 20  54 68 65 20 61 6d 6f 75  |s well. The amou|
00006d80  6e 74 20 62 79 0a 77 68  69 63 68 20 6d 61 73 6b  |nt by.which mask|
00006d90  73 20 77 69 6c 6c 20 62  65 20 72 65 73 69 7a 65  |s will be resize|
00006da0  64 20 69 73 20 63 61 6c  63 75 6c 61 74 65 64 20  |d is calculated |
00006db0  66 72 6f 6d 20 74 68 65  20 72 65 73 69 7a 65 2d  |from the resize-|
00006dc0  72 65 71 75 65 73 74 20  66 6f 72 0a 74 68 65 20  |request for.the |
00006dd0  73 70 72 69 74 65 20 69  74 73 65 6c 66 2e 20 4f  |sprite itself. O|
00006de0  74 68 65 72 20 61 70 70  6c 69 63 61 74 69 6f 6e  |ther application|
00006df0  73 20 63 61 6e 20 69 67  6e 6f 72 65 20 6f 72 20  |s can ignore or |
00006e00  61 63 74 20 6f 6e 20 74  68 69 73 20 62 69 74 20  |act on this bit |
00006e10  61 73 20 74 68 65 79 0a  77 69 73 68 2e 20 54 68  |as they.wish. Th|
00006e20  65 20 74 61 73 6b 20 77  68 69 63 68 20 72 65 71  |e task which req|
00006e30  75 65 73 74 65 64 20 74  68 65 20 72 65 73 69 7a  |uested the resiz|
00006e40  65 20 6d 75 73 74 20 62  65 20 61 62 6c 65 20 74  |e must be able t|
00006e50  6f 20 68 61 6e 64 6c 65  20 65 69 74 68 65 72 0a  |o handle either.|
00006e60  61 63 74 69 6f 6e 2e 0a  0a 3c 50 3e 0a 42 69 74  |action...<P>.Bit|
00006e70  20 6f 6e 65 20 6f 66 20  74 68 65 20 66 6c 61 67  | one of the flag|
00006e80  73 20 77 6f 72 64 20 69  73 20 69 6e 74 65 6e 64  |s word is intend|
00006e90  65 64 20 74 6f 20 66 61  63 69 6c 69 74 61 74 65  |ed to facilitate|
00006ea0  20 74 68 65 20 72 65 73  69 7a 69 6e 67 20 6f 66  | the resizing of|
00006eb0  20 70 61 74 68 73 0a 69  6e 20 44 72 61 77 66 69  | paths.in Drawfi|
00006ec0  6c 65 73 20 61 6e 64 20  73 69 6d 69 6c 61 72 20  |les and similar |
00006ed0  64 61 74 61 20 73 74 72  75 63 74 75 72 65 73 20  |data structures |
00006ee0  75 6e 64 65 72 20 74 68  65 20 50 43 41 20 74 68  |under the PCA th|
00006ef0  6f 75 67 68 20 6e 6f 20  63 6f 64 65 20 68 61 73  |ough no code has|
00006f00  20 62 65 65 6e 0a 77 72  69 74 74 65 6e 20 74 6f  | been.written to|
00006f10  20 64 6f 20 74 68 69 73  20 79 65 74 2e 0a 3c 70  | do this yet..<p|
00006f20  3e 0a 0a 3c 48 33 3e 0a  52 65 73 69 7a 65 20 53  |>..<H3>.Resize S|
00006f30  75 6d 6d 61 72 79 0a 0a  3c 2f 48 33 3e 3c 50 3e  |ummary..</H3><P>|
00006f40  0a 0a 54 68 69 73 20 69  73 20 77 68 61 74 20 79  |..This is what y|
00006f50  6f 75 20 64 6f 20 74 6f  20 63 68 61 6e 67 65 20  |ou do to change |
00006f60  74 68 65 20 73 69 7a 65  20 6f 66 20 61 6e 20 6f  |the size of an o|
00006f70  62 6a 65 63 74 20 79 6f  75 20 61 72 65 20 65 64  |bject you are ed|
00006f80  69 74 69 6e 67 3a 3c 50  3e 0a 0a 3c 65 6d 3e 46  |iting:<P>..<em>F|
00006f90  72 6f 6d 20 61 20 52 65  6d 6f 74 65 20 74 61 73  |rom a Remote tas|
00006fa0  6b 27 73 20 70 6f 69 6e  74 20 6f 66 20 76 69 65  |k's point of vie|
00006fb0  77 3a 3c 2f 65 6d 3e 3c  50 3e 0a 0a 53 65 6e 64  |w:</em><P>..Send|
00006fc0  20 3c 41 20 48 52 45 46  3d 22 23 72 65 73 69 7a  | <A HREF="#resiz|
00006fd0  65 22 3e 4d 65 73 73 61  67 65 5f 52 65 73 69 7a  |e">Message_Resiz|
00006fe0  65 52 65 71 75 65 73 74  3c 2f 41 3e 20 61 6e 64  |eRequest</A> and|
00006ff0  20 6b 65 65 70 20 6d 79  72 65 66 20 67 65 6e 65  | keep myref gene|
00007000  72 61 74 65 64 0a 3e 66  72 6f 6d 20 74 68 65 20  |rated.>from the |
00007010  6d 65 73 73 61 67 65 2e  20 4f 6e 20 72 65 63 65  |message. On rece|
00007020  69 70 74 20 6f 66 20 52  65 73 69 7a 65 41 63 6b  |ipt of ResizeAck|
00007030  20 63 68 65 63 6b 20 6d  79 72 65 66 2c 20 6d 6f  | check myref, mo|
00007040  64 69 66 79 20 6f 62 6a  65 63 74 20 64 61 74 61  |dify object data|
00007050  0a 61 6e 64 20 62 72 6f  61 64 63 61 73 74 20 3c  |.and broadcast <|
00007060  41 20 48 52 45 46 3d 22  23 63 68 61 6e 67 65 64  |A HREF="#changed|
00007070  22 3e 4d 65 73 73 61 67  65 5f 43 68 61 6e 67 65  |">Message_Change|
00007080  64 3c 2f 41 3e 2e 0a 0a  3c 50 3e 0a 0a 3c 65 6d  |d</A>...<P>..<em|
00007090  3e 46 72 6f 6d 20 74 68  65 20 4c 6f 63 61 6c 20  |>From the Local |
000070a0  74 61 73 6b 27 73 20 70  6f 69 6e 74 20 6f 66 20  |task's point of |
000070b0  76 69 65 77 3a 3c 2f 65  6d 3e 3c 50 3e 0a 0a 4f  |view:</em><P>..O|
000070c0  6e 20 72 65 63 65 69 70  74 20 6f 66 20 3c 41 20  |n receipt of <A |
000070d0  48 52 45 46 3d 22 23 72  65 73 69 7a 65 22 3e 4d  |HREF="#resize">M|
000070e0  65 73 73 61 67 65 5f 52  65 73 69 7a 65 52 65 71  |essage_ResizeReq|
000070f0  75 65 73 74 3c 2f 41 3e  20 72 65 73 69 7a 65 20  |uest</A> resize |
00007100  6f 62 6a 65 63 74 20 69  66 0a 70 6f 73 73 69 62  |object if.possib|
00007110  6c 65 2c 20 75 70 64 61  74 65 20 74 68 65 20 6f  |le, update the o|
00007120  62 6a 65 63 74 73 20 74  61 67 20 61 6e 63 68 6f  |bjects tag ancho|
00007130  72 73 20 61 6e 64 20 73  65 6e 64 20 52 65 73 69  |rs and send Resi|
00007140  7a 65 41 63 6b 20 6f 74  68 65 72 77 69 73 65 20  |zeAck otherwise |
00007150  63 6c 61 69 6d 0a 74 68  65 20 6d 65 73 73 61 67  |claim.the messag|
00007160  65 20 61 6e 64 20 72 65  70 6f 72 74 20 61 6e 20  |e and report an |
00007170  65 72 72 6f 72 20 74 6f  20 75 73 65 72 2e 0a 0a  |error to user...|
00007180  3c 50 3e 0a 0a 3c 65 6d  3e 42 6f 74 68 20 52 65  |<P>..<em>Both Re|
00007190  6d 6f 74 65 20 61 6e 64  20 4c 6f 63 61 6c 20 74  |mote and Local t|
000071a0  61 73 6b 73 3a 3c 2f 65  6d 3e 3c 50 3e 0a 0a 4f  |asks:</em><P>..O|
000071b0  6e 20 72 65 63 65 69 70  74 20 6f 66 20 3c 41 20  |n receipt of <A |
000071c0  48 52 45 46 3d 22 23 63  68 61 6e 67 65 64 22 3e  |HREF="#changed">|
000071d0  4d 65 73 73 61 67 65 5f  43 68 61 6e 67 65 64 3c  |Message_Changed<|
000071e0  2f 41 3e 20 72 65 2d 72  65 61 64 20 74 68 65 20  |/A> re-read the |
000071f0  6f 62 6a 65 63 74 0a 68  65 61 64 65 72 20 61 73  |object.header as|
00007200  20 69 66 20 69 74 20 77  61 73 20 6e 65 77 6c 79  | if it was newly|
00007210  20 63 72 65 61 74 65 64  20 61 6e 64 20 72 65 64  | created and red|
00007220  72 61 77 20 74 68 65 20  65 6e 74 69 72 65 20 6f  |raw the entire o|
00007230  62 6a 65 63 74 2e 20 28  59 6f 75 20 6d 61 79 0a  |bject. (You may.|
00007240  6e 65 65 64 20 74 6f 20  72 65 67 65 6e 65 72 61  |need to regenera|
00007250  74 65 20 61 6e 20 61 72  65 61 20 6f 66 20 79 6f  |te an area of yo|
00007260  75 72 20 77 69 6e 64 6f  77 20 74 68 65 20 73 69  |ur window the si|
00007270  7a 65 20 6f 66 20 74 68  65 20 6f 6c 64 20 6f 62  |ze of the old ob|
00007280  6a 65 63 74 20 2d 0a 72  65 6d 65 6d 62 65 72 20  |ject -.remember |
00007290  74 68 65 20 6e 65 77 20  6f 62 6a 65 63 74 20 6d  |the new object m|
000072a0  61 79 20 6f 63 63 75 70  79 20 6c 65 73 73 20 73  |ay occupy less s|
000072b0  63 72 65 65 6e 20 61 72  65 61 29 2e 0a 0a 0a 3c  |creen area)....<|
000072c0  50 3e 0a 3c 65 6d 3e 52  65 73 69 7a 65 20 73 70  |P>.<em>Resize sp|
000072d0  65 65 64 20 69 73 73 75  65 73 3c 2f 65 6d 3e 0a  |eed issues</em>.|
000072e0  3c 50 3e 0a 0a 57 68 65  6e 20 74 68 65 20 6f 62  |<P>..When the ob|
000072f0  6a 65 63 74 20 62 65 69  6e 67 20 72 65 73 69 7a  |ject being resiz|
00007300  65 64 20 69 73 20 76 65  72 79 20 6c 61 72 67 65  |ed is very large|
00007310  2c 20 56 4d 20 28 56 69  72 74 75 61 6c 20 4d 65  |, VM (Virtual Me|
00007320  6d 6f 72 79 29 69 73 20  62 65 69 6e 67 0a 75 73  |mory)is being.us|
00007330  65 64 2c 20 6f 72 20 74  68 65 20 72 65 73 69 7a  |ed, or the resiz|
00007340  65 20 72 65 71 75 65 73  74 73 20 61 72 65 20 66  |e requests are f|
00007350  72 65 71 75 65 6e 74 2c  20 74 68 65 72 65 20 6d  |requent, there m|
00007360  61 79 20 62 65 20 61 20  70 65 72 66 6f 72 6d 61  |ay be a performa|
00007370  6e 63 65 20 69 73 73 75  65 2e 0a 49 6e 20 73 75  |nce issue..In su|
00007380  63 68 20 73 69 74 75 61  74 69 6f 6e 73 20 74 68  |ch situations th|
00007390  65 20 4c 6f 63 61 6c 20  74 61 73 6b 20 73 68 6f  |e Local task sho|
000073a0  75 6c 64 20 63 6f 6e 73  69 64 65 72 20 6d 6f 76  |uld consider mov|
000073b0  69 6e 67 20 74 68 65 20  6f 62 6a 65 63 74 20 74  |ing the object t|
000073c0  6f 20 74 68 65 0a 74 6f  70 20 6f 66 20 69 74 73  |o the.top of its|
000073d0  20 64 61 74 61 20 73 74  6f 72 61 67 65 20 61 72  | data storage ar|
000073e0  65 61 20 74 6f 20 70 72  65 76 65 6e 74 20 72 65  |ea to prevent re|
000073f0  70 65 61 74 65 64 20 6d  65 6d 6f 72 79 20 6d 6f  |peated memory mo|
00007400  76 69 6e 67 20 6f 70 65  72 61 74 69 6f 6e 73 2e  |ving operations.|
00007410  0a 49 6e 20 61 70 70 6c  69 63 61 74 69 6f 6e 73  |.In applications|
00007420  20 77 68 65 72 65 20 6d  61 6e 79 20 73 6d 61 6c  | where many smal|
00007430  6c 20 72 65 73 69 7a 65  20 72 65 71 75 65 73 74  |l resize request|
00007440  73 20 61 72 65 20 6c 69  6b 65 6c 79 20 74 68 65  |s are likely the|
00007450  6e 20 63 6f 6e 73 69 64  65 72 0a 65 6d 70 6c 6f  |n consider.emplo|
00007460  79 69 6e 67 20 61 20 74  61 67 20 65 78 74 65 6e  |ying a tag exten|
00007470  73 69 6f 6e 20 73 79 73  74 65 6d 20 73 69 6d 69  |sion system simi|
00007480  6c 61 72 20 74 6f 20 74  68 65 20 6f 6e 65 20 64  |lar to the one d|
00007490  65 66 69 6e 65 64 20 61  62 6f 76 65 20 66 6f 72  |efined above for|
000074a0  20 74 65 78 74 0a 66 69  6c 65 73 20 74 6f 20 72  | text.files to r|
000074b0  65 64 75 63 65 20 74 68  65 20 66 72 65 71 75 65  |educe the freque|
000074c0  6e 63 79 20 6f 66 20 74  68 65 20 72 65 73 69 7a  |ncy of the resiz|
000074d0  65 20 72 65 71 75 65 73  74 73 2e 20 0a 0a 20 3c  |e requests. .. <|
000074e0  50 3e 0a 0a 3c 53 54 52  4f 4e 47 3e 0a 3c 41 20  |P>..<STRONG>.<A |
000074f0  4e 41 4d 45 3d 22 75 70  64 61 74 65 22 3e 0a 4d  |NAME="update">.M|
00007500  65 73 73 61 67 65 5f 55  70 64 61 74 65 41 72 65  |essage_UpdateAre|
00007510  61 0a 3c 2f 41 3e 20 20  28 26 38 33 34 38 43 29  |a.</A>  (&8348C)|
00007520  20 28 4d 73 67 5f 55 70  61 72 65 61 25 29 0a 3c  | (Msg_Uparea%).<|
00007530  2f 53 54 52 4f 4e 47 3e  3c 50 3e 0a 0a 0a 42 72  |/STRONG><P>...Br|
00007540  6f 61 64 63 61 73 74 20  62 79 20 74 61 73 6b 20  |oadcast by task |
00007550  77 68 65 6e 20 69 74 20  68 61 73 20 6d 6f 64 69  |when it has modi|
00007560  66 69 65 64 20 70 61 72  74 20 6f 66 20 61 6e 20  |fied part of an |
00007570  6f 62 6a 65 63 74 2e 20  41 70 70 73 20 69 6e 74  |object. Apps int|
00007580  65 72 65 73 74 65 64 20  69 6e 0a 74 68 65 20 6f  |erested in.the o|
00007590  62 6a 65 63 74 20 73 68  6f 75 6c 64 20 72 65 64  |bject should red|
000075a0  72 61 77 20 74 68 65 20  61 70 70 72 6f 70 72 69  |raw the appropri|
000075b0  61 74 65 20 61 72 65 61  20 6f 66 20 74 68 65 20  |ate area of the |
000075c0  6f 62 6a 65 63 74 20 61  73 20 71 75 69 63 6b 6c  |object as quickl|
000075d0  79 20 61 73 0a 70 6f 73  73 69 62 6c 65 20 69 66  |y as.possible if|
000075e0  20 74 68 65 79 20 68 61  76 65 20 61 20 77 69 6e  | they have a win|
000075f0  64 6f 77 20 6f 6e 74 6f  20 74 68 65 20 6f 62 6a  |dow onto the obj|
00007600  65 63 74 20 6f 70 65 6e  2e 0a 0a 3c 50 3e 0a 0a  |ect open...<P>..|
00007610  54 68 65 20 62 6c 6f 63  6b 20 70 6f 69 6e 74 65  |The block pointe|
00007620  64 20 74 6f 20 62 79 20  52 31 20 63 6f 6e 74 61  |d to by R1 conta|
00007630  69 6e 73 3a 3c 50 3e 0a  3c 50 52 45 3e 0a 52 31  |ins:<P>.<PRE>.R1|
00007640  2b 32 30 20 20 20 46 6f  72 6d 61 74 20 6f 66 20  |+20   Format of |
00007650  73 75 62 73 65 71 75 65  6e 74 20 64 61 74 61 20  |subsequent data |
00007660  28 30 29 0a 52 31 2b 32  34 20 20 20 41 64 64 72  |(0).R1+24   Addr|
00007670  65 73 73 20 6f 66 20 6f  62 6a 65 63 74 20 74 61  |ess of object ta|
00007680  67 0a 52 31 2b 32 38 20  20 20 58 6c 6f 77 20 20  |g.R1+28   Xlow  |
00007690  28 4f 53 20 75 6e 69 74  73 20 61 74 20 31 3a 31  |(OS units at 1:1|
000076a0  20 73 63 61 6c 65 29 0a  52 31 2b 33 32 20 20 20  | scale).R1+32   |
000076b0  59 6c 6f 77 20 20 28 4f  53 20 75 6e 69 74 73 20  |Ylow  (OS units |
000076c0  61 74 20 31 3a 31 20 73  63 61 6c 65 29 0a 52 31  |at 1:1 scale).R1|
000076d0  2b 33 36 20 20 20 58 68  69 20 20 20 28 4f 53 20  |+36   Xhi   (OS |
000076e0  75 6e 69 74 73 20 61 74  20 31 3a 31 20 73 63 61  |units at 1:1 sca|
000076f0  6c 65 29 0a 52 31 2b 34  30 20 20 20 59 68 69 20  |le).R1+40   Yhi |
00007700  20 20 28 4f 53 20 75 6e  69 74 73 20 61 74 20 31  |  (OS units at 1|
00007710  3a 31 20 73 63 61 6c 65  29 0a 3c 2f 50 52 45 3e  |:1 scale).</PRE>|
00007720  3c 50 3e 0a 0a 77 68 65  72 65 20 63 6f 6f 72 64  |<P>..where coord|
00007730  69 6e 61 74 65 73 20 61  72 65 20 72 65 6c 61 74  |inates are relat|
00007740  69 76 65 20 74 6f 20 74  68 65 20 62 6f 74 74 6f  |ive to the botto|
00007750  6d 20 6c 65 66 74 20 6f  66 20 74 68 65 20 6f 62  |m left of the ob|
00007760  6a 65 63 74 2e 0a 3c 50  3e 0a 0a 43 75 72 72 65  |ject..<P>..Curre|
00007770  6e 74 6c 79 20 74 68 69  73 20 69 73 20 74 68 65  |ntly this is the|
00007780  20 6f 6e 6c 79 20 66 6f  72 6d 61 74 20 73 75 70  | only format sup|
00007790  70 6f 72 74 65 64 20 62  79 20 63 6f 64 65 20 28  |ported by code (|
000077a0  77 6f 72 6b 69 6e 67 20  77 69 74 68 20 62 69 74  |working with bit|
000077b0  6d 61 70 0a 73 70 72 69  74 65 73 29 2e 20 0a 0a  |map.sprites). ..|
000077c0  3c 50 3e 0a 0a 4f 74 68  65 72 20 70 72 6f 70 6f  |<P>..Other propo|
000077d0  73 65 64 20 66 6f 72 6d  61 74 73 20 61 72 65 20  |sed formats are |
000077e0  61 73 20 66 6f 6c 6c 6f  77 73 3a 0a 3c 50 3e 0a  |as follows:.<P>.|
000077f0  0a 3c 50 52 45 3e 0a 52  31 2b 32 30 20 20 20 46  |.<PRE>.R1+20   F|
00007800  6f 72 6d 61 74 20 6f 66  20 73 75 62 73 65 71 75  |ormat of subsequ|
00007810  65 6e 74 20 64 61 74 61  20 28 31 29 0a 52 31 2b  |ent data (1).R1+|
00007820  32 34 20 20 20 41 64 64  72 65 73 73 20 6f 66 20  |24   Address of |
00007830  6f 62 6a 65 63 74 20 74  61 67 0a 52 31 2b 32 38  |object tag.R1+28|
00007840  20 20 20 58 6c 6f 77 20  28 44 72 61 77 20 75 6e  |   Xlow (Draw un|
00007850  69 74 73 20 3d 20 4f 53  20 75 6e 69 74 73 20 26  |its = OS units &|
00007860  6c 74 3b 26 6c 74 3b 38  29 0a 52 31 2b 33 32 20  |lt;&lt;8).R1+32 |
00007870  20 20 59 6c 6f 77 20 28  44 72 61 77 20 75 6e 69  |  Ylow (Draw uni|
00007880  74 73 20 3d 20 4f 53 20  75 6e 69 74 73 20 26 6c  |ts = OS units &l|
00007890  74 3b 26 6c 74 3b 38 29  0a 52 31 2b 33 36 20 20  |t;&lt;8).R1+36  |
000078a0  20 58 68 69 20 20 28 44  72 61 77 20 75 6e 69 74  | Xhi  (Draw unit|
000078b0  73 20 3d 20 4f 53 20 75  6e 69 74 73 20 26 6c 74  |s = OS units &lt|
000078c0  3b 26 6c 74 3b 38 29 0a  52 31 2b 34 30 20 20 20  |;&lt;8).R1+40   |
000078d0  59 68 69 20 20 28 44 72  61 77 20 75 6e 69 74 73  |Yhi  (Draw units|
000078e0  20 3d 20 4f 53 20 75 6e  69 74 73 20 26 6c 74 3b  | = OS units &lt;|
000078f0  26 6c 74 3b 38 29 0a 3c  2f 50 52 45 3e 0a 3c 50  |&lt;8).</PRE>.<P|
00007900  3e 0a 0a 77 68 65 72 65  20 63 6f 6f 72 64 69 6e  |>..where coordin|
00007910  61 74 65 73 20 61 72 65  20 72 65 6c 61 74 69 76  |ates are relativ|
00007920  65 20 74 6f 20 74 68 65  20 62 6f 74 74 6f 6d 20  |e to the bottom |
00007930  6c 65 66 74 20 6f 66 20  74 68 65 20 6f 62 6a 65  |left of the obje|
00007940  63 74 2e 0a 3c 50 3e 0a  0a 3c 50 52 45 3e 0a 52  |ct..<P>..<PRE>.R|
00007950  31 2b 32 30 20 20 20 46  6f 72 6d 61 74 20 6f 66  |1+20   Format of|
00007960  20 73 75 62 73 65 71 75  65 6e 74 20 64 61 74 61  | subsequent data|
00007970  20 28 32 29 0a 52 31 2b  32 34 20 20 20 41 64 64  | (2).R1+24   Add|
00007980  72 65 73 73 20 6f 66 20  6f 62 6a 65 63 74 20 74  |ress of object t|
00007990  61 67 0a 52 31 2b 32 38  20 20 20 58 6c 6f 77 20  |ag.R1+28   Xlow |
000079a0  28 44 72 61 77 20 75 6e  69 74 73 20 3d 20 4f 53  |(Draw units = OS|
000079b0  20 75 6e 69 74 73 20 26  6c 74 3b 26 6c 74 3b 38  | units &lt;&lt;8|
000079c0  29 0a 52 31 2b 33 32 20  20 20 59 6c 6f 77 20 28  |).R1+32   Ylow (|
000079d0  44 72 61 77 20 75 6e 69  74 73 20 3d 20 4f 53 20  |Draw units = OS |
000079e0  75 6e 69 74 73 20 26 6c  74 3b 26 6c 74 3b 38 29  |units &lt;&lt;8)|
000079f0  0a 52 31 2b 33 36 20 20  20 58 68 69 20 20 28 44  |.R1+36   Xhi  (D|
00007a00  72 61 77 20 75 6e 69 74  73 20 3d 20 4f 53 20 75  |raw units = OS u|
00007a10  6e 69 74 73 20 26 6c 74  3b 26 6c 74 3b 38 29 0a  |nits &lt;&lt;8).|
00007a20  52 31 2b 34 30 20 20 20  59 68 69 20 20 28 44 72  |R1+40   Yhi  (Dr|
00007a30  61 77 20 75 6e 69 74 73  20 3d 20 4f 53 20 75 6e  |aw units = OS un|
00007a40  69 74 73 20 26 6c 74 3b  26 6c 74 3b 38 29 0a 3c  |its &lt;&lt;8).<|
00007a50  2f 50 52 45 3e 0a 3c 50  3e 0a 0a 77 68 65 72 65  |/PRE>.<P>..where|
00007a60  20 63 6f 6f 72 64 69 6e  61 74 65 73 20 61 72 65  | coordinates are|
00007a70  20 72 65 6c 61 74 69 76  65 20 74 6f 20 74 68 65  | relative to the|
00007a80  20 74 6f 70 20 6c 65 66  74 20 6f 66 20 74 68 65  | top left of the|
00007a90  20 6f 62 6a 65 63 74 2e  0a 0a 3c 50 3e 20 20 20  | object...<P>   |
00007aa0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |                |
*
00007ad0  20 20 20 20 20 20 0a 0a  49 66 20 79 6f 75 20 68  |      ..If you h|
00007ae0  61 76 65 20 61 6e 79 6f  74 68 65 72 20 73 75 67  |ave anyother sug|
00007af0  67 65 73 74 69 6f 6e 73  20 70 6c 65 61 73 65 20  |gestions please |
00007b00  63 6f 6e 74 61 63 74 20  43 6c 61 72 65 73 20 6f  |contact Clares o|
00007b10  72 20 74 68 65 20 61 75  74 68 6f 72 2e 0a 0a 3c  |r the author...<|
00007b20  70 3e 0a 0a 0a 3c 53 54  52 4f 4e 47 3e 0a 3c 41  |p>...<STRONG>.<A|
00007b30  20 4e 41 4d 45 3d 22 72  65 73 69 7a 65 61 63 6b  | NAME="resizeack|
00007b40  22 3e 0a 4d 65 73 73 61  67 65 5f 52 65 73 69 7a  |">.Message_Resiz|
00007b50  65 41 63 6b 0a 3c 2f 41  3e 20 28 26 38 33 34 38  |eAck.</A> (&8348|
00007b60  44 29 20 20 28 4d 73 67  5f 52 65 73 69 7a 65 41  |D)  (Msg_ResizeA|
00007b70  63 6b 25 29 0a 3c 2f 53  54 52 4f 4e 47 3e 0a 3c  |ck%).</STRONG>.<|
00007b80  50 3e 0a 0a 53 65 6e 74  20 62 79 20 4c 6f 63 61  |P>..Sent by Loca|
00007b90  6c 20 74 61 73 6b 20 77  68 65 6e 20 61 20 72 65  |l task when a re|
00007ba0  73 69 7a 65 20 72 65 71  75 65 73 74 20 68 61 73  |size request has|
00007bb0  20 73 75 63 63 65 65 64  65 64 2e 20 4f 6e 20 72  | succeeded. On r|
00007bc0  65 63 65 69 70 74 20 62  79 20 61 0a 52 65 6d 6f  |eceipt by a.Remo|
00007bd0  74 65 20 74 61 73 6b 2c  20 63 68 65 63 6b 20 74  |te task, check t|
00007be0  68 61 74 20 52 31 2b 31  32 20 69 73 20 74 68 65  |hat R1+12 is the|
00007bf0  20 6d 79 72 65 66 20 67  65 6e 65 72 61 74 65 64  | myref generated|
00007c00  20 66 72 6f 6d 20 3c 41  0a 48 52 45 46 3d 22 23  | from <A.HREF="#|
00007c10  72 65 73 69 7a 65 22 3e  4d 65 73 73 61 67 65 5f  |resize">Message_|
00007c20  52 65 73 69 7a 65 52 65  71 75 65 73 74 3c 2f 41  |ResizeRequest</A|
00007c30  3e 20 62 65 66 6f 72 65  20 6d 6f 64 69 66 79 69  |> before modifyi|
00007c40  6e 67 20 74 68 65 20 6f  62 6a 65 63 74 20 64 61  |ng the object da|
00007c50  74 61 0a 73 74 72 75 63  74 75 72 65 20 61 6e 64  |ta.structure and|
00007c60  20 62 72 6f 61 64 63 61  73 74 69 6e 67 20 3c 41  | broadcasting <A|
00007c70  20 48 52 45 46 3d 22 23  63 68 61 6e 67 65 64 22  | HREF="#changed"|
00007c80  3e 4d 65 73 73 61 67 65  5f 43 68 61 6e 67 65 64  |>Message_Changed|
00007c90  3c 2f 41 3e 2e 0a 0a 3c  50 3e 0a 0a 0a 54 68 65  |</A>...<P>...The|
00007ca0  20 62 6c 6f 63 6b 20 70  6f 69 6e 74 65 64 20 74  | block pointed t|
00007cb0  6f 20 62 79 20 52 31 20  63 6f 6e 74 61 69 6e 73  |o by R1 contains|
00007cc0  3a 0a 0a 3c 50 3e 0a 0a  3c 50 52 45 3e 0a 52 31  |:..<P>..<PRE>.R1|
00007cd0  2b 32 30 20 20 20 72 65  73 65 72 76 65 64 20 2d  |+20   reserved -|
00007ce0  20 30 0a 52 31 2b 32 34  20 20 20 41 64 64 72 65  | 0.R1+24   Addre|
00007cf0  73 73 20 6f 66 20 6f 62  6a 65 63 74 20 74 61 67  |ss of object tag|
00007d00  0a 52 31 2b 32 38 20 20  20 72 65 73 65 72 76 65  |.R1+28   reserve|
00007d10  64 20 2d 20 30 0a 52 31  2b 33 32 20 20 20 4e 65  |d - 0.R1+32   Ne|
00007d20  77 20 73 69 7a 65 20 61  6c 6c 6f 63 61 74 65 64  |w size allocated|
00007d30  20 74 6f 20 6f 62 6a 65  63 74 0a 52 31 2b 33 36  | to object.R1+36|
00007d40  20 20 20 46 6c 61 67 73  0a 0a 3c 2f 50 52 45 3e  |   Flags..</PRE>|
00007d50  3c 50 3e 0a 0a 0a 3c 53  54 52 4f 4e 47 3e 0a 3c  |<P>...<STRONG>.<|
00007d60  41 20 4e 41 4d 45 3d 22  6d 69 73 63 22 3e 0a 4d  |A NAME="misc">.M|
00007d70  65 73 73 61 67 65 5f 4d  69 73 63 4f 70 0a 3c 2f  |essage_MiscOp.</|
00007d80  41 3e 28 26 38 33 34 38  45 29 20 20 28 4d 73 67  |A>(&8348E)  (Msg|
00007d90  5f 4d 69 73 63 25 29 0a  3c 2f 53 54 52 4f 4e 47  |_Misc%).</STRONG|
00007da0  3e 0a 3c 50 3e 0a 0a 54  68 69 73 20 6d 65 73 73  |>.<P>..This mess|
00007db0  61 67 65 20 69 73 20 64  65 73 69 67 6e 65 64 20  |age is designed |
00007dc0  74 6f 20 70 72 6f 76 69  64 65 20 61 20 70 72 69  |to provide a pri|
00007dd0  76 61 74 65 20 69 6e 74  65 72 66 61 63 65 20 6f  |vate interface o|
00007de0  70 74 69 6f 6e 20 66 6f  72 20 50 43 41 0a 70 72  |ption for PCA.pr|
00007df0  6f 67 72 61 6d 73 20 77  69 74 68 6f 75 74 20 74  |ograms without t|
00007e00  68 65 6d 20 68 61 76 69  6e 67 20 74 6f 20 72 65  |hem having to re|
00007e10  71 75 65 73 74 20 6f 74  68 65 72 20 6d 65 73 73  |quest other mess|
00007e20  61 67 65 20 61 6c 6c 6f  63 61 74 69 6f 6e 73 20  |age allocations |
00007e30  66 72 6f 6d 0a 41 63 6f  72 6e 2e 0a 0a 3c 50 3e  |from.Acorn...<P>|
00007e40  0a 0a 0a 54 68 65 20 62  6c 6f 63 6b 20 70 6f 69  |...The block poi|
00007e50  6e 74 65 64 20 74 6f 20  62 79 20 52 31 20 63 6f  |nted to by R1 co|
00007e60  6e 74 61 69 6e 73 3a 3c  50 3e 0a 0a 3c 50 52 45  |ntains:<P>..<PRE|
00007e70  3e 0a 52 31 2b 32 30 20  20 20 53 75 62 2d 72 65  |>.R1+20   Sub-re|
00007e80  61 73 6f 6e 20 63 6f 64  65 0a 3c 2f 50 52 45 3e  |ason code.</PRE>|
00007e90  0a 3c 50 3e 0a 0a 2d 20  6f 74 68 65 72 20 64 61  |.<P>..- other da|
00007ea0  74 61 20 64 65 70 65 6e  64 61 6e 74 20 6f 6e 20  |ta dependant on |
00007eb0  73 75 62 2d 72 65 61 73  6f 6e 20 63 6f 64 65 2e  |sub-reason code.|
00007ec0  3c 50 3e 0a 0a 54 68 65  20 73 75 62 2d 72 65 61  |<P>..The sub-rea|
00007ed0  73 6f 6e 20 63 6f 64 65  73 20 61 76 61 69 6c 61  |son codes availa|
00007ee0  62 6c 65 20 74 6f 20 61  70 70 6c 69 63 61 74 69  |ble to applicati|
00007ef0  6f 6e 20 64 65 76 65 6c  6f 70 65 72 73 20 61 72  |on developers ar|
00007f00  65 20 61 6c 6c 6f 63 61  74 65 64 20 69 6e 0a 6c  |e allocated in.l|
00007f10  69 6e 65 20 77 69 74 68  20 53 57 49 20 61 6e 64  |ine with SWI and|
00007f20  20 4d 65 73 73 61 67 65  20 62 6c 6f 63 6b 73 20  | Message blocks |
00007f30  2d 20 69 66 20 79 6f 75  20 68 61 76 65 20 6f 6e  |- if you have on|
00007f40  65 20 6f 66 20 74 68 65  73 65 20 74 68 65 6e 20  |e of these then |
00007f50  74 68 6f 73 65 0a 76 61  6c 75 65 73 20 6d 61 79  |those.values may|
00007f60  20 62 65 20 75 73 65 64  20 62 79 20 79 6f 75 72  | be used by your|
00007f70  20 70 72 6f 67 72 61 6d  73 2e 20 57 68 65 72 65  | programs. Where|
00007f80  20 61 70 70 72 6f 70 72  69 61 74 65 2c 20 70 6c  | appropriate, pl|
00007f90  65 61 73 65 20 6d 61 6b  65 20 64 65 74 61 69 6c  |ease make detail|
00007fa0  73 0a 6f 66 20 79 6f 75  72 20 6d 65 73 73 61 67  |s.of your messag|
00007fb0  65 73 20 61 76 61 69 6c  61 62 6c 65 20 74 6f 20  |es available to |
00007fc0  74 68 65 20 50 43 41 20  63 6f 6d 6d 75 6e 69 74  |the PCA communit|
00007fd0  79 20 62 79 20 73 65 6e  64 69 6e 67 20 74 68 65  |y by sending the|
00007fe0  6d 20 74 6f 20 43 6c 61  72 65 73 0a 66 6f 72 20  |m to Clares.for |
00007ff0  64 69 73 74 72 69 62 75  74 69 6f 6e 2e 0a 0a 3c  |distribution...<|
00008000  50 3e 0a 0a 43 75 72 72  65 6e 74 6c 79 2c 20 6f  |P>..Currently, o|
00008010  6e 6c 79 20 74 77 6f 20  73 75 62 2d 72 65 61 73  |nly two sub-reas|
00008020  6f 6e 73 20 61 72 65 20  64 65 66 69 6e 65 64 20  |ons are defined |
00008030  66 6f 72 20 75 73 65 20  77 69 74 68 20 43 6f 6d  |for use with Com|
00008040  70 6f 73 69 74 69 6f 6e  2e 20 54 68 65 0a 63 75  |position. The.cu|
00008050  72 72 65 6e 74 20 66 6f  72 6d 61 74 20 6f 66 20  |rrent format of |
00008060  74 68 65 73 65 20 69 73  20 67 69 76 65 6e 20 62  |these is given b|
00008070  65 6c 6f 77 20 62 75 74  20 69 73 20 73 75 62 6a  |elow but is subj|
00008080  65 63 74 20 74 6f 20 63  68 61 6e 67 65 2e 20 50  |ect to change. P|
00008090  6c 65 61 73 65 0a 63 6f  6e 74 61 63 74 20 43 6c  |lease.contact Cl|
000080a0  61 72 65 73 20 62 65 66  6f 72 65 20 72 65 6c 65  |ares before rele|
000080b0  61 73 69 6e 67 20 70 72  6f 67 72 61 6d 73 20 77  |asing programs w|
000080c0  68 69 63 68 20 72 65 6c  79 20 6f 6e 20 69 74 3a  |hich rely on it:|
000080d0  0a 0a 3c 50 3e 0a 0a 0a  20 20 20 20 20 20 20 20  |..<P>...        |
000080e0  3c 53 54 52 4f 4e 47 3e  0a 53 75 62 52 65 61 73  |<STRONG>.SubReas|
000080f0  6f 6e 5f 47 69 76 65 41  73 73 6f 63 69 61 74 65  |on_GiveAssociate|
00008100  64 44 61 74 61 20 28 26  38 33 34 38 30 29 0a 3c  |dData (&83480).<|
00008110  2f 53 54 52 4f 4e 47 3e  0a 3c 50 3e 0a 0a 20 20  |/STRONG>.<P>..  |
00008120  20 20 20 20 20 20 42 72  6f 61 64 63 61 73 74 20  |      Broadcast |
00008130  62 79 20 72 65 6d 6f 74  65 20 70 6c 75 67 2d 69  |by remote plug-i|
00008140  6e 20 77 68 65 6e 20 69  74 20 77 6f 75 6c 64 20  |n when it would |
00008150  6c 69 6b 65 20 74 6f 20  6b 6e 6f 77 20 6d 6f 72  |like to know mor|
00008160  65 20 61 62 6f 75 74 20  74 68 65 20 6f 62 6a 65  |e about the obje|
00008170  63 74 2e 0a 3c 50 3e 0a  0a 20 20 20 20 20 20 20  |ct..<P>..       |
00008180  20 54 68 65 20 62 6c 6f  63 6b 20 70 6f 69 6e 74  | The block point|
00008190  65 64 20 74 6f 20 62 79  20 52 31 20 63 6f 6e 74  |ed to by R1 cont|
000081a0  61 69 6e 73 3a 3c 50 3e  0a 3c 50 52 45 3e 0a 20  |ains:<P>.<PRE>. |
000081b0  20 20 20 20 20 20 20 52  31 2b 32 34 20 20 20 41  |       R1+24   A|
000081c0  64 64 72 65 73 73 20 6f  66 20 6f 62 6a 65 63 74  |ddress of object|
000081d0  20 74 61 67 0a 3c 2f 50  52 45 3e 0a 0a 0a 20 20  | tag.</PRE>...  |
000081e0  20 20 20 20 20 20 3c 53  54 52 4f 4e 47 3e 0a 53  |      <STRONG>.S|
000081f0  75 62 52 65 61 73 6f 6e  5f 41 73 73 6f 63 69 61  |ubReason_Associa|
00008200  74 65 64 44 61 74 61 43  6f 6d 70 6f 20 20 28 26  |tedDataCompo  (&|
00008210  38 33 34 38 31 29 0a 3c  2f 53 54 52 4f 4e 47 3e  |83481).</STRONG>|
00008220  3c 50 3e 0a 0a 0a 20 20  20 20 20 20 20 20 53 65  |<P>...        Se|
00008230  6e 74 20 62 79 20 43 6f  6d 70 6f 20 74 6f 20 52  |nt by Compo to R|
00008240  65 6d 6f 74 65 20 77 68  69 63 68 20 62 72 6f 61  |emote which broa|
00008250  64 63 61 73 74 20 47 69  76 65 41 73 73 6f 63 69  |dcast GiveAssoci|
00008260  61 74 65 64 44 61 74 61  20 63 6f 6e 74 61 69 6e  |atedData contain|
00008270  69 6e 67 20 61 20 74 61  67 20 70 6f 69 6e 74 69  |ing a tag pointi|
00008280  6e 67 20 74 6f 20 61 20  43 6f 6d 70 6f 20 6f 62  |ng to a Compo ob|
00008290  6a 65 63 74 2e 0a 3c 50  3e 0a 0a 20 20 20 20 20  |ject..<P>..     |
000082a0  20 20 20 54 68 65 20 62  6c 6f 63 6b 20 70 6f 69  |   The block poi|
000082b0  6e 74 65 64 20 74 6f 20  62 79 20 52 31 20 63 6f  |nted to by R1 co|
000082c0  6e 74 61 69 6e 73 3a 3c  50 3e 0a 3c 50 52 45 3e  |ntains:<P>.<PRE>|
000082d0  0a 20 20 20 20 20 20 20  20 52 31 2b 32 34 20 20  |.        R1+24  |
000082e0  20 41 64 64 72 65 73 73  20 6f 66 20 6f 62 6a 65  | Address of obje|
000082f0  63 74 20 74 61 67 0a 20  20 20 20 20 20 20 20 52  |ct tag.        R|
00008300  31 2b 32 38 20 20 20 72  65 73 65 72 76 65 64 20  |1+28   reserved |
00008310  2d 20 30 0a 20 20 20 20  20 20 20 20 52 31 2b 33  |- 0.        R1+3|
00008320  32 20 20 20 74 77 6f 20  65 69 67 68 74 20 62 69  |2   two eight bi|
00008330  74 20 61 6e 64 20 6f 6e  65 20 73 69 78 74 65 65  |t and one sixtee|
00008340  6e 20 62 69 74 20 66 69  65 6c 64 73 0a 20 20 20  |n bit fields.   |
00008350  20 20 20 20 20 20 20 20  20 20 20 20 20 62 69 74  |             bit|
00008360  73 20 30 2d 37 20 20 20  20 20 4d 61 73 6b 73 20  |s 0-7     Masks |
00008370  69 6e 20 75 73 65 20 62  79 20 6f 62 6a 65 63 74  |in use by object|
00008380  0a 20 20 20 20 20 20 20  20 20 20 20 20 20 20 20  |.               |
00008390  20 62 69 74 73 20 38 2d  31 35 20 20 20 20 46 6f  | bits 8-15    Fo|
000083a0  72 6d 61 74 20 6f 66 20  73 75 62 73 65 71 75 65  |rmat of subseque|
000083b0  6e 74 20 64 61 74 61 20  28 7a 65 72 6f 29 0a 20  |nt data (zero). |
000083c0  20 20 20 20 20 20 20 20  20 20 20 20 20 20 20 62  |               b|
000083d0  69 74 73 20 31 36 2d 33  31 20 20 20 52 65 73 65  |its 16-31   Rese|
000083e0  72 76 65 64 0a 20 20 20  20 20 20 20 20 52 31 2b  |rved.        R1+|
000083f0  33 36 20 20 20 52 65 73  65 72 76 65 64 20 28 30  |36   Reserved (0|
00008400  29 0a 20 20 20 20 20 20  20 20 52 31 2b 34 30 20  |).        R1+40 |
00008410  20 20 42 6c 65 6e 64 20  6d 61 73 6b 20 61 64 64  |  Blend mask add|
00008420  72 65 73 73 20 6f 72 20  7a 65 72 6f 20 20 20 20  |ress or zero    |
00008430  3d 20 6e 6f 20 42 6c 65  6e 64 20 6d 61 73 6b 0a  |= no Blend mask.|
00008440  20 20 20 20 20 20 20 20  52 31 2b 34 34 20 20 20  |        R1+44   |
00008450  54 69 6e 74 20 6d 61 73  6b 20 61 64 64 72 65 73  |Tint mask addres|
00008460  73 20 6f 72 20 7a 65 72  6f 20 20 20 20 20 3d 20  |s or zero     = |
00008470  6e 6f 20 54 69 6e 74 20  6d 61 73 6b 0a 20 20 20  |no Tint mask.   |
00008480  20 20 20 20 20 52 31 2b  34 38 20 20 20 43 75 72  |     R1+48   Cur|
00008490  76 65 20 6d 61 73 6b 20  61 64 64 72 65 73 73 20  |ve mask address |
000084a0  6f 72 20 7a 65 72 6f 20  20 20 20 3d 20 6e 6f 20  |or zero    = no |
000084b0  43 75 72 76 65 20 6d 61  73 6b 0a 20 20 20 20 20  |Curve mask.     |
000084c0  20 20 20 52 31 2b 35 32  20 20 20 44 69 73 70 6c  |   R1+52   Displ|
000084d0  61 63 65 20 6d 61 73 6b  20 61 64 64 72 65 73 73  |ace mask address|
000084e0  20 6f 72 20 7a 65 72 6f  20 3d 20 6e 6f 20 44 69  | or zero = no Di|
000084f0  73 70 6c 61 63 65 20 6d  61 73 6b 0a 20 20 20 20  |splace mask.    |
00008500  20 20 20 20 52 31 2b 35  36 20 20 20 53 68 61 64  |    R1+56   Shad|
00008510  6f 77 20 6d 61 73 6b 20  61 64 64 72 65 73 73 20  |ow mask address |
00008520  6f 72 20 7a 65 72 6f 20  20 20 3d 20 6e 6f 20 53  |or zero   = no S|
00008530  68 61 64 6f 77 20 6d 61  73 6b 0a 20 20 20 20 20  |hadow mask.     |
00008540  20 20 20 52 31 2b 36 30  20 20 20 52 65 73 65 72  |   R1+60   Reser|
00008550  76 65 64 0a 20 20 20 20  20 20 20 20 52 31 2b 36  |ved.        R1+6|
00008560  34 20 20 20 52 65 73 65  72 76 65 64 0a 20 20 20  |4   Reserved.   |
00008570  20 20 20 20 20 52 31 2b  36 38 20 20 20 4f 70 61  |     R1+68   Opa|
00008580  63 69 74 79 20 6f 66 20  6f 62 6a 65 63 74 20 28  |city of object (|
00008590  36 35 35 33 36 3d 73 6f  6c 69 64 20 30 3d 74 72  |65536=solid 0=tr|
000085a0  61 6e 73 70 61 72 65 6e  74 29 0a 20 20 20 20 20  |ansparent).     |
000085b0  20 20 20 52 31 2b 37 32  20 20 20 4d 61 74 68 20  |   R1+72   Math |
000085c0  74 79 70 65 20 69 6e 20  75 73 65 20 66 6f 72 20  |type in use for |
000085d0  6f 62 6a 65 63 74 0a 0a  3c 2f 50 52 45 3e 3c 50  |object..</PRE><P|
000085e0  3e 0a 0a 4e 6f 74 65 73  3a 20 54 68 65 20 27 6d  |>..Notes: The 'm|
000085f0  61 73 6b 20 61 64 64 72  65 73 73 27 20 70 61 73  |ask address' pas|
00008600  73 65 64 20 69 73 20 74  68 65 20 61 64 64 72 65  |sed is the addre|
00008610  73 73 20 6f 66 20 74 68  65 20 62 61 73 65 20 6f  |ss of the base o|
00008620  66 20 61 20 73 70 72 69  74 65 20 61 72 65 61 0a  |f a sprite area.|
00008630  63 6f 6e 74 61 69 6e 69  6e 67 20 6f 6e 65 20 65  |containing one e|
00008640  69 67 68 74 20 62 69 74  20 67 72 65 79 73 63 61  |ight bit greysca|
00008650  6c 65 20 73 70 72 69 74  65 20 28 61 74 20 61 64  |le sprite (at ad|
00008660  64 72 65 73 73 2b 61 64  64 72 65 73 73 21 38 29  |dress+address!8)|
00008670  2e 20 54 68 65 20 73 69  7a 65 0a 6f 66 20 61 20  |. The size.of a |
00008680  6d 61 73 6b 20 73 68 6f  75 6c 64 20 6e 6f 74 20  |mask should not |
00008690  62 65 20 61 73 73 75 6d  65 64 20 74 6f 20 62 65  |be assumed to be|
000086a0  20 74 68 65 20 73 61 6d  65 20 61 73 20 74 68 61  | the same as tha|
000086b0  74 20 6f 66 20 74 68 65  20 6f 62 6a 65 63 74 20  |t of the object |
000086c0  2d 20 72 65 61 64 0a 69  74 20 66 72 6f 6d 20 74  |- read.it from t|
000086d0  68 65 20 6d 61 73 6b 20  73 70 72 69 74 65 20 64  |he mask sprite d|
000086e0  61 74 61 20 6f 72 20 75  73 65 20 4f 53 5f 53 70  |ata or use OS_Sp|
000086f0  72 69 74 65 4f 70 20 74  6f 20 65 78 74 72 61 63  |riteOp to extrac|
00008700  74 20 69 74 2e 20 0a 0a  3c 50 3e 0a 0a 54 68 65  |t it. ..<P>..The|
00008710  20 64 61 74 61 20 72 65  74 75 72 6e 65 64 20 62  | data returned b|
00008720  79 20 74 68 69 73 20 6d  65 73 73 61 67 65 20 69  |y this message i|
00008730  73 20 66 72 61 67 69 6c  65 20 2d 20 72 65 2d 72  |s fragile - re-r|
00008740  65 61 64 20 77 68 65 6e  65 76 65 72 20 79 6f 75  |ead whenever you|
00008750  20 77 61 6e 74 20 74 6f  0a 6d 61 6b 65 20 75 73  | want to.make us|
00008760  65 20 6f 66 20 69 74 2e  0a 0a 3c 50 3e 0a 0a 0a  |e of it...<P>...|
00008770  3c 53 54 52 4f 4e 47 3e  0a 0a 3c 41 20 4e 41 4d  |<STRONG>..<A NAM|
00008780  45 3d 22 69 6e 66 6f 22  3e 0a 4d 65 73 73 61 67  |E="info">.Messag|
00008790  65 5f 49 6e 66 6f 0a 3c  2f 41 3e 20 28 26 38 33  |e_Info.</A> (&83|
000087a0  34 38 46 29 20 28 4d 73  67 5f 49 6e 66 6f 25 29  |48F) (Msg_Info%)|
000087b0  0a 3c 2f 53 54 52 4f 4e  47 3e 3c 50 3e 0a 0a 0a  |.</STRONG><P>...|
000087c0  53 65 6e 74 20 62 79 20  4c 6f 63 61 6c 20 74 6f  |Sent by Local to|
000087d0  20 52 65 6d 6f 74 65 20  61 70 70 6c 69 63 61 74  | Remote applicat|
000087e0  69 6f 6e 20 77 68 65 6e  20 74 68 65 20 69 6e 66  |ion when the inf|
000087f0  6f 20 62 75 74 74 6f 6e  20 69 6e 20 74 68 65 20  |o button in the |
00008800  70 6f 70 2d 75 70 20 69  73 20 63 6c 69 63 6b 65  |pop-up is clicke|
00008810  64 2e 0a 3c 50 3e 0a 0a  54 68 65 20 62 6c 6f 63  |d..<P>..The bloc|
00008820  6b 20 70 6f 69 6e 74 65  64 20 74 6f 20 62 79 20  |k pointed to by |
00008830  52 31 20 63 6f 6e 74 61  69 6e 73 3a 3c 50 3e 0a  |R1 contains:<P>.|
00008840  0a 3c 50 52 45 3e 0a 52  31 2b 32 30 20 20 20 30  |.<PRE>.R1+20   0|
00008850  0a 3c 2f 50 52 45 3e 0a  3c 50 3e 0a 0a 52 65 6d  |.</PRE>.<P>..Rem|
00008860  6f 74 65 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |ote application |
00008870  73 68 6f 75 6c 64 20 77  72 69 74 65 20 61 20 73  |should write a s|
00008880  75 69 74 61 62 6c 65 20  69 6e 66 6f 20 73 74 72  |uitable info str|
00008890  69 6e 67 20 69 6e 74 6f  20 2b 32 30 2c 20 63 68  |ing into +20, ch|
000088a0  61 6e 67 65 20 74 68 65  0a 6d 65 73 73 61 67 65  |ange the.message|
000088b0  20 73 69 7a 65 20 61 6e  64 20 72 65 74 75 72 6e  | size and return|
000088c0  20 74 68 65 20 6d 65 73  73 61 67 65 20 74 6f 20  | the message to |
000088d0  74 68 65 20 73 65 6e 64  65 72 2e 0a 0a 3c 50 3e  |the sender...<P>|
000088e0  0a 0a 45 78 61 6d 70 6c  65 20 69 6e 66 6f 20 73  |..Example info s|
000088f0  74 72 69 6e 67 73 3a 3c  42 52 3e 0a 0a 22 49 6d  |trings:<BR>.."Im|
00008900  61 67 65 20 46 69 6c 74  65 72 2e 20 4e 6f 20 69  |age Filter. No i|
00008910  6d 61 67 65 20 6c 69 6e  6b 65 64 20 61 74 20 74  |mage linked at t|
00008920  68 65 20 6d 6f 6d 65 6e  74 2e 22 3c 42 52 3e 0a  |he moment."<BR>.|
00008930  0a 22 49 6d 61 67 65 20  46 69 6c 74 65 72 2e 20  |."Image Filter. |
00008940  49 6d 61 67 65 20 27 46  61 63 65 27 20 6c 69 6e  |Image 'Face' lin|
00008950  6b 65 64 20 61 74 20 74  68 65 20 6d 6f 6d 65 6e  |ked at the momen|
00008960  74 2e 22 3c 42 52 3e 0a  0a 3c 50 3e 0a 0a 0a 3c  |t."<BR>..<P>...<|
00008970  53 54 52 4f 4e 47 3e 0a  3c 41 20 4e 41 4d 45 3d  |STRONG>.<A NAME=|
00008980  22 70 6f 73 22 3e 0a 4d  65 73 73 61 67 65 5f 4f  |"pos">.Message_O|
00008990  62 6a 65 63 74 50 6f 73  69 74 69 6f 6e 0a 3c 2f  |bjectPosition.</|
000089a0  41 3e 20 20 28 26 38 33  34 39 30 29 20 28 4d 73  |A>  (&83490) (Ms|
000089b0  67 5f 4f 62 6a 50 6f 73  25 29 0a 3c 2f 53 54 52  |g_ObjPos%).</STR|
000089c0  4f 4e 47 3e 0a 3c 50 3e  0a 0a 54 68 69 73 20 6d  |ONG>.<P>..This m|
000089d0  65 73 73 61 67 65 20 69  73 20 67 65 6e 65 72 61  |essage is genera|
000089e0  74 65 64 20 62 79 20 74  68 65 20 4c 6f 63 61 6c  |ted by the Local|
000089f0  20 61 70 70 6c 69 63 61  74 69 6f 6e 20 61 66 74  | application aft|
00008a00  65 72 20 72 65 63 65 69  70 74 20 6f 66 20 3c 41  |er receipt of <A|
00008a10  0a 48 52 45 46 3d 22 23  68 6f 6f 6b 22 3e 4d 65  |.HREF="#hook">Me|
00008a20  73 73 61 67 65 5f 48 6f  6f 6b 4d 65 3c 2f 41 3e  |ssage_HookMe</A>|
00008a30  2c 20 6f 62 6a 65 63 74  20 72 65 70 6f 73 69 74  |, object reposit|
00008a40  69 6f 6e 69 6e 67 20 6f  70 65 72 61 74 69 6f 6e  |ioning operation|
00008a50  73 20 61 6e 64 20 77 69  6e 64 6f 77 0a 6f 70 65  |s and window.ope|
00008a60  6e 20 6f 70 65 72 61 74  69 6f 6e 73 2c 20 69 66  |n operations, if|
00008a70  20 74 68 65 20 4c 6f 63  61 6c 20 61 70 70 6c 69  | the Local appli|
00008a80  63 61 74 69 6f 6e 20 73  75 70 70 6f 72 74 73 20  |cation supports |
00008a90  27 69 6e 2d 70 6c 61 63  65 20 65 64 69 74 69 6e  |'in-place editin|
00008aa0  67 27 2e 3c 50 3e 0a 0a  0a 54 68 65 20 62 6c 6f  |g'.<P>...The blo|
00008ab0  63 6b 20 70 6f 69 6e 74  65 64 20 74 6f 20 62 79  |ck pointed to by|
00008ac0  20 52 31 20 63 6f 6e 74  61 69 6e 73 3a 0a 0a 3c  | R1 contains:..<|
00008ad0  50 3e 0a 0a 3c 50 52 45  3e 0a 52 31 2b 32 30 20  |P>..<PRE>.R1+20 |
00008ae0  20 20 30 0a 52 31 2b 32  34 20 20 20 41 64 64 72  |  0.R1+24   Addr|
00008af0  65 73 73 20 6f 66 20 6f  62 6a 65 63 74 20 74 61  |ess of object ta|
00008b00  67 0a 52 31 2b 32 38 20  20 20 59 20 73 63 61 6c  |g.R1+28   Y scal|
00008b10  65 20 6f 66 20 6f 62 6a  65 63 74 20 69 6e 20 4c  |e of object in L|
00008b20  6f 63 61 6c 20 77 69 6e  64 6f 77 20 28 36 35 35  |ocal window (655|
00008b30  33 36 3d 31 3a 31 20 6f  72 20 31 30 30 25 29 0a  |36=1:1 or 100%).|
00008b40  52 31 2b 33 32 20 20 20  58 6c 6f 77 20 6f 66 20  |R1+32   Xlow of |
00008b50  6f 62 6a 65 63 74 20 6f  6e 20 73 63 72 65 65 6e  |object on screen|
00008b60  20 69 6e 20 27 4c 6f 63  61 6c 27 20 77 69 6e 64  | in 'Local' wind|
00008b70  6f 77 2e 20 28 6c 69 6d  69 74 65 64 20 74 6f 20  |ow. (limited to |
00008b80  76 69 73 69 62 6c 65 20  61 72 65 61 29 0a 52 31  |visible area).R1|
00008b90  2b 33 36 20 20 20 59 6c  6f 77 20 6f 66 20 6f 62  |+36   Ylow of ob|
00008ba0  6a 65 63 74 20 6f 6e 20  73 63 72 65 65 6e 20 69  |ject on screen i|
00008bb0  6e 20 27 4c 6f 63 61 6c  27 20 77 69 6e 64 6f 77  |n 'Local' window|
00008bc0  2e 20 28 6c 69 6d 69 74  65 64 20 74 6f 20 76 69  |. (limited to vi|
00008bd0  73 69 62 6c 65 20 61 72  65 61 29 0a 52 31 2b 34  |sible area).R1+4|
00008be0  30 20 20 20 48 61 6e 64  6c 65 20 6f 66 20 27 4c  |0   Handle of 'L|
00008bf0  6f 63 61 6c 27 20 77 69  6e 64 6f 77 2e 0a 52 31  |ocal' window..R1|
00008c00  2b 34 34 20 20 20 48 61  6e 64 6c 65 20 6f 66 20  |+44   Handle of |
00008c10  4c 6f 63 61 6c 20 77 69  6e 64 6f 77 73 20 74 6f  |Local windows to|
00008c20  6f 6c 62 61 72 20 77 69  6e 64 6f 77 20 28 6f 72  |olbar window (or|
00008c30  20 2d 31 20 69 66 20 6e  6f 20 74 6f 6f 6c 62 61  | -1 if no toolba|
00008c40  72 29 0a 52 31 2b 34 38  20 20 20 58 20 73 63 61  |r).R1+48   X sca|
00008c50  6c 65 20 66 61 63 74 6f  72 20 6f 66 20 6f 62 6a  |le factor of obj|
00008c60  65 63 74 20 69 6e 20 4c  6f 63 61 6c 20 77 69 6e  |ect in Local win|
00008c70  64 6f 77 20 28 31 36 2e  31 36 20 66 6f 72 6d 61  |dow (16.16 forma|
00008c80  74 20 65 67 20 36 35 35  33 36 3d 31 3a 31 20 6f  |t eg 65536=1:1 o|
00008c90  72 20 31 30 30 25 29 0a  52 31 2b 35 32 20 20 20  |r 100%).R1+52   |
00008ca0  58 6c 6f 77 20 6f 66 20  6f 62 6a 65 63 74 20 6f  |Xlow of object o|
00008cb0  6e 20 73 63 72 65 65 6e  20 69 6e 20 4c 6f 63 61  |n screen in Loca|
00008cc0  6c 20 77 69 6e 64 6f 77  2e 20 28 75 6e 6c 69 6d  |l window. (unlim|
00008cd0  69 74 65 64 29 0a 52 31  2b 35 36 20 20 20 59 6c  |ited).R1+56   Yl|
00008ce0  6f 77 20 6f 66 20 6f 62  6a 65 63 74 20 6f 6e 20  |ow of object on |
00008cf0  73 63 72 65 65 6e 20 69  6e 20 4c 6f 63 61 6c 20  |screen in Local |
00008d00  77 69 6e 64 6f 77 2e 20  28 75 6e 6c 69 6d 69 74  |window. (unlimit|
00008d10  65 64 29 0a 0a 3c 2f 50  52 45 3e 3c 50 3e 0a 4f  |ed)..</PRE><P>.O|
00008d20  6e 20 72 65 63 65 69 70  74 2c 20 74 68 65 20 52  |n receipt, the R|
00008d30  65 6d 6f 74 65 20 74 61  73 6b 20 73 68 6f 75 6c  |emote task shoul|
00008d40  64 20 6f 70 65 6e 20 69  74 73 20 74 6f 6f 6c 62  |d open its toolb|
00008d50  61 72 2f 69 6e 66 6f 62  61 72 20 72 65 6c 61 74  |ar/infobar relat|
00008d60  69 76 65 20 74 6f 20 74  68 65 0a 70 6f 73 69 74  |ive to the.posit|
00008d70  69 6f 6e 73 20 69 6e 20  52 31 2b 33 32 20 61 6e  |ions in R1+32 an|
00008d80  64 20 52 31 2b 33 36 20  62 65 68 69 6e 64 20 74  |d R1+36 behind t|
00008d90  68 65 20 77 69 6e 64 6f  77 20 68 61 6e 64 6c 65  |he window handle|
00008da0  20 61 74 20 52 31 2b 34  34 2e 20 54 68 65 0a 63  | at R1+44. The.c|
00008db0  6f 6f 72 64 69 6e 61 74  65 73 20 70 61 73 73 65  |oordinates passe|
00008dc0  64 20 69 6e 20 52 31 2b  33 32 20 61 6e 64 20 52  |d in R1+32 and R|
00008dd0  31 2b 33 36 20 73 68 6f  75 6c 64 20 62 65 20 6c  |1+36 should be l|
00008de0  69 6d 69 74 65 64 20 74  6f 20 74 68 65 20 77 69  |imited to the wi|
00008df0  6e 64 6f 77 73 0a 76 69  73 69 62 6c 65 20 61 72  |ndows.visible ar|
00008e00  65 61 20 28 62 79 20 74  68 65 20 4c 6f 63 61 6c  |ea (by the Local|
00008e10  20 74 61 73 6b 29 20 77  68 69 6c 65 20 74 68 6f  | task) while tho|
00008e20  73 65 20 61 74 20 2b 35  32 20 61 6e 64 20 2b 35  |se at +52 and +5|
00008e30  36 20 73 68 6f 75 6c 64  20 6e 6f 74 2e 0a 0a 3c  |6 should not...<|
00008e40  50 3e 0a 0a 54 68 65 20  69 6e 66 6f 72 6d 61 74  |P>..The informat|
00008e50  69 6f 6e 20 61 74 20 52  31 2b 32 38 20 61 6e 64  |ion at R1+28 and|
00008e60  20 52 31 2b 34 38 20 6f  6e 77 61 72 64 73 20 69  | R1+48 onwards i|
00008e70  73 20 66 6f 72 20 75 73  65 20 62 79 20 74 68 65  |s for use by the|
00008e80  20 52 65 6d 6f 74 65 20  74 61 73 6b 0a 64 75 72  | Remote task.dur|
00008e90  69 6e 67 20 6d 6f 75 73  65 20 63 6c 69 63 6b 20  |ing mouse click |
00008ea0  6f 70 65 72 61 74 69 6f  6e 73 20 6f 6e 20 74 68  |operations on th|
00008eb0  65 20 6f 62 6a 65 63 74  2e 20 54 6f 20 63 6f 6e  |e object. To con|
00008ec0  76 65 72 74 20 6d 6f 75  73 65 20 63 6f 6f 72 64  |vert mouse coord|
00008ed0  69 6e 61 74 65 73 0a 72  65 61 64 20 64 69 72 65  |inates.read dire|
00008ee0  63 74 6c 79 20 69 74 20  73 68 6f 75 6c 64 20 73  |ctly it should s|
00008ef0  75 62 74 72 61 63 74 20  74 68 65 20 76 61 6c 75  |ubtract the valu|
00008f00  65 73 20 61 74 20 52 31  2b 35 32 2c 52 31 2b 35  |es at R1+52,R1+5|
00008f10  36 20 66 72 6f 6d 20 74  68 65 20 72 61 77 0a 6d  |6 from the raw.m|
00008f20  6f 75 73 65 78 20 61 6e  64 20 6d 6f 75 73 65 79  |ousex and mousey|
00008f30  20 63 6f 6f 72 64 69 6e  61 74 65 73 2c 20 61 6e  | coordinates, an|
00008f40  64 20 74 68 65 6e 20 73  63 61 6c 65 20 74 68 65  |d then scale the|
00008f50  6d 20 62 79 20 74 68 65  20 66 61 63 74 6f 72 73  |m by the factors|
00008f60  20 69 6e 0a 52 31 2b 32  38 20 61 6e 64 20 52 31  | in.R1+28 and R1|
00008f70  2b 34 38 2e 0a 3c 50 3e  0a 54 68 65 20 58 20 61  |+48..<P>.The X a|
00008f80  6e 64 20 59 20 73 63 61  6c 65 20 66 61 63 74 6f  |nd Y scale facto|
00008f90  72 73 20 61 72 65 20 69  6e 20 31 36 2e 31 36 20  |rs are in 16.16 |
00008fa0  66 6f 72 6d 61 74 2e 20  54 6f 20 63 6f 6e 76 65  |format. To conve|
00008fb0  72 74 20 61 20 73 63 61  6c 65 20 66 61 63 74 6f  |rt a scale facto|
00008fc0  72 0a 69 6e 74 6f 20 74  68 69 73 20 66 6f 72 6d  |r.into this form|
00008fd0  61 74 2c 20 6d 75 6c 74  69 70 6c 79 20 62 79 20  |at, multiply by |
00008fe0  31 20 26 6c 74 3b 26 6c  74 3b 20 31 36 2e 20 46  |1 &lt;&lt; 16. F|
00008ff0  6f 72 20 65 78 61 6d 70  6c 65 2c 20 31 30 30 25  |or example, 100%|
00009000  20 3d 20 61 20 73 63 61  6c 65 20 66 61 63 74 6f  | = a scale facto|
00009010  72 20 6f 66 0a 6f 6e 65  20 61 6e 64 20 69 73 20  |r of.one and is |
00009020  74 68 65 72 65 66 6f 72  65 20 28 31 20 26 6c 74  |therefore (1 &lt|
00009030  3b 26 6c 74 3b 20 31 36  29 20 2a 20 31 20 77 68  |;&lt; 16) * 1 wh|
00009040  69 63 68 20 69 73 20 36  35 35 33 36 20 6f 72 20  |ich is 65536 or |
00009050  26 31 30 30 30 30 2e 20  31 35 30 25 20 3d 20 61  |&10000. 150% = a|
00009060  20 73 63 61 6c 65 0a 66  61 63 74 6f 72 20 6f 66  | scale.factor of|
00009070  20 31 2e 35 20 61 6e 64  20 69 73 20 74 68 65 72  | 1.5 and is ther|
00009080  65 66 6f 72 65 20 28 31  20 26 6c 74 3b 26 6c 74  |efore (1 &lt;&lt|
00009090  3b 20 31 36 29 20 2a 20  31 2e 35 20 77 68 69 63  |; 16) * 1.5 whic|
000090a0  68 20 69 73 20 39 38 33  30 34 20 6f 72 20 26 31  |h is 98304 or &1|
000090b0  38 30 30 30 2e 0a 0a 3c  70 3e 0a 0a 53 65 65 20  |8000...<p>..See |
000090c0  74 68 65 20 72 65 6d 6f  74 65 20 70 61 69 6e 74  |the remote paint|
000090d0  69 6e 67 20 63 6f 64 65  20 28 44 45 46 50 52 4f  |ing code (DEFPRO|
000090e0  43 72 65 6d 6f 74 65 5f  77 69 6e 29 20 69 6e 20  |Cremote_win) in |
000090f0  21 53 70 61 69 6e 74 20  66 6f 72 20 61 20 70 72  |!Spaint for a pr|
00009100  61 63 74 69 63 61 6c 0a  65 78 61 6d 70 6c 65 20  |actical.example |
00009110  6f 66 20 77 68 61 74 20  79 6f 75 20 73 68 6f 75  |of what you shou|
00009120  6c 64 20 64 6f 2e 0a 0a  3c 50 3e 0a 0a 3c 53 54  |ld do...<P>..<ST|
00009130  52 4f 4e 47 3e 0a 3c 41  20 4e 41 4d 45 3d 22 68  |RONG>.<A NAME="h|
00009140  6f 6f 6b 22 3e 0a 4d 65  73 73 61 67 65 5f 48 6f  |ook">.Message_Ho|
00009150  6f 6b 4d 65 0a 3c 2f 41  3e 20 20 28 26 38 33 34  |okMe.</A>  (&834|
00009160  39 31 29 20 20 28 4d 73  67 5f 48 6f 6f 6b 25 29  |91)  (Msg_Hook%)|
00009170  0a 0a 3c 2f 53 54 52 4f  4e 47 3e 3c 50 3e 0a 0a  |..</STRONG><P>..|
00009180  0a 54 68 69 73 20 6d 65  73 73 61 67 65 20 69 73  |.This message is|
00009190  20 73 65 6e 74 20 62 79  20 74 68 65 20 52 65 6d  | sent by the Rem|
000091a0  6f 74 65 20 74 61 73 6b  20 74 6f 20 74 68 65 20  |ote task to the |
000091b0  4c 6f 63 61 6c 20 74 61  73 6b 2e 20 49 74 20 69  |Local task. It i|
000091c0  6e 64 69 63 61 74 65 73  20 74 6f 0a 74 68 65 20  |ndicates to.the |
000091d0  4c 6f 63 61 6c 20 74 61  73 6b 20 74 68 61 74 20  |Local task that |
000091e0  69 74 20 73 68 6f 75 6c  64 20 62 65 67 69 6e 20  |it should begin |
000091f0  69 6e 74 65 72 63 65 70  74 69 6e 67 20 6d 6f 75  |intercepting mou|
00009200  73 65 20 62 75 74 74 6f  6e 20 61 6e 64 20 6f 74  |se button and ot|
00009210  68 65 72 20 57 69 6d 70  0a 65 76 65 6e 74 73 20  |her Wimp.events |
00009220  74 6f 20 74 68 65 20 6f  62 6a 65 63 74 20 61 6e  |to the object an|
00009230  64 20 73 65 6e 64 20 74  68 65 6d 20 74 6f 20 74  |d send them to t|
00009240  68 65 20 52 65 6d 6f 74  65 20 74 61 73 6b 2e 20  |he Remote task. |
00009250  4f 6e 20 72 65 63 65 69  70 74 2c 20 74 68 65 20  |On receipt, the |
00009260  4c 6f 63 61 6c 0a 74 61  73 6b 20 73 68 6f 75 6c  |Local.task shoul|
00009270  64 20 63 72 65 61 74 65  20 61 20 74 72 61 70 20  |d create a trap |
00009280  69 63 6f 6e 20 6f 76 65  72 20 74 68 65 20 6f 62  |icon over the ob|
00009290  6a 65 63 74 20 28 75 73  69 6e 67 20 74 68 65 20  |ject (using the |
000092a0  62 75 74 74 6f 6e 20 74  79 70 65 20 69 6e 0a 72  |button type in.r|
000092b0  31 2b 32 38 29 20 61 6e  64 20 73 65 6e 64 20 4d  |1+28) and send M|
000092c0  65 73 73 61 67 65 5f 4f  62 6a 65 63 74 50 6f 73  |essage_ObjectPos|
000092d0  69 74 69 6f 6e 2e 20 0a  0a 3c 50 3e 0a 0a 0a 54  |ition. ..<P>...T|
000092e0  68 65 20 62 6c 6f 63 6b  20 70 6f 69 6e 74 65 64  |he block pointed|
000092f0  20 74 6f 20 62 79 20 52  31 20 63 6f 6e 74 61 69  | to by R1 contai|
00009300  6e 73 3a 3c 50 3e 0a 0a  3c 50 52 45 3e 0a 52 31  |ns:<P>..<PRE>.R1|
00009310  2b 32 30 20 20 20 30 0a  52 31 2b 32 34 20 20 20  |+20   0.R1+24   |
00009320  41 64 64 72 65 73 73 20  6f 66 20 6f 62 6a 65 63  |Address of objec|
00009330  74 20 74 61 67 0a 52 31  2b 32 38 20 20 20 62 69  |t tag.R1+28   bi|
00009340  74 73 20 30 2d 32 37 20  46 6c 61 67 73 20 2d 20  |ts 0-27 Flags - |
00009350  72 65 73 65 72 76 65 64  20 61 6e 64 20 73 65 74  |reserved and set|
00009360  20 74 6f 20 7a 65 72 6f  2e 0a 20 20 20 20 20 20  | to zero..      |
00009370  20 20 62 69 74 73 20 32  38 2d 33 31 20 57 69 6e  |  bits 28-31 Win|
00009380  64 6f 77 20 27 77 6f 72  6b 20 61 72 65 61 27 20  |dow 'work area' |
00009390  62 75 74 74 6f 6e 20 74  79 70 65 20 74 6f 20 75  |button type to u|
000093a0  73 65 20 66 6f 72 20 74  72 61 70 20 69 63 6f 6e  |se for trap icon|
000093b0  2e 0a 52 31 2b 33 32 20  20 20 57 69 6e 64 6f 77  |..R1+32   Window|
000093c0  20 68 61 6e 64 6c 65 0a  52 31 2b 33 36 20 20 20  | handle.R1+36   |
000093d0  53 74 72 69 6e 67 2e 20  69 6e 64 69 72 65 63 74  |String. indirect|
000093e0  69 6f 6e 20 73 74 72 69  6e 67 20 66 6f 72 20 69  |ion string for i|
000093f0  63 6f 6e 20 6f 72 20 4e  75 6c 6c 20 28 26 30 29  |con or Null (&0)|
00009400  0a 3c 2f 50 52 45 3e 0a  3c 50 3e 0a 0a 54 6f 20  |.</PRE>.<P>..To |
00009410  6d 61 6b 65 20 6c 69 66  65 20 65 61 73 69 65 72  |make life easier|
00009420  20 66 6f 72 20 74 68 65  20 72 65 6d 6f 74 65 20  | for the remote |
00009430  74 61 73 6b 20 74 68 65  20 4c 6f 63 61 6c 20 74  |task the Local t|
00009440  61 73 6b 20 73 68 6f 75  6c 64 20 61 6c 73 6f 20  |ask should also |
00009450  74 61 6b 65 20 6e 6f 74  65 0a 6f 66 20 74 68 65  |take note.of the|
00009460  20 77 69 6e 64 6f 77 20  68 61 6e 64 6c 65 20 61  | window handle a|
00009470  74 20 52 31 2b 33 32 20  61 6e 64 20 69 6e 73 65  |t R1+32 and inse|
00009480  72 74 20 74 68 61 74 20  76 61 6c 75 65 20 69 6e  |rt that value in|
00009490  74 6f 20 74 68 65 20 77  69 6e 64 6f 77 20 68 61  |to the window ha|
000094a0  6e 64 6c 65 0a 66 69 65  6c 64 20 77 68 65 6e 20  |ndle.field when |
000094b0  70 61 73 73 69 6e 67 20  6f 6e 20 57 69 6d 70 20  |passing on Wimp |
000094c0  6d 65 73 73 61 67 65 73  2e 20 54 68 69 73 20 61  |messages. This a|
000094d0  6c 6c 6f 77 73 20 74 68  65 20 72 65 6d 6f 74 65  |llows the remote|
000094e0  20 74 61 73 6b 20 74 6f  20 75 73 65 20 6d 75 63  | task to use muc|
000094f0  68 0a 6f 66 20 74 68 65  20 73 61 6d 65 20 63 6f  |h.of the same co|
00009500  64 65 20 74 6f 20 64 65  61 6c 20 77 69 74 68 20  |de to deal with |
00009510  72 65 6d 6f 74 65 6c 79  20 67 65 6e 65 72 61 74  |remotely generat|
00009520  65 64 20 6d 65 73 73 61  67 65 73 20 61 6e 64 20  |ed messages and |
00009530  6d 65 73 73 61 67 65 73  20 74 6f 0a 74 68 65 69  |messages to.thei|
00009540  72 20 6f 77 6e 20 77 69  6e 64 6f 77 2e 0a 0a 3c  |r own window...<|
00009550  50 3e 0a 0a 54 68 65 20  6f 70 74 69 6f 6e 61 6c  |P>..The optional|
00009560  20 69 6e 64 69 72 65 63  74 69 6f 6e 20 73 74 72  | indirection str|
00009570  69 6e 67 20 61 74 20 52  31 2b 33 36 20 69 73 20  |ing at R1+36 is |
00009580  69 6e 74 65 6e 64 65 64  20 74 6f 20 61 6c 6c 6f  |intended to allo|
00009590  77 20 66 6f 72 20 61 64  64 69 6e 67 20 61 0a 6d  |w for adding a.m|
000095a0  6f 75 73 65 20 70 6f 69  6e 74 65 72 20 63 68 61  |ouse pointer cha|
000095b0  6e 67 65 20 77 68 65 6e  20 65 6e 74 65 72 69 6e  |nge when enterin|
000095c0  67 20 69 6e 2d 70 6c 61  63 65 20 65 64 69 74 65  |g in-place edite|
000095d0  64 20 6f 62 6a 65 63 74  73 2e 20 54 61 6b 65 20  |d objects. Take |
000095e0  63 61 72 65 20 77 69 74  68 0a 74 68 69 73 20 73  |care with.this s|
000095f0  74 72 69 6e 67 20 61 73  20 63 65 72 74 61 69 6e  |tring as certain|
00009600  20 73 65 74 74 69 6e 67  73 20 63 61 6e 20 64 69  | settings can di|
00009610  73 72 75 70 74 20 74 68  65 20 4c 6f 63 61 6c 20  |srupt the Local |
00009620  74 61 73 6b 27 73 20 6d  65 73 73 61 67 65 0a 74  |task's message.t|
00009630  72 61 70 70 69 6e 67 2e  20 54 68 69 73 20 65 78  |rapping. This ex|
00009640  74 65 6e 73 69 6f 6e 20  69 73 20 6f 70 74 69 6f  |tension is optio|
00009650  6e 61 6c 2e 20 53 6f 6d  65 20 6c 6f 63 61 6c 20  |nal. Some local |
00009660  74 61 73 6b 73 20 6d 61  79 20 6e 6f 74 20 73 75  |tasks may not su|
00009670  70 70 6f 72 74 20 69 74  20 73 6f 0a 64 6f 20 6e  |pport it so.do n|
00009680  6f 74 20 72 65 6c 79 20  6f 6e 20 69 74 2e 20 0a  |ot rely on it. .|
00009690  0a 3c 70 3e 0a 0a 49 66  20 74 68 65 20 72 65 6d  |.<p>..If the rem|
000096a0  6f 74 65 20 74 61 73 6b  20 69 73 20 61 6c 72 65  |ote task is alre|
000096b0  61 64 79 20 65 64 69 74  69 6e 67 20 61 6e 20 6f  |ady editing an o|
000096c0  62 6a 65 63 74 20 69 6e  2d 70 6c 61 63 65 20 28  |bject in-place (|
000096d0  61 6e 64 20 69 74 20 69  73 20 67 6f 69 6e 67 20  |and it is going |
000096e0  74 6f 0a 72 65 70 6c 61  63 65 20 69 74 29 20 74  |to.replace it) t|
000096f0  68 65 6e 20 69 74 20 73  68 6f 75 6c 64 20 73 65  |hen it should se|
00009700  6e 64 20 4d 65 73 73 61  67 65 5f 55 6e 68 6f 6f  |nd Message_Unhoo|
00009710  6b 20 74 6f 20 74 68 65  20 6c 6f 63 61 6c 20 74  |k to the local t|
00009720  61 73 6b 20 70 72 65 76  69 6f 75 73 6c 79 0a 62  |ask previously.b|
00009730  65 69 6e 67 20 77 6f 72  6b 65 64 20 77 69 74 68  |eing worked with|
00009740  20 73 6f 20 74 68 61 74  20 69 74 20 64 65 6c 65  | so that it dele|
00009750  74 65 73 20 69 74 73 20  74 72 61 70 20 69 63 6f  |tes its trap ico|
00009760  6e 2e 20 0a 0a 3c 50 3e  0a 0a 50 6c 65 61 73 65  |n. ..<P>..Please|
00009770  20 73 65 65 20 74 68 65  20 73 65 63 74 69 6f 6e  | see the section|
00009780  20 62 65 6c 6f 77 20 6f  6e 20 49 6e 2d 70 6c 61  | below on In-pla|
00009790  63 65 20 65 64 69 74 69  6e 67 20 66 6f 72 20 64  |ce editing for d|
000097a0  65 74 61 69 6c 73 20 6f  66 20 74 68 65 20 62 65  |etails of the be|
000097b0  73 74 0a 6d 65 74 68 6f  64 20 6f 66 20 74 72 61  |st.method of tra|
000097c0  70 70 69 6e 67 20 6d 65  73 73 61 67 65 73 20 61  |pping messages a|
000097d0  6e 64 20 74 68 65 20 61  6c 74 65 72 61 74 69 6f  |nd the alteratio|
000097e0  6e 73 20 77 68 69 63 68  20 73 68 6f 75 6c 64 20  |ns which should |
000097f0  62 65 20 6d 61 64 65 20  62 65 66 6f 72 65 0a 66  |be made before.f|
00009800  6f 72 77 61 72 64 69 6e  67 20 74 68 65 6d 2e 0a  |orwarding them..|
00009810  0a 3c 50 3e 0a 0a 3c 53  54 52 4f 4e 47 3e 0a 3c  |.<P>..<STRONG>.<|
00009820  41 20 4e 41 4d 45 3d 22  75 6e 68 6f 6f 6b 22 3e  |A NAME="unhook">|
00009830  0a 4d 65 73 73 61 67 65  5f 55 6e 68 6f 6f 6b 4d  |.Message_UnhookM|
00009840  65 0a 3c 2f 41 3e 20 28  26 38 33 34 39 32 29 20  |e.</A> (&83492) |
00009850  20 28 4d 73 67 5f 55 6e  68 6f 6f 6b 25 29 0a 0a  | (Msg_Unhook%)..|
00009860  3c 2f 53 54 52 4f 4e 47  3e 3c 50 3e 0a 0a 54 68  |</STRONG><P>..Th|
00009870  69 73 20 6d 65 73 73 61  67 65 20 69 73 20 73 65  |is message is se|
00009880  6e 74 20 62 79 20 61 20  72 65 6d 6f 74 65 20 74  |nt by a remote t|
00009890  61 73 6b 20 74 6f 20 74  68 65 20 4c 6f 63 61 6c  |ask to the Local|
000098a0  20 74 61 73 6b 20 28 6f  72 20 6c 6f 63 61 6c 20  | task (or local |
000098b0  74 6f 20 72 65 6d 6f 74  65 29 0a 77 68 65 6e 20  |to remote).when |
000098c0  69 74 20 77 61 6e 74 73  20 74 6f 20 27 75 6e 68  |it wants to 'unh|
000098d0  6f 6f 6b 27 20 66 72 6f  6d 20 74 68 65 20 6f 62  |ook' from the ob|
000098e0  6a 65 63 74 2e 0a 0a 3c  50 3e 0a 0a 54 68 65 20  |ject...<P>..The |
000098f0  62 6c 6f 63 6b 20 70 6f  69 6e 74 65 64 20 74 6f  |block pointed to|
00009900  20 62 79 20 52 31 20 63  6f 6e 74 61 69 6e 73 3a  | by R1 contains:|
00009910  3c 50 3e 0a 0a 3c 50 52  45 3e 0a 52 31 2b 32 30  |<P>..<PRE>.R1+20|
00009920  20 20 20 30 0a 52 31 2b  32 34 20 20 20 41 64 64  |   0.R1+24   Add|
00009930  72 65 73 73 20 6f 66 20  6f 62 6a 65 63 74 20 74  |ress of object t|
00009940  61 67 0a 52 31 2b 32 38  20 20 20 72 65 73 65 72  |ag.R1+28   reser|
00009950  76 65 64 20 20 2d 20 30  0a 52 31 2b 33 32 20 20  |ved  - 0.R1+32  |
00009960  20 57 69 6e 64 6f 77 20  68 61 6e 64 6c 65 0a 52  | Window handle.R|
00009970  31 2b 33 36 20 20 20 55  6e 68 6f 6f 6b 20 27 74  |1+36   Unhook 't|
00009980  79 70 65 27 0a 0a 3c 2f  50 52 45 3e 3c 50 3e 0a  |ype'..</PRE><P>.|
00009990  0a 54 68 69 73 20 6d 65  73 73 61 67 65 20 73 68  |.This message sh|
000099a0  6f 75 6c 64 20 62 65 20  75 73 65 64 20 62 79 20  |ould be used by |
000099b0  61 20 52 65 6d 6f 74 65  20 74 61 73 6b 20 74 6f  |a Remote task to|
000099c0  20 69 6e 64 69 63 61 74  65 20 69 74 73 20 6c 61  | indicate its la|
000099d0  63 6b 20 6f 66 0a 69 6e  74 65 72 65 73 74 20 69  |ck of.interest i|
000099e0  6e 20 61 6e 20 6f 62 6a  65 63 74 2e 20 41 66 74  |n an object. Aft|
000099f0  65 72 20 73 65 6e 64 69  6e 67 20 74 68 69 73 20  |er sending this |
00009a00  6d 65 73 73 61 67 65 20  74 68 65 20 52 65 6d 6f  |message the Remo|
00009a10  74 65 20 74 61 73 6b 20  73 68 6f 75 6c 64 0a 66  |te task should.f|
00009a20  6f 72 67 65 74 20 61 6e  79 20 72 65 66 65 72 65  |orget any refere|
00009a30  6e 63 65 73 20 74 6f 20  74 68 65 20 6f 62 6a 65  |nces to the obje|
00009a40  63 74 20 61 6e 64 20 63  6c 6f 73 65 20 69 74 73  |ct and close its|
00009a50  20 74 6f 6f 6c 62 61 72  20 61 6e 64 2f 6f 72 20  | toolbar and/or |
00009a60  77 69 6e 64 6f 77 2e 0a  0a 3c 50 3e 0a 0a 4c 69  |window...<P>..Li|
00009a70  74 74 6c 65 20 61 63 74  69 6f 6e 20 6e 65 65 64  |ttle action need|
00009a80  20 62 65 20 74 61 6b 65  6e 20 61 74 20 74 68 65  | be taken at the|
00009a90  20 4c 6f 63 61 6c 20 65  6e 64 20 6f 6e 20 72 65  | Local end on re|
00009aa0  63 65 69 70 74 20 6f 66  20 74 68 69 73 20 6d 65  |ceipt of this me|
00009ab0  73 73 61 67 65 0a 75 6e  6c 65 73 73 20 27 49 6e  |ssage.unless 'In|
00009ac0  70 6c 61 63 65 20 65 64  69 74 69 6e 67 27 20 69  |place editing' i|
00009ad0  73 20 67 6f 69 6e 67 20  6f 6e 20 62 65 74 77 65  |s going on betwe|
00009ae0  65 6e 20 74 68 65 20 74  61 73 6b 73 20 69 6e 20  |en the tasks in |
00009af0  77 68 69 63 68 20 63 61  73 65 20 69 74 0a 73 68  |which case it.sh|
00009b00  6f 75 6c 64 20 72 65 6d  6f 76 65 20 74 68 65 20  |ould remove the |
00009b10  74 72 61 70 73 20 6f 6e  20 42 75 74 74 6f 6e 20  |traps on Button |
00009b20  63 6c 69 63 6b 20 6d 65  73 73 61 67 65 73 20 65  |click messages e|
00009b30  74 63 20 66 6f 72 20 74  68 65 20 6f 62 6a 65 63  |tc for the objec|
00009b40  74 2e 20 49 66 20 74 68  65 0a 4c 6f 63 61 6c 20  |t. If the.Local |
00009b50  74 61 73 6b 20 77 69 73  68 65 73 20 74 6f 20 62  |task wishes to b|
00009b60  65 20 65 66 66 69 63 69  65 6e 74 20 69 6e 20 69  |e efficient in i|
00009b70  74 73 20 67 65 6e 65 72  61 74 69 6f 6e 20 6f 66  |ts generation of|
00009b80  20 50 43 41 20 6d 65 73  73 61 67 65 73 20 74 68  | PCA messages th|
00009b90  65 6e 20 69 74 0a 73 68  6f 75 6c 64 20 6b 65 65  |en it.should kee|
00009ba0  70 20 61 20 63 6f 75 6e  74 65 72 20 66 6f 72 20  |p a counter for |
00009bb0  65 61 63 68 20 6f 62 6a  65 63 74 20 69 6e 20 74  |each object in t|
00009bc0  68 65 20 50 43 41 20 73  79 73 74 65 6d 2c 20 69  |he PCA system, i|
00009bd0  6e 63 72 65 61 73 65 20  74 68 65 0a 63 6f 75 6e  |ncrease the.coun|
00009be0  74 65 72 20 6f 6e 20 65  61 63 68 20 63 61 6c 6c  |ter on each call|
00009bf0  20 74 6f 20 4d 65 73 73  61 67 65 5f 44 6f 59 6f  | to Message_DoYo|
00009c00  75 72 53 74 75 66 66 20  61 6e 64 20 64 65 63 72  |urStuff and decr|
00009c10  65 61 73 65 20 69 74 20  6f 6e 20 65 61 63 68 20  |ease it on each |
00009c20  72 65 63 65 69 70 74 0a  6f 66 20 4d 65 73 73 61  |receipt.of Messa|
00009c30  67 65 5f 55 6e 48 6f 6f  6b 2e 20 54 68 65 6e 20  |ge_UnHook. Then |
00009c40  50 43 41 20 6d 65 73 73  61 67 65 73 20 6e 65 65  |PCA messages nee|
00009c50  64 20 6f 6e 6c 79 20 62  65 20 67 65 6e 65 72 61  |d only be genera|
00009c60  74 65 64 20 69 6e 20 72  65 73 70 6f 6e 73 65 20  |ted in response |
00009c70  74 6f 0a 63 68 61 6e 67  65 73 20 6d 61 64 65 20  |to.changes made |
00009c80  62 79 20 74 68 65 20 4c  6f 63 61 6c 20 74 61 73  |by the Local tas|
00009c90  6b 20 69 66 20 74 68 65  20 6f 62 6a 65 63 74 73  |k if the objects|
00009ca0  20 63 6f 75 6e 74 65 72  20 69 73 20 67 72 65 61  | counter is grea|
00009cb0  74 65 72 20 74 68 61 6e  20 7a 65 72 6f 2e 0a 57  |ter than zero..W|
00009cc0  68 65 6e 20 74 68 65 20  63 6f 75 6e 74 65 72 20  |hen the counter |
00009cd0  72 65 61 63 68 65 73 20  7a 65 72 6f 20 74 68 65  |reaches zero the|
00009ce0  20 4c 6f 63 61 6c 20 74  61 73 6b 20 73 68 6f 75  | Local task shou|
00009cf0  6c 64 20 62 72 6f 61 64  63 61 73 74 20 4d 65 73  |ld broadcast Mes|
00009d00  73 61 67 65 5f 44 65 73  65 6c 65 63 74 0a 61 73  |sage_Deselect.as|
00009d10  20 61 20 73 61 66 74 65  79 20 6d 65 61 73 75 72  | a saftey measur|
00009d20  65 20 74 6f 20 65 6e 73  75 72 65 20 74 68 61 74  |e to ensure that|
00009d30  20 61 6c 6c 20 52 65 6d  6f 74 65 20 74 61 73 6b  | all Remote task|
00009d40  73 20 73 74 6f 70 20 75  73 69 6e 67 20 74 68 65  |s stop using the|
00009d50  20 6f 62 6a 65 63 74 2e  0a 0a 3c 50 3e 0a 0a 54  | object...<P>..T|
00009d60  68 65 20 27 75 6e 68 6f  6f 6b 20 74 79 70 65 27  |he 'unhook type'|
00009d70  20 61 74 20 52 31 2b 33  36 20 63 75 72 72 65 6e  | at R1+36 curren|
00009d80  74 6c 79 20 68 61 73 20  74 77 6f 20 64 65 66 69  |tly has two defi|
00009d90  6e 65 64 20 76 61 6c 75  65 73 3a 0a 3c 50 3e 0a  |ned values:.<P>.|
00009da0  0a 3c 50 52 45 3e 0a 52  31 2b 33 36 20 20 20 30  |.<PRE>.R1+36   0|
00009db0  20 27 55 6e 68 6f 6f 6b  27 20 69 73 20 74 65 6d  | 'Unhook' is tem|
00009dc0  70 6f 72 61 72 79 0a 20  20 20 20 20 20 20 20 20  |porary.         |
00009dd0  20 28 75 73 65 64 20 62  79 20 43 6f 6d 70 6f 20  | (used by Compo |
00009de0  74 6f 20 73 75 70 70 6f  72 74 20 74 68 65 20 27  |to support the '|
00009df0  54 72 61 63 6b 20 73 65  6c 65 63 74 65 64 27 0a  |Track selected'.|
00009e00  20 20 20 20 20 20 20 20  20 20 70 72 65 66 65 72  |          prefer|
00009e10  65 6e 63 65 20 6f 70 74  69 6f 6e 29 0a 52 31 2b  |ence option).R1+|
00009e20  33 36 20 20 20 31 20 27  55 6e 68 6f 6f 6b 27 20  |36   1 'Unhook' |
00009e30  69 73 20 70 65 72 6d 61  6e 65 6e 74 20 2d 20 66  |is permanent - f|
00009e40  6f 72 67 65 74 20 61 62  6f 75 74 20 74 68 69 73  |orget about this|
00009e50  20 50 43 41 2e 0a 3c 2f  50 52 45 3e 3c 50 3e 0a  | PCA..</PRE><P>.|
00009e60  0a 0a 41 6c 6c 20 76 61  6c 75 65 73 20 6f 74 68  |..All values oth|
00009e70  65 72 20 74 68 61 6e 20  7a 65 72 6f 20 73 68 6f  |er than zero sho|
00009e80  75 6c 64 20 63 75 72 72  65 6e 74 6c 79 20 62 65  |uld currently be|
00009e90  20 74 72 65 61 74 65 64  20 61 73 20 27 70 65 72  | treated as 'per|
00009ea0  6d 61 6e 65 6e 74 27 2e  3c 50 3e 0a 3c 50 3e 0a  |manent'.<P>.<P>.|
00009eb0  3c 41 20 48 52 45 46 3d  22 23 74 6f 70 22 3e 52  |<A HREF="#top">R|
00009ec0  65 74 75 72 6e 20 74 6f  20 43 6f 6e 74 65 6e 74  |eturn to Content|
00009ed0  73 3c 2f 41 3e 0a 3c 48  52 3e 0a 0a 3c 48 31 3e  |s</A>.<HR>..<H1>|
00009ee0  3c 41 20 4e 41 4d 45 3d  22 72 65 6d 6f 74 65 22  |<A NAME="remote"|
00009ef0  3e 50 43 41 20 49 6e 2d  70 6c 61 63 65 20 65 64  |>PCA In-place ed|
00009f00  69 74 69 6e 67 20 73 70  65 63 69 66 69 63 61 74  |iting specificat|
00009f10  69 6f 6e 3c 2f 41 3e 3c  2f 48 31 3e 3c 50 3e 0a  |ion</A></H1><P>.|
00009f20  3c 41 55 3e 0a 0a 41 75  74 68 6f 72 20 20 3a 20  |<AU>..Author  : |
00009f30  52 6f 62 20 44 61 76 69  73 6f 6e 20 28 72 64 61  |Rob Davison (rda|
00009f40  76 69 73 6f 6e 40 78 74  72 61 2e 63 6f 2e 6e 7a  |vison@xtra.co.nz|
00009f50  29 3c 42 52 3e 0a 0a 44  61 74 65 20 20 20 20 3a  |)<BR>..Date    :|
00009f60  20 31 35 2f 30 38 2f 39  36 3c 42 52 3e 0a 0a 53  | 15/08/96<BR>..S|
00009f70  74 61 74 75 73 20 20 3a  20 52 65 6c 65 61 73 65  |tatus  : Release|
00009f80  20 31 3c 42 52 3e 0a 0a  0a 3c 2f 41 55 3e 0a 0a  | 1<BR>...</AU>..|
00009f90  3c 48 32 3e 0a 49 6e 74  72 6f 64 75 63 74 69 6f  |<H2>.Introductio|
00009fa0  6e 0a 3c 2f 48 32 3e 0a  0a 3c 50 3e 0a 0a 54 68  |n.</H2>..<P>..Th|
00009fb0  65 20 61 69 6d 20 6f 66  20 74 68 69 73 20 73 65  |e aim of this se|
00009fc0  63 74 69 6f 6e 20 69 73  20 74 6f 20 64 65 66 69  |ction is to defi|
00009fd0  6e 65 20 74 68 65 20 77  6f 72 6b 20 6e 65 63 65  |ne the work nece|
00009fe0  73 73 61 72 79 20 66 6f  72 20 61 70 70 6c 69 63  |ssary for applic|
00009ff0  61 74 69 6f 6e 73 20 74  6f 0a 73 75 70 70 6f 72  |ations to.suppor|
0000a000  74 20 27 69 6e 2d 70 6c  61 63 65 27 20 65 64 69  |t 'in-place' edi|
0000a010  74 69 6e 67 20 28 61 70  70 6c 69 63 61 74 69 6f  |ting (applicatio|
0000a020  6e 73 20 77 6f 72 6b 69  6e 67 20 6f 6e 20 61 6e  |ns working on an|
0000a030  20 6f 62 6a 65 63 74 20  77 69 74 68 69 6e 20 61  | object within a|
0000a040  6e 6f 74 68 65 72 0a 61  70 70 6c 69 63 61 74 69  |nother.applicati|
0000a050  6f 6e 27 73 20 77 69 6e  64 6f 77 29 20 77 69 74  |on's window) wit|
0000a060  68 69 6e 20 74 68 65 20  66 72 61 6d 65 77 6f 72  |hin the framewor|
0000a070  6b 20 73 75 70 70 6c 69  65 64 20 62 79 20 74 68  |k supplied by th|
0000a080  65 20 50 43 41 20 69 74  73 65 6c 66 2e 0a 0a 3c  |e PCA itself...<|
0000a090  50 3e 0a 0a 54 68 69 73  20 66 65 61 74 75 72 65  |P>..This feature|
0000a0a0  20 69 73 20 61 6e 20 6f  70 74 69 6f 6e 61 6c 20  | is an optional |
0000a0b0  70 61 72 74 20 6f 66 20  74 68 65 20 50 43 41 20  |part of the PCA |
0000a0c0  73 70 65 63 69 66 69 63  61 74 69 6f 6e 2e 20 41  |specification. A|
0000a0d0  6c 6c 20 72 65 6d 6f 74  65 20 74 61 73 6b 73 0a  |ll remote tasks.|
0000a0e0  6d 75 73 74 20 62 65 20  61 62 6c 65 20 74 6f 20  |must be able to |
0000a0f0  6f 70 65 72 61 74 65 20  61 63 63 6f 72 64 69 6e  |operate accordin|
0000a100  67 20 74 6f 20 74 68 65  20 6e 6f 72 6d 61 6c 20  |g to the normal |
0000a110  50 43 41 20 73 70 65 63  69 66 69 63 61 74 69 6f  |PCA specificatio|
0000a120  6e 20 28 6f 70 65 6e 0a  74 68 65 69 72 20 6f 77  |n (open.their ow|
0000a130  6e 20 77 69 6e 64 6f 77  20 6f 6e 74 6f 20 74 68  |n window onto th|
0000a140  65 20 6f 62 6a 65 63 74  29 20 69 66 20 74 68 65  |e object) if the|
0000a150  20 4c 6f 63 61 6c 20 74  61 73 6b 20 69 6e 20 71  | Local task in q|
0000a160  75 65 73 74 69 6f 6e 20  64 6f 65 73 20 6e 6f 74  |uestion does not|
0000a170  0a 73 75 70 70 6f 72 74  20 69 6e 2d 70 6c 61 63  |.support in-plac|
0000a180  65 20 65 64 69 74 69 6e  67 2e 20 45 76 65 6e 20  |e editing. Even |
0000a190  69 66 20 74 68 65 20 4c  6f 63 61 6c 20 74 61 73  |if the Local tas|
0000a1a0  6b 20 64 6f 65 73 20 73  75 70 70 6f 72 74 20 74  |k does support t|
0000a1b0  68 69 73 2c 20 69 74 20  69 73 0a 77 69 73 65 20  |his, it is.wise |
0000a1c0  66 6f 72 20 74 68 65 20  72 65 6d 6f 74 65 20 74  |for the remote t|
0000a1d0  61 73 6b 20 74 6f 20 67  69 76 65 20 74 68 65 20  |ask to give the |
0000a1e0  75 73 65 72 20 74 68 65  20 6f 70 74 69 6f 6e 20  |user the option |
0000a1f0  6f 66 20 73 77 69 74 63  68 69 6e 67 20 74 6f 0a  |of switching to.|
0000a200  65 78 74 65 72 6e 61 6c  20 65 64 69 74 69 6e 67  |external editing|
0000a210  20 61 73 20 69 6e 2d 70  6c 61 63 65 20 65 64 69  | as in-place edi|
0000a220  74 69 6e 67 20 68 61 73  20 69 74 73 20 64 69 73  |ting has its dis|
0000a230  61 64 76 61 6e 74 61 67  65 73 20 61 73 20 77 65  |advantages as we|
0000a240  6c 6c 20 61 73 0a 61 64  76 61 6e 74 61 67 65 73  |ll as.advantages|
0000a250  2e 20 28 54 68 65 20 70  72 69 6e 63 69 70 61 6c  |. (The principal|
0000a260  20 64 69 73 61 64 76 61  6e 74 61 67 65 20 62 65  | disadvantage be|
0000a270  69 6e 67 20 74 68 61 74  0a 6f 6e 6c 79 20 6f 6e  |ing that.only on|
0000a280  65 20 69 6e 2d 70 6c 61  63 65 20 65 64 69 74 69  |e in-place editi|
0000a290  6e 67 20 73 65 73 73 69  6f 6e 20 70 65 72 20 6f  |ng session per o|
0000a2a0  62 6a 65 63 74 20 63 61  6e 20 62 65 20 75 6e 64  |bject can be und|
0000a2b0  65 72 74 61 6b 65 6e 20  61 74 20 61 20 74 69 6d  |ertaken at a tim|
0000a2c0  65 2c 0a 66 6f 72 20 6f  62 76 69 6f 75 73 20 72  |e,.for obvious r|
0000a2d0  65 61 73 6f 6e 73 29 2e  0a 0a 3c 50 3e 0a 0a 0a  |easons)...<P>...|
0000a2e0  3c 42 3e 0a 4c 6f 63 61  6c 20 74 61 73 6b 0a 0a  |<B>.Local task..|
0000a2f0  3c 2f 42 3e 3c 50 3e 0a  54 68 65 20 67 72 65 61  |</B><P>.The grea|
0000a300  74 65 73 74 20 61 6d 6f  75 6e 74 20 6f 66 20 77  |test amount of w|
0000a310  6f 72 6b 20 69 73 20 64  6f 77 6e 20 74 6f 20 74  |ork is down to t|
0000a320  68 65 20 27 4c 6f 63 61  6c 27 20 6f 72 20 6f 62  |he 'Local' or ob|
0000a330  6a 65 63 74 2d 6f 77 6e  69 6e 67 20 61 70 70 6c  |ject-owning appl|
0000a340  69 63 61 74 69 6f 6e 2e  0a 3c 50 3e 0a 0a 41 66  |ication..<P>..Af|
0000a350  74 65 72 20 69 6e 76 6f  6b 69 6e 67 20 61 20 72  |ter invoking a r|
0000a360  65 6d 6f 74 65 20 74 61  73 6b 20 77 69 74 68 20  |emote task with |
0000a370  74 68 65 20 50 43 41 20  6d 65 73 73 61 67 65 20  |the PCA message |
0000a380  44 6f 59 6f 75 72 53 74  75 66 66 20 77 68 65 6e  |DoYourStuff when|
0000a390  20 62 69 74 20 34 20 6f  66 0a 74 68 65 20 66 6c  | bit 4 of.the fl|
0000a3a0  61 67 73 20 77 6f 72 64  20 69 73 20 73 65 74 2c  |ags word is set,|
0000a3b0  20 69 74 20 6d 75 73 74  20 65 78 70 65 63 74 20  | it must expect |
0000a3c0  72 65 63 65 69 70 74 20  6f 66 20 3c 41 0a 48 52  |receipt of <A.HR|
0000a3d0  45 46 3d 22 23 68 6f 6f  6b 22 3e 4d 65 73 73 61  |EF="#hook">Messa|
0000a3e0  67 65 5f 48 6f 6f 6b 4d  65 3c 2f 41 3e 20 66 72  |ge_HookMe</A> fr|
0000a3f0  6f 6d 20 74 68 65 20 72  65 6d 6f 74 65 20 74 61  |om the remote ta|
0000a400  73 6b 2e 20 57 68 65 6e  20 69 74 20 67 65 74 73  |sk. When it gets|
0000a410  20 74 68 69 73 0a 6d 65  73 73 61 67 65 20 69 74  | this.message it|
0000a420  20 73 68 6f 75 6c 64 20  63 72 65 61 74 65 20 61  | should create a|
0000a430  20 74 72 61 6e 73 70 61  72 65 6e 74 20 69 63 6f  | transparent ico|
0000a440  6e 20 69 6e 20 69 74 73  20 77 69 6e 64 6f 77 20  |n in its window |
0000a450  77 68 69 63 68 20 63 6f  6d 70 6c 65 74 65 6c 79  |which completely|
0000a460  0a 63 6f 76 65 72 73 20  74 68 65 20 6f 62 6a 65  |.covers the obje|
0000a470  63 74 20 61 6e 64 20 73  65 6e 64 20 3c 41 20 48  |ct and send <A H|
0000a480  52 45 46 3d 22 23 70 6f  73 22 3e 4d 65 73 73 61  |REF="#pos">Messa|
0000a490  67 65 5f 4f 62 6a 65 63  74 50 6f 73 69 74 69 6f  |ge_ObjectPositio|
0000a4a0  6e 3c 2f 41 3e 2e 0a 0a  3c 50 3e 0a 0a 54 68 65  |n</A>...<P>..The|
0000a4b0  20 62 75 74 74 6f 6e 20  74 79 70 65 20 6f 66 20  | button type of |
0000a4c0  74 68 69 73 20 69 63 6f  6e 20 73 68 6f 75 6c 64  |this icon should|
0000a4d0  20 62 65 20 74 61 6b 65  6e 20 66 72 6f 6d 20 62  | be taken from b|
0000a4e0  69 74 73 20 32 38 2d 33  31 20 6f 66 20 74 68 65  |its 28-31 of the|
0000a4f0  20 66 6c 61 67 73 0a 77  6f 72 64 20 61 73 20 73  | flags.word as s|
0000a500  65 6e 74 20 62 79 20 3c  41 20 48 52 45 46 3d 22  |ent by <A HREF="|
0000a510  23 68 6f 6f 6b 22 3e 4d  65 73 73 61 67 65 5f 48  |#hook">Message_H|
0000a520  6f 6f 6b 4d 65 3c 2f 41  3e 20 61 6e 64 20 74 68  |ookMe</A> and th|
0000a530  65 20 69 6e 64 69 72 65  63 74 69 6f 6e 0a 73 74  |e indirection.st|
0000a540  72 69 6e 67 20 28 69 66  20 73 75 70 70 6f 72 74  |ring (if support|
0000a550  65 64 29 20 66 72 6f 6d  20 52 31 2b 33 36 0a 0a  |ed) from R1+36..|
0000a560  3c 50 3e 0a 0a 54 68 65  6e 2c 20 6f 6e 20 72 65  |<P>..Then, on re|
0000a570  63 65 69 70 74 20 6f 66  20 74 68 65 20 66 6f 6c  |ceipt of the fol|
0000a580  6c 6f 77 69 6e 67 20 73  74 61 6e 64 61 72 64 20  |lowing standard |
0000a590  57 69 6d 70 20 6d 65 73  73 61 67 65 73 20 74 68  |Wimp messages th|
0000a5a0  65 20 4c 6f 63 61 6c 20  74 61 73 6b 20 6d 75 73  |e Local task mus|
0000a5b0  74 0a 63 68 65 63 6b 20  74 6f 20 73 65 65 20 69  |t.check to see i|
0000a5c0  66 20 74 68 65 20 6d 65  73 73 61 67 65 20 72 65  |f the message re|
0000a5d0  66 65 72 73 20 74 6f 20  61 6e 20 69 63 6f 6e 20  |fers to an icon |
0000a5e0  63 6f 76 65 72 69 6e 67  20 74 68 65 20 6f 62 6a  |covering the obj|
0000a5f0  65 63 74 2c 20 61 6e 64  20 69 66 20 69 74 0a 69  |ect, and if it.i|
0000a600  73 2c 20 6d 6f 64 69 66  79 20 74 68 65 20 6d 65  |s, modify the me|
0000a610  73 73 61 67 65 20 62 6c  6f 63 6b 20 61 6e 64 20  |ssage block and |
0000a620  70 61 73 73 20 74 68 65  20 6d 65 73 73 61 67 65  |pass the message|
0000a630  20 74 6f 20 74 68 65 20  72 65 6d 6f 74 65 20 74  | to the remote t|
0000a640  61 73 6b 20 75 73 69 6e  67 0a 57 69 6d 70 5f 53  |ask using.Wimp_S|
0000a650  65 6e 64 4d 65 73 73 61  67 65 2e 0a 3c 50 3e 0a  |endMessage..<P>.|
0000a660  0a 44 6f 69 6e 67 20 74  68 69 73 20 65 66 66 65  |.Doing this effe|
0000a670  63 74 69 76 65 6c 79 20  63 75 74 73 20 61 20 27  |ctively cuts a '|
0000a680  68 6f 6c 65 27 20 69 6e  20 74 68 65 20 77 69 6e  |hole' in the win|
0000a690  64 6f 77 20 77 68 65 72  65 20 74 68 65 20 6f 62  |dow where the ob|
0000a6a0  6a 65 63 74 20 69 73 2e  0a 4d 65 73 73 61 67 65  |ject is..Message|
0000a6b0  73 20 69 6e 74 6f 20 74  68 61 74 20 72 65 67 69  |s into that regi|
0000a6c0  6f 6e 20 67 65 74 20 73  68 75 6e 74 65 64 20 74  |on get shunted t|
0000a6d0  6f 20 74 68 65 20 52 65  6d 6f 74 65 20 74 61 73  |o the Remote tas|
0000a6e0  6b 20 61 6e 64 20 61 72  65 20 69 67 6e 6f 72 65  |k and are ignore|
0000a6f0  64 20 62 79 0a 74 68 65  20 4c 6f 63 61 6c 20 74  |d by.the Local t|
0000a700  61 73 6b 2e 0a 3c 50 3e  0a 0a 3c 48 33 3e 0a 44  |ask..<P>..<H3>.D|
0000a710  65 74 61 69 6c 73 20 6f  66 20 74 68 65 20 6d 6f  |etails of the mo|
0000a720  64 69 66 69 63 61 74 69  6f 6e 73 3a 0a 0a 3c 2f  |difications:..</|
0000a730  48 33 3e 3c 50 3e 0a 0a  3c 42 3e 0a 36 2e 20 42  |H3><P>..<B>.6. B|
0000a740  75 74 74 6f 6e 5f 43 6c  69 63 6b 0a 3c 2f 42 3e  |utton_Click.</B>|
0000a750  3c 50 3e 0a 0a 78 70 6f  73 69 74 69 6f 6e 20 61  |<P>..xposition a|
0000a760  6e 64 20 79 70 6f 73 69  74 69 6f 6e 20 73 68 6f  |nd yposition sho|
0000a770  75 6c 64 20 62 65 20 6d  61 64 65 20 72 65 6c 61  |uld be made rela|
0000a780  74 69 76 65 20 74 6f 20  74 68 65 20 6f 62 6a 65  |tive to the obje|
0000a790  63 74 27 73 20 62 6f 74  74 6f 6d 20 6c 65 66 74  |ct's bottom left|
0000a7a0  2e 0a 57 69 6e 64 6f 77  20 68 61 6e 64 6c 65 20  |..Window handle |
0000a7b0  6d 75 73 74 20 62 65 20  73 65 74 20 74 6f 20 74  |must be set to t|
0000a7c0  68 65 20 6f 6e 65 20 73  75 70 70 6c 69 65 64 20  |he one supplied |
0000a7d0  69 6e 20 3c 41 0a 48 52  45 46 3d 22 23 68 6f 6f  |in <A.HREF="#hoo|
0000a7e0  6b 22 3e 4d 65 73 73 61  67 65 5f 48 6f 6f 6b 4d  |k">Message_HookM|
0000a7f0  65 3c 2f 41 3e 2e 20 49  63 6f 6e 20 68 61 6e 64  |e</A>. Icon hand|
0000a800  6c 65 20 6d 75 73 74 20  62 65 20 73 65 74 20 74  |le must be set t|
0000a810  6f 20 74 68 65 20 73 70  65 63 69 61 6c 0a 76 61  |o the special.va|
0000a820  6c 75 65 20 2d 26 34 31  34 33 35 30 20 28 2d 22  |lue -&414350 (-"|
0000a830  50 43 41 22 29 0a 0a 3c  50 3e 0a 0a 3f 3f 3f 20  |PCA")..<P>..??? |
0000a840  4f 74 68 65 72 20 6d 65  73 73 61 67 65 73 20 3f  |Other messages ?|
0000a850  3f 3f 3c 42 52 3e 0a 3f  3f 3f 20 57 68 69 63 68  |??<BR>.??? Which|
0000a860  20 74 6f 20 73 75 70 70  6f 72 74 20 61 6e 64 20  | to support and |
0000a870  68 6f 77 20 74 6f 20 6d  6f 64 69 66 79 20 74 68  |how to modify th|
0000a880  65 6d 20 3f 3f 3f 3c 42  52 3e 0a 3f 3f 3f 20 41  |em ???<BR>.??? A|
0000a890  64 76 69 73 65 20 75 73  20 69 66 20 79 6f 75 20  |dvise us if you |
0000a8a0  68 61 76 65 20 61 6e 79  20 73 75 67 67 65 73 74  |have any suggest|
0000a8b0  69 6f 6e 73 20 3f 3f 3f  0a 3c 50 3e 0a 0a 4f 6e  |ions ???.<P>..On|
0000a8c0  20 72 65 63 65 69 70 74  20 6f 66 20 4d 65 73 73  | receipt of Mess|
0000a8d0  61 67 65 5f 4f 70 65 6e  57 69 6e 64 6f 77 20 66  |age_OpenWindow f|
0000a8e0  6f 72 20 74 68 65 20 77  69 6e 64 6f 77 20 69 6e  |or the window in|
0000a8f0  20 77 68 69 63 68 20 74  68 65 20 6f 62 6a 65 63  | which the objec|
0000a900  74 20 72 65 73 69 64 65  73 0a 74 68 65 20 4c 6f  |t resides.the Lo|
0000a910  63 61 6c 20 74 61 73 6b  20 6d 75 73 74 20 73 65  |cal task must se|
0000a920  6e 64 20 3c 41 20 48 52  45 46 3d 22 23 70 6f 73  |nd <A HREF="#pos|
0000a930  22 3e 4d 65 73 73 61 67  65 5f 4f 62 6a 65 63 74  |">Message_Object|
0000a940  50 6f 73 69 74 69 6f 6e  3c 2f 41 3e 20 74 6f 20  |Position</A> to |
0000a950  74 68 65 0a 72 65 6d 6f  74 65 20 74 61 73 6b 20  |the.remote task |
0000a960  73 6f 20 74 68 61 74 20  69 74 20 63 61 6e 20 6f  |so that it can o|
0000a970  70 65 6e 20 69 74 73 20  74 6f 6f 6c 62 61 72 20  |pen its toolbar |
0000a980  61 74 20 61 6e 20 61 70  70 72 6f 70 72 69 61 74  |at an appropriat|
0000a990  65 20 70 6c 61 63 65 2e  0a 0a 3c 50 3e 0a 0a 41  |e place...<P>..A|
0000a9a0  6c 73 6f 2c 20 61 6e 79  20 61 63 74 69 6f 6e 73  |lso, any actions|
0000a9b0  20 77 68 69 63 68 20 63  61 75 73 65 20 74 68 65  | which cause the|
0000a9c0  20 70 6f 73 69 74 69 6f  6e 20 6f 72 20 73 69 7a  | position or siz|
0000a9d0  65 20 6f 66 20 74 68 65  20 72 65 6d 6f 74 65 6c  |e of the remotel|
0000a9e0  79 20 6c 69 6e 6b 65 64  0a 6f 62 6a 65 63 74 20  |y linked.object |
0000a9f0  74 6f 20 63 68 61 6e 67  65 20 6d 75 73 74 20 72  |to change must r|
0000aa00  65 73 69 7a 65 20 61 6e  64 20 72 65 70 6f 73 69  |esize and reposi|
0000aa10  74 69 6f 6e 20 74 68 65  20 69 63 6f 6e 20 63 72  |tion the icon cr|
0000aa20  65 61 74 65 64 20 61 62  6f 76 65 20 61 6e 64 20  |eated above and |
0000aa30  73 65 6e 64 0a 3c 41 20  48 52 45 46 3d 22 23 70  |send.<A HREF="#p|
0000aa40  6f 73 22 3e 4d 65 73 73  61 67 65 5f 4f 62 6a 65  |os">Message_Obje|
0000aa50  63 74 50 6f 73 69 74 69  6f 6e 3c 2f 41 3e 20 61  |ctPosition</A> a|
0000aa60  67 61 69 6e 2e 0a 0a 3c  50 3e 0a 0a 4f 6e 20 72  |gain...<P>..On r|
0000aa70  65 63 65 69 70 74 20 6f  66 20 3c 41 20 48 52 45  |eceipt of <A HRE|
0000aa80  46 3d 22 23 75 6e 68 6f  6f 6b 22 3e 4d 65 73 73  |F="#unhook">Mess|
0000aa90  61 67 65 5f 55 6e 68 6f  6f 6b 4d 65 3c 2f 41 3e  |age_UnhookMe</A>|
0000aaa0  20 69 74 20 6d 75 73 74  20 64 65 6c 65 74 65 20  | it must delete |
0000aab0  74 68 65 20 69 63 6f 6e  0a 63 6f 76 65 72 69 6e  |the icon.coverin|
0000aac0  67 20 74 68 65 20 6f 62  6a 65 63 74 20 61 6e 64  |g the object and|
0000aad0  20 63 61 72 72 79 20 6f  75 74 20 61 6e 79 20 6f  | carry out any o|
0000aae0  74 68 65 72 20 77 6f 72  6b 20 6e 65 63 65 73 73  |ther work necess|
0000aaf0  61 72 79 20 74 6f 20 72  65 73 74 6f 72 65 20 6e  |ary to restore n|
0000ab00  6f 72 6d 61 6c 0a 61 63  63 65 73 73 20 74 6f 20  |ormal.access to |
0000ab10  74 68 65 20 6f 62 6a 65  63 74 2e 20 54 68 65 20  |the object. The |
0000ab20  73 61 6d 65 20 61 63 74  69 6f 6e 20 73 68 6f 75  |same action shou|
0000ab30  6c 64 20 6f 62 76 69 6f  75 73 6c 79 20 61 6c 73  |ld obviously als|
0000ab40  6f 20 62 65 20 75 6e 64  65 72 74 61 6b 65 6e 20  |o be undertaken |
0000ab50  69 66 0a 74 68 65 20 6f  62 6a 65 63 74 20 69 73  |if.the object is|
0000ab60  20 64 65 6c 65 74 65 64  2e 0a 0a 3c 50 3e 0a 3c  | deleted...<P>.<|
0000ab70  42 3e 52 65 6d 6f 74 65  20 54 61 73 6b 3c 2f 42  |B>Remote Task</B|
0000ab80  3e 0a 3c 50 3e 0a 0a 4f  6e 20 72 65 63 65 69 70  |>.<P>..On receip|
0000ab90  74 20 6f 66 20 3c 41 20  48 52 45 46 3d 22 23 70  |t of <A HREF="#p|
0000aba0  6f 73 22 3e 4d 65 73 73  61 67 65 5f 4f 62 6a 65  |os">Message_Obje|
0000abb0  63 74 50 6f 73 69 74 69  6f 6e 3c 2f 41 3e 20 74  |ctPosition</A> t|
0000abc0  68 65 20 72 65 6d 6f 74  65 20 74 61 73 6b 20 6d  |he remote task m|
0000abd0  75 73 74 0a 6f 70 65 6e  20 69 74 73 20 74 6f 6f  |ust.open its too|
0000abe0  6c 62 61 72 20 61 74 20  61 6e 20 61 70 70 72 6f  |lbar at an appro|
0000abf0  70 72 69 61 74 65 20 70  6f 73 69 74 69 6f 6e 20  |priate position |
0000ac00  63 61 6c 63 75 6c 61 74  65 64 20 66 72 6f 6d 20  |calculated from |
0000ac10  74 68 65 20 64 61 74 61  0a 63 6f 6e 74 61 69 6e  |the data.contain|
0000ac20  65 64 20 69 6e 20 74 68  65 20 6d 65 73 73 61 67  |ed in the messag|
0000ac30  65 2e 0a 0a 3c 50 3e 0a  0a 54 68 69 73 20 74 6f  |e...<P>..This to|
0000ac40  6f 6c 62 61 72 20 6d 75  73 74 20 63 6f 6e 74 61  |olbar must conta|
0000ac50  69 6e 20 61 74 20 6c 65  61 73 74 20 6f 6e 65 20  |in at least one |
0000ac60  69 63 6f 6e 20 77 68 69  63 68 2c 20 77 68 65 6e  |icon which, when|
0000ac70  20 63 6c 69 63 6b 65 64  20 6f 6e 2c 20 73 65 6e  | clicked on, sen|
0000ac80  64 73 20 3c 41 0a 48 52  45 46 3d 22 23 75 6e 68  |ds <A.HREF="#unh|
0000ac90  6f 6f 6b 22 3e 4d 65 73  73 61 67 65 5f 55 6e 68  |ook">Message_Unh|
0000aca0  6f 6f 6b 4d 65 3c 2f 41  3e 20 74 6f 20 74 68 65  |ookMe</A> to the|
0000acb0  20 6c 6f 63 61 6c 20 74  61 73 6b 2c 20 72 65 6d  | local task, rem|
0000acc0  6f 76 65 73 20 61 6e 79  0a 72 65 66 65 72 65 6e  |oves any.referen|
0000acd0  63 65 73 20 69 74 20 68  61 73 20 74 6f 20 74 68  |ces it has to th|
0000ace0  65 20 6f 62 6a 65 63 74  20 61 6e 64 20 63 6c 6f  |e object and clo|
0000acf0  73 65 73 20 74 68 65 20  74 6f 6f 6c 62 61 72 2e  |ses the toolbar.|
0000ad00  20 4d 6f 64 65 6c 20 74  68 65 20 61 70 70 65 61  | Model the appea|
0000ad10  72 61 6e 63 65 0a 6f 66  20 74 68 69 73 20 69 63  |rance.of this ic|
0000ad20  6f 6e 20 6f 6e 20 74 68  65 20 77 69 6e 64 6f 77  |on on the window|
0000ad30  20 63 6c 6f 73 65 20 69  63 6f 6e 20 61 6e 64 20  | close icon and |
0000ad40  70 6f 73 69 74 69 6f 6e  20 74 68 65 20 69 63 6f  |position the ico|
0000ad50  6e 20 61 74 20 74 68 65  20 66 61 72 20 6c 65 66  |n at the far lef|
0000ad60  74 0a 68 6f 72 69 7a 6f  6e 74 61 6c 20 74 6f 6f  |t.horizontal too|
0000ad70  6c 62 61 72 73 20 6f 72  20 61 74 20 74 68 65 20  |lbars or at the |
0000ad80  74 6f 70 20 6c 65 66 74  20 6f 66 20 76 65 72 74  |top left of vert|
0000ad90  69 63 61 6c 20 74 6f 6f  6c 62 61 72 73 2e 0a 0a  |ical toolbars...|
0000ada0  3c 50 3e 0a 0a 4f 6e 20  72 65 63 65 69 70 74 20  |<P>..On receipt |
0000adb0  6f 66 3c 41 20 48 52 45  46 3d 22 23 64 6f 22 3e  |of<A HREF="#do">|
0000adc0  20 4d 65 73 73 61 67 65  5f 44 6f 3c 2f 41 3e 2f  | Message_Do</A>/|
0000add0  3c 41 0a 48 52 45 46 3d  22 23 63 68 61 6e 67 65  |<A.HREF="#change|
0000ade0  64 22 3e 4d 65 73 73 61  67 65 5f 43 68 61 6e 67  |d">Message_Chang|
0000adf0  65 64 3c 2f 41 3e 20 74  68 65 20 72 65 6d 6f 74  |ed</A> the remot|
0000ae00  65 20 74 61 73 6b 20 6d  75 73 74 20 63 68 65 63  |e task must chec|
0000ae10  6b 20 74 6f 20 73 65 65  20 69 66 0a 49 6e 2d 70  |k to see if.In-p|
0000ae20  6c 61 63 65 20 65 64 69  74 69 6e 67 20 69 73 20  |lace editing is |
0000ae30  6f 6e 20 28 62 34 20 6f  66 20 66 6c 61 67 73 20  |on (b4 of flags |
0000ae40  69 6e 20 4d 65 73 73 61  67 65 5f 44 6f 29 20 61  |in Message_Do) a|
0000ae50  6e 64 2c 20 69 66 20 73  6f 2c 20 73 65 6e 64 20  |nd, if so, send |
0000ae60  3c 41 0a 48 52 45 46 3d  22 23 68 6f 6f 6b 22 3e  |<A.HREF="#hook">|
0000ae70  4d 65 73 73 61 67 65 5f  48 6f 6f 6b 4d 65 3c 2f  |Message_HookMe</|
0000ae80  41 3e 20 72 61 74 68 65  72 20 74 68 61 6e 20 6f  |A> rather than o|
0000ae90  70 65 6e 69 6e 67 20 69  74 73 20 6f 77 6e 20 77  |pening its own w|
0000aea0  69 6e 64 6f 77 20 6f 6e  74 6f 20 74 68 65 0a 6f  |indow onto the.o|
0000aeb0  62 6a 65 63 74 2e 0a 0a  3c 50 3e 0a 0a 4f 6e 20  |bject...<P>..On |
0000aec0  72 65 63 65 69 70 74 20  6f 66 20 42 75 74 74 6f  |receipt of Butto|
0000aed0  6e 43 6c 69 63 6b 20 6d  65 73 73 61 67 65 73 20  |nClick messages |
0000aee0  28 61 70 70 61 72 65 6e  74 6c 79 29 20 74 6f 20  |(apparently) to |
0000aef0  69 74 73 20 6d 61 69 6e  20 77 69 6e 64 6f 77 20  |its main window |
0000af00  74 68 65 0a 72 65 6d 6f  74 65 20 74 61 73 6b 20  |the.remote task |
0000af10  73 68 6f 75 6c 64 20 63  68 65 63 6b 20 74 68 65  |should check the|
0000af20  20 69 63 6f 6e 20 68 61  6e 64 6c 65 20 61 6e 64  | icon handle and|
0000af30  20 69 66 20 69 74 20 69  73 20 65 71 75 61 6c 20  | if it is equal |
0000af40  74 6f 20 2d 26 34 31 34  33 35 30 0a 74 72 65 61  |to -&414350.trea|
0000af50  74 20 74 68 65 20 63 6f  6f 72 64 69 6e 61 74 65  |t the coordinate|
0000af60  73 20 70 61 73 73 65 64  20 69 6e 20 74 68 65 20  |s passed in the |
0000af70  42 75 74 74 6f 6e 43 6c  69 63 6b 20 62 6c 6f 63  |ButtonClick bloc|
0000af80  6b 20 61 73 20 27 63 6f  72 72 65 63 74 65 64 27  |k as 'corrected'|
0000af90  20 66 6f 72 20 74 68 65  0a 70 6f 73 69 74 69 6f  | for the.positio|
0000afa0  6e 20 6f 66 20 69 74 73  20 77 69 6e 64 6f 77 2c  |n of its window,|
0000afb0  20 73 63 72 6f 6c 6c 62  61 72 73 20 65 74 63 20  | scrollbars etc |
0000afc0  61 73 20 74 68 65 20 63  6f 6f 72 64 69 6e 61 74  |as the coordinat|
0000afd0  65 73 20 61 72 65 20 61  6c 72 65 61 64 79 0a 72  |es are already.r|
0000afe0  65 6c 61 74 69 76 65 20  74 6f 20 74 68 65 20 6f  |elative to the o|
0000aff0  62 6a 65 63 74 73 20 62  6f 74 74 6f 6d 20 6c 65  |bjects bottom le|
0000b000  66 74 2e 20 4d 6f 64 69  66 79 20 74 68 65 20 6f  |ft. Modify the o|
0000b010  62 6a 65 63 74 20 64 61  74 61 20 61 73 20 61 70  |bject data as ap|
0000b020  70 72 6f 70 72 69 61 74  65 0a 61 6e 64 20 67 65  |propriate.and ge|
0000b030  6e 65 72 61 74 65 20 3c  41 20 48 52 45 46 3d 22  |nerate <A HREF="|
0000b040  23 75 70 64 61 74 65 22  3e 4d 65 73 73 61 67 65  |#update">Message|
0000b050  5f 55 70 64 61 74 65 41  72 65 61 3c 2f 41 3e 20  |_UpdateArea</A> |
0000b060  61 73 20 77 69 74 68 20  73 74 61 6e 64 61 72 64  |as with standard|
0000b070  20 50 43 41 0a 70 72 61  63 74 69 63 65 2e 0a 0a  | PCA.practice...|
0000b080  3c 50 3e 0a 0a 59 6f 75  20 73 68 6f 75 6c 64 20  |<P>..You should |
0000b090  62 65 20 61 62 6c 65 20  74 6f 20 75 73 65 20 74  |be able to use t|
0000b0a0  68 65 20 73 61 6d 65 20  63 6f 64 65 20 66 6f 72  |he same code for|
0000b0b0  20 72 65 6d 6f 74 65 20  61 6e 64 20 6c 6f 63 61  | remote and loca|
0000b0c0  6c 20 61 63 74 69 6f 6e  73 20 6a 75 73 74 20 64  |l actions just d|
0000b0d0  6f 0a 6e 6f 74 20 63 6f  6e 76 65 72 74 20 70 6f  |o.not convert po|
0000b0e0  69 6e 74 65 72 20 63 6f  6f 72 64 69 6e 61 74 65  |inter coordinate|
0000b0f0  73 20 74 6f 20 62 65 20  72 65 6c 61 74 69 76 65  |s to be relative|
0000b100  20 74 6f 20 79 6f 75 72  20 6d 61 69 6e 20 77 69  | to your main wi|
0000b110  6e 64 6f 77 20 61 6e 64  20 64 6f 0a 6e 6f 74 20  |ndow and do.not |
0000b120  72 65 64 72 61 77 20 79  6f 75 72 20 6d 61 69 6e  |redraw your main|
0000b130  20 77 69 6e 64 6f 77 20  28 69 74 20 73 68 6f 75  | window (it shou|
0000b140  6c 64 20 62 65 20 63 6c  6f 73 65 64 20 61 6e 79  |ld be closed any|
0000b150  77 61 79 29 2e 0a 0a 3c  50 3e 0a 0a 4e 6f 74 65  |way)...<P>..Note|
0000b160  3a 20 46 6f 72 20 27 70  61 69 6e 74 69 6e 67 27  |: For 'painting'|
0000b170  20 6f 72 20 27 64 72 61  67 67 69 6e 67 27 20 74  | or 'dragging' t|
0000b180  79 70 65 20 61 63 74 69  6f 6e 73 20 69 74 20 69  |ype actions it i|
0000b190  73 20 73 6f 6d 65 74 69  6d 65 73 20 77 69 73 65  |s sometimes wise|
0000b1a0  20 74 6f 20 73 65 74 0a  74 68 65 20 72 65 6d 6f  | to set.the remo|
0000b1b0  74 65 20 62 75 74 74 6f  6e 20 74 79 70 65 20 28  |te button type (|
0000b1c0  69 6e 20 4d 65 73 73 61  67 65 5f 48 6f 6f 6b 4d  |in Message_HookM|
0000b1d0  65 29 20 74 6f 20 43 6c  69 63 6b 20 61 6e 64 20  |e) to Click and |
0000b1e0  74 6f 20 64 6f 20 61 20  74 69 67 68 74 0a 72 65  |to do a tight.re|
0000b1f0  70 65 61 74 69 6e 67 20  27 6c 6f 6f 70 27 20 61  |peating 'loop' a|
0000b200  72 6f 75 6e 64 20 79 6f  75 72 20 72 65 64 72 61  |round your redra|
0000b210  77 2f 70 61 69 6e 74 20  63 6f 64 65 2c 20 72 65  |w/paint code, re|
0000b220  61 64 69 6e 67 20 74 68  65 20 6d 6f 75 73 65 20  |ading the mouse |
0000b230  70 6f 69 6e 74 65 72 0a  69 6e 66 6f 72 6d 61 74  |pointer.informat|
0000b240  69 6f 6e 20 64 69 72 65  63 74 6c 79 20 75 6e 74  |ion directly unt|
0000b250  69 6c 20 74 68 65 20 62  75 74 74 6f 6e 20 63 6c  |il the button cl|
0000b260  69 63 6b 20 73 74 6f 70  73 2e 20 49 6e 20 74 68  |ick stops. In th|
0000b270  69 73 20 73 69 74 75 61  74 69 6f 6e 20 74 68 65  |is situation the|
0000b280  0a 52 65 6d 6f 74 65 20  74 61 73 6b 20 73 68 6f  |.Remote task sho|
0000b290  75 6c 64 20 6d 61 6b 65  20 75 73 65 20 6f 66 20  |uld make use of |
0000b2a0  74 68 65 20 69 6e 66 6f  72 6d 61 74 69 6f 6e 20  |the information |
0000b2b0  69 6e 20 74 68 65 20 6c  61 73 74 0a 4d 65 73 73  |in the last.Mess|
0000b2c0  61 67 65 5f 4f 62 6a 65  63 74 50 6f 73 69 74 69  |age_ObjectPositi|
0000b2d0  6f 6e 20 69 74 20 72 65  63 65 69 65 76 65 64 20  |on it receieved |
0000b2e0  74 6f 20 77 6f 72 6b 20  6f 75 74 20 74 68 65 20  |to work out the |
0000b2f0  76 69 73 69 62 6c 65 20  73 69 7a 65 20 61 6e 64  |visible size and|
0000b300  0a 70 6f 73 69 74 69 6f  6e 20 6f 66 20 74 68 65  |.position of the|
0000b310  20 6f 62 6a 65 63 74 20  69 6e 20 74 68 65 20 4c  | object in the L|
0000b320  6f 63 61 6c 20 74 61 73  6b 27 73 20 77 69 6e 64  |ocal task's wind|
0000b330  6f 77 20 28 73 65 65 20  74 68 65 20 21 53 70 61  |ow (see the !Spa|
0000b340  69 6e 74 20 65 78 61 6d  70 6c 65 29 2e 0a 0a 3c  |int example)...<|
0000b350  50 3e 0a 0a 3c 41 20 48  52 45 46 3d 22 23 74 6f  |P>..<A HREF="#to|
0000b360  70 22 3e 52 65 74 75 72  6e 20 74 6f 20 43 6f 6e  |p">Return to Con|
0000b370  74 65 6e 74 73 3c 2f 41  3e 0a 3c 48 52 3e 0a 0a  |tents</A>.<HR>..|
0000b380  3c 48 31 3e 0a 3c 41 20  4e 41 4d 45 3d 22 69 6e  |<H1>.<A NAME="in|
0000b390  74 65 72 66 61 63 65 22  3e 0a 50 43 41 20 55 73  |terface">.PCA Us|
0000b3a0  65 72 20 49 6e 74 65 72  66 61 63 65 20 73 70 65  |er Interface spe|
0000b3b0  63 69 66 69 63 61 74 69  6f 6e 73 0a 3c 2f 41 3e  |cifications.</A>|
0000b3c0  0a 0a 3c 2f 48 31 3e 3c  41 55 3e 0a 41 75 74 68  |..</H1><AU>.Auth|
0000b3d0  6f 72 20 20 3a 20 52 6f  62 20 44 61 76 69 73 6f  |or  : Rob Daviso|
0000b3e0  6e 20 28 72 64 61 76 69  73 6f 6e 40 78 74 72 61  |n (rdavison@xtra|
0000b3f0  2e 63 6f 2e 6e 7a 29 3c  42 52 3e 0a 0a 44 61 74  |.co.nz)<BR>..Dat|
0000b400  65 20 20 20 20 3a 20 31  35 2f 30 38 2f 39 36 3c  |e    : 15/08/96<|
0000b410  42 52 3e 0a 0a 53 74 61  74 75 73 20 20 3a 20 52  |BR>..Status  : R|
0000b420  65 6c 65 61 73 65 20 31  3c 42 52 3e 0a 0a 3c 2f  |elease 1<BR>..</|
0000b430  41 55 3e 0a 3c 50 3e 0a  0a 54 68 69 73 20 64 6f  |AU>.<P>..This do|
0000b440  63 75 6d 65 6e 74 73 20  74 68 65 20 73 75 67 67  |cuments the sugg|
0000b450  65 73 74 65 64 20 75 73  65 72 2d 69 6e 74 65 72  |ested user-inter|
0000b460  66 61 63 65 20 61 6e 64  20 67 65 6e 65 72 61 6c  |face and general|
0000b470  20 6d 65 73 73 61 67 65  20 68 61 6e 64 6c 69 6e  | message handlin|
0000b480  67 0a 72 65 71 75 69 72  65 6d 65 6e 74 73 20 66  |g.requirements f|
0000b490  6f 72 20 61 70 70 6c 69  63 61 74 69 6f 6e 73 20  |or applications |
0000b4a0  6f 6e 20 62 6f 74 68 20  73 69 64 65 73 20 6f 66  |on both sides of|
0000b4b0  20 74 68 65 20 50 43 41  20 70 72 6f 74 6f 63 6f  | the PCA protoco|
0000b4c0  6c 2e 20 59 6f 75 20 73  68 6f 75 6c 64 0a 6e 6f  |l. You should.no|
0000b4d0  74 65 20 74 68 61 74 20  69 74 20 69 73 20 70 6f  |te that it is po|
0000b4e0  73 73 69 62 6c 65 20 66  6f 72 20 61 70 70 6c 69  |ssible for appli|
0000b4f0  63 61 74 69 6f 6e 73 20  74 6f 20 69 6d 70 6c 65  |cations to imple|
0000b500  6d 65 6e 74 20 65 69 74  68 65 72 20 6f 72 20 62  |ment either or b|
0000b510  6f 74 68 20 73 69 64 65  73 0a 6f 66 20 74 68 65  |oth sides.of the|
0000b520  20 70 72 6f 74 6f 63 6f  6c 2e 0a 0a 3c 50 3e 0a  | protocol...<P>.|
0000b530  0a 3c 48 33 3e 0a 4c 6f  63 61 6c 20 61 70 70 6c  |.<H3>.Local appl|
0000b540  69 63 61 74 69 6f 6e 0a  0a 3c 2f 48 33 3e 0a 54  |ication..</H3>.T|
0000b550  68 65 20 6c 6f 63 61 6c  20 61 70 70 6c 69 63 61  |he local applica|
0000b560  74 69 6f 6e 20 6d 75 73  74 20 70 6f 6c 6c 20 74  |tion must poll t|
0000b570  68 65 20 50 43 41 20 73  79 73 74 65 6d 20 77 69  |he PCA system wi|
0000b580  74 68 20 3c 41 0a 48 52  45 46 3d 22 23 77 68 6f  |th <A.HREF="#who|
0000b590  73 22 3e 4d 65 73 73 61  67 65 5f 57 68 6f 73 41  |s">Message_WhosA|
0000b5a0  62 6f 75 74 3c 2f 41 3e  20 61 6e 64 20 70 72 65  |bout</A> and pre|
0000b5b0  73 65 6e 74 20 74 68 61  74 20 69 6e 66 6f 72 6d  |sent that inform|
0000b5c0  61 74 69 6f 6e 20 74 6f  20 74 68 65 20 75 73 65  |ation to the use|
0000b5d0  72 2e 0a 49 74 20 69 73  20 72 65 63 6f 6d 6d 65  |r..It is recomme|
0000b5e0  6e 64 65 64 20 74 68 61  74 20 79 6f 75 20 70 72  |nded that you pr|
0000b5f0  6f 76 69 64 65 20 73 65  76 65 72 61 6c 20 6d 65  |ovide several me|
0000b600  74 68 6f 64 73 20 6f 66  20 64 6f 69 6e 67 20 74  |thods of doing t|
0000b610  68 69 73 3a 0a 0a 3c 50  3e 0a 0a 3c 48 33 3e 0a  |his:..<P>..<H3>.|
0000b620  49 6e 76 6f 6b 69 6e 67  20 74 68 65 20 70 72 6f  |Invoking the pro|
0000b630  74 6f 63 6f 6c 0a 0a 3c  2f 48 33 3e 0a 49 6e 76  |tocol..</H3>.Inv|
0000b640  6f 6b 69 6e 67 20 74 68  65 20 70 72 6f 74 6f 63  |oking the protoc|
0000b650  6f 6c 20 73 63 61 6e 73  20 74 68 65 20 61 63 74  |ol scans the act|
0000b660  69 76 65 20 74 61 73 6b  73 20 61 6e 64 20 70 72  |ive tasks and pr|
0000b670  65 73 65 6e 74 73 20 61  20 6c 69 73 74 20 6f 66  |esents a list of|
0000b680  20 74 68 65 0a 61 76 61  69 6c 61 62 6c 65 20 75  | the.available u|
0000b690  74 69 6c 69 74 69 65 73  2e 20 54 68 69 73 20 6c  |tilities. This l|
0000b6a0  69 73 74 20 63 61 6e 20  62 65 20 70 72 65 73 65  |ist can be prese|
0000b6b0  6e 74 65 64 20 69 6e 20  74 77 6f 20 77 61 79 73  |nted in two ways|
0000b6c0  3b 20 61 73 20 61 20 73  69 6d 70 6c 65 0a 52 49  |; as a simple.RI|
0000b6d0  53 43 20 4f 53 20 6d 65  6e 75 20 6f 72 20 61 73  |SC OS menu or as|
0000b6e0  20 61 20 67 72 61 70 68  69 63 61 6c 20 27 70 6f  | a graphical 'po|
0000b6f0  70 2d 75 70 27 20 77 69  6e 64 6f 77 2e 20 59 6f  |p-up' window. Yo|
0000b700  75 20 73 68 6f 75 6c 64  20 73 75 70 70 6f 72 74  |u should support|
0000b710  20 62 6f 74 68 0a 6d 65  74 68 6f 64 73 20 69 6e  | both.methods in|
0000b720  20 79 6f 75 72 20 61 70  70 6c 69 63 61 74 69 6f  | your applicatio|
0000b730  6e 73 20 62 79 20 70 72  6f 76 69 64 69 6e 67 20  |ns by providing |
0000b740  61 20 70 72 65 66 65 72  65 6e 63 65 73 20 6f 70  |a preferences op|
0000b750  74 69 6f 6e 20 74 6f 20  74 68 65 20 75 73 65 72  |tion to the user|
0000b760  2e 0a 0a 3c 50 3e 0a 0a  0a 54 6f 20 69 6e 76 6f  |...<P>...To invo|
0000b770  6b 65 20 74 68 65 20 70  6f 70 75 70 20 43 74 72  |ke the popup Ctr|
0000b780  6c 2d 53 68 69 66 74 2d  44 6f 75 62 6c 65 20 43  |l-Shift-Double C|
0000b790  6c 69 63 6b 20 69 73 20  72 65 63 6f 6d 6d 65 6e  |lick is recommen|
0000b7a0  64 65 64 2e 20 49 66 20  74 68 61 74 20 73 68 6f  |ded. If that sho|
0000b7b0  72 74 63 75 74 0a 69 73  20 6e 6f 74 20 66 72 65  |rtcut.is not fre|
0000b7c0  65 20 61 6e 6f 74 68 65  72 20 63 6f 6d 62 69 6e  |e another combin|
0000b7d0  61 74 69 6f 6e 20 69 73  20 61 63 63 65 70 74 61  |ation is accepta|
0000b7e0  62 6c 65 2c 20 70 72 65  66 65 72 61 62 6c 79 20  |ble, preferably |
0000b7f0  72 65 6c 61 74 65 64 20  69 6e 20 73 6f 6d 65 0a  |related in some.|
0000b800  77 61 79 20 74 6f 20 74  68 65 20 43 74 72 6c 2d  |way to the Ctrl-|
0000b810  44 6f 75 62 6c 65 20 63  6c 69 63 6b 20 41 63 6f  |Double click Aco|
0000b820  72 6e 20 4f 4c 45 2d 31  20 73 74 61 6e 64 61 72  |rn OLE-1 standar|
0000b830  64 2e 0a 0a 3c 50 3e 0a  0a 49 6e 20 61 64 64 69  |d...<P>..In addi|
0000b840  74 69 6f 6e 2c 20 61 64  64 20 74 68 65 20 50 43  |tion, add the PC|
0000b850  41 20 74 6f 20 79 6f 75  72 20 6d 65 6e 75 20 73  |A to your menu s|
0000b860  74 72 75 63 74 75 72 65  2e 20 54 68 65 20 73 75  |tructure. The su|
0000b870  62 2d 6d 65 6e 75 20 69  74 65 6d 0a 22 55 74 69  |b-menu item."Uti|
0000b880  6c 69 74 69 65 73 20 3e  22 20 69 73 20 61 70 70  |lities >" is app|
0000b890  72 6f 70 72 69 61 74 65  2e 0a 0a 3c 50 3e 0a 0a  |ropriate...<P>..|
0000b8a0  41 6e 6f 74 68 65 72 20  61 6c 74 65 72 6e 61 74  |Another alternat|
0000b8b0  69 76 65 20 69 73 20 74  6f 20 61 64 64 20 61 20  |ive is to add a |
0000b8c0  62 75 74 74 6f 6e 20 74  6f 20 79 6f 75 72 20 74  |button to your t|
0000b8d0  6f 6f 6c 62 61 72 20 74  6f 20 69 6e 76 6f 6b 65  |oolbar to invoke|
0000b8e0  20 74 68 65 20 70 72 6f  74 6f 63 6f 6c 2e 0a 3c  | the protocol..<|
0000b8f0  50 3e 0a 3c 43 45 4e 54  45 52 3e 0a 3c 49 4d 47  |P>.<CENTER>.<IMG|
0000b900  20 53 52 43 3d 22 47 52  41 50 48 49 43 53 2f 50  | SRC="GRAPHICS/P|
0000b910  4f 50 55 50 2e 67 69 66  22 20 57 49 44 54 48 3d  |OPUP.gif" WIDTH=|
0000b920  35 31 31 20 48 45 49 47  48 54 3d 32 35 33 3e 0a  |511 HEIGHT=253>.|
0000b930  3c 2f 43 45 4e 54 45 52  3e 0a 3c 50 3e 0a 0a 0a  |</CENTER>.<P>...|
0000b940  3c 43 45 4e 54 45 52 3e  0a 3c 42 3e 0a 41 20 74  |<CENTER>.<B>.A t|
0000b950  79 70 69 63 61 6c 20 50  43 41 20 70 6f 70 75 70  |ypical PCA popup|
0000b960  20 64 69 61 6c 6f 67 75  65 2e 20 41 6c 6c 20 6d  | dialogue. All m|
0000b970  65 61 73 75 72 65 6d 65  6e 74 73 20 69 6e 20 4f  |easurements in O|
0000b980  53 20 75 6e 69 74 73 0a  0a 3c 2f 42 3e 0a 3c 2f  |S units..</B>.</|
0000b990  43 45 4e 54 45 52 3e 0a  3c 50 3e 0a 0a 54 68 65  |CENTER>.<P>..The|
0000b9a0  20 77 69 64 74 68 20 6f  66 20 74 68 69 73 20 64  | width of this d|
0000b9b0  69 61 6c 6f 67 75 65 20  73 68 6f 75 6c 64 20 62  |ialogue should b|
0000b9c0  65 20 73 65 74 20 74 6f  20 74 68 65 20 77 69 64  |e set to the wid|
0000b9d0  74 68 20 6f 66 20 74 68  65 20 6c 6f 6e 67 65 73  |th of the longes|
0000b9e0  74 20 74 6f 6f 6c 0a 6e  61 6d 65 20 72 65 74 75  |t tool.name retu|
0000b9f0  72 6e 65 64 20 69 6e 20  74 68 65 20 3c 41 20 48  |rned in the <A H|
0000ba00  52 45 46 3d 22 23 69 6d  22 3e 4d 65 73 73 61 67  |REF="#im">Messag|
0000ba10  65 5f 49 6d 48 65 72 65  3c 2f 41 3e 20 6d 65 73  |e_ImHere</A> mes|
0000ba20  73 61 67 65 73 20 28 77  68 69 63 68 20 6d 61 79  |sages (which may|
0000ba30  20 62 65 0a 66 6f 75 6e  64 20 6f 6e 20 74 68 65  | be.found on the|
0000ba40  20 52 69 73 63 50 43 20  75 73 69 6e 67 20 53 57  | RiscPC using SW|
0000ba50  49 20 57 69 6d 70 5f 54  65 78 74 4f 70 29 2e 20  |I Wimp_TextOp). |
0000ba60  41 64 64 20 32 32 30 20  4f 53 2d 75 6e 69 74 73  |Add 220 OS-units|
0000ba70  20 74 6f 20 74 68 65 20  77 69 64 74 68 20 6f 66  | to the width of|
0000ba80  0a 61 6c 6c 20 69 74 65  6d 73 20 74 6f 20 61 6c  |.all items to al|
0000ba90  6c 6f 77 20 66 6f 72 20  74 68 65 20 54 6f 6f 6c  |low for the Tool|
0000baa0  20 69 63 6f 6e 20 61 6e  64 20 49 6e 66 6f 20 62  | icon and Info b|
0000bab0  75 74 74 6f 6e 73 2e 20  54 68 65 20 68 65 69 67  |uttons. The heig|
0000bac0  68 74 20 6f 66 20 65 61  63 68 0a 69 74 65 6d 20  |ht of each.item |
0000bad0  69 73 20 66 69 78 65 64  20 61 74 20 39 36 20 4f  |is fixed at 96 O|
0000bae0  53 2d 75 6e 69 74 73 2e  0a 0a 3c 50 3e 0a 0a 54  |S-units...<P>..T|
0000baf0  68 65 20 74 6f 6f 6c 20  69 63 6f 6e 20 69 73 20  |he tool icon is |
0000bb00  70 72 65 73 65 6e 74 20  69 6e 20 74 68 65 20 57  |present in the W|
0000bb10  69 6d 70 20 73 70 72 69  74 65 20 70 6f 6f 6c 20  |imp sprite pool |
0000bb20  61 6e 64 20 69 73 20 75  73 75 61 6c 6c 79 20 74  |and is usually t|
0000bb30  68 65 20 50 43 41 0a 61  70 70 6c 69 63 61 74 69  |he PCA.applicati|
0000bb40  6f 6e 73 20 69 63 6f 6e  2e 20 41 70 70 6c 69 63  |ons icon. Applic|
0000bb50  61 74 69 6f 6e 73 20 77  68 69 63 68 20 70 72 6f  |ations which pro|
0000bb60  76 69 64 65 20 6d 75 6c  74 69 70 6c 65 20 27 74  |vide multiple 't|
0000bb70  6f 6f 6c 73 27 20 63 61  6e 20 72 65 67 69 73 74  |ools' can regist|
0000bb80  65 72 0a 6d 6f 72 65 20  74 68 61 6e 20 6f 6e 63  |er.more than onc|
0000bb90  65 2c 20 70 61 73 73 69  6e 67 20 61 20 75 6e 69  |e, passing a uni|
0000bba0  71 75 65 20 27 74 6f 6f  6c 6e 75 6d 62 65 72 27  |que 'toolnumber'|
0000bbb0  20 77 69 74 68 20 3c 41  0a 48 52 45 46 3d 22 23  | with <A.HREF="#|
0000bbc0  69 6d 22 3e 4d 65 73 73  61 67 65 5f 49 6d 48 65  |im">Message_ImHe|
0000bbd0  72 65 3c 2f 41 3e 2e 0a  0a 3c 50 3e 0a 0a 0a 54  |re</A>...<P>...T|
0000bbe0  68 65 20 70 6f 70 75 70  20 73 68 6f 75 6c 64 20  |he popup should |
0000bbf0  62 65 20 6f 70 65 6e 65  64 20 73 75 63 68 20 74  |be opened such t|
0000bc00  68 61 74 20 74 68 65 20  70 6f 69 6e 74 65 72 20  |hat the pointer |
0000bc10  69 73 20 63 65 6e 74 72  65 64 20 6f 76 65 72 20  |is centred over |
0000bc20  74 68 65 20 74 6f 70 0a  74 6f 6f 6c 20 6e 61 6d  |the top.tool nam|
0000bc30  65 20 61 6e 64 20 61 73  20 61 20 6d 65 6e 75 20  |e and as a menu |
0000bc40  73 6f 20 69 74 20 61 75  74 6f 6d 61 74 69 63 61  |so it automatica|
0000bc50  6c 6c 79 20 63 6c 6f 73  65 73 20 6f 6e 20 61 6e  |lly closes on an|
0000bc60  79 20 6d 6f 75 73 65 20  61 63 63 65 73 73 0a 6f  |y mouse access.o|
0000bc70  75 74 73 69 64 65 20 69  74 2e 20 49 66 20 74 68  |utside it. If th|
0000bc80  65 72 65 20 61 72 65 20  6d 6f 72 65 20 74 68 61  |ere are more tha|
0000bc90  6e 20 66 69 76 65 20 50  43 41 73 20 61 76 61 69  |n five PCAs avai|
0000bca0  6c 61 62 6c 65 20 74 68  65 20 70 6f 70 75 70 20  |lable the popup |
0000bcb0  64 69 61 6c 6f 67 75 65  0a 73 68 6f 75 6c 64 20  |dialogue.should |
0000bcc0  62 65 20 67 69 76 65 6e  20 61 20 76 65 72 74 69  |be given a verti|
0000bcd0  63 61 6c 20 73 63 72 6f  6c 6c 62 61 72 20 61 6e  |cal scrollbar an|
0000bce0  64 20 74 68 65 20 69 6e  69 74 69 61 6c 20 73 69  |d the initial si|
0000bcf0  7a 65 20 6c 69 6d 69 74  65 64 20 74 6f 20 66 69  |ze limited to fi|
0000bd00  76 65 0a 69 74 65 6d 73  2e 20 46 6f 72 20 61 20  |ve.items. For a |
0000bd10  6d 6f 72 65 20 64 65 74  61 69 6c 65 64 20 65 78  |more detailed ex|
0000bd20  61 6d 70 6c 65 2c 20 73  65 65 20 74 68 65 20 50  |ample, see the P|
0000bd30  43 41 20 76 65 72 73 69  6f 6e 20 6f 66 20 43 6f  |CA version of Co|
0000bd40  6d 70 6f 73 69 74 69 6f  6e 20 6f 72 0a 74 68 65  |mposition or.the|
0000bd50  20 64 69 61 6c 6f 67 75  65 20 63 72 65 61 74 69  | dialogue creati|
0000bd60  6f 6e 20 61 6e 64 20 72  65 64 72 61 77 20 63 6f  |on and redraw co|
0000bd70  64 65 20 69 6e 20 21 53  70 61 69 6e 74 2e 0a 0a  |de in !Spaint...|
0000bd80  3c 50 3e 0a 0a 3c 42 3e  4f 74 68 65 72 20 6f 70  |<P>..<B>Other op|
0000bd90  74 69 6f 6e 73 3c 2f 42  3e 0a 3c 50 3e 0a 0a 53  |tions</B>.<P>..S|
0000bda0  65 76 65 72 61 6c 20 6f  74 68 65 72 20 6f 70 74  |everal other opt|
0000bdb0  69 6f 6e 73 20 6d 61 79  20 62 65 20 6f 66 66 65  |ions may be offe|
0000bdc0  72 65 64 20 74 6f 20 74  68 65 20 75 73 65 72 20  |red to the user |
0000bdd0  62 79 20 61 20 4c 6f 63  61 6c 20 74 61 73 6b 2e  |by a Local task.|
0000bde0  20 57 68 69 63 68 20 61  72 65 0a 70 72 61 63 74  | Which are.pract|
0000bdf0  69 63 61 6c 20 64 65 70  65 6e 64 73 20 6f 6e 20  |ical depends on |
0000be00  74 68 65 20 61 70 70 6c  69 63 61 74 69 6f 6e 20  |the application |
0000be10  69 6e 20 71 75 65 73 74  69 6f 6e 20 62 75 74 20  |in question but |
0000be20  74 68 65 20 66 6f 6c 6c  6f 77 69 6e 67 20 6d 61  |the following ma|
0000be30  79 20 62 65 0a 61 70 70  72 6f 70 72 69 61 74 65  |y be.appropriate|
0000be40  20 66 6f 72 20 61 20 74  61 73 6b 20 77 68 69 63  | for a task whic|
0000be50  68 20 73 75 70 70 6f 72  74 73 20 62 6f 74 68 20  |h supports both |
0000be60  73 69 64 65 73 20 6f 66  20 74 68 65 20 70 72 6f  |sides of the pro|
0000be70  74 6f 63 6f 6c 3a 0a 0a  3c 50 3e 0a 0a 3c 43 45  |tocol:..<P>..<CE|
0000be80  4e 54 45 52 3e 0a 3c 49  4d 47 20 53 52 43 3d 22  |NTER>.<IMG SRC="|
0000be90  47 52 41 50 48 49 43 53  2f 70 72 65 66 73 2e 67  |GRAPHICS/prefs.g|
0000bea0  69 66 22 20 41 4c 54 3d  22 50 72 65 66 65 72 65  |if" ALT="Prefere|
0000beb0  6e 63 65 73 22 20 57 49  44 54 48 3d 33 38 32 20  |nces" WIDTH=382 |
0000bec0  48 45 49 47 48 54 3d 31  36 31 20 41 4c 49 47 4e  |HEIGHT=161 ALIGN|
0000bed0  3d 22 4d 49 44 44 4c 45  22 3e 0a 3c 2f 43 45 4e  |="MIDDLE">.</CEN|
0000bee0  54 45 52 3e 0a 3c 50 3e  0a 0a 54 68 65 20 64 69  |TER>.<P>..The di|
0000bef0  73 70 6c 61 79 20 72 61  64 69 6f 20 62 75 74 74  |splay radio butt|
0000bf00  6f 6e 73 20 61 6c 6c 6f  77 20 74 68 65 20 75 73  |ons allow the us|
0000bf10  65 72 20 74 6f 20 63 68  6f 6f 73 65 20 74 68 65  |er to choose the|
0000bf20  20 66 6f 72 6d 20 6f 66  20 70 6f 70 75 70 20 77  | form of popup w|
0000bf30  68 69 63 68 0a 77 69 6c  6c 20 62 65 20 70 72 65  |hich.will be pre|
0000bf40  73 65 6e 74 65 64 20 74  6f 20 74 68 65 20 75 73  |sented to the us|
0000bf50  65 72 2e 20 4d 65 6e 75  73 20 61 72 65 20 73 69  |er. Menus are si|
0000bf60  6d 70 6c 65 72 20 61 6e  64 20 74 61 6b 65 20 75  |mpler and take u|
0000bf70  70 20 6c 65 73 73 20 64  65 73 6b 74 6f 70 0a 73  |p less desktop.s|
0000bf80  70 61 63 65 2e 20 44 69  61 6c 6f 67 75 65 20 62  |pace. Dialogue b|
0000bf90  6f 78 65 73 20 6c 6f 6f  6b 20 62 65 74 74 65 72  |oxes look better|
0000bfa0  20 61 6e 64 20 70 72 6f  76 69 64 65 20 6d 6f 72  | and provide mor|
0000bfb0  65 20 69 6e 66 6f 72 6d  61 74 69 6f 6e 2e 0a 0a  |e information...|
0000bfc0  3c 50 3e 0a 0a 54 68 65  20 49 6e 2d 70 6c 61 63  |<P>..The In-plac|
0000bfd0  65 20 65 64 69 74 69 6e  67 20 6f 70 74 69 6f 6e  |e editing option|
0000bfe0  20 73 68 6f 75 6c 64 20  62 65 20 70 72 6f 76 69  | should be provi|
0000bff0  64 65 64 20 62 79 20 61  20 52 65 6d 6f 74 65 20  |ded by a Remote |
0000c000  74 61 73 6b 2e 20 49 66  20 6e 6f 0a 6f 62 6a 65  |task. If no.obje|
0000c010  63 74 73 20 61 72 65 20  62 65 69 6e 67 20 65 64  |cts are being ed|
0000c020  69 74 65 64 20 74 68 65  6e 20 74 6f 67 67 6c 69  |ited then toggli|
0000c030  6e 67 20 74 68 69 73 20  6f 70 74 69 6f 6e 20 73  |ng this option s|
0000c040  69 6d 70 6c 79 20 70 72  65 76 65 6e 74 73 20 6f  |imply prevents o|
0000c050  72 20 61 6c 6c 6f 77 73  0a 62 69 74 20 34 20 6f  |r allows.bit 4 o|
0000c060  66 20 74 68 65 20 66 6c  61 67 73 20 77 6f 72 64  |f the flags word|
0000c070  20 74 6f 20 62 65 20 73  65 74 20 69 6e 20 73 75  | to be set in su|
0000c080  62 73 65 71 75 65 6e 74  20 3c 41 0a 48 52 45 46  |bsequent <A.HREF|
0000c090  3d 22 23 69 6d 22 3e 4d  65 73 73 61 67 65 5f 49  |="#im">Message_I|
0000c0a0  6d 48 65 72 65 3c 2f 41  3e 20 6d 65 73 73 61 67  |mHere</A> messag|
0000c0b0  65 73 20 67 65 6e 65 72  61 74 65 64 2e 20 49 66  |es generated. If|
0000c0c0  20 61 6e 20 6f 62 6a 65  63 74 20 69 73 20 62 65  | an object is be|
0000c0d0  69 6e 67 0a 65 64 69 74  65 64 20 69 6e 2d 70 6c  |ing.edited in-pl|
0000c0e0  61 63 65 20 77 68 65 6e  20 74 68 69 73 20 6f 70  |ace when this op|
0000c0f0  74 69 6f 6e 20 69 73 20  74 6f 67 67 6c 65 64 20  |tion is toggled |
0000c100  74 68 65 20 52 65 6d 6f  74 65 20 74 61 73 6b 20  |the Remote task |
0000c110  73 68 6f 75 6c 64 20 73  77 69 74 63 68 0a 62 65  |should switch.be|
0000c120  74 77 65 65 6e 20 69 6e  2d 70 6c 61 63 65 20 61  |tween in-place a|
0000c130  6e 64 20 72 65 6d 6f 74  65 20 6f 70 65 72 61 74  |nd remote operat|
0000c140  69 6f 6e 20 6f 6e 20 74  68 61 74 20 6f 62 6a 65  |ion on that obje|
0000c150  63 74 20 61 73 20 74 68  65 20 6f 70 74 69 6f 6e  |ct as the option|
0000c160  20 69 73 0a 74 6f 67 67  6c 65 64 2e 0a 0a 3c 50  | is.toggled...<P|
0000c170  3e 0a 0a 54 68 65 20 27  46 6f 6c 6c 6f 77 20 73  |>..The 'Follow s|
0000c180  65 6c 65 63 74 65 64 27  20 6f 70 74 69 6f 6e 20  |elected' option |
0000c190  69 73 20 70 72 6f 76 69  64 65 64 20 62 79 20 61  |is provided by a|
0000c1a0  20 4c 6f 63 61 6c 20 74  61 73 6b 20 61 6e 64 2c  | Local task and,|
0000c1b0  20 77 68 65 6e 20 6f 6e  2c 20 74 68 65 0a 6c 61  | when on, the.la|
0000c1c0  73 74 20 74 61 73 6b 20  73 65 6e 74 20 61 20 3c  |st task sent a <|
0000c1d0  41 20 48 52 45 46 3d 22  23 64 6f 22 3e 4d 65 73  |A HREF="#do">Mes|
0000c1e0  73 61 67 65 5f 44 6f 59  6f 75 72 53 74 75 66 66  |sage_DoYourStuff|
0000c1f0  3c 2f 41 3e 20 69 73 20  61 75 74 6f 6d 61 74 69  |</A> is automati|
0000c200  63 61 6c 6c 79 20 73 65  6e 74 0a 61 20 6e 65 77  |cally sent.a new|
0000c210  20 3c 41 20 48 52 45 46  3d 22 23 64 6f 22 3e 4d  | <A HREF="#do">M|
0000c220  65 73 73 61 67 65 5f 44  6f 59 6f 75 72 53 74 75  |essage_DoYourStu|
0000c230  66 66 3c 2f 41 3e 20 65  76 65 72 79 20 74 69 6d  |ff</A> every tim|
0000c240  65 20 74 68 65 20 27 73  65 6c 65 63 74 65 64 20  |e the 'selected |
0000c250  6f 62 6a 65 63 74 27 0a  63 68 61 6e 67 65 73 2e  |object'.changes.|
0000c260  20 4f 62 76 69 6f 75 73  6c 79 20 74 68 69 73 20  | Obviously this |
0000c270  6f 70 74 69 6f 6e 20 6f  6e 6c 79 20 68 61 73 20  |option only has |
0000c280  76 61 6c 69 64 69 74 79  20 77 68 65 6e 20 74 68  |validity when th|
0000c290  65 72 65 20 69 73 20 61  20 63 6f 6e 63 65 70 74  |ere is a concept|
0000c2a0  20 6f 66 0a 74 68 65 20  27 73 65 6c 65 63 74 65  | of.the 'selecte|
0000c2b0  64 20 6f 62 6a 65 63 74  27 2e 0a 0a 3c 50 3e 0a  |d object'...<P>.|
0000c2c0  0a 0a 3c 41 20 48 52 45  46 3d 22 23 74 6f 70 22  |..<A HREF="#top"|
0000c2d0  3e 52 65 74 75 72 6e 20  74 6f 20 43 6f 6e 74 65  |>Return to Conte|
0000c2e0  6e 74 73 3c 2f 41 3e 0a  3c 48 52 3e 0a 0a 3c 48  |nts</A>.<HR>..<H|
0000c2f0  31 3e 0a 3c 41 20 4e 41  4d 45 3d 22 73 77 69 73  |1>.<A NAME="swis|
0000c300  22 3e 0a 50 43 41 20 73  75 70 70 6f 72 74 20 6d  |">.PCA support m|
0000c310  6f 64 75 6c 65 20 53 57  49 73 0a 3c 2f 41 3e 0a  |odule SWIs.</A>.|
0000c320  3c 2f 48 31 3e 0a 0a 4d  6f 64 75 6c 65 20 20 3a  |</H1>..Module  :|
0000c330  20 50 43 41 53 75 70 70  6f 72 74 3c 50 3e 0a 56  | PCASupport<P>.V|
0000c340  65 72 73 69 6f 6e 20 3a  20 30 2e 30 37 20 28 31  |ersion : 0.07 (1|
0000c350  32 20 41 75 67 75 73 74  20 31 39 39 36 29 3c 50  |2 August 1996)<P|
0000c360  3e 0a 43 68 75 6e 6b 20  20 20 3a 20 26 34 44 36  |>.Chunk   : &4D6|
0000c370  43 30 0a 0a 3c 50 3e 0a  3c 50 3e 0a 0a 54 68 65  |C0..<P>.<P>..The|
0000c380  20 50 43 41 20 73 75 70  70 6f 72 74 20 6d 6f 64  | PCA support mod|
0000c390  75 6c 65 20 69 73 20 64  65 73 69 67 6e 65 64 20  |ule is designed |
0000c3a0  74 6f 20 66 61 63 69 6c  69 74 61 74 65 20 74 68  |to facilitate th|
0000c3b0  65 20 63 72 65 61 74 69  6f 6e 20 6f 66 20 50 43  |e creation of PC|
0000c3c0  41 20 73 74 79 6c 65 0a  27 74 61 67 73 27 20 69  |A style.'tags' i|
0000c3d0  6e 20 61 6e 20 61 72 65  61 20 6f 66 20 73 68 61  |n an area of sha|
0000c3e0  72 65 64 20 6d 65 6d 6f  72 79 2e 20 41 74 20 61  |red memory. At a|
0000c3f0  20 66 75 74 75 72 65 20  64 61 74 65 20 6f 74 68  | future date oth|
0000c400  65 72 20 75 73 65 66 75  6c 20 50 43 41 0a 72 65  |er useful PCA.re|
0000c410  6c 61 74 65 64 20 53 57  49 73 20 28 65 67 2e 20  |lated SWIs (eg. |
0000c420  63 6f 6c 61 65 73 63 69  6e 67 20 75 70 64 61 74  |colaescing updat|
0000c430  65 20 61 72 65 61 20 72  65 63 74 61 6e 67 6c 65  |e area rectangle|
0000c440  73 29 20 6d 61 79 20 62  65 20 61 64 64 65 64 2e  |s) may be added.|
0000c450  20 49 6e 20 74 68 65 0a  6d 65 61 6e 74 69 6d 65  | In the.meantime|
0000c460  20 74 68 65 20 66 6f 6c  6c 6f 77 69 6e 67 20 53  | the following S|
0000c470  57 49 73 20 61 72 65 20  70 72 6f 76 69 64 65 64  |WIs are provided|
0000c480  2e 0a 0a 3c 70 3e 0a 0a  3c 70 72 65 3e 0a 3c 53  |...<p>..<pre>.<S|
0000c490  54 52 4f 4e 47 3e 53 57  49 20 50 43 41 5f 43 72  |TRONG>SWI PCA_Cr|
0000c4a0  65 61 74 65 54 61 67 3c  2f 53 54 52 4f 4e 47 3e  |eateTag</STRONG>|
0000c4b0  0a 6f 6e 20 65 6e 74 72  79 20 2d 0a 0a 72 31 20  |.on entry -..r1 |
0000c4c0  3d 20 61 64 64 72 65 73  73 20 6f 66 20 62 61 73  |= address of bas|
0000c4d0  65 0a 72 32 20 3d 20 4f  66 66 73 65 74 20 74 6f  |e.r2 = Offset to|
0000c4e0  20 6f 62 6a 65 63 74 0a  72 33 20 3d 20 73 69 7a  | object.r3 = siz|
0000c4f0  65 20 6f 66 20 6f 62 6a  65 63 74 20 28 6f 70 74  |e of object (opt|
0000c500  69 6f 6e 61 6c 29 0a 72  34 20 3d 20 66 6c 61 67  |ional).r4 = flag|
0000c510  73 2f 65 78 74 65 6e 73  69 6f 6e 20 64 61 74 61  |s/extension data|
0000c520  20 28 6e 6f 74 20 69 6e  20 74 68 69 73 20 76 65  | (not in this ve|
0000c530  72 73 69 6f 6e 2e 29 0a  0a 6f 6e 20 65 78 69 74  |rsion.)..on exit|
0000c540  20 2d 0a 0a 72 30 20 3d  20 61 64 64 72 65 73 73  | -..r0 = address|
0000c550  20 6f 66 20 74 61 67 0a  28 72 31 2d 72 34 20 61  | of tag.(r1-r4 a|
0000c560  72 65 20 77 72 69 74 74  65 6e 20 69 6e 74 6f 20  |re written into |
0000c570  74 68 65 20 74 61 67 20  61 73 20 69 6e 69 74 69  |the tag as initi|
0000c580  61 6c 20 76 61 6c 75 65  73 2e 29 0a 41 6c 6c 20  |al values.).All |
0000c590  6f 74 68 65 72 20 72 65  67 69 73 74 65 72 73 20  |other registers |
0000c5a0  70 72 65 73 65 72 76 65  64 2e 0a 0a 0a 45 72 72  |preserved....Err|
0000c5b0  6f 72 73 20 72 65 74 75  72 6e 61 62 6c 65 3a 0a  |ors returnable:.|
0000c5c0  0a 22 54 68 69 73 20 76  65 72 73 69 6f 6e 20 6f  |."This version o|
0000c5d0  66 20 74 68 65 20 50 43  41 20 73 75 70 70 6f 72  |f the PCA suppor|
0000c5e0  74 20 6d 6f 64 75 6c 65  20 63 61 6e 6e 6f 74 20  |t module cannot |
0000c5f0  63 72 65 61 74 65 20 65  78 74 65 6e 64 65 64 20  |create extended |
0000c600  74 61 67 73 2e 22 0a 50  72 6f 64 75 63 65 64 20  |tags.".Produced |
0000c610  69 66 20 62 69 74 73 20  73 65 74 20 69 6e 20 52  |if bits set in R|
0000c620  34 20 28 62 30 2d 31 35  29 2e 0a 0a 22 54 68 69  |4 (b0-15)..."Thi|
0000c630  73 20 76 65 72 73 69 6f  6e 20 64 6f 65 73 20 6e  |s version does n|
0000c640  6f 74 20 72 65 73 69 7a  65 20 74 68 65 20 74 61  |ot resize the ta|
0000c650  67 20 62 6c 6f 63 6b 20  6f 6e 20 6f 6c 64 20 68  |g block on old h|
0000c660  61 72 64 77 61 72 65 2e  20 28 74 6f 6f 20 6d 61  |ardware. (too ma|
0000c670  6e 79 20 74 61 67 73 29  2e 22 0a 50 72 6f 64 75  |ny tags).".Produ|
0000c680  63 65 64 20 6f 6e 20 70  72 65 2d 52 50 43 20 68  |ced on pre-RPC h|
0000c690  61 72 64 77 61 72 65 20  69 66 20 6d 6f 72 65 20  |ardware if more |
0000c6a0  74 68 61 6e 20 32 30 34  38 20 74 61 67 73 20 61  |than 2048 tags a|
0000c6b0  72 65 20 69 6e 20 75 73  65 2e 0a 0a 0a 3c 2f 70  |re in use....</p|
0000c6c0  72 65 3e 3c 70 3e 0a 0a  3c 62 3e 4e 4f 54 45 3a  |re><p>..<b>NOTE:|
0000c6d0  3c 2f 62 3e 20 50 43 41  53 75 70 70 6f 72 74 20  |</b> PCASupport |
0000c6e0  72 65 6c 69 65 73 20 6f  6e 20 74 68 65 20 66 69  |relies on the fi|
0000c6f0  72 73 74 20 76 61 6c 75  65 20 6f 66 20 61 20 76  |rst value of a v|
0000c700  61 6c 69 64 20 74 61 67  20 6e 6f 74 20 62 65 69  |alid tag not bei|
0000c710  6e 67 0a 26 46 46 46 46  46 46 46 46 20 28 2d 31  |ng.&FFFFFFFF (-1|
0000c720  29 2e 20 4e 45 56 45 52  20 77 72 69 74 65 20 74  |). NEVER write t|
0000c730  68 69 73 20 76 61 6c 75  65 20 69 6e 74 6f 20 74  |his value into t|
0000c740  68 65 20 62 61 73 65 20  66 69 65 6c 64 20 6f 66  |he base field of|
0000c750  20 74 68 65 20 74 61 67  20 61 73 20 74 68 65 0a  | the tag as the.|
0000c760  6e 65 78 74 20 63 61 6c  6c 20 74 6f 20 50 43 41  |next call to PCA|
0000c770  5f 43 72 65 61 74 65 54  61 67 20 77 69 6c 6c 20  |_CreateTag will |
0000c780  70 72 6f 62 61 62 6c 79  20 6d 61 70 20 79 6f 75  |probably map you|
0000c790  72 20 74 61 67 20 74 6f  20 61 6e 6f 74 68 65 72  |r tag to another|
0000c7a0  20 6f 62 6a 65 63 74 20  2d 0a 63 61 75 73 69 6e  | object -.causin|
0000c7b0  67 20 63 68 61 6f 73 2e  0a 0a 3c 70 3e 0a 3c 70  |g chaos...<p>.<p|
0000c7c0  72 65 3e 0a 0a 3c 53 54  52 4f 4e 47 3e 53 57 49  |re>..<STRONG>SWI|
0000c7d0  20 50 43 41 5f 44 65 6c  65 74 65 54 61 67 3c 2f  | PCA_DeleteTag</|
0000c7e0  53 54 52 4f 4e 47 3e 0a  6f 6e 20 65 6e 74 72 79  |STRONG>.on entry|
0000c7f0  20 2d 0a 0a 52 30 20 3d  20 70 74 72 20 74 6f 20  | -..R0 = ptr to |
0000c800  74 61 67 0a 0a 6f 6e 20  65 78 69 74 20 61 6c 6c  |tag..on exit all|
0000c810  20 72 65 67 69 73 74 65  72 73 20 70 72 65 73 65  | registers prese|
0000c820  72 76 65 64 2e 0a 0a 45  72 72 6f 72 73 20 72 65  |rved...Errors re|
0000c830  74 75 72 6e 61 62 6c 65  3a 0a 22 42 61 64 20 74  |turnable:."Bad t|
0000c840  61 67 20 70 61 73 73 65  64 20 74 6f 20 50 43 41  |ag passed to PCA|
0000c850  53 75 70 70 6f 72 74 2e  22 0a 0a 0a 3c 53 54 52  |Support."...<STR|
0000c860  4f 4e 47 3e 53 57 49 20  50 43 41 5f 44 65 6c 65  |ONG>SWI PCA_Dele|
0000c870  74 65 41 6e 64 4b 69 6c  6c 3c 2f 53 54 52 4f 4e  |teAndKill</STRON|
0000c880  47 3e 0a 6f 6e 20 65 6e  74 72 79 20 2d 0a 0a 52  |G>.on entry -..R|
0000c890  30 20 3d 20 70 74 72 20  74 6f 20 74 61 67 0a 52  |0 = ptr to tag.R|
0000c8a0  31 20 3d 20 66 69 6c 65  74 79 70 65 20 6f 66 20  |1 = filetype of |
0000c8b0  6f 62 6a 65 63 74 0a 0a  6f 6e 20 65 78 69 74 20  |object..on exit |
0000c8c0  61 6c 6c 20 72 65 67 69  73 74 65 72 73 20 70 72  |all registers pr|
0000c8d0  65 73 65 72 76 65 64 2e  0a 0a 3c 2f 70 72 65 3e  |eserved...</pre>|
0000c8e0  0a 0a 41 73 20 77 65 6c  6c 20 61 73 20 74 68 65  |..As well as the|
0000c8f0  20 66 75 6e 63 74 69 6f  6e 61 6c 69 74 79 20 6f  | functionality o|
0000c900  66 20 74 68 65 20 61 62  6f 76 65 20 53 57 49 20  |f the above SWI |
0000c910  74 68 69 73 20 61 6c 73  6f 20 62 72 6f 61 64 63  |this also broadc|
0000c920  61 73 74 73 0a 4d 65 73  73 61 67 65 5f 44 65 73  |asts.Message_Des|
0000c930  65 6c 65 63 74 20 66 6f  72 20 79 6f 75 2e 0a 0a  |elect for you...|
0000c940  3c 50 3e 0a 0a 0a 3c 41  20 48 52 45 46 3d 22 23  |<P>...<A HREF="#|
0000c950  74 6f 70 22 3e 52 65 74  75 72 6e 20 74 6f 20 43  |top">Return to C|
0000c960  6f 6e 74 65 6e 74 73 3c  2f 41 3e 0a 3c 48 52 3e  |ontents</A>.<HR>|
0000c970  0a 0a 0a 0a 3c 48 31 3e  0a 3c 41 20 4e 41 4d 45  |....<H1>.<A NAME|
0000c980  3d 22 6c 69 63 65 6e 63  65 22 3e 0a 4c 69 63 65  |="licence">.Lice|
0000c990  6e 63 65 20 63 6f 6e 64  69 74 69 6f 6e 73 0a 3c  |nce conditions.<|
0000c9a0  2f 41 3e 0a 0a 3c 2f 48  31 3e 0a 3c 50 3e 0a 0a  |/A>..</H1>.<P>..|
0000c9b0  0a 0a 59 6f 75 20 61 72  65 20 69 6e 76 69 74 65  |..You are invite|
0000c9c0  64 20 74 6f 20 61 64 64  20 74 68 65 20 50 43 41  |d to add the PCA|
0000c9d0  20 73 74 61 6e 64 61 72  64 20 74 6f 20 79 6f 75  | standard to you|
0000c9e0  72 20 70 72 6f 67 72 61  6d 73 20 61 6e 64 20 74  |r programs and t|
0000c9f0  6f 20 63 72 65 61 74 65  20 50 43 41 0a 27 61 70  |o create PCA.'ap|
0000ca00  70 6c 65 74 73 27 2e 20  48 6f 77 65 76 65 72 2c  |plets'. However,|
0000ca10  20 62 65 66 6f 72 65 20  70 75 62 6c 69 73 68 69  | before publishi|
0000ca20  6e 67 20 6f 72 20 64 69  73 74 72 69 62 75 74 69  |ng or distributi|
0000ca30  6e 67 20 28 69 6e 20 61  6e 79 20 66 6f 72 6d 29  |ng (in any form)|
0000ca40  20 61 20 70 72 6f 67 72  61 6d 0a 77 68 69 63 68  | a program.which|
0000ca50  20 6d 61 6b 65 73 20 75  73 65 20 6f 66 20 74 68  | makes use of th|
0000ca60  65 20 50 43 41 20 73 74  61 6e 64 61 72 64 20 79  |e PCA standard y|
0000ca70  6f 75 20 6d 75 73 74 20  66 69 72 73 74 20 6f 62  |ou must first ob|
0000ca80  74 61 69 6e 20 61 20 6c  69 63 65 6e 63 65 20 74  |tain a licence t|
0000ca90  6f 20 64 6f 20 73 6f 0a  3e 66 72 6f 6d 20 43 6c  |o do so.>from Cl|
0000caa0  61 72 65 73 20 4d 69 63  72 6f 20 53 75 70 70 6c  |ares Micro Suppl|
0000cab0  69 65 73 2e 0a 3c 50 3e  0a 0a 54 68 65 20 6c 69  |ies..<P>..The li|
0000cac0  63 65 6e 63 65 20 69 73  20 63 75 72 72 65 6e 74  |cence is current|
0000cad0  6c 79 20 66 72 65 65 20  6f 66 20 63 68 61 72 67  |ly free of charg|
0000cae0  65 20 61 6e 64 20 65 61  72 6c 79 20 61 64 6f 70  |e and early adop|
0000caf0  74 65 72 73 20 77 69 6c  6c 20 62 65 20 67 75 61  |ters will be gua|
0000cb00  72 61 6e 74 65 65 64 0a  74 68 61 74 20 74 68 65  |ranteed.that the|
0000cb10  20 6c 69 63 65 6e 73 65  20 77 69 6c 6c 20 72 65  | license will re|
0000cb20  6d 61 69 6e 20 66 72 65  65 20 66 6f 72 20 61 20  |main free for a |
0000cb30  6d 69 6e 69 6d 75 6d 20  6f 66 20 66 69 76 65 20  |minimum of five |
0000cb40  79 65 61 72 73 2e 20 57  65 20 64 6f 20 6e 6f 74  |years. We do not|
0000cb50  0a 68 61 76 65 20 61 6e  79 20 70 6c 61 6e 73 20  |.have any plans |
0000cb60  74 6f 20 63 68 61 72 67  65 20 66 6f 72 20 61 20  |to charge for a |
0000cb70  6c 69 63 65 6e 73 65 20  62 75 74 20 77 65 20 64  |license but we d|
0000cb80  6f 20 6e 6f 74 20 77 61  6e 74 20 74 6f 20 70 72  |o not want to pr|
0000cb90  65 63 6c 75 64 65 20 74  68 65 0a 70 6f 73 73 69  |eclude the.possi|
0000cba0  62 69 6c 69 74 79 20 61  74 20 61 20 6c 61 74 65  |bility at a late|
0000cbb0  72 20 64 61 74 65 20 2d  20 77 65 6c 6c 20 77 6f  |r date - well wo|
0000cbc0  75 6c 64 20 79 6f 75 20  3f 3c 62 72 3e 0a 0a 3c  |uld you ?<br>..<|
0000cbd0  50 3e 0a 50 44 20 41 75  74 68 6f 72 73 20 3a 20  |P>.PD Authors : |
0000cbe0  57 65 20 67 75 72 61 6e  74 65 65 20 74 68 61 74  |We gurantee that|
0000cbf0  20 79 6f 75 72 20 6c 69  63 65 6e 73 65 20 77 69  | your license wi|
0000cc00  6c 6c 20 2a 61 6c 77 61  79 73 2a 20 62 65 20 66  |ll *always* be f|
0000cc10  72 65 65 2e 3c 70 3e 0a  0a 3c 50 3e 0a 0a 4c 69  |ree.<p>..<P>..Li|
0000cc20  63 65 6e 73 69 6e 67 20  74 68 65 20 50 43 41 20  |censing the PCA |
0000cc30  73 74 61 6e 64 61 72 64  20 61 6c 6c 6f 77 73 20  |standard allows |
0000cc40  75 73 20 74 6f 20 6b 65  65 70 20 74 72 61 63 6b  |us to keep track|
0000cc50  20 6f 66 20 77 68 6f 20  69 73 20 75 73 69 6e 67  | of who is using|
0000cc60  20 69 74 2c 0a 69 6e 66  6f 72 6d 20 74 68 65 6d  | it,.inform them|
0000cc70  20 6f 66 20 63 68 61 6e  67 65 73 20 74 6f 20 74  | of changes to t|
0000cc80  68 65 20 73 74 61 6e 64  61 72 64 20 61 6e 64 20  |he standard and |
0000cc90  70 72 6f 76 69 64 65 20  73 75 70 70 6f 72 74 20  |provide support |
0000cca0  69 6e 20 74 68 65 20 63  61 73 65 20 6f 66 20 61  |in the case of a|
0000ccb0  0a 70 72 6f 62 6c 65 6d  2e 0a 0a 3c 50 3e 0a 0a  |.problem...<P>..|
0000ccc0  0a 3c 42 3e 0a 50 43 41  20 4c 6f 67 6f 0a 3c 2f  |.<B>.PCA Logo.</|
0000ccd0  42 3e 0a 3c 50 3e 0a 0a  54 68 65 20 50 43 41 20  |B>.<P>..The PCA |
0000cce0  6c 6f 67 6f 20 6d 61 79  20 62 65 20 75 73 65 64  |logo may be used|
0000ccf0  20 62 79 20 6c 69 63 65  6e 73 65 64 20 50 43 41  | by licensed PCA|
0000cd00  20 64 65 76 65 6c 6f 70  65 72 73 20 74 6f 20 69  | developers to i|
0000cd10  6e 64 69 63 61 74 65 20  50 43 41 0a 63 6f 6d 70  |ndicate PCA.comp|
0000cd20  6c 69 61 6e 63 79 2e 20  4c 69 63 65 6e 73 65 64  |liancy. Licensed|
0000cd30  20 64 65 76 65 6c 6f 70  65 72 73 20 6d 75 73 74  | developers must|
0000cd40  20 6e 6f 74 20 75 73 65  20 74 68 65 20 6c 6f 67  | not use the log|
0000cd50  6f 20 74 6f 20 73 75 67  67 65 73 74 20 61 6e 79  |o to suggest any|
0000cd60  20 43 6c 61 72 65 73 0a  61 70 70 72 6f 76 61 6c  | Clares.approval|
0000cd70  20 6f 72 20 62 72 61 6e  64 69 6e 67 20 66 6f 72  | or branding for|
0000cd80  20 74 68 65 69 72 20 70  72 6f 64 75 63 74 73 2e  | their products.|
0000cd90  0a 0a 3c 42 3e 3c 50 3e  0a 0a 3c 41 20 4e 41 4d  |..<B><P>..<A NAM|
0000cda0  45 3d 22 63 6f 6e 74 61  63 74 73 22 3e 0a 43 6f  |E="contacts">.Co|
0000cdb0  6e 74 61 63 74 73 0a 3c  2f 41 3e 0a 0a 3c 2f 42  |ntacts.</A>..</B|
0000cdc0  3e 0a 3c 50 3e 0a 0a 3c  41 20 48 52 45 46 3d 22  |>.<P>..<A HREF="|
0000cdd0  6d 61 69 6c 74 6f 3a 2f  2f 44 4a 61 63 6b 73 6f  |mailto://DJackso|
0000cde0  6e 40 43 6c 61 72 65 73  2e 64 65 6d 6f 6e 2e 63  |n@Clares.demon.c|
0000cdf0  6f 2e 75 6b 22 3e 44 4a  61 63 6b 73 6f 6e 40 63  |o.uk">DJackson@c|
0000ce00  6c 61 72 65 73 2e 64 65  6d 6f 6e 2e 63 6f 2e 75  |lares.demon.co.u|
0000ce10  6b 3c 2f 41 3e 20 2d 20  4c 69 63 65 6e 73 69 6e  |k</A> - Licensin|
0000ce20  67 20 64 65 74 61 69 6c  73 20 61 6e 64 20 70 72  |g details and pr|
0000ce30  6f 6a 65 63 74 20 63 6f  6f 72 64 69 6e 61 74 69  |oject coordinati|
0000ce40  6f 6e 2e 3c 42 52 3e 0a  0a 3c 41 20 48 52 45 46  |on.<BR>..<A HREF|
0000ce50  3d 22 6d 61 69 6c 74 6f  3a 2f 2f 72 64 61 76 69  |="mailto://rdavi|
0000ce60  73 6f 6e 40 78 74 72 61  2e 63 6f 2e 6e 7a 22 3e  |son@xtra.co.nz">|
0000ce70  0a 72 64 61 76 69 73 6f  6e 40 78 74 72 61 2e 63  |.rdavison@xtra.c|
0000ce80  6f 2e 6e 7a 0a 3c 2f 41  3e 20 20 20 20 20 20 20  |o.nz.</A>       |
0000ce90  20 20 20 20 2d 20 41 75  74 68 6f 72 20 6f 66 20  |    - Author of |
0000cea0  74 68 65 20 73 74 61 6e  64 61 72 64 2e 0a 0a 3c  |the standard...<|
0000ceb0  50 3e 0a 0a 3c 42 3e 0a  3c 41 20 4e 41 4d 45 3d  |P>..<B>.<A NAME=|
0000cec0  22 64 69 73 63 6c 61 69  6d 22 3e 0a 44 69 73 63  |"disclaim">.Disc|
0000ced0  6c 61 69 6d 65 72 0a 3c  2f 41 3e 0a 0a 3c 2f 42  |laimer.</A>..</B|
0000cee0  3e 3c 50 3e 0a 0a 54 68  69 73 20 73 74 61 6e 64  |><P>..This stand|
0000cef0  61 72 64 20 69 73 20 73  75 70 70 6c 69 65 64 20  |ard is supplied |
0000cf00  27 61 73 20 69 73 27 3b  20 6e 65 69 74 68 65 72  |'as is'; neither|
0000cf10  20 43 6c 61 72 65 73 20  6e 6f 72 20 74 68 65 20  | Clares nor the |
0000cf20  61 75 74 68 6f 72 20 6f  66 20 74 68 65 20 73 74  |author of the st|
0000cf30  61 6e 64 61 72 64 0a 6d  61 6b 65 20 61 6e 79 20  |andard.make any |
0000cf40  77 61 72 72 61 6e 74 79  2c 20 77 68 65 74 68 65  |warranty, whethe|
0000cf50  72 20 65 78 70 72 65 73  73 20 6f 72 20 69 6d 70  |r express or imp|
0000cf60  6c 69 65 64 2c 20 61 73  20 74 6f 20 74 68 65 20  |lied, as to the |
0000cf70  6d 65 72 63 68 61 6e 74  61 62 69 6c 69 74 79 20  |merchantability |
0000cf80  6f 66 0a 74 68 65 20 73  6f 66 74 77 61 72 65 20  |of.the software |
0000cf90  6f 72 20 73 74 61 6e 64  61 72 64 20 6f 72 20 69  |or standard or i|
0000cfa0  74 73 20 66 69 74 6e 65  73 73 20 66 6f 72 20 61  |ts fitness for a|
0000cfb0  6e 79 20 70 75 72 70 6f  73 65 2e 0a 3c 50 3e 0a  |ny purpose..<P>.|
0000cfc0  0a 49 6e 20 6e 6f 20 63  69 72 63 75 6d 73 74 61  |.In no circumsta|
0000cfd0  6e 63 65 73 20 77 69 6c  6c 20 43 6c 61 72 65 73  |nces will Clares|
0000cfe0  20 6f 72 20 74 68 65 20  61 75 74 68 6f 72 20 6f  | or the author o|
0000cff0  66 20 74 68 65 20 73 74  61 6e 64 61 72 64 20 62  |f the standard b|
0000d000  65 20 6c 69 61 62 6c 65  20 66 6f 72 0a 61 6e 79  |e liable for.any|
0000d010  20 64 61 6d 61 67 65 2c  20 6c 6f 73 73 20 6f 66  | damage, loss of|
0000d020  20 70 72 6f 66 69 74 73  2c 20 67 6f 6f 64 77 69  | profits, goodwi|
0000d030  6c 6c 20 6f 72 20 66 6f  72 20 61 6e 79 20 69 6e  |ll or for any in|
0000d040  64 69 72 65 63 74 20 6f  72 20 63 6f 6e 73 65 71  |direct or conseq|
0000d050  75 65 6e 74 69 61 6c 0a  6c 6f 73 73 20 61 72 69  |uential.loss ari|
0000d060  73 69 6e 67 20 66 72 6f  6d 20 74 68 65 20 75 73  |sing from the us|
0000d070  65 20 6f 66 20 74 68 69  73 20 73 74 61 6e 64 61  |e of this standa|
0000d080  72 64 20 6f 72 20 73 6f  66 74 77 61 72 65 2e 0a  |rd or software..|
0000d090  3c 50 3e 0a 0a 49 6d 70  6c 65 6d 65 6e 74 61 74  |<P>..Implementat|
0000d0a0  69 6f 6e 20 6f 66 20 74  68 65 20 73 74 61 6e 64  |ion of the stand|
0000d0b0  61 72 64 20 69 73 20 64  65 65 6d 65 64 20 61 63  |ard is deemed ac|
0000d0c0  63 65 70 74 61 6e 63 65  20 6f 66 20 74 68 65 73  |ceptance of thes|
0000d0d0  65 20 74 65 72 6d 73 2e  0a 0a 3c 50 3e 0a 3c 41  |e terms...<P>.<A|
0000d0e0  20 48 52 45 46 3d 22 23  74 6f 70 22 3e 52 65 74  | HREF="#top">Ret|
0000d0f0  75 72 6e 20 74 6f 20 43  6f 6e 74 65 6e 74 73 3c  |urn to Contents<|
0000d100  2f 41 3e 0a 3c 50 3e 0a  3c 48 52 3e 0a 3c 41 20  |/A>.<P>.<HR>.<A |
0000d110  4e 41 4d 45 3d 22 65 78  61 6d 70 6c 65 73 22 3e  |NAME="examples">|
0000d120  3c 2f 41 3e 0a 3c 48 31  3e 50 43 41 20 43 6f 6d  |</A>.<H1>PCA Com|
0000d130  70 6c 69 61 6e 74 20 65  78 61 6d 70 6c 65 73 3c  |pliant examples<|
0000d140  2f 48 31 3e 0a 3c 50 3e  0a 0a 57 65 20 68 61 76  |/H1>.<P>..We hav|
0000d150  65 20 70 72 65 70 61 72  65 64 20 73 65 76 65 72  |e prepared sever|
0000d160  61 6c 20 65 78 61 6d 70  6c 65 73 20 6f 66 20 50  |al examples of P|
0000d170  43 41 20 61 70 70 6c 69  63 61 74 69 6f 6e 73 20  |CA applications |
0000d180  69 6e 20 62 6f 74 68 20  43 20 61 6e 64 20 42 41  |in both C and BA|
0000d190  53 49 43 2e 0a 54 68 65  79 20 73 68 6f 77 20 64  |SIC..They show d|
0000d1a0  69 66 66 65 72 65 6e 74  20 69 6e 74 65 72 66 61  |ifferent interfa|
0000d1b0  63 65 73 20 74 68 61 74  20 63 61 6e 20 62 65 20  |ces that can be |
0000d1c0  75 73 65 64 20 61 73 20  77 65 6c 6c 20 61 73 20  |used as well as |
0000d1d0  61 6e 20 65 78 61 6d 70  6c 65 20 6f 66 0a 27 49  |an example of.'I|
0000d1e0  6e 2d 50 6c 61 63 65 27  20 65 64 69 74 69 6e 67  |n-Place' editing|
0000d1f0  2e 20 3c 50 3e 0a 0a 44  6f 6e 27 74 20 66 6f 72  |. <P>..Don't for|
0000d200  67 65 74 20 74 6f 20 6c  65 74 20 75 73 20 6b 6e  |get to let us kn|
0000d210  6f 77 20 77 68 61 74 20  61 70 70 6c 69 63 61 74  |ow what applicat|
0000d220  69 6f 6e 73 20 79 6f 75  20 61 72 65 20 77 72 69  |ions you are wri|
0000d230  74 69 6e 67 20 74 6f 20  63 6f 6d 70 6c 79 20 77  |ting to comply w|
0000d240  69 74 68 0a 74 68 65 20  73 74 61 6e 64 61 72 64  |ith.the standard|
0000d250  2e 20 3c 41 20 48 52 45  46 3d 22 6d 61 69 6c 74  |. <A HREF="mailt|
0000d260  6f 3a 2f 2f 44 43 6c 61  72 65 40 43 6c 61 72 65  |o://DClare@Clare|
0000d270  73 2e 64 65 6d 6f 6e 2e  63 6f 2e 75 6b 22 3e 43  |s.demon.co.uk">C|
0000d280  6c 61 72 65 73 3c 2f 41  3e 20 6d 61 79 20 62 65  |lares</A> may be|
0000d290  0a 69 6e 74 65 72 65 73  74 65 64 20 69 6e 20 70  |.interested in p|
0000d2a0  75 62 6c 69 73 68 69 6e  67 20 61 6e 79 20 50 43  |ublishing any PC|
0000d2b0  41 20 61 70 70 6c 69 63  61 74 69 6f 6e 73 20 74  |A applications t|
0000d2c0  68 61 74 20 79 6f 75 20  77 72 69 74 65 20 73 6f  |hat you write so|
0000d2d0  20 70 6c 65 61 73 65 20  73 65 6e 64 0a 75 73 20  | please send.us |
0000d2e0  61 20 63 6f 70 79 20 69  66 20 74 68 69 73 20 61  |a copy if this a|
0000d2f0  70 70 65 61 6c 73 20 74  6f 20 79 6f 75 2e 0a 0a  |ppeals to you...|
0000d300  3c 50 3e 0a 54 68 65 20  65 78 61 6d 70 6c 65 73  |<P>.The examples|
0000d310  20 61 72 65 20 63 6f 6d  70 72 65 73 73 65 64 20  | are compressed |
0000d320  77 69 74 68 20 53 70 61  72 6b 2e 20 55 73 65 20  |with Spark. Use |
0000d330  65 69 74 68 65 72 20 53  70 61 72 6b 46 53 20 6f  |either SparkFS o|
0000d340  72 20 74 68 65 20 50 44  0a 53 70 61 72 6b 50 6c  |r the PD.SparkPl|
0000d350  75 67 20 74 6f 20 64 65  63 6f 6d 70 72 65 73 73  |ug to decompress|
0000d360  20 74 68 65 20 66 69 6c  65 73 2e 0a 0a 0a 3c 50  | the files....<P|
0000d370  3e 0a 3c 41 20 48 52 45  46 3d 22 23 74 6f 70 22  |>.<A HREF="#top"|
0000d380  3e 52 65 74 75 72 6e 20  74 6f 20 43 6f 6e 74 65  |>Return to Conte|
0000d390  6e 74 73 3c 2f 41 3e 0a  3c 48 52 3e 0a 3c 46 4f  |nts</A>.<HR>.<FO|
0000d3a0  4e 54 20 53 49 5a 45 3d  31 3e 0a 4c 61 73 74 20  |NT SIZE=1>.Last |
0000d3b0  75 70 64 61 74 65 64 20  32 38 2f 30 38 2f 39 36  |updated 28/08/96|
0000d3c0  3c 2f 46 4f 4e 54 3e 0a  3c 2f 42 4f 44 59 3e 0a  |</FONT>.</BODY>.|
0000d3d0  3c 2f 48 54 4d 4c 3e 0a  0a 0a 0a 0a 0a 0a 0a 0a  |</HTML>.........|
0000d3e0