Mac OS 9
Gestalt.h File Reference

Gestalt Interfaces. More...

#include <MacTypes.h>
#include <MixedMode.h>

Go to the source code of this file.

Macros

#define NewSelectorFunctionUPP(userRoutine)
 
#define DisposeSelectorFunctionUPP(userUPP)   DisposeRoutineDescriptor(userUPP)
 
#define InvokeSelectorFunctionUPP(selector, response, userUPP)
 
#define NewSelectorFunctionProc(userRoutine)   NewSelectorFunctionUPP(userRoutine)
 
#define CallSelectorFunctionProc(userRoutine, selector, response)    InvokeSelectorFunctionUPP(selector, response, userRoutine)
 

Typedefs

typedef long * response
 

Enumerations

enum  { uppSelectorFunctionProcInfo = 0x000003E0 }
 
enum  { gestaltAddressingModeAttr , gestalt32BitAddressing = 0 , gestalt32BitSysZone = 1 , gestalt32BitCapable = 2 }
 
enum  {
  gestaltAFPClient = FOUR_CHAR_CODE('afps') , gestaltAFPClientVersionMask = 0x0000FFFF , gestaltAFPClient3_5 = 0x0001 , gestaltAFPClient3_6 = 0x0002 ,
  gestaltAFPClient3_6_1 = 0x0003 , gestaltAFPClient3_6_2 = 0x0004 , gestaltAFPClient3_6_3 = 0x0005 , gestaltAFPClient3_7 = 0x0006 ,
  gestaltAFPClient3_7_2 = 0x0007 , gestaltAFPClient3_8 = 0x0008 , gestaltAFPClient3_8_1 = 0x0009 , gestaltAFPClient3_8_3 = 0x000A ,
  gestaltAFPClient3_8_4 = 0x000B , gestaltAFPClientAttributeMask , gestaltAFPClientCfgRsrc = 16 , gestaltAFPClientSupportsIP = 29 ,
  gestaltAFPClientVMUI = 30 , gestaltAFPClientMultiReq
}
 
enum  {
  gestaltAliasMgrAttr = FOUR_CHAR_CODE('alis') , gestaltAliasMgrPresent = 0 , gestaltAliasMgrSupportsRemoteAppletalk , gestaltAliasMgrSupportsAOCEKeychain ,
  gestaltAliasMgrResolveAliasFileWithMountOptions , gestaltAliasMgrFollowsAliasesWhenResolving = 4 , gestaltAliasMgrSupportsExtendedCalls = 5 , gestaltAliasMgrSupportsFSCalls
}
 
enum  { gestaltAppearanceAttr = FOUR_CHAR_CODE('appr') , gestaltAppearanceExists = 0 , gestaltAppearanceCompatMode = 1 }
 
enum  { gestaltAppearanceVersion = FOUR_CHAR_CODE('apvr') }
 
enum  { gestaltArbitorAttr = FOUR_CHAR_CODE('arb ') , gestaltSerialArbitrationExists }
 
enum  { gestaltAppleScriptVersion = FOUR_CHAR_CODE('ascv') }
 
enum  { gestaltAppleScriptAttr = FOUR_CHAR_CODE('ascr') , gestaltAppleScriptPresent = 0 , gestaltAppleScriptPowerPCSupport = 1 }
 
enum  { gestaltATAAttr , gestaltATAPresent = 0 }
 
enum  { gestaltATalkVersion }
 
enum  { gestaltAppleTalkVersion = FOUR_CHAR_CODE('atlk') }
 
enum  { gestaltAUXVersion = FOUR_CHAR_CODE('a/ux') }
 
enum  { gestaltMacOSCompatibilityBoxAttr , gestaltMacOSCompatibilityBoxPresent , gestaltMacOSCompatibilityBoxHasSerial , gestaltMacOSCompatibilityBoxless }
 
enum  { gestaltBusClkSpeed }
 
enum  { gestaltCloseViewAttr = FOUR_CHAR_CODE('BSDa') , gestaltCloseViewEnabled , gestaltCloseViewDisplayMgrFriendly }
 
enum  { gestaltCarbonVersion }
 
enum  {
  gestaltCFMAttr , gestaltCFMPresent = 0 , gestaltCFMPresentMask = 0x0001 , gestaltCFM99Present = 2 ,
  gestaltCFM99PresentMask = 0x0004
}
 
enum  { gestaltCollectionMgrVersion }
 
enum  { gestaltColorMatchingAttr = FOUR_CHAR_CODE('cmta') , gestaltHighLevelMatching = 0 , gestaltColorMatchingLibLoaded = 1 }
 
enum  {
  gestaltColorMatchingVersion = FOUR_CHAR_CODE('cmtc') , gestaltColorSync10 , gestaltColorSync11 = 0x0110 , gestaltColorSync104 = 0x0104 ,
  gestaltColorSync105 = 0x0105 , gestaltColorSync20 = 0x0200 , gestaltColorSync21 = 0x0210 , gestaltColorSync211 = 0x0211 ,
  gestaltColorSync212 = 0x0212 , gestaltColorSync213 = 0x0213 , gestaltColorSync25 = 0x0250 , gestaltColorSync26 = 0x0260 ,
  gestaltColorSync261 = 0x0261 , gestaltColorSync30 = 0x0300
}
 
enum  { gestaltControlMgrVersion }
 
enum  { gestaltControlMgrAttr = FOUR_CHAR_CODE('cntl') , gestaltControlMgrPresent = (1L << 0) , gestaltControlMgrPresentBit = 0 , gestaltControlMsgPresentMask = (1L << gestaltControlMgrPresentBit) }
 
enum  {
  gestaltConnMgrAttr = FOUR_CHAR_CODE('conn') , gestaltConnMgrPresent = 0 , gestaltConnMgrCMSearchFix = 1 , gestaltConnMgrErrorString = 2 ,
  gestaltConnMgrMultiAsyncIO
}
 
enum  { gestaltColorPickerVersion , gestaltColorPicker }
 
enum  { gestaltComponentMgr = FOUR_CHAR_CODE('cpnt') , gestaltComponentPlatform }
 
enum  {
  gestaltNativeCPUtype = FOUR_CHAR_CODE('cput') , gestaltNativeCPUfamily = FOUR_CHAR_CODE('cpuf') , gestaltCPU68000 = 0 , gestaltCPU68010 = 1 ,
  gestaltCPU68020 = 2 , gestaltCPU68030 = 3 , gestaltCPU68040 = 4 , gestaltCPU601 = 0x0101 ,
  gestaltCPU603 = 0x0103 , gestaltCPU604 = 0x0104 , gestaltCPU603e = 0x0106 , gestaltCPU603ev = 0x0107 ,
  gestaltCPU750 = 0x0108 , gestaltCPU604e = 0x0109 , gestaltCPU604ev = 0x010A , gestaltCPUG4 = 0x010C ,
  gestaltCPUG47450 = 0x0110
}
 
enum  { gestaltCRMAttr = FOUR_CHAR_CODE('crm ') , gestaltCRMPresent = 0 , gestaltCRMPersistentFix = 1 , gestaltCRMToolRsrcCalls = 2 }
 
enum  { gestaltControlStripVersion }
 
enum  { gestaltCTBVersion = FOUR_CHAR_CODE('ctbv') }
 
enum  { gestaltDBAccessMgrAttr , gestaltDBAccessMgrPresent = 0 }
 
enum  { gestaltDiskCacheSize }
 
enum  { gestaltSDPFindVersion }
 
enum  { gestaltDictionaryMgrAttr , gestaltDictionaryMgrPresent = 0 }
 
enum  { gestaltDITLExtAttr , gestaltDITLExtPresent = 0 , gestaltDITLExtSupportsIctb }
 
enum  {
  gestaltDialogMgrAttr = FOUR_CHAR_CODE('dlog') , gestaltDialogMgrPresent = (1L << 0) , gestaltDialogMgrPresentBit = 0 , gestaltDialogMgrHasAquaAlertBit = 2 ,
  gestaltDialogMgrPresentMask = (1L << gestaltDialogMgrPresentBit) , gestaltDialogMgrHasAquaAlertMask = (1L << gestaltDialogMgrHasAquaAlertBit) , gestaltDialogMsgPresentMask
}
 
enum  { gestaltDesktopPicturesAttr , gestaltDesktopPicturesInstalled = 0 , gestaltDesktopPicturesDisplayed }
 
enum  { gestaltDisplayMgrVers = FOUR_CHAR_CODE('dplv') }
 
enum  {
  gestaltDisplayMgrAttr , gestaltDisplayMgrPresent = 0 , gestaltDisplayMgrCanSwitchMirrored , gestaltDisplayMgrSetDepthNotifies ,
  gestaltDisplayMgrCanConfirm , gestaltDisplayMgrColorSyncAware , gestaltDisplayMgrGeneratesProfiles
}
 
enum  {
  gestaltDragMgrAttr = FOUR_CHAR_CODE('drag') , gestaltDragMgrPresent = 0 , gestaltDragMgrFloatingWind = 1 , gestaltPPCDragLibPresent = 2 ,
  gestaltDragMgrHasImageSupport , gestaltCanStartDragInFloatWindow , gestaltSetDragImageUpdates
}
 
enum  { gestaltDrawSprocketVersion }
 
enum  { gestaltDigitalSignatureVersion }
 
enum  { gestaltDTPFeatures = FOUR_CHAR_CODE('dtpf') , kDTPThirdPartySupported }
 
enum  { gestaltDTPInfo = FOUR_CHAR_CODE('dtpx') }
 
enum  {
  gestaltEasyAccessAttr = FOUR_CHAR_CODE('easy') , gestaltEasyAccessOff = 0 , gestaltEasyAccessOn = 1 , gestaltEasyAccessSticky = 2 ,
  gestaltEasyAccessLocked = 3
}
 
enum  { gestaltEditionMgrAttr = FOUR_CHAR_CODE('edtn') , gestaltEditionMgrPresent = 0 , gestaltEditionMgrTranslationAware }
 
enum  {
  gestaltAppleEventsAttr , gestaltAppleEventsPresent = 0 , gestaltScriptingSupport = 1 , gestaltOSLInSystem ,
  gestaltSupportsApplicationURL
}
 
enum  { gestaltExtensionTableVersion }
 
enum  { gestaltFBCIndexingState , gestaltFBCindexingSafe = 0 , gestaltFBCindexingCritical = 1 }
 
enum  { gestaltFBCVersion = FOUR_CHAR_CODE('fbcv') , gestaltFBCCurrentVersion = 0x0011 , gestaltOSXFBCCurrentVersion = 0x0100 }
 
enum  { gestaltFileMappingAttr = FOUR_CHAR_CODE('flmp') , gestaltFileMappingPresent , gestaltFileMappingMultipleFilesFix }
 
enum  { gestaltFloppyAttr , gestaltFloppyIsMFMOnly , gestaltFloppyIsManualEject , gestaltFloppyUsesDiskInPlace }
 
enum  {
  gestaltFinderAttr = FOUR_CHAR_CODE('fndr') , gestaltFinderDropEvent = 0 , gestaltFinderMagicPlacement = 1 , gestaltFinderCallsAEProcess = 2 ,
  gestaltOSLCompliantFinder = 3 , gestaltFinderSupports4GBVolumes , gestaltFinderHasClippings , gestaltFinderFullDragManagerSupport ,
  gestaltFinderFloppyRootComments , gestaltFinderLargeAndNotSavedFlavorsOK , gestaltFinderUsesExtensibleFolderManager , gestaltFinderUnderstandsRedirectedDesktopFolder
}
 
enum  {
  gestaltFindFolderAttr = FOUR_CHAR_CODE('fold') , gestaltFindFolderPresent = 0 , gestaltFolderDescSupport = 1 , gestaltFolderMgrFollowsAliasesWhenResolving ,
  gestaltFolderMgrSupportsExtendedCalls , gestaltFolderMgrSupportsDomains , gestaltFolderMgrSupportsFSCalls
}
 
enum  { gestaltFindFolderRedirectionAttr = FOUR_CHAR_CODE('fole') }
 
enum  { gestaltFontMgrAttr = FOUR_CHAR_CODE('font') , gestaltOutlineFonts = 0 }
 
enum  {
  gestaltFPUType = FOUR_CHAR_CODE('fpu ') , gestaltNoFPU = 0 , gestalt68881 = 1 , gestalt68882 = 2 ,
  gestalt68040FPU = 3
}
 
enum  {
  gestaltFSAttr = FOUR_CHAR_CODE('fs ') , gestaltFullExtFSDispatching , gestaltHasFSSpecCalls = 1 , gestaltHasFileSystemManager = 2 ,
  gestaltFSMDoesDynamicLoad , gestaltFSSupports4GBVols = 4 , gestaltFSSupports2TBVols = 5 , gestaltHasExtendedDiskInit = 6 ,
  gestaltDTMgrSupportsFSM , gestaltFSNoMFSVols = 8 , gestaltFSSupportsHFSPlusVols = 9 , gestaltFSIncompatibleDFA82
}
 
