mirror of
https://github.com/nillerusr/source-engine.git
synced 2024-12-22 14:16:50 +00:00
672 lines
20 KiB
C
672 lines
20 KiB
C
|
/*
|
||
|
File: Aliases.h
|
||
|
|
||
|
Contains: Alias Manager Interfaces.
|
||
|
|
||
|
Version: QuickTime 7.3
|
||
|
|
||
|
Copyright: (c) 2007 (c) 1989-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/
|
||
|
|
||
|
*/
|
||
|
#ifndef __ALIASES__
|
||
|
#define __ALIASES__
|
||
|
|
||
|
#ifndef __MACTYPES__
|
||
|
#include <MacTypes.h>
|
||
|
#endif
|
||
|
|
||
|
#ifndef __FILES__
|
||
|
#include <Files.h>
|
||
|
#endif
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#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
|
||
|
|
||
|
typedef UInt32 FSAliasInfoBitmap;
|
||
|
enum {
|
||
|
kFSAliasInfoNone = 0x00000000, /* no valid info*/
|
||
|
kFSAliasInfoVolumeCreateDate = 0x00000001, /* volume creation date is valid*/
|
||
|
kFSAliasInfoTargetCreateDate = 0x00000002, /* target creation date is valid*/
|
||
|
kFSAliasInfoFinderInfo = 0x00000004, /* file type and creator are valid*/
|
||
|
kFSAliasInfoIsDirectory = 0x00000008, /* isDirectory boolean is valid*/
|
||
|
kFSAliasInfoIDs = 0x00000010, /* parentDirID and nodeID are valid*/
|
||
|
kFSAliasInfoFSInfo = 0x00000020, /* filesystemID and signature are valid*/
|
||
|
kFSAliasInfoVolumeFlags = 0x00000040 /* volumeIsBootVolume, volumeIsAutomounted, volumeIsEjectable and volumeHasPersistentFileIDs are valid*/
|
||
|
};
|
||
|
|
||
|
enum {
|
||
|
rAliasType = FOUR_CHAR_CODE('alis') /* Aliases are stored as resources of this type */
|
||
|
};
|
||
|
|
||
|
enum {
|
||
|
/* define alias resolution action rules mask */
|
||
|
kARMMountVol = 0x00000001, /* mount the volume automatically */
|
||
|
kARMNoUI = 0x00000002, /* no user interface allowed during resolution */
|
||
|
kARMMultVols = 0x00000008, /* search on multiple volumes */
|
||
|
kARMSearch = 0x00000100, /* search quickly */
|
||
|
kARMSearchMore = 0x00000200, /* search further */
|
||
|
kARMSearchRelFirst = 0x00000400, /* search target on a relative path first */
|
||
|
kARMTryFileIDFirst = 0x00000800 /* search by file id before path */
|
||
|
};
|
||
|
|
||
|
enum {
|
||
|
/* define alias record information types */
|
||
|
asiZoneName = -3, /* get zone name */
|
||
|
asiServerName = -2, /* get server name */
|
||
|
asiVolumeName = -1, /* get volume name */
|
||
|
asiAliasName = 0, /* get aliased file/folder/volume name */
|
||
|
asiParentName = 1 /* get parent folder name */
|
||
|
};
|
||
|
|
||
|
/* ResolveAliasFileWithMountFlags options */
|
||
|
enum {
|
||
|
kResolveAliasFileNoUI = 0x00000001, /* no user interaction during resolution */
|
||
|
kResolveAliasTryFileIDFirst = 0x00000002 /* search by file id before path */
|
||
|
};
|
||
|
|
||
|
/* define the alias record that will be the blackbox for the caller */
|
||
|
struct AliasRecord {
|
||
|
OSType userType; /* appl stored type like creator type */
|
||
|
unsigned short aliasSize; /* alias record size in bytes, for appl usage */
|
||
|
};
|
||
|
typedef struct AliasRecord AliasRecord;
|
||
|
typedef AliasRecord * AliasPtr;
|
||
|
typedef AliasPtr * AliasHandle;
|
||
|
/* info block to pass to FSCopyAliasInfo */
|
||
|
struct FSAliasInfo {
|
||
|
UTCDateTime volumeCreateDate;
|
||
|
UTCDateTime targetCreateDate;
|
||
|
OSType fileType;
|
||
|
OSType fileCreator;
|
||
|
UInt32 parentDirID;
|
||
|
UInt32 nodeID;
|
||
|
UInt16 filesystemID;
|
||
|
UInt16 signature;
|
||
|
Boolean volumeIsBootVolume;
|
||
|
Boolean volumeIsAutomounted;
|
||
|
Boolean volumeIsEjectable;
|
||
|
Boolean volumeHasPersistentFileIDs;
|
||
|
Boolean isDirectory;
|
||
|
};
|
||
|
typedef struct FSAliasInfo FSAliasInfo;
|
||
|
typedef FSAliasInfo * FSAliasInfoPtr;
|
||
|
/* alias record information type */
|
||
|
typedef short AliasInfoType;
|
||
|
/*
|
||
|
* NewAlias()
|
||
|
*
|
||
|
* Summary:
|
||
|
* create a new alias between fromFile and target, returns alias
|
||
|
* record handle
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
NewAlias(
|
||
|
const FSSpec * fromFile, /* can be NULL */
|
||
|
const FSSpec * target,
|
||
|
AliasHandle * alias) TWOWORDINLINE(0x7002, 0xA823);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* NewAliasMinimal()
|
||
|
*
|
||
|
* Summary:
|
||
|
* create a minimal new alias for a target and return alias record
|
||
|
* handle
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
NewAliasMinimal(
|
||
|
const FSSpec * target,
|
||
|
AliasHandle * alias) TWOWORDINLINE(0x7008, 0xA823);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* NewAliasMinimalFromFullPath()
|
||
|
*
|
||
|
* Summary:
|
||
|
* create a minimal new alias from a target fullpath (optional zone
|
||
|
* and server name) and return alias record handle
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
NewAliasMinimalFromFullPath(
|
||
|
short fullPathLength,
|
||
|
const void * fullPath,
|
||
|
ConstStr32Param zoneName,
|
||
|
ConstStr31Param serverName,
|
||
|
AliasHandle * alias) TWOWORDINLINE(0x7009, 0xA823);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* ResolveAlias()
|
||
|
*
|
||
|
* Summary:
|
||
|
* given an alias handle and fromFile, resolve the alias, update the
|
||
|
* alias record and return aliased filename and wasChanged flag.
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
ResolveAlias(
|
||
|
const FSSpec * fromFile, /* can be NULL */
|
||
|
AliasHandle alias,
|
||
|
FSSpec * target,
|
||
|
Boolean * wasChanged) TWOWORDINLINE(0x7003, 0xA823);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* GetAliasInfo()
|
||
|
*
|
||
|
* Summary:
|
||
|
* given an alias handle and an index specifying requested alias
|
||
|
* information type, return the information from alias record as a
|
||
|
* string.
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
GetAliasInfo(
|
||
|
AliasHandle alias,
|
||
|
AliasInfoType index,
|
||
|
Str63 theString) TWOWORDINLINE(0x7007, 0xA823);
|
||
|
|
||
|
|
||
|
|
||
|
/*
|
||
|
* IsAliasFile()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 8.5 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
IsAliasFile(
|
||
|
const FSSpec * fileFSSpec,
|
||
|
Boolean * aliasFileFlag,
|
||
|
Boolean * folderFlag) TWOWORDINLINE(0x702A, 0xA823);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* ResolveAliasWithMountFlags()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 8.5 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
ResolveAliasWithMountFlags(
|
||
|
const FSSpec * fromFile, /* can be NULL */
|
||
|
AliasHandle alias,
|
||
|
FSSpec * target,
|
||
|
Boolean * wasChanged,
|
||
|
unsigned long mountFlags) TWOWORDINLINE(0x702B, 0xA823);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* ResolveAliasFile()
|
||
|
*
|
||
|
* Summary:
|
||
|
* Given a file spec, return target file spec if input file spec is
|
||
|
* an alias. It resolves the entire alias chain or one step of the
|
||
|
* chain. It returns info about whether the target is a folder or
|
||
|
* file; and whether the input file spec was an alias or not.
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
ResolveAliasFile(
|
||
|
FSSpec * theSpec,
|
||
|
Boolean resolveAliasChains,
|
||
|
Boolean * targetIsFolder,
|
||
|
Boolean * wasAliased) TWOWORDINLINE(0x700C, 0xA823);
|
||
|
|
||
|
|
||
|
|
||
|
/*
|
||
|
* ResolveAliasFileWithMountFlags()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
ResolveAliasFileWithMountFlags(
|
||
|
FSSpec * theSpec,
|
||
|
Boolean resolveAliasChains,
|
||
|
Boolean * targetIsFolder,
|
||
|
Boolean * wasAliased,
|
||
|
unsigned long mountFlags) TWOWORDINLINE(0x7029, 0xA823);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* FollowFinderAlias()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
FollowFinderAlias(
|
||
|
const FSSpec * fromFile, /* can be NULL */
|
||
|
AliasHandle alias,
|
||
|
Boolean logon,
|
||
|
FSSpec * target,
|
||
|
Boolean * wasChanged) TWOWORDINLINE(0x700F, 0xA823);
|
||
|
|
||
|
|
||
|
/*
|
||
|
Low Level Routines
|
||
|
*/
|
||
|
/*
|
||
|
* UpdateAlias()
|
||
|
*
|
||
|
* Summary:
|
||
|
* given a fromFile-target pair and an alias handle, update the
|
||
|
* alias record pointed to by alias handle to represent target as
|
||
|
* the new alias.
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
UpdateAlias(
|
||
|
const FSSpec * fromFile, /* can be NULL */
|
||
|
const FSSpec * target,
|
||
|
AliasHandle alias,
|
||
|
Boolean * wasChanged) TWOWORDINLINE(0x7006, 0xA823);
|
||
|
|
||
|
|
||
|
|
||
|
typedef CALLBACK_API( Boolean , AliasFilterProcPtr )(CInfoPBPtr cpbPtr, Boolean *quitFlag, Ptr myDataPtr);
|
||
|
typedef STACK_UPP_TYPE(AliasFilterProcPtr) AliasFilterUPP;
|
||
|
/*
|
||
|
* NewAliasFilterUPP()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: available as macro/inline
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API_C( AliasFilterUPP )
|
||
|
NewAliasFilterUPP(AliasFilterProcPtr userRoutine);
|
||
|
#if !OPAQUE_UPP_TYPES
|
||
|
enum { uppAliasFilterProcInfo = 0x00000FD0 }; /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes) */
|
||
|
#ifdef __cplusplus
|
||
|
inline DEFINE_API_C(AliasFilterUPP) NewAliasFilterUPP(AliasFilterProcPtr userRoutine) { return (AliasFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppAliasFilterProcInfo, GetCurrentArchitecture()); }
|
||
|
#else
|
||
|
#define NewAliasFilterUPP(userRoutine) (AliasFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppAliasFilterProcInfo, GetCurrentArchitecture())
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* DisposeAliasFilterUPP()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: available as macro/inline
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API_C( void )
|
||
|
DisposeAliasFilterUPP(AliasFilterUPP userUPP);
|
||
|
#if !OPAQUE_UPP_TYPES
|
||
|
#ifdef __cplusplus
|
||
|
inline DEFINE_API_C(void) DisposeAliasFilterUPP(AliasFilterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
|
||
|
#else
|
||
|
#define DisposeAliasFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
/*
|
||
|
* InvokeAliasFilterUPP()
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: available as macro/inline
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API_C( Boolean )
|
||
|
InvokeAliasFilterUPP(
|
||
|
CInfoPBPtr cpbPtr,
|
||
|
Boolean * quitFlag,
|
||
|
Ptr myDataPtr,
|
||
|
AliasFilterUPP userUPP);
|
||
|
#if !OPAQUE_UPP_TYPES
|
||
|
#ifdef __cplusplus
|
||
|
inline DEFINE_API_C(Boolean) InvokeAliasFilterUPP(CInfoPBPtr cpbPtr, Boolean * quitFlag, Ptr myDataPtr, AliasFilterUPP userUPP) { return (Boolean)CALL_THREE_PARAMETER_UPP(userUPP, uppAliasFilterProcInfo, cpbPtr, quitFlag, myDataPtr); }
|
||
|
#else
|
||
|
#define InvokeAliasFilterUPP(cpbPtr, quitFlag, myDataPtr, userUPP) (Boolean)CALL_THREE_PARAMETER_UPP((userUPP), uppAliasFilterProcInfo, (cpbPtr), (quitFlag), (myDataPtr))
|
||
|
#endif
|
||
|
#endif
|
||
|
|
||
|
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES
|
||
|
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
|
||
|
#define NewAliasFilterProc(userRoutine) NewAliasFilterUPP(userRoutine)
|
||
|
#define CallAliasFilterProc(userRoutine, cpbPtr, quitFlag, myDataPtr) InvokeAliasFilterUPP(cpbPtr, quitFlag, myDataPtr, userRoutine)
|
||
|
#endif /* CALL_NOT_IN_CARBON */
|
||
|
|
||
|
/*
|
||
|
* MatchAlias()
|
||
|
*
|
||
|
* Summary:
|
||
|
* Given an alias handle and fromFile, match the alias and return
|
||
|
* FSSpecs to the aliased file(s) and needsUpdate flag
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
MatchAlias(
|
||
|
const FSSpec * fromFile, /* can be NULL */
|
||
|
unsigned long rulesMask,
|
||
|
AliasHandle alias,
|
||
|
short * aliasCount,
|
||
|
FSSpecArrayPtr aliasList,
|
||
|
Boolean * needsUpdate,
|
||
|
AliasFilterUPP aliasFilter,
|
||
|
void * yourDataPtr) TWOWORDINLINE(0x7005, 0xA823);
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
/*
|
||
|
* ResolveAliasFileWithMountFlagsNoUI()
|
||
|
*
|
||
|
* Summary:
|
||
|
* variation on ResolveAliasFile that does not prompt user with a
|
||
|
* dialog
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
ResolveAliasFileWithMountFlagsNoUI(
|
||
|
FSSpec * theSpec,
|
||
|
Boolean resolveAliasChains,
|
||
|
Boolean * targetIsFolder,
|
||
|
Boolean * wasAliased,
|
||
|
unsigned long mountFlags);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* MatchAliasNoUI()
|
||
|
*
|
||
|
* Summary:
|
||
|
* variation on MatchAlias that does not prompt user with a dialog
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: in CarbonLib 1.0 and later
|
||
|
* Mac OS X: in version 10.0 and later
|
||
|
*/
|
||
|
EXTERN_API( OSErr )
|
||
|
MatchAliasNoUI(
|
||
|
const FSSpec * fromFile, /* can be NULL */
|
||
|
unsigned long rulesMask,
|
||
|
AliasHandle alias,
|
||
|
short * aliasCount,
|
||
|
FSSpecArrayPtr aliasList,
|
||
|
Boolean * needsUpdate,
|
||
|
AliasFilterUPP aliasFilter,
|
||
|
void * yourDataPtr);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* FSNewAliasUnicode()
|
||
|
*
|
||
|
* Summary:
|
||
|
* Creates an alias given a ref to the target's parent directory and
|
||
|
* the target's unicode name. If the target does not exist fnfErr
|
||
|
* will be returned but the alias will still be created. This
|
||
|
* allows the creation of aliases to targets that do not exist.
|
||
|
*
|
||
|
* Parameters:
|
||
|
*
|
||
|
* fromFile:
|
||
|
* The starting point for a relative search.
|
||
|
*
|
||
|
* targetParentRef:
|
||
|
* An FSRef to the parent directory of the target.
|
||
|
*
|
||
|
* targetNameLength:
|
||
|
* Number of Unicode characters in the target's name.
|
||
|
*
|
||
|
* targetName:
|
||
|
* A pointer to the Unicode name.
|
||
|
*
|
||
|
* inAlias:
|
||
|
* A Handle to the newly created alias record.
|
||
|
*
|
||
|
* isDirectory:
|
||
|
* On input, if target does not exist, a flag to indicate whether
|
||
|
* or not the target is a directory. On output, if the target did
|
||
|
* exist, an flag indicating if the target is a directory. Pass
|
||
|
* NULL in the non-existant case if unsure.
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
|
||
|
* Mac OS X: in version 10.2 and later
|
||
|
*/
|
||
|
EXTERN_API_C( OSErr )
|
||
|
FSNewAliasUnicode(
|
||
|
const FSRef * fromFile, /* can be NULL */
|
||
|
const FSRef * targetParentRef,
|
||
|
UniCharCount targetNameLength,
|
||
|
const UniChar * targetName,
|
||
|
AliasHandle * inAlias,
|
||
|
Boolean * isDirectory); /* can be NULL */
|
||
|
|
||
|
|
||
|
/*
|
||
|
* FSNewAliasMinimalUnicode()
|
||
|
*
|
||
|
* Summary:
|
||
|
* Creates a minimal alias given a ref to the target's parent
|
||
|
* directory and the target's unicode name. If the target does not
|
||
|
* exist fnfErr will be returned but the alias will still be created.
|
||
|
*
|
||
|
* Parameters:
|
||
|
*
|
||
|
* targetParentRef:
|
||
|
* An FSRef to the parent directory of the target.
|
||
|
*
|
||
|
* targetNameLength:
|
||
|
* Number of Unicode characters in the target's name.
|
||
|
*
|
||
|
* targetName:
|
||
|
* A pointer to the Unicode name.
|
||
|
*
|
||
|
* inAlias:
|
||
|
* A Handle to the newly created alias record.
|
||
|
*
|
||
|
* isDirectory:
|
||
|
* On input, if target does not exist, a flag to indicate whether
|
||
|
* or not the
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
|
||
|
* Mac OS X: in version 10.2 and later
|
||
|
*/
|
||
|
EXTERN_API_C( OSErr )
|
||
|
FSNewAliasMinimalUnicode(
|
||
|
const FSRef * targetParentRef,
|
||
|
UniCharCount targetNameLength,
|
||
|
const UniChar * targetName,
|
||
|
AliasHandle * inAlias,
|
||
|
Boolean * isDirectory); /* can be NULL */
|
||
|
|
||
|
|
||
|
/*
|
||
|
* FSMatchAlias()
|
||
|
*
|
||
|
* Summary:
|
||
|
* Given an alias handle and fromFile, match the alias and return
|
||
|
* FSRefs to the aliased file(s) and needsUpdate flag
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
|
||
|
* Mac OS X: in version 10.2 and later
|
||
|
*/
|
||
|
EXTERN_API_C( OSErr )
|
||
|
FSMatchAlias(
|
||
|
const FSRef * fromFile, /* can be NULL */
|
||
|
unsigned long rulesMask,
|
||
|
AliasHandle inAlias,
|
||
|
short * aliasCount,
|
||
|
FSRef * aliasList,
|
||
|
Boolean * needsUpdate,
|
||
|
AliasFilterUPP aliasFilter,
|
||
|
void * yourDataPtr);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* FSMatchAliasNoUI()
|
||
|
*
|
||
|
* Summary:
|
||
|
* variation on FSMatchAlias that does not prompt user with a dialog
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
|
||
|
* Mac OS X: in version 10.2 and later
|
||
|
*/
|
||
|
EXTERN_API_C( OSErr )
|
||
|
FSMatchAliasNoUI(
|
||
|
const FSRef * fromFile, /* can be NULL */
|
||
|
unsigned long rulesMask,
|
||
|
AliasHandle inAlias,
|
||
|
short * aliasCount,
|
||
|
FSRef * aliasList,
|
||
|
Boolean * needsUpdate,
|
||
|
AliasFilterUPP aliasFilter,
|
||
|
void * yourDataPtr);
|
||
|
|
||
|
|
||
|
/*
|
||
|
* FSCopyAliasInfo()
|
||
|
*
|
||
|
* Discussion:
|
||
|
* This routine will return the requested information from the
|
||
|
* passed in aliasHandle. The information is gathered only from the
|
||
|
* alias record so it may not match what is on disk (no disk i/o is
|
||
|
* performed). The whichInfo paramter is an output parameter that
|
||
|
* signifies which fields in the info record contain valid data.
|
||
|
*
|
||
|
* Parameters:
|
||
|
*
|
||
|
* inAlias:
|
||
|
* A handle to the alias record to get the information from.
|
||
|
*
|
||
|
* targetName:
|
||
|
* The name of the target item.
|
||
|
*
|
||
|
* volumeName:
|
||
|
* The name of the volume the target resides on.
|
||
|
*
|
||
|
* pathString:
|
||
|
* POSIX path to target.
|
||
|
*
|
||
|
* whichInfo:
|
||
|
* An indication of which fields in the info block contain valid
|
||
|
* data.
|
||
|
*
|
||
|
* info:
|
||
|
* Returned information about the alias.
|
||
|
*
|
||
|
* Availability:
|
||
|
* Non-Carbon CFM: not available
|
||
|
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
|
||
|
* Mac OS X: in version 10.2 and later
|
||
|
*/
|
||
|
EXTERN_API_C( OSStatus )
|
||
|
FSCopyAliasInfo(
|
||
|
AliasHandle inAlias,
|
||
|
HFSUniStr255 * targetName, /* can be NULL */
|
||
|
HFSUniStr255 * volumeName, /* can be NULL */
|
||
|
CFStringRef * pathString, /* can be NULL */
|
||
|
FSAliasInfoBitmap * whichInfo, /* can be NULL */
|
||
|
FSAliasInfo * info); /* can be NULL */
|
||
|
|
||
|
|
||
|
|
||
|
|
||
|
#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 /* __ALIASES__ */
|
||
|
|