Apple Additional Software
This chapter lists selector codes of which the meaning is documented and are installed by additional, non-system software, software from Apple.
#!#7 (File Server Extension ? [???] part of AppleShare 6.0)
gestaltASIPFSVersion
Returns the version of AppleShare IP as BCD?
#define gestaltASIPFSVersion '#!#7'
arb (PortShare Pro ? cp [1.2?] by Stalker Software)
(Serial Port Arbitrator ext [1.0], part of Apple Remote Access)
gestaltArbitorAttr &AD02
Returns information about the Serial Port Arbitration.
enum {
#define gestaltArbitorAttr 'arb ' /* Serial Port Arbitration
attributes */
gestaltSerialArbitrationExists = 0}; /* Serial Port Arbitration
installed */
calb (OpenDoc? [???])
gestaltCALibVersion
Returns the version of the CA Library as BCD?
#define gestaltCALibVersion 'calb'
#define CALIBVERSION1 ((short)0x0100)
clip (PC Clipboard appl [1.0] part of DOS Compatibility Card)
gestaltPCClipboardZoneAddr?
Returns the PC clipboard translator zone hint.
The PC Clipboard software places a "zone hint" in this selector which
is a hint to the translator where some memory might be found. This
will be a pointer to the application zone of the PC Clipboard
application. (Anonymous)
#define gestaltPCClipboardZoneAddr? 'clip'
clpx (PC Clipboard Translators ext [1.0]
part of DOS Compatibility Card)
gestaltPCClipboardError?
Returns the PC clipboard translator error.
The PC clipboard translators place an error code in this selector that
can be used by the PC Clipboard application to determine why a
GetScrap request may have really failed. (Anonymous)
#define gestaltPCClipboardError? 'clpx'
cltn (QuickDraw GX [1.0])
gestaltCollectionMgrVersion
Returns the version of the Collection Manager as NumVersion.
#define gestaltCollectionMgrVersion 'cltn' /* Collection Mgr version*/
NOTE:
The Collection Manager is a set of routines for maintaining tagged
collections of data; GX uses it to support the "tags" that you can
attach to GX objects, for holding special data, including
user-defined data. (Lawrence D'Oliveiro)
fred (??? [???])
gestaltAdminFeaturesFlagsAttr
'a set of admin flags, mostly useful internally.'
enum {
#define gestaltAdminFeaturesFlagsAttr 'fred'
gestaltFinderUsesSpecialOpenFoldersFile = 0};
/* The Finder uses a special file to store the list of open folders.*/
gc24 (8*24 GC cp [???])
gestaltGC24? &M07
Returns the version of the 8*24 GC software for the Macintosh
Display Card 8*24 GC as BCD?
#define gestaltGC24? 'gc24'
NOTE:
This selector is also installed when no card is available. A value
returned when no card is installed is 0xFFFF D8EB.
gfxa (QuickDraw GX [1.0])
gestaltGraphicsAttr
Returns information about the Graphics.
enum {
#define gestaltGraphicsAttr 'gfxa' /* graphics attributes bits */
gestaltGraphicsIsDebugging = 0x0001,
gestaltGraphicsIsLoaded = 0x0002,
gestaltGraphicsIsPowerPC = 0x0004};
NOTE: Not bit values but bit masks? Use AND?
grfx (QuickDraw GX ext [1.0])
gestaltGraphicsVersion
Returns the version of the Graphics as ???.
enum {
#define gestaltGraphicsVersion 'grfx' /* Gestalt version selector */
gestaltCurrentGraphicsVersion = 0x00010200}; /* supposed value
returned */
kids (At Ease [1.0])
kAtEaseGestalt
Returns a handle to a structure holding information about At Ease.
The following code was published by Apple &AT06:
#define kAtEaseGestalt 'kids'
typedef struct {
short giVersion; /* structure version */
short giIsActive; /* true if at ease is currently running */
short giAutoCreateAlias; /* if true then auto create alias */
short giRequestFloppy; /* if true then request floppy on new
saves */
short giStacksAreApps; /* if true then HyperCard stacks are shown
with applications */
FSSpec giItemsLocation; /* location of the At Ease Items folder */
/* more version 2 fields??? */
} GestaltRec, *GestaltRecPtr, **GestaltRecHand;
mess (QuickDraw GX [1.0])
gestaltMessageMgrVersion
Returns the version of the Message Manager as ???.
#define gestaltMessageMgrVersion 'mess' /* Message Mgr version */
NOTE:
The Message Manager is an implementation of object-oriented-style
message passing within an inheritance hierarchy, that can be used from
non-OO languages.
It is used by the GX printing system, to allow the customization of
printing behaviour by letting applications (and developers of printing
extensions) intercept messages sent to the printer driver.
(Lawrence D'Oliveiro)
mpeg (QuickTime MPEG Extension ext [1.0])
???
Indicates MPEG support in some form on your system.
NOTE:
This selector is not public. Originally the 'mpeg' selector
(returning 0) was supposed to tell the Apple Video Player app if the
MPEG card was installed. This application somehow did not simply query
QuickTime in the usual fashion.
Since this selector only exists because of backward compatibility it
is very likely to disappear next time the Apple Video Player app is
revised. Any application that tests for this selector is very likely
to break in the near future. (Maynard James Handley)
mtlk (QuickTime Conferencing ext? [1.0?])
gestaltQuickTimeConferencing
Returns the version of QuickTime Conferencing (renamed to QuickTime
Streaming) as NumVersion.
#define gestaltQuickTimeConferencing 'mtlk'
NOTE:
For compatibiity reasons the gestaltQuickTimeConferencing ('mtlk')
selector will remain to return 0x01028000.
The gestaltQuickTimeConferencingInfo ('qtci') selector will return the
proper version number and string. &AT15
See also the gestaltQuickTimeConferencingInfo ('qtci') selector.
mtv2 (Video Player app [???])
(Video Startup ext [1.0], part of European Video Installer)
gestaltTV &AD16
"Indicates whether the Video Player app is present."
pc (PC Setup cp? [???])
gestaltDOSCompatibleState &AD23
Returns information about the state of the DOS Compatible system.
enum {
#define gestaltDOSCompatibleState 'pc '
gestaltPCInstalled = 0, /* PC Setup Init is installed */
gestaltPCRunning = 1, /* If bit set, the PC system is
running */
gestaltPCHasTakenOver = 2, /* If bit set, the PC system is in
the foreground */
gestaltPCSharingMonitor = 3}; /* If bit set, there is no dedicated
monitor for the PC system */
ppcf (AltiVec Emulator ext [1.0d4])
(System [8.6?])
gestaltPowerPCProcessorFeatures
Returns information about optional PowerPC processor features.
enum {
#define gestaltPowerPCProcessorFeatures 'ppcf'
gestaltPowerPCHasGraphicsInstructions = 0, /* has fres, frsqrte,
and fsel instr. */
gestaltPowerPCHasSTFIWXInstruction = 1, /* has stfiwx instr. */
gestaltPowerPCHasSquareRootInstructions = 2, /* has fsqrt and fsqrts
instructions */
gestaltPowerPCHasDCBAInstruction = 3, /* has dcba instr. */
gestaltPowerPCHasVectorInstructions = 4, /* has vector instr. */
gestaltPowerPCHasDataStreams = 5}; /* has dst, dstt, dstst,
dss, and dssall
instructions */
pic1 (any piece of software [???])
gestaltScreenCaptureMain
Can hold a zero (to disable), or the vRefNum in the low word of the
response of the disk to hold screen capture picture. The high word is
reserved. Possible since Mac OS 7.6.
#define gestaltScreenCaptureMain 'pic1'
NOTE:
See also: 'pic2'.
pic2 (any piece of software [???])
gestaltScreenCaptureDir
Can hold the Directory ID of folder to hold screen capture picture.
Possible since Mac OS 7.6.
#define gestaltScreenCaptureDir 'pic2'
NOTE:
See also: 'pic1'.
pipa (System? [7.5.3? on Pippin])
gestaltPippinAttr &AS24
Returns information about the storage device of the Pippin OS
extraction?
#define gestaltPippinAttr 'pipa'
#define kAnyStorageDevice 0
#define kPippinStorageDevice 1
#define kFloppyStorageDevice 2
NOTE:
Source does not specify usage and which symbolic names define the
attribute bits.
Originally the header files listed the 'pipn' selector as
gestaltPippinAttr. But observations indicate it's actually 'pipa'?
See also: 'pipf', 'pipk' and 'pipn'.
pipf (System? [7.5.3? on Pippin])
gestaltPippinStandardFile &AS24
Returns information about the Pippin OS extraction Standard File
system?
#define gestaltPippinStandardFile 'pipf'
NOTE:
Source does not specify usage and which symbolic names define the
attribute bits.
Observed value: 0x0.
See also: 'pipa', 'pipk' and 'pipn'.
pipk (System? [??? on Pippin])
gestaltPippinSoftKeyboard
#define gestaltPippinSoftKeyboard 'pipk'
NOTE:
See also: 'pipa', 'pipf' and 'pipn'.
pmgr (QuickDraw GX [1.0])
gestaltGXPrintingMgrVersion
Returns the version of the QuickDraw GX Printing Manager as ???.
#define gestaltGXPrintingMgrVersion 'pmgr' /* QD GX Printing Mgr
version */
NOTE:
The QuickDraw GX documentation lists this selector incorrectly as
'gestaltPrintingMgrVersion'. (Ken Prehoda)
prvr (System? [X?])
gestaltPrintingManagerVersion &AD37
Returns the version of the Printing Manager as BCD.
enum {
#define gestaltPrintingManagerVersion 'prvr'
gestaltPrintManager2 = 0x0200};
q3v (QuickDraw 3D ext? [1.0.2])
gestaltQD3DVersion &AD30
Returns the version of QuickDraw 3D as a Double BCD.
#define gestaltQD3DVersion 'q3v '
NOTE:
Selector was not defined with documentation, but version 1.0.3 was
seen to install this selector with a response value similair to
its version.
q3vc (QuickDraw 3D ??? [???])
gestaltQD3DViewer
Returns information about the QuickDraw 3D Viewer.
enum {
#define gestaltQD3DViewer 'q3vc'
gestaltQD3DViewerNotPresent = 0,
gestaltQD3DViewerAvailable = 1};
qd3d (QuickDraw 3D ext? [1.0?])
gestaltQD3D
Returns if QuickDraw 3D is installed or not (no attribute bits?).
enum {
#define gestaltQD3D 'qd3d'
gestaltQD3DNotPresent = 0,
gestaltQD3DAvailable = 1};
NOTE:
Is there a bug with the selector function for QD 3D 1.0b1c5? Whenever
the 'qd3d' selector is used on a PM 6100/66 (System 7.5.1) crashes
with a 'PowerPC illegal instruction'. This is when using the Gestalt
dcmd in Macsbug or any of the Gestalt utilities.
(found by John Mancino and Rene Ros)
qdgx (QuickDraw GX [1.0])
gestaltGXVersion
Returns the version of QuickDraw GX as ???.
#define gestaltGXVersion 'qdgx' /* QuickDraw GX version */
NOTE:
Both the values 0x0100 8000 and 0x0001 0001 were observed.
qdtf (System? [8.5?])
gestaltQDTextFeatures &AS29
Returns information about QuickdrawText.
enum {
#define gestaltQDTextFeatures 'qdtf' /* QuickdrawText features */
gestaltWSIISupportBit = 0, /* bit 0: WSII support included */
gestaltSbitFontsBit = 1, /* sbit-only fonts supported */
gestaltAntiAliasBit = 2, /* capably of antialiased text */
gestaltOFA2availableBit = 3, /* OFA2 available */
gestaltCreatesAliasFontRsrc = 4, /* "real" datafork font support */
gestaltNativeType1FontSupport = 5}; /* have scaler for Type1 fonts */
qdtx (System? [8.5?])
gestaltQDTextVersion &AS29
Returns the version of QuickDraw Text as BCD.
enum {
#define gestaltQDTextVersion 'qdtx' /* QuickdrawText version */
gestaltOriginalQDText = 0x0000, /* up to and including 8.1 */
gestaltAllegroQDText = 0x0100}; /* starting with 8.5 (?) */
qtci (QuickTime Conferencing ext? [1.0.3])
gestaltQuickTimeConferencingInfo &AT15
Returns pointer to QuickTime Conferencing (renamed to QuickTime
Streaming) information, a structure:
struct QTCGestaltInfo {
long QTCversion; /* standard binary version - i.e. 0x01044007
means "1.0.4a7" */
char QTCversionString[20]; /* this is a pascal string, followed
by a zero char */
};
#define gestaltQuickTimeConferencingInfo 'qtci'
WARNING:
Do not modify or dispose of the pointer to this structure - treat it
as read-only information.
NOTE:
For compatibiity reasons the gestaltQuickTimeConferencing ('mtlk')
selector will remain to return 0x01028000.
The gestaltQuickTimeConferencingInfo ('qtci') selector will return the
proper version number and string. &AT15
If the Gestalt selector points at a zero version number and empty
string, it means that some QTC-related extension has already loaded,
but QTC itself is not installed or has not yet loaded.
The QTCversionString is a Pascal string. Since there's a zero
character after it, however, you can add one byte to the address and
use it as a C string. &AT15
See also the gestaltQuickTimeConferencing ('mtlk') selector.
srad (Mac OS Licensing Extension ext [???])
(System? [7.5.3?])
(System 7.5 Update enbl [2.0])
gestaltSoftwareVendorCode &AS22
Returns system software vendor information.
#define gestaltSoftwareVendorCode 'srad'
#define gestaltSoftwareVendorApple 'Appl' /* System software sold
by Apple Computer */
#define gestaltSoftwareVendorLicensee 'Lcns' /* System software sold
by licensee */
#define gestaltSoftwareVendorMotorola 'Moto' /* Hardware built by
Motorola Inc. */
NOTE:
This selector may return incorrect values when on Macintosh compatible
computers released before approx. july 1996.
See also the 'hrad' selector in this section.
See for more information on this selector and its twin 'srad', the
'Manufacturer Identification' section in the 'Reports' chapter.
srta (Speech Recognition ext [1.2.1?])
gestaltSpeechRecognitionAttr
Returns information about the Speech Recognition Manager.
enum {
#define gestaltSpeechRecognitionAttr 'srta'
gestaltDesktopSpeechRecognition = 1L << 0, /* Recognition using mic. */
gestaltTelephoneSpeechRecognition = 1L << 1}; /* FUTURE */
NOTE:
The Speech Recognition (1.2.1) only works on AV and PPC Macs, but the
selector is installed on all machines and the response value will
indicate the speech recognition is available. (Rene Ros)
srtb (Speech Recognition ext [1.2.1?])
gestaltSpeechRecognitionVersion
Returns the version of the Speech Recognition Manager as BCD.
#define gestaltSpeechRecognitionVersion 'srtb'
NOTE:
The Speech Recognition (1.2.1) only works on AV and PPC Macs, but the
selector is installed on all machines and its presence will indicate
the speech recognition is available. (Rene Ros)
strm (Remote Access Aliases ext [1.0], part of Apple Remote Access)
gestaltRemoteAccessAttr &AD02
enum {
#define gestaltRemoteAccessAttr 'strm' /* Remote Access attributes */
gestaltRemoteAccessExists = 0, /* ARA Connection Interface is
available */
gestaltRemoteAccessCallOnly = 1, /* checks for ARA client &AD15 */
gestaltRemoteAccessMPServer = 2, /* checks for ARA multi-port
server &AD15 */
gestaltRemoteAccessVers2 = 3, /* checks for ARA 2.0 features
&AD15 */
gestaltRemoteAccessVers21? = 4}; /* installed by ARA Personal
Server 2.1 */
See also 'otra' in this chapter.
tmTE (Inline Extension ext [1.0], part of KanjiTalk7)
gestaltTSMTEAttr &AS07
Returns information about the Text Services Manager for TextEdit.
enum {
#define gestaltTSMTEAttr 'tmTE' /* TSM for TE attributes */
gestaltTSMTEPresent = 0, /* TSM for TE is present */
gestaltTSMTE = gestaltTSMTEPresent};/* old name */
tmTV (Inline Extension ext [1.0], part of KanjiTalk7)
gestaltTSMTEVersion &AS07
Returns the version of the Text Services Manager for TextEdit as BCD.
enum {
#define gestaltTSMTEVersion 'tmTV' /* TSM for TE version */
gestaltTSMTE1 = 0x100, /* TSM for TE version 1.0 */
gestaltTSMTE15 = 0x0150, /* &AS28 */
gestaltTSMTE152 = 0x0152, /* System 8.2 */
gestaltTSMTE2 = 0x0200}; /* TSM for TE version 2.0 &AS20 */
trip (WalkInit ext [1.0?])
(Location Manager INIT ext [1.0])
gestaltALMAttr &AS27
Returns information about the Settings Manager (formerly Apple
Location Manager, codename Walkabout) extension. (Anonymous)
enum{
#define gestaltALMAttr = 'trip'
gestaltALMPresent = 0, /* may be false anyway: check! */
/* the following bits are not defined prior ALM 2.0 */
gestaltALMHasSFGroup = 1, /* Get, Put and Merge locations
calls are implemented &D01 */
gestaltALMHasSFLocation = gestaltALMHasSFGroup,
gestaltALMHasCFMSupport = 2, /* ALM engine recognizes CFM
modules &D01 */
gestaltALMHasRescanNotifiers = 3}; /* beside notifiers for switches,
notifiers for renames and new
locations are send &D01 */
NOTES:
The constants used before GM were gestaltWalkaboutAttr and
gestaltWalkaboutPresent.
See also the gestaltALMVers ('walk') selector.
ttsc (Text-To-Speech Manager ext [1.0?])
gestaltSpeechAttr
Returns information about the Speech Synthesis Manager (formerly
called Speech Manager).
enum {
#define gestaltSpeechAttr 'ttsc' /* Text-To-Speech Manager attrib. */
gestaltSpeechMgrPresent = 0, /* bit true if Speech Mgr present */
gestaltSpeechHasPPCGlue = 1}; /* Speech Mgr has native PPC glue */
NOTE:
With System 7.5.1 on a PowerBook Duo 210 this selector had both
bits set indicating the PPC Glue is available, while it is not.
(Rene Ros)
unic (System [Copland?])
(UnicodeConverter.FAT ext [1.0?])
gestaltUnicodeAttr &AD21
Returns information about Unicode.
enum {
#define gestaltUnicodeAttr 'unic'
gestaltUnicodeConverterPresent = 0,
gestaltUnicodeConverterMask = 1L << gestaltUnicodeConverterPresent};
NOTE:
The Preliminary Copland headers defined a 'gestaltUnicodeFeatures'
constant which is now replaced by 'gestaltUnicodeAttr'.
walk (WalkInit ext [1.0?])
(Location Manager INIT ext [1.0])
gestaltALMVers &AS27
Returns the version of the Settings Manager (formerly Apple
Location Manager, codename Walkabout) extension as NumVersion.
(Anonymous)
#define gestaltALMVers 'walk'
NOTES:
The constant used before GM was gestaltWalkaboutVers.
See also the gestaltALMAttr ('trip') selector.
ws 1 (WorldScript I ext [7.1?])
gestaltWorldScriptIVersion?
Returns version of WorldScript I software as BCD.
#define gestaltWorldScriptIVersion? 'ws 1'
wsat (System? [8.5?])
gestaltWorldScriptIIAttr
Returns information about the World Script II software.
enum {
#define gestaltWorldScriptIIAttr 'wsat'
gestaltWSIICanPrintWithoutPrGeneralBit = 0};
/* Bit 0 is on if WS II knows about PrinterStatus callback */
XTND (XTND Power Enabler ext ? [1.0b6?] part of OpenDoc ?)
gestaltXTNDAttr &AS10
Returns information about XTND Manager?
enum {
#define gestaltXTNDAttr 'XTND'
gestaltPPCXTNDPresent = 1};
NOTE:
Is used in some code to check if XTND engine is present. However it is
unknown when it is installed, so supposedly it is meant for future
use. Like a built-in XTND engine in the System Software? When the
selector is installed all operations are dispatched through trap
_XTNDMgr (0xABF4) otherwise the library provides the code.
(Marco Piovanelli)