00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00026 #ifndef __PIActions__ // Already defined?
00027 #define __PIActions__
00028
00029 #if PRAGMA_ONCE
00030 #pragma once
00031 #endif
00032
00033 #ifndef MSWindows
00034 #define MSWindows (MSDOS || WIN32)
00035 #endif
00036
00037 #ifndef INSIDE_PHOTOSHOP
00038 #define INSIDE_PHOTOSHOP 0
00039 #endif
00040
00041 #ifndef qiOS
00042 #define qiOS 0
00043 #endif
00044
00045 #ifdef Rez
00046
00047 #if !MSWindows && !qiOS
00048 #include <Carbon/Carbon.r>
00049 #endif
00050
00051 #else
00052
00053 #if !MSWindows && !qiOS
00054 #include <Carbon/Carbon.h>
00055 #endif
00056
00057 #include "PITypes.h"
00058 #include "SPTypes.h"
00059 #include "SPPlugs.h"
00060
00061 #endif // Rez
00062
00063
00064
00065
00066
00072
00073
00074
00076 #define flagsSingleParameter \
00077 required, singleItem, notEnumerated, reserved, \
00078 reserved, reserved, reserved, reserved, \
00079 reserved, reserved, reserved, reserved, \
00080 prepositionParam, notFeminine, notMasculine, singular
00081
00083 #define flagsListParameter \
00084 required, listOfItems, notEnumerated, reserved, \
00085 reserved, reserved, reserved, reserved, \
00086 reserved, reserved, reserved, reserved, \
00087 prepositionParam, notFeminine, notMasculine, singular
00088
00090 #define flagsEnumeratedParameter \
00091 required, singleItem, enumerated, reserved, \
00092 reserved, reserved, reserved, reserved, \
00093 reserved, reserved, reserved, reserved, \
00094 prepositionParam, notFeminine, notMasculine, singular
00095
00098 #define flagsEnumeratedListParameter \
00099 required, listOfItems, enumerated, reserved, \
00100 reserved, reserved, reserved, reserved, \
00101 reserved, reserved, reserved, reserved, \
00102 prepositionParam, notFeminine, notMasculine, singular
00103
00105 #define flagsOptionalSingleParameter \
00106 optional, singleItem, notEnumerated, reserved, \
00107 reserved, reserved, reserved, reserved, \
00108 reserved, reserved, reserved, reserved, \
00109 prepositionParam, notFeminine, notMasculine, singular
00110
00112 #define flagsOptionalListParameter \
00113 optional, listOfItems, notEnumerated, reserved, \
00114 reserved, reserved, reserved, reserved, \
00115 reserved, reserved, reserved, reserved, \
00116 prepositionParam, notFeminine, notMasculine, singular
00117
00119 #define flagsOptionalEnumeratedParameter \
00120 optional, singleItem, enumerated, reserved, \
00121 reserved, reserved, reserved, reserved, \
00122 reserved, reserved, reserved, reserved, \
00123 prepositionParam, notFeminine, notMasculine, singular
00124
00127 #define flagsOptionalEnumeratedListParameter \
00128 optional, listOfItems, enumerated, reserved, \
00129 reserved, reserved, reserved, reserved, \
00130 reserved, reserved, reserved, reserved, \
00131 prepositionParam, notFeminine, notMasculine, singular
00132
00133
00136
00138 #define flagsSingleProperty \
00139 reserved, singleItem, notEnumerated, readWrite, \
00140 reserved, reserved, reserved, reserved, \
00141 reserved, reserved, reserved, reserved, \
00142 noApostrophe, notFeminine, notMasculine, singular
00143
00145 #define flagsListProperty \
00146 reserved, listOfItems, notEnumerated, readWrite, \
00147 reserved, reserved, reserved, reserved, \
00148 reserved, reserved, reserved, reserved, \
00149 noApostrophe, notFeminine, notMasculine, singular
00150
00152 #define flagsEnumeratedProperty \
00153 reserved, singleItem, enumerated, readWrite, \
00154 reserved, reserved, reserved, reserved, \
00155 reserved, reserved, reserved, reserved, \
00156 noApostrophe, notFeminine, notMasculine, singular
00157
00160 #define flagsEnumeratedListProperty \
00161 reserved, listOfItems, enumerated, readWrite, \
00162 reserved, reserved, reserved, reserved, \
00163 reserved, reserved, reserved, reserved, \
00164 noApostrophe, notFeminine, notMasculine, singular
00165
00166
00167
00169
00172 #define flagsOptionalEnumeratedChangesDirect \
00173 directParamOptional, singleItem, enumerated, changesState, \
00174 reserved, reserved, reserved, reserved, \
00175 reserved, reserved, reserved, reserved, \
00176 reserved, reserved, reserved, reserved
00177
00180 #define flagsEnumeratedChangesDirect \
00181 directParamRequired, singleItem, enumerated, changesState, \
00182 reserved, reserved, reserved, reserved, \
00183 reserved, reserved, reserved, reserved, \
00184 reserved, reserved, reserved, reserved
00185
00188 #define flagsEnumeratedDirect \
00189 directParamRequired, singleItem, enumerated, doesntChangeState, \
00190 reserved, reserved, reserved, reserved, \
00191 reserved, reserved, reserved, reserved, \
00192 reserved, reserved, reserved, reserved
00193
00196 #define flagsChangesDirect \
00197 directParamRequired, singleItem, notEnumerated, changesState, \
00198 reserved, reserved, reserved, reserved, \
00199 reserved, reserved, reserved, reserved, \
00200 reserved, reserved, reserved, reserved
00201
00204 #define flagsListChangesDirect \
00205 directParamRequired, listOfItems, notEnumerated, changesState, \
00206 reserved, reserved, reserved, reserved, \
00207 reserved, reserved, reserved, reserved, \
00208 reserved, reserved, reserved, reserved
00209
00210
00211
00212
00213
00215
00220 #define NO_REPLY \
00221 noReply, \
00222 "", \
00223 replyRequired, singleItem, notEnumerated, notTightBindingFunction, \
00224 reserved, reserved, reserved, reserved, \
00225 reserved, reserved, reserved, reserved, \
00226 verbEvent, reserved, reserved, reserved
00227
00231 #define IMAGE_DIRECT_PARAMETER \
00232 typeImageReference, \
00233 "", \
00234 flagsOptionalEnumeratedChangesDirect
00235
00237
00239
00240
00241
00242
00243
00244
00245
00246 #if MSWindows // These items come from AppleScript
00247
00248 #ifndef AE_DESC_ENUMS
00249 #define AE_DESC_ENUMS
00250
00251
00252 #define typeBoolean 'bool'
00253 #define typeChar 'TEXT'
00254
00255
00256 #define typeSInt16 'shor'
00257 #define typeSInt32 'long'
00258 #define typeUInt32 'magn'
00259 #define typeSInt64 'comp'
00260 #define typeIEEE32BitFloatingPoint 'sing'
00261 #define typeIEEE64BitFloatingPoint 'doub'
00262 #define type128BitFloatingPoint 'ldbl'
00263 #define typeDecimalStruct 'decm'
00264
00265
00266 #define typeSMInt typeSInt16
00267 #define typeShortInteger typeSInt16
00268 #ifndef typeInteger
00269 #define typeInteger typeSInt32
00270 #else
00271 #if (typeInteger != 'long')
00272 this_is_integer_trouble
00273 #endif
00274 #endif
00275 #define typeLongInteger typeSInt32
00276 #define typeMagnitude typeUInt32
00277 #define typeComp typeSInt64
00278 #define typeSMFloat typeIEEE32BitFloatingPoint
00279 #define typeShortFloat typeIEEE32BitFloatingPoint
00280 #ifndef typeFloat
00281 #define typeFloat typeIEEE64BitFloatingPoint
00282 #else
00283 #if (typeFloat != 'doub')
00284 this_is_float_trouble
00285 #endif
00286 #endif
00287 #define typeLongFloat typeIEEE64BitFloatingPoint
00288 #define typeExtended 'exte'
00289
00290
00291 #define typeAEList 'list'
00292 #define typeAERecord 'reco'
00293 #define typeAppleEvent 'aevt'
00294 #define typeEventRecord 'evrc'
00295 #define typeTrue 'true'
00296 #define typeFalse 'fals'
00297 #define typeAlias 'alis'
00298 #define typeEnumerated 'enum'
00299 #define typeType 'type'
00300 #define typeAppParameters 'appa'
00301 #define typeProperty 'prop'
00302 #define typeFSS 'fss '
00303 #define typeFSRef 'fsrf'
00304 #define typeKeyword 'keyw'
00305 #define typeSectionH 'sect'
00306 #define typeWildCard '****'
00307 #define typeApplSignature 'sign'
00308 #define typeQDRectangle 'qdrt'
00309 #define typeFixed 'fixd'
00310 #define typeProcessSerialNumber 'psn '
00311 #define typeApplicationURL 'aprl'
00312 #define typeNull 'null'
00313
00314 #endif // AE_DESC_ENUMS
00315
00317 #define roman 0
00318 #define english 0
00319 #define japanese 11
00321 #ifndef noReply
00322 #define noReply 'null'
00323 #endif
00324
00325 #ifndef __APPLEEVENTS__
00326
00327 #define typeObjectSpecifier 'obj '
00330 #endif
00331
00332 #if !INSIDE_PHOTOSHOP
00333
00334
00335
00336
00337 #define formName 'name'
00338
00339 #ifndef __AEOBJECTS__
00340 #define formAbsolutePosition 'indx'
00341 #define formPropertyID 'prop'
00342 #define formRelativePosition 'rele'
00343 #endif
00344
00345 #endif // !INSIDE_PHOTOSHOP
00346
00347 #endif
00348
00349 #if INSIDE_PHOTOSHOP || !defined(keySelection)
00350 #define keySelection 'fsel'
00351 #endif
00352
00353 #define typePath 'Pth '
00355 #if MSWindows
00356 #define typePlatformFilePath typePath
00357 #else
00358 #define typePlatformFilePath typeAlias
00359 #endif
00360
00361
00362
00363
00364 #ifndef Rez
00365
00366
00367
00372
00373
00374
00389 #define PIHasTerminologyProperty 0x6873746DL
00390
00391
00392
00393
00394
00395
00396
00397
00402 #define PITerminologyProperty 0x74726D6EL
00403
00404
00405
00409
00411
00414
00416 typedef int32 PIDialogRecordOptions;
00417
00421 enum
00422 {
00423 plugInDialogOptional,
00424 plugInDialogRequired,
00425 plugInDialogNone
00426 };
00427
00429 typedef int32 PIDialogPlayOptions;
00430
00434 enum
00435 {
00436 plugInDialogDontDisplay,
00437 plugInDialogDisplay,
00438 plugInDialogSilent
00441 };
00443
00444
00445
00446
00451
00452
00453
00457 #define actionSimpleParameter 0x00000000L
00458 #define actionEnumeratedParameter 0x00002000L
00459 #define actionListParameter 0x00004000L
00460 #define actionOptionalParameter 0x00008000L
00461
00462 #define actionObjectParameter 0x80000000L
00463 #define actionScopedParameter 0x40000000L
00464 #define actionStringIDParameter 0x20000000L
00465
00469
00470
00471
00472 typedef Handle PIDescriptorHandle;
00474 typedef struct PIOpaqueWriteDescriptor* PIWriteDescriptor;
00475 typedef struct PIOpaqueReadDescriptor* PIReadDescriptor;
00477 typedef uint32 DescriptorEventID;
00478 typedef uint32 DescriptorClassID;
00480 typedef uint32 DescriptorKeyID;
00481 typedef uint32 DescriptorTypeID;
00482 typedef uint32 DescriptorUnitID;
00483 typedef uint32 DescriptorEnumID;
00485 typedef uint32 DescriptorEnumTypeID;
00488 typedef uint32 DescriptorFormID;
00490 typedef DescriptorKeyID DescriptorKeyIDArray[];
00495 #if PRAGMA_STRUCT_ALIGN
00496 #pragma options align=mac68k
00497 #endif
00498
00499 #if MSWindows
00500 #pragma pack(push,1)
00501 #endif
00502
00521 typedef struct PITerminology
00522 {
00523 int32 version;
00524 OSType classID;
00525 OSType eventID;
00526 int16 terminologyID;
00528 char scopeString[1];
00535 } PITerminology;
00536
00537 #if PRAGMA_STRUCT_ALIGN
00538 #pragma options align=reset
00539 #endif
00540
00541 #if MSWindows
00542 #pragma pack(pop)
00543 #endif
00544
00545 #define PITerminologyMinSize 15
00546
00547 #if PRAGMA_STRUCT_ALIGN
00548 #pragma options align=mac68k
00549 #endif
00550
00555 typedef struct PIDescriptorSimpleReference
00556 {
00557 DescriptorTypeID desiredClass;
00558 DescriptorKeyID keyForm;
00560 struct _keyData
00561 {
00562 Str255 name;
00563 int32 index;
00564 DescriptorTypeID type;
00565 DescriptorEnumID value;
00566 } keyData;
00567 } PIDescriptorSimpleReference;
00568
00569 #if PRAGMA_STRUCT_ALIGN
00570 #pragma options align=reset
00571 #endif
00572
00573
00574
00575 #ifdef __cplusplus
00576 extern "C"
00577 {
00578 #endif
00579
00625
00627
00628
00636 typedef MACPASCAL PIWriteDescriptor (*OpenWriteDescriptorProc)(void);
00637
00646 typedef MACPASCAL OSErr (*CloseWriteDescriptorProc)(PIWriteDescriptor, PIDescriptorHandle*);
00647
00655 typedef MACPASCAL OSErr (*PutIntegerProc)(PIWriteDescriptor, DescriptorKeyID, int32);
00656
00664 typedef MACPASCAL OSErr (*PutFloatProc)(PIWriteDescriptor, DescriptorKeyID, const real64*);
00665
00674 typedef MACPASCAL OSErr (*PutUnitFloatProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorUnitID, const real64*);
00675
00683 typedef MACPASCAL OSErr (*PutBooleanProc)(PIWriteDescriptor, DescriptorKeyID, Boolean);
00684
00692 typedef MACPASCAL OSErr (*PutTextProc)(PIWriteDescriptor, DescriptorKeyID, Handle);
00693
00701 typedef MACPASCAL OSErr (*PutAliasProc)(PIWriteDescriptor, DescriptorKeyID, Handle);
00702
00712 typedef MACPASCAL OSErr (*PutEnumeratedProc)(PIWriteDescriptor, DescriptorKeyID key, DescriptorTypeID type, DescriptorEnumID value);
00713
00721 typedef MACPASCAL OSErr (*PutClassProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorTypeID);
00722
00731 typedef MACPASCAL OSErr (*PutSimpleReferenceProc)(PIWriteDescriptor, DescriptorKeyID, const PIDescriptorSimpleReference*);
00732
00741 typedef MACPASCAL OSErr (*PutObjectProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorTypeID, PIDescriptorHandle);
00742
00750 typedef MACPASCAL OSErr (*PutCountProc)(PIWriteDescriptor, DescriptorKeyID, uint32 count);
00751
00759 typedef MACPASCAL OSErr (*PutStringProc)(PIWriteDescriptor, DescriptorKeyID, ConstStr255Param);
00760
00761
00762 typedef MACPASCAL OSErr (*PutScopedClassProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorTypeID);
00763 typedef MACPASCAL OSErr (*PutScopedObjectProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorTypeID, PIDescriptorHandle);
00764
00765
00767
00768
00779 typedef MACPASCAL PIReadDescriptor (*OpenReadDescriptorProc)(PIDescriptorHandle, DescriptorKeyIDArray);
00780
00789 typedef MACPASCAL OSErr (*CloseReadDescriptorProc)(PIReadDescriptor);
00790
00806 typedef MACPASCAL Boolean (*GetKeyProc)(PIReadDescriptor, DescriptorKeyID* key, DescriptorTypeID* type, int32* flags);
00807
00816 typedef MACPASCAL OSErr (*GetIntegerProc)(PIReadDescriptor, int32*);
00817
00826 typedef MACPASCAL OSErr (*GetFloatProc)(PIReadDescriptor, real64*);
00827
00837 typedef MACPASCAL OSErr (*GetUnitFloatProc)(PIReadDescriptor, DescriptorUnitID*, real64*);
00838
00847 typedef MACPASCAL OSErr (*GetBooleanProc)(PIReadDescriptor, Boolean*);
00848
00857 typedef MACPASCAL OSErr (*GetTextProc)(PIReadDescriptor, Handle*);
00858
00867 typedef MACPASCAL OSErr (*GetAliasProc)(PIReadDescriptor, Handle*);
00868
00877 typedef MACPASCAL OSErr (*GetEnumeratedProc)(PIReadDescriptor, DescriptorEnumID*);
00878
00887 typedef MACPASCAL OSErr (*GetClassProc)(PIReadDescriptor, DescriptorTypeID*);
00888
00897 typedef MACPASCAL OSErr (*GetSimpleReferenceProc)(PIReadDescriptor, PIDescriptorSimpleReference*);
00898
00909 typedef MACPASCAL OSErr (*GetObjectProc)(PIReadDescriptor, DescriptorTypeID*, PIDescriptorHandle*);
00910
00917 typedef MACPASCAL OSErr (*GetCountProc)(PIReadDescriptor, uint32*);
00918
00927 typedef MACPASCAL OSErr (*GetStringProc)(PIReadDescriptor, Str255*);
00928
00944 typedef MACPASCAL OSErr (*GetPinnedIntegerProc)(PIReadDescriptor, int32 min, int32 max, int32*);
00945
00961 typedef MACPASCAL OSErr (*GetPinnedFloatProc)(PIReadDescriptor, const real64* min, const real64* max, real64*);
00962
00979 typedef MACPASCAL OSErr (*GetPinnedUnitFloatProc)(PIReadDescriptor, const real64* min, const real64* max, DescriptorUnitID*, real64*);
00981
00982
00983 #ifdef __cplusplus
00984 }
00985 #endif
00986
00987
00988
00989
00990
00991
00992 #define kCurrentWriteDescriptorProcsVersion 0
00993
00994 #if PRAGMA_STRUCT_ALIGN
00995 #pragma options align=mac68k
00996 #endif
00997
01003 typedef struct WriteDescriptorProcs
01004 {
01005 int16 writeDescriptorProcsVersion;
01006 int16 numWriteDescriptorProcs;
01008 OpenWriteDescriptorProc openWriteDescriptorProc;
01009 CloseWriteDescriptorProc closeWriteDescriptorProc;
01011 PutIntegerProc putIntegerProc;
01012 PutFloatProc putFloatProc;
01013 PutUnitFloatProc putUnitFloatProc;
01014 PutBooleanProc putBooleanProc;
01015 PutTextProc putTextProc;
01016 PutAliasProc putAliasProc;
01018 PutEnumeratedProc putEnumeratedProc;
01019 PutClassProc putClassProc;
01020 PutSimpleReferenceProc putSimpleReferenceProc;
01021 PutObjectProc putObjectProc;
01023 PutCountProc putCountProc;
01025 PutStringProc putStringProc;
01028 PutScopedClassProc putScopedClassProc;
01030 PutScopedObjectProc putScopedObjectProc;
01032 } WriteDescriptorProcs;
01033
01034 #if PRAGMA_STRUCT_ALIGN
01035 #pragma options align=reset
01036 #endif
01037
01038
01039 #define kCurrentWriteDescriptorProcsCount \
01040 ((sizeof(WriteDescriptorProcs) - offsetof(WriteDescriptorProcs, openWriteDescriptorProc)) / sizeof(void*))
01041
01042
01043
01044
01045
01046
01047 #define kCurrentReadDescriptorProcsVersion 0
01048
01049 #if PRAGMA_STRUCT_ALIGN
01050 #pragma options align=mac68k
01051 #endif
01052
01058 typedef struct ReadDescriptorProcs
01059 {
01060 int16 readDescriptorProcsVersion;
01061 int16 numReadDescriptorProcs;
01063 OpenReadDescriptorProc openReadDescriptorProc;
01064 CloseReadDescriptorProc closeReadDescriptorProc;
01065 GetKeyProc getKeyProc;
01067 GetIntegerProc getIntegerProc;
01068 GetFloatProc getFloatProc;
01069 GetUnitFloatProc getUnitFloatProc;
01070 GetBooleanProc getBooleanProc;
01071 GetTextProc getTextProc;
01072 GetAliasProc getAliasProc;
01074 GetEnumeratedProc getEnumeratedProc;
01075 GetClassProc getClassProc;
01076 GetSimpleReferenceProc getSimpleReferenceProc;
01077 GetObjectProc getObjectProc;
01079 GetCountProc getCountProc;
01081 GetStringProc getStringProc;
01082 GetPinnedIntegerProc getPinnedIntegerProc;
01083 GetPinnedFloatProc getPinnedFloatProc;
01084 GetPinnedUnitFloatProc getPinnedUnitFloatProc;
01086 } ReadDescriptorProcs;
01087
01088 #if PRAGMA_STRUCT_ALIGN
01089 #pragma options align=reset
01090 #endif
01091
01092
01093 #define kCurrentReadDescriptorProcsCount \
01094 ((sizeof(ReadDescriptorProcs) - offsetof(ReadDescriptorProcs, openReadDescriptorProc)) / sizeof(void*))
01095
01096
01097
01098
01099
01100
01101 #define kCurrentDescriptorParametersVersion 0
01102
01103 #if PRAGMA_STRUCT_ALIGN
01104 #pragma options align=mac68k
01105 #endif
01106
01111 typedef struct PIDescriptorParameters
01112 {
01113 int16 descriptorParametersVersion;
01114 int16 playInfo;
01116 int16 recordInfo;
01119 PIDescriptorHandle descriptor;
01121 WriteDescriptorProcs* writeDescriptorProcs;
01122 ReadDescriptorProcs* readDescriptorProcs;
01123 } PIDescriptorParameters;
01124
01125 #if PRAGMA_STRUCT_ALIGN
01126 #pragma options align=reset
01127 #endif
01128
01130
01131
01132
01133
01134
01161 #if !MSWindows
01162
01163
01165 #define kPSWindowNotifySuite "482963f4-3ea1-11d1-8da3-00c04fd5f7ee"
01167 #define kPSWindowNotifySuiteVersion 1
01168
01169 #ifdef __cplusplus
01170 extern "C"
01171 {
01172 #endif
01173
01180 struct EventRecord;
01181
01182 typedef void (*PIWindowNotifier)(const EventRecord* event, void* data);
01183
01184 #ifdef __cplusplus
01185 }
01186 #endif
01187
01191 typedef struct PSWindowNotifyProcs
01192 {
01200 SPAPI OSErr (*AddNotify)(void* window, PIWindowNotifier notifier, void* data);
01201
01207 SPAPI OSErr (*RemoveNotify)(void* window);
01208
01209 } PSWindowNotifyProcs;
01210
01211 #endif
01212
01215
01216
01220 typedef struct _ADsc* PIActionDescriptor;
01221
01225 typedef struct _ALst* PIActionList;
01226
01230 typedef struct _ARef* PIActionReference;
01231
01232
01233 #ifndef ASZString_defined
01234 #define ASZString_defined
01235 struct ASZByteRun;
01236 typedef struct ASZByteRun *ASZString;
01237 #endif
01238
01239
01240
01241
01242
01271
01272 #define kPSActionControlSuite "bc1e4d70-f953-11d0-8d9f-00c04fd5f7ee"
01273
01275 #define kPSActionControlSuiteVersion 3 // Current version, but it's
01276
01278 #define kPSActionControlSuitePrevVersion 2 // compatible with version 2
01279
01280 #ifdef __cplusplus
01281 extern "C"
01282 {
01283 #endif
01284
01293 typedef void (*PIEventNotifier)(DescriptorEventID eventID, PIActionDescriptor descriptor, PIDialogRecordOptions options, void* data);
01294
01301 typedef SPErr (*PISuspendProc)(void *data);
01302
01303 #ifdef __cplusplus
01304 }
01305 #endif
01306
01310 typedef struct PSActionControlProcs
01311 {
01312
01322 SPAPI OSErr (*Play)(PIActionDescriptor* result, DescriptorEventID event, PIActionDescriptor descriptor, PIDialogPlayOptions options);
01323
01335 SPAPI OSErr (*Get)(PIActionDescriptor* result, PIActionReference reference);
01336
01343 SPAPI OSErr (*StringIDToTypeID)(const char* stringID, DescriptorTypeID* typeID);
01344
01352 SPAPI OSErr (*TypeIDToStringID)(DescriptorTypeID typeID, char* stringID, uint32 stringLength);
01353
01367 SPAPI OSErr (*AddNotify)(SPPluginRef ref, DescriptorEventID event, PIEventNotifier notifier, void* data);
01368
01376 SPAPI OSErr (*RemoveNotify)(SPPluginRef ref, DescriptorEventID event);
01377
01391 SPAPI OSErr (*SuspendHistory)(PIActionReference reference, PISuspendProc proc, void* procData, ASZString operationName);
01392
01402 SPAPI OSErr (*MakeStringAlias)(const char* newStringID, const char* existingStringID);
01403
01404 } PSActionControlProcs;
01405
01406
01407
01408
01409
01437
01438 #define kPSBasicActionControlSuite "3eb7c480-8797-11d1-8da7-00c04fd5f7ee"
01440 #define kPSBasicActionControlSuiteVersion 2
01442 #define kPSBasicActionControlSuitePrevVersion 1
01443
01447 typedef struct PSBasicActionControlProcs
01448 {
01449
01459 SPAPI OSErr (*Get)(PIActionDescriptor* result, PIActionReference reference);
01460
01467 SPAPI OSErr (*StringIDToTypeID)(const char* stringID, DescriptorTypeID* typeID);
01468
01476 SPAPI OSErr (*TypeIDToStringID)(DescriptorTypeID typeID, char* stringID, uint32 stringLength);
01477
01487 SPAPI OSErr (*MakeStringAlias)(const char* newStringID, const char* existingStringID);
01488
01489 } PSBasicActionControlProcs;
01493
01494
01495
01496
01497
01526
01527 #define kPSDescriptorRegistrySuite "61e608b0-40fd-11d1-8da3-00c04fd5f7ee"
01529 #define kPSDescriptorRegistrySuiteVersion 1
01530
01534 typedef struct PSDescriptorRegistryProcs
01535 {
01536
01545 SPAPI OSErr (*Register)(const char* key, PIActionDescriptor descriptor, Boolean isPersistent);
01546
01552 SPAPI OSErr (*Erase)(const char* key);
01553
01561 SPAPI OSErr (*Get)(const char* key, PIActionDescriptor* descriptor);
01562
01563 } PSDescriptorRegistryProcs;
01564
01565
01566
01567
01568
01569
01570
01599
01600 #define kPSActionDescriptorSuite "df135115-c769-11d0-8079-00c04fd7ec47"
01602 #define kPSActionDescriptorSuiteVersion 3
01603 #define kPSActionDescriptorSuitePrevVersion 2
01604
01608 typedef struct PSActionDescriptorProcs
01609 {
01615 SPAPI OSErr (*Make)(PIActionDescriptor* descriptor);
01616
01622 SPAPI OSErr (*Free)(PIActionDescriptor descriptor);
01623
01632 SPAPI OSErr (*GetType)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorTypeID* type);
01633
01643 SPAPI OSErr (*GetKey)(PIActionDescriptor descriptor, uint32 index, DescriptorKeyID* key);
01644
01653 SPAPI OSErr (*HasKey)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean* hasKey);
01654
01661 SPAPI OSErr (*GetCount)(PIActionDescriptor descriptor, uint32* count);
01662
01670 SPAPI OSErr (*IsEqual)(PIActionDescriptor descriptor, PIActionDescriptor other, Boolean* isEqual);
01671
01678 SPAPI OSErr (*Erase)(PIActionDescriptor descriptor, DescriptorKeyID );
01679
01685 SPAPI OSErr (*Clear)(PIActionDescriptor descriptor);
01686
01694 SPAPI OSErr (*PutInteger)(PIActionDescriptor descriptor, DescriptorKeyID key, int32 value);
01695
01703 SPAPI OSErr (*PutFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, real64 value);
01704
01713 SPAPI OSErr (*PutUnitFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorUnitID unit, real64 value);
01714
01722 SPAPI OSErr (*PutString)(PIActionDescriptor descriptor, DescriptorKeyID key, char* cstrValue);
01723
01731 SPAPI OSErr (*PutBoolean)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean value);
01732
01740 SPAPI OSErr (*PutList)(PIActionDescriptor descriptor, DescriptorKeyID key, PIActionList value);
01741
01753 SPAPI OSErr (*PutObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID type, PIActionDescriptor value);
01754
01763 SPAPI OSErr (*PutGlobalObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID type, PIActionDescriptor value);
01764
01773 SPAPI OSErr (*PutEnumerated)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorEnumTypeID type, DescriptorEnumID value);
01774
01782 SPAPI OSErr (*PutReference)(PIActionDescriptor descriptor, DescriptorKeyID key, PIActionReference value);
01783
01791 SPAPI OSErr (*PutClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID value);
01792
01800 SPAPI OSErr (*PutGlobalClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID value);
01801
01809 SPAPI OSErr (*PutAlias)(PIActionDescriptor descriptor, DescriptorKeyID key, Handle value);
01810
01818 SPAPI OSErr (*GetInteger)(PIActionDescriptor descriptor, DescriptorKeyID key, int32* value);
01819
01827 SPAPI OSErr (*GetFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, real64* value);
01828
01837 SPAPI OSErr (*GetUnitFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorUnitID* unit, real64* value);
01838
01846 SPAPI OSErr (*GetStringLength)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32* stringLength);
01847
01856 SPAPI OSErr (*GetString)(PIActionDescriptor descriptor, DescriptorKeyID key, char* cstrValue, uint32 maxLength);
01857
01865 SPAPI OSErr (*GetBoolean)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean* value);
01866
01874 SPAPI OSErr (*GetList)(PIActionDescriptor descriptor, DescriptorKeyID key, PIActionList* value);
01875
01887 SPAPI OSErr (*GetObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* type, PIActionDescriptor* value);
01888
01897 SPAPI OSErr (*GetGlobalObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* type, PIActionDescriptor* value);
01898
01907 SPAPI OSErr (*GetEnumerated)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorEnumTypeID* type, DescriptorEnumID* value);
01908
01916 SPAPI OSErr (*GetReference)(PIActionDescriptor descriptor, DescriptorKeyID key, PIActionReference* value);
01917
01925 SPAPI OSErr (*GetClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* value);
01926
01934 SPAPI OSErr (*GetGlobalClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* value);
01935
01943 SPAPI OSErr (*GetAlias)(PIActionDescriptor descriptor, DescriptorKeyID key, Handle* value);
01944
01952 SPAPI OSErr (*HasKeys)(PIActionDescriptor descriptor, DescriptorKeyIDArray requiredKeys, Boolean* hasKeys);
01953
01962 SPAPI OSErr (*PutIntegers)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32 count, int32* );
01963
01972 SPAPI OSErr (*GetIntegers)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32 count, int32* value);
01973
01984 SPAPI OSErr (*AsHandle)(PIActionDescriptor descriptor, PIDescriptorHandle* value);
01985
01996 SPAPI OSErr (*HandleToDescriptor)(PIDescriptorHandle value, PIActionDescriptor* descriptor);
01997
02005 SPAPI OSErr (*PutZString)(PIActionDescriptor descriptor, DescriptorKeyID key, ASZString zstring);
02006
02014 SPAPI OSErr (*GetZString)(PIActionDescriptor descriptor, DescriptorKeyID key, ASZString* zstring);
02015
02024 SPAPI OSErr (*PutData)(PIActionDescriptor descriptor, DescriptorKeyID key, int32 length, void* value);
02025
02033 SPAPI OSErr (*GetDataLength)(PIActionDescriptor descriptor, DescriptorKeyID key, int32* value);
02034
02042 SPAPI OSErr (*GetData)(PIActionDescriptor descriptor, DescriptorKeyID key, void* value);
02043
02051 SPAPI OSErr (*PutInteger64)(PIActionDescriptor descriptor, DescriptorKeyID key, int64 value);
02052
02060 SPAPI OSErr (*GetInteger64)(PIActionDescriptor descriptor, DescriptorKeyID key, int64* value);
02061
02062 } PSActionDescriptorProcs;
02063
02064
02065
02066
02067
02068
02097
02098 #define kPSActionListSuite "df135116-c769-11d0-8079-00c04fd7ec47"
02100 #define kPSActionListSuiteVersion 2
02101 #define kPSActionListSuitePrevVersion 1
02102
02106 typedef struct PSActionListProcs
02107 {
02108
02114 SPAPI OSErr (*Make)(PIActionList* actionList);
02115
02121 SPAPI OSErr (*Free)(PIActionList actionList);
02122
02134 SPAPI OSErr (*GetType)(PIActionList list, uint32 index, DescriptorTypeID* value);
02135
02142 SPAPI OSErr (*GetCount)(PIActionList list, uint32* value);
02143
02150 SPAPI OSErr (*PutInteger)(PIActionList list, int32 value);
02151
02158 SPAPI OSErr (*PutFloat)(PIActionList list, real64 value);
02159
02167 SPAPI OSErr (*PutUnitFloat)(PIActionList list, DescriptorUnitID unit, real64 value);
02168
02175 SPAPI OSErr (*PutString)(PIActionList list, char* cstr);
02176
02183 SPAPI OSErr (*PutBoolean)(PIActionList list, Boolean value);
02184
02191 SPAPI OSErr (*PutList)(PIActionList list, PIActionList value);
02192
02203 SPAPI OSErr (*PutObject)(PIActionList list, DescriptorClassID type, PIActionDescriptor value);
02204
02215 SPAPI OSErr (*PutGlobalObject)(PIActionList list, DescriptorClassID type, PIActionDescriptor value);
02216
02224 SPAPI OSErr (*PutEnumerated)(PIActionList list, DescriptorEnumTypeID type, DescriptorEnumID value);
02225
02232 SPAPI OSErr (*PutReference)(PIActionList list, PIActionReference value);
02233
02240 SPAPI OSErr (*PutClass)(PIActionList list, DescriptorClassID value);
02241
02248 SPAPI OSErr (*PutGlobalClass)(PIActionList list, DescriptorClassID value);
02249
02256 SPAPI OSErr (*PutAlias)(PIActionList list, Handle value);
02257
02268 SPAPI OSErr (*GetInteger)(PIActionList list, uint32 index, int32* value);
02269
02280 SPAPI OSErr (*GetFloat)(PIActionList list, uint32 index, real64* value);
02281
02293 SPAPI OSErr (*GetUnitFloat)(PIActionList list, uint32 index, DescriptorUnitID* unit, real64* value);
02294
02302 SPAPI OSErr (*GetStringLength)(PIActionList list, uint32 index, uint32* stringLength);
02303
02312 SPAPI OSErr (*GetString)(PIActionList list, uint32 index, char* cstr, uint32 maxLength);
02313
02321 SPAPI OSErr (*GetBoolean)(PIActionList list, uint32 index, Boolean* value);
02322
02330 SPAPI OSErr (*GetList)(PIActionList list, uint32 index, PIActionList* actionList);
02331
02343 SPAPI OSErr (*GetObject)(PIActionList list, uint32 index, DescriptorClassID* type, PIActionDescriptor* value);
02344
02356 SPAPI OSErr (*GetGlobalObject)(PIActionList list, uint32 index, DescriptorClassID* type, PIActionDescriptor* value);
02357
02366 SPAPI OSErr (*GetEnumerated)(PIActionList list, uint32 index, DescriptorEnumTypeID* type, DescriptorEnumID* value);
02367
02375 SPAPI OSErr (*GetReference)(PIActionList list, uint32 index, PIActionReference* value);
02376
02384 SPAPI OSErr (*GetClass)(PIActionList list, uint32 index, DescriptorClassID* value);
02385
02393 SPAPI OSErr (*GetGlobalClass)(PIActionList list, uint32 index, DescriptorClassID* value);
02394
02402 SPAPI OSErr (*GetAlias)(PIActionList list, uint32 index, Handle* aliasHandle);
02403
02411 SPAPI OSErr (*PutIntegers)(PIActionList list, uint32 count, int32* );
02412
02420 SPAPI OSErr (*GetIntegers)(PIActionList list, uint32 count, int32* value);
02421
02429 SPAPI OSErr (*PutData)(PIActionList list, int32 length, void* data);
02430
02438 SPAPI OSErr (*GetDataLength)(PIActionList list, uint32 index, int32* length);
02439
02447 SPAPI OSErr (*GetData)(PIActionList list, uint32 index, void* value);
02448
02455 SPAPI OSErr (*PutZString)(PIActionList list, ASZString zstring);
02456
02464 SPAPI OSErr (*GetZString)(PIActionList list, uint32 index, ASZString* zstring);
02465
02472 SPAPI OSErr (*PutInteger64)(PIActionList list, int64 value);
02473
02485 SPAPI OSErr (*GetInteger64)(PIActionList list, uint32 index, int64 *value);
02486
02487
02488 } PSActionListProcs;
02489
02490
02491
02492
02493
02494
02495
02496
02527
02528 #define kPSActionReferenceSuite "df135117-c769-11d0-8079-00c04fd7ec47"
02530 #define kPSActionReferenceSuiteVersion 3
02531 #define kPSActionReferenceSuitePrevVersion 2
02532
02536 typedef struct PSActionReferenceProcs
02537 {
02538
02544 SPAPI OSErr (*Make)(PIActionReference* reference);
02545
02551 SPAPI OSErr (*Free)(PIActionReference ref);
02552
02562 SPAPI OSErr (*GetForm)(PIActionReference ref, DescriptorFormID* value);
02563
02570 SPAPI OSErr (*GetDesiredClass)(PIActionReference ref, DescriptorClassID* value);
02571
02579 SPAPI OSErr (*PutName)(PIActionReference ref, DescriptorClassID desiredClass, char* cstrValue);
02580
02588 SPAPI OSErr (*PutIndex)(PIActionReference ref, DescriptorClassID desiredClass, uint32 value);
02589
02597 SPAPI OSErr (*PutIdentifier)(PIActionReference ref, DescriptorClassID desiredClass, uint32 value);
02598
02606 SPAPI OSErr (*PutOffset)(PIActionReference ref, DescriptorClassID desiredClass, int32 value);
02607
02617 SPAPI OSErr (*PutEnumerated)(PIActionReference ref, DescriptorClassID desiredClass, DescriptorEnumTypeID type, DescriptorEnumID value);
02618
02626 SPAPI OSErr (*PutProperty)(PIActionReference ref, DescriptorClassID desiredClass, DescriptorKeyID value);
02627
02634 SPAPI OSErr (*PutClass)(PIActionReference ref, DescriptorClassID desiredClass);
02635
02642 SPAPI OSErr (*GetNameLength)(PIActionReference ref, uint32* stringLength);
02643
02651 SPAPI OSErr (*GetName)(PIActionReference ref, char* name, uint32 maxLength);
02652
02659 SPAPI OSErr (*GetIndex)(PIActionReference ref, uint32* value);
02660
02667 SPAPI OSErr (*GetIdentifier)(PIActionReference ref, uint32* value);
02668
02675 SPAPI OSErr (*GetOffset)(PIActionReference ref, int32* value);
02676
02684 SPAPI OSErr (*GetEnumerated)(PIActionReference ref, DescriptorEnumTypeID* type, DescriptorEnumID* enumValue);
02685
02692 SPAPI OSErr (*GetProperty)(PIActionReference ref, DescriptorKeyID* value);
02693
02702 SPAPI OSErr (*GetContainer)(PIActionReference ref, PIActionReference* value);
02703
02711 SPAPI OSErr (*PutNameZString)(PIActionReference ref, DescriptorClassID desiredClass, ASZString zstring);
02712
02720 SPAPI OSErr (*GetNameZString)(PIActionReference ref, ASZString* zstring);
02721
02722 } PSActionReferenceProcs;
02727
02728
02729
02730 #if PRAGMA_STRUCT_ALIGN
02731 #pragma options align=mac68k
02732 #endif
02733
02734 #if MSWindows
02735 #pragma pack(push,1)
02736 #endif
02737
02745 typedef struct PIActionParameters
02746 {
02747
02748 PIDialogPlayOptions playInfo;
02750 PIDialogRecordOptions recordInfo;
02752 PIActionDescriptor descriptor;
02755 } PIActionParameters;
02756
02757
02758 #if PRAGMA_STRUCT_ALIGN
02759 #pragma options align=reset
02760 #endif
02761
02762 #if MSWindows
02763 #pragma pack(pop)
02764 #endif
02765
02766
02767
02768 #endif // Rez
02769
02770
02771
02772 #endif // __PIActions_h__