Important: The information in this document is obsolete and should not be used for new development.
Gestalt
You can use theGestalt
function 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
DESCRIPTION
Gestalt
function places the information requested by theselector
parameter in the variable parameterresponse
. Note thatGestalt
returns 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 theresponse
parameter is declared as a variable parameter, you cannot use it to pass information toGestalt
or to aGestalt
selector function.Gestalt
interprets theresponse
parameter as an address at which it is to place the result returned by the selector function specified by theselector
parameter.Gestalt
ignores 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
Attr
return 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, theGestalt
function 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 thatGestalt
could move or purge memory.ASSEMBLY-LANGUAGE INFORMATION
The registers on entry and exit for theGestalt
function 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
Gestalt
function 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.