enum  { gestaltHasHFSPlusAPIs = 12 , gestaltMustUseFCBAccessors = 13 , gestaltFSUsesPOSIXPathsForConversion }
 
enum  { gestaltAdminFeaturesFlagsAttr , gestaltFinderUsesSpecialOpenFoldersFile }
 
enum  { gestaltFSMVersion }
 
enum  {
  gestaltFXfrMgrAttr , gestaltFXfrMgrPresent = 0 , gestaltFXfrMgrMultiFile = 1 , gestaltFXfrMgrErrorString = 2 ,
  gestaltFXfrMgrAsync
}
 
enum  { gestaltGraphicsAttr , gestaltGraphicsIsDebugging = 0x00000001 , gestaltGraphicsIsLoaded = 0x00000002 , gestaltGraphicsIsPowerPC = 0x00000004 }
 
enum  { gestaltGraphicsVersion , gestaltCurrentGraphicsVersion }
 
enum  {
  gestaltHardwareAttr = FOUR_CHAR_CODE('hdwr') , gestaltHasVIA1 = 0 , gestaltHasVIA2 = 1 , gestaltHasASC = 3 ,
  gestaltHasSCC = 4 , gestaltHasSCSI = 7 , gestaltHasSoftPowerOff = 19 , gestaltHasSCSI961 = 21 ,
  gestaltHasSCSI962 = 22 , gestaltHasUniversalROM = 24 , gestaltHasEnhancedLtalk = 30
}
 
enum  {
  gestaltHelpMgrAttr = FOUR_CHAR_CODE('help') , gestaltHelpMgrPresent = 0 , gestaltHelpMgrExtensions = 1 , gestaltAppleGuideIsDebug = 30 ,
  gestaltAppleGuidePresent = 31
}
 
enum  { gestaltHardwareVendorCode , gestaltHardwareVendorApple }
 
enum  { gestaltCompressionMgr }
 
enum  {
  gestaltIconUtilitiesAttr , gestaltIconUtilitiesPresent = 0 , gestaltIconUtilitiesHas48PixelIcons , gestaltIconUtilitiesHas32BitIcons ,
  gestaltIconUtilitiesHas8BitDeepMasks , gestaltIconUtilitiesHasIconServices = 4
}
 
enum  { gestaltInternalDisplay }
 
enum  {
  gestaltKeyboardType = FOUR_CHAR_CODE('kbd ') , gestaltMacKbd = 1 , gestaltMacAndPad = 2 , gestaltMacPlusKbd = 3 ,
  gestaltExtADBKbd = 4 , gestaltStdADBKbd = 5 , gestaltPrtblADBKbd = 6 , gestaltPrtblISOKbd = 7 ,
  gestaltStdISOADBKbd = 8 , gestaltExtISOADBKbd = 9 , gestaltADBKbdII = 10 , gestaltADBISOKbdII = 11 ,
  gestaltPwrBookADBKbd = 12 , gestaltPwrBookISOADBKbd = 13 , gestaltAppleAdjustKeypad = 14 , gestaltAppleAdjustADBKbd = 15 ,
  gestaltAppleAdjustISOKbd = 16 , gestaltJapanAdjustADBKbd = 17 , gestaltPwrBkExtISOKbd , gestaltPwrBkExtJISKbd ,
  gestaltPwrBkExtADBKbd , gestaltPS2Keyboard = 27 , gestaltPwrBkSubDomKbd = 28 , gestaltPwrBkSubISOKbd = 29 ,
  gestaltPwrBkSubJISKbd = 30 , gestaltPwrBkEKDomKbd = 195 , gestaltPwrBkEKISOKbd = 196 , gestaltPwrBkEKJISKbd = 197 ,
  gestaltUSBCosmoANSIKbd , gestaltUSBCosmoISOKbd , gestaltUSBCosmoJISKbd , gestaltPwrBk99JISKbd = 201 ,
  gestaltUSBAndyANSIKbd , gestaltUSBAndyISOKbd , gestaltUSBAndyJISKbd
}
 
enum  { gestaltUDFSupport }
 
enum  { gestaltLowMemorySize = FOUR_CHAR_CODE('lmem') }
 
enum  { gestaltLogicalRAMSize = FOUR_CHAR_CODE('lram') }
 
enum  {
  gestaltMachineType = FOUR_CHAR_CODE('mach') , gestaltClassic = 1 , gestaltMacXL = 2 , gestaltMac512KE = 3 ,
  gestaltMacPlus = 4 , gestaltMacSE = 5 , gestaltMacII = 6 , gestaltMacIIx = 7 ,
  gestaltMacIIcx = 8 , gestaltMacSE030 = 9 , gestaltPortable = 10 , gestaltMacIIci = 11 ,
  gestaltPowerMac8100_120 = 12 , gestaltMacIIfx = 13 , gestaltMacClassic = 17 , gestaltMacIIsi = 18 ,
  gestaltMacLC = 19 , gestaltMacQuadra900 = 20 , gestaltPowerBook170 = 21 , gestaltMacQuadra700 = 22 ,
  gestaltClassicII = 23 , gestaltPowerBook100 = 24 , gestaltPowerBook140 = 25 , gestaltMacQuadra950 = 26 ,
  gestaltMacLCIII = 27 , gestaltPerforma450 = gestaltMacLCIII , gestaltPowerBookDuo210 = 29 , gestaltMacCentris650 = 30 ,
  gestaltPowerBookDuo230 = 32 , gestaltPowerBook180 = 33 , gestaltPowerBook160 = 34 , gestaltMacQuadra800 = 35 ,
  gestaltMacQuadra650 = 36 , gestaltMacLCII = 37 , gestaltPowerBookDuo250 = 38 , gestaltAWS9150_80 = 39 ,
  gestaltPowerMac8100_110 = 40 , gestaltAWS8150_110 = gestaltPowerMac8100_110 , gestaltPowerMac5200 = 41 , gestaltPowerMac5260 = gestaltPowerMac5200 ,
  gestaltPerforma5300 = gestaltPowerMac5200 , gestaltPowerMac6200 = 42 , gestaltPerforma6300 = gestaltPowerMac6200 , gestaltMacIIvi = 44 ,
  gestaltMacIIvm = 45 , gestaltPerforma600 = gestaltMacIIvm , gestaltPowerMac7100_80 = 47 , gestaltMacIIvx = 48 ,
  gestaltMacColorClassic = 49 , gestaltPerforma250 = gestaltMacColorClassic , gestaltPowerBook165c = 50 , gestaltMacCentris610 = 52 ,
  gestaltMacQuadra610 = 53 , gestaltPowerBook145 = 54 , gestaltPowerMac8100_100 = 55 , gestaltMacLC520 = 56 ,
  gestaltAWS9150_120 = 57 , gestaltPowerMac6400 = 58 , gestaltPerforma6400 = gestaltPowerMac6400 , gestaltPerforma6360 = gestaltPerforma6400 ,
  gestaltMacCentris660AV = 60 , gestaltMacQuadra660AV = gestaltMacCentris660AV , gestaltPerforma46x = 62 , gestaltPowerMac8100_80 = 65 ,
  gestaltAWS8150_80 = gestaltPowerMac8100_80 , gestaltPowerMac9500 = 67 , gestaltPowerMac9600 = gestaltPowerMac9500 , gestaltPowerMac7500 = 68 ,
  gestaltPowerMac7600 = gestaltPowerMac7500 , gestaltPowerMac8500 = 69 , gestaltPowerMac8600 = gestaltPowerMac8500 , gestaltAWS8550 = gestaltPowerMac7500 ,
  gestaltPowerBook180c = 71 , gestaltPowerBook520 = 72 , gestaltPowerBook520c = gestaltPowerBook520 , gestaltPowerBook540 = gestaltPowerBook520 ,
  gestaltPowerBook540c = gestaltPowerBook520 , gestaltPowerMac5400 = 74 , gestaltPowerMac6100_60 = 75 , gestaltAWS6150_60 = gestaltPowerMac6100_60 ,
  gestaltPowerBookDuo270c = 77 , gestaltMacQuadra840AV = 78 , gestaltPerforma550 = 80 , gestaltPowerBook165 = 84 ,
  gestaltPowerBook190 = 85 , gestaltMacTV = 88 , gestaltMacLC475 = 89 , gestaltPerforma47x = gestaltMacLC475 ,
  gestaltMacLC575 = 92 , gestaltMacQuadra605 = 94 , gestaltMacQuadra630 = 98 , gestaltMacLC580 = 99 ,
  gestaltPerforma580 = gestaltMacLC580 , gestaltPowerMac6100_66 = 100 , gestaltAWS6150_66 = gestaltPowerMac6100_66 , gestaltPowerBookDuo280 = 102 ,
  gestaltPowerBookDuo280c = 103 , gestaltPowerMacLC475 = 104 , gestaltPowerMacPerforma47x = gestaltPowerMacLC475 , gestaltPowerMacLC575 = 105 ,
  gestaltPowerMacPerforma57x = gestaltPowerMacLC575 , gestaltPowerMacQuadra630 = 106 , gestaltPowerMacLC630 , gestaltPowerMacPerforma63x ,
  gestaltPowerMac7200 = 108 , gestaltPowerMac7300 = 109 , gestaltPowerMac7100_66 = 112 , gestaltPowerBook150 = 115 ,
  gestaltPowerMacQuadra700 = 116 , gestaltPowerMacQuadra900 = 117 , gestaltPowerMacQuadra950 = 118 , gestaltPowerMacCentris610 = 119 ,
  gestaltPowerMacCentris650 = 120 , gestaltPowerMacQuadra610 = 121 , gestaltPowerMacQuadra650 = 122 , gestaltPowerMacQuadra800 = 123 ,
  gestaltPowerBookDuo2300 = 124 , gestaltPowerBook500PPCUpgrade = 126 , gestaltPowerBook5300 = 128 , gestaltPowerBook1400 = 310 ,
  gestaltPowerBook3400 = 306 , gestaltPowerBook2400 = 307 , gestaltPowerBookG3Series = 312 , gestaltPowerBookG3 = 313 ,
  gestaltPowerBookG3Series2 = 314 , gestaltPowerMacNewWorld , gestaltPowerMacG3 = 510 , gestaltPowerMac5500 = 512 ,
  gestalt20thAnniversary = gestaltPowerMac5500 , gestaltPowerMac6500 = 513 , gestaltPowerMac4400_160 = 514 , gestaltPowerMac4400 = 515 ,
  gestaltMacOSCompatibility
}
 
enum  {
  gestaltQuadra605 = gestaltMacQuadra605 , gestaltQuadra610 = gestaltMacQuadra610 , gestaltQuadra630 = gestaltMacQuadra630 , gestaltQuadra650 = gestaltMacQuadra650 ,
  gestaltQuadra660AV = gestaltMacQuadra660AV , gestaltQuadra700 = gestaltMacQuadra700 , gestaltQuadra800 = gestaltMacQuadra800 , gestaltQuadra840AV = gestaltMacQuadra840AV ,
  gestaltQuadra900 = gestaltMacQuadra900 , gestaltQuadra950 = gestaltMacQuadra950
}
 
enum  { kMachineNameStrID = -16395 }
 
enum  { gestaltSMPMailerVersion = FOUR_CHAR_CODE('malr') }
 
enum  { gestaltMediaBay = FOUR_CHAR_CODE('mbeh') , gestaltMBLegacy = 0 , gestaltMBSingleBay = 1 , gestaltMBMultipleBays = 2 }
 
enum  { gestaltMessageMgrVersion }
 
enum  {
  gestaltMenuMgrAttr , gestaltMenuMgrPresent , gestaltMenuMgrPresentBit = 0 , gestaltMenuMgrAquaLayoutBit = 1 ,
  gestaltMenuMgrMultipleItemsWithCommandIDBit , gestaltMenuMgrRetainsIconRefBit = 3 , gestaltMenuMgrSendsMenuBoundsToDefProcBit , gestaltMenuMgrPresentMask = (1L << gestaltMenuMgrPresentBit) ,
  gestaltMenuMgrAquaLayoutMask = (1L << gestaltMenuMgrAquaLayoutBit) , gestaltMenuMgrMultipleItemsWithCommandIDMask , gestaltMenuMgrRetainsIconRefMask = (1L << gestaltMenuMgrRetainsIconRefBit) , gestaltMenuMgrSendsMenuBoundsToDefProcMask
}
 
enum  { gestaltMultipleUsersState }
 
enum  { gestaltMachineIcon = FOUR_CHAR_CODE('micn') }
 
enum  { gestaltMiscAttr = FOUR_CHAR_CODE('misc') , gestaltScrollingThrottle = 0 , gestaltSquareMenuBar = 2 }
 
enum  { gestaltMixedModeVersion }
 
enum  {
  gestaltMixedModeAttr , gestaltMixedModePowerPC , gestaltPowerPCAware = 0 , gestaltMixedModeCFM68K ,
  gestaltMixedModeCFM68KHasTrap , gestaltMixedModeCFM68KHasState
}
 
