> 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]