Invalidating User Reference Numbers
It is your responsibility to invalidate all user reference numbers obtained
However, while your application remains open, you may want to keep track of a
user reference number to start a session with a port, end it, and then later
start another session with the same port.
number for a particular user.
specified user reference number. Note that you cannot invalidate the guest
reference number (0) and, in most cases, you should not dispose of the default
user reference number.
function to invalidate a user reference number obtained from a
user reference number if it is either the default user reference number or
the guest reference number (0).
// Using the DeleteUserIdentity function to invalidate a user identity
// Assuming inclusion of MacHeaders
#include <PPCToolBox.h>
// Prototype your routine like this prior to calling it
OSErr DeleteNewUserRefNum(long); OSErr DeleteNewUserRefNum(long newUserRef) {
long defUserRef;
if ( newUserRef ) {
// user reference number passed was not the guest
// first arguement is expected to be unsigned, thus cast it
if ( !err ) {
// there is a default user
if ( newUserRef != defUserRef )
// it's not the default, so delete it
}
else
// there is no default, so delete it
return err;
}
else
// user reference number passed was the guest
}