Mac OS 9
AEObjects.h
Go to the documentation of this file.
1 
19 #ifndef __AEOBJECTS__
20 #define __AEOBJECTS__
21 
22 #ifndef __OSUTILS__
23 #include <OSUtils.h>
24 #endif
25 
26 #ifndef __APPLEEVENTS__
27 #include <AppleEvents.h>
28 #endif
29 
30 #ifndef __MACERRORS__
31 #include <MacErrors.h>
32 #endif
33 
34 #if PRAGMA_ONCE
35 #pragma once
36 #endif
37 
38 #ifdef __cplusplus
39 extern "C"
40 {
41 #endif
42 
43 #if PRAGMA_IMPORT
44 #pragma import on
45 #endif
46 
47 #if PRAGMA_STRUCT_ALIGN
48 #pragma options align = mac68k
49 #elif PRAGMA_STRUCT_PACKPUSH
50 #pragma pack(push, 2)
51 #elif PRAGMA_STRUCT_PACK
52 #pragma pack(2)
53 #endif
54 
55  enum
56  {
57  /**** LOGICAL OPERATOR CONSTANTS ****/
58  kAEAND = FOUR_CHAR_CODE('AND '), /* 0x414e4420 */
59  kAEOR = FOUR_CHAR_CODE('OR '), /* 0x4f522020 */
60  kAENOT = FOUR_CHAR_CODE('NOT '), /* 0x4e4f5420 */
61  /**** ABSOLUTE ORDINAL CONSTANTS ****/
62  kAEFirst = FOUR_CHAR_CODE('firs'), /* 0x66697273 */
63  kAELast = FOUR_CHAR_CODE('last'), /* 0x6c617374 */
64  kAEMiddle = FOUR_CHAR_CODE('midd'), /* 0x6d696464 */
65  kAEAny = FOUR_CHAR_CODE('any '), /* 0x616e7920 */
66  kAEAll = FOUR_CHAR_CODE('all '), /* 0x616c6c20 */
67  /**** RELATIVE ORDINAL CONSTANTS ****/
68  kAENext = FOUR_CHAR_CODE('next'), /* 0x6e657874 */
69  kAEPrevious = FOUR_CHAR_CODE('prev'), /* 0x70726576 */
70  /**** KEYWORD CONSTANT ****/
71  keyAECompOperator = FOUR_CHAR_CODE('relo'), /* 0x72656c6f */
72  keyAELogicalTerms = FOUR_CHAR_CODE('term'), /* 0x7465726d */
73  keyAELogicalOperator = FOUR_CHAR_CODE('logc'), /* 0x6c6f6763 */
74  keyAEObject1 = FOUR_CHAR_CODE('obj1'), /* 0x6f626a31 */
75  keyAEObject2 = FOUR_CHAR_CODE('obj2'), /* 0x6f626a32 */
76  /* ... for Keywords for getting fields out of object specifier records. */
77  keyAEDesiredClass = FOUR_CHAR_CODE('want'), /* 0x77616e74 */
78  keyAEContainer = FOUR_CHAR_CODE('from'), /* 0x66726f6d */
79  keyAEKeyForm = FOUR_CHAR_CODE('form'), /* 0x666f726d */
80  keyAEKeyData = FOUR_CHAR_CODE('seld') /* 0x73656c64 */
81  };
82 
83  enum
84  {
85  /* ... for Keywords for getting fields out of Range specifier records. */
86  keyAERangeStart = FOUR_CHAR_CODE('star'), /* 0x73746172 */
87  keyAERangeStop = FOUR_CHAR_CODE('stop'), /* 0x73746f70 */
88  /* ... special handler selectors for OSL Callbacks. */
89  keyDisposeTokenProc = FOUR_CHAR_CODE('xtok'), /* 0x78746f6b */
90  keyAECompareProc = FOUR_CHAR_CODE('cmpr'), /* 0x636d7072 */
91  keyAECountProc = FOUR_CHAR_CODE('cont'), /* 0x636f6e74 */
92  keyAEMarkTokenProc = FOUR_CHAR_CODE('mkid'), /* 0x6d6b6964 */
93  keyAEMarkProc = FOUR_CHAR_CODE('mark'), /* 0x6d61726b */
94  keyAEAdjustMarksProc = FOUR_CHAR_CODE('adjm'), /* 0x61646a6d */
95  keyAEGetErrDescProc = FOUR_CHAR_CODE('indc') /* 0x696e6463 */
96  };
97 
98  /**** VALUE and TYPE CONSTANTS ****/
99  enum
100  {
101  /* ... possible values for the keyAEKeyForm field of an object specifier.
102  */
103  formAbsolutePosition = FOUR_CHAR_CODE('indx'), /* 0x696e6478 */
104  formRelativePosition = FOUR_CHAR_CODE('rele'), /* 0x72656c65 */
105  formTest = FOUR_CHAR_CODE('test'), /* 0x74657374 */
106  formRange = FOUR_CHAR_CODE('rang'), /* 0x72616e67 */
107  formPropertyID = FOUR_CHAR_CODE('prop'), /* 0x70726f70 */
108  formName = FOUR_CHAR_CODE('name'), /* 0x6e616d65 */
109  /* ... relevant types (some of these are often pared with forms above). */
110  typeObjectSpecifier = FOUR_CHAR_CODE('obj '), /* 0x6f626a20 */
111  typeObjectBeingExamined = FOUR_CHAR_CODE('exmn'), /* 0x65786d6e */
112  typeCurrentContainer = FOUR_CHAR_CODE('ccnt'), /* 0x63636e74 */
113  typeToken = FOUR_CHAR_CODE('toke'), /* 0x746f6b65 */
114  typeRelativeDescriptor = FOUR_CHAR_CODE('rel '), /* 0x72656c20 */
115  typeAbsoluteOrdinal = FOUR_CHAR_CODE('abso'), /* 0x6162736f */
116  typeIndexDescriptor = FOUR_CHAR_CODE('inde'), /* 0x696e6465 */
117  typeRangeDescriptor = FOUR_CHAR_CODE('rang'), /* 0x72616e67 */
118  typeLogicalDescriptor = FOUR_CHAR_CODE('logi'), /* 0x6c6f6769 */
119  typeCompDescriptor = FOUR_CHAR_CODE('cmpd'), /* 0x636d7064 */
120  typeOSLTokenList = FOUR_CHAR_CODE('ostl') /* 0x6F73746C */
121  };
122 
123  /* Possible values for flags parameter to AEResolve. They're additive */
124  enum
125  {
126  kAEIDoMinimum = 0x0000,
127  kAEIDoWhose = 0x0001,
128  kAEIDoMarking = 0x0004,
129  kAEPassSubDescs = 0x0008,
130  kAEResolveNestedLists = 0x0010,
131  kAEHandleSimpleRanges = 0x0020,
132  kAEUseRelativeIterators = 0x0040
133  };
134 
135  /**** SPECIAL CONSTANTS FOR CUSTOM WHOSE-CLAUSE RESOLUTION */
136  enum
137  {
138  typeWhoseDescriptor = FOUR_CHAR_CODE('whos'), /* 0x77686f73 */
139  formWhose = FOUR_CHAR_CODE('whos'), /* 0x77686f73 */
140  typeWhoseRange = FOUR_CHAR_CODE('wrng'), /* 0x77726e67 */
141  keyAEWhoseRangeStart = FOUR_CHAR_CODE('wstr'), /* 0x77737472 */
142  keyAEWhoseRangeStop = FOUR_CHAR_CODE('wstp'), /* 0x77737470 */
143  keyAEIndex = FOUR_CHAR_CODE('kidx'), /* 0x6b696478 */
144  keyAETest = FOUR_CHAR_CODE('ktst') /* 0x6b747374 */
145  };
146 
154  {
155  DescType tokenClass;
156  AEDesc token;
157  };
158  typedef struct ccntTokenRecord ccntTokenRecord;
161 #if OLDROUTINENAMES
162  typedef AEDesc *DescPtr;
163  typedef DescPtr *DescHandle;
164 #endif /* OLDROUTINENAMES */
165 
166  /* typedefs providing type checking for procedure pointers */
167  typedef CALLBACK_API(OSErr,
168  OSLAccessorProcPtr)(DescType desiredClass,
169  const AEDesc *container,
170  DescType containerClass, DescType form,
171  const AEDesc *selectionData,
172  AEDesc *value, long accessorRefcon);
173  typedef CALLBACK_API(OSErr,
174  OSLCompareProcPtr)(DescType oper, const AEDesc *obj1,
175  const AEDesc *obj2, Boolean *result);
176  typedef CALLBACK_API(OSErr, OSLCountProcPtr)(DescType desiredType,
177  DescType containerClass,
178  const AEDesc *container,
179  long *result);
180  typedef CALLBACK_API(OSErr, OSLDisposeTokenProcPtr)(AEDesc *unneededToken);
181  typedef CALLBACK_API(OSErr,
182  OSLGetMarkTokenProcPtr)(const AEDesc *dContainerToken,
183  DescType containerClass,
184  AEDesc *result);
185  typedef CALLBACK_API(OSErr, OSLGetErrDescProcPtr)(AEDesc **appDescPtr);
186  typedef CALLBACK_API(OSErr, OSLMarkProcPtr)(const AEDesc *dToken,
187  const AEDesc *markToken,
188  long index);
189  typedef CALLBACK_API(OSErr, OSLAdjustMarksProcPtr)(long newStart, long newStop,
190  const AEDesc *markToken);
191  typedef STACK_UPP_TYPE(OSLAccessorProcPtr) OSLAccessorUPP;
192  typedef STACK_UPP_TYPE(OSLCompareProcPtr) OSLCompareUPP;
193  typedef STACK_UPP_TYPE(OSLCountProcPtr) OSLCountUPP;
194  typedef STACK_UPP_TYPE(OSLDisposeTokenProcPtr) OSLDisposeTokenUPP;
195  typedef STACK_UPP_TYPE(OSLGetMarkTokenProcPtr) OSLGetMarkTokenUPP;
196  typedef STACK_UPP_TYPE(OSLGetErrDescProcPtr) OSLGetErrDescUPP;
197  typedef STACK_UPP_TYPE(OSLMarkProcPtr) OSLMarkUPP;
198  typedef STACK_UPP_TYPE(OSLAdjustMarksProcPtr) OSLAdjustMarksUPP;
207  OSLAccessorUPP
208  NewOSLAccessorUPP(OSLAccessorProcPtr userRoutine);
209 #if !OPAQUE_UPP_TYPES
210  enum
211  {
212  uppOSLAccessorProcInfo = 0x000FFFE0
213  }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes,
214  4_bytes) */
215 #ifdef __cplusplus
216  inline OSLAccessorUPP NewOSLAccessorUPP(OSLAccessorProcPtr userRoutine)
217  {
218  return (OSLAccessorUPP)NewRoutineDescriptor(
219  (ProcPtr)(userRoutine), uppOSLAccessorProcInfo, GetCurrentArchitecture());
220  }
221 #else
222 #define NewOSLAccessorUPP(userRoutine) \
223  (OSLAccessorUPP) \
224  NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLAccessorProcInfo, \
225  GetCurrentArchitecture())
226 #endif
227 #endif
228 
237  OSLCompareUPP
238  NewOSLCompareUPP(OSLCompareProcPtr userRoutine);
239 #if !OPAQUE_UPP_TYPES
240  enum
241  {
242  uppOSLCompareProcInfo = 0x00003FE0
243  }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
244 #ifdef __cplusplus
245  inline OSLCompareUPP NewOSLCompareUPP(OSLCompareProcPtr userRoutine)
246  {
247  return (OSLCompareUPP)NewRoutineDescriptor(
248  (ProcPtr)(userRoutine), uppOSLCompareProcInfo, GetCurrentArchitecture());
249  }
250 #else
251 #define NewOSLCompareUPP(userRoutine) \
252  (OSLCompareUPP) NewRoutineDescriptor( \
253  (ProcPtr)(userRoutine), uppOSLCompareProcInfo, GetCurrentArchitecture())
254 #endif
255 #endif
256 
265  OSLCountUPP
266  NewOSLCountUPP(OSLCountProcPtr userRoutine);
267 #if !OPAQUE_UPP_TYPES
268  enum
269  {
270  uppOSLCountProcInfo = 0x00003FE0
271  }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
272 #ifdef __cplusplus
273  inline OSLCountUPP NewOSLCountUPP(OSLCountProcPtr userRoutine)
274  {
275  return (OSLCountUPP)NewRoutineDescriptor(
276  (ProcPtr)(userRoutine), uppOSLCountProcInfo, GetCurrentArchitecture());
277  }
278 #else
279 #define NewOSLCountUPP(userRoutine) \
280  (OSLCountUPP) NewRoutineDescriptor( \
281  (ProcPtr)(userRoutine), uppOSLCountProcInfo, GetCurrentArchitecture())
282 #endif
283 #endif
284 
293  OSLDisposeTokenUPP
294  NewOSLDisposeTokenUPP(OSLDisposeTokenProcPtr userRoutine);
295 #if !OPAQUE_UPP_TYPES
296  enum
297  {
298  uppOSLDisposeTokenProcInfo = 0x000000E0
299  }; /* pascal 2_bytes Func(4_bytes) */
300 #ifdef __cplusplus
301  inline OSLDisposeTokenUPP
302  NewOSLDisposeTokenUPP(OSLDisposeTokenProcPtr userRoutine)
303  {
304  return (OSLDisposeTokenUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),
305  uppOSLDisposeTokenProcInfo,
306  GetCurrentArchitecture());
307  }
308 #else
309 #define NewOSLDisposeTokenUPP(userRoutine) \
310  (OSLDisposeTokenUPP) \
311  NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLDisposeTokenProcInfo, \
312  GetCurrentArchitecture())
313 #endif
314 #endif
315 
324  OSLGetMarkTokenUPP
325  NewOSLGetMarkTokenUPP(OSLGetMarkTokenProcPtr userRoutine);
326 #if !OPAQUE_UPP_TYPES
327  enum
328  {
329  uppOSLGetMarkTokenProcInfo = 0x00000FE0
330  }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
331 #ifdef __cplusplus
332  inline OSLGetMarkTokenUPP
333  NewOSLGetMarkTokenUPP(OSLGetMarkTokenProcPtr userRoutine)
334  {
335  return (OSLGetMarkTokenUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),
336  uppOSLGetMarkTokenProcInfo,
337  GetCurrentArchitecture());
338  }
339 #else
340 #define NewOSLGetMarkTokenUPP(userRoutine) \
341  (OSLGetMarkTokenUPP) \
342  NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLGetMarkTokenProcInfo, \
343  GetCurrentArchitecture())
344 #endif
345 #endif
346 
355  OSLGetErrDescUPP
356  NewOSLGetErrDescUPP(OSLGetErrDescProcPtr userRoutine);
357 #if !OPAQUE_UPP_TYPES
358  enum
359  {
360  uppOSLGetErrDescProcInfo = 0x000000E0
361  }; /* pascal 2_bytes Func(4_bytes) */
362 #ifdef __cplusplus
363  inline OSLGetErrDescUPP NewOSLGetErrDescUPP(OSLGetErrDescProcPtr userRoutine)
364  {
365  return (OSLGetErrDescUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),
366  uppOSLGetErrDescProcInfo,
367  GetCurrentArchitecture());
368  }
369 #else
370 #define NewOSLGetErrDescUPP(userRoutine) \
371  (OSLGetErrDescUPP) \
372  NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLGetErrDescProcInfo, \
373  GetCurrentArchitecture())
374 #endif
375 #endif
376 
385  OSLMarkUPP
386  NewOSLMarkUPP(OSLMarkProcPtr userRoutine);
387 #if !OPAQUE_UPP_TYPES
388  enum
389  {
390  uppOSLMarkProcInfo = 0x00000FE0
391  }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
392 #ifdef __cplusplus
393  inline OSLMarkUPP NewOSLMarkUPP(OSLMarkProcPtr userRoutine)
394  {
395  return (OSLMarkUPP)NewRoutineDescriptor(
396  (ProcPtr)(userRoutine), uppOSLMarkProcInfo, GetCurrentArchitecture());
397  }
398 #else
399 #define NewOSLMarkUPP(userRoutine) \
400  (OSLMarkUPP) NewRoutineDescriptor( \
401  (ProcPtr)(userRoutine), uppOSLMarkProcInfo, GetCurrentArchitecture())
402 #endif
403 #endif
404 
413  OSLAdjustMarksUPP
414  NewOSLAdjustMarksUPP(OSLAdjustMarksProcPtr userRoutine);
415 #if !OPAQUE_UPP_TYPES
416  enum
417  {
418  uppOSLAdjustMarksProcInfo = 0x00000FE0
419  }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
420 #ifdef __cplusplus
421  inline OSLAdjustMarksUPP
422  NewOSLAdjustMarksUPP(OSLAdjustMarksProcPtr userRoutine)
423  {
424  return (OSLAdjustMarksUPP)NewRoutineDescriptor((ProcPtr)(userRoutine),
425  uppOSLAdjustMarksProcInfo,
426  GetCurrentArchitecture());
427  }
428 #else
429 #define NewOSLAdjustMarksUPP(userRoutine) \
430  (OSLAdjustMarksUPP) \
431  NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLAdjustMarksProcInfo, \
432  GetCurrentArchitecture())
433 #endif
434 #endif
435 
444  void
445  DisposeOSLAccessorUPP(OSLAccessorUPP userUPP);
446 #if !OPAQUE_UPP_TYPES
447 #ifdef __cplusplus
448  inline void DisposeOSLAccessorUPP(OSLAccessorUPP userUPP)
449  {
450  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
451  }
452 #else
453 #define DisposeOSLAccessorUPP(userUPP) DisposeRoutineDescriptor(userUPP)
454 #endif
455 #endif
456 
465  void
466  DisposeOSLCompareUPP(OSLCompareUPP userUPP);
467 #if !OPAQUE_UPP_TYPES
468 #ifdef __cplusplus
469  inline void DisposeOSLCompareUPP(OSLCompareUPP userUPP)
470  {
471  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
472  }
473 #else
474 #define DisposeOSLCompareUPP(userUPP) DisposeRoutineDescriptor(userUPP)
475 #endif
476 #endif
477 
486  void
487  DisposeOSLCountUPP(OSLCountUPP userUPP);
488 #if !OPAQUE_UPP_TYPES
489 #ifdef __cplusplus
490  inline void DisposeOSLCountUPP(OSLCountUPP userUPP)
491  {
492  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
493  }
494 #else
495 #define DisposeOSLCountUPP(userUPP) DisposeRoutineDescriptor(userUPP)
496 #endif
497 #endif
498 
507  void
508  DisposeOSLDisposeTokenUPP(OSLDisposeTokenUPP userUPP);
509 #if !OPAQUE_UPP_TYPES
510 #ifdef __cplusplus
511  inline void DisposeOSLDisposeTokenUPP(OSLDisposeTokenUPP userUPP)
512  {
513  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
514  }
515 #else
516 #define DisposeOSLDisposeTokenUPP(userUPP) DisposeRoutineDescriptor(userUPP)
517 #endif
518 #endif
519 
528  void
529  DisposeOSLGetMarkTokenUPP(OSLGetMarkTokenUPP userUPP);
530 #if !OPAQUE_UPP_TYPES
531 #ifdef __cplusplus
532  inline void DisposeOSLGetMarkTokenUPP(OSLGetMarkTokenUPP userUPP)
533  {
534  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
535  }
536 #else
537 #define DisposeOSLGetMarkTokenUPP(userUPP) DisposeRoutineDescriptor(userUPP)
538 #endif
539 #endif
540 
549  void
550  DisposeOSLGetErrDescUPP(OSLGetErrDescUPP userUPP);
551 #if !OPAQUE_UPP_TYPES
552 #ifdef __cplusplus
553  inline void DisposeOSLGetErrDescUPP(OSLGetErrDescUPP userUPP)
554  {
555  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
556  }
557 #else
558 #define DisposeOSLGetErrDescUPP(userUPP) DisposeRoutineDescriptor(userUPP)
559 #endif
560 #endif
561 
570  void
571  DisposeOSLMarkUPP(OSLMarkUPP userUPP);
572 #if !OPAQUE_UPP_TYPES
573 #ifdef __cplusplus
574  inline void DisposeOSLMarkUPP(OSLMarkUPP userUPP)
575  {
576  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
577  }
578 #else
579 #define DisposeOSLMarkUPP(userUPP) DisposeRoutineDescriptor(userUPP)
580 #endif
581 #endif
582 
591  void
592  DisposeOSLAdjustMarksUPP(OSLAdjustMarksUPP userUPP);
593 #if !OPAQUE_UPP_TYPES
594 #ifdef __cplusplus
595  inline void DisposeOSLAdjustMarksUPP(OSLAdjustMarksUPP userUPP)
596  {
597  DisposeRoutineDescriptor((UniversalProcPtr)userUPP);
598  }
599 #else
600 #define DisposeOSLAdjustMarksUPP(userUPP) DisposeRoutineDescriptor(userUPP)
601 #endif
602 #endif
603 
612  OSErr
613  InvokeOSLAccessorUPP(DescType desiredClass, const AEDesc *container,
614  DescType containerClass, DescType form,
615  const AEDesc *selectionData, AEDesc *value,
616  long accessorRefcon, OSLAccessorUPP userUPP);
617 #if !OPAQUE_UPP_TYPES
618 #ifdef __cplusplus
619  inline OSErr InvokeOSLAccessorUPP(DescType desiredClass,
620  const AEDesc *container,
621  DescType containerClass, DescType form,
622  const AEDesc *selectionData, AEDesc *value,
623  long accessorRefcon, OSLAccessorUPP userUPP)
624  {
625  return (OSErr)CALL_SEVEN_PARAMETER_UPP(
626  userUPP, uppOSLAccessorProcInfo, desiredClass, container, containerClass,
627  form, selectionData, value, accessorRefcon);
628  }
629 #else
630 #define InvokeOSLAccessorUPP(desiredClass, container, containerClass, form, \
631  selectionData, value, accessorRefcon, userUPP) \
632  (OSErr) CALL_SEVEN_PARAMETER_UPP( \
633  (userUPP), uppOSLAccessorProcInfo, (desiredClass), (container), \
634  (containerClass), (form), (selectionData), (value), (accessorRefcon))
635 #endif
636 #endif
637 
646  OSErr
647  InvokeOSLCompareUPP(DescType oper, const AEDesc *obj1, const AEDesc *obj2,
648  Boolean *result, OSLCompareUPP userUPP);
649 #if !OPAQUE_UPP_TYPES
650 #ifdef __cplusplus
651  inline OSErr InvokeOSLCompareUPP(DescType oper, const AEDesc *obj1,
652  const AEDesc *obj2, Boolean *result,
653  OSLCompareUPP userUPP)
654  {
655  return (OSErr)CALL_FOUR_PARAMETER_UPP(userUPP, uppOSLCompareProcInfo, oper,
656  obj1, obj2, result);
657  }
658 #else
659 #define InvokeOSLCompareUPP(oper, obj1, obj2, result, userUPP) \
660  (OSErr) CALL_FOUR_PARAMETER_UPP((userUPP), uppOSLCompareProcInfo, (oper), \
661  (obj1), (obj2), (result))
662 #endif
663 #endif
664 
673  OSErr
674  InvokeOSLCountUPP(DescType desiredType, DescType containerClass,
675  const AEDesc *container, long *result, OSLCountUPP userUPP);
676 #if !OPAQUE_UPP_TYPES
677 #ifdef __cplusplus
678  inline OSErr InvokeOSLCountUPP(DescType desiredType, DescType containerClass,
679  const AEDesc *container, long *result,
680  OSLCountUPP userUPP)
681  {
682  return (OSErr)CALL_FOUR_PARAMETER_UPP(userUPP, uppOSLCountProcInfo,
683  desiredType, containerClass, container,
684  result);
685  }
686 #else
687 #define InvokeOSLCountUPP(desiredType, containerClass, container, result, \
688  userUPP) \
689  (OSErr) \
690  CALL_FOUR_PARAMETER_UPP((userUPP), uppOSLCountProcInfo, (desiredType), \
691  (containerClass), (container), (result))
692 #endif
693 #endif
694 
703  OSErr
704  InvokeOSLDisposeTokenUPP(AEDesc *unneededToken, OSLDisposeTokenUPP userUPP);
705 #if !OPAQUE_UPP_TYPES
706 #ifdef __cplusplus
707  inline OSErr InvokeOSLDisposeTokenUPP(AEDesc *unneededToken,
708  OSLDisposeTokenUPP userUPP)
709  {
710  return (OSErr)CALL_ONE_PARAMETER_UPP(userUPP, uppOSLDisposeTokenProcInfo,
711  unneededToken);
712  }
713 #else
714 #define InvokeOSLDisposeTokenUPP(unneededToken, userUPP) \
715  (OSErr) CALL_ONE_PARAMETER_UPP((userUPP), uppOSLDisposeTokenProcInfo, \
716  (unneededToken))
717 #endif
718 #endif
719 
728  OSErr
729  InvokeOSLGetMarkTokenUPP(const AEDesc *dContainerToken, DescType containerClass,
730  AEDesc *result, OSLGetMarkTokenUPP userUPP);
731 #if !OPAQUE_UPP_TYPES
732 #ifdef __cplusplus
733  inline OSErr InvokeOSLGetMarkTokenUPP(const AEDesc *dContainerToken,
734  DescType containerClass, AEDesc *result,
735  OSLGetMarkTokenUPP userUPP)
736  {
737  return (OSErr)CALL_THREE_PARAMETER_UPP(userUPP, uppOSLGetMarkTokenProcInfo,
738  dContainerToken, containerClass,
739  result);
740  }
741 #else
742 #define InvokeOSLGetMarkTokenUPP(dContainerToken, containerClass, result, \
743  userUPP) \
744  (OSErr) \
745  CALL_THREE_PARAMETER_UPP((userUPP), uppOSLGetMarkTokenProcInfo, \
746  (dContainerToken), (containerClass), (result))
747 #endif
748 #endif
749 
758  OSErr
759  InvokeOSLGetErrDescUPP(AEDesc **appDescPtr, OSLGetErrDescUPP userUPP);
760 #if !OPAQUE_UPP_TYPES
761 #ifdef __cplusplus
762  inline OSErr InvokeOSLGetErrDescUPP(AEDesc **appDescPtr,
763  OSLGetErrDescUPP userUPP)
764  {
765  return (OSErr)CALL_ONE_PARAMETER_UPP(userUPP, uppOSLGetErrDescProcInfo,
766  appDescPtr);
767  }
768 #else
769 #define InvokeOSLGetErrDescUPP(appDescPtr, userUPP) \
770  (OSErr) CALL_ONE_PARAMETER_UPP((userUPP), uppOSLGetErrDescProcInfo, \
771  (appDescPtr))
772 #endif
773 #endif
774 
783  OSErr
784  InvokeOSLMarkUPP(const AEDesc *dToken, const AEDesc *markToken, long index,
785  OSLMarkUPP userUPP);
786 #if !OPAQUE_UPP_TYPES
787 #ifdef __cplusplus
788  inline OSErr InvokeOSLMarkUPP(const AEDesc *dToken, const AEDesc *markToken,
789  long index, OSLMarkUPP userUPP)
790  {
791  return (OSErr)CALL_THREE_PARAMETER_UPP(userUPP, uppOSLMarkProcInfo, dToken,
792  markToken, index);
793  }
794 #else
795 #define InvokeOSLMarkUPP(dToken, markToken, index, userUPP) \
796  (OSErr) CALL_THREE_PARAMETER_UPP((userUPP), uppOSLMarkProcInfo, (dToken), \
797  (markToken), (index))
798 #endif
799 #endif
800 
809  OSErr
810  InvokeOSLAdjustMarksUPP(long newStart, long newStop, const AEDesc *markToken,
811  OSLAdjustMarksUPP userUPP);
812 #if !OPAQUE_UPP_TYPES
813 #ifdef __cplusplus
814  inline OSErr InvokeOSLAdjustMarksUPP(long newStart, long newStop,
815  const AEDesc *markToken,
816  OSLAdjustMarksUPP userUPP)
817  {
818  return (OSErr)CALL_THREE_PARAMETER_UPP(userUPP, uppOSLAdjustMarksProcInfo,
819  newStart, newStop, markToken);
820  }
821 #else
822 #define InvokeOSLAdjustMarksUPP(newStart, newStop, markToken, userUPP) \
823  (OSErr) CALL_THREE_PARAMETER_UPP((userUPP), uppOSLAdjustMarksProcInfo, \
824  (newStart), (newStop), (markToken))
825 #endif
826 #endif
827 
828 #if CALL_NOT_IN_CARBON || OLDROUTINENAMES
829 /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
830 #define NewOSLAccessorProc(userRoutine) NewOSLAccessorUPP(userRoutine)
831 #define NewOSLCompareProc(userRoutine) NewOSLCompareUPP(userRoutine)
832 #define NewOSLCountProc(userRoutine) NewOSLCountUPP(userRoutine)
833 #define NewOSLDisposeTokenProc(userRoutine) NewOSLDisposeTokenUPP(userRoutine)
834 #define NewOSLGetMarkTokenProc(userRoutine) NewOSLGetMarkTokenUPP(userRoutine)
835 #define NewOSLGetErrDescProc(userRoutine) NewOSLGetErrDescUPP(userRoutine)
836 #define NewOSLMarkProc(userRoutine) NewOSLMarkUPP(userRoutine)
837 #define NewOSLAdjustMarksProc(userRoutine) NewOSLAdjustMarksUPP(userRoutine)
838 #define CallOSLAccessorProc(userRoutine, desiredClass, container, \
839  containerClass, form, selectionData, value, \
840  accessorRefcon) \
841  InvokeOSLAccessorUPP(desiredClass, container, containerClass, form, \
842  selectionData, value, accessorRefcon, userRoutine)
843 #define CallOSLCompareProc(userRoutine, oper, obj1, obj2, result) \
844  InvokeOSLCompareUPP(oper, obj1, obj2, result, userRoutine)
845 #define CallOSLCountProc(userRoutine, desiredType, containerClass, container, \
846  result) \
847  InvokeOSLCountUPP(desiredType, containerClass, container, result, userRoutine)
848 #define CallOSLDisposeTokenProc(userRoutine, unneededToken) \
849  InvokeOSLDisposeTokenUPP(unneededToken, userRoutine)
850 #define CallOSLGetMarkTokenProc(userRoutine, dContainerToken, containerClass, \
851  result) \
852  InvokeOSLGetMarkTokenUPP(dContainerToken, containerClass, result, userRoutine)
853 #define CallOSLGetErrDescProc(userRoutine, appDescPtr) \
854  InvokeOSLGetErrDescUPP(appDescPtr, userRoutine)
855 #define CallOSLMarkProc(userRoutine, dToken, markToken, index) \
856  InvokeOSLMarkUPP(dToken, markToken, index, userRoutine)
857 #define CallOSLAdjustMarksProc(userRoutine, newStart, newStop, markToken) \
858  InvokeOSLAdjustMarksUPP(newStart, newStop, markToken, userRoutine)
859 #endif /* CALL_NOT_IN_CARBON */
860 
869  OSErr
871 
872  /* Not done by inline, but by direct linking into code. It sets up the pack
873  such that further calls can be via inline */
882  OSErr
883  AESetObjectCallbacks(OSLCompareUPP myCompareProc, OSLCountUPP myCountProc,
884  OSLDisposeTokenUPP myDisposeTokenProc,
885  OSLGetMarkTokenUPP myGetMarkTokenProc,
886  OSLMarkUPP myMarkProc, OSLAdjustMarksUPP myAdjustMarksProc,
887  OSLGetErrDescUPP myGetErrDescProcPtr);
888 
897  OSErr
898  AEResolve(const AEDesc *objectSpecifier, short callbackFlags, AEDesc *theToken);
899 
908  OSErr
909  AEInstallObjectAccessor(DescType desiredClass, DescType containerType,
910  OSLAccessorUPP theAccessor, long accessorRefcon,
911  Boolean isSysHandler);
912 
921  OSErr
922  AERemoveObjectAccessor(DescType desiredClass, DescType containerType,
923  OSLAccessorUPP theAccessor, Boolean isSysHandler);
924 
933  OSErr
934  AEGetObjectAccessor(DescType desiredClass, DescType containerType,
935  OSLAccessorUPP *accessor, long *accessorRefcon,
936  Boolean isSysHandler);
937 
946  OSErr
947  AEDisposeToken(AEDesc *theToken);
948 
957  OSErr
958  AECallObjectAccessor(DescType desiredClass, const AEDesc *containerToken,
959  DescType containerClass, DescType keyForm,
960  const AEDesc *keyData, AEDesc *token);
961 
962 #if PRAGMA_STRUCT_ALIGN
963 #pragma options align = reset
964 #elif PRAGMA_STRUCT_PACKPUSH
965 #pragma pack(pop)
966 #elif PRAGMA_STRUCT_PACK
967 #pragma pack()
968 #endif
969 
970 #ifdef PRAGMA_IMPORT_OFF
971 #pragma import off
972 #elif PRAGMA_IMPORT
973 #pragma import reset
974 #endif
975 
976 #ifdef __cplusplus
977 }
978 #endif
979 
980 #endif /* __AEOBJECTS__ */
ResType DescType
Definition: AEDataModel.h:165
void DisposeOSLDisposeTokenUPP(OSLDisposeTokenUPP userUPP)
Definition: AEObjects.h:511
OSErr InvokeOSLDisposeTokenUPP(AEDesc *unneededToken, OSLDisposeTokenUPP userUPP)
Definition: AEObjects.h:707
void DisposeOSLAccessorUPP(OSLAccessorUPP userUPP)
Definition: AEObjects.h:448
void DisposeOSLGetErrDescUPP(OSLGetErrDescUPP userUPP)
Definition: AEObjects.h:553
OSLDisposeTokenUPP NewOSLDisposeTokenUPP(OSLDisposeTokenProcPtr userRoutine)
Definition: AEObjects.h:302
OSLCompareUPP NewOSLCompareUPP(OSLCompareProcPtr userRoutine)
Definition: AEObjects.h:245
OSLGetMarkTokenUPP NewOSLGetMarkTokenUPP(OSLGetMarkTokenProcPtr userRoutine)
Definition: AEObjects.h:333
OSErr AECallObjectAccessor(DescType desiredClass, const AEDesc *containerToken, DescType containerClass, DescType keyForm, const AEDesc *keyData, AEDesc *token)
OSErr InvokeOSLGetMarkTokenUPP(const AEDesc *dContainerToken, DescType containerClass, AEDesc *result, OSLGetMarkTokenUPP userUPP)
Definition: AEObjects.h:733
OSLCountUPP NewOSLCountUPP(OSLCountProcPtr userRoutine)
Definition: AEObjects.h:273
OSErr AEInstallObjectAccessor(DescType desiredClass, DescType containerType, OSLAccessorUPP theAccessor, long accessorRefcon, Boolean isSysHandler)
OSLAdjustMarksUPP NewOSLAdjustMarksUPP(OSLAdjustMarksProcPtr userRoutine)
Definition: AEObjects.h:422
void DisposeOSLMarkUPP(OSLMarkUPP userUPP)
Definition: AEObjects.h:574
void DisposeOSLCompareUPP(OSLCompareUPP userUPP)
Definition: AEObjects.h:469
OSErr InvokeOSLCountUPP(DescType desiredType, DescType containerClass, const AEDesc *container, long *result, OSLCountUPP userUPP)
Definition: AEObjects.h:678
OSLMarkUPP NewOSLMarkUPP(OSLMarkProcPtr userRoutine)
Definition: AEObjects.h:393
void DisposeOSLAdjustMarksUPP(OSLAdjustMarksUPP userUPP)
Definition: AEObjects.h:595
OSErr AESetObjectCallbacks(OSLCompareUPP myCompareProc, OSLCountUPP myCountProc, OSLDisposeTokenUPP myDisposeTokenProc, OSLGetMarkTokenUPP myGetMarkTokenProc, OSLMarkUPP myMarkProc, OSLAdjustMarksUPP myAdjustMarksProc, OSLGetErrDescUPP myGetErrDescProcPtr)
OSErr AEObjectInit(void)
OSErr InvokeOSLAdjustMarksUPP(long newStart, long newStop, const AEDesc *markToken, OSLAdjustMarksUPP userUPP)
Definition: AEObjects.h:814
OSLAccessorUPP NewOSLAccessorUPP(OSLAccessorProcPtr userRoutine)
Definition: AEObjects.h:216
OSErr InvokeOSLCompareUPP(DescType oper, const AEDesc *obj1, const AEDesc *obj2, Boolean *result, OSLCompareUPP userUPP)
Definition: AEObjects.h:651
OSErr AEResolve(const AEDesc *objectSpecifier, short callbackFlags, AEDesc *theToken)
OSErr AERemoveObjectAccessor(DescType desiredClass, DescType containerType, OSLAccessorUPP theAccessor, Boolean isSysHandler)
OSErr AEGetObjectAccessor(DescType desiredClass, DescType containerType, OSLAccessorUPP *accessor, long *accessorRefcon, Boolean isSysHandler)
void DisposeOSLCountUPP(OSLCountUPP userUPP)
Definition: AEObjects.h:490
OSErr InvokeOSLGetErrDescUPP(AEDesc **appDescPtr, OSLGetErrDescUPP userUPP)
Definition: AEObjects.h:762
OSLGetErrDescUPP NewOSLGetErrDescUPP(OSLGetErrDescProcPtr userRoutine)
Definition: AEObjects.h:363
OSErr InvokeOSLAccessorUPP(DescType desiredClass, const AEDesc *container, DescType containerClass, DescType form, const AEDesc *selectionData, AEDesc *value, long accessorRefcon, OSLAccessorUPP userUPP)
Definition: AEObjects.h:619
OSErr InvokeOSLMarkUPP(const AEDesc *dToken, const AEDesc *markToken, long index, OSLMarkUPP userUPP)
Definition: AEObjects.h:788
OSErr AEDisposeToken(AEDesc *theToken)
void DisposeOSLGetMarkTokenUPP(OSLGetMarkTokenUPP userUPP)
Definition: AEObjects.h:532
AppleEvent Package Interfaces.
OSErr codes.
unsigned char Boolean
Definition: MacTypes.h:318
void DisposeRoutineDescriptor(UniversalProcPtr theUPP)
#define STACK_UPP_TYPE(name)
Definition: MixedMode.h:734
UniversalProcPtr NewRoutineDescriptor(ProcPtr theProc, ProcInfoType theProcInfo, ISAType theISA)
OS Utilities Interfaces.
Definition: AEDataModel.h:175
Definition: AEObjects.h:154