Software Development Interface
Status of this Document
Copyright 1994, 1995 Spyglass, Inc.
This document may be distributed for
the purpose of discussion of or developing World Wide Web technology.
This document is a work-in-progress draft. As such, this
document may change without notice.
All comments or questions should be directed to:
Paul Rohr
Spyglass, Inc.
1800 Woodfield Drive
Savoy, IL 61874
paul@spyglass.com
$Date: 1995/03/02 12:00:00$
Abstract
This document describes a cross-platform API which can
be used to extend the capabilities of Web browsers by integrating
them with other applications. The API is specified as a set
of platform-independent generic verbs
which can be issued either to or from Web browsers.
Platform-specific implementations of this spec are given for the
AppleEvents and DDE transports.
Future transports to be provided include OLE2 and TCP/IP (for UNIX).
To help understand this API, some typical uses
are also described. While Web browser vendors are encouraged to
implement the full API, no minimal subset is defined. Various external
applications will have different integration needs, so each application
is free to use only the subset they want.
The intention here is to provide an equivalent set of capabilities to
NCSA's Common Client Interface (CCI). As both this document and the
CCI document evolve, they should converge on the same feature set. For
example, the CCI Application Programmer's Interface can be implemented
using these generic verbs.
Generic Verbs
Since this is a platform-independent specification, all details about
the semantics and parameters of individual verbs are provided in this
section. Any details unique to a given platform and/or transport
mechanism can be found in the appropriate section.
Each verb in the API is listed by name and direction (is it sent TO or
FROM the Web browser), along with a list of its arguments, return value
(if any), and a description of its semantics. Optional arguments are
enclosed in [square brackets]. For ease of reference, verbs are
grouped into four categories. Verbs in the first two categories,
basic and utility, are
all sent TO the Web browser. The third category comprises messages FROM
the Web browser, which are sent only if you register
to receive them. The fourth category comprises progress
messages, which can be sent TO or FROM Web browsers.
NOTE: This specification was designed to allow applications to interact
with a fully asynchronous, multi-threaded Web browser. However, it does not
require that either the browser or the other application be asynchronous.
Basic Verbs
The basic functionality that an external application usually requires
from the Web browser is to retrieve and/or render Web documents.
- OpenURL ( TO Web browser )
- URL,
- [FileSpec],
- WindowID,
- Flags,
- [FormData],
- [MIMEType],
- [ProgressApp],
- [ResultApp]
- Returns: TransactionID
- Retrieves URL off the Web, either to dump to a file
(FileSpec) or display in a given WindowID. Passing
OpenURL a WindowID of 0 tells the Web browser to open a new window.
WindowID 0xFFFFFFFF refers to the front window. Valid Flags
settings include any combination of the following:
1. Ignore the document cache
2. Ignore the image cache
4. Operate in background mode
Additional options allow for the posting of forms (FormData)
of a given MIMEType. If specified, ProgressApp can
be named to handle the user interface for
progress messages.
Immediately returns a unique TransactionID. When the requested
URL has been accessed and all associated documents loaded, the Web
browser will issue an OpenURLResult to the ResultApp. If
ResultApp is empty, it indicates that the application does not
care about the return value, and therefore, no OpenURLResult will
be issued.
A TransactionID of 0 means that the requested URL is already in the
document window, 0xFFFFFFFF means that the data was not of an appropriate
MIME type to display in a Web browser window, and 0xFFFFFFFE means that the
application should consider the operation to have succeeded (Super-ACK).
In all three cases, no OpenURLResult will be issued.
A TransactionID of 0xFFFFFFFD means that an invalid URL was specified,
and 0xFFFFFFFC means that an invalid output filename was specified. In both
cases, the operation failed and no OpenURLResult will be issued.
- OpenURLResult ( FROM Web browser )
- TransactionID,
- ActualWindowID
This verb is issued when all Web browser processing initiated by the
OpenURL associated with TransactionID has completely finished.
Indicates the ActualWindowID the document was displayed in, where a
value of 0 means that the operation failed, and 0xFFFFFFFF means that the
data was not of an appropriate MIME type to display in a Web browser
window.
- ShowFile ( TO Web browser )
- FileSpec,
- MIMEType,
- WindowID,
- URL,
- [ResultApp]
- Returns: TransactionID
- Passes FileSpec containing data of a given MIMEType
to be rendered in a given WindowID. Also specified is a
URL which allows this document to be reloaded if needed.
Immediately returns a unique TransactionID. When the requested
URL has been accessed and all associated documents loaded, the Web
browser will issue an ShowFileResult to the ResultApp. If
ResultApp is empty, it indicates that the application does not
care about the return value, and therefore, no ShowFileResult will
be issued.
A TransactionID of 0 means that the requested URL is already in the
document window, 0xFFFFFFFF means that the data was not of an appropriate
MIME type to display in a Web browser window, and 0xFFFFFFFE means that
the application should consider the operation to have succeeded (Super-ACK).
In all three cases, no ShowFileResult will be issued.
A TransactionID of 0xFFFFFFFD means that an invalid URL was specified.
In this case, the operation failed and no ShowFileResult will be issued.
- ShowFileResult ( FROM Web browser )
- TransactionID,
- ActualWindowID
This verb is issued when all Web browser processing initiated by the
ShowFile associated with TransactionID has completely finished.
Indicates the ActualWindowID the document was displayed in, where a
value of 0 means that the operation failed, and 0xFFFFFFFF means that the
data was not of an appropriate MIME type to display in a Web browser
window.
- CancelTransaction ( TO Web browser )
- TransactionID
- Returns: Success
Tells the Web browser to cancel a TransactionID in progress which the
application had initiated via an OpenURL or ShowFile command.
Applications can only cancel transactions which they have initiated.
Immediately returns a Success flag. Success = TRUE means that the
transaction will be canceled and no OpenURLResult or ShowFileResult
(as appropriate) will be issued. Success = FALSE means that the requested
TransactionID cannot be cancelled by this application.
Utility Verbs
These are some additional utility verbs which may be useful to
Web browser-aware applications.
- QueryVersion ( TO Web browser )
- VersionMajor,
- VersionMinor
- Returns: BrowserVersionMajor, BrowserVersionMinor, UserAgent
- Tells the Web browser that an application which wishes to communicate with
it supports a specific Version (Major . Minor) of
this SDI specification.
Returns the maximum BrowserVersion (Major . Minor)
supported by this Web browser (subject to the constraint that BrowserVersion is
less than or equal to Version). A BrowserVersion of 0.0 means that no
common version is available. Also reports the browser's HTTP UserAgent
information.
- Activate ( TO Web browser )
- WindowID,
- Flags
- Returns: ActualWindowID
- Tells the Web browser to bring itself to the front and show
WindowID. Flags are reserved for future expansion,
and should be set to 0.
Upon completion, returns ActualWindowID, where a value of 0
means that the operation failed.
- ListWindows ( TO Web browser )
- Returns: (list of WindowID's)
- Returns a list of WindowID's for each window currently being used
by the Web browser. These WindowIDs are synthetic, and do not necessarily have
any platform-specific significance.
- GetWindowInfo ( TO Web browser )
- WindowID
- Returns: (list of Window info)
- Returns a list of Window info items for WindowID, namely
the URL and window Title.
- ParseAnchor ( TO Web browser )
- MainURL,
- RelativeURL
- Returns: URL
- Combines a base URL (MainURL) and a relative URL
(RelativeURL) to produce a fully-specified URL.
- Exit ( TO Web browser )
- Tells the Web browser to shut down and exit. Used by scripting applications
which want to control the Web browser as a slave process. Generally not needed.
Registered Verbs
A tighter level of integration between the Web browser and other applications
can be achieved if there is a two-way flow of information back and
forth between the applications.
Messages are sent FROM the Web browser only if you register to receive them,
via the RegisterProtocol,
RegisterViewer,
RegisterURLEcho, or
RegisterWindowClose verbs. Verbs sent FROM
the Web browser are listed between the relevant Register and UnRegister
events.
Applications which have registered to receive messages from the Web browser
must unregister when they are shut down. The Web browser will not
automatically unregister viewers, protocol handlers, etc.
- RegisterNow ( FROM Web browser )
- BrowserApp,
- TransactionID
- Returns: Timeout
- Tells applications which wish to register themselves that BrowserApp
is a Web browser which can now be communicated with via this interface. Passes
a unique TransactionID to be used by the matching RegisterDone
message, if any.
Returns a Timeout value, indicating the amount of time (in seconds) the
application will need to register itself. If the application does not send a
RegisterDone message within Timeout seconds, the Web browser
will assume that the registration has failed. A Timeout of 0 means that
the application will not register itself.
- RegisterDone ( TO Web browser )
- TransactionID,
- Result
This verb is issued when all application processing initiated by the
RegisterNow associated with TransactionID has finished.
Indicates the Result of the operation, where a value of 0 means that the
operation failed, and a value of 1 means that the operation succeeded. A value of
2 means that the operation ran out of time. At the Web browser's discretion,
another RegisterNow operation may then be started.
- RegisterProtocol ( TO Web browser )
- Application,
- Protocol
- Returns: Success
- Notifies the Web browser that Application is ready to handle all
URLs for a given Protocol, such as MAILTO, NEWS, etc.
If multiple apps attempt to register a given protocol, only the first
one succeeds (Success = TRUE).
- OpenURL ( FROM Web browser )
- URL,
- [FileSpec],
- WindowID,
- Flags,
- [FormData],
- [MIMEType],
- [ProgressApp],
- [ResultApp]
- Returns: TransactionID
- Passes URL for this protocol application to handle. The
FileSpec and WindowID are made available to be passed back
to the Web browser as part of a nested ShowFile
call. The FormData and MIMEType fields can either be used
by the application and/or passed back to the Web browser as part of a nested
OpenURL call. Flags are reserved for future
expansion. If specified, ProgressApp can be named to handle the user
interface for progress messages.
Immediately returns a unique TransactionID. When the requested
URL has been accessed and all associated documents loaded, the application
will issue an OpenURLResult to the ResultApp. If
ResultApp is empty, it indicates that the Web browser does not
care about the return value, and therefore, no OpenURLResult will
be issued.
A TransactionID of 0 means that the requested URL is already in the
document window, 0xFFFFFFFF means that the data was not of an appropriate
MIME type to display in a Web browser window, and 0xFFFFFFFE means that
the application should consider the operation to have succeeded (Super-ACK).
In all three cases, no OpenURLResult will be issued.
A TransactionID of 0xFFFFFFFD means that an invalid URL was specified,
and 0xFFFFFFFC means that an invalid output filename was specified. In both
cases, the operation failed and no OpenURLResult will be issued.
- OpenURLResult ( TO Web browser )
- TransactionID,
- ActualWindowID
This verb is issued when all protocol application processing initiated by
the OpenURL associated with TransactionID has completely
finished.
Indicates the ActualWindowID the document was displayed in, where a
value of 0 means that the operation failed, and 0xFFFFFFFF means that the
data was not of an appropriate MIME type to display in a Web browser
window.
- CancelTransaction ( FROM Web browser )
- TransactionID
- Returns: Success
Tells the protocol application to cancel a TransactionID in progress
which the Web browser had initiated via an OpenURL command. Web browsers
can only cancel transactions which they have initiated.
Immediately returns a Success flag. Success = TRUE means that the
transaction will be canceled and no OpenURLResult will be issued.
Success = FALSE means that the requested TransactionID cannot be
cancelled by this Web browser.
- UnRegisterProtocol ( TO Web browser )
- Application,
- Protocol
- Notifies the Web browser that Application no longer wishes to receive
Protocol URLs.
RegisterViewer ( TO Web browser )
- Application,
- MIMEType,
- Flags
- Returns: Success
- Notifies the Web browser that Application is ready to handle all
MIMEType documents. The Flags may be any of
the following values:
1. Save to a temporary file and use platform-specific OpenDocument event
2. Use QueryViewer
4. Always use ViewDocFile
8. Always use ViewDocData
If multiple apps attempt to register a given MIMEType, only the first one
succeeds (Success = TRUE). RegisterViewer dynamically overrides
any relevant user- or OEM-configured viewers.
- QueryViewer ( FROM Web browser )
- URL,
- MIMEType
- Returns: FileSpec
- Asks the application handling MIMEType documents where it
wants a temporary copy of the document associated with URL to
be stored. The reply should be provided in FileSpec.
This allows the application to handle deletion of unused tempfiles,
so that the Web browser doesn't delete them out from under it.
If the application does not specify a FileSpec in response to a
specific QueryViewer message, then the Web browser will handle the creation
and/or deletion of a tempfile for that URL as appropriate, and the application
must not delete the file passed to it in the subsequent
ViewDocFile message.
- ViewDocCache ( FROM Web browser )
- URL,
- WindowID
- Returns: Success
- Asks a registered viewer if has a copy of URL in its own internal
cache. If so, the application is expected to immediately render the document
and then return Success = TRUE). If not, return Success = FALSE so that
the Web Browser or another registered viewer can process the URL.
The WindowID attribute is passed along to let the application
know which Web browser window generated this request. This allows the
application to pass the same WindowID back to the Web browser in related
requests.
Note that this message may get sent to multiple registered viewers, at the
discretion of the Web browser.
- ViewDocData ( FROM Web browser )
- URL,
- MIMEType,
- WindowID,
- (actual data)
- Tells the application handling MIMEType documents to render
the (actual data) which was obtained from URL. The WindowID
attribute is passed along to let the application know which Web browser window
generated this request. This allows the application to pass the same
WindowID back to the Web browser in related requests.
- ViewDocFile ( FROM Web browser )
- FileSpec,
- URL,
- MIMEType,
- WindowID
- Tells the application handling MIMEType documents to render
the data in FileSpec which was obtained from URL.
The WindowID attribute is passed along to let the application
know which Web browser window generated this request. This allows the
application to pass the same WindowID back to the Web browser in
related requests.
- UnRegisterViewer ( TO Web browser )
- Application,
- MIMEType
- Notifies the Web browser that Application no longer wishes to
receive MIMEType documents.
- RegisterURLEcho ( TO Web browser )
- Application
- Returns: Success
- Notifies the Web browser that Application would like to receive
URLEcho events for all windows.
Multiple apps can be concurrently registered to receive URLEcho events.
- URLEcho ( FROM Web browser )
- URL,
- MIMEType,
- WindowID,
- [ReferrerURL]
- Tells the application that the Web browser just loaded a URL of
a given MIMEType to WindowID. Also mentions the
ReferrerURL it was launched from, for use by mapping apps.
In certain cases, such as when a URL is processed by another application,
the MIMEType may be unknown, and thus will be represented as an empty string.
A WindowID of 0xFFFFFFFF means that the Web browser didn't wind up displaying
the URL in one of its own windows.
- UnRegisterURLEcho ( TO Web browser )
- Application
- Notifies the Web browser that Application no longer wishes to
receive URLEcho events.
- RegisterWindowClose ( TO Web browser )
- Application,
- WindowID
- Returns: ActualWindowID
- Notifies the Web browser that Application would like to receive
WindowClose events from WindowID. Upon completion, returns
ActualWindowID, where a value of 0 means that the operation failed.
- WindowClose ( FROM Web browser )
- WindowID,
- Exiting
- Tells the application that WindowID just closed. Also indicates
whether this happened because the Web browser is Exiting (value = TRUE),
or because of user interface operations.
Since WindowIDs are unique, and not reused when a window is closed, the Web
browser will also perform an automatic UnRegisterWindowClose for that WindowID.
- UnRegisterWindowClose ( TO Web browser )
- Application,
- WindowID
- Notifies the Web browser that Application no longer wishes to
receive WindowClose events from WindowID.
Progress Verbs
The application that handles the processing of a given URL may be different
from the application which handles the user interface for presenting the
results of that processing. Thus, it will sometimes be necessary to delegate
the handling of progress indicators such as message lines, progress thermometers,
spinning globes, etc. to another application. The following messages can
be used to delegate the user interface handling of progress indicators for
a specific transaction to a specific window in another application.
This family of messages can potentially be sent either TO or FROM
the Web browser during processing of the relevant OpenURL event.
- BeginProgress ( TO or FROM Web browser )
- TransactionID,
- Message
- Returns: Success
- Initializes a progress indicator for an existing OpenURL TransactionID
with an initial Message.
If multiple apps attempt to control the same progress indicator, only the
first one succeeds (Success = TRUE).
- SetProgressRange ( TO or FROM Web browser )
- TransactionID,
- Max
- Sets a Max value for the progress indicator associated with
TransactionID. The range begins at 0 and extends upwards. Setting
a Max value of 0 hides the progress indicator.
- MakingProgress ( TO or FROM Web browser )
- TransactionID,
- Message,
- Current
- Returns: Cancel
- Updates the progress indicator associated with TransactionID
to reflect the Current value. Will also change the Message
displayed, unless that field contains an empty string, in which case the
current message is preserved.
Returns a flag indicating whether the user wishes to Cancel the
transaction. Upon receipt of Cancel = TRUE, the application which sent
this message should abort processing and then send an EndProgress message.
Progress-monitoring applications which don't allow users to interrupt
lengthy transactions will always return Cancel = FALSE.
- EndProgress ( TO or FROM Web browser )
- TransactionID
- Notifies the application that the progress indicator associated with
TransactionID is no longer needed.
Implementation: AppleEvents
Listed below are the AppleEvent-specific details for each verb in the
API. For more information on the semantics and parameters of each verb,
see the generic verbs section above.
Note that much of this information can also be found in the AETE
(Apple Event Terminology Extension) resource which gets shipped with
AppleEvents-aware copies of the Web browser.
Events which can be sent to the Web browser use the class 'WWW!'.
Events which the Web browser generates use the class 'WWW?'.
These classes are temporary until an official class is assigned.
TODO: Adjust spec to reflect async verb changes.
- OpenURL ( TO Web browser )
WWW! OURL
---- TEXT
URL,
INTO fss
[FileSpec],
WIND long
WindowID,
FLGS long
Flags,
POST ****
[FormData],
MIME TEXT
[MIMEType]
PROG psn
[ProgressApp]
- Reply:
rply long
ActualWindowID
- ShowFile ( TO Web browser )
WWW! SHWF
---- alis
FileSpec,
MIME TEXT
MIMEType,
WIND long
WindowID,
URL TEXT
URL
- Reply:
rply long
ActualWindowID
- Activate ( TO Web browser )
WWW! ACTV
WIND long
WindowID,
FLGS long
Flags,
- Reply:
rply long
ActualWindowID
- ListWindows ( TO Web browser )
WWW! LSTW
---- null
(not used)
- Reply:
rply list
(list of WindowID's, each of type long
)
- GetWindowInfo ( TO Web browser )
WWW! WNFO
---- long
WindowID
- Reply:
rply list
List containing following items:
TEXT
URL
TEXT
Title
- ParseAnchor ( TO Web browser )
WWW! PRSA
---- TEXT
MainURL,
RELA TEXT
RelativeURL
- Reply:
rply TEXT
URL
- Exit ( TO Web browser )
- Not needed. The AppleEvent core event class includes a Quit
Application event which performs the same function.
- RegisterProtocol ( TO Web browser )
WWW! RGPR
---- sign
Application
PROT TEXT
Protocol,
- Reply:
rply bool
Success
- OpenURL ( FROM Web browser )
WWW! OURL
---- TEXT
URL,
INTO fss
[FileSpec],
WIND long
WindowID,
FLGS long
Flags,
POST ****
[FormData],
MIME TEXT
[MIMEType]
PROG psn
[ProgressApp]
- Reply:
rply long
ActualWindowID
- Note:
- This is identical to the OpenURL event sent to the web browser, which
is why it uses the
WWW!
class.
- UnRegisterProtocol ( TO Web browser )
WWW! UNRP
---- sign
Application
PROT TEXT
Protocol,
- Reply:
- Not used
- RegisterViewer ( TO Web browser )
WWW! RGVW
---- sign
Application
MIME TEXT
MIMEType,
MTHD shor
Flags,
FTYP type
FileType (not needed if using ViewDocData)
- Reply:
rply bool
Success
- QueryViewer ( FROM Web browser )
WWW? QVWR
---- TEXT
URL,
MIME TEXT
MIMEType
- Reply:
rply fss
FileSpec
- ViewDocCache ( FROM Web browser )
WWW? VCHD
---- TEXT
URL,
WIND long
WindowID
- Reply:
rply bool
Success
- ViewDocData ( FROM Web browser )
- To be specified
- Reply:
- To be specified
- ViewDocFile ( FROM Web browser )
WWW? VDOC
---- alis
FileSpec,
URL TEXT
URL,
MIME TEXT
MIMEType,
WIND long
WindowID
- Reply:
- Not used
- UnRegisterViewer ( TO Web browser )
WWW! UNRV
---- sign
Application
MIME TEXT
MIMEType,
- Reply:
- Not used
- RegisterURLEcho ( TO Web browser )
WWW! RGUE
---- sign
Application
- Reply:
rply bool
Success
- URLEcho ( FROM Web browser )
WWW? URLE
---- TEXT
URL,
MIME TEXT
MIMEType,
WIND long
WindowID,
RFRR TEXT
[ReferrerURL]
- Reply:
- Not used
- UnRegisterURLEcho ( TO Web browser )
WWW! UNRU
---- sign
Application
- Reply:
- Not used
- RegisterWindowClose ( TO Web browser )
WWW! RGWC
---- sign
Application
WIND long
WindowID
- Reply:
rply long
ActualWindowID
- WindowClose ( FROM Web browser )
WWW? WNDC
---- long
WindowID
EXIT bool
Exiting
- Reply:
- Not used
- UnRegisterWindowClose ( TO Web browser )
WWW! UNRC
---- sign
Application
WIND long
WindowID
- Reply:
- Not used
- BeginProgress ( TO or FROM Web browser )
WWW! PRBG
---- long
WindowID
PMSG TEXT
Message
- Reply:
rply long
TransactionID
- SetProgressRange ( TO or FROM Web browser )
WWW! PRSR
---- long
TransactionID
MAXV long
Max
- Reply:
- Not used
- MakingProgress ( TO or FROM Web browser )
WWW! PRMK
---- long
TransactionID
PMSG TEXT
Message
CURR long
Current
- Reply:
rply bool
Cancel
- EndProgress ( TO or FROM Web browser )
WWW! PREN
---- long
TransactionID
- Reply:
- Not used
Implementation: DDE
Listed below are the DDE-specific details for each verb in the API. For
more information on the semantics and parameters of each verb, see the
generic verbs section above.
The following DDE-specific attributes are provided for each verb in
the API: a topic, item, transaction type, and data. These attributes
can be used to synthesize DDE messages of the appropriate type. Note
that the DDE item and data are both null-terminated strings composed of
comma-delimited arguments. For more information on DDE programming,
see the appropriate manuals supplied with your scripting or programming
language.
Messages are sent to the Web browser under a browser-specific DDE service name.
For example, Enhanced Mosaic uses the service name Mosaic.
Notation
In the detail sections below, a standard notation is used to indicate
argument and result types. A name prefixed with qs indicates a
quoted string. (To embed a quote character within a quoted string, use the
\" character combination.) A name prefixed with s indicates
a string, unquoted. A name prefixed with b indicates a Boolean value
which must be either TRUE or FALSE. A name prefixed with l indicates
a long value. A lWindowID refers to a unique window identifier which
the Web browser will provide. The qsResultApp, qsProgressApp,
qsBrowserApp, and qsApplication strings each contain the
DDE service name of the relevant application.
At the implementation level, all DDE items are passed as strings that have to be
parsed, but the DDE data (ie, the "return value") is only a string when it has
to be. For example, GetWindowInfo returns two strings, qsURL and
qsTitle. ParseAnchor returns a string too. RegisterProtocol, however,
does not return a string but a BOOL (4 byte integer).
- OpenURL ( TO Web browser )
- Topic: WWW_OpenURL
- Item: qsURL, [qsFileSpec], lWindowID, lFlags, [qsFormData], [qsMIMEType], [qsProgressApp], [qsResultApp]
- Transaction: XTYP_REQUEST
- Data: lTransactionID
- OpenURLResult ( FROM Web browser )
- Topic: WWW_OpenURLResult
- Item: lTransactionID, lActualWindowID
- Transaction: XTYP_POKE
- Data: Not used
- ShowFile ( TO Web browser )
- Topic: WWW_ShowFile
- Item: qsFileSpec, qsMIMEType, lWindowID, qsURL, [qsResultApp]
- Transaction: XTYP_REQUEST
- Data: lTransactionID
- ShowFileResult ( FROM Web browser )
- Topic: WWW_ShowFileResult
- Item: lTransactionID, lActualWindowID
- Transaction: XTYP_POKE
- Data: Not used
- CancelTransaction ( TO Web browser )
- Topic: WWW_CancelTransaction
- Item: lTransactionID
- Transaction: XTYP_REQUEST
- Data: bSuccess
- QueryVersion ( TO Web browser )
- Topic: WWW_QueryVersion
- Item: lVersionMajor, lVersionMinor
- Transaction: XTYP_REQUEST
- Data: lBrowserVersionMajor, lBrowserVersionMinor, sUserAgent
- Activate ( TO Web browser )
- Topic: WWW_Activate
- Item: lWindowID, lFlags
- Transaction: XTYP_REQUEST
- Data: lActualWindowID
- ListWindows ( TO Web browser )
- Topic: WWW_ListWindows
- Item: WWW_ListWindows
- Transaction: XTYP_REQUEST
- Data: lArrayItems, (array of lWindowIDs)
- GetWindowInfo ( TO Web browser )
- Topic: WWW_GetWindowInfo
- Item: lWindowID
- Transaction: XTYP_REQUEST
- Data: qsURL, qsTitle
- ParseAnchor ( TO Web browser )
- Topic: WWW_ParseAnchor
- Item: qsMainURL, qsRelativeURL
- Transaction: XTYP_REQUEST
- Data: qsURL
- Exit ( TO Web browser )
- Topic: WWW_Exit
- Item: WWW_Exit
- Transaction: XTYP_POKE
- Data: Not used
- RegisterNow ( FROM Web browser )
- Topic: WWW_RegisterNow
- Item: qsBrowserApp, lTransactionID
- Transaction: XTYP_REQUEST
- Data: lTimeout
- RegisterDone ( TO Web browser )
- Topic: WWW_RegisterDone
- Item: lTransactionID, lResult
- Transaction: XTYP_POKE
- Data: Not used
- RegisterProtocol ( TO Web browser )
- Topic: WWW_RegisterProtocol
- Item: qsApplication, qsProtocol
- Transaction: XTYP_REQUEST
- Data: bSuccess
- OpenURL ( FROM Web browser )
- Topic: WWW_OpenURL
- Item: qsURL, [qsFileSpec], lWindowID, lFlags, [qsFormData], [qsMIMEType], [qsProgressApp], [qsResultApp]
- Transaction: XTYP_REQUEST
- Data: lTransactionID
- OpenURLResult ( TO Web browser )
- Topic: WWW_OpenURLResult
- Item: lTransactionID, lActualWindowID
- Transaction: XTYP_POKE
- Data: Not used
- CancelTransaction ( FROM Web browser )
- Topic: WWW_CancelTransaction
- Item: lTransactionID
- Transaction: XTYP_REQUEST
- Data: bSuccess
- UnRegisterProtocol ( TO Web browser )
- Topic: WWW_UnRegisterProtocol
- Item: qsApplication, qsProtocol
- Transaction: XTYP_REQUEST
- Data: bSuccess
- RegisterViewer ( TO Web browser )
- Topic: WWW_RegisterViewer
- Item: qsApplication, qsMIMEType, lFlags
- Transaction: XTYP_REQUEST
- Data: bSuccess
- QueryViewer ( FROM Web browser )
- Topic: WWW_QueryViewer
- Item: qsURL, qsMIMEType
- Transaction: XTYP_REQUEST
- Data: qsFileSpec
- ViewDocCache ( FROM Web browser )
- Topic: WWW_ViewDocData
- Item: qsURL, lWindowID
- Transaction: XTYP_REQUEST
- Data: bSuccess
- ViewDocData ( FROM Web browser )
- To be specified
- ViewDocFile ( FROM Web browser )
- Topic: WWW_ViewDocFile
- Item: qsFileSpec, qsURL, qsMIMEType, lWindowID
- Transaction: XTYP_POKE
- Data: Not used
- UnRegisterViewer ( TO Web browser )
- Topic: WWW_UnRegisterViewer
- Item: qsApplication, qsMIMEType
- Transaction: XTYP_REQUEST
- Data: bSuccess
- RegisterURLEcho ( TO Web browser )
- Topic: WWW_RegisterURLEcho
- Item: qsApplication
- Transaction: XTYP_REQUEST
- Data: bSuccess
- URLEcho ( FROM Web browser )
- Topic: WWW_URLEcho
- Item: qsURL, qsMIMEType, lWindowID, [qsReferrerURL]
- Transaction: XTYP_POKE
- Data: Not used
- UnRegisterURLEcho ( TO Web browser )
- Topic: WWW_UnRegisterURLEcho
- Item: qsApplication
- Transaction: XTYP_REQUEST
- Data: bSuccess
- RegisterWindowClose ( TO Web browser )
- Topic: WWW_RegisterWindowClose
- Item: qsApplication, lWindowID
- Transaction: XTYP_REQUEST
- Data: lActualWindowID
- WindowClose ( FROM Web browser )
- Topic: WWW_WindowClose
- Item: lWindowID, bExiting
- Transaction: XTYP_POKE
- Data: Not used
- UnRegisterWindowClose ( TO Web browser )
- Topic: WWW_UnRegisterWindowClose
- Item: qsApplication, lWindowID
- Transaction: XTYP_REQUEST
- Data: bSuccess
- BeginProgress ( TO or FROM Web browser )
- Topic: WWW_BeginProgress
- Item: lTransactionID, qsMessage
- Transaction: XTYP_REQUEST
- Data: bSuccess
- SetProgressRange ( TO or FROM Web browser )
- Topic: WWW_SetProgressRange
- Item: lTransactionID, lMax
- Transaction: XTYP_POKE
- Data: Not used
- MakingProgress ( TO or FROM Web browser )
- Topic: WWW_MakingProgress
- Item: lTransactionID, qsMessage, lCurrent
- Transaction: XTYP_REQUEST
- Data: bCancel
- EndProgress ( TO or FROM Web browser )
- Topic: WWW_EndProgress
- Item: lTransactionID
- Transaction: XTYP_REQUEST
- Data: bSuccess
Typical Uses
This section describes the portions of the API which might
be used to support various types of Web browser-friendly applications.
This list is not intended to be exhaustive, but merely illustrative.
External Viewer
In addition to the basic and utility verbs, add support to receive and
handle the RegisterViewer family of verbs.
Protocol Handler
In addition to the basic and utility verbs, add support to receive and
handle the RegisterProtocol family of verbs.
Search Tool
This can be implemented by just using the forms-posting options of the
OpenURL verb. It may also be desirable to have the
search tool act as an external viewer for a custom search results format.