ResKnife/External/MoreFiles/FSpCompat.h

1 line
21 KiB
C
Raw Normal View History

2002-03-29 14:59:03 +00:00
/* File: FSpCompat.h Contains: FSSpec compatibility functions. Version: Technology: MoreFiles Release: 1.5.2 Copyright: <20> 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 __FSPCOMPAT__ #define __FSPCOMPAT__ #ifndef __MACTYPES__ #include <MacTypes.h> #endif #ifndef __FILES__ #include <Files.h> #endif #include "Optimization.h" #if PRAGMA_ONCE #pragma once #endif #ifdef __cplusplus extern "C" { #endif #if PRAGMA_IMPORT #pragma import on #endif #if PRAGMA_STRUCT_ALIGN #pragma options align=mac68k #elif PRAGMA_STRUCT_PACKPUSH #pragma pack(push, 2) #elif PRAGMA_STRUCT_PACK #pragma pack(2) #endif /*****************************************************************************/ EXTERN_API( OSErr ) FSMakeFSSpecCompat( short vRefNum, long dirID, ConstStr255Param fileName, FSSpec * spec); /* The FSMakeFSSpecCompat function fills in the fields of an FSSpec record. If the file system can't create the FSSpec, then the compatibility code creates a FSSpec that is exactly like an FSSpec except that spec.name for a file may not have the same capitalization as the file's catalog entry on the disk volume. That is because fileName is parsed to get the name instead of getting the name back from the file system. This works fine with System 6 where FSMakeSpec isn't available. vRefNum input: Volume specification. dirID input: Directory ID. fileName input: Pointer to object name, or nil when dirID specifies a directory that's the object. spec output: A file system specification to be filled in by FSMakeFSSpecCompat. Result Codes noErr 0 No error nsvErr -35 Volume doesn<73>t exist fnfErr -43 File or directory does not exist (FSSpec is still valid) */ /*****************************************************************************/ EXTERN_API( OSErr ) FSpOpenDFCompat( const FSSpec * spec, char permission, short * refNum); /* The FSpOpenDFCompat function opens the data fork of the file specified by spec. Differences from FSpOpenDF: If FSpOpenDF isn't available, FSpOpenDFCompat uses PHBOpen because System 6 doesn't support PBHOpenDF. This means FSpOpenDFCompat could accidentally open a driver if the spec->name begins with a period. spec input: An FSSpec record specifying the file whose data fork is to be opened. permission input: A constant indicating the desired file access permissions. refNum output: A reference number of an access path to the file's data fork. Result Codes noErr 0 No error nsvErr -35 No such volume ioErr -36 I/O error bdNamErr -37 Bad filename tmfoErr -42 Too many files open fnfErr -43 File not found opWrErr -49 File already open for writing permErr -54 Attempt to open locked file for writing