Important: The information in this document is obsolete and should not be used for new development.
Gestalt
You can use theGestaltfunction to obtain information about the operating environment. You specify what information you need by passing one of the selector codes recognized by Gestalt.
FUNCTION Gestalt (selector: OSType; VAR response: LongInt): OSErr;
selector- The selector code for the information you need.
response- On exit, the requested information whose format depends on the selector code specified in the selector parameter.
The
DESCRIPTIONGestaltfunction places the information requested by theselectorparameter in the variable parameterresponse. Note thatGestaltreturns the response from all selectors in a long word, which occupies 4 bytes. When not all 4 bytes are needed, the significant information appears in the low-order byte or bytes. Although theresponseparameter is declared as a variable parameter, you cannot use it to pass information toGestaltor to aGestaltselector function.Gestaltinterprets theresponseparameter as an address at which it is to place the result returned by the selector function specified by theselectorparameter.Gestaltignores any information already at that address.The Apple-defined selector codes fall into two categories: environmental selectors, which supply specific environmental information you can use to control the behavior of your application, and informational selectors, which supply information you can't use to determine what hardware or software features are available. You can use one of the selector codes defined by Apple (listed in the "Constants" section beginning on page 1-14) or a selector code defined by a third-party product.
Selectors with the suffix
Attrreturn a 32-bit response value in which the individual bits represent specific attributes. The constants listed for these response values represent bit numbers.SPECIAL CONSIDERATIONS
When passed one of the Apple-defined selector codes, theGestaltfunction does not move or purge memory and therefore may be called at any time, even at interrupt time. However, selector functions associated with non-Apple selector codes might move or purge memory, and third-party software can alter the Apple-defined selector functions. Therefore, it is safest always to assume thatGestaltcould move or purge memory.ASSEMBLY-LANGUAGE INFORMATION
The registers on entry and exit for theGestaltfunction are
Registers on entry D0 Selector code
Registers on exit A0 Response D0 Result code RESULT CODES
noErr 0 No error gestaltUnknownErr -5550 Could not obtain the response gestaltUndefSelectorErr -5551 Undefined selector SEE ALSO
See the documentation of the features you're interested in for more information on the various response values and their meanings.See "Interpreting Gestalt Responses" beginning on page 1-9 for a discussion of the different response value formats and a sample function that checks an attributes value for a specific feature.
See "Getting Information About the Operating Environment" beginning on page 1-6 for a sample function that calls the
Gestaltfunction and checks the validity of the return value. See the "Constants" section beginning on page 1-14 for a list of selector codes defined by Apple and the formats of their responses.