AEObjects.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:23k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /*
  2.      File:       AEObjects.h
  3.  
  4.      Contains:   Object Support Library Interfaces.
  5.  
  6.      Version:    Technology: System 8.5
  7.                  Release:    QuickTime 6.0.2
  8.  
  9.      Copyright:  (c) 1991-2001 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:      For bug reports, consult the following page on
  12.                  the World Wide Web:
  13.  
  14.                      http://developer.apple.com/bugreporter/
  15.  
  16. */
  17. #ifndef __AEOBJECTS__
  18. #define __AEOBJECTS__
  19. #ifndef __OSUTILS__
  20. #include "OSUtils.h"
  21. #endif
  22. #ifndef __APPLEEVENTS__
  23. #include "AppleEvents.h"
  24. #endif
  25. #ifndef __MACERRORS__
  26. #include "MacErrors.h"
  27. #endif
  28. #ifndef __EVENTS__
  29. #include "Events.h"
  30. #endif
  31. #if PRAGMA_ONCE
  32. #pragma once
  33. #endif
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37. #if PRAGMA_IMPORT
  38. #pragma import on
  39. #endif
  40. #if PRAGMA_STRUCT_ALIGN
  41.     #pragma options align=mac68k
  42. #elif PRAGMA_STRUCT_PACKPUSH
  43.     #pragma pack(push, 2)
  44. #elif PRAGMA_STRUCT_PACK
  45.     #pragma pack(2)
  46. #endif
  47. enum {
  48.                                                                 /**** LOGICAL OPERATOR CONSTANTS  ****/
  49.     kAEAND                      = FOUR_CHAR_CODE('AND '),       /*  0x414e4420  */
  50.     kAEOR                       = FOUR_CHAR_CODE('OR  '),       /*  0x4f522020  */
  51.     kAENOT                      = FOUR_CHAR_CODE('NOT '),       /*  0x4e4f5420  */
  52.                                                                 /**** ABSOLUTE ORDINAL CONSTANTS  ****/
  53.     kAEFirst                    = FOUR_CHAR_CODE('firs'),       /*  0x66697273  */
  54.     kAELast                     = FOUR_CHAR_CODE('last'),       /*  0x6c617374  */
  55.     kAEMiddle                   = FOUR_CHAR_CODE('midd'),       /*  0x6d696464  */
  56.     kAEAny                      = FOUR_CHAR_CODE('any '),       /*  0x616e7920  */
  57.     kAEAll                      = FOUR_CHAR_CODE('all '),       /*  0x616c6c20  */
  58.                                                                 /**** RELATIVE ORDINAL CONSTANTS  ****/
  59.     kAENext                     = FOUR_CHAR_CODE('next'),       /*  0x6e657874  */
  60.     kAEPrevious                 = FOUR_CHAR_CODE('prev'),       /*  0x70726576  */
  61.                                                                 /**** KEYWORD CONSTANT    ****/
  62.     keyAECompOperator           = FOUR_CHAR_CODE('relo'),       /*  0x72656c6f  */
  63.     keyAELogicalTerms           = FOUR_CHAR_CODE('term'),       /*  0x7465726d  */
  64.     keyAELogicalOperator        = FOUR_CHAR_CODE('logc'),       /*  0x6c6f6763  */
  65.     keyAEObject1                = FOUR_CHAR_CODE('obj1'),       /*  0x6f626a31  */
  66.     keyAEObject2                = FOUR_CHAR_CODE('obj2'),       /*  0x6f626a32  */
  67.                                                                 /*    ... for Keywords for getting fields out of object specifier records. */
  68.     keyAEDesiredClass           = FOUR_CHAR_CODE('want'),       /*  0x77616e74  */
  69.     keyAEContainer              = FOUR_CHAR_CODE('from'),       /*  0x66726f6d  */
  70.     keyAEKeyForm                = FOUR_CHAR_CODE('form'),       /*  0x666f726d  */
  71.     keyAEKeyData                = FOUR_CHAR_CODE('seld')        /*  0x73656c64  */
  72. };
  73. enum {
  74.                                                                 /*    ... for Keywords for getting fields out of Range specifier records. */
  75.     keyAERangeStart             = FOUR_CHAR_CODE('star'),       /*  0x73746172  */
  76.     keyAERangeStop              = FOUR_CHAR_CODE('stop'),       /*  0x73746f70  */
  77.                                                                 /*    ... special handler selectors for OSL Callbacks. */
  78.     keyDisposeTokenProc         = FOUR_CHAR_CODE('xtok'),       /*  0x78746f6b  */
  79.     keyAECompareProc            = FOUR_CHAR_CODE('cmpr'),       /*  0x636d7072  */
  80.     keyAECountProc              = FOUR_CHAR_CODE('cont'),       /*  0x636f6e74  */
  81.     keyAEMarkTokenProc          = FOUR_CHAR_CODE('mkid'),       /*  0x6d6b6964  */
  82.     keyAEMarkProc               = FOUR_CHAR_CODE('mark'),       /*  0x6d61726b  */
  83.     keyAEAdjustMarksProc        = FOUR_CHAR_CODE('adjm'),       /*  0x61646a6d  */
  84.     keyAEGetErrDescProc         = FOUR_CHAR_CODE('indc')        /*  0x696e6463  */
  85. };
  86. /****   VALUE and TYPE CONSTANTS    ****/
  87. enum {
  88.                                                                 /*    ... possible values for the keyAEKeyForm field of an object specifier. */
  89.     formAbsolutePosition        = FOUR_CHAR_CODE('indx'),       /*  0x696e6478  */
  90.     formRelativePosition        = FOUR_CHAR_CODE('rele'),       /*  0x72656c65  */
  91.     formTest                    = FOUR_CHAR_CODE('test'),       /*  0x74657374  */
  92.     formRange                   = FOUR_CHAR_CODE('rang'),       /*  0x72616e67  */
  93.     formPropertyID              = FOUR_CHAR_CODE('prop'),       /*  0x70726f70  */
  94.     formName                    = FOUR_CHAR_CODE('name'),       /*  0x6e616d65  */
  95.                                                                 /*    ... relevant types (some of these are often pared with forms above). */
  96.     typeObjectSpecifier         = FOUR_CHAR_CODE('obj '),       /*  0x6f626a20  */
  97.     typeObjectBeingExamined     = FOUR_CHAR_CODE('exmn'),       /*  0x65786d6e  */
  98.     typeCurrentContainer        = FOUR_CHAR_CODE('ccnt'),       /*  0x63636e74  */
  99.     typeToken                   = FOUR_CHAR_CODE('toke'),       /*  0x746f6b65  */
  100.     typeRelativeDescriptor      = FOUR_CHAR_CODE('rel '),       /*  0x72656c20  */
  101.     typeAbsoluteOrdinal         = FOUR_CHAR_CODE('abso'),       /*  0x6162736f  */
  102.     typeIndexDescriptor         = FOUR_CHAR_CODE('inde'),       /*  0x696e6465  */
  103.     typeRangeDescriptor         = FOUR_CHAR_CODE('rang'),       /*  0x72616e67  */
  104.     typeLogicalDescriptor       = FOUR_CHAR_CODE('logi'),       /*  0x6c6f6769  */
  105.     typeCompDescriptor          = FOUR_CHAR_CODE('cmpd'),       /*  0x636d7064  */
  106.     typeOSLTokenList            = FOUR_CHAR_CODE('ostl')        /*  0x6F73746C  */
  107. };
  108. /* Possible values for flags parameter to AEResolve.  They're additive */
  109. enum {
  110.     kAEIDoMinimum               = 0x0000,
  111.     kAEIDoWhose                 = 0x0001,
  112.     kAEIDoMarking               = 0x0004,
  113.     kAEPassSubDescs             = 0x0008,
  114.     kAEResolveNestedLists       = 0x0010,
  115.     kAEHandleSimpleRanges       = 0x0020,
  116.     kAEUseRelativeIterators     = 0x0040
  117. };
  118. /**** SPECIAL CONSTANTS FOR CUSTOM WHOSE-CLAUSE RESOLUTION */
  119. enum {
  120.     typeWhoseDescriptor         = FOUR_CHAR_CODE('whos'),       /*  0x77686f73  */
  121.     formWhose                   = FOUR_CHAR_CODE('whos'),       /*  0x77686f73  */
  122.     typeWhoseRange              = FOUR_CHAR_CODE('wrng'),       /*  0x77726e67  */
  123.     keyAEWhoseRangeStart        = FOUR_CHAR_CODE('wstr'),       /*  0x77737472  */
  124.     keyAEWhoseRangeStop         = FOUR_CHAR_CODE('wstp'),       /*  0x77737470  */
  125.     keyAEIndex                  = FOUR_CHAR_CODE('kidx'),       /*  0x6b696478  */
  126.     keyAETest                   = FOUR_CHAR_CODE('ktst')        /*  0x6b747374  */
  127. };
  128. /*
  129.     used for rewriting tokens in place of 'ccnt' descriptors
  130.     This record is only of interest to those who, when they...
  131.     ...get ranges as key data in their accessor procs, choose
  132.     ...to resolve them manually rather than call AEResolve again.
  133. */
  134. struct ccntTokenRecord {
  135.     DescType                        tokenClass;
  136.     AEDesc                          token;
  137. };
  138. typedef struct ccntTokenRecord          ccntTokenRecord;
  139. typedef ccntTokenRecord *               ccntTokenRecPtr;
  140. typedef ccntTokenRecPtr *               ccntTokenRecHandle;
  141. #if OLDROUTINENAMES
  142. typedef AEDesc *                        DescPtr;
  143. typedef DescPtr *                       DescHandle;
  144. #endif  /* OLDROUTINENAMES */
  145. /* typedefs providing type checking for procedure pointers */
  146. typedef CALLBACK_API( OSErr , OSLAccessorProcPtr )(DescType desiredClass, const AEDesc *container, DescType containerClass, DescType form, const AEDesc *selectionData, AEDesc *value, long accessorRefcon);
  147. typedef CALLBACK_API( OSErr , OSLCompareProcPtr )(DescType oper, const AEDesc *obj1, const AEDesc *obj2, Boolean *result);
  148. typedef CALLBACK_API( OSErr , OSLCountProcPtr )(DescType desiredType, DescType containerClass, const AEDesc *container, long *result);
  149. typedef CALLBACK_API( OSErr , OSLDisposeTokenProcPtr )(AEDesc *unneededToken);
  150. typedef CALLBACK_API( OSErr , OSLGetMarkTokenProcPtr )(const AEDesc *dContainerToken, DescType containerClass, AEDesc *result);
  151. typedef CALLBACK_API( OSErr , OSLGetErrDescProcPtr )(AEDesc **appDescPtr);
  152. typedef CALLBACK_API( OSErr , OSLMarkProcPtr )(const AEDesc *dToken, const AEDesc *markToken, long index);
  153. typedef CALLBACK_API( OSErr , OSLAdjustMarksProcPtr )(long newStart, long newStop, const AEDesc *markToken);
  154. typedef STACK_UPP_TYPE(OSLAccessorProcPtr)                      OSLAccessorUPP;
  155. typedef STACK_UPP_TYPE(OSLCompareProcPtr)                       OSLCompareUPP;
  156. typedef STACK_UPP_TYPE(OSLCountProcPtr)                         OSLCountUPP;
  157. typedef STACK_UPP_TYPE(OSLDisposeTokenProcPtr)                  OSLDisposeTokenUPP;
  158. typedef STACK_UPP_TYPE(OSLGetMarkTokenProcPtr)                  OSLGetMarkTokenUPP;
  159. typedef STACK_UPP_TYPE(OSLGetErrDescProcPtr)                    OSLGetErrDescUPP;
  160. typedef STACK_UPP_TYPE(OSLMarkProcPtr)                          OSLMarkUPP;
  161. typedef STACK_UPP_TYPE(OSLAdjustMarksProcPtr)                   OSLAdjustMarksUPP;
  162. #if OPAQUE_UPP_TYPES
  163.     EXTERN_API(OSLAccessorUPP)
  164.     NewOSLAccessorUPP              (OSLAccessorProcPtr      userRoutine);
  165.     EXTERN_API(OSLCompareUPP)
  166.     NewOSLCompareUPP               (OSLCompareProcPtr       userRoutine);
  167.     EXTERN_API(OSLCountUPP)
  168.     NewOSLCountUPP                 (OSLCountProcPtr         userRoutine);
  169.     EXTERN_API(OSLDisposeTokenUPP)
  170.     NewOSLDisposeTokenUPP          (OSLDisposeTokenProcPtr  userRoutine);
  171.     EXTERN_API(OSLGetMarkTokenUPP)
  172.     NewOSLGetMarkTokenUPP          (OSLGetMarkTokenProcPtr  userRoutine);
  173.     EXTERN_API(OSLGetErrDescUPP)
  174.     NewOSLGetErrDescUPP            (OSLGetErrDescProcPtr    userRoutine);
  175.     EXTERN_API(OSLMarkUPP)
  176.     NewOSLMarkUPP                  (OSLMarkProcPtr          userRoutine);
  177.     EXTERN_API(OSLAdjustMarksUPP)
  178.     NewOSLAdjustMarksUPP           (OSLAdjustMarksProcPtr   userRoutine);
  179.     EXTERN_API(void)
  180.     DisposeOSLAccessorUPP          (OSLAccessorUPP          userUPP);
  181.     EXTERN_API(void)
  182.     DisposeOSLCompareUPP           (OSLCompareUPP           userUPP);
  183.     EXTERN_API(void)
  184.     DisposeOSLCountUPP             (OSLCountUPP             userUPP);
  185.     EXTERN_API(void)
  186.     DisposeOSLDisposeTokenUPP      (OSLDisposeTokenUPP      userUPP);
  187.     EXTERN_API(void)
  188.     DisposeOSLGetMarkTokenUPP      (OSLGetMarkTokenUPP      userUPP);
  189.     EXTERN_API(void)
  190.     DisposeOSLGetErrDescUPP        (OSLGetErrDescUPP        userUPP);
  191.     EXTERN_API(void)
  192.     DisposeOSLMarkUPP              (OSLMarkUPP              userUPP);
  193.     EXTERN_API(void)
  194.     DisposeOSLAdjustMarksUPP       (OSLAdjustMarksUPP       userUPP);
  195.     EXTERN_API(OSErr)
  196.     InvokeOSLAccessorUPP           (DescType                desiredClass,
  197.                                     const AEDesc *          container,
  198.                                     DescType                containerClass,
  199.                                     DescType                form,
  200.                                     const AEDesc *          selectionData,
  201.                                     AEDesc *                value,
  202.                                     long                    accessorRefcon,
  203.                                     OSLAccessorUPP          userUPP);
  204.     EXTERN_API(OSErr)
  205.     InvokeOSLCompareUPP            (DescType                oper,
  206.                                     const AEDesc *          obj1,
  207.                                     const AEDesc *          obj2,
  208.                                     Boolean *               result,
  209.                                     OSLCompareUPP           userUPP);
  210.     EXTERN_API(OSErr)
  211.     InvokeOSLCountUPP              (DescType                desiredType,
  212.                                     DescType                containerClass,
  213.                                     const AEDesc *          container,
  214.                                     long *                  result,
  215.                                     OSLCountUPP             userUPP);
  216.     EXTERN_API(OSErr)
  217.     InvokeOSLDisposeTokenUPP       (AEDesc *                unneededToken,
  218.                                     OSLDisposeTokenUPP      userUPP);
  219.     EXTERN_API(OSErr)
  220.     InvokeOSLGetMarkTokenUPP       (const AEDesc *          dContainerToken,
  221.                                     DescType                containerClass,
  222.                                     AEDesc *                result,
  223.                                     OSLGetMarkTokenUPP      userUPP);
  224.     EXTERN_API(OSErr)
  225.     InvokeOSLGetErrDescUPP         (AEDesc **               appDescPtr,
  226.                                     OSLGetErrDescUPP        userUPP);
  227.     EXTERN_API(OSErr)
  228.     InvokeOSLMarkUPP               (const AEDesc *          dToken,
  229.                                     const AEDesc *          markToken,
  230.                                     long                    index,
  231.                                     OSLMarkUPP              userUPP);
  232.     EXTERN_API(OSErr)
  233.     InvokeOSLAdjustMarksUPP        (long                    newStart,
  234.                                     long                    newStop,
  235.                                     const AEDesc *          markToken,
  236.                                     OSLAdjustMarksUPP       userUPP);
  237. #else
  238.     enum { uppOSLAccessorProcInfo = 0x000FFFE0 };                   /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  239.     enum { uppOSLCompareProcInfo = 0x00003FE0 };                    /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  240.     enum { uppOSLCountProcInfo = 0x00003FE0 };                      /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  241.     enum { uppOSLDisposeTokenProcInfo = 0x000000E0 };               /* pascal 2_bytes Func(4_bytes) */
  242.     enum { uppOSLGetMarkTokenProcInfo = 0x00000FE0 };               /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  243.     enum { uppOSLGetErrDescProcInfo = 0x000000E0 };                 /* pascal 2_bytes Func(4_bytes) */
  244.     enum { uppOSLMarkProcInfo = 0x00000FE0 };                       /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  245.     enum { uppOSLAdjustMarksProcInfo = 0x00000FE0 };                /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  246.     #define NewOSLAccessorUPP(userRoutine)                          (OSLAccessorUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLAccessorProcInfo, GetCurrentArchitecture())
  247.     #define NewOSLCompareUPP(userRoutine)                           (OSLCompareUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLCompareProcInfo, GetCurrentArchitecture())
  248.     #define NewOSLCountUPP(userRoutine)                             (OSLCountUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLCountProcInfo, GetCurrentArchitecture())
  249.     #define NewOSLDisposeTokenUPP(userRoutine)                      (OSLDisposeTokenUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLDisposeTokenProcInfo, GetCurrentArchitecture())
  250.     #define NewOSLGetMarkTokenUPP(userRoutine)                      (OSLGetMarkTokenUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLGetMarkTokenProcInfo, GetCurrentArchitecture())
  251.     #define NewOSLGetErrDescUPP(userRoutine)                        (OSLGetErrDescUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLGetErrDescProcInfo, GetCurrentArchitecture())
  252.     #define NewOSLMarkUPP(userRoutine)                              (OSLMarkUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLMarkProcInfo, GetCurrentArchitecture())
  253.     #define NewOSLAdjustMarksUPP(userRoutine)                       (OSLAdjustMarksUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSLAdjustMarksProcInfo, GetCurrentArchitecture())
  254.     #define DisposeOSLAccessorUPP(userUPP)                          DisposeRoutineDescriptor(userUPP)
  255.     #define DisposeOSLCompareUPP(userUPP)                           DisposeRoutineDescriptor(userUPP)
  256.     #define DisposeOSLCountUPP(userUPP)                             DisposeRoutineDescriptor(userUPP)
  257.     #define DisposeOSLDisposeTokenUPP(userUPP)                      DisposeRoutineDescriptor(userUPP)
  258.     #define DisposeOSLGetMarkTokenUPP(userUPP)                      DisposeRoutineDescriptor(userUPP)
  259.     #define DisposeOSLGetErrDescUPP(userUPP)                        DisposeRoutineDescriptor(userUPP)
  260.     #define DisposeOSLMarkUPP(userUPP)                              DisposeRoutineDescriptor(userUPP)
  261.     #define DisposeOSLAdjustMarksUPP(userUPP)                       DisposeRoutineDescriptor(userUPP)
  262.     #define InvokeOSLAccessorUPP(desiredClass, container, containerClass, form, selectionData, value, accessorRefcon, userUPP)  (OSErr)CALL_SEVEN_PARAMETER_UPP((userUPP), uppOSLAccessorProcInfo, (desiredClass), (container), (containerClass), (form), (selectionData), (value), (accessorRefcon))
  263.     #define InvokeOSLCompareUPP(oper, obj1, obj2, result, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppOSLCompareProcInfo, (oper), (obj1), (obj2), (result))
  264.     #define InvokeOSLCountUPP(desiredType, containerClass, container, result, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppOSLCountProcInfo, (desiredType), (containerClass), (container), (result))
  265.     #define InvokeOSLDisposeTokenUPP(unneededToken, userUPP)        (OSErr)CALL_ONE_PARAMETER_UPP((userUPP), uppOSLDisposeTokenProcInfo, (unneededToken))
  266.     #define InvokeOSLGetMarkTokenUPP(dContainerToken, containerClass, result, userUPP)  (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppOSLGetMarkTokenProcInfo, (dContainerToken), (containerClass), (result))
  267.     #define InvokeOSLGetErrDescUPP(appDescPtr, userUPP)             (OSErr)CALL_ONE_PARAMETER_UPP((userUPP), uppOSLGetErrDescProcInfo, (appDescPtr))
  268.     #define InvokeOSLMarkUPP(dToken, markToken, index, userUPP)     (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppOSLMarkProcInfo, (dToken), (markToken), (index))
  269.     #define InvokeOSLAdjustMarksUPP(newStart, newStop, markToken, userUPP)  (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppOSLAdjustMarksProcInfo, (newStart), (newStop), (markToken))
  270. #endif
  271. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  272. #define NewOSLAccessorProc(userRoutine)                         NewOSLAccessorUPP(userRoutine)
  273. #define NewOSLCompareProc(userRoutine)                          NewOSLCompareUPP(userRoutine)
  274. #define NewOSLCountProc(userRoutine)                            NewOSLCountUPP(userRoutine)
  275. #define NewOSLDisposeTokenProc(userRoutine)                     NewOSLDisposeTokenUPP(userRoutine)
  276. #define NewOSLGetMarkTokenProc(userRoutine)                     NewOSLGetMarkTokenUPP(userRoutine)
  277. #define NewOSLGetErrDescProc(userRoutine)                       NewOSLGetErrDescUPP(userRoutine)
  278. #define NewOSLMarkProc(userRoutine)                             NewOSLMarkUPP(userRoutine)
  279. #define NewOSLAdjustMarksProc(userRoutine)                      NewOSLAdjustMarksUPP(userRoutine)
  280. #define CallOSLAccessorProc(userRoutine, desiredClass, container, containerClass, form, selectionData, value, accessorRefcon) InvokeOSLAccessorUPP(desiredClass, container, containerClass, form, selectionData, value, accessorRefcon, userRoutine)
  281. #define CallOSLCompareProc(userRoutine, oper, obj1, obj2, result) InvokeOSLCompareUPP(oper, obj1, obj2, result, userRoutine)
  282. #define CallOSLCountProc(userRoutine, desiredType, containerClass, container, result) InvokeOSLCountUPP(desiredType, containerClass, container, result, userRoutine)
  283. #define CallOSLDisposeTokenProc(userRoutine, unneededToken)     InvokeOSLDisposeTokenUPP(unneededToken, userRoutine)
  284. #define CallOSLGetMarkTokenProc(userRoutine, dContainerToken, containerClass, result) InvokeOSLGetMarkTokenUPP(dContainerToken, containerClass, result, userRoutine)
  285. #define CallOSLGetErrDescProc(userRoutine, appDescPtr)          InvokeOSLGetErrDescUPP(appDescPtr, userRoutine)
  286. #define CallOSLMarkProc(userRoutine, dToken, markToken, index)  InvokeOSLMarkUPP(dToken, markToken, index, userRoutine)
  287. #define CallOSLAdjustMarksProc(userRoutine, newStart, newStop, markToken) InvokeOSLAdjustMarksUPP(newStart, newStop, markToken, userRoutine)
  288. EXTERN_API( OSErr )
  289. AEObjectInit                    (void);
  290. /* Not done by inline, but by direct linking into code.  It sets up the pack
  291.   such that further calls can be via inline */
  292. EXTERN_API( OSErr )
  293. AESetObjectCallbacks            (OSLCompareUPP          myCompareProc,
  294.                                  OSLCountUPP            myCountProc,
  295.                                  OSLDisposeTokenUPP     myDisposeTokenProc,
  296.                                  OSLGetMarkTokenUPP     myGetMarkTokenProc,
  297.                                  OSLMarkUPP             myMarkProc,
  298.                                  OSLAdjustMarksUPP      myAdjustMarksProc,
  299.                                  OSLGetErrDescUPP       myGetErrDescProcPtr)                THREEWORDINLINE(0x303C, 0x0E35, 0xA816);
  300. EXTERN_API( OSErr )
  301. AEResolve                       (const AEDesc *         objectSpecifier,
  302.                                  short                  callbackFlags,
  303.                                  AEDesc *               theToken)                           THREEWORDINLINE(0x303C, 0x0536, 0xA816);
  304. EXTERN_API( OSErr )
  305. AEInstallObjectAccessor         (DescType               desiredClass,
  306.                                  DescType               containerType,
  307.                                  OSLAccessorUPP         theAccessor,
  308.                                  long                   accessorRefcon,
  309.                                  Boolean                isSysHandler)                       THREEWORDINLINE(0x303C, 0x0937, 0xA816);
  310. EXTERN_API( OSErr )
  311. AERemoveObjectAccessor          (DescType               desiredClass,
  312.                                  DescType               containerType,
  313.                                  OSLAccessorUPP         theAccessor,
  314.                                  Boolean                isSysHandler)                       THREEWORDINLINE(0x303C, 0x0738, 0xA816);
  315. EXTERN_API( OSErr )
  316. AEGetObjectAccessor             (DescType               desiredClass,
  317.                                  DescType               containerType,
  318.                                  OSLAccessorUPP *       accessor,
  319.                                  long *                 accessorRefcon,
  320.                                  Boolean                isSysHandler)                       THREEWORDINLINE(0x303C, 0x0939, 0xA816);
  321. EXTERN_API( OSErr )
  322. AEDisposeToken                  (AEDesc *               theToken)                           THREEWORDINLINE(0x303C, 0x023A, 0xA816);
  323. EXTERN_API( OSErr )
  324. AECallObjectAccessor            (DescType               desiredClass,
  325.                                  const AEDesc *         containerToken,
  326.                                  DescType               containerClass,
  327.                                  DescType               keyForm,
  328.                                  const AEDesc *         keyData,
  329.                                  AEDesc *               token)                              THREEWORDINLINE(0x303C, 0x0C3B, 0xA816);
  330. #if PRAGMA_STRUCT_ALIGN
  331.     #pragma options align=reset
  332. #elif PRAGMA_STRUCT_PACKPUSH
  333.     #pragma pack(pop)
  334. #elif PRAGMA_STRUCT_PACK
  335.     #pragma pack()
  336. #endif
  337. #ifdef PRAGMA_IMPORT_OFF
  338. #pragma import off
  339. #elif PRAGMA_IMPORT
  340. #pragma import reset
  341. #endif
  342. #ifdef __cplusplus
  343. }
  344. #endif
  345. #endif /* __AEOBJECTS__ */