enum  { gestaltQuickTimeConferencing }
 
enum  { gestaltMemoryMapAttr = FOUR_CHAR_CODE('mmap') , gestaltMemoryMapSparse = 0 }
 
enum  {
  gestaltMMUType = FOUR_CHAR_CODE('mmu ') , gestaltNoMMU = 0 , gestaltAMU = 1 , gestalt68851 = 2 ,
  gestalt68030MMU = 3 , gestalt68040MMU = 4 , gestaltEMMU1 = 5
}
 
enum  { gestaltUserVisibleMachineName }
 
enum  { gestaltMPCallableAPIsAttr , gestaltMPFileManager , gestaltMPDeviceManager = 1 , gestaltMPTrapCalls }
 
enum  { gestaltStdNBPAttr = FOUR_CHAR_CODE('nlup') , gestaltStdNBPPresent = 0 , gestaltStdNBPSupportsAutoPosition }
 
enum  { gestaltNotificationMgrAttr , gestaltNotificationPresent = 0 }
 
enum  { gestaltNameRegistryVersion }
 
enum  { gestaltNuBusSlotCount }
 
enum  { gestaltOCEToolboxVersion = FOUR_CHAR_CODE('ocet') , gestaltOCETB = 0x0102 , gestaltSFServer = 0x0100 }
 
enum  {
  gestaltOCEToolboxAttr = FOUR_CHAR_CODE('oceu') , gestaltOCETBPresent = 0x01 , gestaltOCETBAvailable = 0x02 , gestaltOCESFServerAvailable = 0x04 ,
  gestaltOCETBNativeGlueAvailable
}
 
enum  { gestaltOpenFirmwareInfo = FOUR_CHAR_CODE('opfw') }
 
enum  {
  gestaltOSAttr = FOUR_CHAR_CODE('os ') , gestaltSysZoneGrowable = 0 , gestaltLaunchCanReturn = 1 , gestaltLaunchFullFileSpec = 2 ,
  gestaltLaunchControl = 3 , gestaltTempMemSupport = 4 , gestaltRealTempMemory = 5 , gestaltTempMemTracked = 6 ,
  gestaltIPCSupport = 7 , gestaltSysDebuggerSupport = 8 , gestaltNativeProcessMgrBit = 19 , gestaltAltivecRegistersSwappedCorrectlyBit
}
 
enum  { gestaltOSTable = FOUR_CHAR_CODE('ostt') }
 
enum  { gestaltOpenTptNetworkSetup = FOUR_CHAR_CODE('otcf') , gestaltOpenTptNetworkSetupLegacyImport = 0 , gestaltOpenTptNetworkSetupLegacyExport = 1 , gestaltOpenTptNetworkSetupSupportsMultihoming = 2 }
 
enum  { gestaltOpenTptNetworkSetupVersion = FOUR_CHAR_CODE('otcv') }
 
enum  {
  gestaltOpenTptRemoteAccess = FOUR_CHAR_CODE('otra') , gestaltOpenTptRemoteAccessPresent = 0 , gestaltOpenTptRemoteAccessLoaded = 1 , gestaltOpenTptRemoteAccessClientOnly = 2 ,
  gestaltOpenTptRemoteAccessPServer = 3 , gestaltOpenTptRemoteAccessMPServer = 4 , gestaltOpenTptPPPPresent = 5 , gestaltOpenTptARAPPresent = 6
}
 
enum  { gestaltOpenTptRemoteAccessVersion = FOUR_CHAR_CODE('otrv') }
 
enum  { gestaltOpenTptVersions }
 
enum  {
  gestaltOpenTpt , gestaltOpenTptPresentMask = 0x00000001 , gestaltOpenTptLoadedMask = 0x00000002 , gestaltOpenTptAppleTalkPresentMask = 0x00000004 ,
  gestaltOpenTptAppleTalkLoadedMask = 0x00000008 , gestaltOpenTptTCPPresentMask = 0x00000010 , gestaltOpenTptTCPLoadedMask = 0x00000020 , gestaltOpenTptIPXSPXPresentMask = 0x00000040 ,
  gestaltOpenTptIPXSPXLoadedMask = 0x00000080 , gestaltOpenTptPresentBit = 0 , gestaltOpenTptLoadedBit = 1 , gestaltOpenTptAppleTalkPresentBit = 2 ,
  gestaltOpenTptAppleTalkLoadedBit = 3 , gestaltOpenTptTCPPresentBit = 4 , gestaltOpenTptTCPLoadedBit = 5 , gestaltOpenTptIPXSPXPresentBit = 6 ,
  gestaltOpenTptIPXSPXLoadedBit = 7
}
 
enum  {
  gestaltPCCard = FOUR_CHAR_CODE('pccd') , gestaltCardServicesPresent = 0 , gestaltPCCardFamilyPresent = 1 , gestaltPCCardHasPowerControl = 2 ,
  gestaltPCCardSupportsCardBus = 3
}
 
enum  { gestaltProcClkSpeed }
 
enum  {
  gestaltPCXAttr = FOUR_CHAR_CODE('pcxg') , gestaltPCXHas8and16BitFAT , gestaltPCXHasProDOS = 1 , gestaltPCXNewUI = 2 ,
  gestaltPCXUseICMapping
}
 
enum  { gestaltLogicalPageSize = FOUR_CHAR_CODE('pgsz') }
 
enum  { gestaltScreenCaptureMain , gestaltScreenCaptureDir }
 
enum  { gestaltGXPrintingMgrVersion }
 
enum  { gestaltPopupAttr = FOUR_CHAR_CODE('pop!') , gestaltPopupPresent = 0 }
 
enum  {
  gestaltPowerMgrAttr = FOUR_CHAR_CODE('powr') , gestaltPMgrExists = 0 , gestaltPMgrCPUIdle = 1 , gestaltPMgrSCC = 2 ,
  gestaltPMgrSound = 3 , gestaltPMgrDispatchExists = 4 , gestaltPMgrSupportsAVPowerStateAtSleepWake = 5
}
 
enum  { gestaltPowerMgrVers = FOUR_CHAR_CODE('pwrv') }
 
enum  {
  gestaltPPCToolboxAttr = FOUR_CHAR_CODE('ppc ') , gestaltPPCToolboxPresent , gestaltPPCSupportsRealTime = 0x1000 , gestaltPPCSupportsIncoming ,
  gestaltPPCSupportsOutGoing , gestaltPPCSupportsTCP_IP = 0x0004 , gestaltPPCSupportsIncomingAppleTalk = 0x0010 , gestaltPPCSupportsIncomingTCP_IP = 0x0020 ,
  gestaltPPCSupportsOutgoingAppleTalk = 0x0100 , gestaltPPCSupportsOutgoingTCP_IP = 0x0200
}
 
enum  {
  gestaltPowerPCProcessorFeatures , gestaltPowerPCHasGraphicsInstructions , gestaltPowerPCHasSTFIWXInstruction = 1 , gestaltPowerPCHasSquareRootInstructions ,
  gestaltPowerPCHasDCBAInstruction = 3 , gestaltPowerPCHasVectorInstructions = 4 , gestaltPowerPCHasDataStreams
}
 
enum  {
  gestaltProcessorType = FOUR_CHAR_CODE('proc') , gestalt68000 = 1 , gestalt68010 = 2 , gestalt68020 = 3 ,
  gestalt68030 = 4 , gestalt68040 = 5
}
 
enum  { gestaltSDPPromptVersion }
 
enum  { gestaltParityAttr = FOUR_CHAR_CODE('prty') , gestaltHasParityCapability = 0 , gestaltParityEnabled = 1 }
 
enum  { gestaltQD3DVersion }
 
enum  { gestaltQD3DViewer , gestaltQD3DViewerPresent = 0 }
 
enum  {
  gestaltQuickdrawVersion = FOUR_CHAR_CODE('qd ') , gestaltOriginalQD = 0x0000 , gestalt8BitQD = 0x0100 , gestalt32BitQD = 0x0200 ,
  gestalt32BitQD11 = 0x0201 , gestalt32BitQD12 = 0x0220 , gestalt32BitQD13 = 0x0230 , gestaltAllegroQD = 0x0250 ,
  gestaltMacOSXQD = 0x0300
}
 
enum  { gestaltQD3D = FOUR_CHAR_CODE('qd3d') , gestaltQD3DPresent = 0 }
 
enum  { gestaltGXVersion = FOUR_CHAR_CODE('qdgx') }
 
enum  {
  gestaltQuickdrawFeatures = FOUR_CHAR_CODE('qdrw') , gestaltHasColor = 0 , gestaltHasDeepGWorlds = 1 , gestaltHasDirectPixMaps = 2 ,
  gestaltHasGrayishTextOr = 3 , gestaltSupportsMirroring , gestaltQDHasLongRowBytes = 5
}
 
enum  { gestaltQDTextVersion = FOUR_CHAR_CODE('qdtx') , gestaltOriginalQDText = 0x0000 , gestaltAllegroQDText = 0x0100 , gestaltMacOSXQDText = 0x0200 }
 
enum  {
  gestaltQDTextFeatures = FOUR_CHAR_CODE('qdtf') , gestaltWSIISupport = 0 , gestaltSbitFontSupport = 1 , gestaltAntiAliasedTextAvailable = 2 ,
  gestaltOFA2available = 3 , gestaltCreatesAliasFontRsrc = 4 , gestaltNativeType1FontSupport = 5
}
 
enum  { gestaltQuickTimeConferencingInfo }
 
enum  { gestaltQuickTimeVersion , gestaltQuickTime }
 
enum  { gestaltQuickTimeFeatures = FOUR_CHAR_CODE('qtrs') , gestaltPPCQuickTimeLibPresent }
 
enum  { gestaltQuickTimeStreamingFeatures = FOUR_CHAR_CODE('qtsf') }
 
enum  { gestaltQuickTimeStreamingVersion = FOUR_CHAR_CODE('qtst') }
 
enum  {
  gestaltQTVRMgrAttr = FOUR_CHAR_CODE('qtvr') , gestaltQTVRMgrPresent = 0 , gestaltQTVRObjMoviesPresent = 1 , gestaltQTVRCylinderPanosPresent ,
  gestaltQTVRCubicPanosPresent
}
 
enum  { gestaltQTVRMgrVers = FOUR_CHAR_CODE('qtvv') }
 
enum  { gestaltPhysicalRAMSize = FOUR_CHAR_CODE('ram ') }
 
enum  { gestaltRBVAddr = FOUR_CHAR_CODE('rbv ') }
 
enum  { gestaltROMSize = FOUR_CHAR_CODE('rom ') }
 
enum  { gestaltROMVersion = FOUR_CHAR_CODE('romv') }
 
enum  { gestaltResourceMgrAttr , gestaltPartialRsrcs = 0 , gestaltHasResourceOverrides = 1 }
 
enum  {
  gestaltResourceMgrBugFixesAttrs , gestaltRMForceSysHeapRolledIn = 0 , gestaltRMFakeAppleMenuItemsRolledIn = 1 , gestaltSanityCheckResourceFiles ,
  gestaltSupportsFSpResourceFileAlreadyOpenBit , gestaltRMSupportsFSCalls , gestaltRMTypeIndexOrderingReverse
}
 
enum  { gestaltRealtimeMgrAttr , gestaltRealtimeMgrPresent = 0 }
 
enum  {
  gestaltSafeOFAttr = FOUR_CHAR_CODE('safe') , gestaltVMZerosPagesBit = 0 , gestaltInitHeapZerosOutHeapsBit = 1 , gestaltNewHandleReturnsZeroedMemoryBit = 2 ,
  gestaltNewPtrReturnsZeroedMemoryBit = 3 , gestaltFileAllocationZeroedBlocksBit = 4
}
 
enum  { gestaltSCCReadAddr = FOUR_CHAR_CODE('sccr') }
 
enum  { gestaltSCCWriteAddr = FOUR_CHAR_CODE('sccw') }
 
enum  { gestaltScrapMgrAttr = FOUR_CHAR_CODE('scra') , gestaltScrapMgrTranslationAware }
 
enum  { gestaltScriptMgrVersion }
 
enum  { gestaltScriptCount }
 
enum  {
  gestaltSCSI = FOUR_CHAR_CODE('scsi') , gestaltAsyncSCSI = 0 , gestaltAsyncSCSIINROM = 1 , gestaltSCSISlotBoot ,
  gestaltSCSIPollSIH = 3
}
 
enum  {
  gestaltControlStripAttr , gestaltControlStripExists = 0 , gestaltControlStripVersionFixed , gestaltControlStripUserFont = 2 ,
  gestaltControlStripUserHotKey
}
 
enum  { gestaltSDPStandardDirectoryVersion }
 
