> Extension Shell is a framework that minimises the amount of
> rewriting that you, as a programmer, have to do when creating System
> 7 Extensions. Extension Shell requires System 7, and is based on the
> System 7 trap patching mechanism (which is going to change in
> Copland).
>
> Extension Shell provides an 'INIT' code resource which is loaded by
> the System at boot time. This generic code then calls a handler you
> provide, which fills in a table, indicating what it would like
> Extension Shell to do. Extension Shell allows your extensions to
> correctly display an icon, animate a sequence of icons, post
> notification messages to the user, install and replace Gestalt
> selectors, install Shutdown tasks, install VBL tasks, install low
> memory filters (such as jGNEFilter), leave blocks of code in the
> System Heap, install Time Manager tasks, and patch out traps with
> your own routines.
>
> Extension Shell also ensures that only the minimum is left in memory
> - the only code left in memory after Extension Shell terminates is
> that installed by your Extension; other than that, there is no
> footprint.
#1 DL: Version 1.5 of the Extension Shell source code library for
System 7.
Excerpts from an Info-Mac digest thread:
> >From [
[email protected]][1] (Dair Grant)
> Subject: Extension Shell 1.3 - Help for INIT writers
> Date: Wed, 27 Apr 1994 16:45:51 GMT
> Organization: Computing Science Dept., Glasgow University, Glasgow,
> Scotland
>
> Extension Shell is a library of source code for writing System 7
> Extensions. Full source code is provided, as well as six sample
> Extensions demonstrating how to write Extensions with Extension
> Shell.
>
> Extension Shell acts as an Extension-independent loading mechanism.
> It takes care of the generic stuff needed by all Extensions
> (showing
> icons, installing things into the System Heap, posting Notification
> Manager messages), and reduces the amount of coding needed to
> produce
> new Extensions.
>
> To write an Extension with Extension Shell, you just decide what you
> want installed, compile it into a code resource, and paste in
> Extension Shell. Trap patches, VBL tasks, Shutdown tasks, Time
> Manager tasks, Gestalt selectors, low-memory filters (e.g.,
> jGNEFilter),
> and blocks of code can all be installed through a simple
> "fill out the details in a table" mechanism. It requires THINK C
> 6.0.
Compatibility
[1]: mailto:
[email protected]