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.
CHeaders/MoreFiles.h
/* |
File: MoreFiles.h |
Contains: The long lost high-level and FSSpec File Manager functions. |
Version: Technology: MoreFiles |
Release: 1.5.4 |
Copyright: © 1992-2002 by Apple Computer, Inc., all rights reserved. |
Bugs?: For bug reports, consult the following page on |
the World Wide Web: |
http://developer.apple.com/bugreporter/ |
*/ |
/* |
Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. |
("Apple") in consideration of your agreement to the following terms, and your |
use, installation, modification or redistribution of this Apple software |
constitutes acceptance of these terms. If you do not agree with these terms, |
please do not use, install, modify or redistribute this Apple software. |
In consideration of your agreement to abide by the following terms, and subject |
to these terms, Apple grants you a personal, non-exclusive license, under AppleÕs |
copyrights in this original Apple software (the "Apple Software"), to use, |
reproduce, modify and redistribute the Apple Software, with or without |
modifications, in source and/or binary forms; provided that if you redistribute |
the Apple Software in its entirety and without modifications, you must retain |
this notice and the following text and disclaimers in all such redistributions of |
the Apple Software. Neither the name, trademarks, service marks or logos of |
Apple Computer, Inc. may be used to endorse or promote products derived from the |
Apple Software without specific prior written permission from Apple. Except as |
expressly stated in this notice, no other rights or licenses, express or implied, |
are granted by Apple herein, including but not limited to any patent rights that |
may be infringed by your derivative works or by other works in which the Apple |
Software may be incorporated. |
The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO |
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED |
WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN |
COMBINATION WITH YOUR PRODUCTS. |
IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR |
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION |
OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT |
(INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN |
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
#ifndef __MOREFILES__ |
#define __MOREFILES__ |
#ifndef __MACTYPES__ |
#include <MacTypes.h> |
#endif |
#ifndef __FILES__ |
#include <Files.h> |
#endif |
#include "Optimization.h" |
#if PRAGMA_ONCE |
#pragma once |
#endif |
#ifdef __cplusplus |
extern "C" { |
#endif |
#if PRAGMA_IMPORT |
#pragma import on |
#endif |
#if PRAGMA_STRUCT_ALIGN |
#pragma options align=mac68k |
#elif PRAGMA_STRUCT_PACKPUSH |
#pragma pack(push, 2) |
#elif PRAGMA_STRUCT_PACK |
#pragma pack(2) |
#endif |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
HGetVolParms( |
ConstStr255Param volName, |
short vRefNum, |
GetVolParmsInfoBuffer * volParmsInfo, |
long * infoSize); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
HCreateMinimum( |
short vRefNum, |
long dirID, |
ConstStr255Param fileName); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
FSpCreateMinimum(const FSSpec * spec); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
ExchangeFiles( |
short vRefNum, |
long srcDirID, |
ConstStr255Param srcName, |
long dstDirID, |
ConstStr255Param dstName); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
ResolveFileIDRef( |
ConstStr255Param volName, |
short vRefNum, |
long fileID, |
long * parID, |
StringPtr fileName); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
FSpResolveFileIDRef( |
ConstStr255Param volName, |
short vRefNum, |
long fileID, |
FSSpecPtr spec); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
CreateFileIDRef( |
short vRefNum, |
long parID, |
ConstStr255Param fileName, |
long * fileID); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
FSpCreateFileIDRef( |
const FSSpec * spec, |
long * fileID); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
DeleteFileIDRef( |
ConstStr255Param volName, |
short vRefNum, |
long fileID); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
FlushFile(short refNum); |
/* |
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. |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
LockRange( |
short refNum, |
long rangeLength, |
long rangeStart); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
UnlockRange( |
short refNum, |
long rangeLength, |
long rangeStart); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
GetForeignPrivs( |
short vRefNum, |
long dirID, |
ConstStr255Param name, |
void * foreignPrivBuffer, |
long * foreignPrivSize, |
long * foreignPrivInfo1, |
long * foreignPrivInfo2, |
long * foreignPrivInfo3, |
long * foreignPrivInfo4); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
FSpGetForeignPrivs( |
const FSSpec * spec, |
void * foreignPrivBuffer, |
long * foreignPrivSize, |
long * foreignPrivInfo1, |
long * foreignPrivInfo2, |
long * foreignPrivInfo3, |
long * foreignPrivInfo4); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
SetForeignPrivs( |
short vRefNum, |
long dirID, |
ConstStr255Param name, |
const void * foreignPrivBuffer, |
long * foreignPrivSize, |
long foreignPrivInfo1, |
long foreignPrivInfo2, |
long foreignPrivInfo3, |
long foreignPrivInfo4); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
FSpSetForeignPrivs( |
const FSSpec * spec, |
const void * foreignPrivBuffer, |
long * foreignPrivSize, |
long foreignPrivInfo1, |
long foreignPrivInfo2, |
long foreignPrivInfo3, |
long foreignPrivInfo4); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
HGetLogInInfo( |
ConstStr255Param volName, |
short vRefNum, |
short * loginMethod, |
StringPtr userName); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
HGetDirAccess( |
short vRefNum, |
long dirID, |
ConstStr255Param name, |
long * ownerID, |
long * groupID, |
long * accessRights); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
FSpGetDirAccess( |
const FSSpec * spec, |
long * ownerID, |
long * groupID, |
long * accessRights); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
HSetDirAccess( |
short vRefNum, |
long dirID, |
ConstStr255Param name, |
long ownerID, |
long groupID, |
long accessRights); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
FSpSetDirAccess( |
const FSSpec * spec, |
long ownerID, |
long groupID, |
long accessRights); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
HMapID( |
ConstStr255Param volName, |
short vRefNum, |
long ugID, |
short objType, |
StringPtr 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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
HMapName( |
ConstStr255Param volName, |
short vRefNum, |
ConstStr255Param name, |
short objType, |
long * ugID); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
HCopyFile( |
short srcVRefNum, |
long srcDirID, |
ConstStr255Param srcName, |
short dstVRefNum, |
long dstDirID, |
ConstStr255Param dstPathname, |
ConstStr255Param copyName); |
/* |
The HCopyFile function duplicates a file and optionally 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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
FSpCopyFile( |
const FSSpec * srcSpec, |
const FSSpec * dstSpec, |
ConstStr255Param copyName); |
/* |
The FSpCopyFile function duplicates a file and optionally 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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
HMoveRename( |
short vRefNum, |
long srcDirID, |
ConstStr255Param srcName, |
long dstDirID, |
ConstStr255Param dstpathName, |
ConstStr255Param copyName); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
FSpMoveRename( |
const FSSpec * srcSpec, |
const FSSpec * dstSpec, |
ConstStr255Param copyName); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
GetVolMountInfoSize( |
ConstStr255Param volName, |
short vRefNum, |
short * size); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
GetVolMountInfo( |
ConstStr255Param volName, |
short vRefNum, |
void * volMountInfo); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
VolumeMount( |
const void * volMountInfo, |
short * vRefNum); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
Share( |
short vRefNum, |
long dirID, |
ConstStr255Param name); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
FSpShare(const FSSpec * spec); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
Unshare( |
short vRefNum, |
long dirID, |
ConstStr255Param name); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
FSpUnshare(const FSSpec * spec); |
/* |
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 |
*/ |
/*****************************************************************************/ |
EXTERN_API( OSErr ) |
GetUGEntry( |
short objType, |
StringPtr objName, |
long * objID); |
/* |
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 |
*/ |
/*****************************************************************************/ |
#include "OptimizationEnd.h" |
#if PRAGMA_STRUCT_ALIGN |
#pragma options align=reset |
#elif PRAGMA_STRUCT_PACKPUSH |
#pragma pack(pop) |
#elif PRAGMA_STRUCT_PACK |
#pragma pack() |
#endif |
#ifdef PRAGMA_IMPORT_OFF |
#pragma import off |
#elif PRAGMA_IMPORT |
#pragma import reset |
#endif |
#ifdef __cplusplus |
} |
#endif |
#endif /* __MOREFILES__ */ |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14