enum  {
  gestaltSerialAttr = FOUR_CHAR_CODE('ser ') , gestaltHasGPIaToDCDa = 0 , gestaltHasGPIaToRTxCa = 1 , gestaltHasGPIbToDCDb = 2 ,
  gestaltHidePortA = 3 , gestaltHidePortB = 4 , gestaltPortADisabled , gestaltPortBDisabled
}
 
enum  { gestaltShutdownAttributes , gestaltShutdownHassdOnBootVolUnmount }
 
enum  { gestaltNuBusConnectors }
 
enum  {
  gestaltSlotAttr = FOUR_CHAR_CODE('slot') , gestaltSlotMgrExists = 0 , gestaltNuBusPresent = 1 , gestaltSESlotPresent = 2 ,
  gestaltSE30SlotPresent = 3 , gestaltPortableSlotPresent = 4
}
 
enum  { gestaltFirstSlotNumber }
 
enum  {
  gestaltSoundAttr = FOUR_CHAR_CODE('snd ') , gestaltStereoCapability = 0 , gestaltStereoMixing = 1 , gestaltSoundIOMgrPresent = 3 ,
  gestaltBuiltInSoundInput = 4 , gestaltHasSoundInputDevice = 5 , gestaltPlayAndRecord , gestalt16BitSoundIO ,
  gestaltStereoInput = 8 , gestaltLineLevelInput = 9 , gestaltSndPlayDoubleBuffer , gestaltMultiChannels ,
  gestalt16BitAudioSupport
}
 
enum  {
  gestaltSplitOSAttr = FOUR_CHAR_CODE('spos') , gestaltSplitOSBootDriveIsNetworkVolume , gestaltSplitOSAware , gestaltSplitOSEnablerVolumeIsDifferentFromBootVolume ,
  gestaltSplitOSMachineNameSetToNetworkNameTemp , gestaltSplitOSMachineNameStartupDiskIsNonPersistent
}
 
enum  { gestaltSMPSPSendLetterVersion = FOUR_CHAR_CODE('spsl') }
 
enum  { gestaltSpeechRecognitionAttr , gestaltDesktopSpeechRecognition , gestaltTelephoneSpeechRecognition }
 
enum  { gestaltSpeechRecognitionVersion }
 
enum  { gestaltSoftwareVendorCode , gestaltSoftwareVendorApple , gestaltSoftwareVendorLicensee }
 
enum  {
  gestaltStandardFileAttr , gestaltStandardFile58 = 0 , gestaltStandardFileTranslationAware , gestaltStandardFileHasColorIcons ,
  gestaltStandardFileUseGenericIcons , gestaltStandardFileHasDynamicVolumeAllocation
}
 
enum  { gestaltSysArchitecture , gestalt68k = 1 , gestaltPowerPC = 2 }
 
enum  { gestaltSystemUpdateVersion }
 
enum  { gestaltSystemVersion = FOUR_CHAR_CODE('sysv') }
 
enum  { gestaltToolboxTable = FOUR_CHAR_CODE('tbtt') }
 
enum  {
  gestaltTextEditVersion , gestaltTE1 = 1 , gestaltTE2 = 2 , gestaltTE3 = 3 ,
  gestaltTE4 = 4 , gestaltTE5 = 5
}
 
enum  {
  gestaltTEAttr = FOUR_CHAR_CODE('teat') , gestaltTEHasGetHiliteRgn = 0 , gestaltTESupportsInlineInput = 1 , gestaltTESupportsTextObjects = 2 ,
  gestaltTEHasWhiteBackground
}
 
enum  {
  gestaltTeleMgrAttr , gestaltTeleMgrPresent = 0 , gestaltTeleMgrPowerPCSupport = 1 , gestaltTeleMgrSoundStreams = 2 ,
  gestaltTeleMgrAutoAnswer = 3 , gestaltTeleMgrIndHandset = 4 , gestaltTeleMgrSilenceDetect = 5 , gestaltTeleMgrNewTELNewSupport = 6
}
 
enum  { gestaltTermMgrAttr = FOUR_CHAR_CODE('term') , gestaltTermMgrPresent = 0 , gestaltTermMgrErrorString = 2 }
 
enum  { gestaltThreadMgrAttr , gestaltThreadMgrPresent = 0 , gestaltSpecificMatchSupport , gestaltThreadsLibraryPresent }
 
enum  {
  gestaltTimeMgrVersion = FOUR_CHAR_CODE('tmgr') , gestaltStandardTimeMgr = 1 , gestaltRevisedTimeMgr = 2 , gestaltExtendedTimeMgr = 3 ,
  gestaltNativeTimeMgr = 4
}
 
enum  { gestaltTSMTEVersion = FOUR_CHAR_CODE('tmTV') , gestaltTSMTE1 = 0x0100 , gestaltTSMTE15 = 0x0150 , gestaltTSMTE152 = 0x0152 }
 
enum  { gestaltTSMTEAttr = FOUR_CHAR_CODE('tmTE') , gestaltTSMTEPresent = 0 , gestaltTSMTE = 0 }
 
enum  { gestaltAVLTreeAttr , gestaltAVLTreePresentBit , gestaltAVLTreeSupportsHandleBasedTreeBit , gestaltAVLTreeSupportsTreeLockingBit }
 
enum  {
  gestaltALMAttr , gestaltALMPresent = 0 , gestaltALMHasSFGroup , gestaltALMHasCFMSupport ,
  gestaltALMHasRescanNotifiers
}
 
enum  { gestaltALMHasSFLocation = gestaltALMHasSFGroup }
 
enum  { gestaltTSMgrVersion , gestaltTSMgr15 = 0x0150 , gestaltTSMgr20 = 0x0200 }
 
enum  { gestaltTSMgrAttr , gestaltTSMDisplayMgrAwareBit = 0 , gestaltTSMdoesTSMTEBit = 1 }
 
enum  { gestaltSpeechAttr = FOUR_CHAR_CODE('ttsc') , gestaltSpeechMgrPresent , gestaltSpeechHasPPCGlue = 1 }
 
enum  {
  gestaltTVAttr = FOUR_CHAR_CODE('tv ') , gestaltHasTVTuner = 0 , gestaltHasSoundFader = 1 , gestaltHasHWClosedCaptioning ,
  gestaltHasIRRemote = 3 , gestaltHasVidDecoderScaler , gestaltHasStereoDecoder = 5 , gestaltHasSerialFader = 6 ,
  gestaltHasFMTuner = 7 , gestaltHasSystemIRFunction = 8 , gestaltIRDisabled = 9 , gestaltINeedIRPowerOffConfirm = 10 ,
  gestaltHasZoomedVideo = 11
}
 
enum  {
  gestaltATSUVersion = FOUR_CHAR_CODE('uisv') , gestaltOriginalATSUVersion = (1 << 16) , gestaltATSUUpdate1 = (2 << 16) , gestaltATSUUpdate2 = (3 << 16) ,
  gestaltATSUUpdate3 = (4 << 16) , gestaltATSUUpdate4 = (5 << 16) , gestaltATSUUpdate5 = (6 << 16)
}
 
enum  {
  gestaltATSUFeatures = FOUR_CHAR_CODE('uisf') , gestaltATSUTrackingFeature , gestaltATSUMemoryFeature , gestaltATSUFallbacksFeature ,
  gestaltATSUGlyphBoundsFeature , gestaltATSULineControlFeature , gestaltATSULayoutCreateAndCopyFeature , gestaltATSULayoutCacheClearFeature ,
  gestaltATSUTextLocatorUsageFeature , gestaltATSULowLevelOrigFeatures , gestaltATSUFallbacksObjFeatures , gestaltATSUIgnoreLeadingFeature
}
 
enum  { gestaltUSBAttr = FOUR_CHAR_CODE('usb ') , gestaltUSBPresent = 0 , gestaltUSBHasIsoch = 1 }
 
enum  { gestaltUSBVersion = FOUR_CHAR_CODE('usbv') }
 
enum  { gestaltVersion = FOUR_CHAR_CODE('vers') , gestaltValueImplementedVers }
 
enum  { gestaltVIA1Addr = FOUR_CHAR_CODE('via1') }
 
enum  { gestaltVIA2Addr = FOUR_CHAR_CODE('via2') }
 
enum  {
  gestaltVMAttr = FOUR_CHAR_CODE('vm ') , gestaltVMPresent = 0 , gestaltVMHasLockMemoryForOutput , gestaltVMFilemappingOn = 3 ,
  gestaltVMHasPagingControl
}
 
enum  {
  gestaltVMInfoType , gestaltVMInfoSizeStorageType , gestaltVMInfoSizeType = 1 , gestaltVMInfoSimpleType = 2 ,
  gestaltVMInfoNoneType = 3
}
 
enum  { gestaltVMBackingStoreFileRefNum }
 
enum  { gestaltALMVers }
 
enum  {
  gestaltWindowMgrAttr , gestaltWindowMgrPresent = (1L << 0) , gestaltWindowMgrPresentBit = 0 , gestaltExtendedWindowAttributes ,
  gestaltExtendedWindowAttributesBit , gestaltHasFloatingWindows = 2 , gestaltHasFloatingWindowsBit = 2 , gestaltHasWindowBuffering = 3 ,
  gestaltHasWindowBufferingBit = 3 , gestaltWindowLiveResizeBit = 4 , gestaltWindowMinimizeToDockBit , gestaltHasWindowShadowsBit = 6 ,
  gestaltSheetsAreWindowModalBit , gestaltWindowMgrPresentMask = (1L << gestaltWindowMgrPresentBit) , gestaltExtendedWindowAttributesMask , gestaltHasFloatingWindowsMask = (1L << gestaltHasFloatingWindowsBit) ,
  gestaltHasWindowBufferingMask = (1L << gestaltHasWindowBufferingBit) , gestaltWindowLiveResizeMask = (1L << gestaltWindowLiveResizeBit) , gestaltWindowMinimizeToDockMask = (1L << gestaltWindowMinimizeToDockBit) , gestaltHasWindowShadowsMask = (1L << gestaltHasWindowShadowsBit) ,
  gestaltSheetsAreWindowModalMask = (1L << gestaltSheetsAreWindowModalBit)
}
 
enum  {
  gestaltTranslationAttr , gestaltTranslationMgrExists = 0 , gestaltTranslationMgrHintOrder , gestaltTranslationPPCAvail = 2 ,
  gestaltTranslationGetPathAPIAvail = 3
}
 
enum  { gestaltExtToolboxTable }
 
enum  {
  gestaltUSBPrinterSharingVersion , gestaltUSBPrinterSharingVersionMask , gestaltUSBPrinterSharingAttr , gestaltUSBPrinterSharingAttrMask ,
  gestaltUSBPrinterSharingAttrRunning , gestaltUSBPrinterSharingAttrBooted
}
 
enum  { gestaltWorldScriptIIVersion = FOUR_CHAR_CODE('doub') , gestaltWorldScriptIIAttr = FOUR_CHAR_CODE('wsat') , gestaltWSIICanPrintWithoutPrGeneralBit }
 

Functions

typedef CALLBACK_API (OSErr, SelectorFunctionProcPtr)(OSType selector
 
typedef STACK_UPP_TYPE (SelectorFunctionProcPtr) SelectorFunctionUPP
 
OSErr Gestalt (OSType selector, long *response)
 Get information about the operating environment. More...
 
OSErr ReplaceGestalt (OSType selector, SelectorFunctionUPP gestaltFunction, SelectorFunctionUPP *oldGestaltFunction)
 
OSErr NewGestalt (OSType selector, SelectorFunctionUPP gestaltFunction)
 
OSErr NewGestaltValue (OSType selector, long newValue)
 
OSErr ReplaceGestaltValue (OSType selector, long replacementValue)
 
OSErr SetGestaltValue (OSType selector, long newValue)
 
OSErr DeleteGestaltValue (OSType selector)
 
SelectorFunctionUPP NewSelectorFunctionUPP (SelectorFunctionProcPtr userRoutine)
 
void DisposeSelectorFunctionUPP (SelectorFunctionUPP userUPP)
 
OSErr InvokeSelectorFunctionUPP (OSType selector, long *response, SelectorFunctionUPP userUPP)
 

Detailed Description

Gestalt Interfaces.

Introduced In: Mac OS 9.1
Avaliable From: Universal Interfaces 3.4.1
Copyright: © 1988-2001 by Apple Computer, Inc. All rights reserved

For bug reports, consult the following page on the World Wide Web:

http://developer.apple.com/bugreporter/

Macro Definition Documentation

◆ InvokeSelectorFunctionUPP

#define InvokeSelectorFunctionUPP (   selector,
  response,
  userUPP 
)
Value:
(OSErr) CALL_TWO_PARAMETER_UPP((userUPP), uppSelectorFunctionProcInfo, \
(selector), (response))

◆ NewSelectorFunctionProc

#define NewSelectorFunctionProc (   userRoutine)    NewSelectorFunctionUPP(userRoutine)

support for pre-Carbon UPP routines: New...Proc and Call...Proc

◆ NewSelectorFunctionUPP

