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.

821 lines
32 KiB

  1. /*
  2. File: AEObjects.h
  3. Contains: Object Support Library Interfaces.
  4. Version: QuickTime 7.3
  5. Copyright: (c) 2007 (c) 1991-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 __AEOBJECTS__
  11. #define __AEOBJECTS__
  12. #ifndef __MACERRORS__
  13. #include <MacErrors.h>
  14. #endif
  15. #ifndef __OSUTILS__
  16. #include <OSUtils.h>
  17. #endif
  18. #ifndef __APPLEEVENTS__
  19. #include <AppleEvents.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. /**** LOGICAL OPERATOR CONSTANTS ****/
  39. kAEAND = FOUR_CHAR_CODE('AND '), /* 0x414e4420 */
  40. kAEOR = FOUR_CHAR_CODE('OR '), /* 0x4f522020 */
  41. kAENOT = FOUR_CHAR_CODE('NOT '), /* 0x4e4f5420 */
  42. /**** ABSOLUTE ORDINAL CONSTANTS ****/
  43. kAEFirst = FOUR_CHAR_CODE('firs'), /* 0x66697273 */
  44. kAELast = FOUR_CHAR_CODE('last'), /* 0x6c617374 */
  45. kAEMiddle = FOUR_CHAR_CODE('midd'), /* 0x6d696464 */
  46. kAEAny = FOUR_CHAR_CODE('any '), /* 0x616e7920 */
  47. kAEAll = FOUR_CHAR_CODE('all '), /* 0x616c6c20 */
  48. /**** RELATIVE ORDINAL CONSTANTS ****/
  49. kAENext = FOUR_CHAR_CODE('next'), /* 0x6e657874 */
  50. kAEPrevious = FOUR_CHAR_CODE('prev'), /* 0x70726576 */
  51. /**** KEYWORD CONSTANT ****/
  52. keyAECompOperator = FOUR_CHAR_CODE('relo'), /* 0x72656c6f */
  53. keyAELogicalTerms = FOUR_CHAR_CODE('term'), /* 0x7465726d */
  54. keyAELogicalOperator = FOUR_CHAR_CODE('logc'), /* 0x6c6f6763 */
  55. keyAEObject1 = FOUR_CHAR_CODE('obj1'), /* 0x6f626a31 */
  56. keyAEObject2 = FOUR_CHAR_CODE('obj2'), /* 0x6f626a32 */
  57. /* ... for Keywords for getting fields out of object specifier records. */
  58. keyAEDesiredClass = FOUR_CHAR_CODE('want'), /* 0x77616e74 */
  59. keyAEContainer = FOUR_CHAR_CODE('from'), /* 0x66726f6d */
  60. keyAEKeyForm = FOUR_CHAR_CODE('form'), /* 0x666f726d */
  61. keyAEKeyData = FOUR_CHAR_CODE('seld') /* 0x73656c64 */
  62. };
  63. enum {
  64. /* ... for Keywords for getting fields out of Range specifier records. */
  65. keyAERangeStart = FOUR_CHAR_CODE('star'), /* 0x73746172 */
  66. keyAERangeStop = FOUR_CHAR_CODE('stop'), /* 0x73746f70 */
  67. /* ... special handler selectors for OSL Callbacks. */
  68. keyDisposeTokenProc = FOUR_CHAR_CODE('xtok'), /* 0x78746f6b */
  69. keyAECompareProc = FOUR_CHAR_CODE('cmpr'), /* 0x636d7072 */
  70. keyAECountProc = FOUR_CHAR_CODE('cont'), /* 0x636f6e74 */
  71. keyAEMarkTokenProc = FOUR_CHAR_CODE('mkid'), /* 0x6d6b6964 */
  72. keyAEMarkProc = FOUR_CHAR_CODE('mark'), /* 0x6d61726b */
  73. keyAEAdjustMarksProc = FOUR_CHAR_CODE('adjm'), /* 0x61646a6d */
  74. keyAEGetErrDescProc = FOUR_CHAR_CODE('indc') /* 0x696e6463 */
  75. };
  76. /**** VALUE and TYPE CONSTANTS ****/
  77. enum {
  78. /* ... possible values for the keyAEKeyForm field of an object specifier. */
  79. formAbsolutePosition = FOUR_CHAR_CODE('indx'), /* 0x696e6478 */
  80. formRelativePosition = FOUR_CHAR_CODE('rele'), /* 0x72656c65 */
  81. formTest = FOUR_CHAR_CODE('test'), /* 0x74657374 */
  82. formRange = FOUR_CHAR_CODE('rang'), /* 0x72616e67 */
  83. formPropertyID = FOUR_CHAR_CODE('prop'), /* 0x70726f70 */
  84. formName = FOUR_CHAR_CODE('name'), /* 0x6e616d65 */
  85. /* ... relevant types (some of these are often pared with forms above). */
  86. typeObjectSpecifier = FOUR_CHAR_CODE('obj '), /* 0x6f626a20 */
  87. typeObjectBeingExamined = FOUR_CHAR_CODE('exmn'), /* 0x65786d6e */
  88. typeCurrentContainer = FOUR_CHAR_CODE('ccnt'), /* 0x63636e74 */
  89. typeToken = FOUR_CHAR_CODE('toke'), /* 0x746f6b65 */
  90. typeRelativeDescriptor = FOUR_CHAR_CODE('rel '), /* 0x72656c20 */
  91. typeAbsoluteOrdinal = FOUR_CHAR_CODE('abso'), /* 0x6162736f */
  92. typeIndexDescriptor = FOUR_CHAR_CODE('inde'), /* 0x696e6465 */
  93. typeRangeDescriptor = FOUR_CHAR_CODE('rang'), /* 0x72616e67 */
  94. typeLogicalDescriptor = FOUR_CHAR_CODE('logi'), /* 0x6c6f6769 */
  95. typeCompDescriptor = FOUR_CHAR_CODE('cmpd'), /* 0x636d7064 */
  96. typeOSLTokenList = FOUR_CHAR_CODE('ostl') /* 0x6F73746C */
  97. };
  98. /* Possible values for flags parameter to AEResolve. They're additive */
  99. enum {
  100. kAEIDoMinimum = 0x0000,
  101. kAEIDoWhose = 0x0001,
  102. kAEIDoMarking = 0x0004,
  103. kAEPassSubDescs = 0x0008,
  104. kAEResolveNestedLists = 0x0010,
  105. kAEHandleSimpleRanges = 0x0020,
  106. kAEUseRelativeIterators = 0x0040
  107. };
  108. /**** SPECIAL CONSTANTS FOR CUSTOM WHOSE-CLAUSE RESOLUTION */
  109. enum {
  110. typeWhoseDescriptor = FOUR_CHAR_CODE('whos'), /* 0x77686f73 */
  111. formWhose = FOUR_CHAR_CODE('whos'), /* 0x77686f73 */
  112. typeWhoseRange = FOUR_CHAR_CODE('wrng'), /* 0x77726e67 */
  113. keyAEWhoseRangeStart = FOUR_CHAR_CODE('wstr'), /* 0x77737472 */
  114. keyAEWhoseRangeStop = FOUR_CHAR_CODE('wstp'), /* 0x77737470 */
  115. keyAEIndex = FOUR_CHAR_CODE('kidx'), /* 0x6b696478 */
  116. keyAETest = FOUR_CHAR_CODE('ktst') /* 0x6b747374 */
  117. };
  118. /*
  119. used for rewriting tokens in place of 'ccnt' descriptors
  120. This record is only of interest to those who, when they...
  121. ...get ranges as key data in their accessor procs, choose
  122. ...to resolve them manually rather than call AEResolve again.
  123. */
  124. struct ccntTokenRecord {
  125. DescType tokenClass;
  126. AEDesc token;
  127. };
  128. typedef struct ccntTokenRecord ccntTokenRecord;
  129. typedef ccntTokenRecord * ccntTokenRecPtr;
  130. typedef ccntTokenRecPtr * ccntTokenRecHandle;
  131. #if OLDROUTINENAMES
  132. typedef AEDesc * DescPtr;
  133. typedef DescPtr * DescHandle;
  134. #endif /* OLDROUTINENAMES */
  135. /* typedefs providing type checking for procedure pointers */
  136. typedef CALLBACK_API( OSErr , OSLAccessorProcPtr )(DescType desiredClass, const AEDesc *container, DescType containerClass, DescType form, const AEDesc *selectionData, AEDesc *value, long accessorRefcon);
  137. typedef CALLBACK_API( OSErr , OSLCompareProcPtr )(DescType oper, const AEDesc *obj1, const AEDesc *obj2, Boolean *result);
  138. typedef CALLBACK_API( OSErr , OSLCountProcPtr )(DescType desiredType, DescType containerClass, const AEDesc *container, long *result);
  139. typedef CALLBACK_API( OSErr , OSLDisposeTokenProcPtr )(AEDesc * unneededToken);
  140. typedef CALLBACK_API( OSErr , OSLGetMarkTokenProcPtr )(const AEDesc *dContainerToken, DescType containerClass, AEDesc *result);
  141. typedef CALLBACK_API( OSErr , OSLGetErrDescProcPtr )(AEDesc ** appDescPtr);
  142. typedef CALLBACK_API( OSErr , OSLMarkProcPtr )(const AEDesc *dToken, const AEDesc *markToken, long index);
  143. typedef CALLBACK_API( OSErr , OSLAdjustMarksProcPtr )(long newStart, long newStop, const AEDesc *markToken);
  144. typedef STACK_UPP_TYPE(OSLAccessorProcPtr) OSLAccessorUPP;
  145. typedef STACK_UPP_TYPE(OSLCompareProcPtr) OSLCompareUPP;
  146. typedef STACK_UPP_TYPE(OSLCountProcPtr) OSLCountUPP;
  147. typedef STACK_UPP_TYPE(OSLDisposeTokenProcPtr) OSLDisposeTokenUPP;
  148. typedef STACK_UPP_TYPE(OSLGetMarkTokenProcPtr) OSLGetMarkTokenUPP;
  149. typedef STACK_UPP_TYPE(OSLGetErrDescProcPtr) OSLGetErrDescUPP;
  150. typedef STACK_UPP_TYPE(OSLMarkProcPtr) OSLMarkUPP;
  151. typedef STACK_UPP_TYPE(OSLAdjustMarksProcPtr) OSLAdjustMarksUPP;
  152. /*
  153. * NewOSLAccessorUPP()
  154. *
  155. * Availability:
  156. * Non-Carbon CFM: available as macro/inline
  157. * CarbonLib: in CarbonLib 1.0 and later
  158. * Mac OS X: in version 10.0 and later
  159. */
  160. EXTERN_API_C( OSLAccessorUPP )
  161. NewOSLAccessorUPP(OSLAccessorProcPtr userRoutine);
  162. #if !OPAQUE_UPP_TYPES
  163. enum { uppOSLAccessorProcInfo = 0x000FFFE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  164. #ifdef __cplusplus
  165. inline DEFINE_API_C(OSLAccessorUPP) NewOSLAccessorUPP(OSLAccessorProcPtr userRoutine) { return (OSLAccessorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLAccessorProcInfo, GetCurrentArchitecture()); }
  166. #else
  167. #define NewOSLAccessorUPP(userRoutine) (OSLAccessorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLAccessorProcInfo, GetCurrentArchitecture())
  168. #endif
  169. #endif
  170. /*
  171. * NewOSLCompareUPP()
  172. *
  173. * Availability:
  174. * Non-Carbon CFM: available as macro/inline
  175. * CarbonLib: in CarbonLib 1.0 and later
  176. * Mac OS X: in version 10.0 and later
  177. */
  178. EXTERN_API_C( OSLCompareUPP )
  179. NewOSLCompareUPP(OSLCompareProcPtr userRoutine);
  180. #if !OPAQUE_UPP_TYPES
  181. enum { uppOSLCompareProcInfo = 0x00003FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  182. #ifdef __cplusplus
  183. inline DEFINE_API_C(OSLCompareUPP) NewOSLCompareUPP(OSLCompareProcPtr userRoutine) { return (OSLCompareUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLCompareProcInfo, GetCurrentArchitecture()); }
  184. #else
  185. #define NewOSLCompareUPP(userRoutine) (OSLCompareUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLCompareProcInfo, GetCurrentArchitecture())
  186. #endif
  187. #endif
  188. /*
  189. * NewOSLCountUPP()
  190. *
  191. * Availability:
  192. * Non-Carbon CFM: available as macro/inline
  193. * CarbonLib: in CarbonLib 1.0 and later
  194. * Mac OS X: in version 10.0 and later
  195. */
  196. EXTERN_API_C( OSLCountUPP )
  197. NewOSLCountUPP(OSLCountProcPtr userRoutine);
  198. #if !OPAQUE_UPP_TYPES
  199. enum { uppOSLCountProcInfo = 0x00003FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  200. #ifdef __cplusplus
  201. inline DEFINE_API_C(OSLCountUPP) NewOSLCountUPP(OSLCountProcPtr userRoutine) { return (OSLCountUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLCountProcInfo, GetCurrentArchitecture()); }
  202. #else
  203. #define NewOSLCountUPP(userRoutine) (OSLCountUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLCountProcInfo, GetCurrentArchitecture())
  204. #endif
  205. #endif
  206. /*
  207. * NewOSLDisposeTokenUPP()
  208. *
  209. * Availability:
  210. * Non-Carbon CFM: available as macro/inline
  211. * CarbonLib: in CarbonLib 1.0 and later
  212. * Mac OS X: in version 10.0 and later
  213. */
  214. EXTERN_API_C( OSLDisposeTokenUPP )
  215. NewOSLDisposeTokenUPP(OSLDisposeTokenProcPtr userRoutine);
  216. #if !OPAQUE_UPP_TYPES
  217. enum { uppOSLDisposeTokenProcInfo = 0x000000E0 }; /* pascal 2_bytes Func(4_bytes) */
  218. #ifdef __cplusplus
  219. inline DEFINE_API_C(OSLDisposeTokenUPP) NewOSLDisposeTokenUPP(OSLDisposeTokenProcPtr userRoutine) { return (OSLDisposeTokenUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLDisposeTokenProcInfo, GetCurrentArchitecture()); }
  220. #else
  221. #define NewOSLDisposeTokenUPP(userRoutine) (OSLDisposeTokenUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLDisposeTokenProcInfo, GetCurrentArchitecture())
  222. #endif
  223. #endif
  224. /*
  225. * NewOSLGetMarkTokenUPP()
  226. *
  227. * Availability:
  228. * Non-Carbon CFM: available as macro/inline
  229. * CarbonLib: in CarbonLib 1.0 and later
  230. * Mac OS X: in version 10.0 and later
  231. */
  232. EXTERN_API_C( OSLGetMarkTokenUPP )
  233. NewOSLGetMarkTokenUPP(OSLGetMarkTokenProcPtr userRoutine);
  234. #if !OPAQUE_UPP_TYPES
  235. enum { uppOSLGetMarkTokenProcInfo = 0x00000FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  236. #ifdef __cplusplus
  237. inline DEFINE_API_C(OSLGetMarkTokenUPP) NewOSLGetMarkTokenUPP(OSLGetMarkTokenProcPtr userRoutine) { return (OSLGetMarkTokenUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLGetMarkTokenProcInfo, GetCurrentArchitecture()); }
  238. #else
  239. #define NewOSLGetMarkTokenUPP(userRoutine) (OSLGetMarkTokenUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLGetMarkTokenProcInfo, GetCurrentArchitecture())
  240. #endif
  241. #endif
  242. /*
  243. * NewOSLGetErrDescUPP()
  244. *
  245. * Availability:
  246. * Non-Carbon CFM: available as macro/inline
  247. * CarbonLib: in CarbonLib 1.0 and later
  248. * Mac OS X: in version 10.0 and later
  249. */
  250. EXTERN_API_C( OSLGetErrDescUPP )
  251. NewOSLGetErrDescUPP(OSLGetErrDescProcPtr userRoutine);
  252. #if !OPAQUE_UPP_TYPES
  253. enum { uppOSLGetErrDescProcInfo = 0x000000E0 }; /* pascal 2_bytes Func(4_bytes) */
  254. #ifdef __cplusplus
  255. inline DEFINE_API_C(OSLGetErrDescUPP) NewOSLGetErrDescUPP(OSLGetErrDescProcPtr userRoutine) { return (OSLGetErrDescUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLGetErrDescProcInfo, GetCurrentArchitecture()); }
  256. #else
  257. #define NewOSLGetErrDescUPP(userRoutine) (OSLGetErrDescUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLGetErrDescProcInfo, GetCurrentArchitecture())
  258. #endif
  259. #endif
  260. /*
  261. * NewOSLMarkUPP()
  262. *
  263. * Availability:
  264. * Non-Carbon CFM: available as macro/inline
  265. * CarbonLib: in CarbonLib 1.0 and later
  266. * Mac OS X: in version 10.0 and later
  267. */
  268. EXTERN_API_C( OSLMarkUPP )
  269. NewOSLMarkUPP(OSLMarkProcPtr userRoutine);
  270. #if !OPAQUE_UPP_TYPES
  271. enum { uppOSLMarkProcInfo = 0x00000FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  272. #ifdef __cplusplus
  273. inline DEFINE_API_C(OSLMarkUPP) NewOSLMarkUPP(OSLMarkProcPtr userRoutine) { return (OSLMarkUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLMarkProcInfo, GetCurrentArchitecture()); }
  274. #else
  275. #define NewOSLMarkUPP(userRoutine) (OSLMarkUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLMarkProcInfo, GetCurrentArchitecture())
  276. #endif
  277. #endif
  278. /*
  279. * NewOSLAdjustMarksUPP()
  280. *
  281. * Availability:
  282. * Non-Carbon CFM: available as macro/inline
  283. * CarbonLib: in CarbonLib 1.0 and later
  284. * Mac OS X: in version 10.0 and later
  285. */
  286. EXTERN_API_C( OSLAdjustMarksUPP )
  287. NewOSLAdjustMarksUPP(OSLAdjustMarksProcPtr userRoutine);
  288. #if !OPAQUE_UPP_TYPES
  289. enum { uppOSLAdjustMarksProcInfo = 0x00000FE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  290. #ifdef __cplusplus
  291. inline DEFINE_API_C(OSLAdjustMarksUPP) NewOSLAdjustMarksUPP(OSLAdjustMarksProcPtr userRoutine) { return (OSLAdjustMarksUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLAdjustMarksProcInfo, GetCurrentArchitecture()); }
  292. #else
  293. #define NewOSLAdjustMarksUPP(userRoutine) (OSLAdjustMarksUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLAdjustMarksProcInfo, GetCurrentArchitecture())
  294. #endif
  295. #endif
  296. /*
  297. * DisposeOSLAccessorUPP()
  298. *
  299. * Availability:
  300. * Non-Carbon CFM: available as macro/inline
  301. * CarbonLib: in CarbonLib 1.0 and later
  302. * Mac OS X: in version 10.0 and later
  303. */
  304. EXTERN_API_C( void )
  305. DisposeOSLAccessorUPP(OSLAccessorUPP userUPP);
  306. #if !OPAQUE_UPP_TYPES
  307. #ifdef __cplusplus
  308. inline DEFINE_API_C(void) DisposeOSLAccessorUPP(OSLAccessorUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  309. #else
  310. #define DisposeOSLAccessorUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  311. #endif
  312. #endif
  313. /*
  314. * DisposeOSLCompareUPP()
  315. *
  316. * Availability:
  317. * Non-Carbon CFM: available as macro/inline
  318. * CarbonLib: in CarbonLib 1.0 and later
  319. * Mac OS X: in version 10.0 and later
  320. */
  321. EXTERN_API_C( void )
  322. DisposeOSLCompareUPP(OSLCompareUPP userUPP);
  323. #if !OPAQUE_UPP_TYPES
  324. #ifdef __cplusplus
  325. inline DEFINE_API_C(void) DisposeOSLCompareUPP(OSLCompareUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  326. #else
  327. #define DisposeOSLCompareUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  328. #endif
  329. #endif
  330. /*
  331. * DisposeOSLCountUPP()
  332. *
  333. * Availability:
  334. * Non-Carbon CFM: available as macro/inline
  335. * CarbonLib: in CarbonLib 1.0 and later
  336. * Mac OS X: in version 10.0 and later
  337. */
  338. EXTERN_API_C( void )
  339. DisposeOSLCountUPP(OSLCountUPP userUPP);
  340. #if !OPAQUE_UPP_TYPES
  341. #ifdef __cplusplus
  342. inline DEFINE_API_C(void) DisposeOSLCountUPP(OSLCountUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  343. #else
  344. #define DisposeOSLCountUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  345. #endif
  346. #endif
  347. /*
  348. * DisposeOSLDisposeTokenUPP()
  349. *
  350. * Availability:
  351. * Non-Carbon CFM: available as macro/inline
  352. * CarbonLib: in CarbonLib 1.0 and later
  353. * Mac OS X: in version 10.0 and later
  354. */
  355. EXTERN_API_C( void )
  356. DisposeOSLDisposeTokenUPP(OSLDisposeTokenUPP userUPP);
  357. #if !OPAQUE_UPP_TYPES
  358. #ifdef __cplusplus
  359. inline DEFINE_API_C(void) DisposeOSLDisposeTokenUPP(OSLDisposeTokenUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  360. #else
  361. #define DisposeOSLDisposeTokenUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  362. #endif
  363. #endif
  364. /*
  365. * DisposeOSLGetMarkTokenUPP()
  366. *
  367. * Availability:
  368. * Non-Carbon CFM: available as macro/inline
  369. * CarbonLib: in CarbonLib 1.0 and later
  370. * Mac OS X: in version 10.0 and later
  371. */
  372. EXTERN_API_C( void )
  373. DisposeOSLGetMarkTokenUPP(OSLGetMarkTokenUPP userUPP);
  374. #if !OPAQUE_UPP_TYPES
  375. #ifdef __cplusplus
  376. inline DEFINE_API_C(void) DisposeOSLGetMarkTokenUPP(OSLGetMarkTokenUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  377. #else
  378. #define DisposeOSLGetMarkTokenUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  379. #endif
  380. #endif
  381. /*
  382. * DisposeOSLGetErrDescUPP()
  383. *
  384. * Availability:
  385. * Non-Carbon CFM: available as macro/inline
  386. * CarbonLib: in CarbonLib 1.0 and later
  387. * Mac OS X: in version 10.0 and later
  388. */
  389. EXTERN_API_C( void )
  390. DisposeOSLGetErrDescUPP(OSLGetErrDescUPP userUPP);
  391. #if !OPAQUE_UPP_TYPES
  392. #ifdef __cplusplus
  393. inline DEFINE_API_C(void) DisposeOSLGetErrDescUPP(OSLGetErrDescUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  394. #else
  395. #define DisposeOSLGetErrDescUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  396. #endif
  397. #endif
  398. /*
  399. * DisposeOSLMarkUPP()
  400. *
  401. * Availability:
  402. * Non-Carbon CFM: available as macro/inline
  403. * CarbonLib: in CarbonLib 1.0 and later
  404. * Mac OS X: in version 10.0 and later
  405. */
  406. EXTERN_API_C( void )
  407. DisposeOSLMarkUPP(OSLMarkUPP userUPP);
  408. #if !OPAQUE_UPP_TYPES
  409. #ifdef __cplusplus
  410. inline DEFINE_API_C(void) DisposeOSLMarkUPP(OSLMarkUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  411. #else
  412. #define DisposeOSLMarkUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  413. #endif
  414. #endif
  415. /*
  416. * DisposeOSLAdjustMarksUPP()
  417. *
  418. * Availability:
  419. * Non-Carbon CFM: available as macro/inline
  420. * CarbonLib: in CarbonLib 1.0 and later
  421. * Mac OS X: in version 10.0 and later
  422. */
  423. EXTERN_API_C( void )
  424. DisposeOSLAdjustMarksUPP(OSLAdjustMarksUPP userUPP);
  425. #if !OPAQUE_UPP_TYPES
  426. #ifdef __cplusplus
  427. inline DEFINE_API_C(void) DisposeOSLAdjustMarksUPP(OSLAdjustMarksUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
  428. #else
  429. #define DisposeOSLAdjustMarksUPP(userUPP) DisposeRoutineDescriptor(userUPP)
  430. #endif
  431. #endif
  432. /*
  433. * InvokeOSLAccessorUPP()
  434. *
  435. * Availability:
  436. * Non-Carbon CFM: available as macro/inline
  437. * CarbonLib: in CarbonLib 1.0 and later
  438. * Mac OS X: in version 10.0 and later
  439. */
  440. EXTERN_API_C( OSErr )
  441. InvokeOSLAccessorUPP(
  442. DescType desiredClass,
  443. const AEDesc * container,
  444. DescType containerClass,
  445. DescType form,
  446. const AEDesc * selectionData,
  447. AEDesc * value,
  448. long accessorRefcon,
  449. OSLAccessorUPP userUPP);
  450. #if !OPAQUE_UPP_TYPES
  451. #ifdef __cplusplus
  452. inline DEFINE_API_C(OSErr) InvokeOSLAccessorUPP(DescType desiredClass, const AEDesc * container, DescType containerClass, DescType form, const AEDesc * selectionData, AEDesc * value, long accessorRefcon, OSLAccessorUPP userUPP) { return (OSErr)CALL_SEVEN_PARAMETER_UPP(userUPP, uppOSLAccessorProcInfo, desiredClass, container, containerClass, form, selectionData, value, accessorRefcon); }
  453. #else
  454. #define InvokeOSLAccessorUPP(desiredClass, container, containerClass, form, selectionData, value, accessorRefcon, userUPP) (OSErr)CALL_SEVEN_PARAMETER_UPP((userUPP), uppOSLAccessorProcInfo, (desiredClass), (container), (containerClass), (form), (selectionData), (value), (accessorRefcon))
  455. #endif
  456. #endif
  457. /*
  458. * InvokeOSLCompareUPP()
  459. *
  460. * Availability:
  461. * Non-Carbon CFM: available as macro/inline
  462. * CarbonLib: in CarbonLib 1.0 and later
  463. * Mac OS X: in version 10.0 and later
  464. */
  465. EXTERN_API_C( OSErr )
  466. InvokeOSLCompareUPP(
  467. DescType oper,
  468. const AEDesc * obj1,
  469. const AEDesc * obj2,
  470. Boolean * result,
  471. OSLCompareUPP userUPP);
  472. #if !OPAQUE_UPP_TYPES
  473. #ifdef __cplusplus
  474. inline DEFINE_API_C(OSErr) InvokeOSLCompareUPP(DescType oper, const AEDesc * obj1, const AEDesc * obj2, Boolean * result, OSLCompareUPP userUPP) { return (OSErr)CALL_FOUR_PARAMETER_UPP(userUPP, uppOSLCompareProcInfo, oper, obj1, obj2, result); }
  475. #else
  476. #define InvokeOSLCompareUPP(oper, obj1, obj2, result, userUPP) (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppOSLCompareProcInfo, (oper), (obj1), (obj2), (result))
  477. #endif
  478. #endif
  479. /*
  480. * InvokeOSLCountUPP()
  481. *
  482. * Availability:
  483. * Non-Carbon CFM: available as macro/inline
  484. * CarbonLib: in CarbonLib 1.0 and later
  485. * Mac OS X: in version 10.0 and later
  486. */
  487. EXTERN_API_C( OSErr )
  488. InvokeOSLCountUPP(
  489. DescType desiredType,
  490. DescType containerClass,
  491. const AEDesc * container,
  492. long * result,
  493. OSLCountUPP userUPP);
  494. #if !OPAQUE_UPP_TYPES
  495. #ifdef __cplusplus
  496. inline DEFINE_API_C(OSErr) InvokeOSLCountUPP(DescType desiredType, DescType containerClass, const AEDesc * container, long * result, OSLCountUPP userUPP) { return (OSErr)CALL_FOUR_PARAMETER_UPP(userUPP, uppOSLCountProcInfo, desiredType, containerClass, container, result); }
  497. #else
  498. #define InvokeOSLCountUPP(desiredType, containerClass, container, result, userUPP) (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppOSLCountProcInfo, (desiredType), (containerClass), (container), (result))
  499. #endif
  500. #endif
  501. /*
  502. * InvokeOSLDisposeTokenUPP()
  503. *
  504. * Availability:
  505. * Non-Carbon CFM: available as macro/inline
  506. * CarbonLib: in CarbonLib 1.0 and later
  507. * Mac OS X: in version 10.0 and later
  508. */
  509. EXTERN_API_C( OSErr )
  510. InvokeOSLDisposeTokenUPP(
  511. AEDesc * unneededToken,
  512. OSLDisposeTokenUPP userUPP);
  513. #if !OPAQUE_UPP_TYPES
  514. #ifdef __cplusplus
  515. inline DEFINE_API_C(OSErr) InvokeOSLDisposeTokenUPP(AEDesc * unneededToken, OSLDisposeTokenUPP userUPP) { return (OSErr)CALL_ONE_PARAMETER_UPP(userUPP, uppOSLDisposeTokenProcInfo, unneededToken); }
  516. #else
  517. #define InvokeOSLDisposeTokenUPP(unneededToken, userUPP) (OSErr)CALL_ONE_PARAMETER_UPP((userUPP), uppOSLDisposeTokenProcInfo, (unneededToken))
  518. #endif
  519. #endif
  520. /*
  521. * InvokeOSLGetMarkTokenUPP()
  522. *
  523. * Availability:
  524. * Non-Carbon CFM: available as macro/inline
  525. * CarbonLib: in CarbonLib 1.0 and later
  526. * Mac OS X: in version 10.0 and later
  527. */
  528. EXTERN_API_C( OSErr )
  529. InvokeOSLGetMarkTokenUPP(
  530. const AEDesc * dContainerToken,
  531. DescType containerClass,
  532. AEDesc * result,
  533. OSLGetMarkTokenUPP userUPP);
  534. #if !OPAQUE_UPP_TYPES
  535. #ifdef __cplusplus
  536. inline DEFINE_API_C(OSErr) InvokeOSLGetMarkTokenUPP(const AEDesc * dContainerToken, DescType containerClass, AEDesc * result, OSLGetMarkTokenUPP userUPP) { return (OSErr)CALL_THREE_PARAMETER_UPP(userUPP, uppOSLGetMarkTokenProcInfo, dContainerToken, containerClass, result); }
  537. #else
  538. #define InvokeOSLGetMarkTokenUPP(dContainerToken, containerClass, result, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppOSLGetMarkTokenProcInfo, (dContainerToken), (containerClass), (result))
  539. #endif
  540. #endif
  541. /*
  542. * InvokeOSLGetErrDescUPP()
  543. *
  544. * Availability:
  545. * Non-Carbon CFM: available as macro/inline
  546. * CarbonLib: in CarbonLib 1.0 and later
  547. * Mac OS X: in version 10.0 and later
  548. */
  549. EXTERN_API_C( OSErr )
  550. InvokeOSLGetErrDescUPP(
  551. AEDesc ** appDescPtr,
  552. OSLGetErrDescUPP userUPP);
  553. #if !OPAQUE_UPP_TYPES
  554. #ifdef __cplusplus
  555. inline DEFINE_API_C(OSErr) InvokeOSLGetErrDescUPP(AEDesc ** appDescPtr, OSLGetErrDescUPP userUPP) { return (OSErr)CALL_ONE_PARAMETER_UPP(userUPP, uppOSLGetErrDescProcInfo, appDescPtr); }
  556. #else
  557. #define InvokeOSLGetErrDescUPP(appDescPtr, userUPP) (OSErr)CALL_ONE_PARAMETER_UPP((userUPP), uppOSLGetErrDescProcInfo, (appDescPtr))
  558. #endif
  559. #endif
  560. /*
  561. * InvokeOSLMarkUPP()
  562. *
  563. * Availability:
  564. * Non-Carbon CFM: available as macro/inline
  565. * CarbonLib: in CarbonLib 1.0 and later
  566. * Mac OS X: in version 10.0 and later
  567. */
  568. EXTERN_API_C( OSErr )
  569. InvokeOSLMarkUPP(
  570. const AEDesc * dToken,
  571. const AEDesc * markToken,
  572. long index,
  573. OSLMarkUPP userUPP);
  574. #if !OPAQUE_UPP_TYPES
  575. #ifdef __cplusplus
  576. inline DEFINE_API_C(OSErr) InvokeOSLMarkUPP(const AEDesc * dToken, const AEDesc * markToken, long index, OSLMarkUPP userUPP) { return (OSErr)CALL_THREE_PARAMETER_UPP(userUPP, uppOSLMarkProcInfo, dToken, markToken, index); }
  577. #else
  578. #define InvokeOSLMarkUPP(dToken, markToken, index, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppOSLMarkProcInfo, (dToken), (markToken), (index))
  579. #endif
  580. #endif
  581. /*
  582. * InvokeOSLAdjustMarksUPP()
  583. *
  584. * Availability:
  585. * Non-Carbon CFM: available as macro/inline
  586. * CarbonLib: in CarbonLib 1.0 and later
  587. * Mac OS X: in version 10.0 and later
  588. */
  589. EXTERN_API_C( OSErr )
  590. InvokeOSLAdjustMarksUPP(
  591. long newStart,
  592. long newStop,
  593. const AEDesc * markToken,
  594. OSLAdjustMarksUPP userUPP);
  595. #if !OPAQUE_UPP_TYPES
  596. #ifdef __cplusplus
  597. inline DEFINE_API_C(OSErr) InvokeOSLAdjustMarksUPP(long newStart, long newStop, const AEDesc * markToken, OSLAdjustMarksUPP userUPP) { return (OSErr)CALL_THREE_PARAMETER_UPP(userUPP, uppOSLAdjustMarksProcInfo, newStart, newStop, markToken); }
  598. #else
  599. #define InvokeOSLAdjustMarksUPP(newStart, newStop, markToken, userUPP) (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppOSLAdjustMarksProcInfo, (newStart), (newStop), (markToken))
  600. #endif
  601. #endif
  602. #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
  603. /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
  604. #define NewOSLAccessorProc(userRoutine) NewOSLAccessorUPP(userRoutine)
  605. #define NewOSLCompareProc(userRoutine) NewOSLCompareUPP(userRoutine)
  606. #define NewOSLCountProc(userRoutine) NewOSLCountUPP(userRoutine)
  607. #define NewOSLDisposeTokenProc(userRoutine) NewOSLDisposeTokenUPP(userRoutine)
  608. #define NewOSLGetMarkTokenProc(userRoutine) NewOSLGetMarkTokenUPP(userRoutine)
  609. #define NewOSLGetErrDescProc(userRoutine) NewOSLGetErrDescUPP(userRoutine)
  610. #define NewOSLMarkProc(userRoutine) NewOSLMarkUPP(userRoutine)
  611. #define NewOSLAdjustMarksProc(userRoutine) NewOSLAdjustMarksUPP(userRoutine)
  612. #define CallOSLAccessorProc(userRoutine, desiredClass, container, containerClass, form, selectionData, value, accessorRefcon) InvokeOSLAccessorUPP(desiredClass, container, containerClass, form, selectionData, value, accessorRefcon, userRoutine)
  613. #define CallOSLCompareProc(userRoutine, oper, obj1, obj2, result) InvokeOSLCompareUPP(oper, obj1, obj2, result, userRoutine)
  614. #define CallOSLCountProc(userRoutine, desiredType, containerClass, container, result) InvokeOSLCountUPP(desiredType, containerClass, container, result, userRoutine)
  615. #define CallOSLDisposeTokenProc(userRoutine, unneededToken) InvokeOSLDisposeTokenUPP(unneededToken, userRoutine)
  616. #define CallOSLGetMarkTokenProc(userRoutine, dContainerToken, containerClass, result) InvokeOSLGetMarkTokenUPP(dContainerToken, containerClass, result, userRoutine)
  617. #define CallOSLGetErrDescProc(userRoutine, appDescPtr) InvokeOSLGetErrDescUPP(appDescPtr, userRoutine)
  618. #define CallOSLMarkProc(userRoutine, dToken, markToken, index) InvokeOSLMarkUPP(dToken, markToken, index, userRoutine)
  619. #define CallOSLAdjustMarksProc(userRoutine, newStart, newStop, markToken) InvokeOSLAdjustMarksUPP(newStart, newStop, markToken, userRoutine)
  620. #endif /* CALL_NOT_IN_CARBON */
  621. /*
  622. * AEObjectInit()
  623. *
  624. * Availability:
  625. * Non-Carbon CFM: in ObjectSupportLib 1.0 and later
  626. * CarbonLib: in CarbonLib 1.0 and later
  627. * Mac OS X: in version 10.0 and later
  628. */
  629. EXTERN_API( OSErr )
  630. AEObjectInit(void);
  631. /* Not done by inline, but by direct linking into code. It sets up the pack
  632. such that further calls can be via inline */
  633. /*
  634. * AESetObjectCallbacks()
  635. *
  636. * Availability:
  637. * Non-Carbon CFM: in ObjectSupportLib 1.0 and later
  638. * CarbonLib: in CarbonLib 1.0 and later
  639. * Mac OS X: in version 10.0 and later
  640. */
  641. EXTERN_API( OSErr )
  642. AESetObjectCallbacks(
  643. OSLCompareUPP myCompareProc,
  644. OSLCountUPP myCountProc,
  645. OSLDisposeTokenUPP myDisposeTokenProc,
  646. OSLGetMarkTokenUPP myGetMarkTokenProc,
  647. OSLMarkUPP myMarkProc,
  648. OSLAdjustMarksUPP myAdjustMarksProc,
  649. OSLGetErrDescUPP myGetErrDescProcPtr) THREEWORDINLINE(0x303C, 0x0E35, 0xA816);
  650. /*
  651. * AEResolve()
  652. *
  653. * Availability:
  654. * Non-Carbon CFM: in ObjectSupportLib 1.0 and later
  655. * CarbonLib: in CarbonLib 1.0 and later
  656. * Mac OS X: in version 10.0 and later
  657. */
  658. EXTERN_API( OSErr )
  659. AEResolve(
  660. const AEDesc * objectSpecifier,
  661. short callbackFlags,
  662. AEDesc * theToken) THREEWORDINLINE(0x303C, 0x0536, 0xA816);
  663. /*
  664. * AEInstallObjectAccessor()
  665. *
  666. * Availability:
  667. * Non-Carbon CFM: in ObjectSupportLib 1.0 and later
  668. * CarbonLib: in CarbonLib 1.0 and later
  669. * Mac OS X: in version 10.0 and later
  670. */
  671. EXTERN_API( OSErr )
  672. AEInstallObjectAccessor(
  673. DescType desiredClass,
  674. DescType containerType,
  675. OSLAccessorUPP theAccessor,
  676. long accessorRefcon,
  677. Boolean isSysHandler) THREEWORDINLINE(0x303C, 0x0937, 0xA816);
  678. /*
  679. * AERemoveObjectAccessor()
  680. *
  681. * Availability:
  682. * Non-Carbon CFM: in ObjectSupportLib 1.0 and later
  683. * CarbonLib: in CarbonLib 1.0 and later
  684. * Mac OS X: in version 10.0 and later
  685. */
  686. EXTERN_API( OSErr )
  687. AERemoveObjectAccessor(
  688. DescType desiredClass,
  689. DescType containerType,
  690. OSLAccessorUPP theAccessor,
  691. Boolean isSysHandler) THREEWORDINLINE(0x303C, 0x0738, 0xA816);
  692. /*
  693. * AEGetObjectAccessor()
  694. *
  695. * Availability:
  696. * Non-Carbon CFM: in ObjectSupportLib 1.0 and later
  697. * CarbonLib: in CarbonLib 1.0 and later
  698. * Mac OS X: in version 10.0 and later
  699. */
  700. EXTERN_API( OSErr )
  701. AEGetObjectAccessor(
  702. DescType desiredClass,
  703. DescType containerType,
  704. OSLAccessorUPP * accessor,
  705. long * accessorRefcon,
  706. Boolean isSysHandler) THREEWORDINLINE(0x303C, 0x0939, 0xA816);
  707. /*
  708. * AEDisposeToken()
  709. *
  710. * Availability:
  711. * Non-Carbon CFM: in ObjectSupportLib 1.0 and later
  712. * CarbonLib: in CarbonLib 1.0 and later
  713. * Mac OS X: in version 10.0 and later
  714. */
  715. EXTERN_API( OSErr )
  716. AEDisposeToken(AEDesc * theToken) THREEWORDINLINE(0x303C, 0x023A, 0xA816);
  717. /*
  718. * AECallObjectAccessor()
  719. *
  720. * Availability:
  721. * Non-Carbon CFM: in ObjectSupportLib 1.0 and later
  722. * CarbonLib: in CarbonLib 1.0 and later
  723. * Mac OS X: in version 10.0 and later
  724. */
  725. EXTERN_API( OSErr )
  726. AECallObjectAccessor(
  727. DescType desiredClass,
  728. const AEDesc * containerToken,
  729. DescType containerClass,
  730. DescType keyForm,
  731. const AEDesc * keyData,
  732. AEDesc * token) THREEWORDINLINE(0x303C, 0x0C3B, 0xA816);
  733. #if PRAGMA_STRUCT_ALIGN
  734. #pragma options align=reset
  735. #elif PRAGMA_STRUCT_PACKPUSH
  736. #pragma pack(pop)
  737. #elif PRAGMA_STRUCT_PACK
  738. #pragma pack()
  739. #endif
  740. #ifdef PRAGMA_IMPORT_OFF
  741. #pragma import off
  742. #elif PRAGMA_IMPORT
  743. #pragma import reset
  744. #endif
  745. #ifdef __cplusplus
  746. }
  747. #endif
  748. #endif /* __AEOBJECTS__ */