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

多媒体编程

开发平台:

Visual C++

  1. /*
  2.      File:       Collections.h
  3.  
  4.      Contains:   Collection Manager Interfaces
  5.  
  6.      Version:    Technology: System 7.x
  7.                  Release:    QuickTime 6.0.2
  8.  
  9.      Copyright:  (c) 1989-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 __COLLECTIONS__
  18. #define __COLLECTIONS__
  19. #ifndef __MACTYPES__
  20. #include "MacTypes.h"
  21. #endif
  22. #ifndef __MIXEDMODE__
  23. #include "MixedMode.h"
  24. #endif
  25. #if PRAGMA_ONCE
  26. #pragma once
  27. #endif
  28. #ifdef __cplusplus
  29. extern "C" {
  30. #endif
  31. #if PRAGMA_IMPORT
  32. #pragma import on
  33. #endif
  34. #if PRAGMA_STRUCT_ALIGN
  35.     #pragma options align=mac68k
  36. #elif PRAGMA_STRUCT_PACKPUSH
  37.     #pragma pack(push, 2)
  38. #elif PRAGMA_STRUCT_PACK
  39.     #pragma pack(2)
  40. #endif
  41. /*************/
  42. /* Constants */
  43. /*************/
  44. /* Convenience constants for functions which optionally return values */
  45. enum {
  46.     kCollectionDontWantTag      = 0L,
  47.     kCollectionDontWantId       = 0L,
  48.     kCollectionDontWantSize     = 0L,
  49.     kCollectionDontWantAttributes = 0L,
  50.     kCollectionDontWantIndex    = 0L,
  51.     kCollectionDontWantData     = 0L
  52. };
  53. /* attributes bits */
  54. enum {
  55.     kCollectionNoAttributes     = 0x00000000,                   /* no attributes bits set */
  56.     kCollectionAllAttributes    = (long)0xFFFFFFFF,             /* all attributes bits set */
  57.     kCollectionUserAttributes   = 0x0000FFFF,                   /* user attributes bits */
  58.     kCollectionDefaultAttributes = 0x40000000                   /* default attributes - unlocked, persistent */
  59. };
  60. /* 
  61.     Attribute bits 0 through 15 (entire low word) are reserved for use by the application.
  62.     Attribute bits 16 through 31 (entire high word) are reserved for use by the Collection Manager.
  63.     Only bits 31 (kCollectionLockBit) and 30 (kCollectionPersistenceBit) currently have meaning.
  64. */
  65. enum {
  66.     kCollectionUser0Bit         = 0,
  67.     kCollectionUser1Bit         = 1,
  68.     kCollectionUser2Bit         = 2,
  69.     kCollectionUser3Bit         = 3,
  70.     kCollectionUser4Bit         = 4,
  71.     kCollectionUser5Bit         = 5,
  72.     kCollectionUser6Bit         = 6,
  73.     kCollectionUser7Bit         = 7,
  74.     kCollectionUser8Bit         = 8,
  75.     kCollectionUser9Bit         = 9,
  76.     kCollectionUser10Bit        = 10,
  77.     kCollectionUser11Bit        = 11,
  78.     kCollectionUser12Bit        = 12,
  79.     kCollectionUser13Bit        = 13,
  80.     kCollectionUser14Bit        = 14,
  81.     kCollectionUser15Bit        = 15,
  82.     kCollectionReserved0Bit     = 16,
  83.     kCollectionReserved1Bit     = 17,
  84.     kCollectionReserved2Bit     = 18,
  85.     kCollectionReserved3Bit     = 19,
  86.     kCollectionReserved4Bit     = 20,
  87.     kCollectionReserved5Bit     = 21,
  88.     kCollectionReserved6Bit     = 22,
  89.     kCollectionReserved7Bit     = 23,
  90.     kCollectionReserved8Bit     = 24,
  91.     kCollectionReserved9Bit     = 25,
  92.     kCollectionReserved10Bit    = 26,
  93.     kCollectionReserved11Bit    = 27,
  94.     kCollectionReserved12Bit    = 28,
  95.     kCollectionReserved13Bit    = 29,
  96.     kCollectionPersistenceBit   = 30,
  97.     kCollectionLockBit          = 31
  98. };
  99. /* attribute masks */
  100. enum {
  101.     kCollectionUser0Mask        = 1L << kCollectionUser0Bit,
  102.     kCollectionUser1Mask        = 1L << kCollectionUser1Bit,
  103.     kCollectionUser2Mask        = 1L << kCollectionUser2Bit,
  104.     kCollectionUser3Mask        = 1L << kCollectionUser3Bit,
  105.     kCollectionUser4Mask        = 1L << kCollectionUser4Bit,
  106.     kCollectionUser5Mask        = 1L << kCollectionUser5Bit,
  107.     kCollectionUser6Mask        = 1L << kCollectionUser6Bit,
  108.     kCollectionUser7Mask        = 1L << kCollectionUser7Bit,
  109.     kCollectionUser8Mask        = 1L << kCollectionUser8Bit,
  110.     kCollectionUser9Mask        = 1L << kCollectionUser9Bit,
  111.     kCollectionUser10Mask       = 1L << kCollectionUser10Bit,
  112.     kCollectionUser11Mask       = 1L << kCollectionUser11Bit,
  113.     kCollectionUser12Mask       = 1L << kCollectionUser12Bit,
  114.     kCollectionUser13Mask       = 1L << kCollectionUser13Bit,
  115.     kCollectionUser14Mask       = 1L << kCollectionUser14Bit,
  116.     kCollectionUser15Mask       = 1L << kCollectionUser15Bit,
  117.     kCollectionReserved0Mask    = 1L << kCollectionReserved0Bit,
  118.     kCollectionReserved1Mask    = 1L << kCollectionReserved1Bit,
  119.     kCollectionReserved2Mask    = 1L << kCollectionReserved2Bit,
  120.     kCollectionReserved3Mask    = 1L << kCollectionReserved3Bit,
  121.     kCollectionReserved4Mask    = 1L << kCollectionReserved4Bit,
  122.     kCollectionReserved5Mask    = 1L << kCollectionReserved5Bit,
  123.     kCollectionReserved6Mask    = 1L << kCollectionReserved6Bit,
  124.     kCollectionReserved7Mask    = 1L << kCollectionReserved7Bit,
  125.     kCollectionReserved8Mask    = 1L << kCollectionReserved8Bit,
  126.     kCollectionReserved9Mask    = 1L << kCollectionReserved9Bit,
  127.     kCollectionReserved10Mask   = 1L << kCollectionReserved10Bit,
  128.     kCollectionReserved11Mask   = 1L << kCollectionReserved11Bit,
  129.     kCollectionReserved12Mask   = 1L << kCollectionReserved12Bit,
  130.     kCollectionReserved13Mask   = 1L << kCollectionReserved13Bit,
  131.     kCollectionPersistenceMask  = 1L << kCollectionPersistenceBit,
  132.     kCollectionLockMask         = 1L << kCollectionLockBit
  133. };
  134. /***********/
  135. /* Types   */
  136. /***********/
  137. /* abstract data type for a collection */
  138. typedef struct OpaqueCollection*        Collection;
  139. /* collection member 4 byte tag */
  140. typedef FourCharCode                    CollectionTag;
  141. typedef CALLBACK_API( OSErr , CollectionFlattenProcPtr )(SInt32 size, void *data, void *refCon);
  142. typedef CALLBACK_API( OSErr , CollectionExceptionProcPtr )(Collection c, OSErr status);
  143. typedef STACK_UPP_TYPE(CollectionFlattenProcPtr)                CollectionFlattenUPP;
  144. typedef STACK_UPP_TYPE(CollectionExceptionProcPtr)              CollectionExceptionUPP;
  145. #if OPAQUE_UPP_TYPES
  146.     EXTERN_API(CollectionFlattenUPP)
  147.     NewCollectionFlattenUPP        (CollectionFlattenProcPtr userRoutine);
  148.     EXTERN_API(CollectionExceptionUPP)
  149.     NewCollectionExceptionUPP      (CollectionExceptionProcPtr userRoutine);
  150.     EXTERN_API(void)
  151.     DisposeCollectionFlattenUPP    (CollectionFlattenUPP    userUPP);
  152.     EXTERN_API(void)
  153.     DisposeCollectionExceptionUPP    (CollectionExceptionUPP userUPP);
  154.     EXTERN_API(OSErr)
  155.     InvokeCollectionFlattenUPP     (SInt32                  size,
  156.                                     void *                  data,
  157.                                     void *                  refCon,
  158.                                     CollectionFlattenUPP    userUPP);
  159.     EXTERN_API(OSErr)
  160.     InvokeCollectionExceptionUPP    (Collection             c,
  161.                                     OSErr                   status,
  162.                                     CollectionExceptionUPP  userUPP);
  163. #else
  164.     enum { uppCollectionFlattenProcInfo = 0x00000FE0 };             /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes) */
  165.     enum { uppCollectionExceptionProcInfo = 0x000002E0 };           /* pascal 2_bytes Func(4_bytes, 2_bytes) */
  166.     #define NewCollectionFlattenUPP(userRoutine)                    (CollectionFlattenUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppCollectionFlattenProcInfo, GetCurrentArchitecture())
  167.     #define NewCollectionExceptionUPP(userRoutine)                  (CollectionExceptionUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppCollectionExceptionProcInfo, GetCurrentArchitecture())
  168.     #define DisposeCollectionFlattenUPP(userUPP)                    DisposeRoutineDescriptor(userUPP)
  169.     #define DisposeCollectionExceptionUPP(userUPP)                  DisposeRoutineDescriptor(userUPP)
  170.     #define InvokeCollectionFlattenUPP(size, data, refCon, userUPP)  (OSErr)CALL_THREE_PARAMETER_UPP((userUPP), uppCollectionFlattenProcInfo, (size), (data), (refCon))
  171.     #define InvokeCollectionExceptionUPP(c, status, userUPP)        (OSErr)CALL_TWO_PARAMETER_UPP((userUPP), uppCollectionExceptionProcInfo, (c), (status))
  172. #endif
  173. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  174. #define NewCollectionFlattenProc(userRoutine)                   NewCollectionFlattenUPP(userRoutine)
  175. #define NewCollectionExceptionProc(userRoutine)                 NewCollectionExceptionUPP(userRoutine)
  176. #define CallCollectionFlattenProc(userRoutine, size, data, refCon) InvokeCollectionFlattenUPP(size, data, refCon, userRoutine)
  177. #define CallCollectionExceptionProc(userRoutine, c, status)     InvokeCollectionExceptionUPP(c, status, userRoutine)
  178. /*********************************************/
  179. /************* Public interfaces *************/
  180. /*********************************************/
  181. EXTERN_API( Collection )
  182. NewCollection                   (void)                                                      TWOWORDINLINE(0x7000, 0xABF6);
  183. EXTERN_API( void )
  184. DisposeCollection               (Collection             c)                                  TWOWORDINLINE(0x7001, 0xABF6);
  185. EXTERN_API( Collection )
  186. CloneCollection                 (Collection             c)                                  TWOWORDINLINE(0x7002, 0xABF6);
  187. EXTERN_API( SInt32 )
  188. CountCollectionOwners           (Collection             c)                                  TWOWORDINLINE(0x7003, 0xABF6);
  189. EXTERN_API( Collection )
  190. CopyCollection                  (Collection             srcCollection,
  191.                                  Collection             dstCollection)                      TWOWORDINLINE(0x7004, 0xABF6);
  192. EXTERN_API( SInt32 )
  193. GetCollectionDefaultAttributes  (Collection             c)                                  TWOWORDINLINE(0x7005, 0xABF6);
  194. EXTERN_API( void )
  195. SetCollectionDefaultAttributes  (Collection             c,
  196.                                  SInt32                 whichAttributes,
  197.                                  SInt32                 newAttributes)                      TWOWORDINLINE(0x7006, 0xABF6);
  198. EXTERN_API( SInt32 )
  199. CountCollectionItems            (Collection             c)                                  TWOWORDINLINE(0x7007, 0xABF6);
  200. EXTERN_API( OSErr )
  201. AddCollectionItem               (Collection             c,
  202.                                  CollectionTag          tag,
  203.                                  SInt32                 id,
  204.                                  SInt32                 itemSize,
  205.                                  const void *           itemData)                           TWOWORDINLINE(0x7008, 0xABF6);
  206. EXTERN_API( OSErr )
  207. GetCollectionItem               (Collection             c,
  208.                                  CollectionTag          tag,
  209.                                  SInt32                 id,
  210.                                  SInt32 *               itemSize,
  211.                                  void *                 itemData)                           TWOWORDINLINE(0x7009, 0xABF6);
  212. EXTERN_API( OSErr )
  213. RemoveCollectionItem            (Collection             c,
  214.                                  CollectionTag          tag,
  215.                                  SInt32                 id)                                 TWOWORDINLINE(0x700A, 0xABF6);
  216. EXTERN_API( OSErr )
  217. SetCollectionItemInfo           (Collection             c,
  218.                                  CollectionTag          tag,
  219.                                  SInt32                 id,
  220.                                  SInt32                 whichAttributes,
  221.                                  SInt32                 newAttributes)                      TWOWORDINLINE(0x700B, 0xABF6);
  222. EXTERN_API( OSErr )
  223. GetCollectionItemInfo           (Collection             c,
  224.                                  CollectionTag          tag,
  225.                                  SInt32                 id,
  226.                                  SInt32 *               index,
  227.                                  SInt32 *               itemSize,
  228.                                  SInt32 *               attributes)                         TWOWORDINLINE(0x700C, 0xABF6);
  229. EXTERN_API( OSErr )
  230. ReplaceIndexedCollectionItem    (Collection             c,
  231.                                  SInt32                 index,
  232.                                  SInt32                 itemSize,
  233.                                  const void *           itemData)                           TWOWORDINLINE(0x700D, 0xABF6);
  234. EXTERN_API( OSErr )
  235. GetIndexedCollectionItem        (Collection             c,
  236.                                  SInt32                 index,
  237.                                  SInt32 *               itemSize,
  238.                                  void *                 itemData)                           TWOWORDINLINE(0x700E, 0xABF6);
  239. EXTERN_API( OSErr )
  240. RemoveIndexedCollectionItem     (Collection             c,
  241.                                  SInt32                 index)                              TWOWORDINLINE(0x700F, 0xABF6);
  242. EXTERN_API( OSErr )
  243. SetIndexedCollectionItemInfo    (Collection             c,
  244.                                  SInt32                 index,
  245.                                  SInt32                 whichAttributes,
  246.                                  SInt32                 newAttributes)                      TWOWORDINLINE(0x7010, 0xABF6);
  247. EXTERN_API( OSErr )
  248. GetIndexedCollectionItemInfo    (Collection             c,
  249.                                  SInt32                 index,
  250.                                  CollectionTag *        tag,
  251.                                  SInt32 *               id,
  252.                                  SInt32 *               itemSize,
  253.                                  SInt32 *               attributes)                         TWOWORDINLINE(0x7011, 0xABF6);
  254. EXTERN_API( Boolean )
  255. CollectionTagExists             (Collection             c,
  256.                                  CollectionTag          tag)                                TWOWORDINLINE(0x7012, 0xABF6);
  257. EXTERN_API( SInt32 )
  258. CountCollectionTags             (Collection             c)                                  TWOWORDINLINE(0x7013, 0xABF6);
  259. EXTERN_API( OSErr )
  260. GetIndexedCollectionTag         (Collection             c,
  261.                                  SInt32                 tagIndex,
  262.                                  CollectionTag *        tag)                                TWOWORDINLINE(0x7014, 0xABF6);
  263. EXTERN_API( SInt32 )
  264. CountTaggedCollectionItems      (Collection             c,
  265.                                  CollectionTag          tag)                                TWOWORDINLINE(0x7015, 0xABF6);
  266. EXTERN_API( OSErr )
  267. GetTaggedCollectionItem         (Collection             c,
  268.                                  CollectionTag          tag,
  269.                                  SInt32                 whichItem,
  270.                                  SInt32 *               itemSize,
  271.                                  void *                 itemData)                           TWOWORDINLINE(0x7016, 0xABF6);
  272. EXTERN_API( OSErr )
  273. GetTaggedCollectionItemInfo     (Collection             c,
  274.                                  CollectionTag          tag,
  275.                                  SInt32                 whichItem,
  276.                                  SInt32 *               id,
  277.                                  SInt32 *               index,
  278.                                  SInt32 *               itemSize,
  279.                                  SInt32 *               attributes)                         TWOWORDINLINE(0x7017, 0xABF6);
  280. EXTERN_API( void )
  281. PurgeCollection                 (Collection             c,
  282.                                  SInt32                 whichAttributes,
  283.                                  SInt32                 matchingAttributes)                 TWOWORDINLINE(0x7018, 0xABF6);
  284. EXTERN_API( void )
  285. PurgeCollectionTag              (Collection             c,
  286.                                  CollectionTag          tag)                                TWOWORDINLINE(0x7019, 0xABF6);
  287. EXTERN_API( void )
  288. EmptyCollection                 (Collection             c)                                  TWOWORDINLINE(0x701A, 0xABF6);
  289. EXTERN_API( OSErr )
  290. FlattenCollection               (Collection             c,
  291.                                  CollectionFlattenUPP   flattenProc,
  292.                                  void *                 refCon)                             TWOWORDINLINE(0x701B, 0xABF6);
  293. EXTERN_API( OSErr )
  294. FlattenPartialCollection        (Collection             c,
  295.                                  CollectionFlattenUPP   flattenProc,
  296.                                  void *                 refCon,
  297.                                  SInt32                 whichAttributes,
  298.                                  SInt32                 matchingAttributes)                 TWOWORDINLINE(0x701C, 0xABF6);
  299. EXTERN_API( OSErr )
  300. UnflattenCollection             (Collection             c,
  301.                                  CollectionFlattenUPP   flattenProc,
  302.                                  void *                 refCon)                             TWOWORDINLINE(0x701D, 0xABF6);
  303. EXTERN_API( CollectionExceptionUPP )
  304. GetCollectionExceptionProc      (Collection             c)                                  TWOWORDINLINE(0x701E, 0xABF6);
  305. EXTERN_API( void )
  306. SetCollectionExceptionProc      (Collection             c,
  307.                                  CollectionExceptionUPP  exceptionProc)                     TWOWORDINLINE(0x701F, 0xABF6);
  308. EXTERN_API( Collection )
  309. GetNewCollection                (SInt16                 collectionID)                       TWOWORDINLINE(0x7020, 0xABF6);
  310. /**********************************************************************/
  311. /************** Utility routines for handle-based access **************/
  312. /**********************************************************************/
  313. EXTERN_API( OSErr )
  314. AddCollectionItemHdl            (Collection             aCollection,
  315.                                  CollectionTag          tag,
  316.                                  SInt32                 id,
  317.                                  Handle                 itemData)                           TWOWORDINLINE(0x7021, 0xABF6);
  318. EXTERN_API( OSErr )
  319. GetCollectionItemHdl            (Collection             aCollection,
  320.                                  CollectionTag          tag,
  321.                                  SInt32                 id,
  322.                                  Handle                 itemData)                           TWOWORDINLINE(0x7022, 0xABF6);
  323. EXTERN_API( OSErr )
  324. ReplaceIndexedCollectionItemHdl (Collection             aCollection,
  325.                                  SInt32                 index,
  326.                                  Handle                 itemData)                           TWOWORDINLINE(0x7023, 0xABF6);
  327. EXTERN_API( OSErr )
  328. GetIndexedCollectionItemHdl     (Collection             aCollection,
  329.                                  SInt32                 index,
  330.                                  Handle                 itemData)                           TWOWORDINLINE(0x7024, 0xABF6);
  331. EXTERN_API( OSErr )
  332. FlattenCollectionToHdl          (Collection             aCollection,
  333.                                  Handle                 flattened)                          TWOWORDINLINE(0x7025, 0xABF6);
  334. EXTERN_API( OSErr )
  335. UnflattenCollectionFromHdl      (Collection             aCollection,
  336.                                  Handle                 flattened)                          TWOWORDINLINE(0x7026, 0xABF6);
  337. #if OLDROUTINENAMES
  338. enum {
  339.     dontWantTag                 = kCollectionDontWantTag,
  340.     dontWantId                  = kCollectionDontWantId,
  341.     dontWantSize                = kCollectionDontWantSize,
  342.     dontWantAttributes          = kCollectionDontWantAttributes,
  343.     dontWantIndex               = kCollectionDontWantIndex,
  344.     dontWantData                = kCollectionDontWantData
  345. };
  346. enum {
  347.     noCollectionAttributes      = kCollectionNoAttributes,
  348.     allCollectionAttributes     = kCollectionAllAttributes,
  349.     userCollectionAttributes    = kCollectionUserAttributes,
  350.     defaultCollectionAttributes = kCollectionDefaultAttributes
  351. };
  352. enum {
  353.     collectionUser0Bit          = kCollectionUser0Bit,
  354.     collectionUser1Bit          = kCollectionUser1Bit,
  355.     collectionUser2Bit          = kCollectionUser2Bit,
  356.     collectionUser3Bit          = kCollectionUser3Bit,
  357.     collectionUser4Bit          = kCollectionUser4Bit,
  358.     collectionUser5Bit          = kCollectionUser5Bit,
  359.     collectionUser6Bit          = kCollectionUser6Bit,
  360.     collectionUser7Bit          = kCollectionUser7Bit,
  361.     collectionUser8Bit          = kCollectionUser8Bit,
  362.     collectionUser9Bit          = kCollectionUser9Bit,
  363.     collectionUser10Bit         = kCollectionUser10Bit,
  364.     collectionUser11Bit         = kCollectionUser11Bit,
  365.     collectionUser12Bit         = kCollectionUser12Bit,
  366.     collectionUser13Bit         = kCollectionUser13Bit,
  367.     collectionUser14Bit         = kCollectionUser14Bit,
  368.     collectionUser15Bit         = kCollectionUser15Bit,
  369.     collectionReserved0Bit      = kCollectionReserved0Bit,
  370.     collectionReserved1Bit      = kCollectionReserved1Bit,
  371.     collectionReserved2Bit      = kCollectionReserved2Bit,
  372.     collectionReserved3Bit      = kCollectionReserved3Bit,
  373.     collectionReserved4Bit      = kCollectionReserved4Bit,
  374.     collectionReserved5Bit      = kCollectionReserved5Bit,
  375.     collectionReserved6Bit      = kCollectionReserved6Bit,
  376.     collectionReserved7Bit      = kCollectionReserved7Bit,
  377.     collectionReserved8Bit      = kCollectionReserved8Bit,
  378.     collectionReserved9Bit      = kCollectionReserved9Bit,
  379.     collectionReserved10Bit     = kCollectionReserved10Bit,
  380.     collectionReserved11Bit     = kCollectionReserved11Bit,
  381.     collectionReserved12Bit     = kCollectionReserved12Bit,
  382.     collectionReserved13Bit     = kCollectionReserved13Bit,
  383.     collectionPersistenceBit    = kCollectionPersistenceBit,
  384.     collectionLockBit           = kCollectionLockBit
  385. };
  386. enum {
  387.     collectionUser0Mask         = kCollectionUser0Mask,
  388.     collectionUser1Mask         = kCollectionUser1Mask,
  389.     collectionUser2Mask         = kCollectionUser2Mask,
  390.     collectionUser3Mask         = kCollectionUser3Mask,
  391.     collectionUser4Mask         = kCollectionUser4Mask,
  392.     collectionUser5Mask         = kCollectionUser5Mask,
  393.     collectionUser6Mask         = kCollectionUser6Mask,
  394.     collectionUser7Mask         = kCollectionUser7Mask,
  395.     collectionUser8Mask         = kCollectionUser8Mask,
  396.     collectionUser9Mask         = kCollectionUser9Mask,
  397.     collectionUser10Mask        = kCollectionUser10Mask,
  398.     collectionUser11Mask        = kCollectionUser11Mask,
  399.     collectionUser12Mask        = kCollectionUser12Mask,
  400.     collectionUser13Mask        = kCollectionUser13Mask,
  401.     collectionUser14Mask        = kCollectionUser14Mask,
  402.     collectionUser15Mask        = kCollectionUser15Mask,
  403.     collectionReserved0Mask     = kCollectionReserved0Mask,
  404.     collectionReserved1Mask     = kCollectionReserved1Mask,
  405.     collectionReserved2Mask     = kCollectionReserved2Mask,
  406.     collectionReserved3Mask     = kCollectionReserved3Mask,
  407.     collectionReserved4Mask     = kCollectionReserved4Mask,
  408.     collectionReserved5Mask     = kCollectionReserved5Mask,
  409.     collectionReserved6Mask     = kCollectionReserved6Mask,
  410.     collectionReserved7Mask     = kCollectionReserved7Mask,
  411.     collectionReserved8Mask     = kCollectionReserved8Mask,
  412.     collectionReserved9Mask     = kCollectionReserved9Mask,
  413.     collectionReserved10Mask    = kCollectionReserved10Mask,
  414.     collectionReserved11Mask    = kCollectionReserved11Mask,
  415.     collectionReserved12Mask    = kCollectionReserved12Mask,
  416.     collectionReserved13Mask    = kCollectionReserved13Mask,
  417.     collectionPersistenceMask   = kCollectionPersistenceMask,
  418.     collectionLockMask          = kCollectionLockMask
  419. };
  420. #endif  /* OLDROUTINENAMES */
  421. #if PRAGMA_STRUCT_ALIGN
  422.     #pragma options align=reset
  423. #elif PRAGMA_STRUCT_PACKPUSH
  424.     #pragma pack(pop)
  425. #elif PRAGMA_STRUCT_PACK
  426.     #pragma pack()
  427. #endif
  428. #ifdef PRAGMA_IMPORT_OFF
  429. #pragma import off
  430. #elif PRAGMA_IMPORT
  431. #pragma import reset
  432. #endif
  433. #ifdef __cplusplus
  434. }
  435. #endif
  436. #endif /* __COLLECTIONS__ */