Gestalt under ROMlib

Abstract

This article provides information about Gestalt under ROMlib. Since Executor and the Carbonless Copies Runtime System both use ROMlib, this information also applies to them.


Table of Contents
Apple Selectors
ARDI selectors

Note

The information in this paper is not built directly from the ROMlib source. It is provided as-is and is subject to change.

Apple Selectors

PageMaker 4.2 calls Gestalt with the gestaltAliasMgrAttr selector and if Gestalt returns noErr, proceeds to use the Alias Manager, even the response is 0. PageMaker 4.2 will not use the Alias Manager if in this case Gestalt returns gestaltUndefSelectorErr. PageMaker 4.2's use of Gestalt doesn't appear to be within spec (IMVI), but that's just another difference where ROMlib has to do what the Mac does, rather than what the specifications suggest.

MacInTax '93 does the same thing with the Edition Manager that PageMaker does with the Alias Manager. Claris Works does the same thing with Apple Events. After ARDI saw three instances of this behavior ARDI stopped keeping track. Because of such behavior, there are a number of selectors that ROMlib deliberately fails to recognize. ROMlib does this when its support for the queried functionality is incomplete. Here are the selectors that ROMlib deliberately fails to recognize:

gestaltAliasMgrAttrgestaltApplEventsAttrgestaltAppleTalkVersion
gestaltAUXVersiongestaltConnMgrAttrgestaltCRMAttr
gestaltCTBVersiongestaltDBAccessMgrAttrgestaltEasyAccessAttr
gestaltEditionMgrAttrgestaltFontMgrAttrgestaltFXfrMgrAttr
gestaltHardwareAttrgestaltHelpMgrAttrgestaltMiscAttr
gestaltNotificatinMgrAttrgestaltNuBusConnectorsgestaltOSAttr
gestaltPopupAttrgestaltPowerMgrAttrgestaltPPCToolboxAttr
gestaltResourceMgrAttrgestaltScriptCountgestaltScriptMgrVersion
gestaltSerialAttrgestaltStdNBPAttrgestaltTermMgrAttr
gestaltParityAttrgestaltVMAttr'icmp'
'sysa'  

ROMlib recognizes and returns information for these selectors:

gestaltDITLExtAttrgestaltFindFolderAttrgestaltFSAttr
gestaltSoundAttrgestaltExtToolboxTablegestaltToolboxTable
gestaltOSTablegestaltFPUTypegestaltKeyboardType
gestaltLogicalPageSizegestaltLogicalRAMSizegestaltLowMemorySize
gestaltMMUTypegestaltPhysicalRAMSizegestaltProcessorType
gestaltQuickdrawVersiongestaltQuickdrawFeaturesgestaltTimeMgrVersion
gestaltVersiongestaltMachineIcongestaltMachineType
gestaltROMSizegestaltROMVersiongestaltSystemVersion
gestaltTextEditVersion  

ROMlib fails to recognize the following four selectors unless they are specifically enabled by the "pretend" options (Pretend Help, Pretend Edition, Pretend Script, Pretend Alias). The pretend options can be enabled in the preferences panel or via a configuration file.

gestaltHelpMgrAttrgestaltScriptMgrVersiongestaltEditionMgrAttr
gestaltAliasMgrAttr  

These two selectors are only recognized if the system version is set to 7.0 or higher:

gestaltStandardFileAttrgestaltApplEventsAttr