source-engine/common/quicktime_win32/Resources.h

1318 lines
35 KiB
C
Raw Normal View History

2020-04-22 16:56:21 +00:00
/*
File: Resources.h
Contains: Resource Manager Interfaces.
Version: QuickTime 7.3
Copyright: (c) 2007 (c) 1985-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 __RESOURCES__
#define __RESOURCES__
#ifndef __MACTYPES__
#include <MacTypes.h>
#endif
#ifndef __MIXEDMODE__
#include <MixedMode.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
enum {
resSysHeap = 64, /*System or application heap?*/
resPurgeable = 32, /*Purgeable resource?*/
resLocked = 16, /*Load it in locked?*/
resProtected = 8, /*Protected?*/
resPreload = 4, /*Load in on OpenResFile?*/
resChanged = 2, /*Resource changed?*/
mapReadOnly = 128, /*Resource file read-only*/
mapCompact = 64, /*Compact resource file*/
mapChanged = 32 /*Write map out at update*/
};
enum {
resSysRefBit = 7, /*reference to system/local reference*/
resSysHeapBit = 6, /*In system/in application heap*/
resPurgeableBit = 5, /*Purgeable/not purgeable*/
resLockedBit = 4, /*Locked/not locked*/
resProtectedBit = 3, /*Protected/not protected*/
resPreloadBit = 2, /*Read in at OpenResource?*/
resChangedBit = 1, /*Existing resource changed since last update*/
mapReadOnlyBit = 7, /*is this file read-only?*/
mapCompactBit = 6, /*Is a compact necessary?*/
mapChangedBit = 5 /*Is it necessary to write map?*/
};
enum {
kResFileNotOpened = -1, /*ref num return as error when opening a resource file*/
kSystemResFile = 0 /*this is the default ref num to the system file*/
};
typedef CALLBACK_API_REGISTER68K( void , ResErrProcPtr, (OSErr thErr) );
typedef REGISTER_UPP_TYPE(ResErrProcPtr) ResErrUPP;
/*
* NewResErrUPP()
*
* 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( ResErrUPP )
NewResErrUPP(ResErrProcPtr userRoutine);
#if !OPAQUE_UPP_TYPES
enum { uppResErrProcInfo = 0x00001002 }; /* register no_return_value Func(2_bytes:D0) */
#ifdef __cplusplus
inline DEFINE_API_C(ResErrUPP) NewResErrUPP(ResErrProcPtr userRoutine) { return (ResErrUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppResErrProcInfo, GetCurrentArchitecture()); }
#else
#define NewResErrUPP(userRoutine) (ResErrUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppResErrProcInfo, GetCurrentArchitecture())
#endif
#endif
/*
* DisposeResErrUPP()
*
* 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 )
DisposeResErrUPP(ResErrUPP userUPP);
#if !OPAQUE_UPP_TYPES
#ifdef __cplusplus
inline DEFINE_API_C(void) DisposeResErrUPP(ResErrUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
#else
#define DisposeResErrUPP(userUPP) DisposeRoutineDescriptor(userUPP)
#endif
#endif
/*
* InvokeResErrUPP()
*
* Availability:
* Non-Carbon CFM: available as macro/inline
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
#pragma parameter InvokeResErrUPP(__D0, __A0)
#endif
EXTERN_API_C( void )
InvokeResErrUPP(
OSErr thErr,
ResErrUPP userUPP) ONEWORDINLINE(0x4E90);
#if !OPAQUE_UPP_TYPES && (!TARGET_OS_MAC || !TARGET_CPU_68K || TARGET_RT_MAC_CFM)
#ifdef __cplusplus
inline DEFINE_API_C(void) InvokeResErrUPP(OSErr thErr, ResErrUPP userUPP) { CALL_ONE_PARAMETER_UPP(userUPP, uppResErrProcInfo, thErr); }
#else
#define InvokeResErrUPP(thErr, userUPP) CALL_ONE_PARAMETER_UPP((userUPP), uppResErrProcInfo, (thErr))
#endif
#endif
#if CALL_NOT_IN_CARBON || OLDROUTINENAMES
/* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
#define NewResErrProc(userRoutine) NewResErrUPP(userRoutine)
#define CallResErrProc(userRoutine, thErr) InvokeResErrUPP(thErr, userRoutine)
#endif /* CALL_NOT_IN_CARBON */
/* QuickTime 3.0*/
typedef CALLBACK_API( OSErr , ResourceEndianFilterPtr )(Handle theResource, Boolean currentlyNativeEndian);
#if CALL_NOT_IN_CARBON
/*
* InitResources()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( short )
InitResources(void) ONEWORDINLINE(0xA995);
/*
* RsrcZoneInit()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( void )
RsrcZoneInit(void) ONEWORDINLINE(0xA996);
#endif /* CALL_NOT_IN_CARBON */
/*
* CloseResFile()
*
* 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( void )
CloseResFile(short refNum) ONEWORDINLINE(0xA99A);
/*
* ResError()
*
* 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 )
ResError(void) ONEWORDINLINE(0xA9AF);
/*
* CurResFile()
*
* 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( short )
CurResFile(void) ONEWORDINLINE(0xA994);
/*
* HomeResFile()
*
* 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( short )
HomeResFile(Handle theResource) ONEWORDINLINE(0xA9A4);
#if CALL_NOT_IN_CARBON
/*
* CreateResFile()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( void )
CreateResFile(ConstStr255Param fileName) ONEWORDINLINE(0xA9B1);
/*
* OpenResFile()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( short )
OpenResFile(ConstStr255Param fileName) ONEWORDINLINE(0xA997);
#endif /* CALL_NOT_IN_CARBON */
/*
* UseResFile()
*
* 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( void )
UseResFile(short refNum) ONEWORDINLINE(0xA998);
/*
* CountTypes()
*
* 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( short )
CountTypes(void) ONEWORDINLINE(0xA99E);
/*
* Count1Types()
*
* 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( short )
Count1Types(void) ONEWORDINLINE(0xA81C);
/*
* GetIndType()
*
* 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( void )
GetIndType(
ResType * theType,
short index) ONEWORDINLINE(0xA99F);
/*
* Get1IndType()
*
* 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( void )
Get1IndType(
ResType * theType,
short index) ONEWORDINLINE(0xA80F);
/*
* SetResLoad()
*
* 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( void )
SetResLoad(Boolean load) ONEWORDINLINE(0xA99B);
/*
* CountResources()
*
* 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( short )
CountResources(ResType theType) ONEWORDINLINE(0xA99C);
/*
* Count1Resources()
*
* 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( short )
Count1Resources(ResType theType) ONEWORDINLINE(0xA80D);
/*
* GetIndResource()
*
* 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( Handle )
GetIndResource(
ResType theType,
short index) ONEWORDINLINE(0xA99D);
/*
* Get1IndResource()
*
* 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( Handle )
Get1IndResource(
ResType theType,
short index) ONEWORDINLINE(0xA80E);
/*
* GetResource()
*
* 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( Handle )
GetResource(
ResType theType,
short theID) ONEWORDINLINE(0xA9A0);
/*
* Get1Resource()
*
* 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( Handle )
Get1Resource(
ResType theType,
short theID) ONEWORDINLINE(0xA81F);
/*
* GetNamedResource()
*
* 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( Handle )
GetNamedResource(
ResType theType,
ConstStr255Param name) ONEWORDINLINE(0xA9A1);
/*
* Get1NamedResource()
*
* 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( Handle )
Get1NamedResource(
ResType theType,
ConstStr255Param name) ONEWORDINLINE(0xA820);
/*
* [Mac]LoadResource()
*
* 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
*/
#if TARGET_OS_MAC
#define MacLoadResource LoadResource
#endif
EXTERN_API( void )
MacLoadResource(Handle theResource) ONEWORDINLINE(0xA9A2);
/*
* ReleaseResource()
*
* 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( void )
ReleaseResource(Handle theResource) ONEWORDINLINE(0xA9A3);
/*
* DetachResource()
*
* 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( void )
DetachResource(Handle theResource) ONEWORDINLINE(0xA992);
/*
* UniqueID()
*
* 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( short )
UniqueID(ResType theType) ONEWORDINLINE(0xA9C1);
/*
* Unique1ID()
*
* 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( short )
Unique1ID(ResType theType) ONEWORDINLINE(0xA810);
/*
* GetResAttrs()
*
* 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( short )
GetResAttrs(Handle theResource) ONEWORDINLINE(0xA9A6);
/*
* GetResInfo()
*
* 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( void )
GetResInfo(
Handle theResource,
short * theID,
ResType * theType,
Str255 name) ONEWORDINLINE(0xA9A8);
/*
* SetResInfo()
*
* 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( void )
SetResInfo(
Handle theResource,
short theID,
ConstStr255Param name) ONEWORDINLINE(0xA9A9);
/*
* AddResource()
*
* 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( void )
AddResource(
Handle theData,
ResType theType,
short theID,
ConstStr255Param name) ONEWORDINLINE(0xA9AB);
/*
* GetResourceSizeOnDisk()
*
* 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( long )
GetResourceSizeOnDisk(Handle theResource) ONEWORDINLINE(0xA9A5);
/*
* GetMaxResourceSize()
*
* 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( long )
GetMaxResourceSize(Handle theResource) ONEWORDINLINE(0xA821);
#if CALL_NOT_IN_CARBON
/*
* RsrcMapEntry()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( long )
RsrcMapEntry(Handle theResource) ONEWORDINLINE(0xA9C5);
#endif /* CALL_NOT_IN_CARBON */
/*
* SetResAttrs()
*
* 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( void )
SetResAttrs(
Handle theResource,
short attrs) ONEWORDINLINE(0xA9A7);
/*
* ChangedResource()
*
* 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( void )
ChangedResource(Handle theResource) ONEWORDINLINE(0xA9AA);
/*
* RemoveResource()
*
* 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( void )
RemoveResource(Handle theResource) ONEWORDINLINE(0xA9AD);
/*
* UpdateResFile()
*
* 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( void )
UpdateResFile(short refNum) ONEWORDINLINE(0xA999);
/*
* WriteResource()
*
* 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( void )
WriteResource(Handle theResource) ONEWORDINLINE(0xA9B0);
/*
* SetResPurge()
*
* 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( void )
SetResPurge(Boolean install) ONEWORDINLINE(0xA993);
/*
* GetResFileAttrs()
*
* 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( short )
GetResFileAttrs(short refNum) ONEWORDINLINE(0xA9F6);
/*
* SetResFileAttrs()
*
* 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( void )
SetResFileAttrs(
short refNum,
short attrs) ONEWORDINLINE(0xA9F7);
/*
* OpenRFPerm()
*
* 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( short )
OpenRFPerm(
ConstStr255Param fileName,
short vRefNum,
SInt8 permission) ONEWORDINLINE(0xA9C4);
#if CALL_NOT_IN_CARBON
/*
* RGetResource()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( Handle )
RGetResource(
ResType theType,
short theID) ONEWORDINLINE(0xA80C);
#endif /* CALL_NOT_IN_CARBON */
/*
* HOpenResFile()
*
* 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( short )
HOpenResFile(
short vRefNum,
long dirID,
ConstStr255Param fileName,
SInt8 permission) ONEWORDINLINE(0xA81A);
/*
* HCreateResFile()
*
* 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( void )
HCreateResFile(
short vRefNum,
long dirID,
ConstStr255Param fileName) ONEWORDINLINE(0xA81B);
/*
* FSpOpenResFile()
*
* 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( short )
FSpOpenResFile(
const FSSpec * spec,
SignedByte permission) TWOWORDINLINE(0x700D, 0xAA52);
/*
* FSpCreateResFile()
*
* 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( void )
FSpCreateResFile(
const FSSpec * spec,
OSType creator,
OSType fileType,
ScriptCode scriptTag) TWOWORDINLINE(0x700E, 0xAA52);
/*
* ReadPartialResource()
*
* 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( void )
ReadPartialResource(
Handle theResource,
long offset,
void * buffer,
long count) TWOWORDINLINE(0x7001, 0xA822);
/*
* WritePartialResource()
*
* 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( void )
WritePartialResource(
Handle theResource,
long offset,
const void * buffer,
long count) TWOWORDINLINE(0x7002, 0xA822);
/*
* SetResourceSize()
*
* 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( void )
SetResourceSize(
Handle theResource,
long newSize) TWOWORDINLINE(0x7003, 0xA822);
/*
* GetNextFOND()
*
* 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( Handle )
GetNextFOND(Handle fondHandle) TWOWORDINLINE(0x700A, 0xA822);
/* QuickTime 3.0*/
#if CALL_NOT_IN_CARBON
/*
* RegisterResourceEndianFilter()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( OSErr )
RegisterResourceEndianFilter(
ResType theType,
ResourceEndianFilterPtr theFilterProc);
/* Use TempInsertROMMap to force the ROM resource map to be
inserted into the chain in front of the system. Note that
this call is only temporary - the modified resource chain
is only used for the next call to the resource manager.
See IM IV 19 for more information.
*/
/*
* TempInsertROMMap()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( void )
TempInsertROMMap(Boolean tempResLoad) FIVEWORDINLINE(0x70FF, 0x4A1F, 0x56C0, 0x31C0, 0x0B9E);
/*
_________________________________________________________________________________________________________
o RESOURCE CHAIN LOCATION - for use with the Resource Manager chain manipulation routines under Carbon.
_________________________________________________________________________________________________________
*/
#endif /* CALL_NOT_IN_CARBON */
typedef SInt16 RsrcChainLocation;
enum {
kRsrcChainBelowSystemMap = 0, /* Below the system's resource map*/
kRsrcChainBelowApplicationMap = 1, /* Below the application's resource map*/
kRsrcChainAboveApplicationMap = 2, /* Above the application's resource map*/
kRsrcChainAboveAllMaps = 4 /* Above all resource maps*/
};
/*
If the file is already in the resource chain, it is removed and re-inserted at the specified location
If the file has been detached, it is added to the resource chain at the specified location
Returns resFNotFound if it's not currently open.
*/
/*
* InsertResourceFile()
*
* 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 )
InsertResourceFile(
SInt16 refNum,
RsrcChainLocation where);
/*
If the file is not currently in the resource chain, this returns resNotFound
Otherwise, the resource file is removed from the resource chain.
*/
/*
* DetachResourceFile()
*
* 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 )
DetachResourceFile(SInt16 refNum);
/*
Returns true if the resource file is already open and known by the Resource Manager (i.e., it is
either in the current resource chain or it's a detached resource file.) If it's in the resource
chain, the inChain Boolean is set to true on exit and true is returned. If it's an open file, but
the file is currently detached, inChain is set to false and true is returned. If the file is open,
the refNum to the file is returned.
*/
/*
* FSpResourceFileAlreadyOpen()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 9.0 and later
* CarbonLib: in CarbonLib 1.0 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( Boolean )
FSpResourceFileAlreadyOpen(
const FSSpec * resourceFile,
Boolean * inChain,
SInt16 * refNum) TWOWORDINLINE(0x7010, 0xA822);
/*
FSpOpenOrphanResFile should be used to open a resource file that is persistent across all contexts,
because using OpenResFile normally loads a map and all preloaded resources into the application
context. FSpOpenOrphanResFile loads everything into the system context and detaches the file
from the context in which it was opened. If the file is already in the resource chain and a new
instance is not opened, FSpOpenOrphanResFile will return a paramErr.
Use with care, as can and will fail if the map is very large or a lot of preload
resources exist.
*/
/*
* FSpOpenOrphanResFile()
*
* 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 )
FSpOpenOrphanResFile(
const FSSpec * spec,
SignedByte permission,
SInt16 * refNum);
/*
GetTopResourceFile returns the refNum of the top most resource map in the current resource chain. If
the resource chain is empty it returns resFNotFound.
*/
/*
* GetTopResourceFile()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: in CarbonLib 1.0.2 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSErr )
GetTopResourceFile(SInt16 * refNum);
/*
GetNextResourceFile can be used to iterate over resource files in the resource chain. By passing a
valid refNum in curRefNum it will return in nextRefNum the refNum of the next file in
the chain. If curRefNum is not found in the resource chain, GetNextResourceFile returns resFNotFound.
When the end of the chain is reached GetNextResourceFile will return noErr and nextRefNum will be NIL.
*/
/*
* GetNextResourceFile()
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: in CarbonLib 1.0.2 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSErr )
GetNextResourceFile(
SInt16 curRefNum,
SInt16 * nextRefNum);
#if CALL_NOT_IN_CARBON
/*
* getnamedresource()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( Handle )
getnamedresource(
ResType theType,
const char * name);
/*
* get1namedresource()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( Handle )
get1namedresource(
ResType theType,
const char * name);
/*
* openrfperm()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( short )
openrfperm(
const char * fileName,
short vRefNum,
char permission);
/*
* openresfile()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( short )
openresfile(const char * fileName);
/*
* createresfile()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( void )
createresfile(const char * fileName);
/*
* getresinfo()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( void )
getresinfo(
Handle theResource,
short * theID,
ResType * theType,
char * name);
/*
* setresinfo()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( void )
setresinfo(
Handle theResource,
short theID,
const char * name);
/*
* addresource()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 7.1 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API_C( void )
addresource(
Handle theResource,
ResType theType,
short theID,
const char * name);
#endif /* CALL_NOT_IN_CARBON */
#if OLDROUTINENAMES
#define SizeResource(theResource) GetResourceSizeOnDisk(theResource)
#define MaxSizeRsrc(theResource) GetMaxResourceSize(theResource)
#define RmveResource(theResource) RemoveResource(theResource)
#endif /* OLDROUTINENAMES */
/*
* FSCreateResourceFile()
*
* Summary:
* Creates a new resource file.
*
* Discussion:
* This function creates a new file and initializes the specified
* named fork as an empty resource fork. This function allows for
* the creation of data fork only files which can be used for
* storing resources. Passing in a null name defaults to using the
* data fork.
*
* Parameters:
*
* parentRef:
* The directory where the file is to be created
*
* nameLength:
* Number of Unicode characters in the file's name
*
* name:
* A pointer to the Unicode name
*
* whichInfo:
* Which catalog info fields to set
*
* catalogInfo:
* The values for catalog info fields to set; may be NULL
*
* forkNameLength:
* The length of the fork name (in Unicode characters)
*
* forkName:
* The name of the fork to initialize (in Unicode); may be NULL
*
* newRef:
* A pointer to the FSRef for the new file; may be NULL
*
* newSpec:
* A pointer to the FSSpec for the new directory; may be NULL
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSErr )
FSCreateResourceFile(
const FSRef * parentRef,
UniCharCount nameLength,
const UniChar * name,
FSCatalogInfoBitmap whichInfo,
const FSCatalogInfo * catalogInfo, /* can be NULL */
UniCharCount forkNameLength,
const UniChar * forkName, /* can be NULL */
FSRef * newRef, /* can be NULL */
FSSpec * newSpec); /* can be NULL */
/*
* FSCreateResourceFork()
*
* Summary:
* Creates the named forked and initializes it as an empty resource
* fork.
*
* Discussion:
* This function allows a resource fork to be added to an existing
* file. Passing in a null forkname will result in the data fork
* being used. If the named fork already exists this function does
* nothing and returns errFSForkExists.
*
* Parameters:
*
* ref:
* The file to add the fork to
*
* forkNameLength:
* The length of the fork name (in Unicode characters)
*
* forkName:
* The name of the fork to open (in Unicode); may be NULL
*
* flags:
* Pass in zero
*
* 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 )
FSCreateResourceFork(
const FSRef * ref,
UniCharCount forkNameLength,
const UniChar * forkName, /* can be NULL */
UInt32 flags);
/*
* FSOpenResourceFile()
*
* Summary:
* Opens the specified named fork as a resource fork.
*
* Discussion:
* This function allows any named fork of a file to be used for
* storing resources. Passing in a null forkname will result in the
* data fork being used.
*
* Parameters:
*
* ref:
* The file containing the fork to open
*
* forkNameLength:
* The length of the fork name (in Unicode characters)
*
* forkName:
* The name of the fork to open (in Unicode); may be NULL
*
* permissions:
* The access (read and/or write) you want
*
* refNum:
* On exit the reference number for accessing the open fork
*
* Availability:
* Non-Carbon CFM: not available
* CarbonLib: in CarbonLib 1.3 and later
* Mac OS X: in version 10.0 and later
*/
EXTERN_API( OSErr )
FSOpenResourceFile(
const FSRef * ref,
UniCharCount forkNameLength,
const UniChar * forkName, /* can be NULL */
SInt8 permissions,
SInt16 * refNum);
/*
These typedefs were originally created for the Copland Resource Mangager
*/
typedef short ResFileRefNum;
typedef short ResID;
typedef short ResAttributes;
typedef short ResFileAttributes;
#if CALL_NOT_IN_CARBON
/*
* SortResourceFile()
*
* Availability:
* Non-Carbon CFM: in InterfaceLib 9.2 and later
* CarbonLib: not available
* Mac OS X: not available
*/
EXTERN_API( void )
SortResourceFile(short resFileRefNum) TWOWORDINLINE(0x7016, 0xA822);
#endif /* CALL_NOT_IN_CARBON */
#ifdef PRAGMA_IMPORT_OFF
#pragma import off
#elif PRAGMA_IMPORT
#pragma import reset
#endif
#ifdef __cplusplus
}
#endif
#endif /* __RESOURCES__ */