Apple System Software (E-H)
This chapter lists selector codes of which the meaning is documented and
the first character of the selector code is in the E-H range.
eajt (Easy Access cp [7.0])
gestaltEasyAccessJTable
Returns the base address of the Easy Access jump-trap table.
#define gestaltEasyAccessJTable 'eajt' /* Easy Access jump-trap
table &M01 */
NOTE:
The first time you call this selector Easy Access tries to open a
resource file to find the value, which at least causes a freeze when
called from within MacBugs with the Gestalt dcmd. &AD31
easy (Easy Access cp [6.0.4?])
gestaltEasyAccessAttr
Returns information about the status of Easy Access.
enum {
gestaltEasyAccessAttr 'easy' /* Easy Access attributes */
gestaltEasyAccessOff = 0, /* Easy Access present but off */
gestaltEasyAccessOn = 1, /* Easy Access on */
gestaltEasyAccessSticky = 2, /* Easy Access "Sticky" */
gestaltEasyAccessLocked = 3}; /* Easy Access "Locked" */
NOTE:
The values listed above are not returned with System 7 and later.
Because of a bug different values are returned. This problem is
acknowledged by Apple, but it is unclear when it will be fixed. They
know about it since September 1992... (Rene Ros)
edtn (System [7.0])
(Macintosh Easy Open cp [1.0?])
gestaltEditionMgrAttr
Returns information about the Edition Manager.
enum{
#define gestaltEditionMgrAttr 'edtn' /* Edition Mgr attributes */
gestaltEditionMgrPresent = 0,
gestaltEditionMgrTranslationAware = 1}; /* &AD03 */
etbl (System [8.1])
gestaltExtensionTableVersion &AT22
Returns Extension Table version as BCD.
enum {
#define gestaltExtensionTableVersion 'etbl'
kExtensionTableVersion = 0x00000100};
NOTE:
If gestaltExtensionTableVersion is not defined, it indicates that
there is no extension table mechanism present and that the associated
extension table routines will be undefined.
When the major version number and the value returned are different, it
indicates that the extension table mechanism has radically changed and
code that doesn't know about the new major version must not attempt to
use the extension tablemechanism.
Changes to the minor version number indicate that the definition of
the ExtensionElement structure has been extended, but the fields
defined for previous minor versions have not changed. &AT22
evnt (System [7.0]) &AS05
(Apple Event Manager ext [1.0.1], part of AppleScript Setup)
gestaltAppleEventsAttr
Returns information about Apple Events.
enum {
#define gestaltAppleEventsAttr 'evnt' /* Apple events attributes */
gestaltAppleEventsPresent = 0, /* True if Apple Events present
&AS05 */
gestaltScriptingSupport = 1,
gestaltOSLInSystem = 2}; /* OSL is in system so don`t use
the one linked */
NOTES:
These declarations in the AEObjects.h file (on ETO 14) should be
ignored:
gestaltObjectSupportLibraryInSystem = 1
gestaltObjectSupportLibraryPowerPCSupport = 2
ObjectSupportLib version 1.0.4 fails to install the Gestalt selector
for gestaltOSLInSystem, so even if the library is present and can be
linked to, the gestalt selector will not tell the truth. This is why
FileMaker Pro and Netscape lose scriptability when OSL 1.0.4 is
installed in the system; use them with version 1.0.2 or 1.1 (not
1.1.1!). Upcoming version 1.1.2 will fix the Gestalt bug.
(Chris Espinosa (Manager, Media Tools at Apple) on the applescript-
implementors mailing list)
ObjectSupportLib 1.2 installs a CFM-68K 'evnt' gestalt function where
the Transition Vector is in the application heap. If two applications
link to ObjectSupportLib, quitting the first application but leaving
the second running will cause a crash when checking for the 'evnt'
gestalt. This problem occurs on all 68K machines in our QA lab. If
the gestalt function were in a detached classic 68K code resource
(rather than in CFM-68K code) this problem would not occur.
(PointCast Inc.; see:
http://www.pointcast.com/products/mac/68KNotice.html )
fbci (Find By Content lib [???], part of Mac OS 8.5)
gestaltFBCIndexingState &AT25
Returns information about the current indexing status of
Find by Content (FBC).
enum {
#define gestaltFBCIndexingState 'fbci'
gestaltFBCindexingSafe = 0 /* searches execute immediately */
gestaltFBCindexingCritical = 1}; /* synchronous wait until returns
to gestaltFBCindexingSafe */
NOTE:
See TN 1141 for more required, detailed information.
See also the selectors 'fbcc', 'fbcs', 'fbcv'.
fbcv (Find By Content lib [???], part of Mac OS 8.5)
gestaltFBCVersion &AT25
Returns the version of Find by Content (FBC) as BCD.
enum {
#define gestaltFBCVersion 'fbcv'
gestaltFBCCurrentVersion = 0x0011};
NOTE:
See TN 1141 for more required, detailed information.
See also the selectors 'fbcc', 'fbci', 'fbcs'.
flag (Network Extension ext [System 7.0 &AT02])
gestaltFlagshipAttr
Returns information about the Flagship Naming Services.
enum {
#define gestaltFlagshipAttr 'flag' /* &M01 */
gestaltFlagshipPresent = 0, /* &M01 */
gestaltFlagshipRegistered = 1}; /* &M01 */
flpy (System? [7.5.2?])
gestaltFloppyAttr &AD34 &AS28
Returns information to determine some of the basic attributes of the
floppy drive installed in a system.
enum {
#define gestaltFloppyAttr 'flpy'
gestaltFloppyIsMFMOnly = 0, /* Floppy drive only does MFM disk
formats. */
gestaltFloppyIsManualEject = 1, /* Floppy disk drive, driver, file
system in manual-eject mode. */
gestaltFloppyUsesDiskInPlace = 2}; /* Floppy disk drive has special
DISK-IN-PLACE output; standard
DISK-CHANGED output signal from
drive is not used. */
fnd (AppleShare? ext [3.6?]) &AD18
gestaltFinderVolumeGrade?
Returns a volume grade value. If the volume grade of a (remote) volume
the Finder (version 7.5.1 and later) is copying to is less than the
returned value, a buffer is used for which the size is returned by the
'fnd^' (666E 64A4) selector.
#define gestaltFinderVolumeGrade? 'fnd '
NOTE:
See also the 'fnd^' (666E 64A4) selector entry.
AppleShare 3.6 (part of System 7.5 Update 2.0) seems to install two
other selectors instead. The 'fnd ' selector seems to be replaced by
(OSType) 0x666E 64A0 (last byte: option-t). (Anonymous)
fndÛ (AppleShare? ext [3.6?]) &AD18
gestaltFinderBufferSize? (666E 64A4)
Returns the size of the buffer used to copy files to a (remote) volume
with a volume grade value less then the value returned by the 'fnd '
selector.
#define gestaltFinderBufferSize? 'fndÛ'
NOTES:
The last byte is the option-6 (0xA4).
See also the 'fnd ' selector entry.
AppleShare 3.6 (part of System 7.5 Update 2.0) seems to install two
other selectors instead. The 'fnd ' selector seems to be replaced by
(OSType) 0x666E 64A7 (last byte: option-s). (Anonymous)
fndr (Finder [7.1.1]) &AS04
(Finder Scripting Extension ext [1.2?])
(Finder Clipping Extension ext [7.1.4?])
gestaltFinderAttr
Returns information about the Finder.
enum {
#define gestaltFinderAttr 'fndr'
gestaltFinderDropEvent = 0,
gestaltFinderMagicPlacement = 1,
gestaltFinderCallsAEProcess = 2,
gestaltOSLCompliantFinder = 3, /* supports Finder Event
Suite */
gestaltFinderSupports4GBVolumes = 4, /* implemented by System
7.5.1 but bit not
set? */
gestaltFinderHandlesCFMFailures = 5,
gestaltFinderHasClippings = 6, /* &AD12 */
gestaltFinderFullDragManagerSupport = 7, /* Finder accepts 'hfs '
flavors properly
&AS29 */
gestaltFinderFloppyRootComments = 8, /* see note &AT21 */
gestaltFinderLargeAndNotSavedFlavorsOK = 9, /* see note &AT21 */
gestaltFinderUsesExtensibleFolderManager = 10,
/* Finder uses Extensible Folder Manager */
gestaltFinder??? = 31};
NOTES:
gestaltFinderFloppyRootComments describes whether desktop database
comments for floppy disks contain data the user typed in (notes, etc.)
or are used internally by Finder. Under Mac OS 8 and later, this field
is used by Finder; if Finder ever relinquishes the use of the field,
it will set this bit.
gestaltFinderLargeAndNotSavedFlavorsOK describes whether two bugs
(storing only the very first chunk of drag flavor > 1024 bytes and
item count stored in the clipping containing flavors with the
flavorNotSaved) in Finder's handling of clipping files have been
fixed. Under Mac OS 8.1, this bit is set.
fold (System [7.0])
gestaltFindFolderAttr
Returns information about the FindFolder function.
enum {
gestaltFindFolderAttr 'fold' /* FindFolder attributes */
gestaltFindFolderPresent = 0, /* FindFolder function available */
gestaltFolderDescSupport = 1, /* has FolderDesc calls: Extensible
Folder Manager present */
gestaltFolder??? = 2, /* unknown, Mac OS 9.0 */
gestaltFolder??? = 3}; /* unknown, Mac OS 9.0 */
fole (System? [>9.0?])
gestaltFindFolderRedirectionAttr
#define gestaltFindFolderRedirectionAttr = 'fole'
font (System [7.0])
(TrueType INIT ext for System 6)
gestaltFontMgrAttr
Returns information about the Font Manager.
enum {
#define gestaltFontMgrAttr 'font' /* Font Mgr attributes */
gestaltOutlineFonts = 0, /* TrueType present */
gestaltPartialFonts? = 1, /* set with System 7.1 & 7.5 */
gestaltDiskCachedFonts? = 2}; /* Disk Cached Fonts available? */
NOTE:
Inside the Inline Extension 1.0 with KanjiTalk7, which was compiled
with full subroutine names, there is a subroutine called
'DiskCachedFontsAvailable' in an INIT resource which checks bit 2
of the gestaltFontMgrAttr selector response. (Marco Piovanelli)
fpu (System [6.0.4])
gestaltFPUType
Returns a value that indicates the FPU-type, if any.
enum {
gestaltFPUType 'fpu ' /* FPU Type */
gestaltNoFPU = 0, /* no FPU */
gestalt68881 = 1, /* 68881 FPU */
gestalt68882 = 2, /* 68882 FPU */
gestalt68040FPU = 3}; /* built-in 68040 FPU &S01 */
NOTE: See also the 'FPUE' entry in the Third Parties chapter.
fs (720K Floppy Disk Formatter ext [1.0a3?],
part of the Hardware System Update [2.0])
(Apple Share ext [AS 3.0/SYS 7.0])
(File System Manager ext [1.2])
(System [7.0])
gestaltFSAttr
Returns information about the file system.
enum {
#define gestaltFSAttr 'fs ' /* file-system attributes */
gestaltFullExtFSDispatching = 0, /* exports HFSDispatch traps */
gestaltHasFSSpecCalls = 1, /* supports FSSpec records */
gestaltHasFileSystemManager = 2, /* has the File System Manager
&S01 */
gestaltFSMDoesDynamicLoad = 3, /* FSM supports dynamic loads
&AD12 */
gestaltFSSupports4GBVols = 4, /* FS supports 4 gigabyte volumes
&AD14 */
gestaltFSSupports2TBVols = 5, /* FS supports 2 terabyte volumes
and PBXGetVInfo available
&AD14 */
gestaltHasExtendedDiskInit = 6, /* has extended Disk
Initialization calls &AD12 */
gestaltDTMgrSupportsFSM = 7, /* Desktop Manager support
FSM-based foreign file
systems &AS29 */
gestaltFSNoMFSVols = 8, /* file system doesn't supports
MFS volumes */
gestaltFSSupportsHFSPlusVols = 9, /* file system supports HFS Plus
volumes */
gestaltFSIncompatibleDFA82 = 10, /* VCB and FCB structures changed;
DFA 8.2 is incompatible */
gestaltFSSupportsDirectIO = 11, /* file system supports DirectIO*/
gestaltHasHFSPlusAPIs = 12, /* file system supports
HFS Plus APIs, Mac OS 9.0 */
gestaltMustUseFCBAccessors = 13}; /* FCBSPtr and FSFCBLen are
invalid - must use FSM FCB
accessor functions,
Mac OS 9.0 */
NOTES:
See also the gestaltFSMVersion ('fsm ') selector.
See 'Reports' chapter (QuickTime section) for more information.
fsm (File System Manager ext [1.2])
gestaltFSMVersion &AD14
Returns File System Manager version as BCD.
#define gestaltFSMVersion 'fsm '
NOTE:
See also the gestaltFSAttr ('fs ') selector.
While both FSM 1.2 and System 7.5 install/patch three traps
(_FileSysMgr, _HFSUtils and _Pack2 (Extended Disk Initialization
Package)) it happens that System 7.5 does not install the
gestaltFSMVersion ('fsm ') selector. It does set the FSM related bits
of the gestaltFSAttr ('fs ') selector. (Fabrizio Oddone)
This selector is installed correctly by System 7.5.1. (Rene Ros)
fsue (File Sharing cp [8.0?])
gestaltFileSharingAttr
Returns information about the File Sharing control panel.
enum {
#define gestaltFileSharingAttr 'fsue'
gestaltFileSharingCPPresent = 0,
gestaltUsersAndGroupsCPPresent = 1};
fxfr (System [7.0])
gestaltFXfrMgrAttr
Returns information about the File Transfer Manager.
enum {
#define gestaltFXfrMgrAttr 'fxfr' /* File Transfer Mgr attributes */
gestaltFXfrMgrPresent = 0, /* File Transfer Mgr present */
gestaltFXfrMgrMultiFile = 1, /* supports FTSend and FTReceive
&AS02 */
gestaltFXfrMgrErrorString = 2, /* supports FTGetErrorString
&AS02/S02 */
gestaltFXfrMgrAsync = 3?}; /* supports FTSendAsync,
FTReceiveAsync, FTCompletionAsync
(since System 7.5?) */
gval (GestaltValue glue code)
gestaltValueTable?
Returns a pointer to a table with the selectors and values managed
by the GestaltValue code. (Marco Piovanelli)
#define gestaltValueTable? 'gval'
WARNING:
Although this information isn't officially confirmed, it is probably
correct.
NOTES:
Although System 7.5 implements the GestaltValue functions it does not
install this selector because the GestaltValue table is combined with
the normal Gestalt table (See the 'tabl' entry). Only with system
software before 7.5 this selector is installed by the glue code.
(Rene Ros)
See 'Reports' chapter (GestaltValue section) for more information.
hdwr (System [6.0.4]) INF
gestaltHardwareAttr
Returns information about the hardware configuration of the machine.
enum {
#define gestaltHardwareAttr 'hdwr' /* hardware attributes */
gestaltHasVIA1 = 0, /* VIA 1 */
gestaltHasVIA2 = 1, /* VIA 2 */
gestaltHasRBV = 2, /* RBV &M01 */
gestaltHasASC = 3, /* ASC (or compatible with) */
gestaltHasSCC = 4, /* SCC &M01 */
gestaltHasOSS = 5, /* OSS &M01 */
gestaltHasSCSIDMA = 6, /* 53C80 SCSI DMA &M01 */
gestaltHasSCSI = 7, /* 53C80 SCSI */
gestaltHasSWIMIOP = 8, /* SWIM IOP &M01 */
gestaltHasSCCIOP = 9, /* SCC IOP &M01 */
gestaltHasFitch = 10, /* Fitch memory Controller &M02 */
gestaltHasIWM = 11, /* IWM &M01 */
gestaltHasPWM = 12, /* PWM disk speed buffer &M02 */
gestaltHasRAMSndBuff = 13, /* RAM-based sound buffer &M02 */
gestaltHasVideoDAConv = 14, /* Video D/A Converter &M02 */
gestaltHasPGC = 15, /* PGC (parity control) &M02 */
gestaltHasRPU? = 16, /* Random Parity Unit */
gestaltHasOMC? = 17, /* Orwell Memory Controller */
gestaltHasVISARBV? = 18, /* VISA Ram Based Video */
gestaltHasSoftPowerOff = 19, /* Software PowerOff (since System 7.0?)
&S01 */
gestaltHasSonic = 20, /* Sonic (built-in ethernet) &M01 */
gestaltHasSCSI961 = 21, /* Int. 53C96 SCSI &AT01 */
gestaltHasSCSI962 = 22, /* Ext. 53C96 SCSI &AT01 */
gestaltHasDAFBVideo = 23, /* DAFB Video &M01 */
gestaltHasUniversalROM = 24, /* Universal ROM &AT04 */
gestaltHasJMC = 25, /* Jaws Memory Controller? */
gestaltNeedsRESET = 26, /* ??? set on PowerMac, C660AV and
under MAE 1.0 */
gestalt??? = 27, /* ??? set on PM 7500/100 with
System 7.5.3 */
gestalt??? = 28, /* ??? set on Spartacus with
System 7.6.1 */
gestaltHasEnhancedLtalk= 30}; /* Enhanced LocalTalk &AD21 */
NOTES:
See for additional information the TN "M.OV.GestaltSysenvirons" (OV 16).
On the Mac IIfx and Quadra 900 the gestaltHasSCC bit always returns 0
because the SCC is isolated by I/O processors. When the Compatibility
Switch control panel is used the bit is set. &AD12
The old IM VI listed this selector as an environmental selector but
IM OS Utilities now lists it as an informational selector.
help (System [7.0])
gestaltHelpMgrAttr
Returns information about the Help Manager.
enum {
#define gestaltHelpMgrAttr 'help' /* Help Mgr attributes */
gestaltHelpMgrPresent = 0, /* Help Mgr present */
gestaltHelpMgrExtensions = 1, /* Help Mgr extensions installed
&AS03 */
gestaltAppleGuideIsDebug = 30, /* Apple Guide is debugging version
&AS12 */
gestaltAppleGuidePresent = 31}; /* Apple Guide is available &AS12 */
hrad (Mac OS Licensing Extension ext [???])
(System? [7.5.3?])
(System 7.5 Update enbl [2.0])
gestaltHardwareVendorCode &AS22
Returns hardware vendor information.
#define gestaltHardwareVendorCode 'hrad'
#define gestaltHardwareVendorApple 'Appl' /* Hardware built by
Apple Computer Inc. */
#define gestaltHardwareCHRP? 'CHRP' /* Hardware built to CHRP
specifications? */
#define gestaltHardwareVendorMotorola 'Moto' /* Hardware built by
Motorola Inc. */
#define gestaltHardwareVendorPCC? 'pcc ' /* Hardware built by
Power Computing Corp. */
#define gestaltHardwareVendorUMAX? 'Umax' /* Hardware built by UMAX
(on Apus 3000, not on
Pulsar 225) */
NOTE:
This selector is backwards compatible with Macintosh compatibles introduced
before System 7.5.3 was introduced? The response 'pcc ' is returned when
using System 7.5.3 on a Power Computer Power 100.
System 7.5.3 on a PowerCurve 601/120 does not install this selector
nor 'srad'. (Mark Schrier)
Selector installed and returning 'pcc ' on a Power Computing Power 100.
(John Tsombakos)
A PowerWave 604/120 didn't install this selector with System 7.5.5, but
it does with Mac OS 7.6 (Chuck Crannell)
On a Motorola Starmax and with Harmony (7.6) the value 0 is returned.
See also the 'srad' selector in this section.
See for more information on this selector and its twin 'srad', the
'Manufacturer Identification' section in the 'Reports' chapter.
hscd (High Sierra File Access ext [5.0], part of Apple CD-ROM Software)
(ISO 9660 File Access ext [1.0-4.0], part of Apple CD-ROM Software)
gestaltHighSierraVersion? &AT03
Returns High Sierra File Access version in BCD.
#define gestaltHighSierraVersion? 'hscd' /* High Sierra Fileaccess
version */
NOTE: The returned version is obtained from 'vers' resource ID# 1.