AcornSearch - Acorn and RISC OS information searching
RISC OS Search
containing
"Nutty quip goes here!"
Home  |  About  |  Filebase Archive  |  StrongHelp Manuals  |  Newsgroups  |  Module Database
+20     Unique Name (16 byte, padded with zeros)
+36     Window handle
+40     x
+44     y
+48     Session type:
     0 = try to edit
     1 = run and edit
     2 = reedit
+52     Session number
+56     /depends on session type/

This message requests a server to edit some data. The normal procedure is to
use session type zero initially, then if that bounces type one. If the server already exists, type two is used.

See also:     OLE specs (arc file)
OLE Unique Name
A unique name in OLE terms means the name of the server which claims that
it can handle a given data type.

This can be obtained from a system variable. In the case of text files, for example, one would find what the contents of OLEServer$Type_FFF.

This variable's contents, if it exists, will look something like:
-N Zap -R raFS::Apps.$.!Zap
To extract the name OS_ReadArgs is recommended.
Session Type 0
+48 =     0
+52 =     Session number
+56 =     Filetype
+60 =     full pathname (not a pointer to it)

This message is used initially. If it bounces when broadcast to all tasks then the client should prepare for and use type one instead.
Session Type 1
+48 =     1
+52 =     Session number
+56 =     Filetype
+60 =     full pathname (not a pointer to it)

If a message of session type zero failed, then the application should try to run the server and then broadcast the same message as for the type zero, but with the type (at offset 48) changed to 1. If this returns then the server is either not started or is not capable of handling the request.
Session Type 2
+48 =     2
+52 =     Session number

Session type 2 is used when a link already has already been established. If it fails, then one should go back to session type zero and start again.
Running an OLE server
To run an OLE server (ie. your program is a client and wishes to have some data edited but the editor is not present) one must first find out what the appropriate editor for the file type is.

This can be obtained from a system variable. In the case of text files, for example, one would find what the contents of OLEServer$Type_FFF.

This variable's contents, if it exists, will look something like:
-N Zap -R raFS::Apps.$.!Zap
To extract the path to the application OS_ReadArgs is recommended.

If the OLEServer$Type_### variable does not exist, then use the Alias$@RunType_### variable for the file type, but don't expect the client to work (however the OLESupport module generally gets OLE unaware applications to work properly).

[sh-index] Back to list of manuals