CliffordMatthews ctm <function>Gestalt</function> under ROMlib 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. 1999 2002 Abacus Research & Development, Inc. 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
ARDI selectors ARDI has added one special gestalt selector, gestaltPHYSICAL ('MUL8'). It returns the address of a routine that behaves just like Gestalt, but provides access to a completely different set of tables. These tables contain information about the environment in which Executor is running instead the emulated environment that Executor provides. Example: These are the PhysicalGestalt selectors supported: PhysicalGestalt Selectors Name Value Response gestaltSystemVersion 'sysv' numeric version of Executor gestaltExecutorVersionString 'xqtr' address of the string version of Executor gestaltDemoStatus 'demo' 1, if this is a demo version gestaltDemoExpiration 'xpir' how many days until the demo expires gestaltSerialNumber 's/n ' non-demo version: serial number gestaltRegisteredName 'name' non-demo version: name gestaltRegisteredOrg 'org ' non-demo version: organization gestaltPhysicalRAMSize 'ram ' amount of physical ram on the machine gestaltScreenSize 'scrn' resolution of the monitor gestaltGhostScriptVersion 'gost' win32 only: Ghostscript DLL version
ARDI is willing to add PhysicalGestalt selectors as Mac developers require.