summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/Aliases.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/Aliases.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/Aliases.h')
-rw-r--r--common/quicktime_win32/Aliases.h671
1 files changed, 671 insertions, 0 deletions
diff --git a/common/quicktime_win32/Aliases.h b/common/quicktime_win32/Aliases.h
new file mode 100644
index 0000000..329ab0d
--- /dev/null
+++ b/common/quicktime_win32/Aliases.h
@@ -0,0 +1,671 @@
+/*
+ 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__ */
+