PIActions.h
Go to the documentation of this file.
00001 // ADOBE SYSTEMS INCORPORATED
00002 // (c) Copyright  1993 - 2015 Adobe Systems Incorporated
00003 // All Rights Reserved
00004 //
00005 // NOTICE:  Adobe permits you to use, modify, and distribute this
00006 // file in accordance with the terms of the Adobe license agreement
00007 // accompanying it.  If you have received this file from a source
00008 // other than Adobe, then your use, modification, or distribution
00009 // of it requires the prior written permission of Adobe.
00010 //-------------------------------------------------------------------
00026 #ifndef __PIActions__ // Already defined?
00027 #define __PIActions__
00028 
00029 #if PRAGMA_ONCE
00030 #pragma once
00031 #endif
00032 
00033 #ifndef MSWindows
00034 #ifdef MSDOS
00035 #define MSWindows MSDOS
00036 #endif
00037 #ifdef WIN32
00038 #define MSWindows WIN32
00039 #endif
00040 #ifndef MSWindows
00041 #define MSWindows 0
00042 #endif
00043 #endif
00044 
00045 #ifndef INSIDE_PHOTOSHOP
00046 #define INSIDE_PHOTOSHOP 0
00047 #endif
00048 
00049 #ifndef qiOS
00050 #define qiOS 0
00051 #endif
00052 
00053 #ifdef Rez
00054 
00055 #if !MSWindows && !qiOS
00056 #include <CoreServices/CoreServices.r>
00057 #endif
00058 
00059 #else   // Rez
00060 
00061 #if !MSWindows && !qiOS && !PS_OS_ANDROID
00062 #include <CoreServices/CoreServices.h>
00063 #endif
00064 
00065 #if PS_OS_ANDROID
00066 #include <MacTypes.h>
00067 #endif // PS_OS_ANDROID
00068 
00069 #include "PITypes.h"
00070 #include "SPTypes.h"
00071 #include "SPPlugs.h"
00072 
00073 #endif // Rez
00074 
00076 #define  typeBookmark                  'bkmk'   /// eventual replacement for typeAlias
00077 #define  typeXPlatFileSpec             'xpfs'   /// eventual replacement for typeFSRef
00078 
00079 //-------------------------------------------------------------------------------
00080 //  Flags for dictionary parameters.
00081 //-------------------------------------------------------------------------------
00082 
00088 
00089 
00090 
00092 #define flagsSingleParameter                    \
00093     required,           singleItem,     notEnumerated,  reserved,   \
00094     reserved,           reserved,       reserved,       reserved,   \
00095     reserved,           reserved,       reserved,       reserved,   \
00096     prepositionParam,   notFeminine,    notMasculine,   singular
00097 
00099 #define flagsListParameter                      \
00100     required,           listOfItems,    notEnumerated,  reserved,   \
00101     reserved,           reserved,       reserved,       reserved,   \
00102     reserved,           reserved,       reserved,       reserved,   \
00103     prepositionParam,   notFeminine,    notMasculine,   singular
00104 
00106 #define flagsEnumeratedParameter                \
00107     required,           singleItem,     enumerated,     reserved,   \
00108     reserved,           reserved,       reserved,       reserved,   \
00109     reserved,           reserved,       reserved,       reserved,   \
00110     prepositionParam,   notFeminine,    notMasculine,   singular
00111 
00114 #define flagsEnumeratedListParameter            \
00115     required,           listOfItems,    enumerated,     reserved,   \
00116     reserved,           reserved,       reserved,       reserved,   \
00117     reserved,           reserved,       reserved,       reserved,   \
00118     prepositionParam,   notFeminine,    notMasculine,   singular
00119 
00121 #define flagsOptionalSingleParameter            \
00122     optional,           singleItem,     notEnumerated,  reserved,   \
00123     reserved,           reserved,       reserved,       reserved,   \
00124     reserved,           reserved,       reserved,       reserved,   \
00125     prepositionParam,   notFeminine,    notMasculine,   singular
00126 
00128 #define flagsOptionalListParameter              \
00129     optional,           listOfItems,    notEnumerated,  reserved,   \
00130     reserved,           reserved,       reserved,       reserved,   \
00131     reserved,           reserved,       reserved,       reserved,   \
00132     prepositionParam,   notFeminine,    notMasculine,   singular
00133 
00135 #define flagsOptionalEnumeratedParameter        \
00136     optional,           singleItem,     enumerated,     reserved,   \
00137     reserved,           reserved,       reserved,       reserved,   \
00138     reserved,           reserved,       reserved,       reserved,   \
00139     prepositionParam,   notFeminine,    notMasculine,   singular
00140 
00143 #define flagsOptionalEnumeratedListParameter    \
00144     optional,           listOfItems,    enumerated,     reserved,   \
00145     reserved,           reserved,       reserved,       reserved,   \
00146     reserved,           reserved,       reserved,       reserved,   \
00147     prepositionParam,   notFeminine,    notMasculine,   singular
00148 
00149 // Flags for object properties:
00152 
00154 #define flagsSingleProperty                     \
00155     reserved,           singleItem,     notEnumerated,  readWrite,  \
00156     reserved,           reserved,       reserved,       reserved,   \
00157     reserved,           reserved,       reserved,       reserved,   \
00158     noApostrophe,       notFeminine,    notMasculine,   singular
00159 
00161 #define flagsListProperty                       \
00162     reserved,           listOfItems,    notEnumerated,  readWrite,  \
00163     reserved,           reserved,       reserved,       reserved,   \
00164     reserved,           reserved,       reserved,       reserved,   \
00165     noApostrophe,       notFeminine,    notMasculine,   singular
00166 
00168 #define flagsEnumeratedProperty                 \
00169     reserved,           singleItem,     enumerated,     readWrite,  \
00170     reserved,           reserved,       reserved,       reserved,   \
00171     reserved,           reserved,       reserved,       reserved,   \
00172     noApostrophe,       notFeminine,    notMasculine,   singular
00173 
00176 #define flagsEnumeratedListProperty             \
00177     reserved,           listOfItems,    enumerated,     readWrite,  \
00178     reserved,           reserved,       reserved,       reserved,   \
00179     reserved,           reserved,       reserved,       reserved,   \
00180     noApostrophe,       notFeminine,    notMasculine,   singular
00181 
00182 // Flags for direct dictionary parameters:
00183 
00185 
00188 #define flagsOptionalEnumeratedChangesDirect    \
00189     directParamOptional,    singleItem, enumerated, changesState,   \
00190     reserved,               reserved,   reserved,   reserved,       \
00191     reserved,               reserved,   reserved,   reserved,       \
00192     reserved,               reserved,   reserved,   reserved
00193 
00196 #define flagsEnumeratedChangesDirect    \
00197     directParamRequired,    singleItem, enumerated, changesState,   \
00198     reserved,               reserved,   reserved,   reserved,       \
00199     reserved,               reserved,   reserved,   reserved,       \
00200     reserved,               reserved,   reserved,   reserved
00201 
00204 #define flagsEnumeratedDirect   \
00205     directParamRequired,    singleItem, enumerated, doesntChangeState,  \
00206     reserved,               reserved,   reserved,   reserved,           \
00207     reserved,               reserved,   reserved,   reserved,           \
00208     reserved,               reserved,   reserved,   reserved
00209 
00212 #define flagsChangesDirect  \
00213     directParamRequired,    singleItem, notEnumerated,  changesState,   \
00214     reserved,               reserved,   reserved,       reserved,       \
00215     reserved,               reserved,   reserved,       reserved,       \
00216     reserved,               reserved,   reserved,       reserved
00217 
00220 #define flagsListChangesDirect  \
00221     directParamRequired,    listOfItems,    notEnumerated,  changesState,   \
00222     reserved,               reserved,       reserved,       reserved,       \
00223     reserved,               reserved,       reserved,       reserved,       \
00224     reserved,               reserved,       reserved,       reserved
00225 
00226 //-------------------------------------------------------------------------------
00227 //  Handy short cuts.
00228 //-------------------------------------------------------------------------------
00229 
00231 
00236 #define NO_REPLY        \
00237     noReply,            \
00238     "",                 \
00239     replyRequired,  singleItem, notEnumerated,  notTightBindingFunction,    \
00240     reserved,       reserved,   reserved,       reserved,                   \
00241     reserved,       reserved,   reserved,       reserved,                   \
00242     verbEvent,      reserved,   reserved,       reserved
00243 
00247 #define IMAGE_DIRECT_PARAMETER  \
00248     typeImageReference,         \
00249     "",                         \
00250     flagsOptionalEnumeratedChangesDirect
00251 
00253     // end defgroup
00255 //-------------------------------------------------------------------------------
00256 
00257 // NOTE: 1/21/98 (Ace) I'm going to leave these conditional defines in this
00258 // file to keep PITerminology devoid of conditionals:
00259 
00260 /* Normalize the AppleScript terminology */
00261 
00262 #if MSWindows   // These items come from AppleScript
00263 
00264 #define CFDataRef void*
00265 
00266 #ifndef AE_DESC_ENUMS
00267 #define AE_DESC_ENUMS
00268 
00269 
00270 #define  typeBoolean                   'bool'
00271 #define  typeChar                      'TEXT'
00272 #define  typeText                      'TEXT'
00273 
00274 
00275 /* Preferred numeric Apple event descriptor types */
00276 #define  typeSInt16                    'shor'
00277 #define  typeSInt32                    'long'
00278 #define  typeUInt32                    'magn'
00279 #define  typeSInt64                    'comp'
00280 #define  typeIEEE32BitFloatingPoint    'sing'
00281 #define  typeIEEE64BitFloatingPoint    'doub'
00282 #define  type128BitFloatingPoint       'ldbl'
00283 #define  typeDecimalStruct             'decm'
00284 
00285 /* Non-preferred Apple event descriptor types */
00286 #define  typeSMInt                     typeSInt16
00287 #define  typeShortInteger              typeSInt16
00288 #ifndef typeInteger
00289 #define  typeInteger                   typeSInt32
00290 #else
00291 #if (typeInteger != 'long')
00292     this_is_integer_trouble
00293 #endif
00294 #endif
00295 #define  typeLongInteger               typeSInt32
00296 #define  typeMagnitude                 typeUInt32
00297 #define  typeComp                      typeSInt64
00298 #define  typeSMFloat                   typeIEEE32BitFloatingPoint
00299 #define  typeShortFloat                typeIEEE32BitFloatingPoint
00300 #ifndef typeFloat
00301 #define  typeFloat                     typeIEEE64BitFloatingPoint
00302 #else
00303 #if (typeFloat != 'doub')
00304     this_is_float_trouble
00305 #endif
00306 #endif
00307 #define  typeLongFloat                 typeIEEE64BitFloatingPoint
00308 #define  typeExtended                  'exte'
00309 
00310 /* More Apple event descriptor types */
00311 #define  typeAEList                    'list'
00312 #define  typeAERecord                  'reco'
00313 #define  typeAppleEvent                'aevt'
00314 #define  typeEventRecord               'evrc'
00315 #define  typeTrue                      'true'
00316 #define  typeFalse                     'fals'
00317 #define  typeAlias                     'alis'   /// \deprecated Please use typeBookmark instead
00318 #define  typeEnumerated                'enum'
00319 #define  typeType                      'type'
00320 #define  typeAppParameters             'appa'
00321 #define  typeProperty                  'prop'
00322 #define  typeFSS                       'fss '
00323 #define  typeFSRef                     'fsrf'   /// \deprecated Please use typeXPlatFileSpec
00324 #define  typeKeyword                   'keyw'
00325 #define  typeSectionH                  'sect'
00326 #define  typeWildCard                  '****'
00327 #define  typeApplSignature             'sign'
00328 #define  typeQDRectangle               'qdrt'
00329 #define  typeFixed                     'fixd'
00330 #define  typeProcessSerialNumber       'psn '
00331 #define  typeApplicationURL            'aprl'
00332 #define  typeNull                      'null'
00333 
00334 #endif // AE_DESC_ENUMS
00335 
00337 #define roman                   0        
00338 #define english                 0        
00339 #define japanese                11       
00341 #ifndef noReply
00342 #define noReply                 'null'
00343 #endif
00344 
00345 #ifndef __APPLEEVENTS__
00346 
00347 #define typeObjectSpecifier     'obj '   
00350 #endif /* __APPLEEVENTS __ */
00351 
00352 #if !INSIDE_PHOTOSHOP
00353 
00354 // The plug-ins need this stuff, but don't use the Universal Headers, so
00355 // we must provide it for them.
00356 
00357 #define formName                'name'
00358 
00359 #ifndef __AEOBJECTS__
00360 #define formAbsolutePosition    'indx'
00361 #define formPropertyID          'prop'
00362 #define formRelativePosition    'rele'
00363 #endif /* __AEOBJECTS__ */
00364 
00365 #endif  // !INSIDE_PHOTOSHOP
00366 
00367 #endif /* MSWindows */
00368 
00369 #if INSIDE_PHOTOSHOP || !defined(keySelection)
00370 #define keySelection            'fsel'  
00371 #endif
00372 
00373 #define typePath                'Pth '  
00375 #if MSWindows
00376 #define typePlatformFilePath    typePath
00377 #else
00378 #define typePlatformFilePath    typeAlias
00379 #endif
00380 
00381 
00382 //-------------------------------------------------------------------------------
00383 
00384 #ifndef Rez
00385 
00386 //-------------------------------------------------------------------------------
00387 
00392 
00393 
00394 
00409 #define PIHasTerminologyProperty    0x6873746DL /* 'hstm' <PITerminology> Has <aete, 0> resource:
00410                                                         version number
00411                                                         classID:        Object or event class
00412                                                         eventID:        For events (typeNull otherwise)
00413                                                         terminologyID:  'aete' resource ID (ignored if PITerminologyProperty)
00414                                                         scopeString:    Unique string present if
00415                                                                         AppleScript not supported
00416                                                 */
00417 
00422 #define PITerminologyProperty       0x74726D6EL /* 'trmn' <aete> Used internally as terminology cache.
00423                                                     If present it is used instead of an aete resource.
00424                                                 */
00425 
00429 
00431 
00434 
00436 typedef int32 PIDialogRecordOptions;
00437 
00441 enum
00442     {
00443     plugInDialogOptional,       
00444     plugInDialogRequired,       
00445     plugInDialogNone            
00446     };
00447 
00449 typedef int32 PIDialogPlayOptions;
00450 
00454 enum
00455     {
00456     plugInDialogDontDisplay,    
00457     plugInDialogDisplay,        
00458     plugInDialogSilent          
00461     };
00463 //-------------------------------------------------------------------------------
00464 //  Flags returned by GetKey. Low order word corresponds to AppleEvent flags.
00465 //-------------------------------------------------------------------------------
00466 
00471 
00472 
00473 
00477 #define actionSimpleParameter       0x00000000L
00478 #define actionEnumeratedParameter   0x00002000L
00479 #define actionListParameter         0x00004000L
00480 #define actionOptionalParameter     0x00008000L
00481 
00482 #define actionObjectParameter       0x80000000L
00483 #define actionScopedParameter       0x40000000L
00484 #define actionStringIDParameter     0x20000000L
00485 
00489 
00490 //-------------------------------------------------------------------------------
00491 
00492 typedef Handle PIDescriptorHandle;    
00494 typedef struct PIOpaqueWriteDescriptor* PIWriteDescriptor;  
00495 typedef struct PIOpaqueReadDescriptor*  PIReadDescriptor;   
00497 typedef uint32  DescriptorEventID;   
00498 typedef uint32  DescriptorClassID;   
00500 typedef uint32  DescriptorKeyID;    
00501 typedef uint32  DescriptorTypeID;   
00502 typedef uint32  DescriptorUnitID;   
00503 typedef uint32  DescriptorEnumID;   
00505 typedef uint32  DescriptorEnumTypeID; 
00508 typedef uint32  DescriptorFormID;   
00510 typedef DescriptorKeyID DescriptorKeyIDArray[]; 
00515 #if PRAGMA_STRUCT_ALIGN
00516 #pragma options align=mac68k
00517 #endif
00518 
00519 #if MSWindows
00520 #pragma pack(push,1)
00521 #endif
00522 
00541 typedef struct PITerminology
00542     {
00543     int32   version;           
00544     OSType  classID;           
00545     OSType  eventID;           
00546     int16   terminologyID;     
00548     char    scopeString[1];    
00555     } PITerminology;
00556 
00557 #if PRAGMA_STRUCT_ALIGN
00558 #pragma options align=reset
00559 #endif
00560 
00561 #if MSWindows
00562 #pragma pack(pop)
00563 #endif
00564 
00565 #define PITerminologyMinSize 15
00566 
00567 #if PRAGMA_STRUCT_ALIGN
00568 #pragma options align=mac68k
00569 #endif
00570 
00575 typedef struct PIDescriptorSimpleReference
00576     {
00577     DescriptorTypeID    desiredClass;  
00578     DescriptorKeyID     keyForm;       
00580     struct _keyData
00581         {
00582         Str255              name;     
00583         int32               index;    
00584         DescriptorTypeID    type;     
00585         DescriptorEnumID    value;    
00586         }               keyData;
00587     } PIDescriptorSimpleReference;
00588 
00589 #if PRAGMA_STRUCT_ALIGN
00590 #pragma options align=reset
00591 #endif
00592 
00593 //-------------------------------------------------------------------------------
00594 
00595 #ifdef __cplusplus
00596 extern "C"
00597     {
00598 #endif
00599 
00645 //-------------------------------------------------------------------------------
00647 
00648 
00656 typedef MACPASCAL PIWriteDescriptor (*OpenWriteDescriptorProc)(void);
00657 
00666 typedef MACPASCAL OSErr (*CloseWriteDescriptorProc)(PIWriteDescriptor, PIDescriptorHandle*);
00667 
00675 typedef MACPASCAL OSErr (*PutIntegerProc)(PIWriteDescriptor, DescriptorKeyID, int32);
00676 
00684 typedef MACPASCAL OSErr (*PutFloatProc)(PIWriteDescriptor, DescriptorKeyID, const real64*);
00685 
00694 typedef MACPASCAL OSErr (*PutUnitFloatProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorUnitID, const real64*);
00695 
00703 typedef MACPASCAL OSErr (*PutBooleanProc)(PIWriteDescriptor, DescriptorKeyID, Boolean);
00704 
00712 typedef MACPASCAL OSErr (*PutTextProc)(PIWriteDescriptor, DescriptorKeyID, Handle);
00713 
00721 typedef MACPASCAL OSErr (*PutAliasProc)(PIWriteDescriptor, DescriptorKeyID, Handle);
00722 
00732 typedef MACPASCAL OSErr (*PutEnumeratedProc)(PIWriteDescriptor, DescriptorKeyID key, DescriptorTypeID type, DescriptorEnumID value);
00733 
00741 typedef MACPASCAL OSErr (*PutClassProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorTypeID);
00742 
00751 typedef MACPASCAL OSErr (*PutSimpleReferenceProc)(PIWriteDescriptor, DescriptorKeyID, const PIDescriptorSimpleReference*);
00752 
00761 typedef MACPASCAL OSErr (*PutObjectProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorTypeID, PIDescriptorHandle);
00762 
00770 typedef MACPASCAL OSErr (*PutCountProc)(PIWriteDescriptor, DescriptorKeyID, uint32 count);
00771 
00779 typedef MACPASCAL OSErr (*PutStringProc)(PIWriteDescriptor, DescriptorKeyID, ConstStr255Param);
00780 
00781 // Scoped classes are not for use by plug-ins in Photoshop 4.0:
00782 typedef MACPASCAL OSErr (*PutScopedClassProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorTypeID);
00783 typedef MACPASCAL OSErr (*PutScopedObjectProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorTypeID, PIDescriptorHandle);
00784 
00785 //-------------------------------------------------------------------------------
00787 
00788 
00799 typedef MACPASCAL PIReadDescriptor (*OpenReadDescriptorProc)(PIDescriptorHandle, DescriptorKeyIDArray);
00800 
00809 typedef MACPASCAL OSErr (*CloseReadDescriptorProc)(PIReadDescriptor);
00810 
00826 typedef MACPASCAL Boolean (*GetKeyProc)(PIReadDescriptor, DescriptorKeyID* key, DescriptorTypeID* type, int32* flags);
00827 
00836 typedef MACPASCAL OSErr (*GetIntegerProc)(PIReadDescriptor, int32*);
00837 
00846 typedef MACPASCAL OSErr (*GetFloatProc)(PIReadDescriptor, real64*);
00847 
00857 typedef MACPASCAL OSErr (*GetUnitFloatProc)(PIReadDescriptor, DescriptorUnitID*, real64*);
00858 
00867 typedef MACPASCAL OSErr (*GetBooleanProc)(PIReadDescriptor, Boolean*);
00868 
00877 typedef MACPASCAL OSErr (*GetTextProc)(PIReadDescriptor, Handle*);
00878 
00887 typedef MACPASCAL OSErr (*GetAliasProc)(PIReadDescriptor, Handle*);
00888 
00897 typedef MACPASCAL OSErr (*GetEnumeratedProc)(PIReadDescriptor, DescriptorEnumID*);
00898 
00907 typedef MACPASCAL OSErr (*GetClassProc)(PIReadDescriptor, DescriptorTypeID*);
00908 
00917 typedef MACPASCAL OSErr (*GetSimpleReferenceProc)(PIReadDescriptor, PIDescriptorSimpleReference*);
00918 
00929 typedef MACPASCAL OSErr (*GetObjectProc)(PIReadDescriptor, DescriptorTypeID*, PIDescriptorHandle*);
00930 
00937 typedef MACPASCAL OSErr (*GetCountProc)(PIReadDescriptor, uint32*);
00938 
00947 typedef MACPASCAL OSErr (*GetStringProc)(PIReadDescriptor, Str255*);
00948 
00964 typedef MACPASCAL OSErr (*GetPinnedIntegerProc)(PIReadDescriptor, int32 min, int32 max, int32*);
00965 
00981 typedef MACPASCAL OSErr (*GetPinnedFloatProc)(PIReadDescriptor, const real64* min, const real64* max, real64*);
00982 
00999 typedef MACPASCAL OSErr (*GetPinnedUnitFloatProc)(PIReadDescriptor, const real64* min, const real64* max, DescriptorUnitID*, real64*);
01001 //-------------------------------------------------------------------------------
01002 
01003 #ifdef __cplusplus
01004     }
01005 #endif
01006 
01007 //-------------------------------------------------------------------------------
01008 //  WriteDescriptorProcs structure.
01009 //-------------------------------------------------------------------------------
01010 
01011 // Version:
01012 #define kCurrentWriteDescriptorProcsVersion 0
01013 
01014 #if PRAGMA_STRUCT_ALIGN
01015 #pragma options align=mac68k
01016 #endif
01017 
01023 typedef struct WriteDescriptorProcs
01024     {
01025     int16 writeDescriptorProcsVersion;    
01026     int16 numWriteDescriptorProcs;        
01028     OpenWriteDescriptorProc     openWriteDescriptorProc;  
01029     CloseWriteDescriptorProc    closeWriteDescriptorProc; 
01031     PutIntegerProc              putIntegerProc;    
01032     PutFloatProc                putFloatProc;      
01033     PutUnitFloatProc            putUnitFloatProc;  
01034     PutBooleanProc              putBooleanProc;    
01035     PutTextProc                 putTextProc;       
01036     PutAliasProc                putAliasProc;      
01038     PutEnumeratedProc           putEnumeratedProc;  
01039     PutClassProc                putClassProc;       
01040     PutSimpleReferenceProc      putSimpleReferenceProc;  
01041     PutObjectProc               putObjectProc;      
01043     PutCountProc                putCountProc;       
01045     PutStringProc               putStringProc;      
01048     PutScopedClassProc          putScopedClassProc;  
01050     PutScopedObjectProc         putScopedObjectProc; 
01052     } WriteDescriptorProcs;
01053 
01054 #if PRAGMA_STRUCT_ALIGN
01055 #pragma options align=reset
01056 #endif
01057 
01058 // Count:
01059 #define kCurrentWriteDescriptorProcsCount \
01060     ((sizeof(WriteDescriptorProcs) - offsetof(WriteDescriptorProcs, openWriteDescriptorProc)) / sizeof(void*))
01061 
01062 //-------------------------------------------------------------------------------
01063 //  ReadDescriptorProcs structure.
01064 //-------------------------------------------------------------------------------
01065 
01066 // Version:
01067 #define kCurrentReadDescriptorProcsVersion 0
01068 
01069 #if PRAGMA_STRUCT_ALIGN
01070 #pragma options align=mac68k
01071 #endif
01072 
01078 typedef struct ReadDescriptorProcs
01079     {
01080     int16 readDescriptorProcsVersion;    
01081     int16 numReadDescriptorProcs;        
01083     OpenReadDescriptorProc      openReadDescriptorProc;    
01084     CloseReadDescriptorProc     closeReadDescriptorProc;   
01085     GetKeyProc                  getKeyProc;         
01087     GetIntegerProc              getIntegerProc;     
01088     GetFloatProc                getFloatProc;       
01089     GetUnitFloatProc            getUnitFloatProc;   
01090     GetBooleanProc              getBooleanProc;     
01091     GetTextProc                 getTextProc;        
01092     GetAliasProc                getAliasProc;       
01094     GetEnumeratedProc           getEnumeratedProc;  
01095     GetClassProc                getClassProc;       
01096     GetSimpleReferenceProc      getSimpleReferenceProc;  
01097     GetObjectProc               getObjectProc;      
01099     GetCountProc                getCountProc;       
01101     GetStringProc               getStringProc;      
01102     GetPinnedIntegerProc        getPinnedIntegerProc;   
01103     GetPinnedFloatProc          getPinnedFloatProc;     
01104     GetPinnedUnitFloatProc      getPinnedUnitFloatProc; 
01106     } ReadDescriptorProcs;
01107 
01108 #if PRAGMA_STRUCT_ALIGN
01109 #pragma options align=reset
01110 #endif
01111 
01112 // Count:
01113 #define kCurrentReadDescriptorProcsCount \
01114     ((sizeof(ReadDescriptorProcs) - offsetof(ReadDescriptorProcs, openReadDescriptorProc)) / sizeof(void*))
01115 
01116 //-------------------------------------------------------------------------------
01117 //  PIDescriptorParameters structure.
01118 //-------------------------------------------------------------------------------
01119 
01120 // Version of the Descriptor Parameters structure.
01121 #define kCurrentDescriptorParametersVersion 0
01122 
01123 #if PRAGMA_STRUCT_ALIGN
01124 #pragma options align=mac68k
01125 #endif
01126 
01131 typedef struct PIDescriptorParameters
01132     {
01133     int16                   descriptorParametersVersion;  
01134     int16                   playInfo;                     
01136     int16                   recordInfo;                   
01139     PIDescriptorHandle      descriptor;                   
01141     WriteDescriptorProcs*   writeDescriptorProcs;         
01142     ReadDescriptorProcs*    readDescriptorProcs;          
01143     } PIDescriptorParameters;
01144 
01145 #if PRAGMA_STRUCT_ALIGN
01146 #pragma options align=reset
01147 #endif
01148  // end ingroup DescriptorSuite
01150 
01151 //-------------------------------------------------------------------------------
01152 //  Window notify suite.
01153 //-------------------------------------------------------------------------------
01154 
01181 #if !MSWindows
01182 
01183 
01185 #define kPSWindowNotifySuite    "482963f4-3ea1-11d1-8da3-00c04fd5f7ee"
01186 
01187 #define kPSWindowNotifySuiteVersion 1
01188 
01189 #ifdef __cplusplus
01190 extern "C"
01191     {
01192 #endif
01193 
01200     struct EventRecord;
01201 
01202     typedef void (*PIWindowNotifier)(const struct EventRecord* event, void* data);
01203 
01204 #ifdef __cplusplus
01205     }
01206 #endif
01207 
01211 typedef struct PSWindowNotifyProcs
01212     {
01220     SPAPI OSErr (*AddNotify)(void* window, PIWindowNotifier notifier, void* data);
01221 
01227     SPAPI OSErr (*RemoveNotify)(void* window);
01228 
01229 } PSWindowNotifyProcs;
01230 
01231 #endif
01232 
01235 //-------------------------------------------------------------------------------
01236 
01240 typedef struct _ADsc*   PIActionDescriptor;
01241 
01245 typedef struct _ALst*   PIActionList;
01246 
01250 typedef struct _ARef*   PIActionReference;
01251 
01252 // other define for this is in ASZStringSuite.h;  placed here for SuspendHistory
01253 #ifndef ASZString_defined
01254 #define ASZString_defined
01255 struct ASZByteRun;
01256 typedef struct ASZByteRun *ASZString;
01257 #endif
01258 
01259 //-------------------------------------------------------------------------------
01260 //  ActionControl suite.  Available only in Automation plug-ins.
01261 //-------------------------------------------------------------------------------
01262 
01291 
01292 #define kPSActionControlSuite           "bc1e4d70-f953-11d0-8d9f-00c04fd5f7ee"
01293 
01295 #define kPSActionControlSuiteVersion        6   // Current version
01296 #define kPSActionControlSuiteVersion5       5   // CC 2015 release, Version 16.0
01297 #define kPSActionControlSuiteVersion4       4   // CC 2015 release, Version 16.0
01298 #define kPSActionControlSuiteVersion3       3   // CS5 release, Version 12.0
01299 #define kPSActionControlSuiteVersion2       2   // Original suite
01300 
01301 #ifdef __cplusplus
01302 extern "C"
01303     {
01304 #endif
01305 
01314     typedef void (*PIEventNotifier)(DescriptorEventID eventID, PIActionDescriptor descriptor, PIDialogRecordOptions options, void* data);
01315 
01326     typedef void (*PICommandNotifier)(uint32 commandID, OSErr result, DescriptorEventID eventID, PIActionDescriptor descriptor, PIDialogRecordOptions options, void* data);
01327 
01334     typedef SPErr (*PISuspendProc)(void *data);
01335 
01336 #ifdef __cplusplus
01337     }
01338 #endif
01339 
01343 typedef struct PSActionControlProcs
01344     {
01345 
01355     SPAPI OSErr (*Play)(PIActionDescriptor* result, DescriptorEventID event, PIActionDescriptor descriptor, PIDialogPlayOptions options);
01356 
01368     SPAPI OSErr (*Get)(PIActionDescriptor* result, PIActionReference reference);
01369 
01376     SPAPI OSErr (*StringIDToTypeID)(const char* stringID, DescriptorTypeID* typeID);
01377 
01385     SPAPI OSErr (*TypeIDToStringID)(DescriptorTypeID typeID, char* stringID, uint32 stringLength);
01386 
01400     SPAPI OSErr (*AddNotify)(SPPluginRef ref, DescriptorEventID event, PIEventNotifier notifier, void* data);
01401 
01409     SPAPI OSErr (*RemoveNotify)(SPPluginRef ref, DescriptorEventID event);
01410 
01424     SPAPI OSErr (*SuspendHistory)(PIActionReference reference, PISuspendProc proc, void* procData, ASZString operationName);
01425 
01435     SPAPI OSErr (*MakeStringAlias)(const char*  newStringID, const char* existingStringID);
01436 
01454     SPAPI OSErr (*AddNotifyLevel1)(SPPluginRef ref, DescriptorEventID event, PIEventNotifier notifier, void* data);
01455 
01472     SPAPI OSErr (*PostCommand)(SPPluginRef ref, DescriptorEventID event, PIActionDescriptor descriptor, PIDialogPlayOptions options, PICommandNotifier notifier, void* data, uint32* commandID);
01473 
01486     SPAPI OSErr (*CancelCommand)(SPPluginRef ref, uint32 commandID);
01487 
01494     SPAPI OSErr (*ConvertAliasHandleToBookmark)(Handle aliasHandle, CFDataRef* bookmark);
01495 
01502     SPAPI OSErr (*ConvertBookmarkToAliasHandle)(CFDataRef bookmark, Handle* aliasHandle);
01503 
01520     SPAPI OSErr (*AddUniversalNotifier)(SPPluginRef ref, DescriptorEventID event, PIEventNotifier notifier, void* data, uint32 options);
01521 
01529     SPAPI OSErr (*RemoveUniversalNotifier)(SPPluginRef ref, DescriptorEventID event);
01530 
01531     } PSActionControlProcs;
01532 /* @} */
01533 
01537 typedef struct PSActionControlProcs4
01538 {
01539     SPAPI OSErr (*Play)(PIActionDescriptor* result, DescriptorEventID event, PIActionDescriptor descriptor, PIDialogPlayOptions options);
01540     SPAPI OSErr (*Get)(PIActionDescriptor* result, PIActionReference reference);
01541     SPAPI OSErr (*StringIDToTypeID)(const char* stringID, DescriptorTypeID* typeID);
01542     SPAPI OSErr (*TypeIDToStringID)(DescriptorTypeID typeID, char* stringID, uint32 stringLength);
01543     SPAPI OSErr (*AddNotify)(SPPluginRef ref, DescriptorEventID event, PIEventNotifier notifier, void* data);
01544     SPAPI OSErr (*RemoveNotify)(SPPluginRef ref, DescriptorEventID event);
01545     SPAPI OSErr (*SuspendHistory)(PIActionReference reference, PISuspendProc proc, void* procData, ASZString operationName);
01546     SPAPI OSErr (*MakeStringAlias)(const char*  newStringID, const char* existingStringID);
01547     SPAPI OSErr (*AddNotifyLevel1)(SPPluginRef ref, DescriptorEventID event, PIEventNotifier notifier, void* data);
01548 } PSActionControlProcs4;
01549 /* @} */
01550 
01554 typedef struct PSActionControlProcsOld
01555 {
01556     SPAPI OSErr (*Play)(PIActionDescriptor* result, DescriptorEventID event, PIActionDescriptor descriptor, PIDialogPlayOptions options);
01557     SPAPI OSErr (*Get)(PIActionDescriptor* result, PIActionReference reference);
01558     SPAPI OSErr (*StringIDToTypeID)(const char* stringID, DescriptorTypeID* typeID);
01559     SPAPI OSErr (*TypeIDToStringID)(DescriptorTypeID typeID, char* stringID, uint32 stringLength);
01560     SPAPI OSErr (*AddNotify)(SPPluginRef ref, DescriptorEventID event, PIEventNotifier notifier, void* data);
01561     SPAPI OSErr (*RemoveNotify)(SPPluginRef ref, DescriptorEventID event);
01562     SPAPI OSErr (*SuspendHistory)(PIActionReference reference, PISuspendProc proc, void* procData, ASZString operationName);
01563     SPAPI OSErr (*MakeStringAlias)(const char*  newStringID, const char* existingStringID);
01564 } PSActionControlProcsOld;
01565 /* @} */
01566 
01567 //-------------------------------------------------------------------------------
01568 //  Basic Action control suite.  Available to non-Automation plug-ins.
01569 //-------------------------------------------------------------------------------
01570 
01598 
01599 #define kPSBasicActionControlSuite          "3eb7c480-8797-11d1-8da7-00c04fd5f7ee"
01600 
01601 #define kPSBasicActionControlSuiteVersion       3
01602 
01603 #define kPSBasicActionControlSuiteVersion2      2
01604 
01605 #define kPSBasicActionControlSuitePrevVersion   1
01606 
01610 typedef struct PSBasicActionControlProcs
01611     {
01612 
01622     SPAPI OSErr (*Get)(PIActionDescriptor* result, PIActionReference reference);
01623 
01630     SPAPI OSErr (*StringIDToTypeID)(const char* stringID,   DescriptorTypeID* typeID);
01631 
01639     SPAPI OSErr (*TypeIDToStringID)(DescriptorTypeID typeID, char* stringID, uint32 stringLength);
01640 
01650     SPAPI OSErr (*MakeStringAlias)(const char* newStringID, const char* existingStringID);
01651 
01658     SPAPI OSErr (*ConvertAliasHandleToBookmark)(Handle aliasHandle, CFDataRef* bookmark);
01659 
01666     SPAPI OSErr (*ConvertBookmarkToAliasHandle)(CFDataRef bookmark, Handle* aliasHandle);
01667 
01668     } PSBasicActionControlProcs;
01669 
01673 typedef struct PSBasicActionControlProcsOld
01674 {
01675     SPAPI OSErr (*Get)(PIActionDescriptor* result, PIActionReference reference);
01676     SPAPI OSErr (*StringIDToTypeID)(const char* stringID,   DescriptorTypeID* typeID);
01677     SPAPI OSErr (*TypeIDToStringID)(DescriptorTypeID typeID, char* stringID, uint32 stringLength);
01678     SPAPI OSErr (*MakeStringAlias)(const char* newStringID, const char* existingStringID);
01679 } PSBasicActionControlProcsOld;
01680 
01684 //-------------------------------------------------------------------------------
01685 //  DescriptorRegistry suite.  Use to pass descriptors between plug-ins or
01686 //  save parameters between invocations.
01687 //-------------------------------------------------------------------------------
01688 
01717 
01718 #define kPSDescriptorRegistrySuite          "61e608b0-40fd-11d1-8da3-00c04fd5f7ee"
01719 
01720 #define kPSDescriptorRegistrySuiteVersion   1
01721 
01725 typedef struct PSDescriptorRegistryProcs
01726     {
01727 
01736     SPAPI OSErr (*Register)(const char* key, PIActionDescriptor descriptor, Boolean isPersistent);
01737 
01743     SPAPI OSErr (*Erase)(const char* key);
01744 
01752     SPAPI OSErr (*Get)(const char* key, PIActionDescriptor* descriptor);
01753 
01754     } PSDescriptorRegistryProcs;
01755 
01756 /* @} */
01757 
01758 //-------------------------------------------------------------------------------
01759 //  ActionDescriptor suite.  Use for putting keys and objects into descriptors,
01760 //  getting them out of descriptors, and other descriptor management.
01761 //-------------------------------------------------------------------------------
01790 
01791 #define kPSActionDescriptorSuite            "df135115-c769-11d0-8079-00c04fd7ec47"
01792 
01793 #define kPSActionDescriptorSuiteVersion     5
01794 
01795 // #define kPSActionDescriptorSuiteVersion4 4
01797 #define kPSActionDescriptorSuiteVersion3    3
01798 
01799 #define kPSActionDescriptorSuiteVersion2    2
01800 
01804 typedef struct PSActionDescriptorProcs
01805     {
01811     SPAPI OSErr (*Make)(PIActionDescriptor* descriptor);
01812 
01818     SPAPI OSErr (*Free)(PIActionDescriptor descriptor);
01819 
01828     SPAPI OSErr (*GetType)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorTypeID* type);
01829 
01839     SPAPI OSErr (*GetKey)(PIActionDescriptor descriptor, uint32 index, DescriptorKeyID* key);
01840 
01849     SPAPI OSErr (*HasKey)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean* hasKey);
01850 
01857     SPAPI OSErr (*GetCount)(PIActionDescriptor descriptor, uint32* count);
01858 
01866     SPAPI OSErr (*IsEqual)(PIActionDescriptor descriptor, PIActionDescriptor other, Boolean* isEqual);
01867 
01874     SPAPI OSErr (*Erase)(PIActionDescriptor descriptor, DescriptorKeyID );
01875 
01881     SPAPI OSErr (*Clear)(PIActionDescriptor descriptor);
01882 
01890     SPAPI OSErr (*PutInteger)(PIActionDescriptor descriptor, DescriptorKeyID key, int32 value);
01891 
01899     SPAPI OSErr (*PutFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, real64 value);
01900 
01909     SPAPI OSErr (*PutUnitFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorUnitID unit, real64 value);
01910 
01918     SPAPI OSErr (*PutString)(PIActionDescriptor descriptor, DescriptorKeyID key,  const char* cstrValue);
01919 
01927     SPAPI OSErr (*PutBoolean)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean value);
01928 
01936     SPAPI OSErr (*PutList)(PIActionDescriptor descriptor, DescriptorKeyID key,  PIActionList value);
01937 
01949     SPAPI OSErr (*PutObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID type,  PIActionDescriptor value);
01950 
01959     SPAPI OSErr (*PutGlobalObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID type,  PIActionDescriptor value);
01960 
01969     SPAPI OSErr (*PutEnumerated)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorEnumTypeID type, DescriptorEnumID value);
01970 
01978     SPAPI OSErr (*PutReference)(PIActionDescriptor descriptor, DescriptorKeyID key,  PIActionReference value);
01979 
01987     SPAPI OSErr (*PutClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID value);
01988 
01996     SPAPI OSErr (*PutGlobalClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID value);
01997 
02005     SPAPI OSErr (*PutAlias)(PIActionDescriptor descriptor, DescriptorKeyID key, Handle value);
02006 
02014     SPAPI OSErr (*GetInteger)(PIActionDescriptor descriptor, DescriptorKeyID key, int32* value);
02015 
02023     SPAPI OSErr (*GetFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, real64* value);
02024 
02033     SPAPI OSErr (*GetUnitFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorUnitID* unit, real64* value);
02034 
02042     SPAPI OSErr (*GetStringLength)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32* stringLength);
02043 
02052     SPAPI OSErr (*GetString)(PIActionDescriptor descriptor, DescriptorKeyID key, char* cstrValue, uint32 maxLength);
02053 
02061     SPAPI OSErr (*GetBoolean)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean* value);
02062 
02070     SPAPI OSErr (*GetList)(PIActionDescriptor descriptor, DescriptorKeyID key, PIActionList* value);
02071 
02083     SPAPI OSErr (*GetObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* type, PIActionDescriptor* value);
02084 
02093     SPAPI OSErr (*GetGlobalObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* type, PIActionDescriptor* value);
02094 
02103     SPAPI OSErr (*GetEnumerated)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorEnumTypeID* type, DescriptorEnumID* value);
02104 
02112     SPAPI OSErr (*GetReference)(PIActionDescriptor descriptor, DescriptorKeyID key, PIActionReference* value);
02113 
02121     SPAPI OSErr (*GetClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* value);
02122 
02130     SPAPI OSErr (*GetGlobalClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* value);
02131 
02140     SPAPI OSErr (*GetAlias)(PIActionDescriptor descriptor, DescriptorKeyID key, Handle* value);
02141 
02149     SPAPI OSErr (*HasKeys)(PIActionDescriptor descriptor, DescriptorKeyIDArray requiredKeys, Boolean* hasKeys);
02150 
02159     SPAPI OSErr (*PutIntegers)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32 count,  int32* );
02160 
02169     SPAPI OSErr (*GetIntegers)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32 count, int32* value);
02170 
02181     SPAPI OSErr (*AsHandle)(PIActionDescriptor descriptor, PIDescriptorHandle* value);
02182 
02193     SPAPI OSErr (*HandleToDescriptor)(PIDescriptorHandle value, PIActionDescriptor* descriptor);
02194 
02202     SPAPI OSErr (*PutZString)(PIActionDescriptor descriptor, DescriptorKeyID key, ASZString zstring);
02203 
02211     SPAPI OSErr (*GetZString)(PIActionDescriptor descriptor, DescriptorKeyID key, ASZString* zstring);
02212 
02221     SPAPI OSErr (*PutData)(PIActionDescriptor descriptor, DescriptorKeyID key, int32 length, void* value);
02222 
02230     SPAPI OSErr (*GetDataLength)(PIActionDescriptor descriptor, DescriptorKeyID key, int32* value);
02231 
02239     SPAPI OSErr (*GetData)(PIActionDescriptor descriptor, DescriptorKeyID key, void* value);
02240 
02248     SPAPI OSErr (*PutInteger64)(PIActionDescriptor descriptor, DescriptorKeyID key, int64 value);
02249 
02257     SPAPI OSErr (*GetInteger64)(PIActionDescriptor descriptor, DescriptorKeyID key, int64* value);
02258 
02265     SPAPI OSErr (*MakeWithClass)(DescriptorClassID value, PIActionDescriptor* descriptor);
02266 
02273     SPAPI OSErr (*GetDescriptorClass)(PIActionDescriptor descriptor, DescriptorClassID* value);
02274 
02287     SPAPI OSErr (*Copy)(PIActionDescriptor descriptor, PIActionDescriptor* copy);
02288 
02297     SPAPI OSErr (*PutBookmark)(PIActionDescriptor descriptor, DescriptorKeyID key, CFDataRef value);
02298 
02308     SPAPI OSErr (*GetBookmark)(PIActionDescriptor descriptor, DescriptorKeyID key, CFDataRef* value);
02309 
02310     } PSActionDescriptorProcs;
02311 /* @} */
02312 
02316 typedef struct PSActionDescriptorProcs3
02317 {
02318     SPAPI OSErr (*Make)(PIActionDescriptor* descriptor);
02319     SPAPI OSErr (*Free)(PIActionDescriptor descriptor);
02320     SPAPI OSErr (*GetType)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorTypeID* type);
02321     SPAPI OSErr (*GetKey)(PIActionDescriptor descriptor, uint32 index, DescriptorKeyID* key);
02322     SPAPI OSErr (*HasKey)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean* hasKey);
02323     SPAPI OSErr (*GetCount)(PIActionDescriptor descriptor, uint32* count);
02324     SPAPI OSErr (*IsEqual)(PIActionDescriptor descriptor, PIActionDescriptor other, Boolean* isEqual);
02325     SPAPI OSErr (*Erase)(PIActionDescriptor descriptor, DescriptorKeyID );
02326     SPAPI OSErr (*Clear)(PIActionDescriptor descriptor);
02327     SPAPI OSErr (*PutInteger)(PIActionDescriptor descriptor, DescriptorKeyID key, int32 value);
02328     SPAPI OSErr (*PutFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, real64 value);
02329     SPAPI OSErr (*PutUnitFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorUnitID unit, real64 value);
02330     SPAPI OSErr (*PutString)(PIActionDescriptor descriptor, DescriptorKeyID key,  const char* cstrValue);
02331     SPAPI OSErr (*PutBoolean)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean value);
02332     SPAPI OSErr (*PutList)(PIActionDescriptor descriptor, DescriptorKeyID key,  PIActionList value);
02333     SPAPI OSErr (*PutObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID type,  PIActionDescriptor value);
02334     SPAPI OSErr (*PutGlobalObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID type,  PIActionDescriptor value);
02335     SPAPI OSErr (*PutEnumerated)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorEnumTypeID type, DescriptorEnumID value);
02336     SPAPI OSErr (*PutReference)(PIActionDescriptor descriptor, DescriptorKeyID key,  PIActionReference value);
02337     SPAPI OSErr (*PutClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID value);
02338     SPAPI OSErr (*PutGlobalClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID value);
02339     SPAPI OSErr (*PutAlias)(PIActionDescriptor descriptor, DescriptorKeyID key, Handle value);
02340     SPAPI OSErr (*GetInteger)(PIActionDescriptor descriptor, DescriptorKeyID key, int32* value);
02341     SPAPI OSErr (*GetFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, real64* value);
02342     SPAPI OSErr (*GetUnitFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorUnitID* unit, real64* value);
02343     SPAPI OSErr (*GetStringLength)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32* stringLength);
02344     SPAPI OSErr (*GetString)(PIActionDescriptor descriptor, DescriptorKeyID key, char* cstrValue, uint32 maxLength);
02345     SPAPI OSErr (*GetBoolean)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean* value);
02346     SPAPI OSErr (*GetList)(PIActionDescriptor descriptor, DescriptorKeyID key, PIActionList* value);
02347     SPAPI OSErr (*GetObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* type, PIActionDescriptor* value);
02348     SPAPI OSErr (*GetGlobalObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* type, PIActionDescriptor* value);
02349     SPAPI OSErr (*GetEnumerated)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorEnumTypeID* type, DescriptorEnumID* value);
02350     SPAPI OSErr (*GetReference)(PIActionDescriptor descriptor, DescriptorKeyID key, PIActionReference* value);
02351     SPAPI OSErr (*GetClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* value);
02352     SPAPI OSErr (*GetGlobalClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* value);
02353     SPAPI OSErr (*GetAlias)(PIActionDescriptor descriptor, DescriptorKeyID key, Handle* value);
02354     SPAPI OSErr (*HasKeys)(PIActionDescriptor descriptor, DescriptorKeyIDArray requiredKeys, Boolean* hasKeys);
02355     SPAPI OSErr (*PutIntegers)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32 count,  int32* );
02356     SPAPI OSErr (*GetIntegers)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32 count, int32* value);
02357     SPAPI OSErr (*AsHandle)(PIActionDescriptor descriptor, PIDescriptorHandle* value);
02358     SPAPI OSErr (*HandleToDescriptor)(PIDescriptorHandle value, PIActionDescriptor* descriptor);
02359     SPAPI OSErr (*PutZString)(PIActionDescriptor descriptor, DescriptorKeyID key, ASZString zstring);
02360     SPAPI OSErr (*GetZString)(PIActionDescriptor descriptor, DescriptorKeyID key, ASZString* zstring);
02361     SPAPI OSErr (*PutData)(PIActionDescriptor descriptor, DescriptorKeyID key, int32 length, void* value);
02362     SPAPI OSErr (*GetDataLength)(PIActionDescriptor descriptor, DescriptorKeyID key, int32* value);
02363     SPAPI OSErr (*GetData)(PIActionDescriptor descriptor, DescriptorKeyID key, void* value);
02364     SPAPI OSErr (*PutInteger64)(PIActionDescriptor descriptor, DescriptorKeyID key, int64 value);
02365     SPAPI OSErr (*GetInteger64)(PIActionDescriptor descriptor, DescriptorKeyID key, int64* value);
02366 } PSActionDescriptorProcs3;
02367 /* @} */
02368 
02372 typedef struct PSActionDescriptorProcs2
02373 {
02374     SPAPI OSErr (*Make)(PIActionDescriptor* descriptor);
02375     SPAPI OSErr (*Free)(PIActionDescriptor descriptor);
02376     SPAPI OSErr (*GetType)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorTypeID* type);
02377     SPAPI OSErr (*GetKey)(PIActionDescriptor descriptor, uint32 index, DescriptorKeyID* key);
02378     SPAPI OSErr (*HasKey)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean* hasKey);
02379     SPAPI OSErr (*GetCount)(PIActionDescriptor descriptor, uint32* count);
02380     SPAPI OSErr (*IsEqual)(PIActionDescriptor descriptor, PIActionDescriptor other, Boolean* isEqual);
02381     SPAPI OSErr (*Erase)(PIActionDescriptor descriptor, DescriptorKeyID );
02382     SPAPI OSErr (*Clear)(PIActionDescriptor descriptor);
02383     SPAPI OSErr (*PutInteger)(PIActionDescriptor descriptor, DescriptorKeyID key, int32 value);
02384     SPAPI OSErr (*PutFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, real64 value);
02385     SPAPI OSErr (*PutUnitFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorUnitID unit, real64 value);
02386     SPAPI OSErr (*PutString)(PIActionDescriptor descriptor, DescriptorKeyID key,  const char* cstrValue);
02387     SPAPI OSErr (*PutBoolean)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean value);
02388     SPAPI OSErr (*PutList)(PIActionDescriptor descriptor, DescriptorKeyID key,  PIActionList value);
02389     SPAPI OSErr (*PutObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID type,  PIActionDescriptor value);
02390     SPAPI OSErr (*PutGlobalObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID type,  PIActionDescriptor value);
02391     SPAPI OSErr (*PutEnumerated)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorEnumTypeID type, DescriptorEnumID value);
02392     SPAPI OSErr (*PutReference)(PIActionDescriptor descriptor, DescriptorKeyID key,  PIActionReference value);
02393     SPAPI OSErr (*PutClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID value);
02394     SPAPI OSErr (*PutGlobalClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID value);
02395     SPAPI OSErr (*PutAlias)(PIActionDescriptor descriptor, DescriptorKeyID key, Handle value);
02396     SPAPI OSErr (*GetInteger)(PIActionDescriptor descriptor, DescriptorKeyID key, int32* value);
02397     SPAPI OSErr (*GetFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, real64* value);
02398     SPAPI OSErr (*GetUnitFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorUnitID* unit, real64* value);
02399     SPAPI OSErr (*GetStringLength)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32* stringLength);
02400     SPAPI OSErr (*GetString)(PIActionDescriptor descriptor, DescriptorKeyID key, char* cstrValue, uint32 maxLength);
02401     SPAPI OSErr (*GetBoolean)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean* value);
02402     SPAPI OSErr (*GetList)(PIActionDescriptor descriptor, DescriptorKeyID key, PIActionList* value);
02403     SPAPI OSErr (*GetObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* type, PIActionDescriptor* value);
02404     SPAPI OSErr (*GetGlobalObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* type, PIActionDescriptor* value);
02405     SPAPI OSErr (*GetEnumerated)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorEnumTypeID* type, DescriptorEnumID* value);
02406     SPAPI OSErr (*GetReference)(PIActionDescriptor descriptor, DescriptorKeyID key, PIActionReference* value);
02407     SPAPI OSErr (*GetClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* value);
02408     SPAPI OSErr (*GetGlobalClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* value);
02409     SPAPI OSErr (*GetAlias)(PIActionDescriptor descriptor, DescriptorKeyID key, Handle* value);
02410     SPAPI OSErr (*HasKeys)(PIActionDescriptor descriptor, DescriptorKeyIDArray requiredKeys, Boolean* hasKeys);
02411     SPAPI OSErr (*PutIntegers)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32 count,  int32* );
02412     SPAPI OSErr (*GetIntegers)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32 count, int32* value);
02413     SPAPI OSErr (*AsHandle)(PIActionDescriptor descriptor, PIDescriptorHandle* value);
02414     SPAPI OSErr (*HandleToDescriptor)(PIDescriptorHandle value, PIActionDescriptor* descriptor);
02415     SPAPI OSErr (*PutZString)(PIActionDescriptor descriptor, DescriptorKeyID key, ASZString zstring);
02416     SPAPI OSErr (*GetZString)(PIActionDescriptor descriptor, DescriptorKeyID key, ASZString* zstring);
02417     SPAPI OSErr (*PutData)(PIActionDescriptor descriptor, DescriptorKeyID key, int32 length, void* value);
02418     SPAPI OSErr (*GetDataLength)(PIActionDescriptor descriptor, DescriptorKeyID key, int32* value);
02419     SPAPI OSErr (*GetData)(PIActionDescriptor descriptor, DescriptorKeyID key, void* value);
02420 } PSActionDescriptorProcs2;
02421 /* @} */
02422 
02423 //-------------------------------------------------------------------------------
02424 //  ActionList suite.  Use to manage lists of keys.
02425 //-------------------------------------------------------------------------------
02454 
02455 #define kPSActionListSuite          "df135116-c769-11d0-8079-00c04fd7ec47"
02456 
02457 #define kPSActionListSuiteVersion       3
02458 
02459 #define kPSActionListSuiteVersion2      2
02460 
02461 #define kPSActionListSuiteVersion1      1
02462 
02466 typedef struct PSActionListProcs
02467     {
02468 
02474     SPAPI OSErr (*Make)(PIActionList* actionList);
02475 
02481     SPAPI OSErr (*Free)(PIActionList actionList);
02482 
02494     SPAPI OSErr (*GetType)(PIActionList list, uint32 index, DescriptorTypeID* value);
02495 
02502     SPAPI OSErr (*GetCount)(PIActionList list, uint32* value);
02503 
02510     SPAPI OSErr (*PutInteger)(PIActionList list, int32 value);
02511 
02518     SPAPI OSErr (*PutFloat)(PIActionList list, real64 value);
02519 
02527     SPAPI OSErr (*PutUnitFloat)(PIActionList list, DescriptorUnitID unit, real64 value);
02528 
02535     SPAPI OSErr (*PutString)(PIActionList list, const char* cstr);
02536 
02543     SPAPI OSErr (*PutBoolean)(PIActionList list, Boolean value);
02544 
02551     SPAPI OSErr (*PutList)(PIActionList list, PIActionList value);
02552 
02563     SPAPI OSErr (*PutObject)(PIActionList list, DescriptorClassID type, PIActionDescriptor value);
02564 
02575     SPAPI OSErr (*PutGlobalObject)(PIActionList list, DescriptorClassID type, PIActionDescriptor value);
02576 
02584     SPAPI OSErr (*PutEnumerated)(PIActionList list, DescriptorEnumTypeID type, DescriptorEnumID value);
02585 
02592     SPAPI OSErr (*PutReference)(PIActionList list, PIActionReference value);
02593 
02600     SPAPI OSErr (*PutClass)(PIActionList list, DescriptorClassID value);
02601 
02608     SPAPI OSErr (*PutGlobalClass)(PIActionList list, DescriptorClassID value);
02609 
02616     SPAPI OSErr (*PutAlias)(PIActionList list, Handle value);
02617 
02628     SPAPI OSErr (*GetInteger)(PIActionList list, uint32 index, int32* value);
02629 
02640     SPAPI OSErr (*GetFloat)(PIActionList list, uint32 index, real64* value);
02641 
02653     SPAPI OSErr (*GetUnitFloat)(PIActionList list, uint32 index, DescriptorUnitID* unit, real64* value);
02654 
02662     SPAPI OSErr (*GetStringLength)(PIActionList list, uint32 index, uint32* stringLength);
02663 
02672     SPAPI OSErr (*GetString)(PIActionList list, uint32 index, char* cstr, uint32 maxLength);
02673 
02681     SPAPI OSErr (*GetBoolean)(PIActionList list, uint32 index, Boolean* value);
02682 
02690     SPAPI OSErr (*GetList)(PIActionList list, uint32 index, PIActionList* actionList);
02691 
02703     SPAPI OSErr (*GetObject)(PIActionList list, uint32 index, DescriptorClassID* type, PIActionDescriptor* value);
02704 
02716     SPAPI OSErr (*GetGlobalObject)(PIActionList list, uint32 index, DescriptorClassID* type, PIActionDescriptor* value);
02717 
02726     SPAPI OSErr (*GetEnumerated)(PIActionList list, uint32 index, DescriptorEnumTypeID* type, DescriptorEnumID* value);
02727 
02735     SPAPI OSErr (*GetReference)(PIActionList list, uint32 index, PIActionReference* value);
02736 
02744     SPAPI OSErr (*GetClass)(PIActionList list, uint32 index, DescriptorClassID* value);
02745 
02753     SPAPI OSErr (*GetGlobalClass)(PIActionList list, uint32 index, DescriptorClassID* value);
02754 
02763     SPAPI OSErr (*GetAlias)(PIActionList list, uint32 index, Handle* aliasHandle);
02764 
02772     SPAPI OSErr (*PutIntegers)(PIActionList list, uint32 count, int32* );
02773 
02781     SPAPI OSErr (*GetIntegers)(PIActionList list, uint32 count, int32* value);
02782 
02790     SPAPI OSErr (*PutData)(PIActionList list, int32 length, void* data);
02791 
02799     SPAPI OSErr (*GetDataLength)(PIActionList list, uint32 index, int32* length);
02800 
02808     SPAPI OSErr (*GetData)(PIActionList list, uint32 index, void* value);
02809 
02816     SPAPI OSErr (*PutZString)(PIActionList list, ASZString zstring);
02817 
02825     SPAPI OSErr (*GetZString)(PIActionList list, uint32 index, ASZString* zstring);
02826 
02833     SPAPI OSErr (*PutInteger64)(PIActionList list, int64 value);
02834 
02846     SPAPI OSErr (*GetInteger64)(PIActionList list, uint32 index, int64 *value);
02847 
02855     SPAPI OSErr (*PutBookmark)(PIActionList list, CFDataRef value);
02856 
02866     SPAPI OSErr (*GetBookmark)(PIActionList list, uint32 index, CFDataRef* bookmark);
02867 
02868     } PSActionListProcs;
02869 /* @} */
02870 
02874 typedef struct PSActionListProcs2
02875 {
02876     SPAPI OSErr (*Make)(PIActionList* actionList);
02877     SPAPI OSErr (*Free)(PIActionList actionList);
02878     SPAPI OSErr (*GetType)(PIActionList list, uint32 index, DescriptorTypeID* value);
02879     SPAPI OSErr (*GetCount)(PIActionList list, uint32* value);
02880     SPAPI OSErr (*PutInteger)(PIActionList list, int32 value);
02881     SPAPI OSErr (*PutFloat)(PIActionList list, real64 value);
02882     SPAPI OSErr (*PutUnitFloat)(PIActionList list, DescriptorUnitID unit, real64 value);
02883     SPAPI OSErr (*PutString)(PIActionList list, const char* cstr);
02884     SPAPI OSErr (*PutBoolean)(PIActionList list, Boolean value);
02885     SPAPI OSErr (*PutList)(PIActionList list, PIActionList value);
02886     SPAPI OSErr (*PutObject)(PIActionList list, DescriptorClassID type, PIActionDescriptor value);
02887     SPAPI OSErr (*PutGlobalObject)(PIActionList list, DescriptorClassID type, PIActionDescriptor value);
02888     SPAPI OSErr (*PutEnumerated)(PIActionList list, DescriptorEnumTypeID type, DescriptorEnumID value);
02889     SPAPI OSErr (*PutReference)(PIActionList list, PIActionReference value);
02890     SPAPI OSErr (*PutClass)(PIActionList list, DescriptorClassID value);
02891     SPAPI OSErr (*PutGlobalClass)(PIActionList list, DescriptorClassID value);
02892     SPAPI OSErr (*PutAlias)(PIActionList list, Handle value);
02893     SPAPI OSErr (*GetInteger)(PIActionList list, uint32 index, int32* value);
02894     SPAPI OSErr (*GetFloat)(PIActionList list, uint32 index, real64* value);
02895     SPAPI OSErr (*GetUnitFloat)(PIActionList list, uint32 index, DescriptorUnitID* unit, real64* value);
02896     SPAPI OSErr (*GetStringLength)(PIActionList list, uint32 index, uint32* stringLength);
02897     SPAPI OSErr (*GetString)(PIActionList list, uint32 index, char* cstr, uint32 maxLength);
02898     SPAPI OSErr (*GetBoolean)(PIActionList list, uint32 index, Boolean* value);
02899     SPAPI OSErr (*GetList)(PIActionList list, uint32 index, PIActionList* actionList);
02900     SPAPI OSErr (*GetObject)(PIActionList list, uint32 index, DescriptorClassID* type, PIActionDescriptor* value);
02901     SPAPI OSErr (*GetGlobalObject)(PIActionList list, uint32 index, DescriptorClassID* type, PIActionDescriptor* value);
02902     SPAPI OSErr (*GetEnumerated)(PIActionList list, uint32 index, DescriptorEnumTypeID* type, DescriptorEnumID* value);
02903     SPAPI OSErr (*GetReference)(PIActionList list, uint32 index, PIActionReference* value);
02904     SPAPI OSErr (*GetClass)(PIActionList list, uint32 index, DescriptorClassID* value);
02905     SPAPI OSErr (*GetGlobalClass)(PIActionList list, uint32 index, DescriptorClassID* value);
02906     SPAPI OSErr (*GetAlias)(PIActionList list, uint32 index, Handle* aliasHandle);
02907     SPAPI OSErr (*PutIntegers)(PIActionList list, uint32 count, int32* );
02908     SPAPI OSErr (*GetIntegers)(PIActionList list, uint32 count, int32* value);
02909     SPAPI OSErr (*PutData)(PIActionList list, int32 length, void* data);
02910     SPAPI OSErr (*GetDataLength)(PIActionList list, uint32 index, int32* length);
02911     SPAPI OSErr (*GetData)(PIActionList list, uint32 index, void* value);
02912     SPAPI OSErr (*PutZString)(PIActionList list, ASZString zstring);
02913     SPAPI OSErr (*GetZString)(PIActionList list, uint32 index, ASZString* zstring);
02914     SPAPI OSErr (*PutInteger64)(PIActionList list, int64 value);
02915     SPAPI OSErr (*GetInteger64)(PIActionList list, uint32 index, int64 *value);
02916 } PSActionListProcs2;
02917 /* @} */
02918 
02922 typedef struct PSActionListProcs1
02923 {
02924     SPAPI OSErr (*Make)(PIActionList* actionList);
02925     SPAPI OSErr (*Free)(PIActionList actionList);
02926     SPAPI OSErr (*GetType)(PIActionList list, uint32 index, DescriptorTypeID* value);
02927     SPAPI OSErr (*GetCount)(PIActionList list, uint32* value);
02928     SPAPI OSErr (*PutInteger)(PIActionList list, int32 value);
02929     SPAPI OSErr (*PutFloat)(PIActionList list, real64 value);
02930     SPAPI OSErr (*PutUnitFloat)(PIActionList list, DescriptorUnitID unit, real64 value);
02931     SPAPI OSErr (*PutString)(PIActionList list, const char* cstr);
02932     SPAPI OSErr (*PutBoolean)(PIActionList list, Boolean value);
02933     SPAPI OSErr (*PutList)(PIActionList list, PIActionList value);
02934     SPAPI OSErr (*PutObject)(PIActionList list, DescriptorClassID type, PIActionDescriptor value);
02935     SPAPI OSErr (*PutGlobalObject)(PIActionList list, DescriptorClassID type, PIActionDescriptor value);
02936     SPAPI OSErr (*PutEnumerated)(PIActionList list, DescriptorEnumTypeID type, DescriptorEnumID value);
02937     SPAPI OSErr (*PutReference)(PIActionList list, PIActionReference value);
02938     SPAPI OSErr (*PutClass)(PIActionList list, DescriptorClassID value);
02939     SPAPI OSErr (*PutGlobalClass)(PIActionList list, DescriptorClassID value);
02940     SPAPI OSErr (*PutAlias)(PIActionList list, Handle value);
02941     SPAPI OSErr (*GetInteger)(PIActionList list, uint32 index, int32* value);
02942     SPAPI OSErr (*GetFloat)(PIActionList list, uint32 index, real64* value);
02943     SPAPI OSErr (*GetUnitFloat)(PIActionList list, uint32 index, DescriptorUnitID* unit, real64* value);
02944     SPAPI OSErr (*GetStringLength)(PIActionList list, uint32 index, uint32* stringLength);
02945     SPAPI OSErr (*GetString)(PIActionList list, uint32 index, char* cstr, uint32 maxLength);
02946     SPAPI OSErr (*GetBoolean)(PIActionList list, uint32 index, Boolean* value);
02947     SPAPI OSErr (*GetList)(PIActionList list, uint32 index, PIActionList* actionList);
02948     SPAPI OSErr (*GetObject)(PIActionList list, uint32 index, DescriptorClassID* type, PIActionDescriptor* value);
02949     SPAPI OSErr (*GetGlobalObject)(PIActionList list, uint32 index, DescriptorClassID* type, PIActionDescriptor* value);
02950     SPAPI OSErr (*GetEnumerated)(PIActionList list, uint32 index, DescriptorEnumTypeID* type, DescriptorEnumID* value);
02951     SPAPI OSErr (*GetReference)(PIActionList list, uint32 index, PIActionReference* value);
02952     SPAPI OSErr (*GetClass)(PIActionList list, uint32 index, DescriptorClassID* value);
02953     SPAPI OSErr (*GetGlobalClass)(PIActionList list, uint32 index, DescriptorClassID* value);
02954     SPAPI OSErr (*GetAlias)(PIActionList list, uint32 index, Handle* aliasHandle);
02955     SPAPI OSErr (*PutIntegers)(PIActionList list, uint32 count, int32* );
02956     SPAPI OSErr (*GetIntegers)(PIActionList list, uint32 count, int32* value);
02957     SPAPI OSErr (*PutData)(PIActionList list, int32 length, void* data);
02958     SPAPI OSErr (*GetDataLength)(PIActionList list, uint32 index, int32* length);
02959     SPAPI OSErr (*GetData)(PIActionList list, uint32 index, void* value);
02960     SPAPI OSErr (*PutZString)(PIActionList list, ASZString zstring);
02961     SPAPI OSErr (*GetZString)(PIActionList list, uint32 index, ASZString* zstring);
02962 } PSActionListProcs1;
02963 /* @} */
02964 
02965 //-------------------------------------------------------------------------------
02966 //  ActionReference suite.  Use to build references to objects to be able to
02967 //  get/set properties and target events.
02968 //-------------------------------------------------------------------------------
02969 
03000 
03001 #define kPSActionReferenceSuite         "df135117-c769-11d0-8079-00c04fd7ec47"
03002 
03003 #define kPSActionReferenceSuiteVersion  3
03004 #define kPSActionReferenceSuitePrevVersion  2
03005 
03009 typedef struct PSActionReferenceProcs
03010     {
03011 
03017     SPAPI OSErr (*Make)(PIActionReference* reference);
03018 
03024     SPAPI OSErr (*Free)(PIActionReference ref);
03025 
03035     SPAPI OSErr (*GetForm)(PIActionReference ref, DescriptorFormID* value);
03036 
03043     SPAPI OSErr (*GetDesiredClass)(PIActionReference ref, DescriptorClassID* value);
03044 
03052     SPAPI OSErr (*PutName)(PIActionReference ref, DescriptorClassID desiredClass, const char* cstrValue);
03053 
03061     SPAPI OSErr (*PutIndex)(PIActionReference ref, DescriptorClassID desiredClass, uint32 value);
03062 
03070     SPAPI OSErr (*PutIdentifier)(PIActionReference ref, DescriptorClassID desiredClass, uint32 value);
03071 
03079     SPAPI OSErr (*PutOffset)(PIActionReference ref, DescriptorClassID desiredClass, int32 value);
03080 
03090     SPAPI OSErr (*PutEnumerated)(PIActionReference ref, DescriptorClassID desiredClass, DescriptorEnumTypeID type, DescriptorEnumID value);
03091 
03099     SPAPI OSErr (*PutProperty)(PIActionReference ref, DescriptorClassID desiredClass, DescriptorKeyID value);
03100 
03107     SPAPI OSErr (*PutClass)(PIActionReference ref, DescriptorClassID desiredClass);
03108 
03115     SPAPI OSErr (*GetNameLength)(PIActionReference ref, uint32* stringLength);
03116 
03124     SPAPI OSErr (*GetName)(PIActionReference ref, char* name, uint32 maxLength);
03125 
03132     SPAPI OSErr (*GetIndex)(PIActionReference ref, uint32* value);
03133 
03140     SPAPI OSErr (*GetIdentifier)(PIActionReference ref, uint32* value);
03141 
03148     SPAPI OSErr (*GetOffset)(PIActionReference ref, int32* value);
03149 
03157     SPAPI OSErr (*GetEnumerated)(PIActionReference ref, DescriptorEnumTypeID* type, DescriptorEnumID* enumValue);
03158 
03165     SPAPI OSErr (*GetProperty)(PIActionReference ref, DescriptorKeyID* value);
03166 
03175     SPAPI OSErr (*GetContainer)(PIActionReference ref, PIActionReference* value);
03176 
03184     SPAPI OSErr (*PutNameZString)(PIActionReference ref, DescriptorClassID desiredClass, ASZString zstring);
03185 
03193     SPAPI OSErr (*GetNameZString)(PIActionReference ref, ASZString* zstring);
03194 
03195     } PSActionReferenceProcs;
03203 typedef struct PSActionReferenceProcsOld
03204 {
03205     SPAPI OSErr (*Make)(PIActionReference* reference);
03206     SPAPI OSErr (*Free)(PIActionReference ref);
03207     SPAPI OSErr (*GetForm)(PIActionReference ref, DescriptorFormID* value);
03208     SPAPI OSErr (*GetDesiredClass)(PIActionReference ref, DescriptorClassID* value);
03209     SPAPI OSErr (*PutName)(PIActionReference ref, DescriptorClassID desiredClass, const char* cstrValue);
03210     SPAPI OSErr (*PutIndex)(PIActionReference ref, DescriptorClassID desiredClass, uint32 value);
03211     SPAPI OSErr (*PutIdentifier)(PIActionReference ref, DescriptorClassID desiredClass, uint32 value);
03212     SPAPI OSErr (*PutOffset)(PIActionReference ref, DescriptorClassID desiredClass, int32 value);
03213     SPAPI OSErr (*PutEnumerated)(PIActionReference ref, DescriptorClassID desiredClass, DescriptorEnumTypeID type, DescriptorEnumID value);
03214     SPAPI OSErr (*PutProperty)(PIActionReference ref, DescriptorClassID desiredClass, DescriptorKeyID value);
03215     SPAPI OSErr (*PutClass)(PIActionReference ref, DescriptorClassID desiredClass);
03216     SPAPI OSErr (*GetNameLength)(PIActionReference ref, uint32* stringLength);
03217     SPAPI OSErr (*GetName)(PIActionReference ref, char* name, uint32 maxLength);
03218     SPAPI OSErr (*GetIndex)(PIActionReference ref, uint32* value);
03219     SPAPI OSErr (*GetIdentifier)(PIActionReference ref, uint32* value);
03220     SPAPI OSErr (*GetOffset)(PIActionReference ref, int32* value);
03221     SPAPI OSErr (*GetEnumerated)(PIActionReference ref, DescriptorEnumTypeID* type, DescriptorEnumID* enumValue);
03222     SPAPI OSErr (*GetProperty)(PIActionReference ref, DescriptorKeyID* value);
03223     SPAPI OSErr (*GetContainer)(PIActionReference ref, PIActionReference* value);
03224 } PSActionReferenceProcsOld;
03229 //-------------------------------------------------------------------------------
03230 //  PIActionParameters structure.
03231 //-------------------------------------------------------------------------------
03232 #if PRAGMA_STRUCT_ALIGN
03233 #pragma options align=mac68k
03234 #endif
03235 
03236 #if MSWindows
03237 #pragma pack(push,1)
03238 #endif
03239 
03247 typedef struct PIActionParameters
03248     {
03249 
03250     PIDialogPlayOptions     playInfo;   
03252     PIDialogRecordOptions   recordInfo; 
03254     PIActionDescriptor      descriptor; 
03257     } PIActionParameters;
03258 
03259 
03260 #if PRAGMA_STRUCT_ALIGN
03261 #pragma options align=reset
03262 #endif
03263 
03264 #if MSWindows
03265 #pragma pack(pop)
03266 #endif
03267 
03268 //-------------------------------------------------------------------------------
03269 
03270 #endif // Rez
03271 
03272 //-------------------------------------------------------------------------------
03273 
03274 #endif // __PIActions_h__