Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
MoreFiles.h
/* |
File: MoreFiles.h |
Description:The long lost high-level and FSSpec File Manager functions. |
Author: JL |
Copyright: Copyright: © 1992-1999 by Apple Computer, Inc. |
all rights reserved. |
Disclaimer: You may incorporate this sample code into your applications without |
restriction, though the sample code has been provided "AS IS" and the |
responsibility for its operation is 100% yours. However, what you are |
not permitted to do is to redistribute the source as "DSC Sample Code" |
after having made changes. If you're going to re-distribute the source, |
we require that you make it clear in the source that the code was |
descended from Apple Sample Code, but that you've made changes. |
Change History (most recent first): |
6/25/99 Updated for Metrowerks Codewarror Pro 2.1(KG) |
*/ |
#ifndef __MOREFILES__ |
#define __MOREFILES__ |
#include <Types.h> |
#include <Files.h> |
#include "Optimization.h" |
#ifdef __cplusplus |
extern "C" { |
#endif |
/*****************************************************************************/ |
pascal OSErr HGetVolParms(ConstStr255Param volName, |
short vRefNum, |
GetVolParmsInfoBuffer *volParmsInfo, |
long *infoSize); |
/* ¦ Determine the characteristics of a volume. |
The HGetVolParms function returns information about the characteristics |
of a volume. A result of paramErr usually just means the volume doesn't |
support PBHGetVolParms and the feature you were going to check |
for isn't available. |
volName input: A pointer to the name of a mounted volume |
or nil. |
vRefNum input: Volume specification. |
volParmsInfo input: Pointer to GetVolParmsInfoBuffer where the |
volume attributes information is returned. |
output: Atributes information. |
infoSize input: Size of buffer pointed to by volParmsInfo. |
output: Size of data actually returned. |
Result Codes |
noErr 0 No error |
nsvErr -35 Volume not found |
paramErr -50 Volume doesn't support this function |
__________ |
Also see the macros for checking attribute bits in MoreFilesExtras.h |
*/ |
/*****************************************************************************/ |
pascal OSErr HCreateMinimum(short vRefNum, |
long dirID, |
ConstStr255Param fileName); |
/* ¦ Create a new file with no creator or file type. |
The HCreateMinimum function creates a new file without attempting to set |
the creator and file type of the new file. This function is needed to |
create a file in an AppleShare "drop box" where the user can make |
changes, but cannot see folder or files. |
vRefNum input: Volume specification. |
dirID input: Directory ID. |
fileName input: The name of the new file. |
Result Codes |
noErr 0 No error |
dirFulErr -33 File directory full |
dskFulErr -34 Disk is full |
nsvErr -35 No such volume |
ioErr -36 I/O error |
bdNamErr -37 Bad filename |
fnfErr -43 Directory not found or incomplete pathname |
wPrErr -44 Hardware volume lock |
vLckdErr -46 Software volume lock |
dupFNErr -48 Duplicate filename and version |
dirNFErrdirNFErr -120 Directory not found or incomplete pathname |
afpAccessDenied -5000 User does not have the correct access |
afpObjectTypeErr -5025 A directory exists with that name |
__________ |
Also see: FSpCreateMinimum |
*/ |
/*****************************************************************************/ |
pascal OSErr FSpCreateMinimum(const FSSpec *spec); |
/* ¦ Create a new file with no creator or file type. |
The FSpCreateMinimum function creates a new file without attempting to set |
the the creator and file type of the new file. This function is needed to |
create a file in an AppleShare "dropbox" where the user can make |
changes, but cannot see folder or files. |
spec input: An FSSpec record specifying the file to create. |
Result Codes |
noErr 0 No error |
dirFulErr -33 File directory full |
dskFulErr -34 Disk is full |
nsvErr -35 No such volume |
ioErr -36 I/O error |
bdNamErr -37 Bad filename |
fnfErr -43 Directory not found or incomplete pathname |
wPrErr -44 Hardware volume lock |
vLckdErr -46 Software volume lock |
dupFNErr -48 Duplicate filename and version |
dirNFErrdirNFErr -120 Directory not found or incomplete pathname |
afpAccessDenied -5000 User does not have the correct access |
afpObjectTypeErr -5025 A directory exists with that name |
__________ |
Also see: HCreateMinimum |
*/ |
/*****************************************************************************/ |
pascal OSErr ExchangeFiles(short vRefNum, |
long srcDirID, |
ConstStr255Param srcName, |
long dstDirID, |
ConstStr255Param dstName); |
/* ¦ Exchange the data stored in two files on the same volume. |
The ExchangeFiles function swaps the data in two files on the same |
volume by changing some of the information in the volume catalog and, |
if the files are open, in the file control blocks. |
vRefNum input: Volume specification. |
srcDirID input: Source directory ID. |
srcName input: Source file name. |
dstDirID input: Destination directory ID. |
dstName input: Destination file name. |
Result Codes |
noErr 0 No error |
nsvErr -35 Volume not found |
ioErr -36 I/O error |
fnfErr -43 File not found |
fLckdErr -45 File is locked |
vLckdErr -46 Volume is locked or read-only |
paramErr -50 Function not supported by volume |
volOfflinErr -53 Volume is offline |
wrgVolTypErr -123 Not an HFS volume |
diffVolErr -1303 Files on different volumes |
afpAccessDenied -5000 User does not have the correct access |
afpObjectTypeErr -5025 Object is a directory, not a file |
afpSameObjectErr -5038 Source and destination are the same |
__________ |
Also see: FSpExchangeFilesCompat |
*/ |
/*****************************************************************************/ |
pascal OSErr ResolveFileIDRef(ConstStr255Param volName, |
short vRefNum, |
long fileID, |
long *parID, |
StringPtr fileName); |
/* ¦ Retrieve the location of the file with the specified file ID reference. |
The ResolveFileIDRef function returns the filename and parent directory ID |
of the file with the specified file ID reference. |
volName input: A pointer to the name of a mounted volume |
or nil. |
vRefNum input: Volume specification. |
fileID input: The file ID reference. |
parID output: The parent directory ID of the file. |
name input: Points to a buffer (minimum Str63) where the filename |
is to be returned or must be nil. |
output: The filename. |
Result Codes |
noErr 0 No error |
nsvErr -35 Volume not found |
ioErr -36 I/O error |
fnfErr -43 File not found |
paramErr -50 Function not supported by volume |
volOfflinErr -53 Volume is offline |
extFSErr -58 External file system error - no file |
system claimed this call. |
wrgVolTypErr -123 Not an HFS volume |
fidNotFoundErr -1300 File ID reference not found |
notAFileErr -1302 Specified file is a directory |
afpAccessDenied -5000 User does not have the correct access |
afpObjectTypeErr -5025 Specified file is a directory |
afpIDNotFound -5034 File ID reference not found |
afpBadIDErr -5039 File ID reference not found |
__________ |
Also see: FSpResolveFileIDRef, CreateFileIDRef, FSpCreateFileIDRef, |
DeleteFileIDRef |
*/ |
/*****************************************************************************/ |
pascal OSErr FSpResolveFileIDRef(ConstStr255Param volName, |
short vRefNum, |
long fileID, |
FSSpecPtr spec); |
/* ¦ Retrieve the location of the file with the specified file ID reference. |
The FSpResolveFileIDRef function fills in an FSSpec with the location |
of the file with the specified file ID reference. |
volName input: A pointer to the name of a mounted volume |
or nil. |
vRefNum input: Volume specification. |
fileID input: The file ID reference. |
spec input: A pointer to a FSSpec record. |
output: A file system specification to be filled in by |
FSpResolveFileIDRef. |
Result Codes |
noErr 0 No error |
nsvErr -35 Volume not found |
ioErr -36 I/O error |
fnfErr -43 File not found |
paramErr -50 Function not supported by volume or |
no default volume |
volOfflinErr -53 Volume is offline |
extFSErr -58 External file system error - no file |
system claimed this call. |
wrgVolTypErr -123 Not an HFS volume |
fidNotFoundErr -1300 File ID reference not found |
notAFileErr -1302 Specified file is a directory |
afpAccessDenied -5000 User does not have the correct access |
afpObjectTypeErr -5025 Specified file is a directory |
afpIDNotFound -5034 File ID reference not found |
afpBadIDErr -5039 File ID reference not found |
__________ |
Also see: ResolveFileIDRef, CreateFileIDRef, FSpCreateFileIDRef, |
DeleteFileIDRef |
*/ |
/*****************************************************************************/ |
pascal OSErr CreateFileIDRef(short vRefNum, |
long parID, |
ConstStr255Param fileName, |
long *fileID); |
/* ¦ Establish a file ID reference for a file. |
The CreateFileIDRef function creates a file ID reference for the |
specified file, or if a file ID reference already exists, supplies |
the file ID reference and returns the result code fidExists or afpIDExists. |
vRefNum input: Volume specification. |
parID input: Directory ID. |
fileName input: The name of the file. |
fileID output: The file ID reference (if result is noErr, |
fidExists, or afpIDExists). |
Result Codes |
noErr 0 No error |
nsvErr -35 Volume not found |
ioErr -36 I/O error |
fnfErr -43 File not found |
wPrErr -44 Hardware volume lock |
vLckdErr -46 Software volume lock |
paramErr -50 Function not supported by volume |
volOfflinErr -53 Volume is offline |
extFSErr -58 External file system error - no file |
system claimed this call. |
wrgVolTypErr -123 Not an HFS volume |
fidExists -1301 File ID reference already exists |
notAFileErrn -1302 Specified file is a directory |
afpAccessDenied -5000 User does not have the correct access |
afpObjectTypeErr -5025 Specified file is a directory |
afpIDExists -5035 File ID reference already exists |
__________ |
Also see: FSpResolveFileIDRef, ResolveFileIDRef, FSpCreateFileIDRef, |
DeleteFileIDRef |
*/ |
/*****************************************************************************/ |
pascal OSErr FSpCreateFileIDRef(const FSSpec *spec, |
long *fileID); |
/* ¦ Establish a file ID reference for a file. |
The FSpCreateFileIDRef function creates a file ID reference for the |
specified file, or if a file ID reference already exists, supplies |
the file ID reference and returns the result code fidExists or afpIDExists. |
spec input: An FSSpec record specifying the file. |
fileID output: The file ID reference (if result is noErr, |
fidExists, or afpIDExists). |
Result Codes |
noErr 0 No error |
nsvErr -35 Volume not found |
ioErr -36 I/O error |
fnfErr -43 File not found |
wPrErr -44 Hardware volume lock |
vLckdErr -46 Software volume lock |
paramErr -50 Function not supported by volume |
volOfflinErr -53 Volume is offline |
extFSErr -58 External file system error - no file |
system claimed this call. |
wrgVolTypErr -123 Not an HFS volume |
fidExists -1301 File ID reference already exists |
notAFileErrn -1302 Specified file is a directory |
afpAccessDenied -5000 User does not have the correct access |
afpObjectTypeErr -5025 Specified file is a directory |
afpIDExists -5035 File ID reference already exists |
__________ |
Also see: FSpResolveFileIDRef, ResolveFileIDRef, CreateFileIDRef, |
DeleteFileIDRef |
*/ |
/*****************************************************************************/ |
pascal OSErr DeleteFileIDRef(ConstStr255Param volName, |
short vRefNum, |
long fileID); |
/* ¦ Delete a file ID reference. |
The DeleteFileIDRef function deletes a file ID reference. |
volName input: A pointer to the name of a mounted volume |
or nil. |
vRefNum input: Volume specification. |
fileID input: The file ID reference. |
Result Codes |
noErr 0 No error |
nsvErr -35 Volume not found |
ioErr -36 I/O error |
fnfErr -43 File not found |
wPrErr -44 Hardware volume lock |
vLckdErr -46 Software volume lock |
paramErr -50 Function not supported by volume |
volOfflinErr -53 Volume is offline |
extFSErr -58 External file system error - no file |
system claimed this call. |
wrgVolTypErr -123 Function is not supported by volume |
fidNotFoundErr -1300 File ID reference not found |
afpAccessDenied -5000 User does not have the correct access |
afpObjectTypeErr -5025 Specified file is a directory |
afpIDNotFound -5034 File ID reference not found |
__________ |
Also see: FSpResolveFileIDRef, ResolveFileIDRef, CreateFileIDRef, |
FSpCreateFileIDRef |
*/ |
/*****************************************************************************/ |
pascal OSErr FlushFile(short refNum); |
/* ¦ Write the contents of a file's access path buffer (the fork data). |
The FlushFile function writes the contents of a file's access path |
buffer (the fork data) to the volume. Note: some of the file's catalog |
information stored on the volume may not be correct until FlushVol |
is called. |
refNum input: The file reference number of an open file. |
Result Codes |
noErr 0 No error |
nsvErr -35 Volume not found |
ioErr -36 I/O error |
fnOpnErr -38 File not open |
fnfErr -43 File not found |
rfNumErr -51 Bad reference number |
extFSErr -58 External file system error - no file |
system claimed this call. |
*/ |
/*****************************************************************************/ |
pascal OSErr LockRange(short refNum, |
long rangeLength, |
long rangeStart); |
/* ¦ Lock a portion of a file. |
The LockRange function locks (denies access to) a portion of a file |
that was opened with shared read/write permission. |
refNum input: The file reference number of an open file. |
rangeLength input: The number of bytes in the range. |
rangeStart input: The starting byte in the range to lock. |
Result Codes |
noErr 0 No error |
ioErr -36 I/O error |
fnOpnErr -38 File not open |
eofErr -39 Logical end-of-file reached |
fLckdErr -45 File is locked by another user |
paramErr -50 Negative ioReqCount |
rfNumErr -51 Bad reference number |
extFSErr -58 External file system error - no file |
system claimed this call. |
volGoneErr -124 Server volume has been disconnected |
afpNoMoreLocks -5015 No more ranges can be locked |
afpRangeOverlap -5021 Part of range is already locked |
__________ |
Also see: UnlockRange |
*/ |
/*****************************************************************************/ |
pascal OSErr UnlockRange(short refNum, |
long rangeLength, |
long rangeStart); |
/* ¦ Unlock a previously locked range. |
The UnlockRange function unlocks (allows access to) a previously locked |
portion of a file that was opened with shared read/write permission. |
refNum input: The file reference number of an open file. |
rangeLength input: The number of bytes in the range. |
rangeStart input: The starting byte in the range to unlock. |
Result Codes |
noErr 0 No error |
ioErr -36 I/O error |
fnOpnErr -38 File not open |
eofErr -39 Logical end-of-file reached |
paramErr -50 Negative ioReqCount |
rfNumErr -51 Bad reference number |
extFSErr -58 External file system error - no file |
system claimed this call. |
volGoneErr -124 Server volume has been disconnected |
afpRangeNotLocked -5020 Specified range was not locked |
__________ |
Also see: LockRange |
*/ |
/*****************************************************************************/ |
pascal OSErr GetForeignPrivs(short vRefNum, |
long dirID, |
ConstStr255Param name, |
void *foreignPrivBuffer, |
long *foreignPrivSize, |
long *foreignPrivInfo1, |
long *foreignPrivInfo2, |
long *foreignPrivInfo3, |
long *foreignPrivInfo4); |
/* ¦ Retrieve the native access-control information. |
The GetForeignPrivs function retrieves the native access-control |
information for a file or directory stored on a volume managed by |
a foreign file system. |
vRefNum input: Volume specification. |
dirID input: Directory ID. |
name input: Pointer to object name, or nil when dirID |
specifies a directory that's the object. |
foreignPrivBuffer input: Pointer to buffer where the privilege |
information is returned. |
output: Privilege information. |
foreignPrivSize input: Size of buffer pointed to by |
foreignPrivBuffer. |
output: Amount of buffer actually used. |
foreignPrivInfo1 output: Information specific to privilege model. |
foreignPrivInfo2 output: Information specific to privilege model. |
foreignPrivInfo3 output: Information specific to privilege model. |
foreignPrivInfo4 output: Information specific to privilege model. |
Result Codes |
noErr 0 No error |
nsvErr -35 Volume not found |
paramErr -50 Volume is HFS or MFS (that is, it has |
no foreign privilege model), or foreign |
volume does not support these calls |
__________ |
Also see: FSpGetForeignPrivs, SetForeignPrivs, FSpSetForeignPrivs |
*/ |
/*****************************************************************************/ |
pascal OSErr FSpGetForeignPrivs(const FSSpec *spec, |
void *foreignPrivBuffer, |
long *foreignPrivSize, |
long *foreignPrivInfo1, |
long *foreignPrivInfo2, |
long *foreignPrivInfo3, |
long *foreignPrivInfo4); |
/* ¦ Retrieve the native access-control information. |
The FSpGetForeignPrivs function retrieves the native access-control |
information for a file or directory stored on a volume managed by |
a foreign file system. |
spec input: An FSSpec record specifying the object. |
foreignPrivBuffer input: Pointer to buffer where the privilege |
information is returned. |
output: Privilege information. |
foreignPrivSize input: Size of buffer pointed to by |
foreignPrivBuffer. |
output: Amount of buffer actually used. |
foreignPrivInfo1 output: Information specific to privilege model. |
foreignPrivInfo2 output: Information specific to privilege model. |
foreignPrivInfo3 output: Information specific to privilege model. |
foreignPrivInfo4 output: Information specific to privilege model. |
Result Codes |
noErr 0 No error |
nsvErr -35 Volume not found |
paramErr -50 Volume is HFS or MFS (that is, it has |
no foreign privilege model), or foreign |
volume does not support these calls |
__________ |
Also see: GetForeignPrivs, SetForeignPrivs, FSpSetForeignPrivs |
*/ |
/*****************************************************************************/ |
pascal OSErr SetForeignPrivs(short vRefNum, |
long dirID, |
ConstStr255Param name, |
const void *foreignPrivBuffer, |
long *foreignPrivSize, |
long foreignPrivInfo1, |
long foreignPrivInfo2, |
long foreignPrivInfo3, |
long foreignPrivInfo4); |
/* ¦ Change the native access-control information. |
The SetForeignPrivs function changes the native access-control |
information for a file or directory stored on a volume managed by |
a foreign file system. |
vRefNum input: Volume specification. |
dirID input: Directory ID. |
name input: Pointer to object name, or nil when dirID |
specifies a directory that's the object. |
foreignPrivBuffer input: Pointer to privilege information buffer. |
foreignPrivSize input: Size of buffer pointed to by |
foreignPrivBuffer. |
output: Amount of buffer actually used. |
foreignPrivInfo1 input: Information specific to privilege model. |
foreignPrivInfo2 input: Information specific to privilege model. |
foreignPrivInfo3 input: Information specific to privilege model. |
foreignPrivInfo4 input: Information specific to privilege model. |
Result Codes |
noErr 0 No error |
nsvErr -35 Volume not found |
paramErr -50 Volume is HFS or MFS (that is, it has |
no foreign privilege model), or foreign |
volume does not support these calls |
__________ |
Also see: GetForeignPrivs, FSpGetForeignPrivs, FSpSetForeignPrivs |
*/ |
/*****************************************************************************/ |
pascal OSErr FSpSetForeignPrivs(const FSSpec *spec, |
const void *foreignPrivBuffer, |
long *foreignPrivSize, |
long foreignPrivInfo1, |
long foreignPrivInfo2, |
long foreignPrivInfo3, |
long foreignPrivInfo4); |
/* ¦ Change the native access-control information. |
The FSpSetForeignPrivs function changes the native access-control |
information for a file or directory stored on a volume managed by |
a foreign file system. |
spec input: An FSSpec record specifying the object. |
foreignPrivBuffer input: Pointer to privilege information buffer. |
foreignPrivSize input: Size of buffer pointed to by |
foreignPrivBuffer. |
output: Amount of buffer actually used. |
foreignPrivInfo1 input: Information specific to privilege model. |
foreignPrivInfo2 input: Information specific to privilege model. |
foreignPrivInfo3 input: Information specific to privilege model. |
foreignPrivInfo4 input: Information specific to privilege model. |
Result Codes |
noErr 0 No error |
nsvErr -35 Volume not found |
paramErr -50 Volume is HFS or MFS (that is, it has |
no foreign privilege model), or foreign |
volume does not support these calls |
__________ |
Also see: GetForeignPrivs, FSpGetForeignPrivs, SetForeignPrivs |
*/ |
/*****************************************************************************/ |
pascal OSErr HGetLogInInfo(ConstStr255Param volName, |
short vRefNum, |
short *loginMethod, |
StringPtr userName); |
/* ¦ Get the login method and user name used to log on to a shared volume. |
The HGetLogInInfo function retrieves the login method and user name |
used to log on to a particular shared volume. |
volName input: A pointer to the name of a mounted volume |
or nil. |
vRefNum input: The volume reference number. |
loginMethod output: The login method used (kNoUserAuthentication, |
kPassword, kEncryptPassword, or |
kTwoWayEncryptPassword). |
userName input: Points to a buffer (minimum Str31) where the user |
name is to be returned or must be nil. |
output: The user name. |
Result Codes |
noErr 0 No error |
nsvErr -35 Specified volume doesnÕt exist |
paramErr -50 Function not supported by volume |
__________ |
Also see: HGetDirAccess, FSpGetDirAccess, HSetDirAccess, |
FSpSetDirAccess, HMapName, HMapID |
*/ |
/*****************************************************************************/ |
pascal OSErr HGetDirAccess(short vRefNum, |
long dirID, |
ConstStr255Param name, |
long *ownerID, |
long *groupID, |
long *accessRights); |
/* ¦ Get a directory's access control information on a shared volume. |
The HGetDirAccess function retrieves the directory access control |
information for a directory on a shared volume. |
vRefNum input: Volume specification. |
dirID input: Directory ID. |
name input: Pointer to directory name, or nil if dirID |
specifies the directory. |
ownerID output: The directory's owner ID. |
groupID output: The directory's group ID or |
0 if no group affiliation. |
accessRights output: The directory's access rights. |
Result Codes |
noErr 0 No error |
fnfErr -43 Directory not found |
paramErr -50 Function not supported by volume |
afpAccessDenied -5000 User does not have the correct access |
to the directory |
__________ |
Also see: HGetLogInInfo, FSpGetDirAccess, HSetDirAccess, |
FSpSetDirAccess, HMapName, HMapID |
*/ |
/*****************************************************************************/ |
pascal OSErr FSpGetDirAccess(const FSSpec *spec, |
long *ownerID, |
long *groupID, |
long *accessRights); |
/* ¦ Get a directory's access control information on a shared volume. |
The FSpGetDirAccess function retrieves the directory access control |
information for a directory on a shared volume. |
spec input: An FSSpec record specifying the directory. |
ownerID output: The directory's owner ID. |
groupID output: The directory's group ID or |
0 if no group affiliation. |
accessRights output: The directory's access rights. |
Result Codes |
noErr 0 No error |
fnfErr -43 Directory not found |
paramErr -50 Function not supported by volume |
afpAccessDenied -5000 User does not have the correct access |
to the directory |
__________ |
Also see: HGetLogInInfo, HGetDirAccess, HSetDirAccess, |
FSpSetDirAccess, HMapName, HMapID |
*/ |
/*****************************************************************************/ |
pascal OSErr HSetDirAccess(short vRefNum, |
long dirID, |
ConstStr255Param name, |
long ownerID, |
long groupID, |
long accessRights); |
/* ¦ Set a directory's access control information on a shared volume. |
The HSetDirAccess function changes the directory access control |
information for a directory on a shared volume. You must own a directory |
to change its access control information. |
vRefNum input: Volume specification. |
dirID input: Directory ID. |
name input: Pointer to directory name, or nil if dirID |
specifies the directory. |
ownerID input: The directory's owner ID. |
groupID input: The directory's group ID or |
0 if no group affiliation. |
accessRights input: The directory's access rights. |
Result Codes |
noErr 0 No error |
fnfErr -43 Directory not found |
vLckdErr -46 Volume is locked or read-only |
paramErr -50 Parameter error |
afpAccessDenied -5000 User does not have the correct access |
to the directory |
afpObjectTypeErr -5025 Object is a file, not a directory |
__________ |
Also see: HGetLogInInfo, HGetDirAccess, FSpGetDirAccess, |
FSpSetDirAccess, HMapName, HMapID |
*/ |
/*****************************************************************************/ |
pascal OSErr FSpSetDirAccess(const FSSpec *spec, |
long ownerID, |
long groupID, |
long accessRights); |
/* ¦ Set a directory's access control information on a shared volume. |
The FSpSetDirAccess function changes the directory access control |
information for a directory on a shared volume. You must own a directory |
to change its access control information. |
spec input: An FSSpec record specifying the directory. |
ownerID input: The directory's owner ID. |
groupID input: The directory's group ID or |
0 if no group affiliation. |
accessRights input: The directory's access rights. |
Result Codes |
noErr 0 No error |
fnfErr -43 Directory not found |
vLckdErr -46 Volume is locked or read-only |
paramErr -50 Parameter error |
afpAccessDenied -5000 User does not have the correct access |
to the directory |
afpObjectTypeErr -5025 Object is a file, not a directory |
__________ |
Also see: HGetLogInInfo, HGetDirAccess, FSpGetDirAccess, HSetDirAccess, |
HMapName, HMapID |
*/ |
/*****************************************************************************/ |
pascal OSErr HMapID(ConstStr255Param volName, |
short vRefNum, |
long ugID, |
short objType, |
StringPtr name); |
/* ¦ Map a user or group ID to a user or group name. |
The HMapID function determines the name of a user or group if you know |
the user or group ID. |
volName input: A pointer to the name of a mounted volume |
or nil. |
vRefNum input: Volume specification. |
objType input: The mapping function code: 1 if you're mapping a |
user ID to a user name or 2 if you're mapping a |
group ID to a group name. |
name input: Points to a buffer (minimum Str31) where the user |
or group name is to be returned or must be nil. |
output: The user or group name. |
Result Codes |
noErr 0 No error |
fnfErr -43 Unrecognizable owner or group name |
paramErr -50 Function not supported by volume |
__________ |
Also see: HGetLogInInfo, HGetDirAccess, FSpGetDirAccess, HSetDirAccess, |
FSpSetDirAccess, HMapName |
*/ |
/*****************************************************************************/ |
pascal OSErr HMapName(ConstStr255Param volName, |
short vRefNum, |
ConstStr255Param name, |
short objType, |
long *ugID); |
/* ¦ Map a user or group name to a user or group ID. |
The HMapName function determines the user or group ID if you know the |
user or group name. |
volName input: A pointer to the name of a mounted volume |
or nil. |
vRefNum input: Volume specification. |
name input: The user or group name. |
objType input: The mapping function code: 3 if you're mapping a |
user name to a user ID or 4 if you're mapping a |
group name to a group ID. |
ugID output: The user or group ID. |
Result Codes |
noErr 0 No error |
fnfErr -43 Unrecognizable owner or group name |
paramErr -50 Function not supported by volume |
__________ |
Also see: HGetLogInInfo, HGetDirAccess, FSpGetDirAccess, HSetDirAccess, |
FSpSetDirAccess, HMapID |
*/ |
/*****************************************************************************/ |
pascal OSErr HCopyFile(short srcVRefNum, |
long srcDirID, |
ConstStr255Param srcName, |
short dstVRefNum, |
long dstDirID, |
ConstStr255Param dstPathname, |
ConstStr255Param copyName); |
/* ¦ Duplicate a file on a file server and optionally to rename it. |
The HCopyFile function duplicates a file and optionally to renames it. |
The source and destination volumes must be on the same file server. |
This function instructs the server to copy the file. |
srcVRefNum input: Source volume specification. |
srcDirID input: Source directory ID. |
srcName input: Source file name. |
dstVRefNum input: Destination volume specification. |
dstDirID input: Destination directory ID. |
dstPathname input: Pointer to destination directory name, or |
nil when dstDirID specifies a directory. |
copyName input: Points to the new file name if the file is to be |
renamed or nil if the file isn't to be renamed. |
Result Codes |
noErr 0 No error |
dskFulErr -34 Destination volume is full |
fnfErr -43 Source file not found, or destination |
directory does not exist |
vLckdErr -46 Destination volume is read-only |
fBsyErr -47 The source or destination file could |
not be opened with the correct access |
modes |
dupFNErr -48 Destination file already exists |
paramErr -50 Function not supported by volume |
wrgVolTypErr -123 Function not supported by volume |
afpAccessDenied -5000 The user does not have the right to |
read the source or write to the |
destination |
afpDenyConflict -5006 The source or destination file could |
not be opened with the correct access |
modes |
afpObjectTypeErr -5025 Source is a directory |
__________ |
Also see: FSpCopyFile, FileCopy, FSpFileCopy |
*/ |
/*****************************************************************************/ |
pascal OSErr FSpCopyFile(const FSSpec *srcSpec, |
const FSSpec *dstSpec, |
ConstStr255Param copyName); |
/* ¦ Duplicate a file on a file server and optionally to rename it. |
The FSpCopyFile function duplicates a file and optionally to renames it. |
The source and destination volumes must be on the same file server. |
This function instructs the server to copy the file. |
srcSpec input: An FSSpec record specifying the source file. |
dstSpec input: An FSSpec record specifying the destination |
directory. |
copyName input: Points to the new file name if the file is to be |
renamed or nil if the file isn't to be renamed. |
Result Codes |
noErr 0 No error |
dskFulErr -34 Destination volume is full |
fnfErr -43 Source file not found, or destination |
directory does not exist |
vLckdErr -46 Destination volume is read-only |
fBsyErr -47 The source or destination file could |
not be opened with the correct access |
modes |
dupFNErr -48 Destination file already exists |
paramErr -50 Function not supported by volume |
wrgVolTypErr -123 Function not supported by volume |
afpAccessDenied -5000 The user does not have the right to |
read the source or write to the |
destination |
afpDenyConflict -5006 The source or destination file could |
not be opened with the correct access |
modes |
afpObjectTypeErr -5025 Source is a directory |
__________ |
Also see: HCopyFile, FileCopy, FSpFileCopy |
*/ |
/*****************************************************************************/ |
pascal OSErr HMoveRename(short vRefNum, |
long srcDirID, |
ConstStr255Param srcName, |
long dstDirID, |
ConstStr255Param dstpathName, |
ConstStr255Param copyName); |
/* ¦ Move a file or directory on a file server and optionally to rename it. |
The HMoveRename function moves a file or directory and optionally |
renames it. The source and destination locations must be on the same |
shared volume. |
vRefNum input: Volume specification. |
srcDirID input: Source directory ID. |
srcName input: The source object name. |
dstDirID input: Destination directory ID. |
dstName input: Pointer to destination directory name, or |
nil when dstDirID specifies a directory. |
copyName input: Points to the new name if the object is to be |
renamed or nil if the object isn't to be renamed. |
Result Codes |
noErr 0 No error |
fnfErr -43 Source file or directory not found |
fLckdErr -45 File is locked |
vLckdErr -46 Destination volume is read-only |
dupFNErr -48 Destination already exists |
paramErr -50 Function not supported by volume |
badMovErr -122 Attempted to move directory into |
offspring |
afpAccessDenied -5000 The user does not have the right to |
move the file or directory |
__________ |
Also see: FSpMoveRename, HMoveRenameCompat, FSpMoveRenameCompat |
*/ |
/*****************************************************************************/ |
pascal OSErr FSpMoveRename(const FSSpec *srcSpec, |
const FSSpec *dstSpec, |
ConstStr255Param copyName); |
/* ¦ Move a file or directory on a file server and optionally to rename it. |
The FSpMoveRename function moves a file or directory and optionally |
renames it. The source and destination locations must be on the same |
shared volume. |
srcSpec input: An FSSpec record specifying the source object. |
dstSpec input: An FSSpec record specifying the destination |
directory. |
copyName input: Points to the new name if the object is to be |
renamed or nil if the object isn't to be renamed. |
Result Codes |
noErr 0 No error |
fnfErr -43 Source file or directory not found |
fLckdErr -45 File is locked |
vLckdErr -46 Destination volume is read-only |
dupFNErr -48 Destination already exists |
paramErr -50 Function not supported by volume |
badMovErr -122 Attempted to move directory into |
offspring |
afpAccessDenied -5000 The user does not have the right to |
move the file or directory |
__________ |
Also see: HMoveRename, HMoveRenameCompat, FSpMoveRenameCompat |
*/ |
/*****************************************************************************/ |
pascal OSErr GetVolMountInfoSize(ConstStr255Param volName, |
short vRefNum, |
short *size); |
/* ¦ Get the size of a volume mounting information record. |
The GetVolMountInfoSize function determines the how much space the |
program needs to allocate for a volume mounting information record. |
volName input: A pointer to the name of a mounted volume |
or nil. |
vRefNum input: Volume specification. |
size output: The space needed (in bytes) of the volume mounting |
information record. |
Result Codes |
noErr 0 No error |
nsvErr -35 Volume not found |
paramErr -50 Parameter error |
extFSErr -58 External file system error - no file |
system claimed this call. |
__________ |
Also see: GetVolMountInfo, VolumeMount BuildAFPVolMountInfo, |
RetrieveAFPVolMountInfo |
*/ |
/*****************************************************************************/ |
pascal OSErr GetVolMountInfo(ConstStr255Param volName, |
short vRefNum, |
void *volMountInfo); |
/* ¦ Retrieve a volume mounting information record. |
The GetVolMountInfo function retrieves a volume mounting information |
record containing all the information needed to mount the volume, |
except for passwords. |
volName input: A pointer to the name of a mounted volume |
or nil. |
vRefNum input: Volume specification. |
volMountInfo output: Points to a volume mounting information |
record where the mounting information is to |
be returned. |
Result Codes |
noErr 0 No error |
nsvErr -35 Volume not found |
paramErr -50 Parameter error |
extFSErr -58 External file system error - no file |
system claimed this call. |
__________ |
Also see: GetVolMountInfoSize, VolumeMount, BuildAFPVolMountInfo, |
RetrieveAFPVolMountInfo |
*/ |
/*****************************************************************************/ |
pascal OSErr VolumeMount(const void *volMountInfo, |
short *vRefNum); |
/* ¦ Mount a volume using a volume mounting information record. |
The VolumeMount function mounts a volume using a volume mounting |
information record. |
volMountInfo input: Points to a volume mounting information record. |
vRefNum output: A volume reference number. |
Result Codes |
noErr 0 No error |
notOpenErr -28 AppleTalk is not open |
nsvErr -35 Volume not found |
paramErr -50 Parameter error; typically, zone, server, |
and volume name combination is not valid |
or not complete, or the user name is not |
recognized |
extFSErr -58 External file system error - no file |
system claimed this call. |
memFullErr -108 Not enough memory to create a new volume |
control block for mounting the volume |
afpBadUAM -5002 User authentication method is unknown |
afpBadVersNum -5003 Workstation is using an AFP version that |
the server doesnÕt recognize |
afpNoServer -5016 Server is not responding |
afpUserNotAuth -5023 User authentication failed (usually, |
password is not correct) |
afpPwdExpired -5042 Password has expired on server |
afpBadDirIDType -5060 Not a fixed directory ID volume |
afpCantMountMoreSrvrs -5061 Maximum number of volumes has been |
mounted |
afpAlreadyMounted -5062 Volume already mounted |
afpSameNodeErr -5063 Attempt to log on to a server running |
on the same machine |
__________ |
Also see: GetVolMountInfoSize, GetVolMountInfo, BuildAFPVolMountInfo, |
RetrieveAFPVolMountInfo |
*/ |
/*****************************************************************************/ |
pascal OSErr Share(short vRefNum, |
long dirID, |
ConstStr255Param name); |
/* ¦ Establish a local volume or directory as a share point. |
The Share function establishes a local volume or directory as a |
share point. |
vRefNum input: Volume specification. |
dirID input: Directory ID. |
name input: Pointer to directory name, or nil if dirID |
specifies the directory. |
Result Codes |
noErr 0 No error |
tmfoErr -42 Too many share points |
fnfErr -43 File not found |
dupFNErr -48 Already a share point with this name |
paramErr -50 Function not supported by volume |
dirNFErrdirNFErr -120 Directory not found |
afpAccessDenied -5000 This directory cannot be shared |
afpObjectTypeErr -5025 Object was a file, not a directory |
afpContainsSharedErr -5033 The directory contains a share point |
afpInsideSharedErr -5043 The directory is inside a shared directory |
__________ |
Also see: FSpShare, Unshare, FSpUnshare |
*/ |
/*****************************************************************************/ |
pascal OSErr FSpShare(const FSSpec *spec); |
/* ¦ Establish a local volume or directory as a share point. |
The FSpShare function establishes a local volume or directory as a |
share point. |
spec input: An FSSpec record specifying the share point. |
Result Codes |
noErr 0 No error |
tmfoErr -42 Too many share points |
fnfErr -43 File not found |
dupFNErr -48 Already a share point with this name |
paramErr -50 Function not supported by volume |
dirNFErrdirNFErr -120 Directory not found |
afpAccessDenied -5000 This directory cannot be shared |
afpObjectTypeErr -5025 Object was a file, not a directory |
afpContainsSharedErr -5033 The directory contains a share point |
afpInsideSharedErr -5043 The directory is inside a shared directory |
__________ |
Also see: Share, Unshare, FSpUnshare |
*/ |
/*****************************************************************************/ |
pascal OSErr Unshare(short vRefNum, |
long dirID, |
ConstStr255Param name); |
/* ¦ Remove a share point. |
The Unshare function removes a share point. |
vRefNum input: Volume specification. |
dirID input: Directory ID. |
name input: Pointer to directory name, or nil if dirID |
specifies the directory. |
Result Codes |
noErr 0 No error |
fnfErr -43 File not found |
paramErr -50 Function not supported by volume |
dirNFErrdirNFErr -120 Directory not found |
afpObjectTypeErr -5025 Object was a file, not a directory; or, |
this directory is not a share point |
__________ |
Also see: Share, FSpShare, FSpUnshare |
*/ |
/*****************************************************************************/ |
pascal OSErr FSpUnshare(const FSSpec *spec); |
/* ¦ Remove a share point. |
The FSpUnshare function removes a share point. |
spec input: An FSSpec record specifying the share point. |
Result Codes |
noErr 0 No error |
fnfErr -43 File not found |
paramErr -50 Function not supported by volume |
dirNFErrdirNFErr -120 Directory not found |
afpObjectTypeErr -5025 Object was a file, not a directory; or, |
this directory is not a share point |
__________ |
Also see: Share, FSpShare, Unshare |
*/ |
/*****************************************************************************/ |
pascal OSErr GetUGEntry(short objType, |
StringPtr objName, |
long *objID); |
/* ¦ Retrieve a user or group entry from the local file server. |
The GetUGEntry function retrieves user or group entries from the |
local file server. |
objType input: The object type: -1 = group; 0 = user |
objName input: Points to a buffer (minimum Str31) where the user |
or group name is to be returned or must be nil. |
output: The user or group name. |
objID input: O to get the first user or group. If the entry objID |
last returned by GetUGEntry is passed, then user or |
group whose alphabetically next in the list of entries |
is returned. |
output: The user or group ID. |
Result Codes |
noErr 0 No error |
fnfErr -43 No more users or groups |
paramErr -50 Function not supported; or, ioObjID is |
negative |
__________ |
Also see: GetUGEntries |
*/ |
/*****************************************************************************/ |
#ifdef __cplusplus |
} |
#endif |
#include "OptimizationEnd.h" |
#endif /* __MOREFILES__ */ |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-03-13