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
00042 #ifdef Rez
00043
00044 #ifdef SystemSevenOrLater
00045 #undef SystemSevenOrLater
00046 #endif
00047
00048 #define SystemSevenOrLater 1
00049
00050 #if !MSWindows
00051 #if defined(__MACH__) || defined(BUILDING_FOR_MACH)
00052 #include <MacTypes.r>
00053 #else
00054 #include <Types.r>
00055 #endif
00056 #include "AEUserTermTypes.r"
00057 #include "AppleEvents.r"
00058 #endif
00059
00060 #else
00061
00062 #include "PITypes.h"
00063 #include "SPTypes.h"
00064 #include "SPPlugs.h"
00065
00066 #if !MSWindows && !INSIDE_PHOTOSHOP
00067 #include "AERegistry.h"
00068 #endif
00069
00070 #endif // Rez
00071
00072
00073
00074
00075
00081
00082
00083
00085 #define flagsSingleParameter \
00086 required, singleItem, notEnumerated, reserved, \
00087 reserved, reserved, reserved, reserved, \
00088 reserved, reserved, reserved, reserved, \
00089 prepositionParam, notFeminine, notMasculine, singular
00090
00092 #define flagsListParameter \
00093 required, listOfItems, notEnumerated, reserved, \
00094 reserved, reserved, reserved, reserved, \
00095 reserved, reserved, reserved, reserved, \
00096 prepositionParam, notFeminine, notMasculine, singular
00097
00099 #define flagsEnumeratedParameter \
00100 required, singleItem, enumerated, reserved, \
00101 reserved, reserved, reserved, reserved, \
00102 reserved, reserved, reserved, reserved, \
00103 prepositionParam, notFeminine, notMasculine, singular
00104
00107 #define flagsEnumeratedListParameter \
00108 required, listOfItems, enumerated, reserved, \
00109 reserved, reserved, reserved, reserved, \
00110 reserved, reserved, reserved, reserved, \
00111 prepositionParam, notFeminine, notMasculine, singular
00112
00114 #define flagsOptionalSingleParameter \
00115 optional, singleItem, notEnumerated, reserved, \
00116 reserved, reserved, reserved, reserved, \
00117 reserved, reserved, reserved, reserved, \
00118 prepositionParam, notFeminine, notMasculine, singular
00119
00121 #define flagsOptionalListParameter \
00122 optional, listOfItems, notEnumerated, reserved, \
00123 reserved, reserved, reserved, reserved, \
00124 reserved, reserved, reserved, reserved, \
00125 prepositionParam, notFeminine, notMasculine, singular
00126
00128 #define flagsOptionalEnumeratedParameter \
00129 optional, singleItem, enumerated, reserved, \
00130 reserved, reserved, reserved, reserved, \
00131 reserved, reserved, reserved, reserved, \
00132 prepositionParam, notFeminine, notMasculine, singular
00133
00136 #define flagsOptionalEnumeratedListParameter \
00137 optional, listOfItems, enumerated, reserved, \
00138 reserved, reserved, reserved, reserved, \
00139 reserved, reserved, reserved, reserved, \
00140 prepositionParam, notFeminine, notMasculine, singular
00141
00142
00145
00147 #define flagsSingleProperty \
00148 reserved, singleItem, notEnumerated, readWrite, \
00149 reserved, reserved, reserved, reserved, \
00150 reserved, reserved, reserved, reserved, \
00151 noApostrophe, notFeminine, notMasculine, singular
00152
00154 #define flagsListProperty \
00155 reserved, listOfItems, notEnumerated, readWrite, \
00156 reserved, reserved, reserved, reserved, \
00157 reserved, reserved, reserved, reserved, \
00158 noApostrophe, notFeminine, notMasculine, singular
00159
00161 #define flagsEnumeratedProperty \
00162 reserved, singleItem, enumerated, readWrite, \
00163 reserved, reserved, reserved, reserved, \
00164 reserved, reserved, reserved, reserved, \
00165 noApostrophe, notFeminine, notMasculine, singular
00166
00169 #define flagsEnumeratedListProperty \
00170 reserved, listOfItems, enumerated, readWrite, \
00171 reserved, reserved, reserved, reserved, \
00172 reserved, reserved, reserved, reserved, \
00173 noApostrophe, notFeminine, notMasculine, singular
00174
00175
00176
00178
00181 #define flagsOptionalEnumeratedChangesDirect \
00182 directParamOptional, singleItem, enumerated, changesState, \
00183 reserved, reserved, reserved, reserved, \
00184 reserved, reserved, reserved, reserved, \
00185 reserved, reserved, reserved, reserved
00186
00189 #define flagsEnumeratedChangesDirect \
00190 directParamRequired, singleItem, enumerated, changesState, \
00191 reserved, reserved, reserved, reserved, \
00192 reserved, reserved, reserved, reserved, \
00193 reserved, reserved, reserved, reserved
00194
00197 #define flagsEnumeratedDirect \
00198 directParamRequired, singleItem, enumerated, doesntChangeState, \
00199 reserved, reserved, reserved, reserved, \
00200 reserved, reserved, reserved, reserved, \
00201 reserved, reserved, reserved, reserved
00202
00205 #define flagsChangesDirect \
00206 directParamRequired, singleItem, notEnumerated, changesState, \
00207 reserved, reserved, reserved, reserved, \
00208 reserved, reserved, reserved, reserved, \
00209 reserved, reserved, reserved, reserved
00210
00213 #define flagsListChangesDirect \
00214 directParamRequired, listOfItems, notEnumerated, changesState, \
00215 reserved, reserved, reserved, reserved, \
00216 reserved, reserved, reserved, reserved, \
00217 reserved, reserved, reserved, reserved
00218
00219
00220
00221
00222
00224
00229 #define NO_REPLY \
00230 noReply, \
00231 "", \
00232 replyRequired, singleItem, notEnumerated, notTightBindingFunction, \
00233 reserved, reserved, reserved, reserved, \
00234 reserved, reserved, reserved, reserved, \
00235 verbEvent, reserved, reserved, reserved
00236
00240 #define IMAGE_DIRECT_PARAMETER \
00241 typeImageReference, \
00242 "", \
00243 flagsOptionalEnumeratedChangesDirect
00244
00246
00248
00249
00250
00251
00252
00253
00254
00255 #if MSWindows // These items come from AppleScript
00256
00257
00258
00259 #define typeFloat 'doub'
00260 #define typeInteger 'long'
00261 #define typeBoolean 'bool'
00262 #define typeAlias 'alis'
00263 #define typeNull 'null'
00266 #define roman 0
00267 #define english 0
00268 #define japanese 11
00270 #ifndef noReply
00271 #define noReply typeNull
00272 #endif
00273
00274 #ifndef __APPLEEVENTS__
00275
00276 #define typeType 'type'
00277 #define typeChar 'TEXT'
00278 #define typeObjectSpecifier 'obj '
00279 #define typeEnumerated 'enum'
00280 // tpr #define typeText typeChar
00283 #endif
00284
00285 #if !INSIDE_PHOTOSHOP
00286
00287
00288
00289
00290 #define formName 'name'
00291
00292 #ifndef __AEOBJECTS__
00293 #define formAbsolutePosition 'indx'
00294 #define formPropertyID 'prop'
00295 #define formRelativePosition 'rele'
00296 #endif
00297
00298 #endif // !INSIDE_PHOTOSHOP
00299
00300 #endif
00301
00302 #if INSIDE_PHOTOSHOP || !defined(keySelection)
00303 #define keySelection 'fsel'
00304 #endif
00305
00306 #define typePath 'Pth '
00308 #if MSWindows
00309 #define typePlatformFilePath typePath
00310 #else
00311 #define typePlatformFilePath typeAlias
00312 #endif
00313
00314
00315
00316
00317 #ifndef Rez
00318
00319
00320
00325
00326
00327
00342 #define PIHasTerminologyProperty 0x6873746DL
00343
00344
00345
00346
00347
00348
00349
00350
00355 #define PITerminologyProperty 0x74726D6EL
00356
00357
00358
00362
00366
00368 typedef int32 PIDialogRecordOptions;
00369
00373 enum
00374 {
00375 plugInDialogOptional,
00376 plugInDialogRequired,
00377 plugInDialogNone
00378 };
00379
00381 typedef int32 PIDialogPlayOptions;
00382
00386 enum
00387 {
00388 plugInDialogDontDisplay,
00389 plugInDialogDisplay,
00390 plugInDialogSilent
00393 };
00395
00396
00397
00398
00403
00404
00405
00409 #define actionSimpleParameter 0x00000000L
00410 #define actionEnumeratedParameter 0x00002000L
00411 #define actionListParameter 0x00004000L
00412 #define actionOptionalParameter 0x00008000L
00413
00414 #define actionObjectParameter 0x80000000L
00415 #define actionScopedParameter 0x40000000L
00416 #define actionStringIDParameter 0x20000000L
00417
00421
00422
00423
00424 typedef Handle PIDescriptorHandle;
00426 typedef struct PIOpaqueWriteDescriptor* PIWriteDescriptor;
00427 typedef struct PIOpaqueReadDescriptor* PIReadDescriptor;
00429 typedef unsigned long DescriptorEventID;
00430 typedef unsigned long DescriptorClassID;
00432 typedef unsigned long DescriptorKeyID;
00433 typedef unsigned long DescriptorTypeID;
00434 typedef unsigned long DescriptorUnitID;
00435 typedef unsigned long DescriptorEnumID;
00437 typedef unsigned long DescriptorEnumTypeID;
00440 typedef unsigned long DescriptorFormID;
00442 typedef DescriptorKeyID DescriptorKeyIDArray[];
00447 #if PRAGMA_STRUCT_ALIGN
00448 #pragma options align=mac68k
00449 #endif
00450
00451 #if MSWindows
00452 #pragma pack(push,1)
00453 #endif
00454
00473 typedef struct PITerminology
00474 {
00475 int32 version;
00476 OSType classID;
00477 OSType eventID;
00478 int16 terminologyID;
00480 char scopeString[1];
00487 } PITerminology;
00488
00489 #if PRAGMA_STRUCT_ALIGN
00490 #pragma options align=reset
00491 #endif
00492
00493 #if MSWindows
00494 #pragma pack(pop)
00495 #endif
00496
00497 #define PITerminologyMinSize 15
00498
00499 #if PRAGMA_STRUCT_ALIGN
00500 #pragma options align=mac68k
00501 #endif
00502
00507 typedef struct PIDescriptorSimpleReference
00508 {
00509 DescriptorTypeID desiredClass;
00510 DescriptorKeyID keyForm;
00512 struct _keyData
00513 {
00514 Str255 name;
00515 int32 index;
00516 DescriptorTypeID type;
00517 DescriptorEnumID value;
00518 } keyData;
00519 } PIDescriptorSimpleReference;
00520
00521 #if PRAGMA_STRUCT_ALIGN
00522 #pragma options align=reset
00523 #endif
00524
00525
00526
00527 #ifdef __cplusplus
00528 extern "C"
00529 {
00530 #endif
00531
00576
00578
00579
00587 typedef MACPASCAL PIWriteDescriptor (*OpenWriteDescriptorProc)(void);
00588
00597 typedef MACPASCAL OSErr (*CloseWriteDescriptorProc)(PIWriteDescriptor, PIDescriptorHandle*);
00598
00606 typedef MACPASCAL OSErr (*PutIntegerProc)(PIWriteDescriptor, DescriptorKeyID, int32);
00607
00615 typedef MACPASCAL OSErr (*PutFloatProc)(PIWriteDescriptor, DescriptorKeyID, const double*);
00616
00625 typedef MACPASCAL OSErr (*PutUnitFloatProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorUnitID, const double*);
00626
00634 typedef MACPASCAL OSErr (*PutBooleanProc)(PIWriteDescriptor, DescriptorKeyID, Boolean);
00635
00643 typedef MACPASCAL OSErr (*PutTextProc)(PIWriteDescriptor, DescriptorKeyID, Handle);
00644
00652 typedef MACPASCAL OSErr (*PutAliasProc)(PIWriteDescriptor, DescriptorKeyID, Handle);
00653
00663 typedef MACPASCAL OSErr (*PutEnumeratedProc)(PIWriteDescriptor, DescriptorKeyID key, DescriptorTypeID type, DescriptorEnumID value);
00664
00672 typedef MACPASCAL OSErr (*PutClassProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorTypeID);
00673
00682 typedef MACPASCAL OSErr (*PutSimpleReferenceProc)(PIWriteDescriptor, DescriptorKeyID, const PIDescriptorSimpleReference*);
00683
00692 typedef MACPASCAL OSErr (*PutObjectProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorTypeID, PIDescriptorHandle);
00693
00701 typedef MACPASCAL OSErr (*PutCountProc)(PIWriteDescriptor, DescriptorKeyID, uint32 count);
00702
00710 typedef MACPASCAL OSErr (*PutStringProc)(PIWriteDescriptor, DescriptorKeyID, ConstStr255Param);
00711
00712
00713 typedef MACPASCAL OSErr (*PutScopedClassProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorTypeID);
00714 typedef MACPASCAL OSErr (*PutScopedObjectProc)(PIWriteDescriptor, DescriptorKeyID, DescriptorTypeID, PIDescriptorHandle);
00715
00716
00718
00719
00730 typedef MACPASCAL PIReadDescriptor (*OpenReadDescriptorProc)(PIDescriptorHandle, DescriptorKeyIDArray);
00731
00740 typedef MACPASCAL OSErr (*CloseReadDescriptorProc)(PIReadDescriptor);
00741
00757 typedef MACPASCAL Boolean (*GetKeyProc)(PIReadDescriptor, DescriptorKeyID* key, DescriptorTypeID* type, int32* flags);
00758
00767 typedef MACPASCAL OSErr (*GetIntegerProc)(PIReadDescriptor, int32*);
00768
00777 typedef MACPASCAL OSErr (*GetFloatProc)(PIReadDescriptor, double*);
00778
00788 typedef MACPASCAL OSErr (*GetUnitFloatProc)(PIReadDescriptor, DescriptorUnitID*, double*);
00789
00798 typedef MACPASCAL OSErr (*GetBooleanProc)(PIReadDescriptor, Boolean*);
00799
00808 typedef MACPASCAL OSErr (*GetTextProc)(PIReadDescriptor, Handle*);
00809
00818 typedef MACPASCAL OSErr (*GetAliasProc)(PIReadDescriptor, Handle*);
00819
00828 typedef MACPASCAL OSErr (*GetEnumeratedProc)(PIReadDescriptor, DescriptorEnumID*);
00829
00838 typedef MACPASCAL OSErr (*GetClassProc)(PIReadDescriptor, DescriptorTypeID*);
00839
00848 typedef MACPASCAL OSErr (*GetSimpleReferenceProc)(PIReadDescriptor, PIDescriptorSimpleReference*);
00849
00860 typedef MACPASCAL OSErr (*GetObjectProc)(PIReadDescriptor, DescriptorTypeID*, PIDescriptorHandle*);
00861
00868 typedef MACPASCAL OSErr (*GetCountProc)(PIReadDescriptor, uint32*);
00869
00878 typedef MACPASCAL OSErr (*GetStringProc)(PIReadDescriptor, Str255*);
00879
00895 typedef MACPASCAL OSErr (*GetPinnedIntegerProc)(PIReadDescriptor, int32 min, int32 max, int32*);
00896
00912 typedef MACPASCAL OSErr (*GetPinnedFloatProc)(PIReadDescriptor, const double* min, const double* max, double*);
00913
00930 typedef MACPASCAL OSErr (*GetPinnedUnitFloatProc)(PIReadDescriptor, const double* min, const double* max, DescriptorUnitID*, double*);
00932
00933
00934 #ifdef __cplusplus
00935 }
00936 #endif
00937
00938
00939
00940
00941
00942
00943 #define kCurrentWriteDescriptorProcsVersion 0
00944
00945 #if PRAGMA_STRUCT_ALIGN
00946 #pragma options align=mac68k
00947 #endif
00948
00954 typedef struct WriteDescriptorProcs
00955 {
00956 int16 writeDescriptorProcsVersion;
00957 int16 numWriteDescriptorProcs;
00959 OpenWriteDescriptorProc openWriteDescriptorProc;
00960 CloseWriteDescriptorProc closeWriteDescriptorProc;
00962 PutIntegerProc putIntegerProc;
00963 PutFloatProc putFloatProc;
00964 PutUnitFloatProc putUnitFloatProc;
00965 PutBooleanProc putBooleanProc;
00966 PutTextProc putTextProc;
00967 PutAliasProc putAliasProc;
00969 PutEnumeratedProc putEnumeratedProc;
00970 PutClassProc putClassProc;
00971 PutSimpleReferenceProc putSimpleReferenceProc;
00972 PutObjectProc putObjectProc;
00974 PutCountProc putCountProc;
00976 PutStringProc putStringProc;
00979 PutScopedClassProc putScopedClassProc;
00981 PutScopedObjectProc putScopedObjectProc;
00983 } WriteDescriptorProcs;
00984
00985 #if PRAGMA_STRUCT_ALIGN
00986 #pragma options align=reset
00987 #endif
00988
00989
00990 #define kCurrentWriteDescriptorProcsCount \
00991 ((sizeof(WriteDescriptorProcs) - offsetof(WriteDescriptorProcs, openWriteDescriptorProc)) / sizeof(void*))
00992
00993
00994
00995
00996
00997
00998 #define kCurrentReadDescriptorProcsVersion 0
00999
01000 #if PRAGMA_STRUCT_ALIGN
01001 #pragma options align=mac68k
01002 #endif
01003
01009 typedef struct ReadDescriptorProcs
01010 {
01011 int16 readDescriptorProcsVersion;
01012 int16 numReadDescriptorProcs;
01014 OpenReadDescriptorProc openReadDescriptorProc;
01015 CloseReadDescriptorProc closeReadDescriptorProc;
01016 GetKeyProc getKeyProc;
01018 GetIntegerProc getIntegerProc;
01019 GetFloatProc getFloatProc;
01020 GetUnitFloatProc getUnitFloatProc;
01021 GetBooleanProc getBooleanProc;
01022 GetTextProc getTextProc;
01023 GetAliasProc getAliasProc;
01025 GetEnumeratedProc getEnumeratedProc;
01026 GetClassProc getClassProc;
01027 GetSimpleReferenceProc getSimpleReferenceProc;
01028 GetObjectProc getObjectProc;
01030 GetCountProc getCountProc;
01032 GetStringProc getStringProc;
01033 GetPinnedIntegerProc getPinnedIntegerProc;
01034 GetPinnedFloatProc getPinnedFloatProc;
01035 GetPinnedUnitFloatProc getPinnedUnitFloatProc;
01037 } ReadDescriptorProcs;
01038
01039 #if PRAGMA_STRUCT_ALIGN
01040 #pragma options align=reset
01041 #endif
01042
01043
01044 #define kCurrentReadDescriptorProcsCount \
01045 ((sizeof(ReadDescriptorProcs) - offsetof(ReadDescriptorProcs, openReadDescriptorProc)) / sizeof(void*))
01046
01047
01048
01049
01050
01051
01052 #define kCurrentDescriptorParametersVersion 0
01053
01054 #if PRAGMA_STRUCT_ALIGN
01055 #pragma options align=mac68k
01056 #endif
01057
01062 typedef struct PIDescriptorParameters
01063 {
01064 int16 descriptorParametersVersion;
01065 int16 playInfo;
01067 int16 recordInfo;
01070 PIDescriptorHandle descriptor;
01072 WriteDescriptorProcs* writeDescriptorProcs;
01073 ReadDescriptorProcs* readDescriptorProcs;
01074 } PIDescriptorParameters;
01075
01076 #if PRAGMA_STRUCT_ALIGN
01077 #pragma options align=reset
01078 #endif
01079
01081
01082
01083
01084
01085
01112 #if !MSWindows
01113
01114
01116 #define kPSWindowNotifySuite "482963f4-3ea1-11d1-8da3-00c04fd5f7ee"
01118 #define kPSWindowNotifySuiteVersion 1
01119
01120 #ifdef __cplusplus
01121 extern "C"
01122 {
01123 #endif
01124
01130 typedef void (*PIWindowNotifier)(const EventRecord* event, void* data);
01131
01132 #ifdef __cplusplus
01133 }
01134 #endif
01135
01139 typedef struct PSWindowNotifyProcs
01140 {
01148 SPAPI OSErr (*AddNotify)(WindowRef window, PIWindowNotifier notifier, void* data);
01149
01155 SPAPI OSErr (*RemoveNotify)(WindowRef window);
01156
01157 } PSWindowNotifyProcs;
01158
01159 #endif
01160
01163
01164
01168 typedef struct _ADsc* PIActionDescriptor;
01169
01173 typedef struct _ALst* PIActionList;
01174
01178 typedef struct _ARef* PIActionReference;
01179
01180
01181 #ifndef ASZString_defined
01182 #define ASZString_defined
01183 struct ASZByteRun;
01184 typedef struct ASZByteRun *ASZString;
01185 #endif
01186
01187
01188
01189
01190
01219
01220 #define kPSActionControlSuite "bc1e4d70-f953-11d0-8d9f-00c04fd5f7ee"
01221
01223 #define kPSActionControlSuiteVersion 3 // Current version, but it's
01224
01226 #define kPSActionControlSuitePrevVersion 2 // compatible with version 2
01227
01228 #ifdef __cplusplus
01229 extern "C"
01230 {
01231 #endif
01232
01241 typedef void (*PIEventNotifier)(DescriptorEventID eventID, PIActionDescriptor descriptor, PIDialogRecordOptions options, void* data);
01242
01249 typedef SPErr (*PISuspendProc)(void *data);
01250
01251 #ifdef __cplusplus
01252 }
01253 #endif
01254
01258 typedef struct PSActionControlProcs
01259 {
01260
01270 SPAPI OSErr (*Play)(PIActionDescriptor* result, DescriptorEventID event, PIActionDescriptor descriptor, PIDialogPlayOptions options);
01271
01283 SPAPI OSErr (*Get)(PIActionDescriptor* result, PIActionReference reference);
01284
01291 SPAPI OSErr (*StringIDToTypeID)(char* stringID, DescriptorTypeID* typeID);
01292
01300 SPAPI OSErr (*TypeIDToStringID)(DescriptorTypeID typeID, char* stringID, uint32 stringLength);
01301
01315 SPAPI OSErr (*AddNotify)(SPPluginRef ref, DescriptorEventID event, PIEventNotifier notifier, void* data);
01316
01324 SPAPI OSErr (*RemoveNotify)(SPPluginRef ref, DescriptorEventID event);
01325
01339 SPAPI OSErr (*SuspendHistory)(PIActionReference reference, PISuspendProc proc, void* procData, ASZString operationName);
01340
01350 SPAPI OSErr (*MakeStringAlias)(const char* newStringID, const char* existingStringID);
01351
01352 } PSActionControlProcs;
01353
01354
01355
01356
01357
01385
01386 #define kPSBasicActionControlSuite "3eb7c480-8797-11d1-8da7-00c04fd5f7ee"
01388 #define kPSBasicActionControlSuiteVersion 2
01390 #define kPSBasicActionControlSuitePrevVersion 1
01391
01395 typedef struct PSBasicActionControlProcs
01396 {
01397
01407 SPAPI OSErr (*Get)(PIActionDescriptor* result, PIActionReference reference);
01408
01415 SPAPI OSErr (*StringIDToTypeID)(char* stringID, DescriptorTypeID* typeID);
01416
01424 SPAPI OSErr (*TypeIDToStringID)(DescriptorTypeID typeID, char* stringID, uint32 stringLength);
01425
01435 SPAPI OSErr (*MakeStringAlias)(const char* newStringID, const char* existingStringID);
01436
01437 } PSBasicActionControlProcs;
01441
01442
01443
01444
01445
01474
01475 #define kPSDescriptorRegistrySuite "61e608b0-40fd-11d1-8da3-00c04fd5f7ee"
01477 #define kPSDescriptorRegistrySuiteVersion 1
01478
01482 typedef struct PSDescriptorRegistryProcs
01483 {
01484
01493 SPAPI OSErr (*Register)(const char* key, PIActionDescriptor descriptor, Boolean isPersistent);
01494
01500 SPAPI OSErr (*Erase)(const char* key);
01501
01509 SPAPI OSErr (*Get)(const char* key, PIActionDescriptor* descriptor);
01510
01511 } PSDescriptorRegistryProcs;
01512
01513
01514
01515
01516
01517
01518
01547
01548 #define kPSActionDescriptorSuite "df135115-c769-11d0-8079-00c04fd7ec47"
01550 #define kPSActionDescriptorSuiteVersion 3
01551 #define kPSActionDescriptorSuitePrevVersion 2
01552
01556 typedef struct PSActionDescriptorProcs
01557 {
01563 SPAPI OSErr (*Make)(PIActionDescriptor* descriptor);
01564
01570 SPAPI OSErr (*Free)(PIActionDescriptor descriptor);
01571
01580 SPAPI OSErr (*GetType)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorTypeID* type);
01581
01591 SPAPI OSErr (*GetKey)(PIActionDescriptor descriptor, uint32 index, DescriptorKeyID* key);
01592
01601 SPAPI OSErr (*HasKey)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean* hasKey);
01602
01609 SPAPI OSErr (*GetCount)(PIActionDescriptor descriptor, uint32* count);
01610
01618 SPAPI OSErr (*IsEqual)(PIActionDescriptor descriptor, PIActionDescriptor other, Boolean* isEqual);
01619
01626 SPAPI OSErr (*Erase)(PIActionDescriptor descriptor, DescriptorKeyID );
01627
01633 SPAPI OSErr (*Clear)(PIActionDescriptor descriptor);
01634
01642 SPAPI OSErr (*PutInteger)(PIActionDescriptor descriptor, DescriptorKeyID key, int32 value);
01643
01651 SPAPI OSErr (*PutFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, double value);
01652
01661 SPAPI OSErr (*PutUnitFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorUnitID unit, double value);
01662
01670 SPAPI OSErr (*PutString)(PIActionDescriptor descriptor, DescriptorKeyID key, char* cstrValue);
01671
01679 SPAPI OSErr (*PutBoolean)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean value);
01680
01688 SPAPI OSErr (*PutList)(PIActionDescriptor descriptor, DescriptorKeyID key, PIActionList value);
01689
01701 SPAPI OSErr (*PutObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID type, PIActionDescriptor value);
01702
01711 SPAPI OSErr (*PutGlobalObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID type, PIActionDescriptor value);
01712
01721 SPAPI OSErr (*PutEnumerated)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorEnumTypeID type, DescriptorEnumID value);
01722
01730 SPAPI OSErr (*PutReference)(PIActionDescriptor descriptor, DescriptorKeyID key, PIActionReference value);
01731
01739 SPAPI OSErr (*PutClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID value);
01740
01748 SPAPI OSErr (*PutGlobalClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID value);
01749
01757 SPAPI OSErr (*PutAlias)(PIActionDescriptor descriptor, DescriptorKeyID key, Handle value);
01758
01766 SPAPI OSErr (*GetInteger)(PIActionDescriptor descriptor, DescriptorKeyID key, int32* value);
01767
01775 SPAPI OSErr (*GetFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, double* value);
01776
01785 SPAPI OSErr (*GetUnitFloat)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorUnitID* unit, double* value);
01786
01794 SPAPI OSErr (*GetStringLength)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32* stringLength);
01795
01804 SPAPI OSErr (*GetString)(PIActionDescriptor descriptor, DescriptorKeyID key, char* cstrValue, uint32 maxLength);
01805
01813 SPAPI OSErr (*GetBoolean)(PIActionDescriptor descriptor, DescriptorKeyID key, Boolean* value);
01814
01822 SPAPI OSErr (*GetList)(PIActionDescriptor descriptor, DescriptorKeyID key, PIActionList* value);
01823
01835 SPAPI OSErr (*GetObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* type, PIActionDescriptor* value);
01836
01845 SPAPI OSErr (*GetGlobalObject)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* type, PIActionDescriptor* value);
01846
01855 SPAPI OSErr (*GetEnumerated)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorEnumTypeID* type, DescriptorEnumID* value);
01856
01864 SPAPI OSErr (*GetReference)(PIActionDescriptor descriptor, DescriptorKeyID key, PIActionReference* value);
01865
01873 SPAPI OSErr (*GetClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* value);
01874
01882 SPAPI OSErr (*GetGlobalClass)(PIActionDescriptor descriptor, DescriptorKeyID key, DescriptorClassID* value);
01883
01891 SPAPI OSErr (*GetAlias)(PIActionDescriptor descriptor, DescriptorKeyID key, Handle* value);
01892
01900 SPAPI OSErr (*HasKeys)(PIActionDescriptor descriptor, DescriptorKeyIDArray requiredKeys, Boolean* hasKeys);
01901
01910 SPAPI OSErr (*PutIntegers)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32 count, int32* );
01911
01920 SPAPI OSErr (*GetIntegers)(PIActionDescriptor descriptor, DescriptorKeyID key, uint32 count, int32* value);
01921
01932 SPAPI OSErr (*AsHandle)(PIActionDescriptor descriptor, PIDescriptorHandle* value);
01933
01944 SPAPI OSErr (*HandleToDescriptor)(PIDescriptorHandle value, PIActionDescriptor* descriptor);
01945
01953 SPAPI OSErr (*PutZString)(PIActionDescriptor descriptor, DescriptorKeyID key, ASZString zstring);
01954
01962 SPAPI OSErr (*GetZString)(PIActionDescriptor descriptor, DescriptorKeyID key, ASZString* zstring);
01963
01972 SPAPI OSErr (*PutData)(PIActionDescriptor descriptor, DescriptorKeyID key, int32 length, void* value);
01973
01981 SPAPI OSErr (*GetDataLength)(PIActionDescriptor descriptor, DescriptorKeyID key, int32* value);
01982
01990 SPAPI OSErr (*GetData)(PIActionDescriptor descriptor, DescriptorKeyID key, void* value);
01991
01992 SPAPI OSErr (*PutInteger64)(PIActionDescriptor descriptor, DescriptorKeyID key, int64 value);
01993 SPAPI OSErr (*GetInteger64)(PIActionDescriptor descriptor, DescriptorKeyID key, int64* value);
01994
01995 } PSActionDescriptorProcs;
01996
01997
01998
01999
02000
02001
02030
02031 #define kPSActionListSuite "df135116-c769-11d0-8079-00c04fd7ec47"
02033 #define kPSActionListSuiteVersion 2
02034 #define kPSActionListSuitePrevVersion 1
02035
02039 typedef struct PSActionListProcs
02040 {
02041
02047 SPAPI OSErr (*Make)(PIActionList* actionList);
02048
02054 SPAPI OSErr (*Free)(PIActionList actionList);
02055
02067 SPAPI OSErr (*GetType)(PIActionList list, uint32 index, DescriptorTypeID* value);
02068
02075 SPAPI OSErr (*GetCount)(PIActionList list, uint32* value);
02076
02083 SPAPI OSErr (*PutInteger)(PIActionList list, int32 value);
02084
02091 SPAPI OSErr (*PutFloat)(PIActionList list, double value);
02092
02100 SPAPI OSErr (*PutUnitFloat)(PIActionList list, DescriptorUnitID unit, double value);
02101
02108 SPAPI OSErr (*PutString)(PIActionList list, char* cstr);
02109
02116 SPAPI OSErr (*PutBoolean)(PIActionList list, Boolean value);
02117
02124 SPAPI OSErr (*PutList)(PIActionList list, PIActionList value);
02125
02136 SPAPI OSErr (*PutObject)(PIActionList list, DescriptorClassID type, PIActionDescriptor value);
02137
02148 SPAPI OSErr (*PutGlobalObject)(PIActionList list, DescriptorClassID type, PIActionDescriptor value);
02149
02157 SPAPI OSErr (*PutEnumerated)(PIActionList list, DescriptorEnumTypeID type, DescriptorEnumID value);
02158
02165 SPAPI OSErr (*PutReference)(PIActionList list, PIActionReference value);
02166
02173 SPAPI OSErr (*PutClass)(PIActionList list, DescriptorClassID value);
02174
02181 SPAPI OSErr (*PutGlobalClass)(PIActionList list, DescriptorClassID value);
02182
02189 SPAPI OSErr (*PutAlias)(PIActionList list, Handle value);
02190
02201 SPAPI OSErr (*GetInteger)(PIActionList list, uint32 index, int32* value);
02202
02213 SPAPI OSErr (*GetFloat)(PIActionList list, uint32 index, double* value);
02214
02226 SPAPI OSErr (*GetUnitFloat)(PIActionList list, uint32 index, DescriptorUnitID* unit, double* value);
02227
02235 SPAPI OSErr (*GetStringLength)(PIActionList list, uint32 index, uint32* stringLength);
02236
02245 SPAPI OSErr (*GetString)(PIActionList list, uint32 index, char* cstr, uint32 maxLength);
02246
02254 SPAPI OSErr (*GetBoolean)(PIActionList list, uint32 index, Boolean* value);
02255
02263 SPAPI OSErr (*GetList)(PIActionList list, uint32 index, PIActionList* actionList);
02264
02276 SPAPI OSErr (*GetObject)(PIActionList list, uint32 index, DescriptorClassID* type, PIActionDescriptor* value);
02277
02289 SPAPI OSErr (*GetGlobalObject)(PIActionList list, uint32 index, DescriptorClassID* type, PIActionDescriptor* value);
02290
02299 SPAPI OSErr (*GetEnumerated)(PIActionList list, uint32 index, DescriptorEnumTypeID* type, DescriptorEnumID* value);
02300
02308 SPAPI OSErr (*GetReference)(PIActionList list, uint32 index, PIActionReference* value);
02309
02317 SPAPI OSErr (*GetClass)(PIActionList list, uint32 index, DescriptorClassID* value);
02318
02326 SPAPI OSErr (*GetGlobalClass)(PIActionList list, uint32 index, DescriptorClassID* value);
02327
02335 SPAPI OSErr (*GetAlias)(PIActionList list, uint32 index, Handle* aliasHandle);
02336
02344 SPAPI OSErr (*PutIntegers)(PIActionList list, uint32 count, int32* );
02345
02353 SPAPI OSErr (*GetIntegers)(PIActionList list, uint32 count, int32* value);
02354
02362 SPAPI OSErr (*PutData)(PIActionList list, int32 length, void* data);
02363
02371 SPAPI OSErr (*GetDataLength)(PIActionList list, uint32 index, int32* length);
02372
02380 SPAPI OSErr (*GetData)(PIActionList list, uint32 index, void* value);
02381
02388 SPAPI OSErr (*PutZString)(PIActionList list, ASZString zstring);
02389
02397 SPAPI OSErr (*GetZString)(PIActionList list, uint32 index, ASZString* zstring);
02398
02399 SPAPI OSErr (*PutInteger64)(PIActionList list, int64 value);
02400 SPAPI OSErr (*GetInteger64)(PIActionList list, uint32 index, int64 *value);
02401
02402
02403 } PSActionListProcs;
02404
02405
02406
02407
02408
02409
02410
02411
02442
02443 #define kPSActionReferenceSuite "df135117-c769-11d0-8079-00c04fd7ec47"
02445 #define kPSActionReferenceSuiteVersion 3
02446 #define kPSActionReferenceSuitePrevVersion 2
02447
02451 typedef struct PSActionReferenceProcs
02452 {
02453
02459 SPAPI OSErr (*Make)(PIActionReference* reference);
02460
02466 SPAPI OSErr (*Free)(PIActionReference ref);
02467
02477 SPAPI OSErr (*GetForm)(PIActionReference ref, DescriptorFormID* value);
02478
02485 SPAPI OSErr (*GetDesiredClass)(PIActionReference ref, DescriptorClassID* value);
02486
02494 SPAPI OSErr (*PutName)(PIActionReference ref, DescriptorClassID desiredClass, char* cstrValue);
02495
02503 SPAPI OSErr (*PutIndex)(PIActionReference ref, DescriptorClassID desiredClass, uint32 value);
02504
02512 SPAPI OSErr (*PutIdentifier)(PIActionReference ref, DescriptorClassID desiredClass, uint32 value);
02513
02521 SPAPI OSErr (*PutOffset)(PIActionReference ref, DescriptorClassID desiredClass, int32 value);
02522
02532 SPAPI OSErr (*PutEnumerated)(PIActionReference ref, DescriptorClassID desiredClass, DescriptorEnumTypeID type, DescriptorEnumID value);
02533
02541 SPAPI OSErr (*PutProperty)(PIActionReference ref, DescriptorClassID desiredClass, DescriptorKeyID value);
02542
02549 SPAPI OSErr (*PutClass)(PIActionReference ref, DescriptorClassID desiredClass);
02550
02557 SPAPI OSErr (*GetNameLength)(PIActionReference ref, uint32* stringLength);
02558
02566 SPAPI OSErr (*GetName)(PIActionReference ref, char* name, uint32 maxLength);
02567
02574 SPAPI OSErr (*GetIndex)(PIActionReference ref, uint32* value);
02575
02582 SPAPI OSErr (*GetIdentifier)(PIActionReference ref, uint32* value);
02583
02590 SPAPI OSErr (*GetOffset)(PIActionReference ref, int32* value);
02591
02599 SPAPI OSErr (*GetEnumerated)(PIActionReference ref, DescriptorEnumTypeID* type, DescriptorEnumID* enumValue);
02600
02607 SPAPI OSErr (*GetProperty)(PIActionReference ref, DescriptorKeyID* value);
02608
02617 SPAPI OSErr (*GetContainer)(PIActionReference ref, PIActionReference* value);
02618
02626 SPAPI OSErr (*PutNameZString)(PIActionReference ref, DescriptorClassID desiredClass, ASZString zstring);
02627
02635 SPAPI OSErr (*GetNameZString)(PIActionReference ref, ASZString* zstring);
02636
02637 } PSActionReferenceProcs;
02642
02643
02644
02645 #if PRAGMA_STRUCT_ALIGN
02646 #pragma options align=mac68k
02647 #endif
02648
02649 #if MSWindows
02650 #pragma pack(push,1)
02651 #endif
02652
02660 typedef struct PIActionParameters
02661 {
02662
02663 PIDialogPlayOptions playInfo;
02665 PIDialogRecordOptions recordInfo;
02667 PIActionDescriptor descriptor;
02670 } PIActionParameters;
02671
02672
02673 #if PRAGMA_STRUCT_ALIGN
02674 #pragma options align=reset
02675 #endif
02676
02677 #if MSWindows
02678 #pragma pack(pop)
02679 #endif
02680
02681
02682
02683 #endif // Rez
02684
02685
02686
02687 #endif // __PIActions_h__