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

多媒体编程

开发平台:

Visual C++

  1. /*
  2.      File:       QuickTimeComponents.h
  3.  
  4.      Contains:   QuickTime Interfaces.
  5.  
  6.      Version:    Technology: QuickTime 6.0
  7.                  Release:    QuickTime 6.0.2
  8.  
  9.      Copyright:  (c) 1990-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 __QUICKTIMECOMPONENTS__
  18. #define __QUICKTIMECOMPONENTS__
  19. #ifndef __MACTYPES__
  20. #include "MacTypes.h"
  21. #endif
  22. #ifndef __MIXEDMODE__
  23. #include "MixedMode.h"
  24. #endif
  25. #ifndef __COMPONENTS__
  26. #include "Components.h"
  27. #endif
  28. #ifndef __IMAGECOMPRESSION__
  29. #include "ImageCompression.h"
  30. #endif
  31. #ifndef __MOVIES__
  32. #include "Movies.h"
  33. #endif
  34. #ifndef __QUICKDRAW__
  35. #include "Quickdraw.h"
  36. #endif
  37. #ifndef __VIDEO__
  38. #include "Video.h"
  39. #endif
  40. #ifndef __SOUND__
  41. #include "Sound.h"
  42. #endif
  43. #ifndef __QUICKTIMEMUSIC__
  44. #include "QuickTimeMusic.h"
  45. #endif
  46. #if PRAGMA_ONCE
  47. #pragma once
  48. #endif
  49. #ifdef __cplusplus
  50. extern "C" {
  51. #endif
  52. #if PRAGMA_IMPORT
  53. #pragma import on
  54. #endif
  55. #if PRAGMA_STRUCT_ALIGN
  56.     #pragma options align=mac68k
  57. #elif PRAGMA_STRUCT_PACKPUSH
  58.     #pragma pack(push, 2)
  59. #elif PRAGMA_STRUCT_PACK
  60.     #pragma pack(2)
  61. #endif
  62. enum {
  63.     clockComponentType          = FOUR_CHAR_CODE('clok'),
  64.     systemTickClock             = FOUR_CHAR_CODE('tick'),       /* subtype: 60ths since boot   */
  65.     systemSecondClock           = FOUR_CHAR_CODE('seco'),       /* subtype: seconds since 1904       */
  66.     systemMillisecondClock      = FOUR_CHAR_CODE('mill'),       /* subtype: 1000ths since boot       */
  67.     systemMicrosecondClock      = FOUR_CHAR_CODE('micr')        /* subtype: 1000000ths since boot */
  68. };
  69. enum {
  70.     kClockRateIsLinear          = 1,
  71.     kClockImplementsCallBacks   = 2,
  72.     kClockCanHandleIntermittentSound = 4                        /* sound clocks only */
  73. };
  74. #if OLDROUTINENAMES
  75. #define GetClockTime(aClock, out) ClockGetTime(aClock, out)
  76. #endif
  77. /** These are Clock procedures **/
  78. EXTERN_API( ComponentResult )
  79. ClockGetTime                    (ComponentInstance      aClock,
  80.                                  TimeRecord *           out)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0001, 0x7000, 0xA82A);
  81. EXTERN_API( QTCallBack )
  82. ClockNewCallBack                (ComponentInstance      aClock,
  83.                                  TimeBase               tb,
  84.                                  short                  callBackType)                       FIVEWORDINLINE(0x2F3C, 0x0006, 0x0002, 0x7000, 0xA82A);
  85. EXTERN_API( ComponentResult )
  86. ClockDisposeCallBack            (ComponentInstance      aClock,
  87.                                  QTCallBack             cb)                                 FIVEWORDINLINE(0x2F3C, 0x0004, 0x0003, 0x7000, 0xA82A);
  88. EXTERN_API( ComponentResult )
  89. ClockCallMeWhen                 (ComponentInstance      aClock,
  90.                                  QTCallBack             cb,
  91.                                  long                   param1,
  92.                                  long                   param2,
  93.                                  long                   param3)                             FIVEWORDINLINE(0x2F3C, 0x0010, 0x0004, 0x7000, 0xA82A);
  94. EXTERN_API( ComponentResult )
  95. ClockCancelCallBack             (ComponentInstance      aClock,
  96.                                  QTCallBack             cb)                                 FIVEWORDINLINE(0x2F3C, 0x0004, 0x0005, 0x7000, 0xA82A);
  97. EXTERN_API( ComponentResult )
  98. ClockRateChanged                (ComponentInstance      aClock,
  99.                                  QTCallBack             cb)                                 FIVEWORDINLINE(0x2F3C, 0x0004, 0x0006, 0x7000, 0xA82A);
  100. EXTERN_API( ComponentResult )
  101. ClockTimeChanged                (ComponentInstance      aClock,
  102.                                  QTCallBack             cb)                                 FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  103. EXTERN_API( ComponentResult )
  104. ClockSetTimeBase                (ComponentInstance      aClock,
  105.                                  TimeBase               tb)                                 FIVEWORDINLINE(0x2F3C, 0x0004, 0x0008, 0x7000, 0xA82A);
  106. EXTERN_API( ComponentResult )
  107. ClockStartStopChanged           (ComponentInstance      aClock,
  108.                                  QTCallBack             cb,
  109.                                  Boolean                startChanged,
  110.                                  Boolean                stopChanged)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A);
  111. EXTERN_API( ComponentResult )
  112. ClockGetRate                    (ComponentInstance      aClock,
  113.                                  Fixed *                rate)                               FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A);
  114. enum {
  115.     StandardCompressionType     = FOUR_CHAR_CODE('scdi'),
  116.     StandardCompressionSubType  = FOUR_CHAR_CODE('imag'),
  117.     StandardCompressionSubTypeSound = FOUR_CHAR_CODE('soun')
  118. };
  119. typedef CALLBACK_API( Boolean , SCModalFilterProcPtr )(DialogRef theDialog, EventRecord *theEvent, short *itemHit, long refcon);
  120. typedef CALLBACK_API( short , SCModalHookProcPtr )(DialogRef theDialog, short itemHit, void *params, long refcon);
  121. typedef STACK_UPP_TYPE(SCModalFilterProcPtr)                    SCModalFilterUPP;
  122. typedef STACK_UPP_TYPE(SCModalHookProcPtr)                      SCModalHookUPP;
  123. /*  Preference flags.*/
  124. enum {
  125.     scListEveryCodec            = 1L << 1,
  126.     scAllowZeroFrameRate        = 1L << 2,
  127.     scAllowZeroKeyFrameRate     = 1L << 3,
  128.     scShowBestDepth             = 1L << 4,
  129.     scUseMovableModal           = 1L << 5,
  130.     scDisableFrameRateItem      = 1L << 6,
  131.     scShowDataRateAsKilobits    = 1L << 7
  132. };
  133. /*  Possible test flags for setting test image.*/
  134. enum {
  135.     scPreferCropping            = 1 << 0,
  136.     scPreferScaling             = 1 << 1,
  137.     scPreferScalingAndCropping  = scPreferScaling | scPreferCropping,
  138.     scDontDetermineSettingsFromTestImage = 1 << 2
  139. };
  140. /*  Dimensions of the image preview box.*/
  141. enum {
  142.     scTestImageWidth            = 80,
  143.     scTestImageHeight           = 80
  144. };
  145. /*  Possible items returned by hookProc.*/
  146. enum {
  147.     scOKItem                    = 1,
  148.     scCancelItem                = 2,
  149.     scCustomItem                = 3
  150. };
  151. /*  Result returned when user cancelled.*/
  152. enum {
  153.     scUserCancelled             = 1
  154. };
  155. /* Component selectors*/
  156. enum {
  157.     scPositionRect              = 2,
  158.     scPositionDialog            = 3,
  159.     scSetTestImagePictHandle    = 4,
  160.     scSetTestImagePictFile      = 5,
  161.     scSetTestImagePixMap        = 6,
  162.     scGetBestDeviceRect         = 7,
  163.     scRequestImageSettings      = 10,
  164.     scCompressImage             = 11,
  165.     scCompressPicture           = 12,
  166.     scCompressPictureFile       = 13,
  167.     scRequestSequenceSettings   = 14,
  168.     scCompressSequenceBegin     = 15,
  169.     scCompressSequenceFrame     = 16,
  170.     scCompressSequenceEnd       = 17,
  171.     scDefaultPictHandleSettings = 18,
  172.     scDefaultPictFileSettings   = 19,
  173.     scDefaultPixMapSettings     = 20,
  174.     scGetInfo                   = 21,
  175.     scSetInfo                   = 22,
  176.     scNewGWorld                 = 23
  177. };
  178. /*  Get/SetInfo structures.*/
  179. struct SCSpatialSettings {
  180.     CodecType                       codecType;
  181.     CodecComponent                  codec;
  182.     short                           depth;
  183.     CodecQ                          spatialQuality;
  184. };
  185. typedef struct SCSpatialSettings        SCSpatialSettings;
  186. struct SCTemporalSettings {
  187.     CodecQ                          temporalQuality;
  188.     Fixed                           frameRate;
  189.     long                            keyFrameRate;
  190. };
  191. typedef struct SCTemporalSettings       SCTemporalSettings;
  192. struct SCDataRateSettings {
  193.     long                            dataRate;
  194.     long                            frameDuration;
  195.     CodecQ                          minSpatialQuality;
  196.     CodecQ                          minTemporalQuality;
  197. };
  198. typedef struct SCDataRateSettings       SCDataRateSettings;
  199. struct SCExtendedProcs {
  200.     SCModalFilterUPP                filterProc;
  201.     SCModalHookUPP                  hookProc;
  202.     long                            refcon;
  203.     Str31                           customName;
  204. };
  205. typedef struct SCExtendedProcs          SCExtendedProcs;
  206. /*  Get/SetInfo selectors*/
  207. enum {
  208.     scSpatialSettingsType       = FOUR_CHAR_CODE('sptl'),       /* pointer to SCSpatialSettings struct*/
  209.     scTemporalSettingsType      = FOUR_CHAR_CODE('tprl'),       /* pointer to SCTemporalSettings struct*/
  210.     scDataRateSettingsType      = FOUR_CHAR_CODE('drat'),       /* pointer to SCDataRateSettings struct*/
  211.     scColorTableType            = FOUR_CHAR_CODE('clut'),       /* pointer to CTabHandle*/
  212.     scProgressProcType          = FOUR_CHAR_CODE('prog'),       /* pointer to ProgressRecord struct*/
  213.     scExtendedProcsType         = FOUR_CHAR_CODE('xprc'),       /* pointer to SCExtendedProcs struct*/
  214.     scPreferenceFlagsType       = FOUR_CHAR_CODE('pref'),       /* pointer to long*/
  215.     scSettingsStateType         = FOUR_CHAR_CODE('ssta'),       /* pointer to Handle*/
  216.     scSequenceIDType            = FOUR_CHAR_CODE('sequ'),       /* pointer to ImageSequence*/
  217.     scWindowPositionType        = FOUR_CHAR_CODE('wndw'),       /* pointer to Point*/
  218.     scCodecFlagsType            = FOUR_CHAR_CODE('cflg'),       /* pointer to CodecFlags*/
  219.     scCodecSettingsType         = FOUR_CHAR_CODE('cdec'),       /* pointer to Handle*/
  220.     scForceKeyValueType         = FOUR_CHAR_CODE('ksim'),       /* pointer to long*/
  221.     scSoundSampleRateType       = FOUR_CHAR_CODE('ssrt'),       /* pointer to UnsignedFixed*/
  222.     scSoundSampleSizeType       = FOUR_CHAR_CODE('ssss'),       /* pointer to short*/
  223.     scSoundChannelCountType     = FOUR_CHAR_CODE('sscc'),       /* pointer to short*/
  224.     scSoundCompressionType      = FOUR_CHAR_CODE('ssct'),       /* pointer to OSType*/
  225.     scCompressionListType       = FOUR_CHAR_CODE('ctyl'),       /* pointer to OSType Handle*/
  226.     scCodecManufacturerType     = FOUR_CHAR_CODE('cmfr'),       /* pointer to OSType*/
  227.     scSoundVBRCompressionOK     = FOUR_CHAR_CODE('cvbr'),       /* pointer to Boolean*/
  228.     scSoundInputSampleRateType  = FOUR_CHAR_CODE('ssir'),       /* pointer to UnsignedFixed*/
  229.     scSoundSampleRateChangeOK   = FOUR_CHAR_CODE('rcok'),       /* pointer to Boolean*/
  230.     scAvailableCompressionListType = FOUR_CHAR_CODE('avai')     /* pointer to OSType Handle*/
  231. };
  232. /*  scTypeNotFoundErr returned by Get/SetInfo when type cannot be found.*/
  233. struct SCParams {
  234.     long                            flags;
  235.     CodecType                       theCodecType;
  236.     CodecComponent                  theCodec;
  237.     CodecQ                          spatialQuality;
  238.     CodecQ                          temporalQuality;
  239.     short                           depth;
  240.     Fixed                           frameRate;
  241.     long                            keyFrameRate;
  242.     long                            reserved1;
  243.     long                            reserved2;
  244. };
  245. typedef struct SCParams                 SCParams;
  246. enum {
  247.     scGetCompression            = 1,
  248.     scShowMotionSettings        = 1L << 0,
  249.     scSettingsChangedItem       = -1
  250. };
  251. enum {
  252.     scCompressFlagIgnoreIdenticalFrames = 1
  253. };
  254. /* QTAtomTypes for atoms found in settings atom containers*/
  255. enum {
  256.     kQTSettingsVideo            = FOUR_CHAR_CODE('vide'),       /* Container for video/image compression related atoms (Get/SetInfo selectors)*/
  257.     kQTSettingsSound            = FOUR_CHAR_CODE('soun'),       /* Container for sound compression related atoms (Get/SetInfo selectors)*/
  258.     kQTSettingsComponentVersion = FOUR_CHAR_CODE('vers')        /* . Version of component that wrote settings (QTSettingsVersionAtomRecord)*/
  259. };
  260. /* Format of 'vers' atom found in settings atom containers*/
  261. struct QTSettingsVersionAtomRecord {
  262.     long                            componentVersion;           /* standard compression component version*/
  263.     short                           flags;                      /* low bit is 1 if little endian platform, 0 if big endian platform*/
  264.     short                           reserved;                   /* should be 0*/
  265. };
  266. typedef struct QTSettingsVersionAtomRecord QTSettingsVersionAtomRecord;
  267. #define SCGetCompression(ci, params, where) SCGetCompressionExtended(ci,params,where,0,0,0,0)
  268. /** These are Progress procedures **/
  269. EXTERN_API( ComponentResult )
  270. SCGetCompressionExtended        (ComponentInstance      ci,
  271.                                  SCParams *             params,
  272.                                  Point                  where,
  273.                                  SCModalFilterUPP       filterProc,
  274.                                  SCModalHookUPP         hookProc,
  275.                                  long                   refcon,
  276.                                  StringPtr              customName)                         FIVEWORDINLINE(0x2F3C, 0x0018, 0x0001, 0x7000, 0xA82A);
  277. EXTERN_API( ComponentResult )
  278. SCPositionRect                  (ComponentInstance      ci,
  279.                                  Rect *                 rp,
  280.                                  Point *                where)                              FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A);
  281. EXTERN_API( ComponentResult )
  282. SCPositionDialog                (ComponentInstance      ci,
  283.                                  short                  id,
  284.                                  Point *                where)                              FIVEWORDINLINE(0x2F3C, 0x0006, 0x0003, 0x7000, 0xA82A);
  285. EXTERN_API( ComponentResult )
  286. SCSetTestImagePictHandle        (ComponentInstance      ci,
  287.                                  PicHandle              testPict,
  288.                                  Rect *                 testRect,
  289.                                  short                  testFlags)                          FIVEWORDINLINE(0x2F3C, 0x000A, 0x0004, 0x7000, 0xA82A);
  290. EXTERN_API( ComponentResult )
  291. SCSetTestImagePictFile          (ComponentInstance      ci,
  292.                                  short                  testFileRef,
  293.                                  Rect *                 testRect,
  294.                                  short                  testFlags)                          FIVEWORDINLINE(0x2F3C, 0x0008, 0x0005, 0x7000, 0xA82A);
  295. EXTERN_API( ComponentResult )
  296. SCSetTestImagePixMap            (ComponentInstance      ci,
  297.                                  PixMapHandle           testPixMap,
  298.                                  Rect *                 testRect,
  299.                                  short                  testFlags)                          FIVEWORDINLINE(0x2F3C, 0x000A, 0x0006, 0x7000, 0xA82A);
  300. EXTERN_API( ComponentResult )
  301. SCGetBestDeviceRect             (ComponentInstance      ci,
  302.                                  Rect *                 r)                                  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  303. EXTERN_API( ComponentResult )
  304. SCRequestImageSettings          (ComponentInstance      ci)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x000A, 0x7000, 0xA82A);
  305. EXTERN_API( ComponentResult )
  306. SCCompressImage                 (ComponentInstance      ci,
  307.                                  PixMapHandle           src,
  308.                                  const Rect *           srcRect,
  309.                                  ImageDescriptionHandle * desc,
  310.                                  Handle *               data)                               FIVEWORDINLINE(0x2F3C, 0x0010, 0x000B, 0x7000, 0xA82A);
  311. EXTERN_API( ComponentResult )
  312. SCCompressPicture               (ComponentInstance      ci,
  313.                                  PicHandle              srcPicture,
  314.                                  PicHandle              dstPicture)                         FIVEWORDINLINE(0x2F3C, 0x0008, 0x000C, 0x7000, 0xA82A);
  315. EXTERN_API( ComponentResult )
  316. SCCompressPictureFile           (ComponentInstance      ci,
  317.                                  short                  srcRefNum,
  318.                                  short                  dstRefNum)                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
  319. EXTERN_API( ComponentResult )
  320. SCRequestSequenceSettings       (ComponentInstance      ci)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x000E, 0x7000, 0xA82A);
  321. EXTERN_API( ComponentResult )
  322. SCCompressSequenceBegin         (ComponentInstance      ci,
  323.                                  PixMapHandle           src,
  324.                                  const Rect *           srcRect,
  325.                                  ImageDescriptionHandle * desc)                             FIVEWORDINLINE(0x2F3C, 0x000C, 0x000F, 0x7000, 0xA82A);
  326. EXTERN_API( ComponentResult )
  327. SCCompressSequenceFrame         (ComponentInstance      ci,
  328.                                  PixMapHandle           src,
  329.                                  const Rect *           srcRect,
  330.                                  Handle *               data,
  331.                                  long *                 dataSize,
  332.                                  short *                notSyncFlag)                        FIVEWORDINLINE(0x2F3C, 0x0014, 0x0010, 0x7000, 0xA82A);
  333. EXTERN_API( ComponentResult )
  334. SCCompressSequenceEnd           (ComponentInstance      ci)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0011, 0x7000, 0xA82A);
  335. EXTERN_API( ComponentResult )
  336. SCDefaultPictHandleSettings     (ComponentInstance      ci,
  337.                                  PicHandle              srcPicture,
  338.                                  short                  motion)                             FIVEWORDINLINE(0x2F3C, 0x0006, 0x0012, 0x7000, 0xA82A);
  339. EXTERN_API( ComponentResult )
  340. SCDefaultPictFileSettings       (ComponentInstance      ci,
  341.                                  short                  srcRef,
  342.                                  short                  motion)                             FIVEWORDINLINE(0x2F3C, 0x0004, 0x0013, 0x7000, 0xA82A);
  343. EXTERN_API( ComponentResult )
  344. SCDefaultPixMapSettings         (ComponentInstance      ci,
  345.                                  PixMapHandle           src,
  346.                                  short                  motion)                             FIVEWORDINLINE(0x2F3C, 0x0006, 0x0014, 0x7000, 0xA82A);
  347. EXTERN_API( ComponentResult )
  348. SCGetInfo                       (ComponentInstance      ci,
  349.                                  OSType                 infoType,
  350.                                  void *                 info)                               FIVEWORDINLINE(0x2F3C, 0x0008, 0x0015, 0x7000, 0xA82A);
  351. EXTERN_API( ComponentResult )
  352. SCSetInfo                       (ComponentInstance      ci,
  353.                                  OSType                 infoType,
  354.                                  void *                 info)                               FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A);
  355. EXTERN_API( ComponentResult )
  356. SCNewGWorld                     (ComponentInstance      ci,
  357.                                  GWorldPtr *            gwp,
  358.                                  Rect *                 rp,
  359.                                  GWorldFlags            flags)                              FIVEWORDINLINE(0x2F3C, 0x000C, 0x0017, 0x7000, 0xA82A);
  360. EXTERN_API( ComponentResult )
  361. SCSetCompressFlags              (ComponentInstance      ci,
  362.                                  long                   flags)                              FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  363. EXTERN_API( ComponentResult )
  364. SCGetCompressFlags              (ComponentInstance      ci,
  365.                                  long *                 flags)                              FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  366. EXTERN_API( ComponentResult )
  367. SCGetSettingsAsText             (ComponentInstance      ci,
  368.                                  Handle *               text)                               FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A);
  369. EXTERN_API( ComponentResult )
  370. SCGetSettingsAsAtomContainer    (ComponentInstance      ci,
  371.                                  QTAtomContainer *      settings)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  372. EXTERN_API( ComponentResult )
  373. SCSetSettingsFromAtomContainer  (ComponentInstance      ci,
  374.                                  QTAtomContainer        settings)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x001C, 0x7000, 0xA82A);
  375. /* Note: if you're using SCCompressSequenceFrameAsync with a scForceKeyValue setting, you must call SCAsyncIdle occasionally at main task time. */
  376. EXTERN_API( ComponentResult )
  377. SCCompressSequenceFrameAsync    (ComponentInstance      ci,
  378.                                  PixMapHandle           src,
  379.                                  const Rect *           srcRect,
  380.                                  Handle *               data,
  381.                                  long *                 dataSize,
  382.                                  short *                notSyncFlag,
  383.                                  ICMCompletionProcRecordPtr  asyncCompletionProc)           FIVEWORDINLINE(0x2F3C, 0x0018, 0x001D, 0x7000, 0xA82A);
  384. EXTERN_API( ComponentResult )
  385. SCAsyncIdle                     (ComponentInstance      ci)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x001E, 0x7000, 0xA82A);
  386. enum {
  387.     TweenComponentType          = FOUR_CHAR_CODE('twen')
  388. };
  389. typedef ComponentInstance               TweenerComponent;
  390. EXTERN_API( ComponentResult )
  391. TweenerInitialize               (TweenerComponent       tc,
  392.                                  QTAtomContainer        container,
  393.                                  QTAtom                 tweenAtom,
  394.                                  QTAtom                 dataAtom)                           FIVEWORDINLINE(0x2F3C, 0x000C, 0x0001, 0x7000, 0xA82A);
  395. EXTERN_API( ComponentResult )
  396. TweenerDoTween                  (TweenerComponent       tc,
  397.                                  TweenRecord *          tr)                                 FIVEWORDINLINE(0x2F3C, 0x0004, 0x0002, 0x7000, 0xA82A);
  398. EXTERN_API( ComponentResult )
  399. TweenerReset                    (TweenerComponent       tc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0003, 0x7000, 0xA82A);
  400. enum {
  401.     TCSourceRefNameType         = FOUR_CHAR_CODE('name')
  402. };
  403. enum {
  404.     tcDropFrame                 = 1 << 0,
  405.     tc24HourMax                 = 1 << 1,
  406.     tcNegTimesOK                = 1 << 2,
  407.     tcCounter                   = 1 << 3
  408. };
  409. struct TimeCodeDef {
  410.     long                            flags;                      /* drop-frame, etc.*/
  411.     TimeScale                       fTimeScale;                 /* time scale of frameDuration (eg. 2997)*/
  412.     TimeValue                       frameDuration;              /* duration of each frame (eg. 100)*/
  413.     UInt8                           numFrames;                  /* frames/sec for timecode (eg. 30) OR frames/tick for counter mode*/
  414.     UInt8                           padding;                    /* unused padding byte*/
  415. };
  416. typedef struct TimeCodeDef              TimeCodeDef;
  417. enum {
  418.     tctNegFlag                  = 0x80                          /* negative bit is in minutes*/
  419. };
  420. struct TimeCodeTime {
  421.     UInt8                           hours;
  422.     UInt8                           minutes;
  423.     UInt8                           seconds;
  424.     UInt8                           frames;
  425. };
  426. typedef struct TimeCodeTime             TimeCodeTime;
  427. struct TimeCodeCounter {
  428.     long                            counter;
  429. };
  430. typedef struct TimeCodeCounter          TimeCodeCounter;
  431. union TimeCodeRecord {
  432.     TimeCodeTime                    t;
  433.     TimeCodeCounter                 c;
  434. };
  435. typedef union TimeCodeRecord            TimeCodeRecord;
  436. struct TimeCodeDescription {
  437.     long                            descSize;                   /* standard sample description header*/
  438.     long                            dataFormat;
  439.     long                            resvd1;
  440.     short                           resvd2;
  441.     short                           dataRefIndex;
  442.     long                            flags;                      /* timecode specific stuff*/
  443.     TimeCodeDef                     timeCodeDef;
  444.     long                            srcRef[1];
  445. };
  446. typedef struct TimeCodeDescription      TimeCodeDescription;
  447. typedef TimeCodeDescription *           TimeCodeDescriptionPtr;
  448. typedef TimeCodeDescriptionPtr *        TimeCodeDescriptionHandle;
  449. enum {
  450.     tcdfShowTimeCode            = 1 << 0
  451. };
  452. struct TCTextOptions {
  453.     short                           txFont;
  454.     short                           txFace;
  455.     short                           txSize;
  456.     short                           pad;                        /* let's make it longword aligned - thanks.. */
  457.     RGBColor                        foreColor;
  458.     RGBColor                        backColor;
  459. };
  460. typedef struct TCTextOptions            TCTextOptions;
  461. typedef TCTextOptions *                 TCTextOptionsPtr;
  462. EXTERN_API( HandlerError )
  463. TCGetCurrentTimeCode            (MediaHandler           mh,
  464.                                  long *                 frameNum,
  465.                                  TimeCodeDef *          tcdef,
  466.                                  TimeCodeRecord *       tcrec,
  467.                                  UserData *             srcRefH)                            FIVEWORDINLINE(0x2F3C, 0x0010, 0x0101, 0x7000, 0xA82A);
  468. EXTERN_API( HandlerError )
  469. TCGetTimeCodeAtTime             (MediaHandler           mh,
  470.                                  TimeValue              mediaTime,
  471.                                  long *                 frameNum,
  472.                                  TimeCodeDef *          tcdef,
  473.                                  TimeCodeRecord *       tcdata,
  474.                                  UserData *             srcRefH)                            FIVEWORDINLINE(0x2F3C, 0x0014, 0x0102, 0x7000, 0xA82A);
  475. EXTERN_API( HandlerError )
  476. TCTimeCodeToString              (MediaHandler           mh,
  477.                                  TimeCodeDef *          tcdef,
  478.                                  TimeCodeRecord *       tcrec,
  479.                                  StringPtr              tcStr)                              FIVEWORDINLINE(0x2F3C, 0x000C, 0x0103, 0x7000, 0xA82A);
  480. EXTERN_API( HandlerError )
  481. TCTimeCodeToFrameNumber         (MediaHandler           mh,
  482.                                  TimeCodeDef *          tcdef,
  483.                                  TimeCodeRecord *       tcrec,
  484.                                  long *                 frameNumber)                        FIVEWORDINLINE(0x2F3C, 0x000C, 0x0104, 0x7000, 0xA82A);
  485. EXTERN_API( HandlerError )
  486. TCFrameNumberToTimeCode         (MediaHandler           mh,
  487.                                  long                   frameNumber,
  488.                                  TimeCodeDef *          tcdef,
  489.                                  TimeCodeRecord *       tcrec)                              FIVEWORDINLINE(0x2F3C, 0x000C, 0x0105, 0x7000, 0xA82A);
  490. EXTERN_API( HandlerError )
  491. TCGetSourceRef                  (MediaHandler           mh,
  492.                                  TimeCodeDescriptionHandle  tcdH,
  493.                                  UserData *             srefH)                              FIVEWORDINLINE(0x2F3C, 0x0008, 0x0106, 0x7000, 0xA82A);
  494. EXTERN_API( HandlerError )
  495. TCSetSourceRef                  (MediaHandler           mh,
  496.                                  TimeCodeDescriptionHandle  tcdH,
  497.                                  UserData               srefH)                              FIVEWORDINLINE(0x2F3C, 0x0008, 0x0107, 0x7000, 0xA82A);
  498. EXTERN_API( HandlerError )
  499. TCSetTimeCodeFlags              (MediaHandler           mh,
  500.                                  long                   flags,
  501.                                  long                   flagsMask)                          FIVEWORDINLINE(0x2F3C, 0x0008, 0x0108, 0x7000, 0xA82A);
  502. EXTERN_API( HandlerError )
  503. TCGetTimeCodeFlags              (MediaHandler           mh,
  504.                                  long *                 flags)                              FIVEWORDINLINE(0x2F3C, 0x0004, 0x0109, 0x7000, 0xA82A);
  505. EXTERN_API( HandlerError )
  506. TCSetDisplayOptions             (MediaHandler           mh,
  507.                                  TCTextOptionsPtr       textOptions)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x010A, 0x7000, 0xA82A);
  508. EXTERN_API( HandlerError )
  509. TCGetDisplayOptions             (MediaHandler           mh,
  510.                                  TCTextOptionsPtr       textOptions)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x010B, 0x7000, 0xA82A);
  511. typedef ComponentInstance               MovieImportComponent;
  512. typedef ComponentInstance               MovieExportComponent;
  513. enum {
  514.     MovieImportType             = FOUR_CHAR_CODE('eat '),
  515.     MovieExportType             = FOUR_CHAR_CODE('spit')
  516. };
  517. enum {
  518.     canMovieImportHandles       = 1 << 0,
  519.     canMovieImportFiles         = 1 << 1,
  520.     hasMovieImportUserInterface = 1 << 2,
  521.     canMovieExportHandles       = 1 << 3,
  522.     canMovieExportFiles         = 1 << 4,
  523.     hasMovieExportUserInterface = 1 << 5,
  524.     movieImporterIsXMLBased     = 1 << 5,
  525.     dontAutoFileMovieImport     = 1 << 6,
  526.     canMovieExportAuxDataHandle = 1 << 7,
  527.     canMovieImportValidateHandles = 1 << 8,
  528.     canMovieImportValidateFile  = 1 << 9,
  529.     dontRegisterWithEasyOpen    = 1 << 10,
  530.     canMovieImportInPlace       = 1 << 11,
  531.     movieImportSubTypeIsFileExtension = 1 << 12,
  532.     canMovieImportPartial       = 1 << 13,
  533.     hasMovieImportMIMEList      = 1 << 14,
  534.     canMovieImportAvoidBlocking = 1 << 15,
  535.     canMovieExportFromProcedures = 1 << 15,
  536.     canMovieExportValidateMovie = 1L << 16,
  537.     movieImportMustGetDestinationMediaType = 1L << 16,
  538.     movieExportNeedsResourceFork = 1L << 17,
  539.     canMovieImportDataReferences = 1L << 18,
  540.     movieExportMustGetSourceMediaType = 1L << 19,
  541.     canMovieImportWithIdle      = 1L << 20,
  542.     canMovieImportValidateDataReferences = 1L << 21,
  543.     reservedForUseByGraphicsImporters = 1L << 23
  544. };
  545. enum {
  546.     movieImportCreateTrack      = 1,
  547.     movieImportInParallel       = 2,
  548.     movieImportMustUseTrack     = 4,
  549.     movieImportWithIdle         = 16
  550. };
  551. enum {
  552.     movieImportResultUsedMultipleTracks = 8,
  553.     movieImportResultNeedIdles  = 32,
  554.     movieImportResultComplete   = 64
  555. };
  556. enum {
  557.     kMovieExportTextOnly        = 0,
  558.     kMovieExportAbsoluteTime    = 1,
  559.     kMovieExportRelativeTime    = 2
  560. };
  561. enum {
  562.     kMIDIImportSilenceBefore    = 1 << 0,
  563.     kMIDIImportSilenceAfter     = 1 << 1,
  564.     kMIDIImport20Playable       = 1 << 2,
  565.     kMIDIImportWantLyrics       = 1 << 3
  566. };
  567. enum {
  568.     kQTMediaConfigResourceType  = FOUR_CHAR_CODE('mcfg'),
  569.     kQTMediaConfigResourceVersion = 2,
  570.     kQTMediaGroupResourceType   = FOUR_CHAR_CODE('mgrp'),
  571.     kQTMediaGroupResourceVersion = 1,
  572.     kQTBrowserInfoResourceType  = FOUR_CHAR_CODE('brws'),
  573.     kQTBrowserInfoResourceVersion = 1
  574. };
  575. enum {
  576.     kQTMediaMIMEInfoHasChanged  = (1L << 1),                    /* the MIME type(s) is(are) new or has changed since the last time */
  577.                                                                 /*  someone asked about it */
  578.     kQTMediaFileInfoHasChanged  = (1L << 2),                    /* the file extension(s) is(are) new or has changed since the last time */
  579.                                                                 /*  anyone asked about it */
  580.     kQTMediaConfigCanUseApp     = (1L << 18),                   /* this MIME type can be configured to use app */
  581.     kQTMediaConfigCanUsePlugin  = (1L << 19),                   /* this MIME type can be configured to use plug-in */
  582.     kQTMediaConfigUNUSED        = (1L << 20),                   /* currently unused */
  583.     kQTMediaConfigBinaryFile    = (1L << 23),                   /* file should be transfered in binary mode */
  584.     kQTMediaConfigTextFile      = 0,                            /* not a bit, defined for clarity */
  585.     kQTMediaConfigMacintoshFile = (1L << 24),                   /* file's resource fork is significant */
  586.     kQTMediaConfigAssociateByDefault = (1L << 27),              /* take this file association by default */
  587.     kQTMediaConfigUseAppByDefault = (1L << 28),                 /* use the app by default for this MIME type */
  588.     kQTMediaConfigUsePluginByDefault = (1L << 29),              /* use the plug-in by default for this MIME type */
  589.     kQTMediaConfigDefaultsMask  = (kQTMediaConfigUseAppByDefault | kQTMediaConfigUsePluginByDefault),
  590.     kQTMediaConfigDefaultsShift = 12,                           /* ((flags & kQTMediaConfigDefaultsMask) >> kQTMediaConfigDefaultsShift) to get default setting */
  591.     kQTMediaConfigHasFileHasQTAtoms = (1L << 30)                /* the file has a "QuickTime like" file format */
  592. };
  593. /* mime type group constants for groupID field of 'mcfg' resource*/
  594. enum {
  595.     kQTMediaConfigStreamGroupID = FOUR_CHAR_CODE('strm'),
  596.     kQTMediaConfigInteractiveGroupID = FOUR_CHAR_CODE('intr'),
  597.     kQTMediaConfigVideoGroupID  = FOUR_CHAR_CODE('eyes'),
  598.     kQTMediaConfigAudioGroupID  = FOUR_CHAR_CODE('ears'),
  599.     kQTMediaConfigMPEGGroupID   = FOUR_CHAR_CODE('mpeg'),
  600.     kQTMediaConfigMP3GroupID    = FOUR_CHAR_CODE('mp3 '),
  601.     kQTMediaConfigImageGroupID  = FOUR_CHAR_CODE('ogle'),
  602.     kQTMediaConfigMiscGroupID   = FOUR_CHAR_CODE('misc')
  603. };
  604. /* file type group constants for groupID field of 'mcfg' resource*/
  605. enum {
  606.     kQTMediaInfoNetGroup        = FOUR_CHAR_CODE('net '),
  607.     kQTMediaInfoWinGroup        = FOUR_CHAR_CODE('win '),
  608.     kQTMediaInfoMacGroup        = FOUR_CHAR_CODE('mac '),
  609.     kQTMediaInfoMiscGroup       = 0x3F3F3F3F                    /* '????'*/
  610. };
  611. enum {
  612.     kMimeInfoMimeTypeTag        = FOUR_CHAR_CODE('mime'),
  613.     kMimeInfoFileExtensionTag   = FOUR_CHAR_CODE('ext '),
  614.     kMimeInfoDescriptionTag     = FOUR_CHAR_CODE('desc'),
  615.     kMimeInfoGroupTag           = FOUR_CHAR_CODE('grop'),
  616.     kMimeInfoDoNotOverrideExistingFileTypeAssociation = FOUR_CHAR_CODE('nofa')
  617. };
  618. enum {
  619.     kQTFileTypeAIFF             = FOUR_CHAR_CODE('AIFF'),
  620.     kQTFileTypeAIFC             = FOUR_CHAR_CODE('AIFC'),
  621.     kQTFileTypeDVC              = FOUR_CHAR_CODE('dvc!'),
  622.     kQTFileTypeMIDI             = FOUR_CHAR_CODE('Midi'),
  623.     kQTFileTypePicture          = FOUR_CHAR_CODE('PICT'),
  624.     kQTFileTypeMovie            = FOUR_CHAR_CODE('MooV'),
  625.     kQTFileTypeText             = FOUR_CHAR_CODE('TEXT'),
  626.     kQTFileTypeWave             = FOUR_CHAR_CODE('WAVE'),
  627.     kQTFileTypeSystemSevenSound = FOUR_CHAR_CODE('sfil'),
  628.     kQTFileTypeMuLaw            = FOUR_CHAR_CODE('ULAW'),
  629.     kQTFileTypeAVI              = FOUR_CHAR_CODE('VfW '),
  630.     kQTFileTypeSoundDesignerII  = FOUR_CHAR_CODE('Sd2f'),
  631.     kQTFileTypeAudioCDTrack     = FOUR_CHAR_CODE('trak'),
  632.     kQTFileTypePICS             = FOUR_CHAR_CODE('PICS'),
  633.     kQTFileTypeGIF              = FOUR_CHAR_CODE('GIFf'),
  634.     kQTFileTypePNG              = FOUR_CHAR_CODE('PNGf'),
  635.     kQTFileTypeTIFF             = FOUR_CHAR_CODE('TIFF'),
  636.     kQTFileTypePhotoShop        = FOUR_CHAR_CODE('8BPS'),
  637.     kQTFileTypeSGIImage         = FOUR_CHAR_CODE('.SGI'),
  638.     kQTFileTypeBMP              = FOUR_CHAR_CODE('BMPf'),
  639.     kQTFileTypeJPEG             = FOUR_CHAR_CODE('JPEG'),
  640.     kQTFileTypeJFIF             = FOUR_CHAR_CODE('JPEG'),
  641.     kQTFileTypeMacPaint         = FOUR_CHAR_CODE('PNTG'),
  642.     kQTFileTypeTargaImage       = FOUR_CHAR_CODE('TPIC'),
  643.     kQTFileTypeQuickDrawGXPicture = FOUR_CHAR_CODE('qdgx'),
  644.     kQTFileTypeQuickTimeImage   = FOUR_CHAR_CODE('qtif'),
  645.     kQTFileType3DMF             = FOUR_CHAR_CODE('3DMF'),
  646.     kQTFileTypeFLC              = FOUR_CHAR_CODE('FLC '),
  647.     kQTFileTypeFlash            = FOUR_CHAR_CODE('SWFL'),
  648.     kQTFileTypeFlashPix         = FOUR_CHAR_CODE('FPix'),
  649.     kQTFileTypeMP4              = FOUR_CHAR_CODE('mpg4')
  650. };
  651. /* QTAtomTypes for atoms in import/export settings containers*/
  652. enum {
  653.     kQTSettingsDVExportNTSC     = FOUR_CHAR_CODE('dvcv'),       /* True is export as NTSC, false is export as PAL. (Boolean)*/
  654.     kQTSettingsDVExportLockedAudio = FOUR_CHAR_CODE('lock'),    /* True if audio locked to video. (Boolean)*/
  655.     kQTSettingsEffect           = FOUR_CHAR_CODE('effe'),       /* Parent atom whose contents are atoms of an effects description*/
  656.     kQTSettingsGraphicsFileImportSequence = FOUR_CHAR_CODE('sequ'), /* Parent atom of graphic file movie import component*/
  657.     kQTSettingsGraphicsFileImportSequenceEnabled = FOUR_CHAR_CODE('enab'), /* . If true, import numbered image sequence (Boolean)*/
  658.     kQTSettingsMovieExportEnableVideo = FOUR_CHAR_CODE('envi'), /* Enable exporting of video track (Boolean)*/
  659.     kQTSettingsMovieExportEnableSound = FOUR_CHAR_CODE('enso'), /* Enable exporting of sound track (Boolean)*/
  660.     kQTSettingsMovieExportSaveOptions = FOUR_CHAR_CODE('save'), /* Parent atom of save options*/
  661.     kQTSettingsMovieExportSaveForInternet = FOUR_CHAR_CODE('fast'), /* . Save for Internet*/
  662.     kQTSettingsMovieExportSaveCompressedMovie = FOUR_CHAR_CODE('cmpm'), /* . Save compressed movie resource*/
  663.     kQTSettingsMIDI             = FOUR_CHAR_CODE('MIDI'),       /* MIDI import related container*/
  664.     kQTSettingsMIDISettingFlags = FOUR_CHAR_CODE('sttg'),       /* . MIDI import settings (UInt32)*/
  665.     kQTSettingsText             = FOUR_CHAR_CODE('text'),       /* Text related container*/
  666.     kQTSettingsTextDescription  = FOUR_CHAR_CODE('desc'),       /* . Text import settings (TextDescription record)*/
  667.     kQTSettingsTextSize         = FOUR_CHAR_CODE('size'),       /* . Width/height to create during import (FixedPoint)*/
  668.     kQTSettingsTextSettingFlags = FOUR_CHAR_CODE('sttg'),       /* . Text export settings (UInt32)*/
  669.     kQTSettingsTextTimeFraction = FOUR_CHAR_CODE('timf'),       /* . Movie time fraction for export (UInt32)*/
  670.     kQTSettingsTime             = FOUR_CHAR_CODE('time'),       /* Time related container*/
  671.     kQTSettingsTimeDuration     = FOUR_CHAR_CODE('dura'),       /* . Time related container*/
  672.     kQTSettingsAudioCDTrack     = FOUR_CHAR_CODE('trak'),       /* Audio CD track related container*/
  673.     kQTSettingsAudioCDTrackRateShift = FOUR_CHAR_CODE('rshf'),  /* . Rate shift to be performed (SInt16)*/
  674.     kQTSettingsDVExportDVFormat = FOUR_CHAR_CODE('dvcf')        /* Exported DV Format, DV('dv  ') or DVCPRO('dvp '). (OSType)*/
  675. };
  676. struct MovieExportGetDataParams {
  677.     long                            recordSize;
  678.     long                            trackID;
  679.     TimeScale                       sourceTimeScale;
  680.     TimeValue                       requestedTime;
  681.     TimeValue                       actualTime;
  682.     Ptr                             dataPtr;
  683.     long                            dataSize;
  684.     SampleDescriptionHandle         desc;
  685.     OSType                          descType;
  686.     long                            descSeed;
  687.     long                            requestedSampleCount;
  688.     long                            actualSampleCount;
  689.     TimeValue                       durationPerSample;
  690.     long                            sampleFlags;
  691. };
  692. typedef struct MovieExportGetDataParams MovieExportGetDataParams;
  693. typedef CALLBACK_API( OSErr , MovieExportGetDataProcPtr )(void *refCon, MovieExportGetDataParams *params);
  694. typedef CALLBACK_API( OSErr , MovieExportGetPropertyProcPtr )(void *refcon, long trackID, OSType propertyType, void *propertyValue);
  695. enum {
  696.     kQTPresetsListResourceType  = FOUR_CHAR_CODE('stg#'),
  697.     kQTPresetsPlatformListResourceType = FOUR_CHAR_CODE('stgp')
  698. };
  699. enum {
  700.     kQTPresetInfoIsDivider      = 1
  701. };
  702. struct QTPresetInfo {
  703.     OSType                          presetKey;                  /* unique key for this preset in presetsArray */
  704.     UInt32                          presetFlags;                /* flags about this preset */
  705.     OSType                          settingsResourceType;       /* resource type of settings resource */
  706.     SInt16                          settingsResourceID;         /* resource id of settings resource */
  707.     SInt16                          padding1;
  708.     SInt16                          nameStringListID;           /* name string list resource id */
  709.     SInt16                          nameStringIndex;            /* name string index */
  710.     SInt16                          infoStringListID;           /* info string list resource id */
  711.     SInt16                          infoStringIndex;            /* info string index */
  712. };
  713. typedef struct QTPresetInfo             QTPresetInfo;
  714. struct QTPresetListRecord {
  715.     UInt32                          flags;                      /* flags for whole list */
  716.     UInt32                          count;                      /* number of elements in presetsArray */
  717.     UInt32                          reserved;
  718.     QTPresetInfo                    presetsArray[1];            /* info about each preset */
  719. };
  720. typedef struct QTPresetListRecord       QTPresetListRecord;
  721. enum {
  722.     kQTMovieExportSourceInfoResourceType = FOUR_CHAR_CODE('src#'),
  723.     kQTMovieExportSourceInfoIsMediaType = 1L << 0,
  724.     kQTMovieExportSourceInfoIsMediaCharacteristic = 1L << 1,
  725.     kQTMovieExportSourceInfoIsSourceType = 1L << 2
  726. };
  727. struct QTMovieExportSourceInfo {
  728.     OSType                          mediaType;                  /* Media type of source */
  729.     UInt16                          minCount;                   /* min number of sources of this kind required, zero if none required */
  730.     UInt16                          maxCount;                   /* max number of sources of this kind allowed, -1 if unlimited allowed */
  731.     long                            flags;                      /* reserved for flags */
  732. };
  733. typedef struct QTMovieExportSourceInfo  QTMovieExportSourceInfo;
  734. struct QTMovieExportSourceRecord {
  735.     long                            count;
  736.     long                            reserved;
  737.     QTMovieExportSourceInfo         sourceArray[1];
  738. };
  739. typedef struct QTMovieExportSourceRecord QTMovieExportSourceRecord;
  740. typedef STACK_UPP_TYPE(MovieExportGetDataProcPtr)               MovieExportGetDataUPP;
  741. typedef STACK_UPP_TYPE(MovieExportGetPropertyProcPtr)           MovieExportGetPropertyUPP;
  742. #if OPAQUE_UPP_TYPES
  743.     EXTERN_API(SCModalFilterUPP)
  744.     NewSCModalFilterUPP            (SCModalFilterProcPtr    userRoutine);
  745.     EXTERN_API(SCModalHookUPP)
  746.     NewSCModalHookUPP              (SCModalHookProcPtr      userRoutine);
  747.     EXTERN_API(MovieExportGetDataUPP)
  748.     NewMovieExportGetDataUPP       (MovieExportGetDataProcPtr userRoutine);
  749.     EXTERN_API(MovieExportGetPropertyUPP)
  750.     NewMovieExportGetPropertyUPP    (MovieExportGetPropertyProcPtr userRoutine);
  751.     EXTERN_API(void)
  752.     DisposeSCModalFilterUPP        (SCModalFilterUPP        userUPP);
  753.     EXTERN_API(void)
  754.     DisposeSCModalHookUPP          (SCModalHookUPP          userUPP);
  755.     EXTERN_API(void)
  756.     DisposeMovieExportGetDataUPP    (MovieExportGetDataUPP  userUPP);
  757.     EXTERN_API(void)
  758.     DisposeMovieExportGetPropertyUPP    (MovieExportGetPropertyUPP userUPP);
  759.     EXTERN_API(Boolean)
  760.     InvokeSCModalFilterUPP         (DialogRef               theDialog,
  761.                                     EventRecord *           theEvent,
  762.                                     short *                 itemHit,
  763.                                     long                    refcon,
  764.                                     SCModalFilterUPP        userUPP);
  765.     EXTERN_API(short)
  766.     InvokeSCModalHookUPP           (DialogRef               theDialog,
  767.                                     short                   itemHit,
  768.                                     void *                  params,
  769.                                     long                    refcon,
  770.                                     SCModalHookUPP          userUPP);
  771.     EXTERN_API(OSErr)
  772.     InvokeMovieExportGetDataUPP    (void *                  refCon,
  773.                                     MovieExportGetDataParams * params,
  774.                                     MovieExportGetDataUPP   userUPP);
  775.     EXTERN_API(OSErr)
  776.     InvokeMovieExportGetPropertyUPP    (void *              refcon,
  777.                                     long                    trackID,
  778.                                     OSType                  propertyType,
  779.                                     void *                  propertyValue,
  780.                                     MovieExportGetPropertyUPP userUPP);
  781. #else
  782.     enum { uppSCModalFilterProcInfo = 0x00003FD0 };                 /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  783.     enum { uppSCModalHookProcInfo = 0x00003EE0 };                   /* pascal 2_bytes Func(4_bytes, 2_bytes, 4_bytes, 4_bytes) */
  784.     enum { uppMovieExportGetDataProcInfo = 0x000003E0 };            /* pascal 2_bytes Func(4_bytes, 4_bytes) */
  785.     enum { uppMovieExportGetPropertyProcInfo = 0x00003FE0 };        /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
  786.     #define NewSCModalFilterUPP(userRoutine)                        (SCModalFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSCModalFilterProcInfo, GetCurrentArchitecture())
  787.     #define NewSCModalHookUPP(userRoutine)                          (SCModalHookUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppSCModalHookProcInfo, GetCurrentArchitecture())
  788.     #define NewMovieExportGetDataUPP(userRoutine)                   (MovieExportGetDataUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieExportGetDataProcInfo, GetCurrentArchitecture())
  789.     #define NewMovieExportGetPropertyUPP(userRoutine)               (MovieExportGetPropertyUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieExportGetPropertyProcInfo, GetCurrentArchitecture())
  790.     #define DisposeSCModalFilterUPP(userUPP)                        DisposeRoutineDescriptor(userUPP)
  791.     #define DisposeSCModalHookUPP(userUPP)                          DisposeRoutineDescriptor(userUPP)
  792.     #define DisposeMovieExportGetDataUPP(userUPP)                   DisposeRoutineDescriptor(userUPP)
  793.     #define DisposeMovieExportGetPropertyUPP(userUPP)               DisposeRoutineDescriptor(userUPP)
  794.     #define InvokeSCModalFilterUPP(theDialog, theEvent, itemHit, refcon, userUPP)  (Boolean)CALL_FOUR_PARAMETER_UPP((userUPP), uppSCModalFilterProcInfo, (theDialog), (theEvent), (itemHit), (refcon))
  795.     #define InvokeSCModalHookUPP(theDialog, itemHit, params, refcon, userUPP)  (short)CALL_FOUR_PARAMETER_UPP((userUPP), uppSCModalHookProcInfo, (theDialog), (itemHit), (params), (refcon))
  796.     #define InvokeMovieExportGetDataUPP(refCon, params, userUPP)    (OSErr)CALL_TWO_PARAMETER_UPP((userUPP), uppMovieExportGetDataProcInfo, (refCon), (params))
  797.     #define InvokeMovieExportGetPropertyUPP(refcon, trackID, propertyType, propertyValue, userUPP)  (OSErr)CALL_FOUR_PARAMETER_UPP((userUPP), uppMovieExportGetPropertyProcInfo, (refcon), (trackID), (propertyType), (propertyValue))
  798. #endif
  799. /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */
  800. #define NewSCModalFilterProc(userRoutine)                       NewSCModalFilterUPP(userRoutine)
  801. #define NewSCModalHookProc(userRoutine)                         NewSCModalHookUPP(userRoutine)
  802. #define NewMovieExportGetDataProc(userRoutine)                  NewMovieExportGetDataUPP(userRoutine)
  803. #define NewMovieExportGetPropertyProc(userRoutine)              NewMovieExportGetPropertyUPP(userRoutine)
  804. #define CallSCModalFilterProc(userRoutine, theDialog, theEvent, itemHit, refcon) InvokeSCModalFilterUPP(theDialog, theEvent, itemHit, refcon, userRoutine)
  805. #define CallSCModalHookProc(userRoutine, theDialog, itemHit, params, refcon) InvokeSCModalHookUPP(theDialog, itemHit, params, refcon, userRoutine)
  806. #define CallMovieExportGetDataProc(userRoutine, refCon, params) InvokeMovieExportGetDataUPP(refCon, params, userRoutine)
  807. #define CallMovieExportGetPropertyProc(userRoutine, refcon, trackID, propertyType, propertyValue) InvokeMovieExportGetPropertyUPP(refcon, trackID, propertyType, propertyValue, userRoutine)
  808. EXTERN_API( ComponentResult )
  809. MovieImportHandle               (MovieImportComponent   ci,
  810.                                  Handle                 dataH,
  811.                                  Movie                  theMovie,
  812.                                  Track                  targetTrack,
  813.                                  Track *                usedTrack,
  814.                                  TimeValue              atTime,
  815.                                  TimeValue *            addedDuration,
  816.                                  long                   inFlags,
  817.                                  long *                 outFlags)                           FIVEWORDINLINE(0x2F3C, 0x0020, 0x0001, 0x7000, 0xA82A);
  818. EXTERN_API( ComponentResult )
  819. MovieImportFile                 (MovieImportComponent   ci,
  820.                                  const FSSpec *         theFile,
  821.                                  Movie                  theMovie,
  822.                                  Track                  targetTrack,
  823.                                  Track *                usedTrack,
  824.                                  TimeValue              atTime,
  825.                                  TimeValue *            addedDuration,
  826.                                  long                   inFlags,
  827.                                  long *                 outFlags)                           FIVEWORDINLINE(0x2F3C, 0x0020, 0x0002, 0x7000, 0xA82A);
  828. EXTERN_API( ComponentResult )
  829. MovieImportSetSampleDuration    (MovieImportComponent   ci,
  830.                                  TimeValue              duration,
  831.                                  TimeScale              scale)                              FIVEWORDINLINE(0x2F3C, 0x0008, 0x0003, 0x7000, 0xA82A);
  832. EXTERN_API( ComponentResult )
  833. MovieImportSetSampleDescription (MovieImportComponent   ci,
  834.                                  SampleDescriptionHandle  desc,
  835.                                  OSType                 mediaType)                          FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A);
  836. EXTERN_API( ComponentResult )
  837. MovieImportSetMediaFile         (MovieImportComponent   ci,
  838.                                  AliasHandle            alias)                              FIVEWORDINLINE(0x2F3C, 0x0004, 0x0005, 0x7000, 0xA82A);
  839. EXTERN_API( ComponentResult )
  840. MovieImportSetDimensions        (MovieImportComponent   ci,
  841.                                  Fixed                  width,
  842.                                  Fixed                  height)                             FIVEWORDINLINE(0x2F3C, 0x0008, 0x0006, 0x7000, 0xA82A);
  843. EXTERN_API( ComponentResult )
  844. MovieImportSetChunkSize         (MovieImportComponent   ci,
  845.                                  long                   chunkSize)                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x0007, 0x7000, 0xA82A);
  846. EXTERN_API( ComponentResult )
  847. MovieImportSetProgressProc      (MovieImportComponent   ci,
  848.                                  MovieProgressUPP       proc,
  849.                                  long                   refcon)                             FIVEWORDINLINE(0x2F3C, 0x0008, 0x0008, 0x7000, 0xA82A);
  850. EXTERN_API( ComponentResult )
  851. MovieImportSetAuxiliaryData     (MovieImportComponent   ci,
  852.                                  Handle                 data,
  853.                                  OSType                 handleType)                         FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A);
  854. EXTERN_API( ComponentResult )
  855. MovieImportSetFromScrap         (MovieImportComponent   ci,
  856.                                  Boolean                fromScrap)                          FIVEWORDINLINE(0x2F3C, 0x0002, 0x000A, 0x7000, 0xA82A);
  857. EXTERN_API( ComponentResult )
  858. MovieImportDoUserDialog         (MovieImportComponent   ci,
  859.                                  const FSSpec *         theFile,
  860.                                  Handle                 theData,
  861.                                  Boolean *              canceled)                           FIVEWORDINLINE(0x2F3C, 0x000C, 0x000B, 0x7000, 0xA82A);
  862. EXTERN_API( ComponentResult )
  863. MovieImportSetDuration          (MovieImportComponent   ci,
  864.                                  TimeValue              duration)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x000C, 0x7000, 0xA82A);
  865. EXTERN_API( ComponentResult )
  866. MovieImportGetAuxiliaryDataType (MovieImportComponent   ci,
  867.                                  OSType *               auxType)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000D, 0x7000, 0xA82A);
  868. EXTERN_API( ComponentResult )
  869. MovieImportValidate             (MovieImportComponent   ci,
  870.                                  const FSSpec *         theFile,
  871.                                  Handle                 theData,
  872.                                  Boolean *              valid)                              FIVEWORDINLINE(0x2F3C, 0x000C, 0x000E, 0x7000, 0xA82A);
  873. EXTERN_API( ComponentResult )
  874. MovieImportGetFileType          (MovieImportComponent   ci,
  875.                                  OSType *               fileType)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x000F, 0x7000, 0xA82A);
  876. EXTERN_API( ComponentResult )
  877. MovieImportDataRef              (MovieImportComponent   ci,
  878.                                  Handle                 dataRef,
  879.                                  OSType                 dataRefType,
  880.                                  Movie                  theMovie,
  881.                                  Track                  targetTrack,
  882.                                  Track *                usedTrack,
  883.                                  TimeValue              atTime,
  884.                                  TimeValue *            addedDuration,
  885.                                  long                   inFlags,
  886.                                  long *                 outFlags)                           FIVEWORDINLINE(0x2F3C, 0x0024, 0x0010, 0x7000, 0xA82A);
  887. EXTERN_API( ComponentResult )
  888. MovieImportGetSampleDescription (MovieImportComponent   ci,
  889.                                  SampleDescriptionHandle * desc,
  890.                                  OSType *               mediaType)                          FIVEWORDINLINE(0x2F3C, 0x0008, 0x0011, 0x7000, 0xA82A);
  891. EXTERN_API( ComponentResult )
  892. MovieImportGetMIMETypeList      (MovieImportComponent   ci,
  893.                                  QTAtomContainer *      mimeInfo)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A);
  894. EXTERN_API( ComponentResult )
  895. MovieImportSetOffsetAndLimit    (MovieImportComponent   ci,
  896.                                  unsigned long          offset,
  897.                                  unsigned long          limit)                              FIVEWORDINLINE(0x2F3C, 0x0008, 0x0013, 0x7000, 0xA82A);
  898. EXTERN_API( ComponentResult )
  899. MovieImportGetSettingsAsAtomContainer (MovieImportComponent  ci,
  900.                                  QTAtomContainer *      settings)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  901. EXTERN_API( ComponentResult )
  902. MovieImportSetSettingsFromAtomContainer (MovieImportComponent  ci,
  903.                                  QTAtomContainer        settings)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x0015, 0x7000, 0xA82A);
  904. EXTERN_API( ComponentResult )
  905. MovieImportSetOffsetAndLimit64  (MovieImportComponent   ci,
  906.                                  const wide *           offset,
  907.                                  const wide *           limit)                              FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A);
  908. EXTERN_API( ComponentResult )
  909. MovieImportIdle                 (MovieImportComponent   ci,
  910.                                  long                   inFlags,
  911.                                  long *                 outFlags)                           FIVEWORDINLINE(0x2F3C, 0x0008, 0x0017, 0x7000, 0xA82A);
  912. EXTERN_API( ComponentResult )
  913. MovieImportValidateDataRef      (MovieImportComponent   ci,
  914.                                  Handle                 dataRef,
  915.                                  OSType                 dataRefType,
  916.                                  UInt8 *                valid)                              FIVEWORDINLINE(0x2F3C, 0x000C, 0x0018, 0x7000, 0xA82A);
  917. EXTERN_API( ComponentResult )
  918. MovieImportGetLoadState         (MovieImportComponent   ci,
  919.                                  long *                 importerLoadState)                  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0019, 0x7000, 0xA82A);
  920. EXTERN_API( ComponentResult )
  921. MovieImportGetMaxLoadedTime     (MovieImportComponent   ci,
  922.                                  TimeValue *            time)                               FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A);
  923. EXTERN_API( ComponentResult )
  924. MovieImportEstimateCompletionTime (MovieImportComponent  ci,
  925.                                  TimeRecord *           time)                               FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  926. EXTERN_API( ComponentResult )
  927. MovieImportSetDontBlock         (MovieImportComponent   ci,
  928.                                  Boolean                dontBlock)                          FIVEWORDINLINE(0x2F3C, 0x0002, 0x001C, 0x7000, 0xA82A);
  929. EXTERN_API( ComponentResult )
  930. MovieImportGetDontBlock         (MovieImportComponent   ci,
  931.                                  Boolean *              willBlock)                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x001D, 0x7000, 0xA82A);
  932. EXTERN_API( ComponentResult )
  933. MovieImportSetIdleManager       (MovieImportComponent   ci,
  934.                                  IdleManager            im)                                 FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A);
  935. EXTERN_API( ComponentResult )
  936. MovieImportSetNewMovieFlags     (MovieImportComponent   ci,
  937.                                  long                   newMovieFlags)                      FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A);
  938. EXTERN_API( ComponentResult )
  939. MovieImportGetDestinationMediaType (MovieImportComponent  ci,
  940.                                  OSType *               mediaType)                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x0020, 0x7000, 0xA82A);
  941. EXTERN_API( ComponentResult )
  942. MovieExportToHandle             (MovieExportComponent   ci,
  943.                                  Handle                 dataH,
  944.                                  Movie                  theMovie,
  945.                                  Track                  onlyThisTrack,
  946.                                  TimeValue              startTime,
  947.                                  TimeValue              duration)                           FIVEWORDINLINE(0x2F3C, 0x0014, 0x0080, 0x7000, 0xA82A);
  948. EXTERN_API( ComponentResult )
  949. MovieExportToFile               (MovieExportComponent   ci,
  950.                                  const FSSpec *         theFile,
  951.                                  Movie                  theMovie,
  952.                                  Track                  onlyThisTrack,
  953.                                  TimeValue              startTime,
  954.                                  TimeValue              duration)                           FIVEWORDINLINE(0x2F3C, 0x0014, 0x0081, 0x7000, 0xA82A);
  955. EXTERN_API( ComponentResult )
  956. MovieExportGetAuxiliaryData     (MovieExportComponent   ci,
  957.                                  Handle                 dataH,
  958.                                  OSType *               handleType)                         FIVEWORDINLINE(0x2F3C, 0x0008, 0x0083, 0x7000, 0xA82A);
  959. EXTERN_API( ComponentResult )
  960. MovieExportSetProgressProc      (MovieExportComponent   ci,
  961.                                  MovieProgressUPP       proc,
  962.                                  long                   refcon)                             FIVEWORDINLINE(0x2F3C, 0x0008, 0x0084, 0x7000, 0xA82A);
  963. EXTERN_API( ComponentResult )
  964. MovieExportSetSampleDescription (MovieExportComponent   ci,
  965.                                  SampleDescriptionHandle  desc,
  966.                                  OSType                 mediaType)                          FIVEWORDINLINE(0x2F3C, 0x0008, 0x0085, 0x7000, 0xA82A);
  967. EXTERN_API( ComponentResult )
  968. MovieExportDoUserDialog         (MovieExportComponent   ci,
  969.                                  Movie                  theMovie,
  970.                                  Track                  onlyThisTrack,
  971.                                  TimeValue              startTime,
  972.                                  TimeValue              duration,
  973.                                  Boolean *              canceled)                           FIVEWORDINLINE(0x2F3C, 0x0014, 0x0086, 0x7000, 0xA82A);
  974. EXTERN_API( ComponentResult )
  975. MovieExportGetCreatorType       (MovieExportComponent   ci,
  976.                                  OSType *               creator)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0087, 0x7000, 0xA82A);
  977. EXTERN_API( ComponentResult )
  978. MovieExportToDataRef            (MovieExportComponent   ci,
  979.                                  Handle                 dataRef,
  980.                                  OSType                 dataRefType,
  981.                                  Movie                  theMovie,
  982.                                  Track                  onlyThisTrack,
  983.                                  TimeValue              startTime,
  984.                                  TimeValue              duration)                           FIVEWORDINLINE(0x2F3C, 0x0018, 0x0088, 0x7000, 0xA82A);
  985. EXTERN_API( ComponentResult )
  986. MovieExportFromProceduresToDataRef (MovieExportComponent  ci,
  987.                                  Handle                 dataRef,
  988.                                  OSType                 dataRefType)                        FIVEWORDINLINE(0x2F3C, 0x0008, 0x0089, 0x7000, 0xA82A);
  989. EXTERN_API( ComponentResult )
  990. MovieExportAddDataSource        (MovieExportComponent   ci,
  991.                                  OSType                 trackType,
  992.                                  TimeScale              scale,
  993.                                  long *                 trackID,
  994.                                  MovieExportGetPropertyUPP  getPropertyProc,
  995.                                  MovieExportGetDataUPP  getDataProc,
  996.                                  void *                 refCon)                             FIVEWORDINLINE(0x2F3C, 0x0018, 0x008A, 0x7000, 0xA82A);
  997. EXTERN_API( ComponentResult )
  998. MovieExportValidate             (MovieExportComponent   ci,
  999.                                  Movie                  theMovie,
  1000.                                  Track                  onlyThisTrack,
  1001.                                  Boolean *              valid)                              FIVEWORDINLINE(0x2F3C, 0x000C, 0x008B, 0x7000, 0xA82A);
  1002. EXTERN_API( ComponentResult )
  1003. MovieExportGetSettingsAsAtomContainer (MovieExportComponent  ci,
  1004.                                  QTAtomContainer *      settings)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x008C, 0x7000, 0xA82A);
  1005. EXTERN_API( ComponentResult )
  1006. MovieExportSetSettingsFromAtomContainer (MovieExportComponent  ci,
  1007.                                  QTAtomContainer        settings)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x008D, 0x7000, 0xA82A);
  1008. EXTERN_API( ComponentResult )
  1009. MovieExportGetFileNameExtension (MovieExportComponent   ci,
  1010.                                  OSType *               extension)                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x008E, 0x7000, 0xA82A);
  1011. EXTERN_API( ComponentResult )
  1012. MovieExportGetShortFileTypeString (MovieExportComponent  ci,
  1013.                                  Str255                 typeString)                         FIVEWORDINLINE(0x2F3C, 0x0004, 0x008F, 0x7000, 0xA82A);
  1014. EXTERN_API( ComponentResult )
  1015. MovieExportGetSourceMediaType   (MovieExportComponent   ci,
  1016.                                  OSType *               mediaType)                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x0090, 0x7000, 0xA82A);
  1017. EXTERN_API( ComponentResult )
  1018. MovieExportSetGetMoviePropertyProc (MovieExportComponent  ci,
  1019.                                  MovieExportGetPropertyUPP  getPropertyProc,
  1020.                                  void *                 refCon)                             FIVEWORDINLINE(0x2F3C, 0x0008, 0x0091, 0x7000, 0xA82A);
  1021. /* Text Export Display Info data structure*/
  1022. struct TextDisplayData {
  1023.     long                            displayFlags;
  1024.     long                            textJustification;
  1025.     RGBColor                        bgColor;
  1026.     Rect                            textBox;
  1027.     short                           beginHilite;
  1028.     short                           endHilite;
  1029.     RGBColor                        hiliteColor;
  1030.     Boolean                         doHiliteColor;
  1031.     SInt8                           filler;
  1032.     TimeValue                       scrollDelayDur;
  1033.     Point                           dropShadowOffset;
  1034.     short                           dropShadowTransparency;
  1035. };
  1036. typedef struct TextDisplayData          TextDisplayData;
  1037. typedef ComponentInstance               TextExportComponent;
  1038. typedef ComponentInstance               GraphicImageMovieImportComponent;
  1039. EXTERN_API( ComponentResult )
  1040. TextExportGetDisplayData        (TextExportComponent    ci,
  1041.                                  TextDisplayData *      textDisplay)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  1042. EXTERN_API( ComponentResult )
  1043. TextExportGetTimeFraction       (TextExportComponent    ci,
  1044.                                  long *                 movieTimeFraction)                  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  1045. EXTERN_API( ComponentResult )
  1046. TextExportSetTimeFraction       (TextExportComponent    ci,
  1047.                                  long                   movieTimeFraction)                  FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A);
  1048. EXTERN_API( ComponentResult )
  1049. TextExportGetSettings           (TextExportComponent    ci,
  1050.                                  long *                 setting)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0103, 0x7000, 0xA82A);
  1051. EXTERN_API( ComponentResult )
  1052. TextExportSetSettings           (TextExportComponent    ci,
  1053.                                  long                   setting)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0104, 0x7000, 0xA82A);
  1054. EXTERN_API( ComponentResult )
  1055. MIDIImportGetSettings           (TextExportComponent    ci,
  1056.                                  long *                 setting)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0100, 0x7000, 0xA82A);
  1057. EXTERN_API( ComponentResult )
  1058. MIDIImportSetSettings           (TextExportComponent    ci,
  1059.                                  long                   setting)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  1060. EXTERN_API( ComponentResult )
  1061. MovieExportNewGetDataAndPropertiesProcs (MovieExportComponent  ci,
  1062.                                  OSType                 trackType,
  1063.                                  TimeScale *            scale,
  1064.                                  Movie                  theMovie,
  1065.                                  Track                  theTrack,
  1066.                                  TimeValue              startTime,
  1067.                                  TimeValue              duration,
  1068.                                  MovieExportGetPropertyUPP * getPropertyProc,
  1069.                                  MovieExportGetDataUPP * getDataProc,
  1070.                                  void **                refCon)                             FIVEWORDINLINE(0x2F3C, 0x0024, 0x0100, 0x7000, 0xA82A);
  1071. EXTERN_API( ComponentResult )
  1072. MovieExportDisposeGetDataAndPropertiesProcs (MovieExportComponent  ci,
  1073.                                  MovieExportGetPropertyUPP  getPropertyProc,
  1074.                                  MovieExportGetDataUPP  getDataProc,
  1075.                                  void *                 refCon)                             FIVEWORDINLINE(0x2F3C, 0x000C, 0x0101, 0x7000, 0xA82A);
  1076. enum {
  1077.     movieExportUseConfiguredSettings = FOUR_CHAR_CODE('ucfg'),  /* pointer to Boolean*/
  1078.     movieExportWidth            = FOUR_CHAR_CODE('wdth'),       /* pointer to Fixed*/
  1079.     movieExportHeight           = FOUR_CHAR_CODE('hegt'),       /* pointer to Fixed*/
  1080.     movieExportDuration         = FOUR_CHAR_CODE('dura'),       /* pointer to TimeRecord*/
  1081.     movieExportVideoFilter      = FOUR_CHAR_CODE('iflt'),       /* pointer to QTAtomContainer*/
  1082.     movieExportTimeScale        = FOUR_CHAR_CODE('tmsc')        /* pointer to TimeScale*/
  1083. };
  1084. EXTERN_API( ComponentResult )
  1085. GraphicsImageImportSetSequenceEnabled (GraphicImageMovieImportComponent  ci,
  1086.                                  Boolean                enable)                             FIVEWORDINLINE(0x2F3C, 0x0002, 0x0100, 0x7000, 0xA82A);
  1087. EXTERN_API( ComponentResult )
  1088. GraphicsImageImportGetSequenceEnabled (GraphicImageMovieImportComponent  ci,
  1089.                                  Boolean *              enable)                             FIVEWORDINLINE(0x2F3C, 0x0004, 0x0101, 0x7000, 0xA82A);
  1090. /*----------------------------'brws' o browser prefs configuration info ------------------------*/
  1091. enum {
  1092.     kQTBrowserInfoCanUseSystemFolderPlugin = (1L << 0)          /* Mac browser can use plug-in from System "Internet Plug-ins" folder */
  1093. };
  1094. enum {
  1095.     kQTPreFlightOpenComponent   = (1L << 1)                     /* Open component as preflight check*/
  1096. };
  1097. struct ComponentPreflightFlags {
  1098.     long                            flags;
  1099. };
  1100. typedef struct ComponentPreflightFlags  ComponentPreflightFlags;
  1101. /***************
  1102.     File Preview Components
  1103. ***************/
  1104. typedef ComponentInstance               pnotComponent;
  1105. enum {
  1106.     pnotComponentWantsEvents    = 1,
  1107.     pnotComponentNeedsNoCache   = 2
  1108. };
  1109. enum {
  1110.     ShowFilePreviewComponentType = FOUR_CHAR_CODE('pnot'),
  1111.     CreateFilePreviewComponentType = FOUR_CHAR_CODE('pmak')
  1112. };
  1113. EXTERN_API( ComponentResult )
  1114. PreviewShowData                 (pnotComponent          p,
  1115.                                  OSType                 dataType,
  1116.                                  Handle                 data,
  1117.                                  const Rect *           inHere)                             FIVEWORDINLINE(0x2F3C, 0x000C, 0x0001, 0x7000, 0xA82A);
  1118. EXTERN_API( ComponentResult )
  1119. PreviewMakePreview              (pnotComponent          p,
  1120.                                  OSType *               previewType,
  1121.                                  Handle *               previewResult,
  1122.                                  const FSSpec *         sourceFile,
  1123.                                  ICMProgressProcRecordPtr  progress)                        FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A);
  1124. EXTERN_API( ComponentResult )
  1125. PreviewMakePreviewReference     (pnotComponent          p,
  1126.                                  OSType *               previewType,
  1127.                                  short *                resID,
  1128.                                  const FSSpec *         sourceFile)                         FIVEWORDINLINE(0x2F3C, 0x000C, 0x0003, 0x7000, 0xA82A);
  1129. EXTERN_API( ComponentResult )
  1130. PreviewEvent                    (pnotComponent          p,
  1131.                                  EventRecord *          e,
  1132.                                  Boolean *              handledEvent)                       FIVEWORDINLINE(0x2F3C, 0x0008, 0x0004, 0x7000, 0xA82A);
  1133. typedef ComponentInstance               DataCompressorComponent;
  1134. typedef ComponentInstance               DataDecompressorComponent;
  1135. typedef ComponentInstance               DataCodecComponent;
  1136. enum {
  1137.     DataCompressorComponentType = FOUR_CHAR_CODE('dcom'),
  1138.     DataDecompressorComponentType = FOUR_CHAR_CODE('ddec'),
  1139.     AppleDataCompressorSubType  = FOUR_CHAR_CODE('adec'),
  1140.     zlibDataCompressorSubType   = FOUR_CHAR_CODE('zlib')
  1141. };
  1142. /** These are DataCodec procedures **/
  1143. EXTERN_API( ComponentResult )
  1144. DataCodecDecompress             (DataCodecComponent     dc,
  1145.                                  void *                 srcData,
  1146.                                  UInt32                 srcSize,
  1147.                                  void *                 dstData,
  1148.                                  UInt32                 dstBufferSize)                      FIVEWORDINLINE(0x2F3C, 0x0010, 0x0001, 0x7000, 0xA82A);
  1149. EXTERN_API( ComponentResult )
  1150. DataCodecGetCompressBufferSize  (DataCodecComponent     dc,
  1151.                                  UInt32                 srcSize,
  1152.                                  UInt32 *               dstSize)                            FIVEWORDINLINE(0x2F3C, 0x0008, 0x0002, 0x7000, 0xA82A);
  1153. EXTERN_API( ComponentResult )
  1154. DataCodecCompress               (DataCodecComponent     dc,
  1155.                                  void *                 srcData,
  1156.                                  UInt32                 srcSize,
  1157.                                  void *                 dstData,
  1158.                                  UInt32                 dstBufferSize,
  1159.                                  UInt32 *               actualDstSize,
  1160.                                  UInt32 *               decompressSlop)                     FIVEWORDINLINE(0x2F3C, 0x0018, 0x0003, 0x7000, 0xA82A);
  1161. EXTERN_API( ComponentResult )
  1162. DataCodecBeginInterruptSafe     (DataCodecComponent     dc,
  1163.                                  unsigned long          maxSrcSize)                         FIVEWORDINLINE(0x2F3C, 0x0004, 0x0004, 0x7000, 0xA82A);
  1164. EXTERN_API( ComponentResult )
  1165. DataCodecEndInterruptSafe       (DataCodecComponent     dc)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0005, 0x7000, 0xA82A);
  1166. EXTERN_API( ComponentResult )
  1167. DataCodecDecompressPartial      (DataCodecComponent     dc,
  1168.                                  void **                next_in,
  1169.                                  unsigned long *        avail_in,
  1170.                                  unsigned long *        total_in,
  1171.                                  void **                next_out,
  1172.                                  unsigned long *        avail_out,
  1173.                                  unsigned long *        total_out,
  1174.                                  Boolean *              didFinish)                          FIVEWORDINLINE(0x2F3C, 0x001C, 0x0006, 0x7000, 0xA82A);
  1175. EXTERN_API( ComponentResult )
  1176. DataCodecCompressPartial        (DataCodecComponent     dc,
  1177.                                  void **                next_in,
  1178.                                  unsigned long *        avail_in,
  1179.                                  unsigned long *        total_in,
  1180.                                  void **                next_out,
  1181.                                  unsigned long *        avail_out,
  1182.                                  unsigned long *        total_out,
  1183.                                  Boolean                tryToFinish,
  1184.                                  Boolean *              didFinish)                          FIVEWORDINLINE(0x2F3C, 0x001E, 0x0007, 0x7000, 0xA82A);
  1185. typedef CALLBACK_API( void , DataHCompletionProcPtr )(Ptr request, long refcon, OSErr err);
  1186. typedef STACK_UPP_TYPE(DataHCompletionProcPtr)                  DataHCompletionUPP;
  1187. enum {
  1188.     kDataHCanRead               = 1L << 0,
  1189.     kDataHSpecialRead           = 1L << 1,
  1190.     kDataHSpecialReadFile       = 1L << 2,
  1191.     kDataHCanWrite              = 1L << 3,
  1192.     kDataHSpecialWrite          = 1 << 4,
  1193.     kDataHSpecialWriteFile      = 1 << 5,
  1194.     kDataHCanStreamingWrite     = 1 << 6,
  1195.     kDataHMustCheckDataRef      = 1 << 7
  1196. };
  1197. /* Data reference records for specific data ref types*/
  1198. struct HandleDataRefRecord {
  1199.     Handle                          dataHndl;
  1200. };
  1201. typedef struct HandleDataRefRecord      HandleDataRefRecord;
  1202. typedef HandleDataRefRecord *           HandleDataRefPtr;
  1203. typedef HandleDataRefPtr *              HandleDataRef;
  1204. struct PointerDataRefRecord {
  1205.     void *                          data;
  1206.     Size                            dataLength;
  1207. };
  1208. typedef struct PointerDataRefRecord     PointerDataRefRecord;
  1209. typedef PointerDataRefRecord *          PointerDataRefPtr;
  1210. typedef PointerDataRefPtr *             PointerDataRef;
  1211. /* Data reference extensions*/
  1212. enum {
  1213.     kDataRefExtensionChokeSpeed = FOUR_CHAR_CODE('chok'),
  1214.     kDataRefExtensionFileName   = FOUR_CHAR_CODE('fnam'),
  1215.     kDataRefExtensionMIMEType   = FOUR_CHAR_CODE('mime'),
  1216.     kDataRefExtensionMacOSFileType = FOUR_CHAR_CODE('ftyp'),
  1217.     kDataRefExtensionInitializationData = FOUR_CHAR_CODE('data'),
  1218.     kDataRefExtensionQuickTimeMediaType = FOUR_CHAR_CODE('mtyp')
  1219. };
  1220. enum {
  1221.     kDataHChokeToMovieDataRate  = 1 << 0,                       /* param is 0*/
  1222.     kDataHChokeToParam          = 1 << 1                        /* param is bytes per second*/
  1223. };
  1224. struct DataHChokeAtomRecord {
  1225.     long                            flags;                      /* one of kDataHChokeTo constants*/
  1226.     long                            param;
  1227. };
  1228. typedef struct DataHChokeAtomRecord     DataHChokeAtomRecord;
  1229. struct DataHVolumeListRecord {
  1230.     short                           vRefNum;
  1231.     long                            flags;
  1232. };
  1233. typedef struct DataHVolumeListRecord    DataHVolumeListRecord;
  1234. typedef DataHVolumeListRecord *         DataHVolumeListPtr;
  1235. typedef DataHVolumeListPtr *            DataHVolumeList;
  1236. enum {
  1237.     kDataHExtendedSchedule      = FOUR_CHAR_CODE('xtnd')
  1238. };
  1239. struct DataHScheduleRecord {
  1240.     TimeRecord                      timeNeededBy;
  1241.     long                            extendedID;                 /* always is kDataHExtendedSchedule*/
  1242.     long                            extendedVers;               /* always set to 0*/
  1243.     Fixed                           priority;                   /* 100.0 or more means must have. lower numbers...*/
  1244. };
  1245. typedef struct DataHScheduleRecord      DataHScheduleRecord;
  1246. typedef DataHScheduleRecord *           DataHSchedulePtr;
  1247. /* Flags for DataHGetInfoFlags*/
  1248. enum {
  1249.     kDataHInfoFlagNeverStreams  = 1 << 0,                       /* set if this data handler doesn't stream*/
  1250.     kDataHInfoFlagCanUpdateDataRefs = 1 << 1,                   /* set if this data handler might update data reference*/
  1251.     kDataHInfoFlagNeedsNetworkBandwidth = 1 << 2                /* set if this data handler may need to occupy the network*/
  1252. };
  1253. /* Types for DataHGetFileTypeOrdering*/
  1254. enum {
  1255.     kDataHFileTypeMacOSFileType = FOUR_CHAR_CODE('ftyp'),
  1256.     kDataHFileTypeExtension     = FOUR_CHAR_CODE('fext'),
  1257.     kDataHFileTypeMIME          = FOUR_CHAR_CODE('mime')
  1258. };
  1259. typedef OSType *                        DataHFileTypeOrderingPtr;
  1260. typedef DataHFileTypeOrderingPtr *      DataHFileTypeOrderingHandle;
  1261. EXTERN_API( ComponentResult )
  1262. DataHGetData                    (DataHandler            dh,
  1263.                                  Handle                 h,
  1264.                                  long                   hOffset,
  1265.                                  long                   offset,
  1266.                                  long                   size)                               FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A);
  1267. EXTERN_API( ComponentResult )
  1268. DataHPutData                    (DataHandler            dh,
  1269.                                  Handle                 h,
  1270.                                  long                   hOffset,
  1271.                                  long *                 offset,
  1272.                                  long                   size)                               FIVEWORDINLINE(0x2F3C, 0x0010, 0x0003, 0x7000, 0xA82A);
  1273. EXTERN_API( ComponentResult )
  1274. DataHFlushData                  (DataHandler            dh)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0004, 0x7000, 0xA82A);
  1275. EXTERN_API( ComponentResult )
  1276. DataHOpenForWrite               (DataHandler            dh)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0005, 0x7000, 0xA82A);
  1277. EXTERN_API( ComponentResult )
  1278. DataHCloseForWrite              (DataHandler            dh)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0006, 0x7000, 0xA82A);
  1279. EXTERN_API( ComponentResult )
  1280. DataHOpenForRead                (DataHandler            dh)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0008, 0x7000, 0xA82A);
  1281. EXTERN_API( ComponentResult )
  1282. DataHCloseForRead               (DataHandler            dh)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0009, 0x7000, 0xA82A);
  1283. EXTERN_API( ComponentResult )
  1284. DataHSetDataRef                 (DataHandler            dh,
  1285.                                  Handle                 dataRef)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000A, 0x7000, 0xA82A);
  1286. EXTERN_API( ComponentResult )
  1287. DataHGetDataRef                 (DataHandler            dh,
  1288.                                  Handle *               dataRef)                            FIVEWORDINLINE(0x2F3C, 0x0004, 0x000B, 0x7000, 0xA82A);
  1289. EXTERN_API( ComponentResult )
  1290. DataHCompareDataRef             (DataHandler            dh,
  1291.                                  Handle                 dataRef,
  1292.                                  Boolean *              equal)                              FIVEWORDINLINE(0x2F3C, 0x0008, 0x000C, 0x7000, 0xA82A);
  1293. EXTERN_API( ComponentResult )
  1294. DataHTask                       (DataHandler            dh)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x000D, 0x7000, 0xA82A);
  1295. EXTERN_API( ComponentResult )
  1296. DataHScheduleData               (DataHandler            dh,
  1297.                                  Ptr                    PlaceToPutDataPtr,
  1298.                                  long                   FileOffset,
  1299.                                  long                   DataSize,
  1300.                                  long                   RefCon,
  1301.                                  DataHSchedulePtr       scheduleRec,
  1302.                                  DataHCompletionUPP     CompletionRtn)                      FIVEWORDINLINE(0x2F3C, 0x0018, 0x000E, 0x7000, 0xA82A);
  1303. EXTERN_API( ComponentResult )
  1304. DataHFinishData                 (DataHandler            dh,
  1305.                                  Ptr                    PlaceToPutDataPtr,
  1306.                                  Boolean                Cancel)                             FIVEWORDINLINE(0x2F3C, 0x0006, 0x000F, 0x7000, 0xA82A);
  1307. EXTERN_API( ComponentResult )
  1308. DataHFlushCache                 (DataHandler            dh)                                 FIVEWORDINLINE(0x2F3C, 0x0000, 0x0010, 0x7000, 0xA82A);
  1309. EXTERN_API( ComponentResult )
  1310. DataHResolveDataRef             (DataHandler            dh,
  1311.                                  Handle                 theDataRef,
  1312.                                  Boolean *              wasChanged,
  1313.                                  Boolean                userInterfaceAllowed)               FIVEWORDINLINE(0x2F3C, 0x000A, 0x0011, 0x7000, 0xA82A);
  1314. EXTERN_API( ComponentResult )
  1315. DataHGetFileSize                (DataHandler            dh,
  1316.                                  long *                 fileSize)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x0012, 0x7000, 0xA82A);
  1317. EXTERN_API( ComponentResult )
  1318. DataHCanUseDataRef              (DataHandler            dh,
  1319.                                  Handle                 dataRef,
  1320.                                  long *                 useFlags)                           FIVEWORDINLINE(0x2F3C, 0x0008, 0x0013, 0x7000, 0xA82A);
  1321. EXTERN_API( ComponentResult )
  1322. DataHGetVolumeList              (DataHandler            dh,
  1323.                                  DataHVolumeList *      volumeList)                         FIVEWORDINLINE(0x2F3C, 0x0004, 0x0014, 0x7000, 0xA82A);
  1324. EXTERN_API( ComponentResult )
  1325. DataHWrite                      (DataHandler            dh,
  1326.                                  Ptr                    data,
  1327.                                  long                   offset,
  1328.                                  long                   size,
  1329.                                  DataHCompletionUPP     completion,
  1330.                                  long                   refCon)                             FIVEWORDINLINE(0x2F3C, 0x0014, 0x0015, 0x7000, 0xA82A);
  1331. EXTERN_API( ComponentResult )
  1332. DataHPreextend                  (DataHandler            dh,
  1333.                                  unsigned long          maxToAdd,
  1334.                                  unsigned long *        spaceAdded)                         FIVEWORDINLINE(0x2F3C, 0x0008, 0x0016, 0x7000, 0xA82A);
  1335. EXTERN_API( ComponentResult )
  1336. DataHSetFileSize                (DataHandler            dh,
  1337.                                  long                   fileSize)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x0017, 0x7000, 0xA82A);
  1338. EXTERN_API( ComponentResult )
  1339. DataHGetFreeSpace               (DataHandler            dh,
  1340.                                  unsigned long *        freeSize)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x0018, 0x7000, 0xA82A);
  1341. EXTERN_API( ComponentResult )
  1342. DataHCreateFile                 (DataHandler            dh,
  1343.                                  OSType                 creator,
  1344.                                  Boolean                deleteExisting)                     FIVEWORDINLINE(0x2F3C, 0x0006, 0x0019, 0x7000, 0xA82A);
  1345. EXTERN_API( ComponentResult )
  1346. DataHGetPreferredBlockSize      (DataHandler            dh,
  1347.                                  long *                 blockSize)                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x001A, 0x7000, 0xA82A);
  1348. EXTERN_API( ComponentResult )
  1349. DataHGetDeviceIndex             (DataHandler            dh,
  1350.                                  long *                 deviceIndex)                        FIVEWORDINLINE(0x2F3C, 0x0004, 0x001B, 0x7000, 0xA82A);
  1351. EXTERN_API( ComponentResult )
  1352. DataHIsStreamingDataHandler     (DataHandler            dh,
  1353.                                  Boolean *              yes)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x001C, 0x7000, 0xA82A);
  1354. EXTERN_API( ComponentResult )
  1355. DataHGetDataInBuffer            (DataHandler            dh,
  1356.                                  long                   startOffset,
  1357.                                  long *                 size)                               FIVEWORDINLINE(0x2F3C, 0x0008, 0x001D, 0x7000, 0xA82A);
  1358. EXTERN_API( ComponentResult )
  1359. DataHGetScheduleAheadTime       (DataHandler            dh,
  1360.                                  long *                 millisecs)                          FIVEWORDINLINE(0x2F3C, 0x0004, 0x001E, 0x7000, 0xA82A);
  1361. EXTERN_API( ComponentResult )
  1362. DataHSetCacheSizeLimit          (DataHandler            dh,
  1363.                                  Size                   cacheSizeLimit)                     FIVEWORDINLINE(0x2F3C, 0x0004, 0x001F, 0x7000, 0xA82A);
  1364. EXTERN_API( ComponentResult )
  1365. DataHGetCacheSizeLimit          (DataHandler            dh,
  1366.                                  Size *                 cacheSizeLimit)                     FIVEWORDINLINE(0x2F3C, 0x0004, 0x0020, 0x7000, 0xA82A);
  1367. EXTERN_API( ComponentResult )
  1368. DataHGetMovie                   (DataHandler            dh,
  1369.                                  Movie *                theMovie,
  1370.                                  short *                id)                                 FIVEWORDINLINE(0x2F3C, 0x0008, 0x0021, 0x7000, 0xA82A);
  1371. EXTERN_API( ComponentResult )
  1372. DataHAddMovie                   (DataHandler            dh,
  1373.                                  Movie                  theMovie,
  1374.                                  short *                id)                                 FIVEWORDINLINE(0x2F3C, 0x0008, 0x0022, 0x7000, 0xA82A);
  1375. EXTERN_API( ComponentResult )
  1376. DataHUpdateMovie                (DataHandler            dh,
  1377.                                  Movie                  theMovie,
  1378.                                  short                  id)                                 FIVEWORDINLINE(0x2F3C, 0x0006, 0x0023, 0x7000, 0xA82A);
  1379. EXTERN_API( ComponentResult )
  1380. DataHDoesBuffer                 (DataHandler            dh,
  1381.                                  Boolean *              buffersReads,
  1382.                                  Boolean *              buffersWrites)                      FIVEWORDINLINE(0x2F3C, 0x0008, 0x0024, 0x7000, 0xA82A);
  1383. EXTERN_API( ComponentResult )
  1384. DataHGetFileName                (DataHandler            dh,
  1385.                                  Str255                 str)                                FIVEWORDINLINE(0x2F3C, 0x0004, 0x0025, 0x7000, 0xA82A);
  1386. EXTERN_API( ComponentResult )
  1387. DataHGetAvailableFileSize       (DataHandler            dh,
  1388.                                  long *                 fileSize)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x0026, 0x7000, 0xA82A);
  1389. EXTERN_API( ComponentResult )
  1390. DataHGetMacOSFileType           (DataHandler            dh,
  1391.                                  OSType *               fileType)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x0027, 0x7000, 0xA82A);
  1392. EXTERN_API( ComponentResult )
  1393. DataHGetMIMEType                (DataHandler            dh,
  1394.                                  Str255                 mimeType)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x0028, 0x7000, 0xA82A);
  1395. EXTERN_API( ComponentResult )
  1396. DataHSetDataRefWithAnchor       (DataHandler            dh,
  1397.                                  Handle                 anchorDataRef,
  1398.                                  OSType                 dataRefType,
  1399.                                  Handle                 dataRef)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x0029, 0x7000, 0xA82A);
  1400. EXTERN_API( ComponentResult )
  1401. DataHGetDataRefWithAnchor       (DataHandler            dh,
  1402.                                  Handle                 anchorDataRef,
  1403.                                  OSType                 dataRefType,
  1404.                                  Handle *               dataRef)                            FIVEWORDINLINE(0x2F3C, 0x000C, 0x002A, 0x7000, 0xA82A);
  1405. EXTERN_API( ComponentResult )
  1406. DataHSetMacOSFileType           (DataHandler            dh,
  1407.                                  OSType                 fileType)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x002B, 0x7000, 0xA82A);
  1408. EXTERN_API( ComponentResult )
  1409. DataHSetTimeBase                (DataHandler            dh,
  1410.                                  TimeBase               tb)                                 FIVEWORDINLINE(0x2F3C, 0x0004, 0x002C, 0x7000, 0xA82A);
  1411. EXTERN_API( ComponentResult )
  1412. DataHGetInfoFlags               (DataHandler            dh,
  1413.                                  UInt32 *               flags)                              FIVEWORDINLINE(0x2F3C, 0x0004, 0x002D, 0x7000, 0xA82A);
  1414. EXTERN_API( ComponentResult )
  1415. DataHScheduleData64             (DataHandler            dh,
  1416.                                  Ptr                    PlaceToPutDataPtr,
  1417.                                  const wide *           FileOffset,
  1418.                                  long                   DataSize,
  1419.                                  long                   RefCon,
  1420.                                  DataHSchedulePtr       scheduleRec,
  1421.                                  DataHCompletionUPP     CompletionRtn)                      FIVEWORDINLINE(0x2F3C, 0x0018, 0x002E, 0x7000, 0xA82A);
  1422. EXTERN_API( ComponentResult )
  1423. DataHWrite64                    (DataHandler            dh,
  1424.                                  Ptr                    data,
  1425.                                  const wide *           offset,
  1426.                                  long                   size,
  1427.                                  DataHCompletionUPP     completion,
  1428.                                  long                   refCon)                             FIVEWORDINLINE(0x2F3C, 0x0014, 0x002F, 0x7000, 0xA82A);
  1429. EXTERN_API( ComponentResult )
  1430. DataHGetFileSize64              (DataHandler            dh,
  1431.                                  wide *                 fileSize)                           FIVEWORDINLINE(0x2F3C, 0x0004, 0x0030, 0x7000, 0xA82A);
  1432. EXTERN_API( ComponentResult )
  1433. DataHPreextend64                (DataHandler            dh,
  1434.                                  const wide *           maxToAdd,
  1435.                                  wide *                 spaceAdded)                         FIVEWORDINLINE(0x2F3C, 0x0008, 0x0031, 0x7000, 0xA82A);