#define NewSelectorFunctionUPP (   userRoutine)
Value:
(SelectorFunctionUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), \
uppSelectorFunctionProcInfo, \
GetCurrentArchitecture())
UniversalProcPtr NewRoutineDescriptor(ProcPtr theProc, ProcInfoType theProcInfo, ISAType theISA)

pascal 2_bytes Func(4_bytes, 4_bytes)

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

CALL_NOT_IN_CARBON Environment Selectors

Enumerator
gestalt32BitAddressing 

addressing mode attributes

gestalt32BitSysZone 

using 32-bit addressing mode

gestalt32BitCapable 

32-bit compatible system zone

◆ anonymous enum

anonymous enum
Enumerator
gestaltAFPClient3_5 

low word of long is the client version 0x0001 -> 0x0007

gestaltAFPClient3_7 

including 3.6.4, 3.6.5

gestaltAFPClient3_7_2 

including 3.7.1

gestaltAFPClient3_8 

including 3.7.3, 3.7.4

gestaltAFPClient3_8_3 

including 3.8.2

gestaltAFPClientAttributeMask 

including 3.8.5, 3.8.6

gestaltAFPClientCfgRsrc 

high word of long is a set of attribute bits

gestaltAFPClientSupportsIP 

Client uses config resources

gestaltAFPClientVMUI 

Client supports AFP over TCP/IP

gestaltAFPClientMultiReq 

Client can put up UI from the PBVolMount trap

◆ anonymous enum

anonymous enum
Enumerator
gestaltAliasMgrPresent 

Alias Mgr Attributes

gestaltAliasMgrSupportsRemoteAppletalk 

True if the Alias Mgr is present

gestaltAliasMgrSupportsAOCEKeychain 

True if the Alias Mgr knows about Remote Appletalk

gestaltAliasMgrResolveAliasFileWithMountOptions 

True if the Alias Mgr knows about the AOCE Keychain

gestaltAliasMgrFollowsAliasesWhenResolving 

True if the Alias Mgr implements gestaltAliasMgrResolveAliasFileWithMountOptions() and IsAliasFile()

◆ anonymous enum

anonymous enum

Gestalt selector and values for the Appearance Manager

◆ anonymous enum

anonymous enum

Gestalt selector for determining Appearance Manager version
If this selector does not exist, but gestaltAppearanceAttr
does, it indicates that the 1.0 version is installed. This
gestalt returns a BCD number representing the version of the
Appearance Manager that is currently running, e.g. 0x0101 for version 1.0.1.

◆ anonymous enum

anonymous enum
Enumerator
gestaltAppleScriptPresent 

AppleScript attributes

◆ anonymous enum

anonymous enum
Enumerator
gestaltATAPresent 

ATA is the driver to support IDE hard disks

◆ anonymous enum

anonymous enum

FORMAT OF gestaltATalkVersion RESPONSE

The version is stored in the high three bytes of the response value. Let us number the bytes in the response value from 0 to 3, where 0 is the least-significant byte.

 Byte#:     3 2 1 0
 Value:  0xMMNNRR00

Byte 3 (MM) contains the major revision number, byte 2 (NN) contains the minor revision number, and byte 1 (RR) contains a constant that represents the release stage. Byte 0 always contains 0x00. The constants for the release stages are:

 development = 0x20
 alpha       = 0x40
 beta        = 0x60
 final       = 0x80
 release     = 0x80

For example, if you call Gestalt with the 'atkv' selector when AppleTalk version 57 is loaded, you receive the long integer response value 0x39008000.

◆ anonymous enum

anonymous enum
Enumerator
gestaltMacOSCompatibilityBoxPresent 

Classic presence and features

gestaltMacOSCompatibilityBoxHasSerial 

True if running under the Classic

gestaltMacOSCompatibilityBoxless 

True if Classic serial support is implemented.

◆ anonymous enum

anonymous enum
Enumerator
gestaltCloseViewEnabled 

CloseView attributes

gestaltCloseViewDisplayMgrFriendly 

Closeview enabled (dynamic bit - returns current state)

◆ anonymous enum

anonymous enum
Enumerator
gestaltCFMPresent 

Selector for information about the Code Fragment Manager

gestaltCFMPresentMask 

True if the Code Fragment Manager is present

gestaltCFM99PresentMask 

True if the CFM-99 features are present.

◆ anonymous enum

anonymous enum
Enumerator
gestaltHighLevelMatching 

ColorSync attributes

◆ anonymous enum

anonymous enum
Enumerator
gestaltColorSync11 

0x0100 & 0x0110 _Gestalt versions for 1.0-1.0.3 product

gestaltColorSync104 

0x0100 == low-level matching only

gestaltColorSync105 

Real version, by popular demand

gestaltColorSync21 

ColorSync 2.0

◆ anonymous enum

anonymous enum
Enumerator
gestaltControlMgrPresent 

Control Mgr

gestaltControlMgrPresentBit 

NOTE: this is a bit mask, whereas all other Gestalt constants of this type are bit index values. Universal Interfaces 3.2 slipped out the door with this mistake.

gestaltControlMsgPresentMask 

bit number

◆ anonymous enum

anonymous enum
Enumerator
gestaltConnMgrPresent 

connection mgr attributes

gestaltConnMgrErrorString 

Fix to CMAddSearch?

gestaltConnMgrMultiAsyncIO 

has CMGetErrorString()

◆ anonymous enum

anonymous enum
Enumerator
gestaltColorPicker 

returns version of ColorPicker

◆ anonymous enum

anonymous enum
Enumerator
gestaltComponentPlatform 

Component Mgr version

◆ anonymous enum

anonymous enum

The gestaltNativeCPUtype ('cput') selector can be used to determine the native CPU type for all Macs running System 7.5 or later.

The 'cput' selector is not available when running System 7.0 (or earlier) on most 68K machines. If 'cput' is not available, then the 'proc' selector should be used to determine the processor type.

An application should always try the 'cput' selector first. This is because, on PowerPC machines, the 'proc' selector will reflect the CPU type of the emulator's "virtual processor" rather than the native CPU type.

The values specified below are accurate. Prior versions of the Gestalt interface file contained values that were off by one.

The Quadra 840AV and the Quadra 660AV contain a bug in the ROM code that causes the 'cput' selector to respond with the value 5. This behavior occurs only when running System 7.1. System 7.5 fixes the bug by replacing the faulty 'cput' selector function with the correct one.

The gestaltNativeCPUfamily ('cpuf') selector can be used to determine the general family the native CPU is in. This can be helpful for determing how blitters and things should be written. In general, it is smarter to use this selector (when available) than gestaltNativeCPUtype since newer processors in the same family can be handled without revising your code.

gestaltNativeCPUfamily uses the same results as gestaltNativeCPUtype, but will only return certain CPU values.

Enumerator
gestaltNativeCPUfamily 

Native CPU type

gestaltCPU68000 

Native CPU family

gestaltCPU68010 

Various 68k CPUs...

gestaltCPU603 

IBM 601

gestaltCPU604e 

Also 740 - "G3"

gestaltCPUG4 

Mach 5, 250Mhz and up

gestaltCPUG47450 

Max

◆ anonymous enum

anonymous enum

TARGET_OS_WIN32

Enumerator
gestaltCRMPresent 

comm resource mgr attributes

gestaltCRMToolRsrcCalls 

fix for persistent tools

◆ anonymous enum

anonymous enum
Enumerator
gestaltDBAccessMgrPresent 

Database Access Mgr attributes

◆ anonymous enum

anonymous enum
Enumerator
gestaltDictionaryMgrPresent 

Dictionary Manager attributes

◆ anonymous enum

anonymous enum
Enumerator
gestaltDITLExtPresent 

AppenDITL, etc. calls from CTB

gestaltDITLExtSupportsIctb 

True if calls are present

◆ anonymous enum

anonymous enum
Enumerator
gestaltDialogMgrPresent 

Dialog Mgr

gestaltDialogMgrPresentBit 

NOTE: this is a bit mask, whereas all other Gestalt constants of this type are bit index values. Universal Interfaces 3.2 slipped out the door with this mistake.

gestaltDialogMgrHasAquaAlertBit 

bit number

gestaltDialogMgrPresentMask 

bit number

◆ anonymous enum

anonymous enum
Enumerator
gestaltDesktopPicturesInstalled 

Desktop Pictures attributes

gestaltDesktopPicturesDisplayed 

True if control panel is installed

◆ anonymous enum

anonymous enum
Enumerator
gestaltDisplayMgrPresent 

Display Manager attributes

gestaltDisplayMgrCanSwitchMirrored 

True if Display Mgr is present

gestaltDisplayMgrSetDepthNotifies 

True if Display Mgr can switch modes on mirrored displays

gestaltDisplayMgrCanConfirm 

True SetDepth generates displays mgr notification

gestaltDisplayMgrColorSyncAware 

True Display Manager supports DMConfirmConfiguration

gestaltDisplayMgrGeneratesProfiles 

True if Display Manager supports profiles for displays

◆ anonymous enum

anonymous enum
Enumerator
gestaltDragMgrPresent 

Drag Manager attributes

gestaltDragMgrFloatingWind 

Drag Manager is present

gestaltPPCDragLibPresent 

Drag Manager supports floating windows

gestaltDragMgrHasImageSupport 

Drag Manager PPC DragLib is present

gestaltCanStartDragInFloatWindow 

Drag Manager allows SetDragImage call

gestaltSetDragImageUpdates 

Drag Manager supports starting a drag in a floating window

◆ anonymous enum

anonymous enum

Desktop Printing Feature Gestalt Use this gestalt to check if third-party printer driver support is available

◆ anonymous enum

anonymous enum

Desktop Printer Info Gestalt Use this gestalt to get a hold of information for all of the active desktop printers

◆ anonymous enum

anonymous enum
Enumerator
gestaltEasyAccessOff 

Easy Access attributes

gestaltEasyAccessOn 

if Easy Access present, but off (no icon)

gestaltEasyAccessSticky 

if Easy Access "On"

gestaltEasyAccessLocked 

if Easy Access "Sticky"

◆ anonymous enum

anonymous enum
Enumerator
gestaltEditionMgrPresent 

Edition Mgr attributes

gestaltEditionMgrTranslationAware 

True if Edition Mgr present

◆ anonymous enum

anonymous enum
Enumerator
gestaltAppleEventsPresent 

Apple Events attributes

gestaltScriptingSupport 

True if Apple Events present

gestaltSupportsApplicationURL 

OSL is in system so don©t use the one linked in to app

◆ anonymous enum

anonymous enum
Enumerator
gestaltFBCindexingSafe 

Find By Content indexing state

gestaltFBCindexingCritical 

any search will result in synchronous wait

◆ anonymous enum

anonymous enum
Enumerator
gestaltFBCCurrentVersion 

Find By Content version

gestaltOSXFBCCurrentVersion 

First release for OS 8/9

◆ anonymous enum

anonymous enum
Enumerator
gestaltFileMappingPresent 

File mapping attributes

gestaltFileMappingMultipleFilesFix 

bit is set if file mapping APIs are present

◆ anonymous enum

anonymous enum
Enumerator
gestaltFloppyIsMFMOnly 

Floppy disk drive/driver attributes

gestaltFloppyIsManualEject 

Floppy driver only supports MFM disk formats

gestaltFloppyUsesDiskInPlace 

Floppy drive, driver, and file system are in manual-eject mode

◆ anonymous enum

anonymous enum
Enumerator
gestaltFinderDropEvent 

Finder attributes

gestaltFinderMagicPlacement 

Finder recognizes drop event

gestaltFinderCallsAEProcess 

Finder supports magic icon placement

gestaltOSLCompliantFinder 

Finder calls AEProcessAppleEvent

gestaltFinderSupports4GBVolumes 

Finder is scriptable and recordable

gestaltFinderHasClippings 

Finder correctly handles 4GB volumes

gestaltFinderFullDragManagerSupport 

Finder supports Drag Manager clipping files

gestaltFinderFloppyRootComments 

Finder accepts 'hfs ' flavors properly

gestaltFinderLargeAndNotSavedFlavorsOK 

in MacOS 8 and later, will be set if Finder ever supports comments on Floppy icons

gestaltFinderUsesExtensibleFolderManager 

in MacOS 8 and later, this bit is set if drags with >1024-byte flavors and flavorNotSaved flavors work reliably

gestaltFinderUnderstandsRedirectedDesktopFolder 

Finder uses Extensible Folder Manager (for example, for Magic Routing)

◆ anonymous enum

anonymous enum
Enumerator
gestaltFindFolderPresent 

Folder Mgr attributes

gestaltFolderDescSupport 

True if Folder Mgr present

gestaltFolderMgrFollowsAliasesWhenResolving 

True if Folder Mgr has FolderDesc calls

gestaltFolderMgrSupportsExtendedCalls 

True if Folder Mgr follows folder aliases

gestaltFolderMgrSupportsDomains 

True if Folder Mgr supports the Extended calls

gestaltFolderMgrSupportsFSCalls 

True if Folder Mgr supports domains for the first parameter to FindFolder

