diff options
Diffstat (limited to 'common/quicktime_win32/OSA.h')
| -rw-r--r-- | common/quicktime_win32/OSA.h | 1947 |
1 files changed, 1947 insertions, 0 deletions
diff --git a/common/quicktime_win32/OSA.h b/common/quicktime_win32/OSA.h new file mode 100644 index 0000000..1737008 --- /dev/null +++ b/common/quicktime_win32/OSA.h @@ -0,0 +1,1947 @@ +/* + File: OSA.h + + Contains: Open Scripting Architecture Client Interfaces. + + Version: QuickTime 7.3 + + Copyright: (c) 2007 (c) 1992-2000 by Apple Computer, Inc., all rights reserved + + Bugs?: For bug reports, consult the following page on + the World Wide Web: + + http://developer.apple.com/bugreporter/ + +*/ +#ifndef __OSA__ +#define __OSA__ + +#ifndef __MACERRORS__ +#include <MacErrors.h> +#endif + +#ifndef __COMPONENTS__ +#include <Components.h> +#endif + +#ifndef __APPLEEVENTS__ +#include <AppleEvents.h> +#endif + +#ifndef __AEOBJECTS__ +#include <AEObjects.h> +#endif + +#ifndef __AEINTERACTION__ +#include <AEInteraction.h> +#endif + + + + +#if PRAGMA_ONCE +#pragma once +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#if PRAGMA_IMPORT +#pragma import on +#endif + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=mac68k +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(push, 2) +#elif PRAGMA_STRUCT_PACK + #pragma pack(2) +#endif + +/************************************************************************** + Types and Constants +**************************************************************************/ + +/* The componenent manager type code for components that + support the OSA interface defined here. */ +/* 0x6f736120 */ +enum { + kOSAComponentType = FOUR_CHAR_CODE('osa ') +}; + +/* 0x73637074 */ +enum { + kOSAGenericScriptingComponentSubtype = FOUR_CHAR_CODE('scpt') +}; + +/* Type of script document files. */ +/* 0x6f736173 */ +enum { + kOSAFileType = FOUR_CHAR_CODE('osas') +}; + +/* + Suite and event code of the RecordedText event. + (See OSAStartRecording, below.) + */ +/* 0x61736372 */ +enum { + kOSASuite = FOUR_CHAR_CODE('ascr') +}; + +/* 0x72656364 */ +enum { + kOSARecordedText = FOUR_CHAR_CODE('recd') +}; + +/* Selector returns boolean */ +/* 0x6d6f6469 */ +enum { + kOSAScriptIsModified = FOUR_CHAR_CODE('modi') +}; + +/* Selector returns boolean */ +/* 0x63736372 */ +enum { + kOSAScriptIsTypeCompiledScript = FOUR_CHAR_CODE('cscr') +}; + +/* Selector returns boolean */ +/* 0x76616c75 */ +enum { + kOSAScriptIsTypeScriptValue = FOUR_CHAR_CODE('valu') +}; + +/* Selector returns boolean */ +/* 0x636e7478 */ +enum { + kOSAScriptIsTypeScriptContext = FOUR_CHAR_CODE('cntx') +}; + +/* Selector returns a DescType which may be passed to OSACoerceToDesc */ +/* 0x62657374 */ +enum { + kOSAScriptBestType = FOUR_CHAR_CODE('best') +}; + +/* + This selector is used to determine whether a script has source + associated with it that when given to OSAGetSource, the call will not + fail. The selector returns a boolean. + */ +/* 0x67737263 */ +enum { + kOSACanGetSource = FOUR_CHAR_CODE('gsrc') +}; + + +enum { + typeOSADialectInfo = FOUR_CHAR_CODE('difo'), /* 0x6469666f */ + keyOSADialectName = FOUR_CHAR_CODE('dnam'), /* 0x646e616d */ + keyOSADialectCode = FOUR_CHAR_CODE('dcod'), /* 0x64636f64 */ + keyOSADialectLangCode = FOUR_CHAR_CODE('dlcd'), /* 0x646c6364 */ + keyOSADialectScriptCode = FOUR_CHAR_CODE('dscd') /* 0x64736364 */ +}; + +typedef ComponentResult OSAError; +/* Under the Open Scripting Architecture all error results are longs */ +typedef unsigned long OSAID; +/* + OSAIDs allow transparent manipulation of scripts associated with + various scripting systems. + */ +enum { + kOSANullScript = 0L +}; + +/* No -script constant. */ +enum { + kOSANullMode = 0, /* sounds better */ + kOSAModeNull = 0 /* tastes consistent */ +}; + +/* + Some routines take flags that control their execution. This constant + declares default mode settings are used. + */ +typedef CALLBACK_API( OSErr , OSACreateAppleEventProcPtr )(AEEventClass theAEEventClass, AEEventID theAEEventID, const AEAddressDesc *target, short returnID, long transactionID, AppleEvent *result, long refCon); +typedef CALLBACK_API( OSErr , OSASendProcPtr )(const AppleEvent *theAppleEvent, AppleEvent *reply, AESendMode sendMode, AESendPriority sendPriority, long timeOutInTicks, AEIdleUPP idleProc, AEFilterUPP filterProc, long refCon); +typedef STACK_UPP_TYPE(OSACreateAppleEventProcPtr) OSACreateAppleEventUPP; +typedef STACK_UPP_TYPE(OSASendProcPtr) OSASendUPP; +/* + * NewOSACreateAppleEventUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSACreateAppleEventUPP ) +NewOSACreateAppleEventUPP(OSACreateAppleEventProcPtr userRoutine); +#if !OPAQUE_UPP_TYPES + enum { uppOSACreateAppleEventProcInfo = 0x000FEFE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes) */ + #ifdef __cplusplus + inline DEFINE_API_C(OSACreateAppleEventUPP) NewOSACreateAppleEventUPP(OSACreateAppleEventProcPtr userRoutine) { return (OSACreateAppleEventUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSACreateAppleEventProcInfo, GetCurrentArchitecture()); } + #else + #define NewOSACreateAppleEventUPP(userRoutine) (OSACreateAppleEventUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSACreateAppleEventProcInfo, GetCurrentArchitecture()) + #endif +#endif + +/* + * NewOSASendUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSASendUPP ) +NewOSASendUPP(OSASendProcPtr userRoutine); +#if !OPAQUE_UPP_TYPES + enum { uppOSASendProcInfo = 0x003FEFE0 }; /* pascal 2_bytes Func(4_bytes, 4_bytes, 4_bytes, 2_bytes, 4_bytes, 4_bytes, 4_bytes, 4_bytes) */ + #ifdef __cplusplus + inline DEFINE_API_C(OSASendUPP) NewOSASendUPP(OSASendProcPtr userRoutine) { return (OSASendUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSASendProcInfo, GetCurrentArchitecture()); } + #else + #define NewOSASendUPP(userRoutine) (OSASendUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSASendProcInfo, GetCurrentArchitecture()) + #endif +#endif + +/* + * DisposeOSACreateAppleEventUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +DisposeOSACreateAppleEventUPP(OSACreateAppleEventUPP userUPP); +#if !OPAQUE_UPP_TYPES + #ifdef __cplusplus + inline DEFINE_API_C(void) DisposeOSACreateAppleEventUPP(OSACreateAppleEventUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } + #else + #define DisposeOSACreateAppleEventUPP(userUPP) DisposeRoutineDescriptor(userUPP) + #endif +#endif + +/* + * DisposeOSASendUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +DisposeOSASendUPP(OSASendUPP userUPP); +#if !OPAQUE_UPP_TYPES + #ifdef __cplusplus + inline DEFINE_API_C(void) DisposeOSASendUPP(OSASendUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } + #else + #define DisposeOSASendUPP(userUPP) DisposeRoutineDescriptor(userUPP) + #endif +#endif + +/* + * InvokeOSACreateAppleEventUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSErr ) +InvokeOSACreateAppleEventUPP( + AEEventClass theAEEventClass, + AEEventID theAEEventID, + const AEAddressDesc * target, + short returnID, + long transactionID, + AppleEvent * result, + long refCon, + OSACreateAppleEventUPP userUPP); +#if !OPAQUE_UPP_TYPES + #ifdef __cplusplus + inline DEFINE_API_C(OSErr) InvokeOSACreateAppleEventUPP(AEEventClass theAEEventClass, AEEventID theAEEventID, const AEAddressDesc * target, short returnID, long transactionID, AppleEvent * result, long refCon, OSACreateAppleEventUPP userUPP) { return (OSErr)CALL_SEVEN_PARAMETER_UPP(userUPP, uppOSACreateAppleEventProcInfo, theAEEventClass, theAEEventID, target, returnID, transactionID, result, refCon); } + #else + #define InvokeOSACreateAppleEventUPP(theAEEventClass, theAEEventID, target, returnID, transactionID, result, refCon, userUPP) (OSErr)CALL_SEVEN_PARAMETER_UPP((userUPP), uppOSACreateAppleEventProcInfo, (theAEEventClass), (theAEEventID), (target), (returnID), (transactionID), (result), (refCon)) + #endif +#endif + +/* + * InvokeOSASendUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSErr ) +InvokeOSASendUPP( + const AppleEvent * theAppleEvent, + AppleEvent * reply, + AESendMode sendMode, + AESendPriority sendPriority, + long timeOutInTicks, + AEIdleUPP idleProc, + AEFilterUPP filterProc, + long refCon, + OSASendUPP userUPP); +#if !OPAQUE_UPP_TYPES + #ifdef __cplusplus + inline DEFINE_API_C(OSErr) InvokeOSASendUPP(const AppleEvent * theAppleEvent, AppleEvent * reply, AESendMode sendMode, AESendPriority sendPriority, long timeOutInTicks, AEIdleUPP idleProc, AEFilterUPP filterProc, long refCon, OSASendUPP userUPP) { return (OSErr)CALL_EIGHT_PARAMETER_UPP(userUPP, uppOSASendProcInfo, theAppleEvent, reply, sendMode, sendPriority, timeOutInTicks, idleProc, filterProc, refCon); } + #else + #define InvokeOSASendUPP(theAppleEvent, reply, sendMode, sendPriority, timeOutInTicks, idleProc, filterProc, refCon, userUPP) (OSErr)CALL_EIGHT_PARAMETER_UPP((userUPP), uppOSASendProcInfo, (theAppleEvent), (reply), (sendMode), (sendPriority), (timeOutInTicks), (idleProc), (filterProc), (refCon)) + #endif +#endif + +#if CALL_NOT_IN_CARBON || OLDROUTINENAMES + /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ + #define NewOSACreateAppleEventProc(userRoutine) NewOSACreateAppleEventUPP(userRoutine) + #define NewOSASendProc(userRoutine) NewOSASendUPP(userRoutine) + #define CallOSACreateAppleEventProc(userRoutine, theAEEventClass, theAEEventID, target, returnID, transactionID, result, refCon) InvokeOSACreateAppleEventUPP(theAEEventClass, theAEEventID, target, returnID, transactionID, result, refCon, userRoutine) + #define CallOSASendProc(userRoutine, theAppleEvent, reply, sendMode, sendPriority, timeOutInTicks, idleProc, filterProc, refCon) InvokeOSASendUPP(theAppleEvent, reply, sendMode, sendPriority, timeOutInTicks, idleProc, filterProc, refCon, userRoutine) +#endif /* CALL_NOT_IN_CARBON */ + +/************************************************************************** + OSA Interface Descriptions +************************************************************************** + The OSA Interface is broken down into a required interface, and several + optional interfaces to support additional functionality. A given scripting + component may choose to support only some of the optional interfaces in + addition to the basic interface. The OSA Component Flags may be used to + query the Component Manager to find a scripting component with a particular + capability, or determine if a particular scripting component supports a + particular capability. +**************************************************************************/ +/* OSA Component Flags: */ +enum { + kOSASupportsCompiling = 0x0002, + kOSASupportsGetSource = 0x0004, + kOSASupportsAECoercion = 0x0008, + kOSASupportsAESending = 0x0010, + kOSASupportsRecording = 0x0020, + kOSASupportsConvenience = 0x0040, + kOSASupportsDialects = 0x0080, + kOSASupportsEventHandling = 0x0100 +}; + +/* Component Selectors: */ +enum { + kOSASelectLoad = 0x0001, + kOSASelectStore = 0x0002, + kOSASelectExecute = 0x0003, + kOSASelectDisplay = 0x0004, + kOSASelectScriptError = 0x0005, + kOSASelectDispose = 0x0006, + kOSASelectSetScriptInfo = 0x0007, + kOSASelectGetScriptInfo = 0x0008, + kOSASelectSetActiveProc = 0x0009, + kOSASelectGetActiveProc = 0x000A +}; + +/* Compiling: */ +enum { + kOSASelectScriptingComponentName = 0x0102, + kOSASelectCompile = 0x0103, + kOSASelectCopyID = 0x0104 +}; + +/* GetSource: */ +enum { + kOSASelectGetSource = 0x0201 +}; + +/* AECoercion: */ +enum { + kOSASelectCoerceFromDesc = 0x0301, + kOSASelectCoerceToDesc = 0x0302 +}; + +/* AESending: */ +enum { + kOSASelectSetSendProc = 0x0401, + kOSASelectGetSendProc = 0x0402, + kOSASelectSetCreateProc = 0x0403, + kOSASelectGetCreateProc = 0x0404, + kOSASelectSetDefaultTarget = 0x0405 +}; + +/* Recording: */ +enum { + kOSASelectStartRecording = 0x0501, + kOSASelectStopRecording = 0x0502 +}; + +/* Convenience: */ +enum { + kOSASelectLoadExecute = 0x0601, + kOSASelectCompileExecute = 0x0602, + kOSASelectDoScript = 0x0603 +}; + +/* Dialects: */ +enum { + kOSASelectSetCurrentDialect = 0x0701, + kOSASelectGetCurrentDialect = 0x0702, + kOSASelectAvailableDialects = 0x0703, + kOSASelectGetDialectInfo = 0x0704, + kOSASelectAvailableDialectCodeList = 0x0705 +}; + +/* Event Handling: */ +enum { + kOSASelectSetResumeDispatchProc = 0x0801, + kOSASelectGetResumeDispatchProc = 0x0802, + kOSASelectExecuteEvent = 0x0803, + kOSASelectDoEvent = 0x0804, + kOSASelectMakeContext = 0x0805 +}; + +/* scripting component specific selectors are added beginning with this value */ +enum { + kOSASelectComponentSpecificStart = 0x1001 +}; + + +/* Mode Flags: + + Warning: These should not conflict with the AESend mode flags in + AppleEvents.h, because we may want to use them as OSA mode flags too. +*/ + +/* + This mode flag may be passed to OSALoad, OSAStore or OSACompile to + instruct the scripting component to not retain the "source" of an + expression. This will cause the OSAGetSource call to return the error + errOSASourceNotAvailable if used. However, some scripting components + may not retain the source anyway. This is mainly used when either space + efficiency is desired, or a script is to be "locked" so that its + implementation may not be viewed. + */ +enum { + kOSAModePreventGetSource = 0x00000001 +}; + +/* + These mode flags may be passed to OSACompile, OSAExecute, OSALoadExecute + OSACompileExecute, OSADoScript, OSAExecuteEvent, or OSADoEvent to + indicate whether or not the script may interact with the user, switch + layer or reconnect if necessary. Any AppleEvents will be sent with the + corresponding AESend mode supplied. + */ +enum { + kOSAModeNeverInteract = kAENeverInteract, + kOSAModeCanInteract = kAECanInteract, + kOSAModeAlwaysInteract = kAEAlwaysInteract, + kOSAModeDontReconnect = kAEDontReconnect +}; + +/* + This mode flag may be passed to OSACompile, OSAExecute, OSALoadExecute + OSACompileExecute, OSADoScript, OSAExecuteEvent, or OSADoEvent to + indicate whether or not AppleEvents should be sent with the + kAECanSwitchLayer mode flag sent or not. NOTE: This flag is exactly the + opposite sense of the AppleEvent flag kAECanSwitchLayer. This is to + provide a more convenient default, i.e. not supplying any mode + (kOSAModeNull) means to send events with kAECanSwitchLayer. Supplying + the kOSAModeCantSwitchLayer mode flag will cause AESend to be called + without kAECanSwitchLayer. + */ +enum { + kOSAModeCantSwitchLayer = 0x00000040 +}; + +/* + This mode flag may be passed to OSACompile, OSAExecute, OSALoadExecute + OSACompileExecute, OSADoScript, OSAExecuteEvent, or OSADoEvent to + indicate whether or not AppleEvents should be sent with the kAEDontRecord + mode flag sent or not. NOTE: This flag is exactly the opposite sense of + the AppleEvent flag kAEDontRecord. This is to provide a more convenient + default, i.e. not supplying any mode (kOSAModeNull) means to send events + with kAEDontRecord. Supplying the kOSAModeDoRecord mode flag will + cause AESend to be called without kAEDontRecord. + */ +enum { + kOSAModeDoRecord = 0x00001000 +}; + +/* + This is a mode flag for OSACompile that indicates that a context should + be created as the result of compilation. All handler definitions are + inserted into the new context, and variables are initialized by + evaluating their initial values in a null context (i.e. they must be + constant expressions). + */ +enum { + kOSAModeCompileIntoContext = 0x00000002 +}; + +/* + This is a mode flag for OSACompile that indicates that the previous + script ID (input to OSACompile) should be augmented with any new + definitions in the sourceData rather than replaced with a new script. + This means that the previous script ID must designate a context. + The presence of this flag causes the kOSAModeCompileIntoContext flag + to be implicitly used, causing any new definitions to be initialized + in a null context. + */ +enum { + kOSAModeAugmentContext = 0x00000004 +}; + +/* + This mode flag may be passed to OSADisplay or OSADoScript to indicate + that output only need be human-readable, not re-compilable by OSACompile. + If used, output may be arbitrarily "beautified", e.g. quotes may be left + off of string values, long lists may have elipses, etc. + */ +enum { + kOSAModeDisplayForHumans = 0x00000008 +}; + +/* + This mode flag may be passed to OSAStore in the case where the scriptID + is a context. This causes the context to be saved, but not the context's + parent context. When the stored context is loaded back in, the parent + will be kOSANullScript. + */ +enum { + kOSAModeDontStoreParent = 0x00010000 +}; + +/* + This mode flag may be passed to OSAExecuteEvent to cause the event to + be dispatched to the direct object of the event. The direct object (or + subject attribute if the direct object is a non-object specifier) will + be resolved, and the resulting script object will be the recipient of + the message. The context argument to OSAExecuteEvent will serve as the + root of the lookup/resolution process. + */ +enum { + kOSAModeDispatchToDirectObject = 0x00020000 +}; + +/* + This mode flag may be passed to OSAExecuteEvent to indicate that + components do not have to get the data of object specifier arguments. + */ +enum { + kOSAModeDontGetDataForArguments = 0x00040000 +}; + +/************************************************************************** + OSA Basic Scripting Interface +************************************************************************** + Scripting components must at least support the Basic Scripting interface. +**************************************************************************/ +/* Loading and Storing Scripts: + + These routines allow scripts to be loaded and stored in their internal + (possibly compiled, non-text) representation. +*/ + +/* Resource type for scripts */ +enum { + kOSAScriptResourceType = kOSAGenericScriptingComponentSubtype +}; + +/* + Default type given to OSAStore which creates "generic" loadable script + data descriptors. + */ +enum { + typeOSAGenericStorage = kOSAScriptResourceType +}; + +/* + * OSALoad() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSALoad( + ComponentInstance scriptingComponent, + const AEDesc * scriptData, + long modeFlags, + OSAID * resultingScriptID) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0001, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectLoad, 12); + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSABadStorageType: scriptData not for this scripting component + errOSACorruptData: data seems to be corrupt + errOSADataFormatObsolete script data format is no longer supported + errOSADataFormatTooNew script data format is from a newer version + + ModeFlags: + kOSAModePreventGetSource + */ +/* + * OSAStore() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAStore( + ComponentInstance scriptingComponent, + OSAID scriptID, + DescType desiredType, + long modeFlags, + AEDesc * resultingScriptData) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0002, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectStore, 16); + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSAInvalidID + errOSABadStorageType: desiredType not for this scripting component + + ModeFlags: + kOSAModePreventGetSource + kOSAModeDontStoreParent + */ +/* Executing Scripts: */ +/* + * OSAExecute() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAExecute( + ComponentInstance scriptingComponent, + OSAID compiledScriptID, + OSAID contextID, + long modeFlags, + OSAID * resultingScriptValueID) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0003, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectExecute, 16); + This call runs a script. The contextID represents the environment + with which global variables in the script are resolved. The constant + kOSANullScript may be used for the contextID if the application wishes + to not deal with context directly (a default one is associated with each + scripting component instance). The resultingScriptValueID is the + result of evaluation, and contains a value which may be displayed using + the OSAGetSource call. The modeFlags convey scripting component + specific information. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSAInvalidID + errOSAScriptError: the executing script got an error + + ModeFlags: + kOSAModeNeverInteract + kOSAModeCanInteract + kOSAModeAlwaysInteract + kOSAModeCantSwitchLayer + kOSAModeDontReconnect + kOSAModeDoRecord + */ +/* Displaying results: */ +/* + * OSADisplay() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSADisplay( + ComponentInstance scriptingComponent, + OSAID scriptValueID, + DescType desiredType, + long modeFlags, + AEDesc * resultingText) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0004, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectDisplay, 16); + This call is used to convert results (script value IDs) into displayable + text. The desiredType should be at least typeChar, and modeFlags are + scripting system specific flags to control the formatting of the + resulting text. This call differs from OSAGetSource in that (1) it + always produces at least typeChar, (2) is only works on script values, + (3) it may display it's output in non-compilable form (e.g. without + string quotes, elipses inserted in long and/or circular lists, etc.) and + (4) it is required by the basic scripting interface. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSAInvalidID + errAECoercionFail: desiredType not supported by scripting component + + ModeFlags: + kOSAModeDisplayForHumans + */ +/* Getting Error Information: */ +/* + * OSAScriptError() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAScriptError( + ComponentInstance scriptingComponent, + OSType selector, + DescType desiredType, + AEDesc * resultingErrorDescription) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0005, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectScriptError, 12); + Whenever script execution returns errOSAExecutionError, this routine + may be used to get information about that error. The selector describes + the type of information desired about the error (various selectors are + listed below). The desiredType indicates the data type of the result + desired for that selector. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSABadSelector: selector not supported by scripting component + errAECoercionFail: desiredType not supported by scripting component + */ +/* OSAScriptError selectors: */ +/* + This selector is used to determine the error number of a script error. + These error numbers may be either system error numbers, or error numbers + that are scripting component specific. + Required desiredTypes: + typeShortInteger + */ +enum { + kOSAErrorNumber = keyErrorNumber +}; + +/* + This selector is used to determine the full error message associated + with the error number. It should include the name of the application + which caused the error, as well as the specific error that occurred. + This selector is sufficient for simple error reporting (but see + kOSAErrorBriefMessage, below). + Required desiredTypes: + typeChar error message string + */ +enum { + kOSAErrorMessage = keyErrorString +}; + +/* + This selector is used to determine a brief error message associated with + the error number. This message and should not mention the name of the + application which caused the error, any partial results or offending + object (see kOSAErrorApp, kOSAErrorPartialResult and + kOSAErrorOffendingObject, below). + Required desiredTypes: + typeChar brief error message string + */ +/* 0x65727262 */ +enum { + kOSAErrorBriefMessage = FOUR_CHAR_CODE('errb') +}; + +/* + This selector is used to determine which application actually got the + error (if it was the result of an AESend), or the current application + if .... + Required desiredTypes: + typeProcessSerialNumber PSN of the errant application + typeChar name of the errant application + */ +/* 0x65726170 */ +enum { + kOSAErrorApp = FOUR_CHAR_CODE('erap') +}; + +/* + This selector is used to determine any partial result returned by an + operation. If an AESend call failed, but a partial result was returned, + then the partial result may be returned as an AEDesc. + Required desiredTypes: + typeBest AEDesc of any partial result + */ +/* 0x70746c72 */ +enum { + kOSAErrorPartialResult = FOUR_CHAR_CODE('ptlr') +}; + +/* + This selector is used to determine any object which caused the error + that may have been indicated by an application. The result is an + AEDesc. + Required desiredTypes: + typeBest AEDesc of any offending object + */ +/* 0x65726f62 */ +enum { + kOSAErrorOffendingObject = FOUR_CHAR_CODE('erob') +}; + +/* + This selector is used to determine the type expected by a coercion + operation if a type error occurred. + */ +/* 0x65727274 */ +enum { + kOSAErrorExpectedType = FOUR_CHAR_CODE('errt') +}; + +/* + This selector is used to determine the source text range (start and + end positions) of where the error occurred. + Required desiredTypes: + typeOSAErrorRange + */ +/* 0x65726e67 */ +enum { + kOSAErrorRange = FOUR_CHAR_CODE('erng') +}; + +/* + An AERecord type containing keyOSASourceStart and keyOSASourceEnd fields + of type short. + */ +/* 0x65726e67 */ +enum { + typeOSAErrorRange = FOUR_CHAR_CODE('erng') +}; + +/* Field of a typeOSAErrorRange record of typeShortInteger */ +/* 0x73726373 */ +enum { + keyOSASourceStart = FOUR_CHAR_CODE('srcs') +}; + +/* Field of a typeOSAErrorRange record of typeShortInteger */ +/* 0x73726365 */ +enum { + keyOSASourceEnd = FOUR_CHAR_CODE('srce') +}; + +/* Disposing Script IDs: */ +/* + * OSADispose() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSADispose( + ComponentInstance scriptingComponent, + OSAID scriptID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0006, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectDispose, 4); + Disposes a script or context. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSAInvalidID + */ +/* Getting and Setting Script Information: */ +/* + * OSASetScriptInfo() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSASetScriptInfo( + ComponentInstance scriptingComponent, + OSAID scriptID, + OSType selector, + long value) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0007, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectSetScriptInfo, 12); + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSAInvalidID + errOSABadSelector: selector not supported by scripting component + or selector not for this scriptID + */ +/* + * OSAGetScriptInfo() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAGetScriptInfo( + ComponentInstance scriptingComponent, + OSAID scriptID, + OSType selector, + long * result) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0008, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectGetScriptInfo, 12); + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSAInvalidID + errOSABadSelector: selector not supported by scripting component + or selector not for this scriptID + */ +/* Manipulating the ActiveProc: + + Scripting systems will supply default values for these procedures if they + are not set by the client: +*/ +typedef CALLBACK_API( OSErr , OSAActiveProcPtr )(long refCon); +typedef STACK_UPP_TYPE(OSAActiveProcPtr) OSAActiveUPP; +/* + * NewOSAActiveUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSAActiveUPP ) +NewOSAActiveUPP(OSAActiveProcPtr userRoutine); +#if !OPAQUE_UPP_TYPES + enum { uppOSAActiveProcInfo = 0x000000E0 }; /* pascal 2_bytes Func(4_bytes) */ + #ifdef __cplusplus + inline DEFINE_API_C(OSAActiveUPP) NewOSAActiveUPP(OSAActiveProcPtr userRoutine) { return (OSAActiveUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSAActiveProcInfo, GetCurrentArchitecture()); } + #else + #define NewOSAActiveUPP(userRoutine) (OSAActiveUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppOSAActiveProcInfo, GetCurrentArchitecture()) + #endif +#endif + +/* + * DisposeOSAActiveUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( void ) +DisposeOSAActiveUPP(OSAActiveUPP userUPP); +#if !OPAQUE_UPP_TYPES + #ifdef __cplusplus + inline DEFINE_API_C(void) DisposeOSAActiveUPP(OSAActiveUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); } + #else + #define DisposeOSAActiveUPP(userUPP) DisposeRoutineDescriptor(userUPP) + #endif +#endif + +/* + * InvokeOSAActiveUPP() + * + * Availability: + * Non-Carbon CFM: available as macro/inline + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API_C( OSErr ) +InvokeOSAActiveUPP( + long refCon, + OSAActiveUPP userUPP); +#if !OPAQUE_UPP_TYPES + #ifdef __cplusplus + inline DEFINE_API_C(OSErr) InvokeOSAActiveUPP(long refCon, OSAActiveUPP userUPP) { return (OSErr)CALL_ONE_PARAMETER_UPP(userUPP, uppOSAActiveProcInfo, refCon); } + #else + #define InvokeOSAActiveUPP(refCon, userUPP) (OSErr)CALL_ONE_PARAMETER_UPP((userUPP), uppOSAActiveProcInfo, (refCon)) + #endif +#endif + +#if CALL_NOT_IN_CARBON || OLDROUTINENAMES + /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */ + #define NewOSAActiveProc(userRoutine) NewOSAActiveUPP(userRoutine) + #define CallOSAActiveProc(userRoutine, refCon) InvokeOSAActiveUPP(refCon, userRoutine) +#endif /* CALL_NOT_IN_CARBON */ + +/* + * OSASetActiveProc() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSASetActiveProc( + ComponentInstance scriptingComponent, + OSAActiveUPP activeProc, + long refCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0009, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectSetActiveProc, 8); + If activeProc is nil, the default activeProc is used. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + */ +/* + * OSAGetActiveProc() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAGetActiveProc( + ComponentInstance scriptingComponent, + OSAActiveUPP * activeProc, + long * refCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x000A, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectGetActiveProc, 8); + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + */ +/************************************************************************** + OSA Optional Compiling Interface +************************************************************************** + Scripting components that support the Compiling interface have the + kOSASupportsCompiling bit set in it's ComponentDescription. +**************************************************************************/ +/* + * OSAScriptingComponentName() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAScriptingComponentName( + ComponentInstance scriptingComponent, + AEDesc * resultingScriptingComponentName) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0102, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectScriptingComponentName, 4); + Given a scripting component, this routine returns the name of that + scripting component in a type that is coercable to text (typeChar). + The generic scripting component returns the name of the default + scripting component. This name should be sufficient to convey to the + user the kind of script (syntax) he is expected to write. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + */ +/* + * OSACompile() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSACompile( + ComponentInstance scriptingComponent, + const AEDesc * sourceData, + long modeFlags, + OSAID * previousAndResultingScriptID) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0103, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectCompile, 12); + Coerces input desc (possibly text) into a script's internal format. + Once compiled, the script is ready to run. The modeFlags convey + scripting component specific information. The previous script ID + (result parameter) is made to refer to the newly compiled script, + unless it was originally kOSANullScript. In this case a new script + ID is created and used. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errAECoercionFail: sourceData is not compilable + errOSAScriptError: sourceData was a bad script (syntax error) + errOSAInvalidID: previousAndResultingCompiledScriptID was not + valid on input + + ModeFlags: + kOSAModePreventGetSource + kOSAModeCompileIntoContext + kOSAModeAugmentContext + kOSAModeNeverInteract + kOSAModeCanInteract + kOSAModeAlwaysInteract + kOSAModeCantSwitchLayer + kOSAModeDontReconnect + kOSAModeDoRecord + */ +/* + * OSACopyID() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSACopyID( + ComponentInstance scriptingComponent, + OSAID fromID, + OSAID * toID) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0104, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectCopyID, 8); + If toID is a reference to kOSANullScript then it is updated to have a + new scriptID value. This call can be used to perform undo or revert + operations on scripts. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSAInvalidID + */ +/************************************************************************** + OSA Optional GetSource Interface +************************************************************************** + Scripting components that support the GetSource interface have the + kOSASupportsGetSource bit set in their ComponentDescription. +**************************************************************************/ +/* + * OSAGetSource() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAGetSource( + ComponentInstance scriptingComponent, + OSAID scriptID, + DescType desiredType, + AEDesc * resultingSourceData) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0201, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectGetSource, 12); + This routine causes a compiled script to be output in a form (possibly + text) such that it is suitable to be passed back to OSACompile. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSAInvalidID + errOSASourceNotAvailable can't get source for this scriptID + */ +/************************************************************************** + OSA Optional AECoercion Interface +************************************************************************** + Scripting components that support the AECoercion interface have the + kOSASupportsAECoercion bit set in their ComponentDescription. +**************************************************************************/ +/* + * OSACoerceFromDesc() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSACoerceFromDesc( + ComponentInstance scriptingComponent, + const AEDesc * scriptData, + long modeFlags, + OSAID * resultingScriptID) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0301, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectCoerceFromDesc, 12); + This routine causes script data to be coerced into a script value. + If the scriptData is an AppleEvent, then the resultingScriptID is a + compiled script ID (mode flags for OSACompile may be used in this case). + Other scriptData descriptors create script value IDs. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + + ModeFlags: + kOSAModePreventGetSource + kOSAModeCompileIntoContext + kOSAModeNeverInteract + kOSAModeCanInteract + kOSAModeAlwaysInteract + kOSAModeCantSwitchLayer + kOSAModeDontReconnect + kOSAModeDoRecord + */ +/* + * OSACoerceToDesc() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSACoerceToDesc( + ComponentInstance scriptingComponent, + OSAID scriptID, + DescType desiredType, + long modeFlags, + AEDesc * result) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0302, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectCoerceToDesc, 16); + This routine causes a script value to be coerced into any desired form. + If the scriptID denotes a compiled script, then it may be coerced to + typeAppleEvent. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSAInvalidID + */ +/************************************************************************** + OSA Optional AESending Interface +************************************************************************** + Scripting components that support the AESending interface have the + kOSASupportsAESending bit set in their ComponentDescription. +**************************************************************************/ +/* + Scripting systems will supply default values for these procedures if they + are not set by the client: +*/ +/* + * OSASetSendProc() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSASetSendProc( + ComponentInstance scriptingComponent, + OSASendUPP sendProc, + long refCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0401, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectSetSendProc, 8); + If sendProc is nil, the default sendProc is used. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + */ +/* + * OSAGetSendProc() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAGetSendProc( + ComponentInstance scriptingComponent, + OSASendUPP * sendProc, + long * refCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0402, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectGetSendProc, 8); + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + */ +/* + * OSASetCreateProc() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSASetCreateProc( + ComponentInstance scriptingComponent, + OSACreateAppleEventUPP createProc, + long refCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0403, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectSetCreateProc, 8); + If createProc is nil, the default createProc is used. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + */ +/* + * OSAGetCreateProc() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAGetCreateProc( + ComponentInstance scriptingComponent, + OSACreateAppleEventUPP * createProc, + long * refCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0404, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectGetCreateProc, 8); + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + */ +/* + * OSASetDefaultTarget() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSASetDefaultTarget( + ComponentInstance scriptingComponent, + const AEAddressDesc * target) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0405, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectSetDefaultTarget, 4); + This routine sets the default target application for AE sending. + It also establishes the default target from which terminologies come. + It is effectively like having an AppleScript "tell" statement around + the entire program. If this routine is not called, or if the target + is a null AEDesc, then the current application is the default target. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + */ +/************************************************************************** + OSA Optional Recording Interface +************************************************************************** + Scripting components that support the Recording interface have the + kOSASupportsRecording bit set in their ComponentDescription. +**************************************************************************/ +/* + * OSAStartRecording() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAStartRecording( + ComponentInstance scriptingComponent, + OSAID * compiledScriptToModifyID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0501, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectStartRecording, 4); + Starts recording. If compiledScriptToModifyID is kOSANullScript, a + new script ID is created and returned. If the current application has + a handler for the kOSARecordedText event, then kOSARecordedText events + are sent to the application containing the text of each AppleEvent + recorded. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSAInvalidID + errOSARecordingIsAlreadyOn + */ +/* + * OSAStopRecording() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAStopRecording( + ComponentInstance scriptingComponent, + OSAID compiledScriptID) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0502, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectStopRecording, 4); + If compiledScriptID is not being recorded into or recording is not + currently on, no error is returned. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSAInvalidID + */ +/************************************************************************** + OSA Optional Convenience Interface +************************************************************************** + Scripting components that support the Convenience interface have the + kOSASupportsConvenience bit set in their ComponentDescription. +**************************************************************************/ +/* + * OSALoadExecute() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSALoadExecute( + ComponentInstance scriptingComponent, + const AEDesc * scriptData, + OSAID contextID, + long modeFlags, + OSAID * resultingScriptValueID) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0601, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectLoadExecute, 16); + This routine is effectively equivalent to calling OSALoad followed by + OSAExecute. After execution, the compiled source is disposed. Only the + resulting value ID is retained. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSABadStorageType: scriptData not for this scripting component + errOSACorruptData: data seems to be corrupt + errOSADataFormatObsolete script data format is no longer supported + errOSADataFormatTooNew script data format is from a newer version + errOSAInvalidID + errOSAScriptError: the executing script got an error + + ModeFlags: + kOSAModeNeverInteract + kOSAModeCanInteract + kOSAModeAlwaysInteract + kOSAModeCantSwitchLayer + kOSAModeDontReconnect + kOSAModeDoRecord + */ +/* + * OSACompileExecute() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSACompileExecute( + ComponentInstance scriptingComponent, + const AEDesc * sourceData, + OSAID contextID, + long modeFlags, + OSAID * resultingScriptValueID) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0602, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectCompileExecute, 16); + This routine is effectively equivalent to calling OSACompile followed by + OSAExecute. After execution, the compiled source is disposed. Only the + resulting value ID is retained. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errAECoercionFail: sourceData is not compilable + errOSAScriptError: sourceData was a bad script (syntax error) + errOSAInvalidID: previousAndResultingCompiledScriptID was not + valid on input + errOSAScriptError: the executing script got an error + + ModeFlags: + kOSAModeNeverInteract + kOSAModeCanInteract + kOSAModeAlwaysInteract + kOSAModeCantSwitchLayer + kOSAModeDontReconnect + kOSAModeDoRecord + */ +/* + * OSADoScript() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSADoScript( + ComponentInstance scriptingComponent, + const AEDesc * sourceData, + OSAID contextID, + DescType desiredType, + long modeFlags, + AEDesc * resultingText) FIVEWORDINLINE(0x2F3C, 0x0014, 0x0603, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectDoScript, 20); + This routine is effectively equivalent to calling OSACompile followed by + OSAExecute and then OSADisplay. After execution, the compiled source + and the resulting value are is disposed. Only the resultingText + descriptor is retained. If a script error occur during processing, the + resultingText gets the error message of the error, and errOSAScriptError + is returned. OSAScriptError may still be used to extract more + information about the particular error. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errAECoercionFail: sourceData is not compilable or + desiredType not supported by scripting component + errOSAScriptError: sourceData was a bad script (syntax error) + errOSAInvalidID: previousAndResultingCompiledScriptID was not + valid on input + errOSAScriptError: the executing script got an error + + ModeFlags: + kOSAModeNeverInteract + kOSAModeCanInteract + kOSAModeAlwaysInteract + kOSAModeCantSwitchLayer + kOSAModeDontReconnect + kOSAModeDoRecord + kOSAModeDisplayForHumans + */ +/************************************************************************** + OSA Optional Dialects Interface +************************************************************************** + Scripting components that support the Dialects interface have the + kOSASupportsDialects bit set in their ComponentDescription. +**************************************************************************/ +/* + These calls allows an scripting component that supports different dialects + to dynamically switch between those dialects. Although this interface is + specified, the particular dialect codes are scripting component dependent. +*/ +/* + * OSASetCurrentDialect() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSASetCurrentDialect( + ComponentInstance scriptingComponent, + short dialectCode) FIVEWORDINLINE(0x2F3C, 0x0002, 0x0701, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectSetCurrentDialect, 2); + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSANoSuchDialect: invalid dialectCode + */ +/* + * OSAGetCurrentDialect() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAGetCurrentDialect( + ComponentInstance scriptingComponent, + short * resultingDialectCode) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0702, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectGetCurrentDialect, 4); + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + */ +/* + * OSAAvailableDialects() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAAvailableDialects( + ComponentInstance scriptingComponent, + AEDesc * resultingDialectInfoList) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0703, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectAvailableDialects, 4); + This call return an AEList containing information about each of the + currently available dialects of a scripting component. Each item + is an AERecord of typeOSADialectInfo that contains at least the fields + keyOSADialectName, keyOSADialectCode, KeyOSADialectLangCode and + keyOSADialectScriptCode. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + */ +/* + * OSAGetDialectInfo() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAGetDialectInfo( + ComponentInstance scriptingComponent, + short dialectCode, + OSType selector, + AEDesc * resultingDialectInfo) FIVEWORDINLINE(0x2F3C, 0x000A, 0x0704, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectGetDialectInfo, 10); + This call gives information about the specified dialect of a scripting + component. It returns an AEDesc whose type depends on the selector + specified. Available selectors are the same as the field keys for a + dialect info record. The type of AEDesc returned is the same as the + type of the field that has same key as the selector. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSABadSelector + errOSANoSuchDialect: invalid dialectCode + */ +/* + * OSAAvailableDialectCodeList() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAAvailableDialectCodeList( + ComponentInstance scriptingComponent, + AEDesc * resultingDialectCodeList) FIVEWORDINLINE(0x2F3C, 0x0004, 0x0705, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectAvailableDialectCodeList, 4); + This is alternative to OSAGetAvailableDialectCodeList. Use this call + and OSAGetDialectInfo to get information on dialects. + This call return an AEList containing dialect code for each of the + currently available dialects of a scripting component. Each dialect + code is a short integer of type typeShortInteger. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + + Type of a dialect info record containing at least keyOSADialectName + and keyOSADialectCode fields. + + keys for dialect info record, also used as selectors to OSAGetDialectInfo. + + Field of a typeOSADialectInfo record of typeChar. + Field of a typeOSADialectInfo record of typeShortInteger. + Field of a typeOSADialectInfo record of typeShortInteger. + Field of a typeOSADialectInfo record of typeShortInteger. + */ +/************************************************************************** + OSA Optional Event Handling Interface +************************************************************************** + Scripting components that support the Event Handling interface have the + kOSASupportsEventHandling bit set in their ComponentDescription. +**************************************************************************/ +/* + * OSASetResumeDispatchProc() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSASetResumeDispatchProc( + ComponentInstance scriptingComponent, + AEEventHandlerUPP resumeDispatchProc, + long refCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0801, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectSetResumeDispatchProc, 8); + This function is used to set the ResumeDispatchProc that will be used + by OSAExecuteEvent and OSADoEvent if either no event handler can be + found in the context, or the context event hander "continues" control + onward. The two constants kOSAUseStandardDispatch and kOSANoDispatch + may also be passed to this routine indicating that the handler registered + in the application with AEInstallEventHandler should be used, or no + dispatch should occur, respectively. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + */ +enum { + kOSAUseStandardDispatch = kAEUseStandardDispatch +}; + +/* + Special ResumeDispatchProc constant which may be passed to + OSASetResumeDispatchProc indicating that the handler registered + in the application with AEInstallEventHandler should be used. + + NOTE: Had to remove the cast (AEEventHandlerUPP). The C compiler + doesn't allow pointer types to be assigned to an enum. All + constants must be assigned as enums to translate properly to + Pascal. + */ +enum { + kOSANoDispatch = kAENoDispatch +}; + +/* + Special ResumeDispatchProc constant which may be passed to + OSASetResumeDispatchProc indicating that no dispatch should occur. + + NOTE: Had to remove the cast (AEEventHandlerUPP). The C compiler + doesn't allow pointer types to be assigned to an enum. All + constants must be assigned as enums to translate properly to + Pascal. + */ +enum { + kOSADontUsePhac = 0x0001 +}; + +/* + Special refCon constant that may be given to OSASetResumeDispatchProc + only when kOSAUseStandardDispatch is used as the ResumeDispatchProc. + This causes the standard dispatch to be performed, except the phac + handler is not called. This is useful during tinkerability, when + the phac handler is used to lookup a context associated with an event's + direct parameter, and call OSAExecuteEvent or OSADoEvent. Failure to + bypass the phac handler would result in an infinite loop. + */ +/* + * OSAGetResumeDispatchProc() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAGetResumeDispatchProc( + ComponentInstance scriptingComponent, + AEEventHandlerUPP * resumeDispatchProc, + long * refCon) FIVEWORDINLINE(0x2F3C, 0x0008, 0x0802, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectGetResumeDispatchProc, 8); + Returns the registered ResumeDispatchProc. If no ResumeDispatchProc has + been registered, then kOSAUseStandardDispatch (the default) is returned. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + */ +/* + * OSAExecuteEvent() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAExecuteEvent( + ComponentInstance scriptingComponent, + const AppleEvent * theAppleEvent, + OSAID contextID, + long modeFlags, + OSAID * resultingScriptValueID) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0803, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectExecuteEvent, 16); + This call is similar to OSAExecute except the initial command to + execute comes in the form of an AppleEvent. If the contextID + defines any event handlers for that event, they are used to process + the event. If no event handler can be found in the context + errAEEventNotHandled is returned. If an event handler is found and + the hander "continues" control onward, the ResumeDispatchProc + (registered with OSASetResumeDispatchProc, above) is called given the + AppleEvent. The result is returned as a scriptValueID. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSAInvalidID + errOSAScriptError: the executing script got an error + errAEEventNotHandled: no handler for event in contextID + + ModeFlags: + kOSAModeNeverInteract + kOSAModeCanInteract + kOSAModeAlwaysInteract + kOSAModeCantSwitchLayer + kOSAModeDontReconnect + kOSAModeDoRecord + */ +/* + * OSADoEvent() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSADoEvent( + ComponentInstance scriptingComponent, + const AppleEvent * theAppleEvent, + OSAID contextID, + long modeFlags, + AppleEvent * reply) FIVEWORDINLINE(0x2F3C, 0x0010, 0x0804, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectDoEvent, 16); + This call is similar to OSADoScript except the initial command to + execute comes in the form of an AppleEvent, and the result is an + AppleEvent reply record. If the contextID defines any event handlers + for that event, they are used to process the event. If no event handler + can be found in the context errAEEventNotHandled is returned. If an + event handler is found and the hander "continues" control onward, the + ResumeDispatchProc (registered with OSASetResumeDispatchProc, above) is + called given the AppleEvent. The result is returned in the form of an + AppleEvent reply descriptor. If at any time the script gets an error, or + if the ResumeDispatchProc returns a reply event indicating an error, + then the OSADoEvent call itself returns an error reply (i.e. OSADoEvent + should never return errOSAScriptError). Any error result returned by + the ResumeDispatchProc will be returned by OSADoEvent. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSAInvalidID + errAEEventNotHandled: no handler for event in contextID + + ModeFlags: + kOSAModeNeverInteract + kOSAModeCanInteract + kOSAModeAlwaysInteract + kOSAModeCantSwitchLayer + kOSAModeDontReconnect + kOSAModeDoRecord + */ +/* + * OSAMakeContext() + * + * Availability: + * Non-Carbon CFM: in AppleScriptLib 1.1 and later + * CarbonLib: in CarbonLib 1.0 and later + * Mac OS X: in version 10.0 and later + */ +EXTERN_API( OSAError ) +OSAMakeContext( + ComponentInstance scriptingComponent, + const AEDesc * contextName, + OSAID parentContext, + OSAID * resultingContextID) FIVEWORDINLINE(0x2F3C, 0x000C, 0x0805, 0x7000, 0xA82A); + + +/* + OSAComponentFunctionInline(kOSASelectMakeContext, 12); + Makes a new empty context which may be passed to OSAExecute or + OSAExecuteEvent. If contextName is typeNull, an unnamed context is + created. If parentContext is kOSANullScript then the resulting context + does not inherit bindings from any other context. + + Errors: + badComponentInstance invalid scripting component instance + errOSASystemError + errOSAInvalidID + errAECoercionFail: contextName is invalid + */ + +#if PRAGMA_STRUCT_ALIGN + #pragma options align=reset +#elif PRAGMA_STRUCT_PACKPUSH + #pragma pack(pop) +#elif PRAGMA_STRUCT_PACK + #pragma pack() +#endif + +#ifdef PRAGMA_IMPORT_OFF +#pragma import off +#elif PRAGMA_IMPORT +#pragma import reset +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __OSA__ */ + |