| 
 Q:  
What are the different Gestalt selectors for Macintosh networking? A: 
Here is the breakdown: MacTCPTheGestaltselector for MacTCP is 'mtcp'.
	MacTCP versions 1.0 through 1.0.3 did not register this selector.MacTCP version 1.1 returns a value of 1.MacTCP version 1.1.1 returns a value of 2.MacTCP version 2.0 returns a value of 3. A value of 0 is returned if the driver is not opened. AppleTalkThe Gestaltselectors for AppleTalk are 'atkv' and 'atlk'. The 'atlk'Gestaltselector was introduced in AppleTalk version 54 to
provide basic version information. CallingGestaltwith the 'atlk' selector provides the major
revision version in the low-order byte of the function result. For example, passing the 'atlk'
selector in aGestaltcall or through MacsBuG with a result of0x0000003Cmeans that
AppleTalk version 60 is present. (Please note that the 'atlk' selector is not
available when AppleTalk is turned off in the Chooser.) The 'atkv' Gestalt selector was introduced as an alternative in
AppleTalk version 56 to provide more complete version information via the 'vers' resource. For
example, passing the 'atkv' selector to AppleTalk version 60 through aGestaltcall or MacsBuG yields
the followingLONGINTresult:0x3C108000. Open TransportThe Gestalt selectors for Open Transport are 'otan' and 'otvr'. You can
test whether Open Transport
and its various parts are available by using the
Gestalt function with the 'otan' selector. The bits currently used are
defined by constants,
defined in OpenTransport.h and shown below. 
	| enum {
        gestaltOpenTpt                   = 'otan',
        gestaltOpenTptPresent           = 0x00000001,
        gestaltOpenTptLoaded            = 0x00000002,
        gestaltOpenTptAppleTalkPresent  = 0x00000004,
        gestaltOpenTptAppleTalkLoaded   = 0x00000008,
        gestaltOpenTptTCPPresent        = 0x00000010,
        gestaltOpenTptTCPLoaded         = 0x00000020,
        gestaltOpenTptNetwarePresent    = 0x00000040,
        gestaltOpenTptNetwareLoaded     = 0x00000080
}; |  If Gestaltreturns no error and responds with a non-zero value, Open
Transport is available. To find out whether OT, AppleTalk, TCP, or NetWare are present, you can
examine the response parameter bits as shown above. For example, passing the 'otan' selector in aGestaltcall or through MacsBuG with a result of0x0000001Fmeans that the Open Transport is present and
loaded, AppleTalk driver is also present and loaded, and MacTCP is present but NOT loaded. The 'otvr' selector is used to determine the Open Transport Version inNumVersionformat. For example, passing the 'otvr' selector through aGestaltcall or MacsBuG
to OT version 1.1.1b9 yields the followingLONGINTresult:0x01116009. (Note that OT versions 1.0
through 1.0.8 did not register this selector.) For more information on Apple's Version
Numbering Scheme andNumVersionformat, please see 
Technote OV12:Version Territory. Open Transport / PPPThe Gestaltselectors for Open Transport / PPP are 'otra' and 'otrv'.
You can test whether Open Transport / PPP
and its various parts are available by using theGestaltfunction with the 'otra' selector. The bits currently used are
defined by constants,
defined in OpenTptPPP.h check OT/PPP SDK
and shown below. 
	| enum {
        gestaltOpenTptRemoteAccess      = 'otra',
        gestaltOpenTptRemoteAccessPresent       = 0x00000000,
        gestaltOpenTptRemoteAccessLoaded        = 0x00000001,
        gestaltOpenTptRemoteAccessClientOnly    = 0x00000002,
        gestaltOpenTptRemoteAccessPServer       = 0x00000003,
        gestaltOpenTptRemoteAccessMPServer      = 0x00000004,
        gestaltOpenTptPPPPresent                = 0x00000005,
        gestaltOpenTptARAPPresent               = 0x00000006
 }; |  
 
| Note:If you are writing an control strip or startup item that
uses OpenTransport / PPP you should be aware that it takes a few event
cycles for the remote access software to complete loading. Your software
should check the
 gestaltOpenTptRemoteAccessPresentbit of the
'otra' gestalt to see if remote access software is present, then
periodically check thegestaltOpenTptRemoteAccessLoadedto
determine if loading is completed. |  
 More information on accessing using the  Open Transport / PPP API is
available in the Open Transport documentation. Open Transport / ModemThe Gestaltselectors for Open Transport/Modem are 'otmo' and 'otmv'.
You can test whether Open Transport/ Modem
and its various parts are available by using the
Gestalt function with the 'otmo' selector. 
	| enum {
        gestaltOpenTptModem         = 'otmo',
        gestaltOpenTptModemPresent      = 0x00000000
 }; |  |