# `Gestalt` under ROMlib

Copyright © 1999, 2002 by Abacus Research & Development, Inc.

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.

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

`gestaltAliasMgrAttr` | `gestaltApplEventsAttr` | `gestaltAppleTalkVersion`
`gestaltAUXVersion` | `gestaltConnMgrAttr` | `gestaltCRMAttr`
`gestaltCTBVersion` | `gestaltDBAccessMgrAttr` | `gestaltEasyAccessAttr`
`gestaltEditionMgrAttr` | `gestaltFontMgrAttr` | `gestaltFXfrMgrAttr`
`gestaltHardwareAttr` | `gestaltHelpMgrAttr` | `gestaltMiscAttr`
`gestaltNotificatinMgrAttr` | `gestaltNuBusConnectors` | `gestaltOSAttr`
`gestaltPopupAttr` | `gestaltPowerMgrAttr` | `gestaltPPCToolboxAttr`
`gestaltResourceMgrAttr` | `gestaltScriptCount` | `gestaltScriptMgrVersion`
`gestaltSerialAttr` | `gestaltStdNBPAttr` | `gestaltTermMgrAttr`
`gestaltParityAttr` | `gestaltVMAttr` | '`icmp`'
'`sysa`' |  |

ROMlib recognizes and returns information for these selectors:

`gestaltDITLExtAttr` | `gestaltFindFolderAttr` | `gestaltFSAttr`
`gestaltSoundAttr` | `gestaltExtToolboxTable` | `gestaltToolboxTable`
`gestaltOSTable` | `gestaltFPUType` | `gestaltKeyboardType`
`gestaltLogicalPageSize` | `gestaltLogicalRAMSize` | `gestaltLowMemorySize`
`gestaltMMUType` | `gestaltPhysicalRAMSize` | `gestaltProcessorType`
`gestaltQuickdrawVersion` | `gestaltQuickdrawFeatures` | `gestaltTimeMgrVersion`
`gestaltVersion` | `gestaltMachineIcon` | `gestaltMachineType`
`gestaltROMSize` | `gestaltROMVersion` | `gestaltSystemVersion`
`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.

`gestaltHelpMgrAttr` | `gestaltScriptMgrVersion` | `gestaltEditionMgrAttr`
`gestaltAliasMgrAttr` |  |

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

`gestaltStandardFileAttr` | `gestaltApplEventsAttr` |

|  | Next >>>
|  | ARDI selectors