Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

752 lines
24 KiB

  1. /*
  2. File: StandardFile.h
  3. Contains: Standard File package Interfaces.
  4. Version: QuickTime 7.3
  5. Copyright: (c) 2007 (c) 1990-2001 by Apple Computer, Inc., all rights reserved
  6. Bugs?: For bug reports, consult the following page on
  7. the World Wide Web:
  8. http://developer.apple.com/bugreporter/
  9. */
  10. #ifndef __STANDARDFILE__
  11. #define __STANDARDFILE__
  12. #ifndef __MACTYPES__
  13. #include <MacTypes.h>
  14. #endif
  15. #ifndef __DIALOGS__
  16. #include <Dialogs.h>
  17. #endif
  18. #ifndef __FILES__
  19. #include <Files.h>
  20. #endif
  21. #if PRAGMA_ONCE
  22. #pragma once
  23. #endif
  24. #ifdef __cplusplus
  25. extern "C" {
  26. #endif
  27. #if PRAGMA_IMPORT
  28. #pragma import on
  29. #endif
  30. #if PRAGMA_STRUCT_ALIGN
  31. #pragma options align=mac68k
  32. #elif PRAGMA_STRUCT_PACKPUSH
  33. #pragma pack(push, 2)
  34. #elif PRAGMA_STRUCT_PACK
  35. #pragma pack(2)
  36. #endif
  37. enum {
  38. /* resource IDs of pre-7.0 get and put dialogs */
  39. putDlgID = -3999,
  40. getDlgID = -4000
  41. };
  42. enum {
  43. /* item offsets of pre-7.0 get and put dialogs */
  44. putSave = 1,
  45. putCancel = 2,
  46. putEject = 5,
  47. putDrive = 6,
  48. putName = 7,
  49. getOpen = 1,
  50. getCancel = 3,
  51. getEject = 5,
  52. getDrive = 6,
  53. getNmList = 7,
  54. getScroll = 8
  55. };
  56. enum {
  57. /* resource IDs of 7.0 get and put dialogs */
  58. sfPutDialogID = -6043,
  59. sfGetDialogID = -6042
  60. };
  61. enum {
  62. /* item offsets of 7.0 get and put dialogs */
  63. sfItemOpenButton = 1,
  64. sfItemCancelButton = 2,
  65. sfItemBalloonHelp = 3,
  66. sfItemVolumeUser = 4,
  67. sfItemEjectButton = 5,
  68. sfItemDesktopButton = 6,
  69. sfItemFileListUser = 7,
  70. sfItemPopUpMenuUser = 8,
  71. sfItemDividerLinePict = 9,
  72. sfItemFileNameTextEdit = 10,
  73. sfItemPromptStaticText = 11,
  74. sfItemNewFolderUser = 12
  75. };
  76. enum {
  77. /* pseudo-item hits for use in DlgHook */
  78. sfHookFirstCall = -1,
  79. sfHookCharOffset = 0x1000,
  80. sfHookNullEvent = 100,
  81. sfHookRebuildList = 101,
  82. sfHookFolderPopUp = 102,
  83. sfHookOpenFolder = 103, /* the following are only in system 7.0+ */
  84. sfHookLastCall = -2,
  85. sfHookOpenAlias = 104,
  86. sfHookGoToDesktop = 105,
  87. sfHookGoToAliasTarget = 106,
  88. sfHookGoToParent = 107,
  89. sfHookGoToNextDrive = 108,
  90. sfHookGoToPrevDrive = 109,
  91. sfHookChangeSelection = 110,
  92. sfHookSetActiveOffset = 200
  93. };
  94. /* the refcon field of the dialog record during a
  95. modalfilter or dialoghook contains one of the following */
  96. enum {
  97. sfMainDialogRefCon = FOUR_CHAR_CODE('stdf'),
  98. sfNewFolderDialogRefCon = FOUR_CHAR_CODE('nfdr'),
  99. sfReplaceDialogRefCon = FOUR_CHAR_CODE('rplc'),
  100. sfStatWarnDialogRefCon = FOUR_CHAR_CODE('stat'),
  101. sfLockWarnDialogRefCon = FOUR_CHAR_CODE('lock'),
  102. sfErrorDialogRefCon = FOUR_CHAR_CODE('err ')
  103. };
  104. struct SFReply {
  105. Boolean good;
  106. Boolean copy;
  107. OSType fType;
  108. short vRefNum;
  109. short version;
  110. StrFileName fName; /* a Str63 on MacOS */
  111. };
  112. typedef struct SFReply SFReply;
  113. struct StandardFileReply {
  114. Boolean sfGood;
  115. Boolean sfReplacing;
  116. OSType sfType;
  117. FSSpec sfFile;
  118. ScriptCode sfScript;
  119. short sfFlags;
  120. Boolean sfIsFolder;
  121. Boolean sfIsVolume;
  122. long sfReserved1;
  123. short sfReserved2;
  124. };
  125. typedef struct StandardFileReply StandardFileReply;
  126. /* for CustomXXXFile, ActivationOrderListPtr parameter is a pointer to an array of item numbers */
  127. typedef const short * ActivationOrderListPtr;
  128. typedef CALLBACK_API( short , DlgHookProcPtr )(short item, DialogRef theDialog);
  129. typedef CALLBACK_API( Boolean , FileFilterProcPtr )(CInfoPBPtr pb);
  130. /* the following also include an extra parameter of "your data pointer" */
  131. typedef CALLBACK_API( short , DlgHookYDProcPtr )(short item, DialogRef theDialog, void *yourDataPtr);
  132. /* ModalFilterYDProcPtr moved to Dialogs.h */
  133. typedef CALLBACK_API( Boolean , FileFilterYDProcPtr )(CInfoPBPtr pb, void *yourDataPtr);
  134. typedef CALLBACK_API( void , ActivateYDProcPtr )(DialogRef theDialog, short itemNo, Boolean activating, void *yourDataPtr);
  135. typedef STACK_UPP_TYPE(DlgHookProcPtr) DlgHookUPP;
  136. typedef STACK_UPP_TYPE(FileFilterProcPtr) FileFilterUPP;
  137. typedef STACK_UPP_TYPE(DlgHookYDProcPtr) DlgHookYDUPP;
  138. typedef STACK_UPP_TYPE(FileFilterYDProcPtr) FileFilterYDUPP;
  139. typedef STACK_UPP_TYPE(ActivateYDProcPtr) ActivateYDUPP;
  140. #if CALL_NOT_IN_CARBON
  141. /*
  142. * NewDlgHookUPP()
  143. *
  144. * Availability:
  145. * Non-Carbon CFM: available as macro/inline
  146. * CarbonLib: not available
  147. * Mac OS X: not available
  148. */
  149. EXTERN_API_C( DlgHookUPP )
  150. NewDlgHookUPP(DlgHookProcPtr userRoutine);
  151. #if !OPAQUE_UPP_TYPES
  152. enum { uppDlgHookProcInfo = 0x000003A0 }; /* pascal 2_bytes Func(2_bytes, 4_bytes) */
  153. #ifdef __cplusplus
  154. inline DEFINE_API_C(DlgHookUPP) NewDlgHookUPP(DlgHookProcPtr userRoutine) { return (DlgHookUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDlgHookProcInfo, GetCurrentArchitecture()); }
  155. #else
  156. #define NewDlgHookUPP(userRoutine) (DlgHookUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDlgHookProcInfo, GetCurrentArchitecture())
  157. #endif
  158. #endif
  159. /*
  160. * NewFileFilterUPP()
  161. *
  162. * Availability:
  163. * Non-Carbon CFM: available as macro/inline
  164. * CarbonLib: not available
  165. * Mac OS X: not available
  166. */
  167. EXTERN_API_C( FileFilterUPP )
  168. NewFileFilterUPP(FileFilterProcPtr userRoutine);
  169. #if !OPAQUE_UPP_TYPES
  170. enum { uppFileFilterProcInfo = 0x000000D0 }; /* pascal 1_byte Func(4_bytes) */
  171. #ifdef __cplusplus
  172. inline DEFINE_API_C(FileFilterUPP) NewFileFilterUPP(FileFilterProcPtr userRoutine) { return (FileFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileFilterProcInfo, GetCurrentArchitecture()); }
  173. #else
  174. #define NewFileFilterUPP(userRoutine) (FileFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileFilterProcInfo, GetCurrentArchitecture())
  175. #endif
  176. #endif
  177. /*
  178. * NewDlgHookYDUPP()
  179. *
  180. * Availability:
  181. * Non-Carbon CFM: available as macro/inline
  182. * CarbonLib: not available
  183. * Mac OS X: not available
  184. */
  185. EXTERN_API_C( DlgHookYDUPP )
  186. NewDlgHookYDUPP(DlgHookYDProcPtr userRoutine);
  187. #if !OPAQUE_UPP_TYPES
  188. enum { uppDlgHookYDProcInfo = 0x00000FA0 }; /* pascal 2_bytes Func(2_bytes, 4_bytes, 4_bytes) */
  189. #ifdef __cplusplus
  190. inline DEFINE_API_C(DlgHookYDUPP) NewDlgHookYDUPP(DlgHookYDProcPtr userRoutine) { return (DlgHookYDUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDlgHookYDProcInfo, GetCurrentArchitecture()); }
  191. #else
  192. #define NewDlgHookYDUPP(userRoutine) (DlgHookYDUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppDlgHookYDProcInfo, GetCurrentArchitecture())
  193. #endif
  194. #endif
  195. /*
  196. * NewFileFilterYDUPP()
  197. *
  198. * Availability:
  199. * Non-Carbon CFM: available as macro/inline
  200. * CarbonLib: not available
  201. * Mac OS X: not available
  202. */
  203. EXTERN_API_C( FileFilterYDUPP )
  204. NewFileFilterYDUPP(FileFilterYDProcPtr userRoutine);
  205. #if !OPAQUE_UPP_TYPES
  206. enum { uppFileFilterYDProcInfo = 0x000003D0 }; /* pascal 1_byte Func(4_bytes, 4_bytes) */
  207. #ifdef __cplusplus
  208. inline DEFINE_API_C(FileFilterYDUPP) NewFileFilterYDUPP(FileFilterYDProcPtr userRoutine) { return (FileFilterYDUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileFilterYDProcInfo, GetCurrentArchitecture()); }
  209. #else
  210. #define NewFileFilterYDUPP(userRoutine) (FileFilterYDUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppFileFilterYDProcInfo, GetCurrentArchitecture())
  211. #endif
  212. #endif
  213. /*
  214. * NewActivateYDUPP()
  215. *
  216. * Availability:
  217. * Non-Carbon CFM: available as macro/inline
  218. * CarbonLib: not available
  219. * Mac OS X: not available
  220. */
  221. EXTERN_API_C( ActivateYDUPP )
  222. NewActivateYDUPP(ActivateYDProcPtr userRoutine);
  223. #if !OPAQUE_UPP_TYPES
  224. enum { uppActivateYDProcInfo = 0x000036C0 }; /* pascal no_return_value Func(4_bytes, 2_bytes, 1_byte, 4_bytes) */
  225. #ifdef __cplusplus
  226. inline DEFINE_API_C(ActivateYDUPP) NewActivateYDUPP(ActivateYDProcPtr userRoutine) { return (ActivateYDUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppActivateYDProcInfo, GetCurrentArchitecture()); }
  227. #else
  228. #define NewActivateYDUPP(userRoutine) (ActivateYDUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppActivateYDProcInfo, GetCurrentArchitecture())
  229. #endif
  230. #endif
  231. /*
  232. * DisposeDlgHookUPP()
  233. *
  234. * Availability:
  235. * Non-Carbon CFM: available as macro/inline
  236. * CarbonLib: not available
  237. * Mac OS X: not available
  238. */
  239. EXTERN_API_C( void )
  240. DisposeDlgHookUPP(DlgHookUPP userUPP);
  241. #if !OPAQUE_UPP_TYPES
  242. #ifdef __cplusplus
  243. inline DEFINE_API_C(void) DisposeDlgHookUPP(DlgHookUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  244. #else
  245. #define DisposeDlgHookUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  246. #endif
  247. #endif
  248. /*
  249. * DisposeFileFilterUPP()
  250. *
  251. * Availability:
  252. * Non-Carbon CFM: available as macro/inline
  253. * CarbonLib: not available
  254. * Mac OS X: not available
  255. */
  256. EXTERN_API_C( void )
  257. DisposeFileFilterUPP(FileFilterUPP userUPP);
  258. #if !OPAQUE_UPP_TYPES
  259. #ifdef __cplusplus
  260. inline DEFINE_API_C(void) DisposeFileFilterUPP(FileFilterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  261. #else
  262. #define DisposeFileFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  263. #endif
  264. #endif
  265. /*
  266. * DisposeDlgHookYDUPP()
  267. *
  268. * Availability:
  269. * Non-Carbon CFM: available as macro/inline
  270. * CarbonLib: not available
  271. * Mac OS X: not available
  272. */
  273. EXTERN_API_C( void )
  274. DisposeDlgHookYDUPP(DlgHookYDUPP userUPP);
  275. #if !OPAQUE_UPP_TYPES
  276. #ifdef __cplusplus
  277. inline DEFINE_API_C(void) DisposeDlgHookYDUPP(DlgHookYDUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  278. #else
  279. #define DisposeDlgHookYDUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  280. #endif
  281. #endif
  282. /*
  283. * DisposeFileFilterYDUPP()
  284. *
  285. * Availability:
  286. * Non-Carbon CFM: available as macro/inline
  287. * CarbonLib: not available
  288. * Mac OS X: not available
  289. */
  290. EXTERN_API_C( void )
  291. DisposeFileFilterYDUPP(FileFilterYDUPP userUPP);
  292. #if !OPAQUE_UPP_TYPES
  293. #ifdef __cplusplus
  294. inline DEFINE_API_C(void) DisposeFileFilterYDUPP(FileFilterYDUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  295. #else
  296. #define DisposeFileFilterYDUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  297. #endif
  298. #endif
  299. /*
  300. * DisposeActivateYDUPP()
  301. *
  302. * Availability:
  303. * Non-Carbon CFM: available as macro/inline
  304. * CarbonLib: not available
  305. * Mac OS X: not available
  306. */
  307. EXTERN_API_C( void )
  308. DisposeActivateYDUPP(ActivateYDUPP userUPP);
  309. #if !OPAQUE_UPP_TYPES
  310. #ifdef __cplusplus
  311. inline DEFINE_API_C(void) DisposeActivateYDUPP(ActivateYDUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  312. #else
  313. #define DisposeActivateYDUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  314. #endif
  315. #endif
  316. /*
  317. * InvokeDlgHookUPP()
  318. *
  319. * Availability:
  320. * Non-Carbon CFM: available as macro/inline
  321. * CarbonLib: not available
  322. * Mac OS X: not available
  323. */
  324. EXTERN_API_C( short )
  325. InvokeDlgHookUPP(
  326. short item,
  327. DialogRef theDialog,
  328. DlgHookUPP userUPP);
  329. #if !OPAQUE_UPP_TYPES
  330. #ifdef __cplusplus
  331. inline DEFINE_API_C(short) InvokeDlgHookUPP(short item, DialogRef theDialog, DlgHookUPP userUPP) { return (short)CALL_TWO_PARAMETER_UPP(userUPP, uppDlgHookProcInfo, item, theDialog); }
  332. #else
  333. #define InvokeDlgHookUPP(item, theDialog, userUPP) (short)CALL_TWO_PARAMETER_UPP((userUPP), uppDlgHookProcInfo, (item), (theDialog))
  334. #endif
  335. #endif
  336. /*
  337. * InvokeFileFilterUPP()
  338. *
  339. * Availability:
  340. * Non-Carbon CFM: available as macro/inline
  341. * CarbonLib: not available
  342. * Mac OS X: not available
  343. */
  344. EXTERN_API_C( Boolean )
  345. InvokeFileFilterUPP(
  346. CInfoPBPtr pb,
  347. FileFilterUPP userUPP);
  348. #if !OPAQUE_UPP_TYPES
  349. #ifdef __cplusplus
  350. inline DEFINE_API_C(Boolean) InvokeFileFilterUPP(CInfoPBPtr pb, FileFilterUPP userUPP) { return (Boolean)CALL_ONE_PARAMETER_UPP(userUPP, uppFileFilterProcInfo, pb); }
  351. #else
  352. #define InvokeFileFilterUPP(pb, userUPP) (Boolean)CALL_ONE_PARAMETER_UPP((userUPP), uppFileFilterProcInfo, (pb))
  353. #endif
  354. #endif
  355. /*
  356. * InvokeDlgHookYDUPP()
  357. *
  358. * Availability:
  359. * Non-Carbon CFM: available as macro/inline
  360. * CarbonLib: not available
  361. * Mac OS X: not available
  362. */
  363. EXTERN_API_C( short )
  364. InvokeDlgHookYDUPP(
  365. short item,
  366. DialogRef theDialog,
  367. void * yourDataPtr,
  368. DlgHookYDUPP userUPP);
  369. #if !OPAQUE_UPP_TYPES
  370. #ifdef __cplusplus
  371. 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); }
  372. #else
  373. #define InvokeDlgHookYDUPP(item, theDialog, yourDataPtr, userUPP) (short)CALL_THREE_PARAMETER_UPP((userUPP), uppDlgHookYDProcInfo, (item), (theDialog), (yourDataPtr))
  374. #endif
  375. #endif
  376. /*
  377. * InvokeFileFilterYDUPP()
  378. *
  379. * Availability:
  380. * Non-Carbon CFM: available as macro/inline
  381. * CarbonLib: not available
  382. * Mac OS X: not available
  383. */
  384. EXTERN_API_C( Boolean )
  385. InvokeFileFilterYDUPP(
  386. CInfoPBPtr pb,
  387. void * yourDataPtr,
  388. FileFilterYDUPP userUPP);
  389. #if !OPAQUE_UPP_TYPES
  390. #ifdef __cplusplus
  391. inline DEFINE_API_C(Boolean) InvokeFileFilterYDUPP(CInfoPBPtr pb, void * yourDataPtr, FileFilterYDUPP userUPP) { return (Boolean)CALL_TWO_PARAMETER_UPP(userUPP, uppFileFilterYDProcInfo, pb, yourDataPtr); }
  392. #else
  393. #define InvokeFileFilterYDUPP(pb, yourDataPtr, userUPP) (Boolean)CALL_TWO_PARAMETER_UPP((userUPP), uppFileFilterYDProcInfo, (pb), (yourDataPtr))
  394. #endif
  395. #endif
  396. /*
  397. * InvokeActivateYDUPP()
  398. *
  399. * Availability:
  400. * Non-Carbon CFM: available as macro/inline
  401. * CarbonLib: not available
  402. * Mac OS X: not available
  403. */
  404. EXTERN_API_C( void )
  405. InvokeActivateYDUPP(
  406. DialogRef theDialog,
  407. short itemNo,
  408. Boolean activating,
  409. void * yourDataPtr,
  410. ActivateYDUPP userUPP);
  411. #if !OPAQUE_UPP_TYPES
  412. #ifdef __cplusplus
  413. 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); }
  414. #else
  415. #define InvokeActivateYDUPP(theDialog, itemNo, activating, yourDataPtr, userUPP) CALL_FOUR_PARAMETER_UPP((userUPP), uppActivateYDProcInfo, (theDialog), (itemNo), (activating), (yourDataPtr))
  416. #endif
  417. #endif
  418. #endif /* CALL_NOT_IN_CARBON */
  419. #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
  420. /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
  421. #define NewDlgHookProc(userRoutine) NewDlgHookUPP(userRoutine)
  422. #define NewFileFilterProc(userRoutine) NewFileFilterUPP(userRoutine)
  423. #define NewDlgHookYDProc(userRoutine) NewDlgHookYDUPP(userRoutine)
  424. #define NewFileFilterYDProc(userRoutine) NewFileFilterYDUPP(userRoutine)
  425. #define NewActivateYDProc(userRoutine) NewActivateYDUPP(userRoutine)
  426. #define CallDlgHookProc(userRoutine, item, theDialog) InvokeDlgHookUPP(item, theDialog, userRoutine)
  427. #define CallFileFilterProc(userRoutine, pb) InvokeFileFilterUPP(pb, userRoutine)
  428. #define CallDlgHookYDProc(userRoutine, item, theDialog, yourDataPtr) InvokeDlgHookYDUPP(item, theDialog, yourDataPtr, userRoutine)
  429. #define CallFileFilterYDProc(userRoutine, pb, yourDataPtr) InvokeFileFilterYDUPP(pb, yourDataPtr, userRoutine)
  430. #define CallActivateYDProc(userRoutine, theDialog, itemNo, activating, yourDataPtr) InvokeActivateYDUPP(theDialog, itemNo, activating, yourDataPtr, userRoutine)
  431. #endif /* CALL_NOT_IN_CARBON */
  432. typedef OSType SFTypeList[4];
  433. /*
  434. The GetFile "typeList" parameter type has changed from "SFTypeList" to "ConstSFTypeListPtr".
  435. For C, this will add "const" and make it an in-only parameter.
  436. For Pascal, this will require client code to use the @ operator, but make it easier to specify long lists.
  437. ConstSFTypeListPtr is a pointer to an array of OSTypes.
  438. */
  439. typedef const OSType * ConstSFTypeListPtr;
  440. #if CALL_NOT_IN_CARBON
  441. /*
  442. * SFPutFile()
  443. *
  444. * Availability:
  445. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  446. * CarbonLib: not available
  447. * Mac OS X: not available
  448. */
  449. EXTERN_API( void )
  450. SFPutFile(
  451. Point where,
  452. ConstStr255Param prompt, /* can be NULL */
  453. ConstStr255Param origName,
  454. DlgHookUPP dlgHook, /* can be NULL */
  455. SFReply * reply) THREEWORDINLINE(0x3F3C, 0x0001, 0xA9EA);
  456. /*
  457. * SFGetFile()
  458. *
  459. * Availability:
  460. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  461. * CarbonLib: not available
  462. * Mac OS X: not available
  463. */
  464. EXTERN_API( void )
  465. SFGetFile(
  466. Point where,
  467. ConstStr255Param prompt,
  468. FileFilterUPP fileFilter, /* can be NULL */
  469. short numTypes,
  470. ConstSFTypeListPtr typeList, /* can be NULL */
  471. DlgHookUPP dlgHook, /* can be NULL */
  472. SFReply * reply) THREEWORDINLINE(0x3F3C, 0x0002, 0xA9EA);
  473. /*
  474. * SFPPutFile()
  475. *
  476. * Availability:
  477. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  478. * CarbonLib: not available
  479. * Mac OS X: not available
  480. */
  481. EXTERN_API( void )
  482. SFPPutFile(
  483. Point where,
  484. ConstStr255Param prompt, /* can be NULL */
  485. ConstStr255Param origName,
  486. DlgHookUPP dlgHook,
  487. SFReply * reply,
  488. short dlgID,
  489. ModalFilterUPP filterProc) /* can be NULL */ THREEWORDINLINE(0x3F3C, 0x0003, 0xA9EA);
  490. /*
  491. * SFPGetFile()
  492. *
  493. * Availability:
  494. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  495. * CarbonLib: not available
  496. * Mac OS X: not available
  497. */
  498. EXTERN_API( void )
  499. SFPGetFile(
  500. Point where,
  501. ConstStr255Param prompt,
  502. FileFilterUPP fileFilter, /* can be NULL */
  503. short numTypes,
  504. ConstSFTypeListPtr typeList, /* can be NULL */
  505. DlgHookUPP dlgHook, /* can be NULL */
  506. SFReply * reply,
  507. short dlgID,
  508. ModalFilterUPP filterProc) /* can be NULL */ THREEWORDINLINE(0x3F3C, 0x0004, 0xA9EA);
  509. /*
  510. * StandardPutFile()
  511. *
  512. * Availability:
  513. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  514. * CarbonLib: not available
  515. * Mac OS X: not available
  516. */
  517. EXTERN_API( void )
  518. StandardPutFile(
  519. ConstStr255Param prompt, /* can be NULL */
  520. ConstStr255Param defaultName,
  521. StandardFileReply * reply) THREEWORDINLINE(0x3F3C, 0x0005, 0xA9EA);
  522. /*
  523. * StandardGetFile()
  524. *
  525. * Availability:
  526. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  527. * CarbonLib: not available
  528. * Mac OS X: not available
  529. */
  530. EXTERN_API( void )
  531. StandardGetFile(
  532. FileFilterUPP fileFilter, /* can be NULL */
  533. short numTypes,
  534. ConstSFTypeListPtr typeList, /* can be NULL */
  535. StandardFileReply * reply) THREEWORDINLINE(0x3F3C, 0x0006, 0xA9EA);
  536. /*
  537. * CustomPutFile()
  538. *
  539. * Availability:
  540. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  541. * CarbonLib: not available
  542. * Mac OS X: not available
  543. */
  544. EXTERN_API( void )
  545. CustomPutFile(
  546. ConstStr255Param prompt, /* can be NULL */
  547. ConstStr255Param defaultName,
  548. StandardFileReply * reply,
  549. short dlgID,
  550. Point where,
  551. DlgHookYDUPP dlgHook, /* can be NULL */
  552. ModalFilterYDUPP filterProc, /* can be NULL */
  553. ActivationOrderListPtr activeList, /* can be NULL */
  554. ActivateYDUPP activate, /* can be NULL */
  555. void * yourDataPtr) THREEWORDINLINE(0x3F3C, 0x0007, 0xA9EA);
  556. /*
  557. * CustomGetFile()
  558. *
  559. * Availability:
  560. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  561. * CarbonLib: not available
  562. * Mac OS X: not available
  563. */
  564. EXTERN_API( void )
  565. CustomGetFile(
  566. FileFilterYDUPP fileFilter, /* can be NULL */
  567. short numTypes,
  568. ConstSFTypeListPtr typeList, /* can be NULL */
  569. StandardFileReply * reply,
  570. short dlgID,
  571. Point where,
  572. DlgHookYDUPP dlgHook, /* can be NULL */
  573. ModalFilterYDUPP filterProc, /* can be NULL */
  574. ActivationOrderListPtr activeList, /* can be NULL */
  575. ActivateYDUPP activate, /* can be NULL */
  576. void * yourDataPtr) THREEWORDINLINE(0x3F3C, 0x0008, 0xA9EA);
  577. /*
  578. * StandardOpenDialog()
  579. *
  580. * Availability:
  581. * Non-Carbon CFM: in Translation 1.0 and later
  582. * CarbonLib: not available
  583. * Mac OS X: not available
  584. */
  585. EXTERN_API( OSErr )
  586. StandardOpenDialog(StandardFileReply * reply);
  587. #endif /* CALL_NOT_IN_CARBON */
  588. #if CALL_NOT_IN_CARBON
  589. /*
  590. * sfpputfile()
  591. *
  592. * Availability:
  593. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  594. * CarbonLib: not available
  595. * Mac OS X: not available
  596. */
  597. EXTERN_API_C( void )
  598. sfpputfile(
  599. Point * where,
  600. const char * prompt,
  601. const char * origName,
  602. DlgHookUPP dlgHook, /* can be NULL */
  603. SFReply * reply,
  604. short dlgID,
  605. ModalFilterUPP filterProc); /* can be NULL */
  606. /*
  607. * sfgetfile()
  608. *
  609. * Availability:
  610. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  611. * CarbonLib: not available
  612. * Mac OS X: not available
  613. */
  614. EXTERN_API_C( void )
  615. sfgetfile(
  616. Point * where,
  617. const char * prompt,
  618. FileFilterUPP fileFilter, /* can be NULL */
  619. short numTypes,
  620. ConstSFTypeListPtr typeList, /* can be NULL */
  621. DlgHookUPP dlgHook, /* can be NULL */
  622. SFReply * reply);
  623. /*
  624. * sfpgetfile()
  625. *
  626. * Availability:
  627. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  628. * CarbonLib: not available
  629. * Mac OS X: not available
  630. */
  631. EXTERN_API_C( void )
  632. sfpgetfile(
  633. Point * where,
  634. const char * prompt,
  635. FileFilterUPP fileFilter, /* can be NULL */
  636. short numTypes,
  637. ConstSFTypeListPtr typeList, /* can be NULL */
  638. DlgHookUPP dlgHook, /* can be NULL */
  639. SFReply * reply,
  640. short dlgID,
  641. ModalFilterUPP filterProc); /* can be NULL */
  642. /*
  643. * sfputfile()
  644. *
  645. * Availability:
  646. * Non-Carbon CFM: in InterfaceLib 7.1 and later
  647. * CarbonLib: not available
  648. * Mac OS X: not available
  649. */
  650. EXTERN_API_C( void )
  651. sfputfile(
  652. Point * where,
  653. const char * prompt,
  654. const char * origName,
  655. DlgHookUPP dlgHook, /* can be NULL */
  656. SFReply * reply);
  657. #endif /* CALL_NOT_IN_CARBON */
  658. #if PRAGMA_STRUCT_ALIGN
  659. #pragma options align=reset
  660. #elif PRAGMA_STRUCT_PACKPUSH
  661. #pragma pack(pop)
  662. #elif PRAGMA_STRUCT_PACK
  663. #pragma pack()
  664. #endif
  665. #ifdef PRAGMA_IMPORT_OFF
  666. #pragma import off
  667. #elif PRAGMA_IMPORT
  668. #pragma import reset
  669. #endif
  670. #ifdef __cplusplus
  671. }
  672. #endif
  673. #endif /* __STANDARDFILE__ */