home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Beta / Quicktime 2.0 Beta.iso / Programming Stuff / Interfaces / Universal Interfaces / GestaltEqu.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-03-09  |  17.4 KB  |  494 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        GestaltEqu.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __GESTALTEQU__
  13. #define __GESTALTEQU__
  14.  
  15. #ifndef __TYPES__
  16. #include <Types.h>
  17. /*    #include <ConditionalMacros.h>                                */
  18. /*    #include <MixedMode.h>                                        */
  19. /*        #include <Traps.h>                                        */
  20. #endif
  21.  
  22. #define gestaltVersion 'vers'
  23.  
  24. #define gestaltAddressingModeAttr 'addr'
  25.  
  26. #define gestaltAliasMgrAttr 'alis'
  27.  
  28. #define gestaltAppleTalkVersion 'atlk'
  29.  
  30. #define gestaltAUXVersion 'a/ux'
  31.  
  32. #define gestaltCloseViewAttr 'BSDa'
  33.  
  34. #define gestaltConnMgrAttr 'conn'
  35.  
  36. #define gestaltComponentMgr 'cpnt'
  37.  
  38. #define gestaltTSMgrVersion 'tsmv'
  39.  
  40. #define gestaltNativeCPUtype 'cput'
  41.  
  42. #define gestaltCRMAttr 'crm '
  43.  
  44. #define gestaltCTBVersion 'ctbv'
  45.  
  46. #define gestaltDBAccessMgrAttr 'dbac'
  47.  
  48. #define gestaltDITLExtAttr 'ditl'
  49.  
  50. #define gestaltDisplayMgrAttr 'dply'
  51.  
  52. #define gestaltDisplayMgrVers 'dplv'
  53.  
  54. #define gestaltEasyAccessAttr 'easy'
  55.  
  56. enum  {
  57. /**************************
  58.  *    Environment Selectors
  59.  **************************/
  60.     gestalt32BitAddressing        = 0,                            /* using 32-bit addressing mode */
  61.     gestalt32BitSysZone            = 1,                            /* 32-bit compatible system zone */
  62.     gestalt32BitCapable            = 2,                            /* Machine is 32-bit capable */
  63.     gestaltAliasMgrPresent        = 0,                            /* True if the Alias Mgr is present */
  64.     gestaltAliasMgrSupportsRemoteAppletalk = 1,                    /* True if the Alias Mgr knows about Remote Appletalk */
  65.     gestaltCloseViewEnabled        = 0,                            /* Closeview enabled (dynamic bit - returns current state) */
  66.     gestaltCloseViewDisplayMgrFriendly = 1,                        /* Closeview compatible with Display Manager (FUTURE) */
  67.     gestaltConnMgrPresent        = 0,
  68.     gestaltConnMgrCMSearchFix    = 1,                            /* Fix to CMAddSearch?     */
  69.     gestaltConnMgrErrorString    = 2,                            /* has CMGetErrorString() */
  70.     gestaltConnMgrMultiAsyncIO    = 3,                            /* CMNewIOPB, CMDisposeIOPB, CMPBRead, CMPBWrite, CMPBIOKill */
  71. /* Motorola Architecture */
  72.     gestaltCPU68000                = 0x000,                        /* Various 68k CPUs...    */
  73.     gestaltCPU68010                = 0x001,
  74.     gestaltCPU68020                = 0x002,
  75.     gestaltCPU68030                = 0x003,
  76.     gestaltCPU68040                = 0x004,
  77. /* PowerPC Architecture */
  78.     gestaltCPU601                = 0x101,                        /* IBM 601                                                         */
  79.     gestaltCPU603                = 0x103,
  80.     gestaltCPU604                = 0x104,
  81.     gestaltCRMPresent            = 0,
  82.     gestaltCRMPersistentFix        = 1,                            /* fix for persistent tools */
  83.     gestaltCRMToolRsrcCalls        = 2,                            /* has CRMGetToolResource/ReleaseToolResource */
  84.     gestaltDBAccessMgrPresent    = 0,                            /* True if Database Access Mgr present */
  85.     gestaltDITLExtPresent        = 0,                            /* True if calls are present */
  86.     gestaltDisplayMgrPresent    = 0,                            /* True if Display Mgr is present */
  87.     gestaltEasyAccessOff        = 0,                            /* if Easy Access present, but off (no icon) */
  88.     gestaltEasyAccessOn            = 1                                /* if Easy Access "On" */
  89. };
  90.  
  91. #define gestaltEditionMgrAttr 'edtn'
  92.  
  93. #define gestaltAppleEventsAttr 'evnt'
  94.  
  95. #define gestaltFinderAttr 'fndr'
  96.  
  97. #define gestaltFindFolderAttr 'fold'
  98.  
  99. #define gestaltFontMgrAttr 'font'
  100.  
  101. #define gestaltFPUType 'fpu '
  102.  
  103. #define gestaltFSAttr 'fs  '
  104.  
  105. #define gestaltFXfrMgrAttr 'fxfr'
  106.  
  107. #define gestaltHardwareAttr 'hdwr'
  108.  
  109. enum  {
  110.     gestaltEasyAccessSticky        = 2,                            /* if Easy Access "Sticky" */
  111.     gestaltEasyAccessLocked        = 3,                            /* if Easy Access "Locked" */
  112.     gestaltEditionMgrPresent    = 0,                            /* True if Edition Mgr present */
  113.     gestaltEditionMgrTranslationAware = 1,                        /* True if edition manager is translation manager aware */
  114.     gestaltAppleEventsPresent    = 0,                            /* True if Apple Events present */
  115.     gestaltScriptingSupport        = 1,
  116.     gestaltOSLInSystem            = 2,                            /* OSL is in system so don’t use the one linked in to app */
  117.     gestaltFinderDropEvent        = 0,                            /* Finder recognizes drop event */
  118.     gestaltFinderMagicPlacement    = 1,                            /* Finder supports magic icon placement */
  119.     gestaltFinderCallsAEProcess    = 2,                            /* Finder calls AEProcessAppleEvent */
  120.     gestaltOSLCompliantFinder    = 3,                            /* Finder is scriptable and recordable */
  121.     gestaltFinderSupports4GBVolumes = 4,                        /* Finder correctly handles 4GB volumes */
  122.     gestaltFindFolderPresent    = 0,                            /* True if Folder Mgr present */
  123.     gestaltOutlineFonts            = 0,                            /* True if Outline Fonts supported */
  124.     gestaltNoFPU                = 0,                            /* no FPU */
  125.     gestalt68881                = 1,                            /* 68881 FPU */
  126.     gestalt68882                = 2,                            /* 68882 FPU */
  127.     gestalt68040FPU                = 3,                            /* 68040 built-in FPU */
  128.     gestaltFullExtFSDispatching    = 0,                            /* has really cool new HFSDispatch dispatcher */
  129.     gestaltHasFSSpecCalls        = 1,                            /* has FSSpec calls    */
  130.     gestaltHasFileSystemManager    = 2,                            /* has a file system manager */
  131.     gestaltFXfrMgrPresent        = 0,
  132.     gestaltFXfrMgrMultiFile        = 1,                            /* supports FTSend and FTReceive */
  133.     gestaltFXfrMgrErrorString    = 2,                            /* supports FTGetErrorString */
  134.     gestaltHasVIA1                = 0,                            /* VIA1 exists */
  135.     gestaltHasVIA2                = 1,                            /* VIA2 exists */
  136.     gestaltHasASC                = 3,                            /* Apple Sound Chip exists */
  137.     gestaltHasSCC                = 4                                /* SCC exists */
  138. };
  139.  
  140. #define gestaltHelpMgrAttr 'help'
  141.  
  142. #define gestaltKeyboardType 'kbd '
  143.  
  144. #define gestaltLowMemorySize 'lmem'
  145.  
  146. #define gestaltLogicalRAMSize 'lram'
  147.  
  148. #define gestaltMiscAttr 'misc'
  149.  
  150. enum  {
  151.     gestaltHasSCSI                = 7,                            /* SCSI exists */
  152.     gestaltHasSoftPowerOff        = 19,                            /* Capable of software power off */
  153.     gestaltHasSCSI961            = 21,                            /* 53C96 SCSI controller on internal bus */
  154.     gestaltHasSCSI962            = 22,                            /* 53C96 SCSI controller on external bus */
  155.     gestaltHasUniversalROM        = 24,                            /* Do we have a Universal ROM? */
  156.     gestaltHelpMgrPresent        = 0,                            /* true if help mgr is present */
  157.     gestaltHelpMgrExtensions    = 1,                            /* true if help mgr extensions are installed */
  158.     gestaltMacKbd                = 1,
  159.     gestaltMacAndPad            = 2,
  160.     gestaltMacPlusKbd            = 3,
  161.     gestaltExtADBKbd            = 4,
  162.     gestaltStdADBKbd            = 5,
  163.     gestaltPrtblADBKbd            = 6,
  164.     gestaltPrtblISOKbd            = 7,
  165.     gestaltStdISOADBKbd            = 8,
  166.     gestaltExtISOADBKbd            = 9,
  167.     gestaltADBKbdII                = 10,
  168.     gestaltADBISOKbdII            = 11,
  169.     gestaltPwrBookADBKbd        = 12,
  170.     gestaltPwrBookISOADBKbd        = 13,
  171.     gestaltAppleAdjustKeypad    = 14,                            /*<70>*/
  172.     gestaltAppleAdjustADBKbd    = 15,                            /*<70>*/
  173.     gestaltAppleAdjustISOKbd    = 16,                            /*<70>*/
  174.     gestaltScrollingThrottle    = 0,                            /* true if scrolling throttle on */
  175.     gestaltSquareMenuBar        = 2                                /* true if menu bar is square */
  176. };
  177.  
  178. #define gestaltMMUType 'mmu '
  179.  
  180. #define gestaltStdNBPAttr 'nlup'
  181.  
  182. #define gestaltNotificationMgrAttr 'nmgr'
  183.  
  184. #define gestaltNuBusConnectors 'sltc'
  185.  
  186. #define gestaltNuBusSlotCount 'nubs'
  187.  
  188. #define gestaltOSAttr 'os  '
  189.  
  190. #define gestaltOSTable 'ostt'
  191.  
  192. #define gestaltToolboxTable 'tbtt'
  193.  
  194. #define gestaltExtToolboxTable 'xttt'
  195.  
  196. #define gestaltPCXAttr 'pcxg'
  197.  
  198. #define gestaltLogicalPageSize 'pgsz'
  199.  
  200. #define gestaltPowerMgrAttr 'powr'
  201.  
  202. enum  {
  203.     gestaltNoMMU                = 0,                            /* no MMU */
  204.     gestaltAMU                    = 1,                            /* address management unit */
  205.     gestalt68851                = 2,                            /* 68851 PMMU */
  206.     gestalt68030MMU                = 3,                            /* 68030 built-in MMU */
  207.     gestalt68040MMU                = 4,                            /* 68040 built-in MMU */
  208.     gestaltEMMU1                = 5,                            /* Emulated MMU type 1  <SM13> */
  209.     gestaltStdNBPPresent        = 0,
  210.     gestaltNotificationPresent    = 0,                            /* notification manager exists */
  211.     gestaltSysZoneGrowable        = 0,                            /* system heap is growable */
  212.     gestaltLaunchCanReturn        = 1,                            /* can return from launch */
  213.     gestaltLaunchFullFileSpec    = 2,                            /* can launch from full file spec */
  214.     gestaltLaunchControl        = 3,                            /* launch control support available */
  215.     gestaltTempMemSupport        = 4,                            /* temp memory support */
  216.     gestaltRealTempMemory        = 5,                            /* temp memory handles are real */
  217.     gestaltTempMemTracked        = 6,                            /* temporary memory handles are tracked */
  218.     gestaltIPCSupport            = 7,                            /* IPC support is present */
  219.     gestaltSysDebuggerSupport    = 8,                            /* system debugger support is present */
  220. /* gestaltSkiaGlobalsSwitched is #9. I don't know why it is not here */
  221.     gestaltBgndMouseDownSupport    = 10,                            /* Background mouse down support is present */
  222.     gestaltPCXHas8and16BitFAT    = 0,                            /* PC Exchange supports both 8 and 16 bit FATs */
  223.     gestaltPCXHasProDOS            = 1,                            /* PC Exchange supports ProDOS */
  224.     gestaltPMgrExists            = 0,
  225.     gestaltPMgrCPUIdle            = 1,
  226.     gestaltPMgrSCC                = 2,
  227.     gestaltPMgrSound            = 3
  228. };
  229.  
  230. #define gestaltPPCToolboxAttr 'ppc '
  231.  
  232. #define gestaltProcessorType 'proc'
  233.  
  234. #define gestaltParityAttr 'prty'
  235.  
  236. #define gestaltQuickdrawVersion 'qd  '
  237.  
  238. #define gestaltQuickdrawFeatures 'qdrw'
  239.  
  240. enum  {
  241. /*
  242.  * PPC will return the combination of following bit fields.
  243.  * e.g. gestaltPPCSupportsRealTime +gestaltPPCSupportsIncoming + gestaltPPCSupportsOutGoing
  244.  * indicates PPC is cuurently is only supports real time delivery
  245.  * and both incoming and outgoing network sessions are allowed.
  246.  * By default local real time delivery is supported as long as PPCInit has been called.*/
  247.     gestaltPPCToolboxPresent    = 0x0000,                        /* PPC Toolbox is present  Requires PPCInit to be called */
  248.     gestaltPPCSupportsRealTime    = 0x1000,                        /* PPC Supports real-time delivery */
  249.     gestaltPPCSupportsIncoming    = 0x0001,                        /* PPC will deny incoming network requests */
  250.     gestaltPPCSupportsOutGoing    = 0x0002,                        /* PPC will deny outgoing network requests */
  251.     gestalt68000                = 1,
  252.     gestalt68010                = 2,
  253.     gestalt68020                = 3,
  254.     gestalt68030                = 4,
  255.     gestalt68040                = 5,
  256.     gestaltHasParityCapability    = 0,                            /* has ability to check parity */
  257.     gestaltParityEnabled        = 1,                            /* parity checking enabled */
  258.     gestaltOriginalQD            = 0x000,                        /* original 1-bit QD */
  259.     gestalt8BitQD                = 0x100,                        /* 8-bit color QD */
  260.     gestalt32BitQD                = 0x200,                        /* 32-bit color QD */
  261.     gestalt32BitQD11            = 0x210,                        /* 32-bit color QDv1.1 */
  262.     gestalt32BitQD12            = 0x220,                        /* 32-bit color QDv1.2 */
  263.     gestalt32BitQD13            = 0x230,                        /* 32-bit color QDv1.3 */
  264.     gestaltHasColor                = 0,                            /* color quickdraw present */
  265.     gestaltHasDeepGWorlds        = 1,                            /* GWorlds can be deeper than 1-bit */
  266.     gestaltHasDirectPixMaps        = 2                                /* PixMaps can be direct (16 or 32 bit) */
  267. };
  268.  
  269. #define gestaltPhysicalRAMSize 'ram '
  270.  
  271. #define gestaltRBVAddr 'rbv '
  272.  
  273. #define gestaltSCCReadAddr 'sccr'
  274.  
  275. #define gestaltSCCWriteAddr 'sccw'
  276.  
  277. #define gestaltPopupAttr 'pop!'
  278.  
  279. #define gestaltResourceMgrAttr 'rsrc'
  280.  
  281. #define gestaltScrapMgrAttr 'scra'
  282.  
  283. #define gestaltScriptMgrVersion 'scri'
  284.  
  285. #define gestaltScriptCount 'scr#'
  286.  
  287. #define gestaltSerialAttr 'ser '
  288.  
  289. #define gestaltSlotAttr 'slot'
  290.  
  291. #define gestaltSlotMgrExists 0
  292.  
  293. #define gestaltNuBusPresent 1
  294.  
  295. #define gestaltSESlotPresent 2
  296.  
  297. #define gestaltSE30SlotPresent 3
  298.  
  299. #define gestaltPortableSlotPresent 4
  300.  
  301. #define gestaltFirstSlotNumber 'slt1'
  302.  
  303. #define gestaltSoundAttr 'snd '
  304.  
  305. #define gestaltSpeechAttr 'ttsc'
  306.  
  307. #define gestaltStandardFileAttr 'stdf'
  308.  
  309. #define gestaltSysArchitecture 'sysa'
  310.  
  311. #define gestaltTextEditVersion 'te  '
  312.  
  313. #define gestaltTermMgrAttr 'term'
  314.  
  315. #define gestaltTimeMgrVersion 'tmgr'
  316.  
  317. enum  {
  318.     gestaltHasGrayishTextOr        = 3,                            /* supports text mode grayishTextOr */
  319.     gestaltPopupPresent            = 0,
  320.     gestaltPartialRsrcs            = 0,                            /* True if partial resources exist */
  321.     gestaltScrapMgrTranslationAware = 0,                        /* True if scrap manager is translation aware */
  322.     gestaltTranslationMgrHintOrder = 1,                            /* True if hint order reversal in effect */
  323.     gestaltHasGPIaToDCDa        = 0,                            /* GPIa connected to DCDa*/
  324.     gestaltHasGPIaToRTxCa        = 1,                            /* GPIa connected to RTxCa clock input*/
  325.     gestaltHasGPIbToDCDb        = 2,                            /* GPIb connected to DCDb */
  326.     gestaltStereoCapability        = 0,                            /* sound hardware has stereo capability */
  327.     gestaltStereoMixing            = 1,                            /* stereo mixing on external speaker */
  328.     gestaltSoundIOMgrPresent    = 3,                            /* The Sound I/O Manager is present */
  329.     gestaltBuiltInSoundInput    = 4,                            /* built-in Sound Input hardware is present */
  330.     gestaltHasSoundInputDevice    = 5,                            /* Sound Input device available */
  331.     gestaltPlayAndRecord        = 6,                            /* built-in hardware can play and record simultaneously */
  332.     gestalt16BitSoundIO            = 7,                            /* sound hardware can play and record 16-bit samples */
  333.     gestaltStereoInput            = 8,                            /* sound hardware can record stereo */
  334.     gestaltLineLevelInput        = 9,                            /* sound input port requires line level */
  335. /* the following bits are not defined prior to Sound Mgr 3.0 */
  336.     gestaltSndPlayDoubleBuffer    = 10,                            /* SndPlayDoubleBuffer available, set by Sound Mgr 3.0 and later */
  337.     gestaltMultiChannels        = 11,                            /* multiple channel support, set by Sound Mgr 3.0 and later */
  338.     gestalt16BitAudioSupport    = 12,                            /* 16 bit audio data supported, set by Sound Mgr 3.0 and later */
  339.     gestaltSpeechMgrPresent        = 0,                            /* bit set indicates that Speech Manager exists */
  340.     gestaltStandardFile58        = 0,                            /* True if selectors 5-8 (StandardPutFile-CustomGetFile) are supported */
  341.     gestaltStandardFileTranslationAware = 1,                    /* True if standard file is translation manager aware */
  342.     gestaltStandardFileHasColorIcons = 2,                        /* True if standard file has 16x16 color icons */
  343.     gestalt68k                    = 1,                            /* Motorola MC68k architecture                                        */
  344.     gestaltPowerPC                = 2,                            /* IBM PowerPC architecture                                            */
  345.     gestaltTE1                    = 1,                            /* TextEdit in MacIIci ROM <8Aug89smb> */
  346.     gestaltTE2                    = 2,                            /* TextEdit with 6.0.4 Script Systems on MacIIci (Script bug fixes for MacIIci) <8Aug89smb> */
  347.     gestaltTE3                    = 3,                            /* TextEdit with 6.0.4 Script Systems all but MacIIci <8Aug89smb> */
  348.     gestaltTE4                    = 4,                            /* TextEdit in System 7.0 */
  349.     gestaltTE5                    = 5,                            /* TextWidthHook available in TextEdit */
  350.     gestaltTermMgrPresent        = 0,
  351.     gestaltTermMgrErrorString    = 2,
  352.     gestaltStandardTimeMgr        = 1                                /* standard time mgr is present */
  353. };
  354.  
  355. #define gestaltVIA1Addr 'via1'
  356.  
  357. #define gestaltVIA2Addr 'via2'
  358.  
  359. #define gestaltVMAttr 'vm  '
  360.  
  361. #define gestaltTranslationAttr 'xlat'
  362.  
  363. #define gestaltDictionaryMgrAttr 'dict'
  364.  
  365. #define gestaltIconUtilitiesAttr 'icon'
  366.  
  367. #define gestaltRealtimeMgrAttr 'rtmr'
  368.  
  369. #define gestaltCompressionMgr 'icmp'
  370.  
  371. #define gestaltQuickTime 'qtim'
  372.  
  373. #define gestaltQuickTimeFeatures 'qtrs'
  374.  
  375. #define gestaltMixedModeAttr 'mixd'
  376.  
  377. #define gestaltCFMAttr 'cfrg'
  378.  
  379. #define gestaltMachineType 'mach'
  380.  
  381. enum  {
  382.     gestaltRevisedTimeMgr        = 2,                            /* revised time mgr is present */
  383.     gestaltExtendedTimeMgr        = 3,                            /* extended time mgr is present */
  384.     gestaltVMPresent            = 0,                            /* true if virtual memory is present */
  385.     gestaltVMNotInstalled        = 0,                            /* <SM3> */
  386.     gestaltTranslationMgrExists    = 0,                            /* True if translation manager exists */
  387.     gestaltDictionaryMgrPresent    = 0,                            /* Dictionary Manager attributes */
  388.     gestaltIconUtilitiesPresent    = 0,                            /* true if icon utilities are present <SM4> CSS*/
  389.     gestaltRealtimeMgrPresent    = 0,                            /* true if the Realtime manger is present <SM8> WS     */
  390.     gestaltPPCQuickTimeLibPresent = 0,                            /* PowerPC QuickTime glue library is present */
  391.     gestaltPowerPCAware            = 0,                            /* true if Mixed Mode supports PowerPC parameter passing conventions */
  392.     gestaltCFMPresent            = 0,                            /* true if the Code Fragment Manager is present */
  393. /*************************
  394.  *    Info-only selectors
  395.  ************************/
  396.     kMachineNameStrID            = -16395,
  397.     gestaltClassic                = 1,
  398.     gestaltMacXL                = 2,
  399.     gestaltMac512KE                = 3,
  400.     gestaltMacPlus                = 4,
  401.     gestaltMacSE                = 5,
  402.     gestaltMacII                = 6,
  403.     gestaltMacIIx                = 7,
  404.     gestaltMacIIcx                = 8,
  405.     gestaltMacSE030                = 9,
  406.     gestaltPortable                = 10,
  407.     gestaltMacIIci                = 11,
  408.     gestaltMacIIfx                = 13,
  409.     gestaltMacClassic            = 17,
  410.     gestaltMacIIsi                = 18,
  411.     gestaltMacLC                = 19
  412. };
  413.  
  414. enum  {
  415.     gestaltQuadra900            = 20,
  416.     gestaltPowerBook170            = 21,
  417.     gestaltQuadra700            = 22,
  418.     gestaltClassicII            = 23,
  419.     gestaltPowerBook100            = 24,
  420.     gestaltPowerBook140            = 25,
  421.     gestaltQuadra950            = 26,
  422.     gestaltMacLCII                = 37,
  423.     gestaltPowerBook145            = 54
  424. };
  425.  
  426. #define gestaltMachineIcon 'micn'
  427.  
  428. #define gestaltROMSize 'rom '
  429.  
  430. #define gestaltROMVersion 'romv'
  431.  
  432. #define gestaltSystemVersion 'sysv'
  433.  
  434. typedef pascal OSErr (*SelectorFunctionProcPtr)(OSType selector, long *response);
  435.  
  436. enum {
  437.     uppSelectorFunctionProcInfo = kPascalStackBased
  438.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  439.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(OSType)))
  440.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long*)))
  441. };
  442.  
  443. #if USESROUTINEDESCRIPTORS
  444. typedef UniversalProcPtr SelectorFunctionUPP;
  445.  
  446. #define CallSelectorFunctionProc(userRoutine, selector, response)        \
  447.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppSelectorFunctionProcInfo, (selector), (response))
  448. #define NewSelectorFunctionProc(userRoutine)        \
  449.         (SelectorFunctionUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppSelectorFunctionProcInfo, GetCurrentISA())
  450. #else
  451. typedef SelectorFunctionProcPtr SelectorFunctionUPP;
  452.  
  453. #define CallSelectorFunctionProc(userRoutine, selector, response)        \
  454.         (*(userRoutine))((selector), (response))
  455. #define NewSelectorFunctionProc(userRoutine)        \
  456.         (SelectorFunctionUPP)(userRoutine)
  457. #endif
  458.  
  459. #ifdef __cplusplus
  460. extern "C" {
  461. #endif
  462.  
  463. #if 1
  464.  
  465. #if USES68KINLINES
  466. #pragma parameter __D0 Gestalt(__D0, __A1)
  467. #endif
  468. extern pascal OSErr Gestalt(OSType selector, long *response)
  469.  TWOWORDINLINE(0xA1AD, 0x2288);
  470.  
  471. #if USES68KINLINES
  472. #pragma parameter __D0 NewGestalt(__D0, __A0)
  473. #endif
  474. extern pascal OSErr NewGestalt(OSType selector, SelectorFunctionUPP gestaltFunction)
  475.  ONEWORDINLINE(0xA3AD);
  476.  
  477. #if USES68KINLINES
  478. #pragma parameter __D0 ReplaceGestalt(__D0, __A0, __A1)
  479. #endif
  480. extern pascal OSErr ReplaceGestalt(OSType selector, SelectorFunctionUPP gestaltFunction, SelectorFunctionUPP *oldGestaltFunction)
  481.  FOURWORDINLINE(0x2F09, 0xA5AD, 0x225F, 0x2288);
  482. #else
  483. extern pascal OSErr Gestalt(OSType selector, long *response);
  484. extern pascal OSErr NewGestalt(OSType selector, SelectorFunctionUPP gestaltFunction);
  485. extern pascal OSErr ReplaceGestalt(OSType selector, SelectorFunctionUPP gestaltFunction, SelectorFunctionUPP *oldGestaltFunction);
  486. #endif
  487.  
  488. #ifdef __cplusplus
  489. }
  490. #endif
  491.  
  492. #endif
  493.  
  494.