◆ anonymous enum

anonymous enum
Enumerator
gestaltOutlineFonts 

Font Mgr attributes

◆ anonymous enum

anonymous enum
Enumerator
gestaltNoFPU 

fpu type

gestalt68881 

no FPU

gestalt68882 

68881 FPU

gestalt68040FPU 

68882 FPU

◆ anonymous enum

anonymous enum
Enumerator
gestaltFullExtFSDispatching 

file system attributes

gestaltHasFSSpecCalls 

has really cool new HFSDispatch dispatcher

gestaltHasFileSystemManager 

has FSSpec calls

gestaltFSMDoesDynamicLoad 

has a file system manager

gestaltFSSupports4GBVols 

file system manager supports dynamic loading

gestaltFSSupports2TBVols 

file system supports 4 gigabyte volumes

gestaltHasExtendedDiskInit 

file system supports 2 terabyte volumes

gestaltDTMgrSupportsFSM 

has extended Disk Initialization calls

gestaltFSNoMFSVols 

Desktop Manager support FSM-based foreign file systems

gestaltFSSupportsHFSPlusVols 

file system doesn't supports MFS volumes

gestaltFSIncompatibleDFA82 

file system supports HFS Plus volumes

◆ anonymous enum

anonymous enum
Enumerator
gestaltMustUseFCBAccessors 

file system supports HFS Plus APIs

gestaltFSUsesPOSIXPathsForConversion 

FCBSPtr and FSFCBLen are invalid - must use FSM FCB accessor functions

◆ anonymous enum

anonymous enum
Enumerator
gestaltFinderUsesSpecialOpenFoldersFile 

a set of admin flags, mostly useful internally.

◆ anonymous enum

anonymous enum
Enumerator
gestaltFXfrMgrPresent 

file transfer manager attributes

gestaltFXfrMgrErrorString 

supports FTSend and FTReceive

gestaltFXfrMgrAsync 

supports FTGetErrorString

◆ anonymous enum

anonymous enum
Enumerator
gestaltGraphicsIsDebugging 

Quickdraw GX attributes selector

◆ anonymous enum

anonymous enum
Enumerator
gestaltCurrentGraphicsVersion 

Quickdraw GX version selector

◆ anonymous enum

anonymous enum
Enumerator
gestaltHasVIA1 

hardware attributes

gestaltHasVIA2 

VIA1 exists

gestaltHasASC 

VIA2 exists

gestaltHasSCC 

Apple Sound Chip exists

gestaltHasSCSI 

SCC exists

gestaltHasSoftPowerOff 

SCSI exists

gestaltHasSCSI961 

Capable of software power off

gestaltHasSCSI962 

53C96 SCSI controller on internal bus

gestaltHasUniversalROM 

53C96 SCSI controller on external bus

gestaltHasEnhancedLtalk 

Do we have a Universal ROM?

◆ anonymous enum

anonymous enum
Enumerator
gestaltHelpMgrPresent 

Help Mgr Attributes

gestaltHelpMgrExtensions 

true if help mgr is present

gestaltAppleGuideIsDebug 

true if help mgr extensions are installed

◆ anonymous enum

anonymous enum
Enumerator
gestaltHardwareVendorApple 

Returns hardware vendor information

◆ anonymous enum

anonymous enum
Enumerator
gestaltIconUtilitiesPresent 

Icon Utilities attributes (Note: available in System 7.0, despite gestalt)

gestaltIconUtilitiesHas48PixelIcons 

true if icon utilities are present

gestaltIconUtilitiesHas32BitIcons 

true if 48x48 icons are supported by IconUtilities

gestaltIconUtilitiesHas8BitDeepMasks 

true if 32-bit deep icons are supported

gestaltIconUtilitiesHasIconServices 

true if 8-bit deep masks are supported

◆ anonymous enum

anonymous enum

To obtain information about the connected keyboard(s), one should use the ADB Manager API. See Technical Note OV16 for details.

Enumerator
gestaltMacKbd 

keyboard type

gestaltPwrBkExtISOKbd 

Japan Adjustable Keyboard

gestaltPwrBkExtJISKbd 

PowerBook Extended International Keyboard with function keys

gestaltPwrBkExtADBKbd 

PowerBook Extended Japanese Keyboard with function keys

gestaltPS2Keyboard 

PowerBook Extended Domestic Keyboard with function keys

gestaltPwrBkSubDomKbd 

PS2 keyboard

gestaltPwrBkSubISOKbd 

PowerBook Subnote Domestic Keyboard with function keys w/ inverted T

gestaltPwrBkSubJISKbd 

PowerBook Subnote International Keyboard with function keys w/ inverted T

gestaltPwrBkEKDomKbd 

PowerBook Subnote Japanese Keyboard with function keys w/ inverted T

gestaltPwrBkEKISOKbd 

(0xC3) PowerBook Domestic Keyboard with Embedded Keypad, function keys & inverted T

gestaltPwrBkEKJISKbd 

(0xC4) PowerBook International Keyboard with Embedded Keypad, function keys & inverted T

gestaltUSBCosmoANSIKbd 

(0xC5) PowerBook Japanese Keyboard with Embedded Keypad, function keys & inverted T

gestaltUSBCosmoISOKbd 

(0xC6) original USB Domestic (ANSI) Keyboard

gestaltUSBCosmoJISKbd 

(0xC7) original USB International (ISO) Keyboard

gestaltPwrBk99JISKbd 

(0xC8) original USB Japanese (JIS) Keyboard

gestaltUSBAndyANSIKbd 

(0xC9) '99 PowerBook JIS Keyboard with Embedded Keypad, function keys & inverted T

gestaltUSBAndyISOKbd 

(0xCC) USB Pro Keyboard Domestic (ANSI) Keyboard

gestaltUSBAndyJISKbd 

(0xCD) USB Pro Keyboard International (ISO) Keyboard

◆ anonymous enum

anonymous enum

This gestalt indicates the highest UDF version that the active UDF implementation supports. The value should be assembled from a read version (upper word) and a write version (lower word)

◆ anonymous enum

anonymous enum

MACHINE TYPE CONSTANTS NAMING CONVENTION

All future machine type constant names take the following form:

    gestalt<lineName><modelNumber>

Line Names

The following table contains the lines currently produced by Apple and

the lineName substrings associated with them:

     Line                        lineName
     -------------------------   ------------
     Macintosh LC                "MacLC"
     Macintosh Performa          "Performa"
     Macintosh PowerBook         "PowerBook"
     Macintosh PowerBook Duo     "PowerBookDuo"
     Power Macintosh             "PowerMac"
     Apple Workgroup Server      "AWS"

 The following table contains lineNames for some discontinued lines:

     Line                        lineName
     -------------------------   ------------
     Macintosh Quadra            "MacQuadra" (preferred)
                                 "Quadra" (also used, but not preferred)
     Macintosh Centris           "MacCentris"

Model Numbers

The modelNumber is a string representing the specific model of the

machine within its particular line. For example, for the Power Macintosh 8100/80, the modelNumber is "8100".

 Some Performa & LC model numbers contain variations in the rightmost 1

or 2 digits to indicate different RAM and Hard Disk configurations. A single machine type is assigned for all variations of a specific model number. In this case, the modelNumber string consists of the constant leftmost part of the model number with 0s for the variant digits. For example, the Performa 6115 and Performa 6116 are both return the same machine type constant: gestaltPerforma6100.

OLD NAMING CONVENTIONS

The "Underscore Speed" suffix

In the past, Apple differentiated between machines that had the same

model number but different speeds. For example, the Power Macintosh 8100/80 and Power Macintosh 8100/100 return different machine type constants. This is why some existing machine type constant names take the form:

     gestalt<lineName><modelNumber>_<speed>

 e.g.

     gestaltPowerMac8100_110
     gestaltPowerMac7100_80
     gestaltPowerMac7100_66

 It is no longer necessary to use the "underscore speed" suffix. Starting

with the Power Surge machines (Power Macintosh 7200, 7500, 8500 and 9500), speed is no longer used to differentiate between machine types. This is why a Power Macintosh 7200/75 and a Power Macintosh 7200/90 return the same machine type constant: gestaltPowerMac7200.

The "Screen Type" suffix

All PowerBook models prior to the PowerBook 190, and all PowerBook Duo

models before the PowerBook Duo 2300 take the form:

     gestalt<lineName><modelNumber><screenType>

 Where <screenType> is "c" or the empty string.

 e.g.

     gestaltPowerBook100
     gestaltPowerBookDuo280
     gestaltPowerBookDuo280c
     gestaltPowerBook180
     gestaltPowerBook180c

 Starting with the PowerBook 190 series and the PowerBook Duo 2300

series, machine types are no longer differentiated based on screen type. This is why a PowerBook 5300cs/100 and a PowerBook 5300c/100 both return the same machine type constant: gestaltPowerBook5300.

 Macintosh LC 630                gestaltMacLC630
 Macintosh Performa 6200         gestaltPerforma6200
 Macintosh Quadra 700            gestaltQuadra700
 Macintosh PowerBook 5300        gestaltPowerBook5300
 Macintosh PowerBook Duo 2300    gestaltPowerBookDuo2300
 Power Macintosh 8500            gestaltPowerMac8500
Enumerator
gestaltClassic 

machine type

gestaltPowerMacPerforma47x 

Mac LC 475 & PPC Processor Upgrade Card

gestaltPowerMacPerforma57x 

Mac LC 575 & PPC Processor Upgrade Card

gestaltPowerMacLC630 

Quadra 630 & PPC Processor Upgrade Card

gestaltPowerMacPerforma63x 

Mac LC 630 & PPC Processor Upgrade Card

gestaltPowerMac7200 

Performa 63x & PPC Processor Upgrade Card

gestaltPowerMacQuadra900 

Quadra 700 & Power PC Upgrade Card

gestaltPowerMacQuadra950 

Quadra 900 & Power PC Upgrade Card

gestaltPowerMacCentris610 

Quadra 950 & Power PC Upgrade Card

gestaltPowerMacCentris650 

Centris 610 & Power PC Upgrade Card

gestaltPowerMacQuadra610 

Centris 650 & Power PC Upgrade Card

gestaltPowerMacQuadra650 

Quadra 610 & Power PC Upgrade Card

gestaltPowerMacQuadra800 

Quadra 650 & Power PC Upgrade Card

gestaltPowerBookDuo2300 

Quadra 800 & Power PC Upgrade Card

gestaltPowerMacG3 

All NewWorld architecture Macs (iMac, blue G3, etc.)

gestaltPowerMac4400 

slower machine has different machine ID

◆ anonymous enum

anonymous enum
Enumerator
gestaltMBLegacy 

media bay driver type

gestaltMBSingleBay 

media bay support in PCCard 2.0

gestaltMBMultipleBays 

single bay media bay driver

◆ anonymous enum

anonymous enum

Menu Manager Gestalt (Mac OS 8.5 and later)

Enumerator
gestaltMenuMgrPresent 

If this Gestalt exists, the Mac OS 8.5 Menu Manager is installed

gestaltMenuMgrPresentBit 

NOTE: this is a bit mask, whereas all other Gestalt constants of this nature are bit index values. 3.2 interfaces slipped out with this mistake unnoticed. Sincere apologies for any inconvenience.

gestaltMenuMgrAquaLayoutBit 

bit number

gestaltMenuMgrMultipleItemsWithCommandIDBit 

menus have the Aqua 1.0 layout

gestaltMenuMgrRetainsIconRefBit 

CountMenuItemsWithCommandID/GetIndMenuItemWithCommandID support multiple items with the same command ID

gestaltMenuMgrSendsMenuBoundsToDefProcBit 

SetMenuItemIconHandle, when passed an IconRef, calls AcquireIconRef

gestaltMenuMgrPresentMask 

kMenuSizeMsg and kMenuPopUpMsg have menu bounding rect information masks for the above bits

◆ anonymous enum

anonymous enum
Enumerator
gestaltScrollingThrottle 

miscellaneous attributes

gestaltSquareMenuBar 

true if scrolling throttle on

◆ anonymous enum

anonymous enum

The name gestaltMixedModeVersion for the 'mixd' selector is semantically incorrect. The same selector has been renamed gestaltMixedModeAttr to properly reflect the Inside Mac: PowerPC System Software documentation. The gestaltMixedModeVersion symbol has been preserved only for backwards compatibility.

Developers are forewarned that gestaltMixedModeVersion has a limited lifespan and will be removed in a future release of the Interfaces.

For the first version of Mixed Mode, both meanings of the 'mixd' selector are functionally identical. They both return 0x00000001. In subsequent versions of Mixed Mode, however, the 'mixd' selector will not respond with an increasing version number, but rather, with 32 attribute bits with various meanings.

◆ anonymous enum

anonymous enum
Enumerator
gestaltMixedModePowerPC 

returns Mixed Mode attributes

gestaltPowerPCAware 

true if Mixed Mode supports PowerPC ABI calling conventions

gestaltMixedModeCFM68K 

