GetZoneList
GetZoneList Returns a list of all the zone names on the internet
#include <AppleTalk.h> AppleTalk Manager
OSErr GetZoneList( thePBptr, async);
XPPParmBlkPtr thePBptr; pointer to an XPPParamBlock structure
Boolean async; 0=await completion; 1=immediate return
returns Error Code; 0=no error
GetZoneList returns a complete list of all the zone names on the internet.
thePBptr is a pointer to an XPPParamBlock structure. The relevant fields are
as follows:
Out-InName Type Size Offset Description
¨ ioResult short 2 16 Result code
Æ csCode short 2 26 Routine selector; always xCall
Æ xppSubCode short 2 28 Routine selector; zipGetMyZone
Æ xppTimeOut char 1 30 Retry interval in seconds
Æ xppRetry char 1 31 Retry count
Æ zipBuffPtr long 4 34 Pointer to data buffer
¨ zipNumZones short 2 38 Number of names returned
Æ zipLastFlag char 1 40 Nonzero if no more names
Æ zipInfoField 70 bytes 70 42 For use by ZIP; first word set to 0
async is a Boolean value. Use FALSE for normal ( synchronous) operation
or TRUE to enqueue the request and resume control immediately. See
Async I/O.
Returns: an operating system Error Code. It will be one of:
noErr (0) No error
noBrideErr (-93) No Router is available
reqFailed (-1096) Request to contact router failed; retry count
exceeded
tooManyReqs (-1097) Too many concurrent requests
noDataArea (-1104) Too many outstanding ATP calls

Notes: To obtain a list of only the zone names on the local network, use the
GetLocalZones function instead.
The ioResult field returns the result of the function. If you call the
function asynchronously, the function sets this field to 1 as soon as it
begins execution, and it changes the field to the actual result code when it
completes execution. The csCode and xppSubCode fields are routine selectors
and are automatically set by the high-level language interface to xCall and
zipGetZoneList for this function. The xppTimeOut field specifies the amount
of time, in seconds, that The .ATP Driver should wait between attempts to
obtain the data. A value of 3 or 4 for the xppTimeOut field generally gives
good results. The xppRetry field specifies the number of times
The .ATP Driver should attempt to obtain the data before returning the
reqFailed (request failed) result code. A value of 3 or 4 for the xppRetry
field usually works well.
The zipBuffPtr field is a pointer to a 578-byte data buffer that you must
allocate. ZIP returns the zone names into this buffer as high-level language
strings. The zipNumZones parameter returns the number of zone names that
ZIP placed in the data buffer.
The .XPP Driver sets the zipLastFlag field to 1 if there are no more zone
names for the internet. If the zipLastFlag field is still 0 when the
GetZoneList function has completed execution, you must empty the data
buffer pointed to by the zipBuffPtr parameter and immediately call the
GetZoneList function again without changing the value in the zipInfoField
parameter. The zipInfoField parameter is a 70-byte data buffer that you
must allocate for use by ZIP. You must set the first word of this buffer to 0
before you call the GetZoneList function the first time, and not change the
contents of this field thereafter.
If you use the GetZoneList function on a nonextended network, it returns
the reqFailed result code.