/* File: StandardFile.h Contains: Standard File package Interfaces. Version: QuickTime 7.3 Copyright: (c) 2007 (c) 1990-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 __STANDARDFILE__ #define __STANDARDFILE__ #ifndef __MACTYPES__ #include #endif #ifndef __DIALOGS__ #include #endif #ifndef __FILES__ #include #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 enum { /* resource IDs of pre-7.0 get and put dialogs */ putDlgID = -3999, getDlgID = -4000 }; enum { /* item offsets of pre-7.0 get and put dialogs */ putSave = 1, putCancel = 2, putEject = 5, putDrive = 6, putName = 7, getOpen = 1, getCancel = 3, getEject = 5, getDrive = 6, getNmList = 7, getScroll = 8 }; enum { /* resource IDs of 7.0 get and put dialogs */ sfPutDialogID = -6043, sfGetDialogID = -6042 }; enum { /* item offsets of 7.0 get and put dialogs */ sfItemOpenButton = 1, sfItemCancelButton = 2, sfItemBalloonHelp = 3, sfItemVolumeUser = 4, sfItemEjectButton = 5, sfItemDesktopButton = 6, sfItemFileListUser = 7, sfItemPopUpMenuUser = 8, sfItemDividerLinePict = 9, sfItemFileNameTextEdit = 10, sfItemPromptStaticText = 11, sfItemNewFolderUser = 12 }; enum { /* pseudo-item hits for use in DlgHook */ sfHookFirstCall = -1, sfHookCharOffset = 0x1000, sfHookNullEvent = 100, sfHookRebuildList = 101, sfHookFolderPopUp = 102, sfHookOpenFolder = 103, /* the following are only in system 7.0+ */ sfHookLastCall = -2, sfHookOpenAlias = 104, sfHookGoToDesktop = 105, sfHookGoToAliasTarget = 106, sfHookGoToParent = 107, sfHookGoToNextDrive = 108, sfHookGoToPrevDrive = 109, sfHookChangeSelection = 110, sfHookSetActiveOffset = 200 }; /* the refcon field of the dialog record during a modalfilter or dialoghook contains one of the following */ enum { sfMainDialogRefCon = FOUR_CHAR_CODE('stdf'), sfNewFolderDialogRefCon = FOUR_CHAR_CODE('nfdr'), sfReplaceDialogRefCon = FOUR_CHAR_CODE('rplc'), sfStatWarnDialogRefCon = FOUR_CHAR_CODE('stat'), sfLockWarnDialogRefCon = FOUR_CHAR_CODE('lock'), sfErrorDialogRefCon = FOUR_CHAR_CODE('err ') }; struct SFReply { Boolean good; Boolean copy; OSType fType; short vRefNum; short version; StrFileName fName; /* a Str63 on MacOS */ }; typedef struct SFReply SFReply; struct StandardFileReply { Boolean sfGood; Boolean sfReplacing; OSType sfType; FSSpec sfFile; ScriptCode sfScript; short sfFlags; Boolean sfIsFolder; Boolean sfIsVolume; long sfReserved1; short sfReserved2; }; typedef struct StandardFileReply StandardFileReply; /* for CustomXXXFile, ActivationOrderListPtr parameter is a pointer to an array of item numbers */ typedef const short * ActivationOrderListPtr; typedef CALLBACK_API( short , DlgHookProcPtr )(short item, DialogRef theDialog); typedef CALLBACK_API( Boolean , FileFilterProcPtr )(CInfoPBPtr pb); /* the following also include an extra parameter of "your data pointer" */ typedef CALLBACK_API( short , DlgHookYDProcPtr )(short item, DialogRef theDialog, void *yourDataPtr); /* ModalFilterYDProcPtr moved to Dialogs.h */ typedef CALLBACK_API( Boolean , FileFilterYDProcPtr )(CInfoPBPtr pb, void *yourDataPtr); typedef CALLBACK_API( void , ActivateYDProcPtr )(DialogRef theDialog, short itemNo, Boolean activating, void *yourDataPtr); typedef STACK_UPP_TYPE(DlgHookProcPtr) DlgHookUPP; typedef STACK_UPP_TYPE(FileFilterProcPtr) FileFilterUPP; typedef STACK_UPP_TYPE(DlgHookYDProcPtr) DlgHookYDUPP; typedef STACK_UPP_TYPE(FileFilterYDProcPtr) FileFilterYDUPP; typedef STACK_UPP_TYPE(ActivateYDProcPtr) ActivateYDUPP; #if CALL_NOT_IN_CARBON /* * NewDlgHookUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( DlgHookUPP ) NewDlgHookUPP(DlgHookProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppDlgHookProcInfo = 0x000003A0 }; /* pascal 2_bytes Func(2_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(DlgHookUPP) NewDlgHookUPP(DlgHookProcPtr userRoutine) { return (DlgHookUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDlgHookProcInfo, GetCurrentArchitecture()); } #else #define NewDlgHookUPP(userRoutine) (DlgHookUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDlgHookProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewFileFilterUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( FileFilterUPP ) NewFileFilterUPP(FileFilterProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppFileFilterProcInfo = 0x000000D0 }; /* pascal 1_byte Func(4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(FileFilterUPP) NewFileFilterUPP(FileFilterProcPtr userRoutine) { return (FileFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileFilterProcInfo, GetCurrentArchitecture()); } #else #define NewFileFilterUPP(userRoutine) (FileFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileFilterProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewDlgHookYDUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( DlgHookYDUPP ) NewDlgHookYDUPP(DlgHookYDProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppDlgHookYDProcInfo = 0x00000FA0 }; /* pascal 2_bytes Func(2_bytes, 4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(DlgHookYDUPP) NewDlgHookYDUPP(DlgHookYDProcPtr userRoutine) { return (DlgHookYDUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDlgHookYDProcInfo, GetCurrentArchitecture()); } #else #define NewDlgHookYDUPP(userRoutine) (DlgHookYDUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDlgHookYDProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewFileFilterYDUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( FileFilterYDUPP ) NewFileFilterYDUPP(FileFilterYDProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppFileFilterYDProcInfo = 0x000003D0 }; /* pascal 1_byte Func(4_bytes, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(FileFilterYDUPP) NewFileFilterYDUPP(FileFilterYDProcPtr userRoutine) { return (FileFilterYDUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileFilterYDProcInfo, GetCurrentArchitecture()); } #else #define NewFileFilterYDUPP(userRoutine) (FileFilterYDUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileFilterYDProcInfo, GetCurrentArchitecture()) #endif #endif /* * NewActivateYDUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( ActivateYDUPP ) NewActivateYDUPP(ActivateYDProcPtr userRoutine); #if !OPAQUE_UPP_TYPES enum { uppActivateYDProcInfo = 0x000036C0 }; /* pascal no_return_value Func(4_bytes, 2_bytes, 1_byte, 4_bytes) */ #ifdef __cplusplus inline DEFINE_API_C(ActivateYDUPP) NewActivateYDUPP(ActivateYDProcPtr userRoutine) { return (ActivateYDUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppActivateYDProcInfo, GetCurrentArchitecture()); } #else #define NewActivateYDUPP(userRoutine) (ActivateYDUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppActivateYDProcInfo, GetCurrentArchitecture()) #endif #endif /* * DisposeDlgHookUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) DisposeDlgHookUPP(DlgHookUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeDlgHookUPP(DlgHookUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeDlgHookUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeFileFilterUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) DisposeFileFilterUPP(FileFilterUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeFileFilterUPP(FileFilterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeFileFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeDlgHookYDUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) DisposeDlgHookYDUPP(DlgHookYDUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeDlgHookYDUPP(DlgHookYDUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeDlgHookYDUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeFileFilterYDUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) DisposeFileFilterYDUPP(FileFilterYDUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeFileFilterYDUPP(FileFilterYDUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeFileFilterYDUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * DisposeActivateYDUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) DisposeActivateYDUPP(ActivateYDUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) DisposeActivateYDUPP(ActivateYDUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } #else #define DisposeActivateYDUPP(userUPP) DisposeRoutineDescriptor(userUPP) #endif #endif /* * InvokeDlgHookUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( short ) InvokeDlgHookUPP( short item, DialogRef theDialog, DlgHookUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(short) InvokeDlgHookUPP(short item, DialogRef theDialog, DlgHookUPP userUPP) { return (short)CALL_TWO_PARAMETER_UPP(userUPP, uppDlgHookProcInfo, item, theDialog); } #else #define InvokeDlgHookUPP(item, theDialog, userUPP) (short)CALL_TWO_PARAMETER_UPP((userUPP), uppDlgHookProcInfo, (item), (theDialog)) #endif #endif /* * InvokeFileFilterUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( Boolean ) InvokeFileFilterUPP( CInfoPBPtr pb, FileFilterUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(Boolean) InvokeFileFilterUPP(CInfoPBPtr pb, FileFilterUPP userUPP) { return (Boolean)CALL_ONE_PARAMETER_UPP(userUPP, uppFileFilterProcInfo, pb); } #else #define InvokeFileFilterUPP(pb, userUPP) (Boolean)CALL_ONE_PARAMETER_UPP((userUPP), uppFileFilterProcInfo, (pb)) #endif #endif /* * InvokeDlgHookYDUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( short ) InvokeDlgHookYDUPP( short item, DialogRef theDialog, void * yourDataPtr, DlgHookYDUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(short) InvokeDlgHookYDUPP(short item, DialogRef theDialog, void * yourDataPtr, DlgHookYDUPP userUPP) { return (short)CALL_THREE_PARAMETER_UPP(userUPP, uppDlgHookYDProcInfo, item, theDialog, yourDataPtr); } #else #define InvokeDlgHookYDUPP(item, theDialog, yourDataPtr, userUPP) (short)CALL_THREE_PARAMETER_UPP((userUPP), uppDlgHookYDProcInfo, (item), (theDialog), (yourDataPtr)) #endif #endif /* * InvokeFileFilterYDUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( Boolean ) InvokeFileFilterYDUPP( CInfoPBPtr pb, void * yourDataPtr, FileFilterYDUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(Boolean) InvokeFileFilterYDUPP(CInfoPBPtr pb, void * yourDataPtr, FileFilterYDUPP userUPP) { return (Boolean)CALL_TWO_PARAMETER_UPP(userUPP, uppFileFilterYDProcInfo, pb, yourDataPtr); } #else #define InvokeFileFilterYDUPP(pb, yourDataPtr, userUPP) (Boolean)CALL_TWO_PARAMETER_UPP((userUPP), uppFileFilterYDProcInfo, (pb), (yourDataPtr)) #endif #endif /* * InvokeActivateYDUPP() * * Availability: * Non-Carbon CFM: available as macro/inline * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) InvokeActivateYDUPP( DialogRef theDialog, short itemNo, Boolean activating, void * yourDataPtr, ActivateYDUPP userUPP); #if !OPAQUE_UPP_TYPES #ifdef __cplusplus inline DEFINE_API_C(void) InvokeActivateYDUPP(DialogRef theDialog, short itemNo, Boolean activating, void * yourDataPtr, ActivateYDUPP userUPP) { CALL_FOUR_PARAMETER_UPP(userUPP, uppActivateYDProcInfo, theDialog, itemNo, activating, yourDataPtr); } #else #define InvokeActivateYDUPP(theDialog, itemNo, activating, yourDataPtr, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppActivateYDProcInfo, (theDialog), (itemNo), (activating), (yourDataPtr)) #endif #endif #endif /* CALL_NOT_IN_CARBON */ #if CALL_NOT_IN_CARBON || OLDROUTINENAMES /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ #define NewDlgHookProc(userRoutine) NewDlgHookUPP(userRoutine) #define NewFileFilterProc(userRoutine) NewFileFilterUPP(userRoutine) #define NewDlgHookYDProc(userRoutine) NewDlgHookYDUPP(userRoutine) #define NewFileFilterYDProc(userRoutine) NewFileFilterYDUPP(userRoutine) #define NewActivateYDProc(userRoutine) NewActivateYDUPP(userRoutine) #define CallDlgHookProc(userRoutine, item, theDialog) InvokeDlgHookUPP(item, theDialog, userRoutine) #define CallFileFilterProc(userRoutine, pb) InvokeFileFilterUPP(pb, userRoutine) #define CallDlgHookYDProc(userRoutine, item, theDialog, yourDataPtr) InvokeDlgHookYDUPP(item, theDialog, yourDataPtr, userRoutine) #define CallFileFilterYDProc(userRoutine, pb, yourDataPtr) InvokeFileFilterYDUPP(pb, yourDataPtr, userRoutine) #define CallActivateYDProc(userRoutine, theDialog, itemNo, activating, yourDataPtr) InvokeActivateYDUPP(theDialog, itemNo, activating, yourDataPtr, userRoutine) #endif /* CALL_NOT_IN_CARBON */ typedef OSType SFTypeList[4]; /* The GetFile "typeList" parameter type has changed from "SFTypeList" to "ConstSFTypeListPtr". For C, this will add "const" and make it an in-only parameter. For Pascal, this will require client code to use the @ operator, but make it easier to specify long lists. ConstSFTypeListPtr is a pointer to an array of OSTypes. */ typedef const OSType * ConstSFTypeListPtr; #if CALL_NOT_IN_CARBON /* * SFPutFile() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( void ) SFPutFile( Point where, ConstStr255Param prompt, /* can be NULL */ ConstStr255Param origName, DlgHookUPP dlgHook, /* can be NULL */ SFReply * reply) THREEWORDINLINE(0x3F3C, 0x0001, 0xA9EA); /* * SFGetFile() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( void ) SFGetFile( Point where, ConstStr255Param prompt, FileFilterUPP fileFilter, /* can be NULL */ short numTypes, ConstSFTypeListPtr typeList, /* can be NULL */ DlgHookUPP dlgHook, /* can be NULL */ SFReply * reply) THREEWORDINLINE(0x3F3C, 0x0002, 0xA9EA); /* * SFPPutFile() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( void ) SFPPutFile( Point where, ConstStr255Param prompt, /* can be NULL */ ConstStr255Param origName, DlgHookUPP dlgHook, SFReply * reply, short dlgID, ModalFilterUPP filterProc) /* can be NULL */ THREEWORDINLINE(0x3F3C, 0x0003, 0xA9EA); /* * SFPGetFile() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( void ) SFPGetFile( Point where, ConstStr255Param prompt, FileFilterUPP fileFilter, /* can be NULL */ short numTypes, ConstSFTypeListPtr typeList, /* can be NULL */ DlgHookUPP dlgHook, /* can be NULL */ SFReply * reply, short dlgID, ModalFilterUPP filterProc) /* can be NULL */ THREEWORDINLINE(0x3F3C, 0x0004, 0xA9EA); /* * StandardPutFile() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( void ) StandardPutFile( ConstStr255Param prompt, /* can be NULL */ ConstStr255Param defaultName, StandardFileReply * reply) THREEWORDINLINE(0x3F3C, 0x0005, 0xA9EA); /* * StandardGetFile() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( void ) StandardGetFile( FileFilterUPP fileFilter, /* can be NULL */ short numTypes, ConstSFTypeListPtr typeList, /* can be NULL */ StandardFileReply * reply) THREEWORDINLINE(0x3F3C, 0x0006, 0xA9EA); /* * CustomPutFile() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( void ) CustomPutFile( ConstStr255Param prompt, /* can be NULL */ ConstStr255Param defaultName, StandardFileReply * reply, short dlgID, Point where, DlgHookYDUPP dlgHook, /* can be NULL */ ModalFilterYDUPP filterProc, /* can be NULL */ ActivationOrderListPtr activeList, /* can be NULL */ ActivateYDUPP activate, /* can be NULL */ void * yourDataPtr) THREEWORDINLINE(0x3F3C, 0x0007, 0xA9EA); /* * CustomGetFile() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( void ) CustomGetFile( FileFilterYDUPP fileFilter, /* can be NULL */ short numTypes, ConstSFTypeListPtr typeList, /* can be NULL */ StandardFileReply * reply, short dlgID, Point where, DlgHookYDUPP dlgHook, /* can be NULL */ ModalFilterYDUPP filterProc, /* can be NULL */ ActivationOrderListPtr activeList, /* can be NULL */ ActivateYDUPP activate, /* can be NULL */ void * yourDataPtr) THREEWORDINLINE(0x3F3C, 0x0008, 0xA9EA); /* * StandardOpenDialog() * * Availability: * Non-Carbon CFM: in Translation 1.0 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API( OSErr ) StandardOpenDialog(StandardFileReply * reply); #endif /* CALL_NOT_IN_CARBON */ #if CALL_NOT_IN_CARBON /* * sfpputfile() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) sfpputfile( Point * where, const char * prompt, const char * origName, DlgHookUPP dlgHook, /* can be NULL */ SFReply * reply, short dlgID, ModalFilterUPP filterProc); /* can be NULL */ /* * sfgetfile() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) sfgetfile( Point * where, const char * prompt, FileFilterUPP fileFilter, /* can be NULL */ short numTypes, ConstSFTypeListPtr typeList, /* can be NULL */ DlgHookUPP dlgHook, /* can be NULL */ SFReply * reply); /* * sfpgetfile() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) sfpgetfile( Point * where, const char * prompt, FileFilterUPP fileFilter, /* can be NULL */ short numTypes, ConstSFTypeListPtr typeList, /* can be NULL */ DlgHookUPP dlgHook, /* can be NULL */ SFReply * reply, short dlgID, ModalFilterUPP filterProc); /* can be NULL */ /* * sfputfile() * * Availability: * Non-Carbon CFM: in InterfaceLib 7.1 and later * CarbonLib: not available * Mac OS X: not available */ EXTERN_API_C( void ) sfputfile( Point * where, const char * prompt, const char * origName, DlgHookUPP dlgHook, /* can be NULL */ SFReply * reply); #endif /* CALL_NOT_IN_CARBON */ #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 /* __STANDARDFILE__ */