old name for gestaltMixedModePowerPC

gestaltMixedModeCFM68KHasTrap 

true if Mixed Mode supports CFM-68K calling conventions

gestaltMixedModeCFM68KHasState 

true if CFM-68K Mixed Mode implements _MixedModeDispatch (versions 1.0.1 and prior did not)

◆ anonymous enum

anonymous enum
Enumerator
gestaltMemoryMapSparse 

Memory map type

◆ anonymous enum

anonymous enum
Enumerator
gestaltNoMMU 

mmu type

gestaltAMU 

no MMU

gestalt68851 

address management unit

gestalt68030MMU 

68851 PMMU

gestalt68040MMU 

68030 built-in MMU

gestaltEMMU1 

68040 built-in MMU

◆ anonymous enum

anonymous enum
Enumerator
gestaltMPFileManager 

Bitmap of toolbox/OS managers that can be called from MPLibrary MPTasks

gestaltMPDeviceManager 

True if File Manager calls can be made from MPTasks

gestaltMPTrapCalls 

True if synchronous Device Manager calls can be made from MPTasks

◆ anonymous enum

anonymous enum
Enumerator
gestaltStdNBPPresent 

standard nbp attributes

◆ anonymous enum

anonymous enum
Enumerator
gestaltNotificationPresent 

notification manager attributes

◆ anonymous enum

anonymous enum
Enumerator
gestaltOCETB 

OCE Toolbox version

gestaltSFServer 

OCE Toolbox version 1.02

◆ anonymous enum

anonymous enum
Enumerator
gestaltOCETBPresent 

OCE Toolbox attributes

gestaltOCETBAvailable 

OCE toolbox is present, not running

gestaltOCESFServerAvailable 

OCE toolbox is running and available

gestaltOCETBNativeGlueAvailable 

S&F Server is running and available

◆ anonymous enum

anonymous enum
Enumerator
gestaltSysZoneGrowable 

o/s attributes

gestaltLaunchCanReturn 

system heap is growable

gestaltLaunchFullFileSpec 

can return from launch

gestaltLaunchControl 

can launch from full file spec

gestaltTempMemSupport 

launch control support available

gestaltRealTempMemory 

temp memory support

gestaltTempMemTracked 

temp memory handles are real

gestaltIPCSupport 

temporary memory handles are tracked

gestaltSysDebuggerSupport 

IPC support is present

gestaltNativeProcessMgrBit 

system debugger support is present

gestaltAltivecRegistersSwappedCorrectlyBit 

the process manager itself is native

◆ anonymous enum

anonymous enum

***** Open Transport Gestalt

◆ anonymous enum

anonymous enum
Enumerator
gestaltOpenTptPresentMask 

Defined by all versions, response is defined below.

◆ anonymous enum

anonymous enum
Enumerator
gestaltCardServicesPresent 

PC Card attributes

gestaltPCCardFamilyPresent 

PC Card 2.0 (68K) API is present

gestaltPCCardHasPowerControl 

PC Card 3.x (PowerPC) API is present

gestaltPCCardSupportsCardBus 

PCCardSetPowerLevel is supported

◆ anonymous enum

anonymous enum
Enumerator
gestaltPCXHas8and16BitFAT 

PC Exchange attributes

gestaltPCXHasProDOS 

PC Exchange supports both 8 and 16 bit FATs

gestaltPCXNewUI 

PC Exchange supports ProDOS

◆ anonymous enum

anonymous enum

System 7.6 and later. If gestaltScreenCaptureMain is not implemented, PictWhap proceeds with screen capture in the usual way.

The high word of gestaltScreenCaptureMain is reserved (use 0).

To disable screen capture to disk, put zero in the low word. To specify a folder for captured pictures, put the vRefNum in the low word of gestaltScreenCaptureMain, and put the directory ID in gestaltScreenCaptureDir.

Enumerator
gestaltScreenCaptureDir 

Zero, or vRefNum of disk to hold picture

◆ anonymous enum

anonymous enum
Enumerator
gestaltPopupPresent 

popup cdef attributes

◆ anonymous enum

anonymous enum
Enumerator
gestaltPMgrExists 

power manager attributes

◆ anonymous enum

anonymous enum

PPC will return the combination of following bit fields. e.g. gestaltPPCSupportsRealTime +gestaltPPCSupportsIncoming + gestaltPPCSupportsOutGoing indicates PPC is cuurently is only supports real time delivery and both incoming and outgoing network sessions are allowed. By default local real time delivery is supported as long as PPCInit has been called.

Enumerator
gestaltPPCToolboxPresent 

PPC toolbox attributes

gestaltPPCSupportsRealTime 

PPC Toolbox is present Requires PPCInit to be called

gestaltPPCSupportsIncoming 

PPC Supports real-time delivery

gestaltPPCSupportsOutGoing 

PPC will allow incoming network requests

gestaltPPCSupportsTCP_IP 

PPC will allow outgoing network requests

gestaltPPCSupportsIncomingAppleTalk 

PPC supports TCP/IP transport

◆ anonymous enum

anonymous enum
Enumerator
gestaltPowerPCHasGraphicsInstructions 

Optional PowerPC processor features

gestaltPowerPCHasSTFIWXInstruction 

has fres, frsqrte, and fsel instructions

gestaltPowerPCHasSquareRootInstructions 

has stfiwx instruction

gestaltPowerPCHasDCBAInstruction 

has fsqrt and fsqrts instructions

gestaltPowerPCHasVectorInstructions 

has dcba instruction

gestaltPowerPCHasDataStreams 

has vector instructions

◆ anonymous enum

anonymous enum
Enumerator
gestalt68000 

processor type

◆ anonymous enum

anonymous enum
Enumerator
gestaltHasParityCapability 

parity attributes

gestaltParityEnabled 

has ability to check parity

◆ anonymous enum

anonymous enum
Enumerator
gestaltQD3DViewerPresent 

Quickdraw 3D viewer attributes

◆ anonymous enum

anonymous enum

OLDROUTINENAMES

Enumerator
gestaltOriginalQD 

quickdraw version

gestalt8BitQD 

original 1-bit QD

gestalt32BitQD 

8-bit color QD

gestalt32BitQD11 

32-bit color QD

gestalt32BitQD12 

32-bit color QDv1.1

gestalt32BitQD13 

32-bit color QDv1.2

gestaltAllegroQD 

32-bit color QDv1.3

gestaltMacOSXQD 

Allegro QD OS 8.5

◆ anonymous enum

anonymous enum
Enumerator
gestaltQD3DPresent 

Quickdraw 3D attributes

◆ anonymous enum

anonymous enum

OLDROUTINENAMES

◆ anonymous enum

anonymous enum
Enumerator
gestaltHasColor 

quickdraw features

gestaltHasDeepGWorlds 

color quickdraw present

gestaltHasDirectPixMaps 

GWorlds can be deeper than 1-bit

gestaltHasGrayishTextOr 

PixMaps can be direct (16 or 32 bit)

gestaltSupportsMirroring 

supports text mode grayishTextOr

gestaltQDHasLongRowBytes 

Supports video mirroring via the Display Manager.

◆ anonymous enum

anonymous enum
Enumerator
gestaltOriginalQDText 

QuickdrawText version

gestaltAllegroQDText 

up to and including 8.1

gestaltMacOSXQDText 

starting with 8.5

◆ anonymous enum

anonymous enum
Enumerator
gestaltWSIISupport 

QuickdrawText features

gestaltSbitFontSupport 

bit 0: WSII support included

gestaltAntiAliasedTextAvailable 

sbit-only fonts supported

gestaltOFA2available 

capable of antialiased text

gestaltCreatesAliasFontRsrc 

OFA2 available

gestaltNativeType1FontSupport 

"real" datafork font support

◆ anonymous enum

anonymous enum
Enumerator
gestaltQuickTime 

returns version of QuickTime

◆ anonymous enum

anonymous enum
Enumerator
gestaltQTVRMgrPresent 

QuickTime VR attributes

gestaltQTVRObjMoviesPresent 

QTVR API is present

gestaltQTVRCylinderPanosPresent 

QTVR runtime knows about object movies

gestaltQTVRCubicPanosPresent 

QTVR runtime knows about cylindrical panoramic movies

◆ anonymous enum

anonymous enum
Enumerator
gestaltPartialRsrcs 

Resource Mgr attributes

gestaltHasResourceOverrides 

True if partial resources exist

◆ anonymous enum

anonymous enum
Enumerator
gestaltRMForceSysHeapRolledIn 

Resource Mgr bug fixes

gestaltSupportsFSpResourceFileAlreadyOpenBit 

Resource manager does sanity checking on resource files before opening them

gestaltRMSupportsFSCalls 

The resource manager supports GetResFileRefNum and FSpGetResFileRefNum and FSpResourceFileAlreadyOpen

gestaltRMTypeIndexOrderingReverse 

The resource manager supports OpenResFileFSRef, CreateResFileFSRef and ResourceFileAlreadyOpenFSRef

◆ anonymous enum

anonymous enum
Enumerator
gestaltRealtimeMgrPresent 

Realtime manager attributes

◆ anonymous enum

anonymous enum
Enumerator
gestaltScrapMgrTranslationAware 

Scrap Manager attributes

◆ anonymous enum

anonymous enum
Enumerator
gestaltAsyncSCSI 

SCSI Manager attributes

gestaltAsyncSCSIINROM 

Supports Asynchronous SCSI

gestaltSCSISlotBoot 

Async scsi is in ROM (available for booting)

gestaltSCSIPollSIH 

ROM supports Slot-style PRAM for SCSI boots (PDM and later)

◆ anonymous enum

anonymous enum
Enumerator
gestaltControlStripExists 

Control Strip attributes

gestaltControlStripVersionFixed 

Control Strip is installed

gestaltControlStripUserFont 

Control Strip version Gestalt selector was fixed

gestaltControlStripUserHotKey 

supports user-selectable font/size

◆ anonymous enum

anonymous enum
Enumerator
gestaltHasGPIaToDCDa 

Serial attributes

gestaltHasGPIaToRTxCa 

GPIa connected to DCDa

gestaltHasGPIbToDCDb 

GPIa connected to RTxCa clock input

gestaltHidePortA 

GPIb connected to DCDb

gestaltHidePortB 

Modem port (A) should be hidden from users

gestaltPortADisabled 

Printer port (B) should be hidden from users

gestaltPortBDisabled 

Modem port (A) disabled and should not be used by SW

◆ anonymous enum

anonymous enum
Enumerator
gestaltShutdownHassdOnBootVolUnmount 

ShutDown Manager Attributes

◆ anonymous enum

anonymous enum
Enumerator
gestaltSlotMgrExists 

slot attributes

gestaltNuBusPresent 

true is slot mgr exists

gestaltSESlotPresent 

NuBus slots are present

gestaltSE30SlotPresent 

SE PDS slot present

gestaltPortableSlotPresent 

SE/30 slot present

◆ anonymous enum

anonymous enum
Enumerator
gestaltStereoCapability 

sound attributes

gestaltStereoMixing 

sound hardware has stereo capability

gestaltSoundIOMgrPresent 

stereo mixing on external speaker

gestaltBuiltInSoundInput 

The Sound I/O Manager is present

gestaltHasSoundInputDevice 

built-in Sound Input hardware is present

gestaltPlayAndRecord 

Sound Input device available

gestalt16BitSoundIO 

built-in hardware can play and record simultaneously

gestaltStereoInput 

sound hardware can play and record 16-bit samples

gestaltLineLevelInput 

sound hardware can record stereo

gestaltSndPlayDoubleBuffer 

sound input port requires line level the following bits are not defined prior to Sound Mgr 3.0

gestaltMultiChannels 

SndPlayDoubleBuffer available, set by Sound Mgr 3.0 and later

gestalt16BitAudioSupport 

multiple channel support, set by Sound Mgr 3.0 and later

◆ anonymous enum

anonymous enum
Enumerator
gestaltSplitOSAware 

the boot disk is a network 'disk', from the .LANDisk drive.

gestaltSplitOSEnablerVolumeIsDifferentFromBootVolume 

the system includes the code to deal with a split os situation.

gestaltSplitOSMachineNameSetToNetworkNameTemp 

the active enabler is on a different volume than the system file.

gestaltSplitOSMachineNameStartupDiskIsNonPersistent 

The machine name was set to the value given us from the BootP server

◆ anonymous enum

anonymous enum
Enumerator
gestaltDesktopSpeechRecognition 

speech recognition attributes

gestaltTelephoneSpeechRecognition 

recognition thru the desktop microphone is available

◆ anonymous enum

anonymous enum
Enumerator
gestaltSoftwareVendorApple 

Returns system software vendor information

gestaltSoftwareVendorLicensee 

System software sold by Apple

◆ anonymous enum

anonymous enum
Enumerator
gestaltStandardFile58 

Standard File attributes

gestaltStandardFileTranslationAware 

True if selectors 5-8 (StandardPutFile-CustomGetFile) are supported

