-/*
- File: MoreFilesExtras.h
-
- Contains: A collection of useful high-level File Manager routines.
-
- Version: Technology: MoreFiles
- Release: 1.5.2
-
- Copyright: © 1992-2001 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/
-
-*/
-
-/*
- 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.
-*/
-
-#ifndef __MOREFILESEXTRAS__
-#define __MOREFILESEXTRAS__
-
-#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
-
-/*****************************************************************************/
-
-/*
-** Bit masks and macros to get common information out of ioACUser returned
-** by PBGetCatInfo (remember to clear ioACUser before calling PBGetCatInfo
-** since some file systems don't bother to set this field).
-**
-** Use the GetDirAccessRestrictions or FSpGetDirAccessRestrictions
-** functions to retrieve the ioACUser access restrictions byte for
-** a folder.
-**
-** Note: The access restriction byte returned by PBGetCatInfo is the
-** 2's complement of the user's privileges byte returned in
-** ioACAccess by PBHGetDirAccess.
-*/
-
-enum {
- /* mask for just the access restriction bits */
- acUserAccessMask = (kioACUserNoSeeFolderMask + kioACUserNoSeeFilesMask + kioACUserNoMakeChangesMask), /* common access privilege settings */
- acUserFull = 0x00, /* no access restiction bits on */
- acUserNone = acUserAccessMask, /* all access restiction bits on */
- acUserDropBox = kioACUserNoSeeFolderMask + kioACUserNoSeeFilesMask, /* make changes, but not see files or folders */
- acUserBulletinBoard = kioACUserNoMakeChangesMask /* see files and folders, but not make changes */
-};
-
-
-/*****************************************************************************/
-
-/*
-** Deny mode permissions for use with the HOpenAware, HOpenRFAware,
-** FSpOpenAware, and FSpOpenRFAware functions.
-** Note: Common settings are the ones with comments.
-*/
-
-enum {
- dmNone = 0x0000,
- dmNoneDenyRd = fsRdDenyPerm,
- dmNoneDenyWr = fsWrDenyPerm,
- dmNoneDenyRdWr = (fsRdDenyPerm + fsWrDenyPerm),
- dmRd = fsRdPerm, /* Single writer, multiple readers; the readers */
- dmRdDenyRd = (fsRdPerm + fsRdDenyPerm),
- dmRdDenyWr = (fsRdPerm + fsWrDenyPerm), /* Browsing - equivalent to fsRdPerm */
- dmRdDenyRdWr = (fsRdPerm + fsRdDenyPerm + fsWrDenyPerm),
- dmWr = fsWrPerm,
- dmWrDenyRd = (fsWrPerm + fsRdDenyPerm),
- dmWrDenyWr = (fsWrPerm + fsWrDenyPerm),
- dmWrDenyRdWr = (fsWrPerm + fsRdDenyPerm + fsWrDenyPerm),
- dmRdWr = fsRdWrPerm, /* Shared access - equivalent to fsRdWrShPerm */
- dmRdWrDenyRd = (fsRdWrPerm + fsRdDenyPerm),
- dmRdWrDenyWr = (fsRdWrPerm + fsWrDenyPerm), /* Single writer, multiple readers; the writer */
- dmRdWrDenyRdWr = (fsRdWrPerm + fsRdDenyPerm + fsWrDenyPerm) /* Exclusive access - equivalent to fsRdWrPerm */
-};
-
-
-/*****************************************************************************/
-
-/*
-** For those times where you need to use more than one kind of File Manager parameter
-** block but don't feel like wasting stack space, here's a parameter block you can reuse.
-*/
-
-
-union UniversalFMPB {
- ParamBlockRec PB;
- CInfoPBRec ciPB;
- DTPBRec dtPB;
- HParamBlockRec hPB;
- CMovePBRec cmPB;
- WDPBRec wdPB;
- FCBPBRec fcbPB;
- XVolumeParam xPB;
-};
-typedef union UniversalFMPB UniversalFMPB;
-typedef UniversalFMPB * UniversalFMPBPtr;
-typedef UniversalFMPBPtr * UniversalFMPBHandle;
-
-/*
-** Used by GetUGEntries to return user or group lists
-*/
-
-struct UGEntry {
- short objType; /* object type: -1 = group; 0 = user */
- long objID; /* the user or group ID */
- Str31 name; /* the user or group name */
-};
-typedef struct UGEntry UGEntry;
-typedef UGEntry * UGEntryPtr;
-typedef UGEntryPtr * UGEntryHandle;
-
-/*
-** I use the following records instead of the AFPVolMountInfo and AFPXVolMountInfo structures in Files.h
-*/
-typedef unsigned char Str8[9];
-
-struct MyAFPVolMountInfo {
- short length; /* length of this record */
- VolumeType media; /* type of media, always AppleShareMediaType */
- short flags; /* 0 = normal mount; set bit 0 to inhibit greeting messages */
- char nbpInterval; /* NBP interval parameter; 7 is a good choice */
- char nbpCount; /* NBP count parameter; 5 is a good choice */
- short uamType; /* User Authentication Method */
- short zoneNameOffset; /* offset from start of record to zoneName */
- short serverNameOffset; /* offset from start of record to serverName */
- short volNameOffset; /* offset from start of record to volName */
- short userNameOffset; /* offset from start of record to userName */
- short userPasswordOffset; /* offset from start of record to userPassword */
- short volPasswordOffset; /* offset from start of record to volPassword */
- Str32 zoneName; /* server's AppleTalk zone name */
- char filler1; /* to word align volPassword */
- Str32 serverName; /* server name */
- char filler2; /* to word align volPassword */
- Str27 volName; /* volume name */
- Str31 userName; /* user name (zero length Pascal string for guest) */
- Str8 userPassword; /* user password (zero length Pascal string if no user password) */
- char filler3; /* to word align volPassword */
- Str8 volPassword; /* volume password (zero length Pascal string if no volume password) */
- char filler4; /* to end record on word boundry */
-};
-typedef struct MyAFPVolMountInfo MyAFPVolMountInfo;
-typedef MyAFPVolMountInfo * MyAFPVolMountInfoPtr;
-typedef MyAFPVolMountInfoPtr * MyAFPVolMountInfoHandle;
-
-struct MyAFPXVolMountInfo {
- short length; /* length of this record */
- VolumeType media; /* type of media, always AppleShareMediaType */
- short flags; /* bits for no messages, no reconnect, etc */
- char nbpInterval; /* NBP interval parameter; 7 is a good choice */
- char nbpCount; /* NBP count parameter; 5 is a good choice */
- short uamType; /* User Authentication Method */
- short zoneNameOffset; /* offset from start of record to zoneName */
- short serverNameOffset; /* offset from start of record to serverName */
- short volNameOffset; /* offset from start of record to volName */
- short userNameOffset; /* offset from start of record to userName */
- short userPasswordOffset; /* offset from start of record to userPassword */
- short volPasswordOffset; /* offset from start of record to volPassword */
- short extendedFlags; /* extended flags word */
- short uamNameOffset; /* offset to a pascal UAM name string */
- short alternateAddressOffset; /* offset to Alternate Addresses in tagged format */
- Str32 zoneName; /* server's AppleTalk zone name */
- char filler1; /* to word align volPassword */
- Str32 serverName; /* server name */
- char filler2; /* to word align volPassword */
- Str27 volName; /* volume name */
- Str31 userName; /* user name (zero length Pascal string for guest) */
- Str8 userPassword; /* user password (zero length Pascal string if no user password) */
- char filler3; /* to word align volPassword */
- Str8 volPassword; /* volume password (zero length Pascal string if no volume password) */
- char filler4; /* to word align uamNameOffset */
- Str32 uamName; /* UAM name */
- char filler5; /* to word align alternateAddress */
- char alternateAddress[1]; /* AFPAlternateAddress */
-};
-typedef struct MyAFPXVolMountInfo MyAFPXVolMountInfo;
-typedef MyAFPXVolMountInfo * MyAFPXVolMountInfoPtr;
-typedef MyAFPXVolMountInfoPtr * MyAFPXVolMountInfoHandle;
-
-/*****************************************************************************/
-
-/* Functions to get information out of GetVolParmsInfoBuffer. */
-
-/* version 1 field getters */
-
-EXTERN_API( short )
-GetVolParmsInfoVersion(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( long )
-GetVolParmsInfoAttrib(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Handle )
-GetVolParmsInfoLocalHand(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( long )
-GetVolParmsInfoServerAdr(const GetVolParmsInfoBuffer * volParms);
-
-
-
-/* version 2 field getters (assume zero result if version < 2) */
-
-EXTERN_API( long )
-GetVolParmsInfoVolumeGrade(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( long )
-GetVolParmsInfoForeignPrivID(const GetVolParmsInfoBuffer * volParms);
-
-
-
-/* version 3 field getters (assume zero result if version < 3) */
-
-EXTERN_API( long )
-GetVolParmsInfoExtendedAttributes(const GetVolParmsInfoBuffer * volParms);
-
-
-
-/* attribute bits supported by all versions of GetVolParmsInfoBuffer */
-
-EXTERN_API( Boolean )
-isNetworkVolume(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasLimitFCBs(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasLocalWList(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasNoMiniFndr(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasNoVNEdit(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasNoLclSync(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasTrshOffLine(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasNoSwitchTo(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasNoDeskItems(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasNoBootBlks(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasAccessCntl(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasNoSysDir(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasExtFSVol(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasOpenDeny(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasCopyFile(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasMoveRename(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasDesktopMgr(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasShortName(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasFolderLock(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasPersonalAccessPrivileges(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasUserGroupList(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasCatSearch(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasFileIDs(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasBTreeMgr(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-hasBlankAccessPrivileges(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-supportsAsyncRequests(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-supportsTrashVolumeCache(const GetVolParmsInfoBuffer * volParms);
-
-
-
-/* attribute bits supported by version 3 and greater versions of GetVolParmsInfoBuffer */
-
-EXTERN_API( Boolean )
-volIsEjectable(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-volSupportsHFSPlusAPIs(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-volSupportsFSCatalogSearch(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-volSupportsFSExchangeObjects(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-volSupports2TBFiles(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-volSupportsLongNames(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-volSupportsMultiScriptNames(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-volSupportsNamedForks(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-volSupportsSubtreeIterators(const GetVolParmsInfoBuffer * volParms);
-
-
-EXTERN_API( Boolean )
-volL2PCanMapFileBlocks(const GetVolParmsInfoBuffer * volParms);
-
-
-
-/*****************************************************************************/
-
-/* Functions for testing ioACUser bits. */
-
-EXTERN_API( Boolean )
-userIsOwner(SInt8 ioACUser);
-
-
-EXTERN_API( Boolean )
-userHasFullAccess(SInt8 ioACUser);
-
-
-EXTERN_API( Boolean )
-userHasDropBoxAccess(SInt8 ioACUser);
-
-
-EXTERN_API( Boolean )
-userHasBulletinBoard(SInt8 ioACUser);
-
-
-EXTERN_API( Boolean )
-userHasNoAccess(SInt8 ioACUser);
-
-
-
-/*****************************************************************************/
-
-EXTERN_API( void )
-TruncPString(
- StringPtr destination,
- ConstStr255Param source,
- short maxLength);
-
-
-/*
- The TruncPString function copies up to maxLength characters from
- the source Pascal string to the destination Pascal string. TruncPString
- ensures that the truncated string ends on a single-byte character, or on
- the last byte of a multi-byte character.
-
- destination output: destination Pascal string.
- source input: source Pascal string.
- maxLength output: The maximum allowable length of the destination
- string.
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( Ptr )
-GetTempBuffer(
- long buffReqSize,
- long * buffActSize);
-
-
-/*
- The GetTempBuffer function allocates a temporary buffer for file system
- operations which is at least 1024 bytes (1K) and a multiple of
- 1024 bytes.
-
- buffReqSize input: Size you'd like the buffer to be.
- buffActSize output: Size of buffer allocated.
- function result output: Pointer to memory allocated or nil if no memory
- was available. The caller is responsible for
- disposing of this buffer with DisposePtr.
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetVolumeInfoNoName(
- ConstStr255Param pathname,
- short vRefNum,
- HParmBlkPtr pb);
-
-
-/*
- GetVolumeInfoNoName uses pathname and vRefNum to call PBHGetVInfoSync
- in cases where the returned volume name is not needed by the caller.
- The pathname and vRefNum parameters are not touched, and the pb
- parameter is initialized by PBHGetVInfoSync except that ioNamePtr in
- the parameter block is always returned as NULL (since it might point
- to GetVolumeInfoNoName's local variable tempPathname).
-
- I noticed using this code in several places, so here it is once.
- This reduces the code size of MoreFiles.
-
- pathName input: Pointer to a full pathname or nil. If you pass in a
- partial pathname, it is ignored. A full pathname to a
- volume must end with a colon character (:).
- vRefNum input: Volume specification (volume reference number, working
- directory number, drive number, or 0).
- pb input: A pointer to HParamBlockRec.
- output: The parameter block as filled in by PBHGetVInfoSync
- except that ioNamePtr will always be NULL.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- paramErr -50 No default volume, or pb was NULL
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-XGetVolumeInfoNoName(
- ConstStr255Param pathname,
- short vRefNum,
- XVolumeParamPtr pb);
-
-
-/*
- XGetVolumeInfoNoName uses pathname and vRefNum to call PBXGetVolInfoSync
- in cases where the returned volume name is not needed by the caller.
- The pathname and vRefNum parameters are not touched, and the pb
- parameter is initialized by PBXGetVolInfoSync except that ioNamePtr in
- the parameter block is always returned as NULL (since it might point
- to XGetVolumeInfoNoName's local variable tempPathname).
-
- pathName input: Pointer to a full pathname or nil. If you pass in a
- partial pathname, it is ignored. A full pathname to a
- volume must end with a colon character (:).
- vRefNum input: Volume specification (volume reference number, working
- directory number, drive number, or 0).
- pb input: A pointer to HParamBlockRec.
- output: The parameter block as filled in by PBXGetVolInfoSync
- except that ioNamePtr will always be NULL.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- paramErr -50 No default volume, or pb was NULL
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetCatInfoNoName(
- short vRefNum,
- long dirID,
- ConstStr255Param name,
- CInfoPBPtr pb);
-
-
-/*
- GetCatInfoNoName uses vRefNum, dirID and name to call PBGetCatInfoSync
- in cases where the returned object is not needed by the caller.
- The vRefNum, dirID and name parameters are not touched, and the pb
- parameter is initialized by PBGetCatInfoSync except that ioNamePtr in
- the parameter block is always returned as NULL (since it might point
- to GetCatInfoNoName's local variable tempName).
-
- I noticed using this code in several places, so here it is once.
- This reduces the code size of MoreFiles.
-
- 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.
- pb input: A pointer to CInfoPBRec.
- output: The parameter block as filled in by
- PBGetCatInfoSync except that ioNamePtr will
- always be NULL.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-DetermineVRefNum(
- ConstStr255Param pathname,
- short vRefNum,
- short * realVRefNum);
-
-
-/*
- The DetermineVRefNum function determines the volume reference number of
- a volume from a pathname, a volume specification, or a combination
- of the two.
- WARNING: Volume names on the Macintosh are *not* unique -- Multiple
- mounted volumes can have the same name. For this reason, the use of a
- volume name or full pathname to identify a specific volume may not
- produce the results you expect. If more than one volume has the same
- name and a volume name or full pathname is used, the File Manager
- currently uses the first volume it finds with a matching name in the
- volume queue.
-
- pathName input: Pointer to a full pathname or nil. If you pass in a
- partial pathname, it is ignored. A full pathname to a
- volume must end with a colon character (:).
- vRefNum input: Volume specification (volume reference number, working
- directory number, drive number, or 0).
- realVRefNum output: The real volume reference number.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- paramErr -50 No default volume
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-HGetVInfo(
- short volReference,
- StringPtr volName,
- short * vRefNum,
- unsigned long * freeBytes,
- unsigned long * totalBytes);
-
-
-/*
- The HGetVInfo function returns the name, volume reference number,
- available space (in bytes), and total space (in bytes) for the
- specified volume. You can specify the volume by providing its drive
- number, volume reference number, or 0 for the default volume.
- This routine is compatible with volumes up to 4 gigabytes.
-
- volReference input: The drive number, volume reference number,
- or 0 for the default volume.
- volName input: A pointer to a buffer (minimum Str27) where
- the volume name is to be returned or must
- be nil.
- output: The volume name.
- vRefNum output: The volume reference number.
- freeBytes output: The number of free bytes on the volume.
- freeBytes is an unsigned long value.
- totalBytes output: The total number of bytes on the volume.
- totalBytes is an unsigned long value.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- paramErr -50 No default volume
-
- __________
-
- Also see: XGetVInfo
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-XGetVInfo(
- short volReference,
- StringPtr volName,
- short * vRefNum,
- UInt64 * freeBytes,
- UInt64 * totalBytes);
-
-
-/*
- The XGetVInfo function returns the name, volume reference number,
- available space (in bytes), and total space (in bytes) for the
- specified volume. You can specify the volume by providing its drive
- number, volume reference number, or 0 for the default volume.
- This routine is compatible with volumes up to 2 terabytes.
-
- volReference input: The drive number, volume reference number,
- or 0 for the default volume.
- volName input: A pointer to a buffer (minimum Str27) where
- the volume name is to be returned or must
- be nil.
- output: The volume name.
- vRefNum output: The volume reference number.
- freeBytes output: The number of free bytes on the volume.
- freeBytes is an UnsignedWide value.
- totalBytes output: The total number of bytes on the volume.
- totalBytes is an UnsignedWide value.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- paramErr -50 No default volume
-
- __________
-
- Also see: HGetVInfo
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-CheckVolLock(
- ConstStr255Param pathname,
- short vRefNum);
-
-
-/*
- The CheckVolLock function determines if a volume is locked - either by
- hardware or by software. If CheckVolLock returns noErr, then the volume
- is not locked.
-
- pathName input: Pointer to a full pathname or nil. If you pass in a
- partial pathname, it is ignored. A full pathname to a
- volume must end with a colon character (:).
- vRefNum input: Volume specification (volume reference number, working
- directory number, drive number, or 0).
-
- Result Codes
- noErr 0 No error - volume not locked
- nsvErr -35 No such volume
- wPrErr -44 Volume locked by hardware
- vLckdErr -46 Volume locked by software
- paramErr -50 No default volume
-*/
-
-/*****************************************************************************/
-/*
-** The following routines call Mac OS routines that are not supported by
-** Carbon:
-**
-** GetDriverName
-** FindDrive
-** GetDiskBlocks
-** GetVolState
-*/
-
-#if !TARGET_API_MAC_CARBON // {
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetDriverName(
- short driverRefNum,
- Str255 driverName);
-
-
-/*
- The GetDriverName function returns a device driver's name.
-
- driverRefNum input: The driver reference number.
- driverName output: The driver's name.
-
- Result Codes
- noErr 0 No error
- badUnitErr -21 Bad driver reference number
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FindDrive(
- ConstStr255Param pathname,
- short vRefNum,
- DrvQElPtr * driveQElementPtr);
-
-
-/*
- The FindDrive function returns a pointer to a mounted volume's
- drive queue element.
-
- pathName input: Pointer to a full pathname or nil. If you
- pass in a partial pathname, it is ignored.
- A full pathname to a volume must end with
- a colon character (:).
- vRefNum input: Volume specification (volume reference
- number, working directory number, drive
- number, or 0).
- driveQElementPtr output: Pointer to a volume's drive queue element
- in the drive queue. DO NOT change the
- DrvQEl.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- paramErr -50 No default volume
- nsDrvErr -56 No such drive
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetDiskBlocks(
- ConstStr255Param pathname,
- short vRefNum,
- unsigned long * numBlocks);
-
-
-/*
- The GetDiskBlocks function returns the number of physical disk
- blocks on a disk drive. NOTE: This is not the same as volume
- allocation blocks!
-
- pathName input: Pointer to a full pathname or nil. If you
- pass in a partial pathname, it is ignored.
- A full pathname to a volume must end with
- a colon character (:).
- vRefNum input: Volume specification (volume reference
- number, working directory number, drive
- number, or 0).
- numBlocks output: The number of physical disk blocks on the disk drive.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- paramErr -50 No default volume, driver reference
- number is zero, ReturnFormatList
- returned zero blocks, DriveStatus
- returned an unknown value, or
- driveQElementPtr->qType is unknown
- nsDrvErr -56 No such drive
- statusErr Ð18 Driver does not respond to this
- status request
- badUnitErr Ð21 Driver reference number does not
- match unit table
- unitEmptyErr Ð22 Driver reference number specifies
- a nil handle in unit table
- abortErr Ð27 Request aborted by KillIO
- notOpenErr Ð28 Driver not open
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetVolState(
- ConstStr255Param pathname,
- short vRefNum,
- Boolean * volumeOnline,
- Boolean * volumeEjected,
- Boolean * driveEjectable,
- Boolean * driverWantsEject);
-
-
-/*
- The GetVolState function determines if a volume is online or offline,
- if an offline volume is ejected, and if the volume's driver is
- ejectable or wants eject calls.
-
- pathName input: Pointer to a full pathname or nil.
- vRefNum input: Volume specification (volume reference number,
- working directory number, drive number, or 0).
- volumeOnline output: True if the volume is online;
- False if the volume is offline.
- volumeEjected output: True if the volume is ejected (ejected
- volumes are always offline); False if the
- volume is not ejected.
- driveEjectable output: True if the volume's drive is ejectable;
- False if the volume's drive is not ejectable.
- driverWantsEject output: True if the volume's driver wants an Eject
- request after unmount (even if the drive
- is not ejectable); False if the volume's
- driver does not need an eject request.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- paramErr -50 No default volume, or pb was NULL
-*/
-
-/*****************************************************************************/
-
-#endif // } !TARGET_API_MAC_CARBON
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetVolFileSystemID(
- ConstStr255Param pathname,
- short vRefNum,
- short * fileSystemID);
-
-
-/*
- The GetVolFileSystemID function returned the file system ID of
- a mounted volume. The file system ID identifies the file system
- that handles requests to a particular volume. Here's a partial list
- of file system ID numbers (only Apple's file systems are listed):
- FSID File System
- ----- -----------------------------------------------------
- $0000 Macintosh HFS or MFS
- $0100 ProDOS File System
- $0101 PowerTalk Mail Enclosures
- $4147 ISO 9660 File Access (through Foreign File Access)
- $4242 High Sierra File Access (through Foreign File Access)
- $464D QuickTake File System (through Foreign File Access)
- $4953 Macintosh PC Exchange (MS-DOS)
- $4A48 Audio CD Access (through Foreign File Access)
- $4D4B Apple Photo Access (through Foreign File Access)
-
- See the Technical Note "FL 35 - Determining Which File System
- Is Active" and the "Guide to the File System Manager" for more
- information.
-
- pathName input: Pointer to a full pathname or nil. If you pass
- in a partial pathname, it is ignored. A full
- pathname to a volume must contain at least
- one colon character (:) and must not start with
- a colon character.
- vRefNum input: Volume specification (volume reference number,
- working directory number, drive number, or 0).
- fileSystemID output: The volume's file system ID.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- paramErr -50 No default volume, or pb was NULL
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-UnmountAndEject(
- ConstStr255Param pathname,
- short vRefNum);
-
-
-/*
- The UnmountAndEject function unmounts and ejects a volume. The volume
- is ejected only if it is ejectable and not already ejected.
-
- pathName input: Pointer to a full pathname or nil. If you pass in a
- partial pathname, it is ignored. A full pathname to a
- volume must end with a colon character (:).
- vRefNum input: Volume specification (volume reference number, working
- directory number, drive number, or 0).
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad volume name
- fBsyErr -47 One or more files are open
- paramErr -50 No default volume
- nsDrvErr -56 No such drive
- extFSErr -58 External file system error - no file
- system claimed this call.
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-OnLine(
- FSSpecPtr volumes,
- short reqVolCount,
- short * actVolCount,
- short * volIndex);
-
-
-/*
- The OnLine function returns the list of volumes currently mounted in
- an array of FSSpec records.
-
- A noErr result indicates that the volumes array was filled
- (actVolCount == reqVolCount) and there may be additional volumes
- mounted. A nsvErr result indicates that the end of the volume list
- was found and actVolCount volumes were actually found this time.
-
- volumes input: Pointer to array of FSSpec where the volume list
- is returned.
- reqVolCount input: Maximum number of volumes to return (the number of
- elements in the volumes array).
- actVolCount output: The number of volumes actually returned.
- volIndex input: The current volume index position. Set to 1 to
- start with the first volume.
- output: The volume index position to get the next volume.
- Pass this value the next time you call OnLine to
- start where you left off.
-
- Result Codes
- noErr 0 No error, but there are more volumes
- to list
- nsvErr -35 No more volumes to be listed
- paramErr -50 volIndex was <= 0
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-SetDefault(
- short newVRefNum,
- long newDirID,
- short * oldVRefNum,
- long * oldDirID);
-
-
-/*
- The SetDefault function sets the default volume and directory to the
- volume specified by newVRefNum and the directory specified by newDirID.
- The current default volume reference number and directory ID are
- returned in oldVRefNum and oldDir and must be used to restore the
- default volume and directory to their previous state *as soon as
- possible* with the RestoreDefault function. These two functions are
- designed to be used as a wrapper around Standard I/O routines where
- the location of the file is implied to be the default volume and
- directory. In other words, this is how you should use these functions:
-
- error = SetDefault(newVRefNum, newDirID, &oldVRefNum, &oldDirID);
- if ( error == noErr )
- {
- // call the Stdio functions like remove, rename, tmpfile,
- // fopen, freopen, etc. or non-ANSI extensions like
- // fdopen,fsetfileinfo, -- create, open, unlink, etc. here!
-
- error = RestoreDefault(oldVRefNum, oldDirID);
- }
-
- By using these functions as a wrapper, you won't need to open a working
- directory (because SetDefault and RestoreDefault use HSetVol) and you
- won't have to worry about the effects of using HSetVol (documented in
- Technical Note "FL 11 - PBHSetVol is Dangerous" and in the
- Inside Macintosh: Files book in the description of the HSetVol and
- PBHSetVol functions) because the default volume/directory is restored
- before giving up control to code that might be affected by HSetVol.
-
- newVRefNum input: Volume specification (volume reference number,
- working directory number, drive number, or 0) of
- the new default volume.
- newDirID input: Directory ID of the new default directory.
- oldVRefNum output: The volume specification to save for use with
- RestoreDefault.
- oldDirID output: The directory ID to save for use with
- RestoreDefault.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- bdNamErr -37 Bad volume name
- fnfErr -43 Directory not found
- paramErr -50 No default volume
- afpAccessDenied -5000 User does not have access to the directory
-
- __________
-
- Also see: RestoreDefault
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-RestoreDefault(
- short oldVRefNum,
- long oldDirID);
-
-
-/*
- The RestoreDefault function restores the default volume and directory
- to the volume specified by oldVRefNum and the directory specified by
- oldDirID. The oldVRefNum and oldDirID parameters were previously
- obtained from the SetDefault function. These two functions are designed
- to be used as a wrapper around Standard C I/O routines where the
- location of the file is implied to be the default volume and directory.
- In other words, this is how you should use these functions:
-
- error = SetDefault(newVRefNum, newDirID, &oldVRefNum, &oldDirID);
- if ( error == noErr )
- {
- // call the Stdio functions like remove, rename, tmpfile,
- // fopen, freopen, etc. or non-ANSI extensions like
- // fdopen,fsetfileinfo, -- create, open, unlink, etc. here!
-
- error = RestoreDefault(oldVRefNum, oldDirID);
- }
-
- By using these functions as a wrapper, you won't need to open a working
- directory (because SetDefault and RestoreDefault use HSetVol) and you
- won't have to worry about the effects of using HSetVol (documented in
- Technical Note "FL 11 - PBHSetVol is Dangerous" and in the
- Inside Macintosh: Files book in the description of the HSetVol and
- PBHSetVol functions) because the default volume/directory is restored
- before giving up control to code that might be affected by HSetVol.
-
- oldVRefNum input: The volume specification to restore.
- oldDirID input: The directory ID to restore.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- bdNamErr -37 Bad volume name
- fnfErr -43 Directory not found
- paramErr -50 No default volume
- rfNumErr -51 Bad working directory reference number
- afpAccessDenied -5000 User does not have access to the directory
-
- __________
-
- Also see: SetDefault
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetDInfo(
- short vRefNum,
- long dirID,
- ConstStr255Param name,
- DInfo * fndrInfo);
-
-
-/*
- The GetDInfo function gets the finder information for a directory.
-
- 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.
- fndrInfo output: If the object is a directory, then its DInfo.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- Also see: FSpGetDInfo, FSpGetFInfoCompat
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpGetDInfo(
- const FSSpec * spec,
- DInfo * fndrInfo);
-
-
-/*
- The FSpGetDInfo function gets the finder information for a directory.
-
- spec input: An FSSpec record specifying the directory.
- fndrInfo output: If the object is a directory, then its DInfo.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- Also see: FSpGetFInfoCompat, GetDInfo
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-SetDInfo(
- short vRefNum,
- long dirID,
- ConstStr255Param name,
- const DInfo * fndrInfo);
-
-
-/*
- The SetDInfo function sets the finder information for a directory.
-
- 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.
- fndrInfo input: The DInfo.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- Also see: FSpSetDInfo, FSpSetFInfoCompat
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpSetDInfo(
- const FSSpec * spec,
- const DInfo * fndrInfo);
-
-
-/*
- The FSpSetDInfo function sets the finder information for a directory.
-
- spec input: An FSSpec record specifying the directory.
- fndrInfo input: The DInfo.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- Also see: FSpSetFInfoCompat, SetDInfo
-*/
-
-/*****************************************************************************/
-
-#if OLDROUTINENAMES
- #define GetDirID(vRefNum, dirID, name, theDirID, isDirectory) GetDirectoryID(vRefNum, dirID, name, theDirID, isDirectory)
-#endif
-EXTERN_API( OSErr )
-GetDirectoryID(
- short vRefNum,
- long dirID,
- ConstStr255Param name,
- long * theDirID,
- Boolean * isDirectory);
-
-
-/*
- The GetDirectoryID function gets the directory ID number of the
- directory specified. If a file is specified, then the parent
- directory of the file is returned and isDirectory is false. If
- a directory is specified, then that directory's ID number is
- returned and isDirectory is true.
- WARNING: Volume names on the Macintosh are *not* unique -- Multiple
- mounted volumes can have the same name. For this reason, the use of a
- volume name or full pathname to identify a specific volume may not
- produce the results you expect. If more than one volume has the same
- name and a volume name or full pathname is used, the File Manager
- currently uses the first volume it finds with a matching name in the
- volume queue.
-
- 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.
- theDirID output: If the object is a file, then its parent directory
- ID. If the object is a directory, then its ID.
- isDirectory output: True if object is a directory; false if
- object is a file.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-*/
-
-/*****************************************************************************/
-
-#if OLDROUTINENAMES
- #define DirIDFromFSSpec(spec, theDirID, isDirectory) FSpGetDirectoryID(spec, theDirID, isDirectory)
-#endif
-EXTERN_API( OSErr )
-FSpGetDirectoryID(
- const FSSpec * spec,
- long * theDirID,
- Boolean * isDirectory);
-
-
-/*
- The FSpGetDirectoryID function gets the directory ID number of the
- directory specified by spec. If spec is to a file, then the parent
- directory of the file is returned and isDirectory is false. If
- spec is to a directory, then that directory's ID number is
- returned and isDirectory is true.
-
- spec input: An FSSpec record specifying the directory.
- theDirID output: The directory ID.
- isDirectory output: True if object is a directory; false if
- object is a file.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetDirName(
- short vRefNum,
- long dirID,
- Str31 name);
-
-
-/*
- The GetDirName function gets the name of a directory from its
- directory ID.
-
- vRefNum input: Volume specification.
- dirID input: Directory ID.
- name output: Points to a Str31 where the directory name is to be
- returned.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- paramErr -50 No default volume or
- name parameter was NULL
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetIOACUser(
- short vRefNum,
- long dirID,
- ConstStr255Param name,
- SInt8 * ioACUser);
-
-
-/*
- GetIOACUser returns a directory's access restrictions byte.
- Use the masks and macro defined in MoreFilesExtras to check for
- specific access priviledges.
-
- 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.
- ioACUser output: The access restriction byte
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpGetIOACUser(
- const FSSpec * spec,
- SInt8 * ioACUser);
-
-
-/*
- FSpGetIOACUser returns a directory's access restrictions byte.
- Use the masks and macro defined in MoreFilesExtras to check for
- specific access priviledges.
-
- spec input: An FSSpec record specifying the directory.
- ioACUser output: The access restriction byte
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetParentID(
- short vRefNum,
- long dirID,
- ConstStr255Param name,
- long * parID);
-
-
-/*
- The GetParentID function gets the parent directory ID number of the
- specified object.
-
- 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.
- parID output: The parent directory ID of the specified object.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetFilenameFromPathname(
- ConstStr255Param pathname,
- Str255 filename);
-
-
-/*
- The GetFilenameFromPathname function gets the file (or directory) name
- from the end of a full or partial pathname. Returns notAFileErr if the
- pathname is nil, the pathname is empty, or the pathname cannot refer to
- a filename (with a noErr result, the pathname could still refer to a
- directory).
-
- pathname input: A full or partial pathname.
- filename output: The file (or directory) name.
-
- Result Codes
- noErr 0 No error
- notAFileErr -1302 The pathname is nil, the pathname
- is empty, or the pathname cannot refer
- to a filename
-
- __________
-
- See also: GetObjectLocation.
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetObjectLocation(
- short vRefNum,
- long dirID,
- ConstStr255Param pathname,
- short * realVRefNum,
- long * realParID,
- Str255 realName,
- Boolean * isDirectory);
-
-
-/*
- The GetObjectLocation function gets a file system object's location -
- that is, its real volume reference number, real parent directory ID,
- and name. While we're at it, determine if the object is a file or directory.
- If GetObjectLocation returns fnfErr, then the location information
- returned is valid, but it describes an object that doesn't exist.
- You can use the location information for another operation, such as
- creating a file or directory.
-
- vRefNum input: Volume specification.
- dirID input: Directory ID.
- pathname input: Pointer to object name, or nil when dirID specifies
- a directory that's the object.
- realVRefNum output: The real volume reference number.
- realParID output: The parent directory ID of the specified object.
- realName output: The name of the specified object (the case of the
- object name may not be the same as the object's
- catalog entry on disk - since the Macintosh file
- system is not case sensitive, it shouldn't matter).
- isDirectory output: True if object is a directory; false if object
- is a file.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- notAFileErr -1302 The pathname is nil, the pathname
- is empty, or the pathname cannot refer
- to a filename
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: FSMakeFSSpecCompat
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetDirItems(
- short vRefNum,
- long dirID,
- ConstStr255Param name,
- Boolean getFiles,
- Boolean getDirectories,
- FSSpecPtr items,
- short reqItemCount,
- short * actItemCount,
- short * itemIndex);
-
-
-/*
- The GetDirItems function returns a list of items in the specified
- directory in an array of FSSpec records. File, subdirectories, or
- both can be returned in the list.
-
- A noErr result indicates that the items array was filled
- (actItemCount == reqItemCount) and there may be additional items
- left in the directory. A fnfErr result indicates that the end of
- the directory list was found and actItemCount items were actually
- found this time.
-
- 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.
- getFiles input: Pass true to have files added to the items list.
- getDirectories input: Pass true to have directories added to the
- items list.
- items input: Pointer to array of FSSpec where the item list
- is returned.
- reqItemCount input: Maximum number of items to return (the number
- of elements in the items array).
- actItemCount output: The number of items actually returned.
- itemIndex input: The current item index position. Set to 1 to
- start with the first item in the directory.
- output: The item index position to get the next item.
- Pass this value the next time you call
- GetDirItems to start where you left off.
-
- Result Codes
- noErr 0 No error, but there are more items
- to list
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found, there are no more items
- to be listed.
- paramErr -50 No default volume or itemIndex was <= 0
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-DeleteDirectoryContents(
- short vRefNum,
- long dirID,
- ConstStr255Param name);
-
-
-/*
- The DeleteDirectoryContents function deletes the contents of a directory.
- All files and subdirectories in the specified directory are deleted.
- If a locked file or directory is encountered, it is unlocked and then
- deleted. If any unexpected errors are encountered,
- DeleteDirectoryContents quits and returns to the caller.
-
- vRefNum input: Volume specification.
- dirID input: Directory ID.
- name input: Pointer to directory name, or nil when dirID specifies
- a directory that's the object.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- wPrErr -44 Hardware volume lock
- fLckdErr -45 File is locked
- vLckdErr -46 Software volume lock
- fBsyErr -47 File busy, directory not empty, or working directory control block open
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- Also see: DeleteDirectory
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-DeleteDirectory(
- short vRefNum,
- long dirID,
- ConstStr255Param name);
-
-
-/*
- The DeleteDirectory function deletes a directory and its contents.
- All files and subdirectories in the specified directory are deleted.
- If a locked file or directory is encountered, it is unlocked and then
- deleted. After deleting the directories contents, the directory is
- deleted. If any unexpected errors are encountered, DeleteDirectory
- quits and returns to the caller.
-
- vRefNum input: Volume specification.
- dirID input: Directory ID.
- name input: Pointer to directory name, or nil when dirID specifies
- a directory that's the object.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- wPrErr -44 Hardware volume lock
- fLckdErr -45 File is locked
- vLckdErr -46 Software volume lock
- fBsyErr -47 File busy, directory not empty, or working directory control block open
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- Also see: DeleteDirectoryContents
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-CheckObjectLock(
- short vRefNum,
- long dirID,
- ConstStr255Param name);
-
-
-/*
- The CheckObjectLock function determines if a file or directory is locked.
- If CheckObjectLock returns noErr, then the file or directory
- is not locked. If CheckObjectLock returns fLckdErr, the it is locked.
-
- 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.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- Also see: FSpCheckObjectLock
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpCheckObjectLock(const FSSpec * spec);
-
-
-/*
- The FSpCheckObjectLock function determines if a file or directory is locked.
- If FSpCheckObjectLock returns noErr, then the file or directory
- is not locked.
-
- spec input: An FSSpec record specifying the object.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- Also see: CheckObjectLock
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetFileSize(
- short vRefNum,
- long dirID,
- ConstStr255Param fileName,
- long * dataSize,
- long * rsrcSize);
-
-
-/*
- The GetFileSize function returns the logical size of a file's
- data and resource fork.
-
- vRefNum input: Volume specification.
- dirID input: Directory ID.
- name input: The name of the file.
- dataSize output: The number of bytes in the file's data fork.
- rsrcSize output: The number of bytes in the file's resource fork.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- paramErr -50 No default volume
- dirNFErrdirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: FSpGetFileSize
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpGetFileSize(
- const FSSpec * spec,
- long * dataSize,
- long * rsrcSize);
-
-
-/*
- The FSpGetFileSize function returns the logical size of a file's
- data and resource fork.
-
- spec input: An FSSpec record specifying the file.
- dataSize output: The number of bytes in the file's data fork.
- rsrcSize output: The number of bytes in the file's resource fork.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- paramErr -50 No default volume
- dirNFErrdirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: GetFileSize
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-BumpDate(
- short vRefNum,
- long dirID,
- ConstStr255Param name);
-
-
-/*
- The BumpDate function changes the modification date of a file or
- directory to the current date/time. If the modification date is already
- equal to the current date/time, then add one second to the
- modification date.
-
- 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.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: FSpBumpDate
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpBumpDate(const FSSpec * spec);
-
-
-/*
- The FSpBumpDate function changes the modification date of a file or
- directory to the current date/time. If the modification date is already
- equal to the current date/time, then add one second to the
- modification date.
-
- spec input: An FSSpec record specifying the object.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: BumpDate
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-ChangeCreatorType(
- short vRefNum,
- long dirID,
- ConstStr255Param name,
- OSType creator,
- OSType fileType);
-
-
-/*
- The ChangeCreatorType function changes the creator or file type of a file.
-
- vRefNum input: Volume specification.
- dirID input: Directory ID.
- name input: The name of the file.
- creator input: The new creator type or 0x00000000 to leave
- the creator type alone.
- fileType input: The new file type or 0x00000000 to leave the
- file type alone.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- notAFileErr -1302 Name was not a file
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: FSpChangeCreatorType
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpChangeCreatorType(
- const FSSpec * spec,
- OSType creator,
- OSType fileType);
-
-
-/*
- The FSpChangeCreatorType function changes the creator or file type of a file.
-
- spec input: An FSSpec record specifying the file.
- creator input: The new creator type or 0x00000000 to leave
- the creator type alone.
- fileType input: The new file type or 0x00000000 to leave the
- file type alone.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- notAFileErr -1302 Name was not a file
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: ChangeCreatorType
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-ChangeFDFlags(
- short vRefNum,
- long dirID,
- ConstStr255Param name,
- Boolean setBits,
- unsigned short flagBits);
-
-
-/*
- The ChangeFDFlags function sets or clears Finder Flag bits in the
- fdFlags field of a file or directory's FInfo record.
-
- 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.
- setBits input: If true, then set the bits specified in flagBits.
- If false, then clear the bits specified in flagBits.
- flagBits input: The flagBits parameter specifies which Finder Flag
- bits to set or clear. If a bit in flagBits is set,
- then the same bit in fdFlags is either set or
- cleared depending on the state of the setBits
- parameter.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: FSpChangeFDFlags
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpChangeFDFlags(
- const FSSpec * spec,
- Boolean setBits,
- unsigned short flagBits);
-
-
-/*
- The FSpChangeFDFlags function sets or clears Finder Flag bits in the
- fdFlags field of a file or directory's FInfo record.
-
- spec input: An FSSpec record specifying the object.
- setBits input: If true, then set the bits specified in flagBits.
- If false, then clear the bits specified in flagBits.
- flagBits input: The flagBits parameter specifies which Finder Flag
- bits to set or clear. If a bit in flagBits is set,
- then the same bit in fdFlags is either set or
- cleared depending on the state of the setBits
- parameter.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: ChangeFDFlags
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-SetIsInvisible(
- short vRefNum,
- long dirID,
- ConstStr255Param name);
-
-
-/*
- The SetIsInvisible function sets the invisible bit in the fdFlags
- word of the specified file or directory's finder information.
-
- 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.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: FSpSetIsInvisible, ClearIsInvisible, FSpClearIsInvisible
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpSetIsInvisible(const FSSpec * spec);
-
-
-/*
- The FSpSetIsInvisible function sets the invisible bit in the fdFlags
- word of the specified file or directory's finder information.
-
- spec input: An FSSpec record specifying the object.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: SetIsInvisible, ClearIsInvisible, FSpClearIsInvisible
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-ClearIsInvisible(
- short vRefNum,
- long dirID,
- ConstStr255Param name);
-
-
-/*
- The ClearIsInvisible function clears the invisible bit in the fdFlags
- word of the specified file or directory's finder information.
-
- 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.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: SetIsInvisible, FSpSetIsInvisible, FSpClearIsInvisible
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpClearIsInvisible(const FSSpec * spec);
-
-
-/*
- The FSpClearIsInvisible function clears the invisible bit in the fdFlags
- word of the specified file or directory's finder information.
-
- spec input: An FSSpec record specifying the object.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: SetIsInvisible, FSpSetIsInvisible, ClearIsInvisible
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-SetNameLocked(
- short vRefNum,
- long dirID,
- ConstStr255Param name);
-
-
-/*
- The SetNameLocked function sets the nameLocked bit in the fdFlags word
- of the specified file or directory's finder information.
-
- 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.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: FSpSetNameLocked, ClearNameLocked, FSpClearNameLocked
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpSetNameLocked(const FSSpec * spec);
-
-
-/*
- The FSpSetNameLocked function sets the nameLocked bit in the fdFlags word
- of the specified file or directory's finder information.
-
- spec input: An FSSpec record specifying the object.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: SetNameLocked, ClearNameLocked, FSpClearNameLocked
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-ClearNameLocked(
- short vRefNum,
- long dirID,
- ConstStr255Param name);
-
-
-/*
- The ClearNameLocked function clears the nameLocked bit in the fdFlags
- word of the specified file or directory's finder information.
-
- 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.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: SetNameLocked, FSpSetNameLocked, FSpClearNameLocked
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpClearNameLocked(const FSSpec * spec);
-
-
-/*
- The FSpClearNameLocked function clears the nameLocked bit in the fdFlags
- word of the specified file or directory's finder information.
-
- spec input: An FSSpec record specifying the object.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: SetNameLocked, FSpSetNameLocked, ClearNameLocked
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-SetIsStationery(
- short vRefNum,
- long dirID,
- ConstStr255Param name);
-
-
-/*
- The SetIsStationery function sets the isStationery bit in the
- fdFlags word of the specified file or directory's finder information.
-
- 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.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: FSpSetIsStationery, ClearIsStationery, FSpClearIsStationery
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpSetIsStationery(const FSSpec * spec);
-
-
-/*
- The FSpSetIsStationery function sets the isStationery bit in the
- fdFlags word of the specified file or directory's finder information.
-
- spec input: An FSSpec record specifying the object.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: SetIsStationery, ClearIsStationery, FSpClearIsStationery
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-ClearIsStationery(
- short vRefNum,
- long dirID,
- ConstStr255Param name);
-
-
-/*
- The ClearIsStationery function clears the isStationery bit in the
- fdFlags word of the specified file or directory's finder information.
-
- 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.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: SetIsStationery, FSpSetIsStationery, FSpClearIsStationery
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpClearIsStationery(const FSSpec * spec);
-
-
-/*
- The FSpClearIsStationery function clears the isStationery bit in the
- fdFlags word of the specified file or directory's finder information.
-
- spec input: An FSSpec record specifying the object.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: SetIsStationery, FSpSetIsStationery, ClearIsStationery
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-SetHasCustomIcon(
- short vRefNum,
- long dirID,
- ConstStr255Param name);
-
-
-/*
- The SetHasCustomIcon function sets the hasCustomIcon bit in the
- fdFlags word of the specified file or directory's finder information.
-
- 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.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: FSpSetHasCustomIcon, ClearHasCustomIcon, FSpClearHasCustomIcon
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpSetHasCustomIcon(const FSSpec * spec);
-
-
-/*
- The FSpSetHasCustomIcon function sets the hasCustomIcon bit in the
- fdFlags word of the specified file or directory's finder information.
-
- spec input: An FSSpec record specifying the object.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: SetHasCustomIcon, ClearHasCustomIcon, FSpClearHasCustomIcon
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-ClearHasCustomIcon(
- short vRefNum,
- long dirID,
- ConstStr255Param name);
-
-
-/*
- The ClearHasCustomIcon function clears the hasCustomIcon bit in the
- fdFlags word of the specified file or directory's finder information.
-
- 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.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: SetHasCustomIcon, FSpSetHasCustomIcon, FSpClearHasCustomIcon
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpClearHasCustomIcon(const FSSpec * spec);
-
-
-/*
- The FSpClearHasCustomIcon function clears the hasCustomIcon bit in the
- fdFlags word of the specified file or directory's finder information.
-
- spec input: An FSSpec record specifying the object.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: SetHasCustomIcon, FSpSetHasCustomIcon, ClearHasCustomIcon
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-ClearHasBeenInited(
- short vRefNum,
- long dirID,
- ConstStr255Param name);
-
-
-/*
- The ClearHasBeenInited function clears the hasBeenInited bit in the
- fdFlags word of the specified file or directory's finder information.
-
- 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.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: FSpClearHasBeenInited
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpClearHasBeenInited(const FSSpec * spec);
-
-
-/*
- The FSpClearHasBeenInited function clears the hasBeenInited bit in the
- fdFlags word of the specified file or directory's finder information.
-
- spec input: An FSSpec record specifying the object.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: ClearHasBeenInited
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-CopyFileMgrAttributes(
- short srcVRefNum,
- long srcDirID,
- ConstStr255Param srcName,
- short dstVRefNum,
- long dstDirID,
- ConstStr255Param dstName,
- Boolean copyLockBit);
-
-
-/*
- The CopyFileMgrAttributes function copies all File Manager attributes
- from the source file or directory to the destination file or directory.
- If copyLockBit is true, then set the locked state of the destination
- to match the source.
-
- srcVRefNum input: Source volume specification.
- srcDirID input: Source directory ID.
- srcName input: Pointer to source object name, or nil when
- srcDirID specifies a directory that's the object.
- dstVRefNum input: Destination volume specification.
- dstDirID input: Destination directory ID.
- dstName input: Pointer to destination object name, or nil when
- dstDirID specifies a directory that's the object.
- copyLockBit input: If true, set the locked state of the destination
- to match the source.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: FSpCopyFileMgrAttributes
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpCopyFileMgrAttributes(
- const FSSpec * srcSpec,
- const FSSpec * dstSpec,
- Boolean copyLockBit);
-
-
-/*
- The FSpCopyFileMgrAttributes function copies all File Manager attributes
- from the source file or directory to the destination file or directory.
- If copyLockBit is true, then set the locked state of the destination
- to match the source.
-
- srcSpec input: An FSSpec record specifying the source object.
- dstSpec input: An FSSpec record specifying the destination object.
- copyLockBit input: If true, set the locked state of the destination
- to match the source.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- ioErr -36 I/O error
- bdNamErr -37 Bad filename
- fnfErr -43 File not found
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 No default volume
- dirNFErr -120 Directory not found or incomplete pathname
- afpAccessDenied -5000 User does not have the correct access
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
-
- __________
-
- See also: CopyFileMgrAttributes
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-HOpenAware(
- short vRefNum,
- long dirID,
- ConstStr255Param fileName,
- short denyModes,
- short * refNum);
-
-
-/*
- The HOpenAware function opens the data fork of a file using deny mode
- permissions instead the normal File Manager permissions. If OpenDeny
- is not available, then HOpenAware translates the deny modes to the
- closest File Manager permissions and tries to open the file with
- OpenDF first, and then Open if OpenDF isn't available. By using
- HOpenAware with deny mode permissions, a program can be "AppleShare
- aware" and fall back on the standard File Manager open calls
- automatically.
-
- vRefNum input: Volume specification.
- dirID input: Directory ID.
- fileName input: The name of the file.
- denyModes input: The deny modes access under which to open the file.
- refNum output: The file reference number of the opened file.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- tmfoErr -42 Too many files open
- fnfErr -43 File not found
- wPrErr -44 Volume locked by hardware
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- opWrErr -49 File already open for writing
- paramErr -50 No default volume
- permErr -54 File is already open and cannot be opened using specified deny modes
- afpAccessDenied -5000 User does not have the correct access to the file
- afpDenyConflict -5006 Requested access permission not possible
-
- __________
-
- See also: FSpOpenAware, HOpenRFAware, FSpOpenRFAware
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpOpenAware(
- const FSSpec * spec,
- short denyModes,
- short * refNum);
-
-
-/*
- The FSpOpenAware function opens the data fork of a file using deny mode
- permissions instead the normal File Manager permissions. If OpenDeny
- is not available, then FSpOpenAware translates the deny modes to the
- closest File Manager permissions and tries to open the file with
- OpenDF first, and then Open if OpenDF isn't available. By using
- FSpOpenAware with deny mode permissions, a program can be "AppleShare
- aware" and fall back on the standard File Manager open calls
- automatically.
-
- spec input: An FSSpec record specifying the file.
- denyModes input: The deny modes access under which to open the file.
- refNum output: The file reference number of the opened file.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- tmfoErr -42 Too many files open
- fnfErr -43 File not found
- wPrErr -44 Volume locked by hardware
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- opWrErr -49 File already open for writing
- paramErr -50 No default volume
- permErr -54 File is already open and cannot be opened using specified deny modes
- afpAccessDenied -5000 User does not have the correct access to the file
- afpDenyConflict -5006 Requested access permission not possible
-
- __________
-
- See also: HOpenAware, HOpenRFAware, FSpOpenRFAware
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-HOpenRFAware(
- short vRefNum,
- long dirID,
- ConstStr255Param fileName,
- short denyModes,
- short * refNum);
-
-
-/*
- The HOpenRFAware function opens the resource fork of a file using deny
- mode permissions instead the normal File Manager permissions. If
- OpenRFDeny is not available, then HOpenRFAware translates the deny
- modes to the closest File Manager permissions and tries to open the
- file with OpenRF. By using HOpenRFAware with deny mode permissions,
- a program can be "AppleShare aware" and fall back on the standard
- File Manager open calls automatically.
-
- vRefNum input: Volume specification.
- dirID input: Directory ID.
- fileName input: The name of the file.
- denyModes input: The deny modes access under which to open the file.
- refNum output: The file reference number of the opened file.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- tmfoErr -42 Too many files open
- fnfErr -43 File not found
- wPrErr -44 Volume locked by hardware
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- opWrErr -49 File already open for writing
- paramErr -50 No default volume
- permErr -54 File is already open and cannot be opened using specified deny modes
- afpAccessDenied -5000 User does not have the correct access to the file
- afpDenyConflict -5006 Requested access permission not possible
-
- __________
-
- See also: HOpenAware, FSpOpenAware, FSpOpenRFAware
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpOpenRFAware(
- const FSSpec * spec,
- short denyModes,
- short * refNum);
-
-
-/*
- The FSpOpenRFAware function opens the resource fork of a file using deny
- mode permissions instead the normal File Manager permissions. If
- OpenRFDeny is not available, then FSpOpenRFAware translates the deny
- modes to the closest File Manager permissions and tries to open the
- file with OpenRF. By using FSpOpenRFAware with deny mode permissions,
- a program can be "AppleShare aware" and fall back on the standard
- File Manager open calls automatically.
-
- spec input: An FSSpec record specifying the file.
- denyModes input: The deny modes access under which to open the file.
- refNum output: The file reference number of the opened file.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 No such volume
- tmfoErr -42 Too many files open
- fnfErr -43 File not found
- wPrErr -44 Volume locked by hardware
- fLckdErr -45 File is locked
- vLckdErr -46 Volume is locked or read-only
- opWrErr -49 File already open for writing
- paramErr -50 No default volume
- permErr -54 File is already open and cannot be opened using specified deny modes
- afpAccessDenied -5000 User does not have the correct access to the file
- afpDenyConflict -5006 Requested access permission not possible
-
- __________
-
- See also: HOpenAware, FSpOpenAware, HOpenRFAware
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSReadNoCache(
- short refNum,
- long * count,
- void * buffPtr);
-
-
-/*
- The FSReadNoCache function reads any number of bytes from an open file
- while asking the file system to bypass its cache mechanism.
-
- refNum input: The file reference number of an open file.
- count input: The number of bytes to read.
- output: The number of bytes actually read.
- buffPtr input: A pointer to the data buffer into which the bytes are
- to be read.
-
- Result Codes
- noErr 0 No error
- readErr Ð19 Driver does not respond to read requests
- badUnitErr Ð21 Driver reference number does not
- match unit table
- unitEmptyErr Ð22 Driver reference number specifies a
- nil handle in unit table
- abortErr Ð27 Request aborted by KillIO
- notOpenErr Ð28 Driver not open
- ioErr Ð36 Data does not match in read-verify mode
- fnOpnErr -38 File not open
- rfNumErr -51 Bad reference number
- afpAccessDenied -5000 User does not have the correct access to
- the file
-
- __________
-
- See also: FSWriteNoCache
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSWriteNoCache(
- short refNum,
- long * count,
- const void * buffPtr);
-
-
-/*
- The FSReadNoCache function writes any number of bytes to an open file
- while asking the file system to bypass its cache mechanism.
-
- refNum input: The file reference number of an open file.
- count input: The number of bytes to write to the file.
- output: The number of bytes actually written.
- buffPtr input: A pointer to the data buffer from which the bytes are
- to be written.
-
- Result Codes
- noErr 0 No error
- writErr Ð20 Driver does not respond to write requests
- badUnitErr Ð21 Driver reference number does not
- match unit table
- unitEmptyErr Ð22 Driver reference number specifies a
- nil handle in unit table
- abortErr Ð27 Request aborted by KillIO
- notOpenErr Ð28 Driver not open
- dskFulErr -34 Disk full
- ioErr Ð36 Data does not match in read-verify mode
- fnOpnErr -38 File not open
- wPrErr -44 Hardware volume lock
- fLckdErr -45 File is locked
- vLckdErr -46 Software volume lock
- rfNumErr -51 Bad reference number
- wrPermErr -61 Read/write permission doesnÕt
- allow writing
- afpAccessDenied -5000 User does not have the correct access to
- the file
-
- __________
-
- See also: FSReadNoCache
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSWriteVerify(
- short refNum,
- long * count,
- const void * buffPtr);
-
-
-/*
- The FSWriteVerify function writes any number of bytes to an open file
- and then verifies that the data was actually written to the device.
-
- refNum input: The file reference number of an open file.
- count input: The number of bytes to write to the file.
- output: The number of bytes actually written and verified.
- buffPtr input: A pointer to the data buffer from which the bytes are
- to be written.
-
- Result Codes
- noErr 0 No error
- readErr Ð19 Driver does not respond to read requests
- writErr Ð20 Driver does not respond to write requests
- badUnitErr Ð21 Driver reference number does not
- match unit table
- unitEmptyErr Ð22 Driver reference number specifies a
- nil handle in unit table
- abortErr Ð27 Request aborted by KillIO
- notOpenErr Ð28 Driver not open
- dskFulErr -34 Disk full
- ioErr Ð36 Data does not match in read-verify mode
- fnOpnErr -38 File not open
- eofErr -39 Logical end-of-file reached
- posErr -40 Attempt to position mark before start
- of file
- wPrErr -44 Hardware volume lock
- fLckdErr -45 File is locked
- vLckdErr -46 Software volume lock
- rfNumErr -51 Bad reference number
- gfpErr -52 Error during GetFPos
- wrPermErr -61 Read/write permission doesnÕt
- allow writing
- memFullErr -108 Not enough room in heap zone to allocate
- verify buffer
- afpAccessDenied -5000 User does not have the correct access to
- the file
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-CopyFork(
- short srcRefNum,
- short dstRefNum,
- void * copyBufferPtr,
- long copyBufferSize);
-
-
-/*
- The CopyFork function copies all data from the source fork to the
- destination fork of open file forks and makes sure the destination EOF
- is equal to the source EOF.
-
- srcRefNum input: The source file reference number.
- dstRefNum input: The destination file reference number.
- copyBufferPtr input: Pointer to buffer to use during copy. The
- buffer should be at least 512-bytes minimum.
- The larger the buffer, the faster the copy.
- copyBufferSize input: The size of the copy buffer.
-
- Result Codes
- noErr 0 No error
- readErr Ð19 Driver does not respond to read requests
- writErr Ð20 Driver does not respond to write requests
- badUnitErr Ð21 Driver reference number does not
- match unit table
- unitEmptyErr Ð22 Driver reference number specifies a
- nil handle in unit table
- abortErr Ð27 Request aborted by KillIO
- notOpenErr Ð28 Driver not open
- dskFulErr -34 Disk full
- ioErr Ð36 Data does not match in read-verify mode
- fnOpnErr -38 File not open
- wPrErr -44 Hardware volume lock
- fLckdErr -45 File is locked
- vLckdErr -46 Software volume lock
- rfNumErr -51 Bad reference number
- wrPermErr -61 Read/write permission doesnÕt
- allow writing
- afpAccessDenied -5000 User does not have the correct access to
- the file
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetFileLocation(
- short refNum,
- short * vRefNum,
- long * dirID,
- StringPtr fileName);
-
-
-/*
- The GetFileLocation function gets the location (volume reference number,
- directory ID, and fileName) of an open file.
-
- refNum input: The file reference number of an open file.
- vRefNum output: The volume reference number.
- dirID output: The parent directory ID.
- fileName 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 Specified volume doesnÕt exist
- fnOpnErr -38 File not open
- rfNumErr -51 Reference number specifies nonexistent
- access path
-
- __________
-
- See also: FSpGetFileLocation
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpGetFileLocation(
- short refNum,
- FSSpec * spec);
-
-
-/*
- The FSpGetFileLocation function gets the location of an open file in
- an FSSpec record.
-
- refNum input: The file reference number of an open file.
- spec output: FSSpec record containing the file name and location.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 Specified volume doesnÕt exist
- fnOpnErr -38 File not open
- rfNumErr -51 Reference number specifies nonexistent
- access path
-
- __________
-
- See also: GetFileLocation
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-CopyDirectoryAccess(
- short srcVRefNum,
- long srcDirID,
- ConstStr255Param srcName,
- short dstVRefNum,
- long dstDirID,
- ConstStr255Param dstName);
-
-
-/*
- The CopyDirectoryAccess function copies the AFP directory access
- privileges from one directory to another. Both directories must be on
- the same file server, but not necessarily on the same server volume.
-
- srcVRefNum input: Source volume specification.
- srcDirID input: Source directory ID.
- srcName input: Pointer to source directory name, or nil when
- srcDirID specifies the directory.
- dstVRefNum input: Destination volume specification.
- dstDirID input: Destination directory ID.
- dstName input: Pointer to destination directory name, or nil when
- dstDirID specifies the directory.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 Volume not found
- fnfErr -43 Directory not found
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 Volume doesn't support this function
- afpAccessDenied -5000 User does not have the correct access
- to the directory
- afpObjectTypeErr -5025 Object is a file, not a directory
-
- __________
-
- See also: FSpCopyDirectoryAccess
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpCopyDirectoryAccess(
- const FSSpec * srcSpec,
- const FSSpec * dstSpec);
-
-
-/*
- The FSpCopyDirectoryAccess function copies the AFP directory access
- privileges from one directory to another. Both directories must be on
- the same file server, but not necessarily on the same server volume.
-
- srcSpec input: An FSSpec record specifying the source directory.
- dstSpec input: An FSSpec record specifying the destination directory.
-
- Result Codes
- noErr 0 No error
- nsvErr -35 Volume not found
- fnfErr -43 Directory not found
- vLckdErr -46 Volume is locked or read-only
- paramErr -50 Volume doesn't support this function
- afpAccessDenied -5000 User does not have the correct access
- to the directory
- afpObjectTypeErr -5025 Object is a file, not a directory
-
- __________
-
- See also: CopyDirectoryAccess
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-HMoveRenameCompat(
- short vRefNum,
- long srcDirID,
- ConstStr255Param srcName,
- long dstDirID,
- ConstStr255Param dstpathName,
- ConstStr255Param copyName);
-
-
-/*
- The HMoveRenameCompat function moves a file or directory and optionally
- renames it. The source and destination locations must be on the same
- volume. This routine works even if the volume doesn't support MoveRename.
-
- 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
- dirFulErr -33 File directory full
- dskFulErr -34 Disk is full
- nsvErr -35 Volume not found
- ioErr -36 I/O error
- bdNamErr -37 Bad filename or attempt to move into
- a file
- fnfErr -43 Source file or directory not found
- wPrErr -44 Hardware volume lock
- fLckdErr -45 File is locked
- vLckdErr -46 Destination volume is read-only
- fBsyErr -47 File busy, directory not empty, or
- working directory control block open
- dupFNErr -48 Destination already exists
- paramErr -50 Volume doesn't support this function,
- no default volume, or source and
- volOfflinErr -53 Volume is offline
- fsRnErr -59 Problem during rename
- dirNFErr -120 Directory not found or incomplete pathname
- badMovErr -122 Attempted to move directory into
- offspring
- wrgVolTypErr -123 Not an HFS volume (it's a MFS volume)
- notAFileErr -1302 The pathname is nil, the pathname
- is empty, or the pathname cannot refer
- to a filename
- diffVolErr -1303 Files on different volumes
- afpAccessDenied -5000 The user does not have the right to
- move the file or directory
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
- afpSameObjectErr -5038 Source and destination files are the same
-
- __________
-
- See also: FSpMoveRenameCompat
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-FSpMoveRenameCompat(
- const FSSpec * srcSpec,
- const FSSpec * dstSpec,
- ConstStr255Param copyName);
-
-
-/*
- The FSpMoveRenameCompat function moves a file or directory and optionally
- renames it. The source and destination locations must be on the same
- volume. This routine works even if the volume doesn't support MoveRename.
-
- 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
- dirFulErr -33 File directory full
- dskFulErr -34 Disk is full
- nsvErr -35 Volume not found
- ioErr -36 I/O error
- bdNamErr -37 Bad filename or attempt to move into
- a file
- fnfErr -43 Source file or directory not found
- wPrErr -44 Hardware volume lock
- fLckdErr -45 File is locked
- vLckdErr -46 Destination volume is read-only
- fBsyErr -47 File busy, directory not empty, or
- working directory control block open
- dupFNErr -48 Destination already exists
- paramErr -50 Volume doesn't support this function,
- no default volume, or source and
- volOfflinErr -53 Volume is offline
- fsRnErr -59 Problem during rename
- dirNFErr -120 Directory not found or incomplete pathname
- badMovErr -122 Attempted to move directory into
- offspring
- wrgVolTypErr -123 Not an HFS volume (it's a MFS volume)
- notAFileErr -1302 The pathname is nil, the pathname
- is empty, or the pathname cannot refer
- to a filename
- diffVolErr -1303 Files on different volumes
- afpAccessDenied -5000 The user does not have the right to
- move the file or directory
- afpObjectTypeErr -5025 Directory not found or incomplete pathname
- afpSameObjectErr -5038 Source and destination files are the same
-
- __________
-
- See also: HMoveRenameCompat
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-BuildAFPVolMountInfo(
- short flags,
- char nbpInterval,
- char nbpCount,
- short uamType,
- Str32 zoneName,
- Str31 serverName,
- Str27 volName,
- Str31 userName,
- Str8 userPassword,
- Str8 volPassword,
- AFPVolMountInfoPtr * afpInfoPtr);
-
-
-/*
- The BuildAFPVolMountInfo function allocates and initializes the fields
- of an AFPVolMountInfo record before using that record to call
- the VolumeMount function.
-
- flags input: The AFP mounting flags. 0 = normal mount;
- set bit 0 to inhibit greeting messages.
- nbpInterval input: The interval used for VolumeMount's
- NBP Lookup call. 7 is a good choice.
- nbpCount input: The retry count used for VolumeMount's
- NBP Lookup call. 5 is a good choice.
- uamType input: The user authentication method to use.
- zoneName input: The AppleTalk zone name of the server.
- serverName input: The AFP server name.
- volName input: The AFP volume name.
- userName input: The user name (zero length Pascal string for
- guest).
- userPassWord input: The user password (zero length Pascal string
- if no user password)
- volPassWord input: The volume password (zero length Pascal string
- if no volume password)
- afpInfoPtr output: A pointer to the newly created and initialized
- AFPVolMountInfo record. If the function fails to
- create an AFPVolMountInfo record, it sets
- afpInfoPtr to NULL and the function result is
- memFullErr. Your program is responsible
- for disposing of this pointer when it is finished
- with it.
-
- Result Codes
- noErr 0 No error
- memFullErr -108 memory full error
-
- __________
-
- Also see: GetVolMountInfoSize, GetVolMountInfo, VolumeMount,
- RetrieveAFPVolMountInfo, BuildAFPXVolMountInfo,
- RetrieveAFPXVolMountInfo
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-RetrieveAFPVolMountInfo(
- AFPVolMountInfoPtr afpInfoPtr,
- short * flags,
- short * uamType,
- StringPtr zoneName,
- StringPtr serverName,
- StringPtr volName,
- StringPtr userName);
-
-
-/*
- The RetrieveAFPVolMountInfo function retrieves the AFP mounting
- information returned in an AFPVolMountInfo record by the
- GetVolMountInfo function.
-
- afpInfoPtr input: Pointer to AFPVolMountInfo record that contains
- the AFP mounting information.
- flags output: The AFP mounting flags.
- uamType output: The user authentication method used.
- zoneName output: The AppleTalk zone name of the server.
- serverName output: The AFP server name.
- volName output: The AFP volume name.
- userName output: The user name (zero length Pascal string for
- guest).
-
- Result Codes
- noErr 0 No error
- paramErr -50 media field in AFP mounting information
- was not AppleShareMediaType
-
- __________
-
- Also see: GetVolMountInfoSize, GetVolMountInfo, VolumeMount,
- BuildAFPVolMountInfo, BuildAFPXVolMountInfo,
- RetrieveAFPXVolMountInfo
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-BuildAFPXVolMountInfo(
- short flags,
- char nbpInterval,
- char nbpCount,
- short uamType,
- Str32 zoneName,
- Str31 serverName,
- Str27 volName,
- Str31 userName,
- Str8 userPassword,
- Str8 volPassword,
- Str32 uamName,
- unsigned long alternateAddressLength,
- void * alternateAddress,
- AFPXVolMountInfoPtr * afpXInfoPtr);
-
-
-/*
- The BuildAFPXVolMountInfo function allocates and initializes the fields
- of an AFPXVolMountInfo record before using that record to call
- the VolumeMount function.
-
- flags input: The AFP mounting flags.
- nbpInterval input: The interval used for VolumeMount's
- NBP Lookup call. 7 is a good choice.
- nbpCount input: The retry count used for VolumeMount's
- NBP Lookup call. 5 is a good choice.
- uamType input: The user authentication method to use.
- zoneName input: The AppleTalk zone name of the server.
- serverName input: The AFP server name.
- volName input: The AFP volume name.
- userName input: The user name (zero length Pascal string
- for guest).
- userPassWord input: The user password (zero length Pascal
- string if no user password)
- volPassWord input: The volume password (zero length Pascal
- string if no volume password)
- uamName input: The User Authentication Method name.
- alternateAddressLength input: Length of alternateAddress data.
- alternateAddress input The AFPAlternateAddress (variable length)
- afpXInfoPtr output: A pointer to the newly created and
- initialized AFPVolMountInfo record.
- If the function fails to create an
- AFPVolMountInfo record, it sets
- afpInfoPtr to NULL and the function
- result is memFullErr. Your program is
- responsible for disposing of this pointer
- when it is finished with it.
-
- Result Codes
- noErr 0 No error
- memFullErr -108 memory full error
-
- __________
-
- Also see: GetVolMountInfoSize, GetVolMountInfo, VolumeMount,
- BuildAFPVolMountInfo, RetrieveAFPVolMountInfo,
- RetrieveAFPXVolMountInfo
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-RetrieveAFPXVolMountInfo(
- AFPXVolMountInfoPtr afpXInfoPtr,
- short * flags,
- short * uamType,
- StringPtr zoneName,
- StringPtr serverName,
- StringPtr volName,
- StringPtr userName,
- StringPtr uamName,
- unsigned long * alternateAddressLength,
- AFPAlternateAddress ** alternateAddress);
-
-
-/*
- The RetrieveAFPXVolMountInfo function retrieves the AFP mounting
- information returned in an AFPXVolMountInfo record by the
- GetVolMountInfo function.
-
- afpXInfoPtr input: Pointer to AFPXVolMountInfo record that
- contains the AFP mounting information.
- flags output: The AFP mounting flags.
- uamType output: The user authentication method used.
- zoneName output: The AppleTalk zone name of the server.
- serverName output: The AFP server name.
- volName output: The AFP volume name.
- userName output: The user name (zero length Pascal
- string for guest).
- uamName output: The User Authentication Method name.
- alternateAddressLength output: Length of alternateAddress data returned.
- alternateAddress: output: A pointer to the newly created and
- AFPAlternateAddress record (a variable
- length record). If the function fails to
- create an AFPAlternateAddress record,
- it sets alternateAddress to NULL and the
- function result is memFullErr. Your
- program is responsible for disposing of
- this pointer when it is finished with it.
-
- Result Codes
- noErr 0 No error
- paramErr -50 media field in AFP mounting information
- was not AppleShareMediaType
- memFullErr -108 memory full error
-
- __________
-
- Also see: GetVolMountInfoSize, GetVolMountInfo, VolumeMount,
- BuildAFPVolMountInfo, RetrieveAFXVolMountInfo,
- BuildAFPXVolMountInfo
-*/
-
-/*****************************************************************************/
-
-EXTERN_API( OSErr )
-GetUGEntries(
- short objType,
- UGEntryPtr entries,
- long reqEntryCount,
- long * actEntryCount,
- long * objID);
-
-
-/*
- The GetUGEntries functions retrieves a list of user or group entries
- from the local file server.
-
- objType input: The object type: -1 = group; 0 = user
- UGEntries input: Pointer to array of UGEntry records where the list
- is returned.
- reqEntryCount input: The number of elements in the UGEntries array.
- actEntryCount output: The number of entries returned.
- objID input: The current index position. Set to 0 to start with
- the first entry.
- output: The index position to get the next entry. Pass this
- value the next time you call GetUGEntries to start
- where you left off.
-
- Result Codes
- noErr 0 No error
- fnfErr -43 No more users or groups
- paramErr -50 Function not supported; or, ioObjID is
- negative
-
- __________
-
- Also see: GetUGEntry
-*/
-
-/*****************************************************************************/
-
-
-
-#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 /* __MOREFILESEXTRAS__ */
-