gestaltStandardFileHasColorIcons 

True if standard file is translation manager aware

gestaltStandardFileUseGenericIcons 

True if standard file has 16x16 color icons

gestaltStandardFileHasDynamicVolumeAllocation 

Standard file LDEF to use only the system generic icons if true

◆ anonymous enum

anonymous enum
Enumerator
gestalt68k 

Native System Architecture

gestaltPowerPC 

Motorola MC68k architecture

◆ anonymous enum

anonymous enum
Enumerator
gestaltTE1 

TextEdit version number

gestaltTE2 

TextEdit in MacIIci ROM

gestaltTE3 

TextEdit with 6.0.4 Script Systems on MacIIci (Script bug fixes for MacIIci)

gestaltTE4 

TextEdit with 6.0.4 Script Systems all but MacIIci

gestaltTE5 

TextEdit in System 7.0

◆ anonymous enum

anonymous enum
Enumerator
gestaltTEHasGetHiliteRgn 

TextEdit attributes

gestaltTESupportsInlineInput 

TextEdit has TEGetHiliteRgn

gestaltTESupportsTextObjects 

TextEdit does Inline Input

gestaltTEHasWhiteBackground 

TextEdit does Text Objects

◆ anonymous enum

anonymous enum
Enumerator
gestaltTeleMgrPresent 

Telephone manager attributes

◆ anonymous enum

anonymous enum
Enumerator
gestaltTermMgrPresent 

terminal mgr attributes

◆ anonymous enum

anonymous enum
Enumerator
gestaltThreadMgrPresent 

Thread Manager attributes

gestaltSpecificMatchSupport 

bit true if Thread Mgr is present

gestaltThreadsLibraryPresent 

bit true if Thread Mgr supports exact match creation option

◆ anonymous enum

anonymous enum
Enumerator
gestaltStandardTimeMgr 

time mgr version

gestaltRevisedTimeMgr 

standard time mgr is present

gestaltExtendedTimeMgr 

revised time mgr is present

gestaltNativeTimeMgr 

extended time mgr is present

◆ anonymous enum

anonymous enum
Enumerator
gestaltTSMTE15 

Original version of TSMTE

gestaltTSMTE152 

System 8.0

◆ anonymous enum

anonymous enum
Enumerator
gestaltAVLTreePresentBit 

AVLTree utility routines attributes.

gestaltAVLTreeSupportsHandleBasedTreeBit 

if set, then the AVL Tree routines are available.

gestaltAVLTreeSupportsTreeLockingBit 

if set, then the AVL Tree routines can store tree data in a single handle

◆ anonymous enum

anonymous enum
Enumerator
gestaltALMPresent 

Settings Manager attributes (see also gestaltALMVers)

gestaltALMHasSFGroup 

bit true if ALM is available

gestaltALMHasCFMSupport 

bit true if Put/Get/Merge Group calls are implmented

gestaltALMHasRescanNotifiers 

bit true if CFM-based modules are supported

◆ anonymous enum

anonymous enum
Enumerator
gestaltTSMgr15 

Text Services Mgr version, if present

◆ anonymous enum

anonymous enum
Enumerator
gestaltTSMDisplayMgrAwareBit 

Text Services Mgr attributes, if present

gestaltTSMdoesTSMTEBit 

TSM knows about display manager

◆ anonymous enum

anonymous enum
Enumerator
gestaltSpeechMgrPresent 

Speech Manager attributes

gestaltSpeechHasPPCGlue 

bit set indicates that Speech Manager exists

◆ anonymous enum

anonymous enum
Enumerator
gestaltHasTVTuner 

TV version

gestaltHasSoundFader 

supports Philips FL1236F video tuner

gestaltHasHWClosedCaptioning 

supports Philips TEA6330 Sound Fader chip

gestaltHasIRRemote 

supports Philips SAA5252 Closed Captioning

gestaltHasVidDecoderScaler 

supports CyclopsII Infra Red Remote control

gestaltHasStereoDecoder 

supports Philips SAA7194 Video Decoder/Scaler

gestaltHasSerialFader 

supports Sony SBX1637A-01 stereo decoder

gestaltHasFMTuner 

has fader audio in serial with system audio

gestaltHasSystemIRFunction 

has FM Tuner from donnybrook card

gestaltIRDisabled 

Infra Red button function is set up by system and not by Video Startup

gestaltINeedIRPowerOffConfirm 

Infra Red remote is not disabled.

gestaltHasZoomedVideo 

Need IR power off confirm dialog.

◆ anonymous enum

anonymous enum
Enumerator
gestaltATSUUpdate1 

ATSUI version 1.0

gestaltATSUUpdate2 

ATSUI version 1.1

gestaltATSUUpdate3 

ATSUI version 1.2

gestaltATSUUpdate4 

ATSUI version 2.0

gestaltATSUUpdate5 

ATSUI version in Mac OS X - SoftwareUpdate 1-4 for Mac OS 10.0.1 - 10.0.4

◆ anonymous enum

anonymous enum
Enumerator
gestaltATSUMemoryFeature 

feature introduced in ATSUI version 1.1

gestaltATSUFallbacksFeature 

feature introduced in ATSUI version 1.1

gestaltATSUGlyphBoundsFeature 

feature introduced in ATSUI version 1.1

gestaltATSULineControlFeature 

feature introduced in ATSUI version 1.1

gestaltATSULayoutCreateAndCopyFeature 

feature introduced in ATSUI version 1.1

gestaltATSULayoutCacheClearFeature 

feature introduced in ATSUI version 1.1

gestaltATSUTextLocatorUsageFeature 

feature introduced in ATSUI version 1.1

gestaltATSULowLevelOrigFeatures 

feature introduced in ATSUI version 1.2

gestaltATSUFallbacksObjFeatures 

first low-level features introduced in ATSUI version 2.0

gestaltATSUIgnoreLeadingFeature 

feature introduced - ATSUFontFallbacks objects introduced in ATSUI version 2.3

◆ anonymous enum

anonymous enum
Enumerator
gestaltUSBPresent 

USB Attributes

gestaltUSBHasIsoch 

USB Support available

◆ anonymous enum

anonymous enum
Enumerator
gestaltValueImplementedVers 

gestalt version

◆ anonymous enum

anonymous enum
Enumerator
gestaltVMPresent 

virtual memory attributes

gestaltVMHasLockMemoryForOutput 

true if virtual memory is present

gestaltVMFilemappingOn 

true if LockMemoryForOutput is available

gestaltVMHasPagingControl 

true if filemapping is available

◆ anonymous enum

anonymous enum
Enumerator
gestaltVMInfoSizeStorageType 

Indicates how the Finder should display information about VM in the Finder about box.

gestaltVMInfoSizeType 

Display VM on/off, backing store size and name

gestaltVMInfoSimpleType 

Display whether VM is on or off and the size of the backing store

gestaltVMInfoNoneType 

Display whether VM is on or off

◆ anonymous enum

anonymous enum
Enumerator
gestaltWindowMgrPresent 

If this Gestalt exists, the Mac OS 8.5 Window Manager is installed

gestaltWindowMgrPresentBit 

NOTE: this is a bit mask, whereas all other Gestalt constants of this type are bit index values. Universal Interfaces 3.2 slipped out the door with this mistake.

gestaltExtendedWindowAttributes 

bit number

gestaltExtendedWindowAttributesBit 

Has ChangeWindowAttributes; GetWindowAttributes works for all windows

gestaltHasFloatingWindows 

Has ChangeWindowAttributes; GetWindowAttributes works for all windows

gestaltHasFloatingWindowsBit 

Floating window APIs work

gestaltHasWindowBuffering 

Floating window APIs work

gestaltHasWindowBufferingBit 

This system has buffering available

gestaltWindowLiveResizeBit 

This system has buffering available

gestaltWindowMinimizeToDockBit 

live resizing of windows is available

gestaltHasWindowShadowsBit 

windows minimize to the dock and do not windowshade (Mac OS X)

gestaltSheetsAreWindowModalBit 

windows have shadows

gestaltWindowMgrPresentMask 

sheet windows are modal only to their parent window masks for the above bits

◆ anonymous enum

anonymous enum

TARGET_OS_WIN32

Enumerator
gestaltTranslationMgrExists 

Translation Manager attributes

gestaltTranslationMgrHintOrder 

True if translation manager exists

gestaltTranslationPPCAvail 

True if hint order reversal in effect

◆ anonymous enum

anonymous enum
Enumerator
gestaltUSBPrinterSharingVersionMask 

USB Printer Sharing Version

gestaltUSBPrinterSharingAttr 

mask for bits in version

gestaltUSBPrinterSharingAttrMask 

USB Printer Sharing Attributes

gestaltUSBPrinterSharingAttrRunning 

mask for attribute bits

gestaltUSBPrinterSharingAttrBooted 

printer sharing is running

◆ anonymous enum

anonymous enum

WorldScript settings;

Function Documentation

◆ DeleteGestaltValue()

OSErr DeleteGestaltValue ( OSType  selector)

DeleteGestaltValue()

Non-Carbon CFM: in InterfaceLib 7.5 and later
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ DisposeSelectorFunctionUPP()

void DisposeSelectorFunctionUPP ( SelectorFunctionUPP  userUPP)

DisposeSelectorFunctionUPP()

Non-Carbon CFM: available as macro/inline
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ Gestalt()

OSErr Gestalt ( OSType  selector,
long *  response 
)

Get information about the operating environment.

OSType selector ;Gestalt selector code
long *response ;4-byte return result
returns Error Code ; 0=no error
Gestalt provides your application with information about specific hardware
and software features.
selector is either a predefined code or an application-defined code
requesting information on a specific hardware or software feature
(see Using the Gestalt Manager for a list of selector codes).
response is the return value that provides the requested
information. Gestalt must already recognize the selector parameter
in order to return a response.
Returns
an operating system Error Code .
It will be one of:
noErr(0) No error
gestaltUnknown (-5550) Could not obtain the response
gestaltUndefSelectorErr (-5551) Undefined selector
Note
Gestalt returns the results from all function selectors in a 4-byte long
integer. Where not all 4 bytes are needed, the result is expressed in the
low-order bytes.
Being passed a predefined selector code doesn't cause Gestalt to move or
purge memory and therefore may be called even at interrupt time.
However, application-defined selector codes may move or purge memory
and applications can alter Gestalt's predefined selector functions. Given
all of that, you should always assume that Gestalt might always move or
purge memory.
THINK C 5.0 or later, THINK Pascal 4.0 or later and MPW 3.2 or later
contain glue that make it possible to call Gestalt under System versions
which do not support Gestalt (earlier than System 6.0.4). When possible,
the glue will call other traps in order to obtain the information requested.
If the selector is not available, a gestaltUndefSelectorErr will be returned.
Note that if you are programming in assembly language, this glue is not
provided. The following selectors are made available by this glue:
gestaltVersion
gestaltMachineType
gestaltSystemVersion
gestaltProcessorType
gestaltFPUType
gestaltQuickdrawVersion
gestaltKeyboardType
gestaltAppleTalkVersion
gestaltMMUType
Copyright: THINK Reference © 1991-1992 Symantec Corporation
Non-Carbon CFM: in InterfaceLib 7.1 and later
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ InvokeSelectorFunctionUPP()

OSErr InvokeSelectorFunctionUPP ( OSType  selector,
long *  response,
SelectorFunctionUPP  userUPP 
)

InvokeSelectorFunctionUPP()

Non-Carbon CFM: available as macro/inline
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ NewGestalt()

OSErr NewGestalt ( OSType  selector,
SelectorFunctionUPP  gestaltFunction 
)

NewGestalt()

Non-Carbon CFM: in InterfaceLib 7.1 and later
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ NewGestaltValue()

OSErr NewGestaltValue ( OSType  selector,
long  newValue 
)

The GestaltValue functions are available in System 7.5 and later NewGestaltValue()

Non-Carbon CFM: in InterfaceLib 7.5 and later
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ NewSelectorFunctionUPP()

SelectorFunctionUPP NewSelectorFunctionUPP ( SelectorFunctionProcPtr  userRoutine)

NewSelectorFunctionUPP()

Non-Carbon CFM: available as macro/inline
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ ReplaceGestalt()

OSErr ReplaceGestalt ( OSType  selector,
SelectorFunctionUPP  gestaltFunction,
SelectorFunctionUPP *  oldGestaltFunction 
)

ReplaceGestalt()

Non-Carbon CFM: in InterfaceLib 7.1 and later
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ ReplaceGestaltValue()

OSErr ReplaceGestaltValue ( OSType  selector,
long  replacementValue 
)

ReplaceGestaltValue()

Non-Carbon CFM: in InterfaceLib 7.5 and later
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later

◆ SetGestaltValue()

OSErr SetGestaltValue ( OSType  selector,
long  newValue 
)

SetGestaltValue()

Non-Carbon CFM: in InterfaceLib 7.5 and later
Carbon Lib: in CarbonLib 1.0 and later
Mac OS X: in version 10.0 and later