mirror of
https://github.com/elliotnunn/mac-rom.git
synced 2024-12-28 16:31:01 +00:00
4325cdcc78
Resource forks are included only for .rsrc files. These are DeRezzed into their data fork. 'ckid' resources, from the Projector VCS, are not included. The Tools directory, containing mostly junk, is also excluded.
179 lines
6.4 KiB
C
179 lines
6.4 KiB
C
/*
|
|
File: AppleEventsInternal.h
|
|
|
|
Contains: Types and structs for receiving the standard six AppleEvents.
|
|
|
|
Written by: Nick Kledzik
|
|
|
|
Copyright: © 1990-1991 by Apple Computer, Inc., all rights reserved.
|
|
|
|
Change History (most recent first):
|
|
|
|
<5> 8/27/91 JSM Cleanup header.
|
|
<4> 2/5/91 Lai include addtional constants used internally by the AppleEvents
|
|
manager
|
|
<3> 2/1/91 DFH stb,WS#DFH-910131c:Moved Process Mgr defined codes here, since
|
|
AppleEvent manager has new names for them , and we don't want to
|
|
break any compiles at this point.
|
|
<2> 2/1/91 DFH BAC,WS#DFH-910131c:Replaced aeErrorValueKeyword ('errv') with
|
|
aeErrorNumberKeyword ('errn').
|
|
<1> 9/5/90 ngk first checked in
|
|
|
|
<0> 9/05/90 ngk Moved from {CIncludes}AppleEvents.h to here
|
|
---------------------------------------------------------------------------
|
|
<11> DFH 16 Apr 90 Changed saeOpenDocumentMsgID to 'odoc', saePrintDocumentMsgID
|
|
to 'pdoc'. Added saeLaunchedWithoutDocs, saeAnswer,
|
|
aeErrorValueKeyword, and AppleEventReply.
|
|
<10> ngk 4/2/90 Renamed class field in HighLevelEventRecord
|
|
<9> DFH 23 Mar 90 Corrected the majorVersion to be a short, as per ERS.
|
|
<8> ngk 3/22/90 Changed AETFDescriptor AETFParameter in regular expr.
|
|
<7> ngk 3/20/90 Change to new 7.0a8 format for message buffers. Removed
|
|
constants and structs for non-standard appleevents
|
|
<6> DFH 12 Mar 90 Added AppleEventMessage
|
|
<5> DFH 12 Mar 90 Removed aeDebuggerNotify
|
|
1.1 ngk 12/01/1989 Renamed aeUnexpectedQuit to aeApplicationDied, and
|
|
refcon to amsRefCon
|
|
1.0 ngk 11/01/1989 initial EASE release
|
|
*/
|
|
|
|
|
|
#ifndef __APPLEEVENTSINTERNAL__
|
|
#define __APPLEEVENTSINTERNAL__
|
|
|
|
#ifndef __TYPES__
|
|
#include <Types.h>
|
|
#endif
|
|
|
|
typedef unsigned long MsgClass;
|
|
typedef unsigned long MsgID;
|
|
typedef unsigned long KeyWord;
|
|
typedef unsigned long ParamType;
|
|
|
|
|
|
/* this template is used to extract the MsgClass and MsgID */
|
|
/* fields from a highlevel event */
|
|
struct HighLevelEventRecord {
|
|
short what; /* always kHighLevelEvent */
|
|
MsgClass mClass;
|
|
long reserved1;
|
|
MsgID mID;
|
|
short reserved2;
|
|
};
|
|
#ifndef __cplusplus
|
|
typedef struct HighLevelEventRecord HighLevelEventRecord;
|
|
#endif
|
|
|
|
/* Codes from AppleEvents.h under the names they were supposed remain, but didn't */
|
|
#define standardAppleEventMsgClass 'aevt' /* kCoreEventClass */
|
|
#define saeLaunchedWithoutDocs 'oapp' /* kAEOpenApplication */
|
|
#define saeOpenDocumentMsgID 'odoc' /* kAEOpenDocuments */
|
|
#define saePrintDocumentMsgID 'pdoc' /* kAEPrintDocuments */
|
|
#define saeQuitMsgID 'quit' /* kAEQuitApplication */
|
|
#define saeAnswer 'ansr' /* kAEAnswer */
|
|
#define aeCreatorType 'crea' /* kAECreatorType */
|
|
#define aeQuitAll 'quia' /* kAEQuitAll */
|
|
#define aeShutDown 'shut' /* kAEShutDown */
|
|
#define aeRestart 'rest' /* kAERestart */
|
|
#define aeApplicationDied 'obit' /* kAEApplicationDied */
|
|
#define aeProcessKeyword 'psn ' /* keyProcessSerialNumber */
|
|
#define aeProcessParamType 'psn ' /* typeProcessSerialNumber */
|
|
#define aeDirectObjectKeyword '----' /* keyDirectObject */
|
|
#define aeErrorNumberKeyword 'errn' /* keyErrorNumber */
|
|
#define aeListParamType 'list' /* typeAEList */
|
|
#define aeAliasParamType 'alis' /* typeAlias */
|
|
#define aeLongintParamType 'long' /* typeLongInteger */
|
|
#define aeIntegerParamType 'long' /* typeInteger */
|
|
#define aeTextParamType 'TEXT' /* typeChar */
|
|
#define aeBooleanParamType 'bool' /* typeBoolean */
|
|
#define aeTrueParamType 'true' /* typeTrue */
|
|
#define aeFalseParamType 'fals' /* typeFalse */
|
|
#define aeEnumerateParamType 'enum' /* typeEnumerated */
|
|
|
|
/* addition constants used by AppleEvent manager internally */
|
|
|
|
#define aeReplyRequestedKeyword 'repq' /* the client wants a reply */
|
|
#define aeBeforeTimeKeyword 'befo' /* do it before this time */
|
|
|
|
#define aeWaitLongerMSGID 'wait' /* wait longer AppleEvent */
|
|
#define aeSwitchToFrontMSGID 'cans' /* please switch to front */
|
|
|
|
/* enumerator used in the interactLevel */
|
|
#define aeNeverInteractEnum 'nevi'
|
|
#define aeCanInteractEnum 'cani'
|
|
#define aeCanSwitchIfInteractEnum 'cans'
|
|
#define aeAlwaysInteractEnum 'alwi'
|
|
#define aeAlwaysSwitchIfInteractEnum 'alws'
|
|
|
|
/* Codes we thought of in December 1989 that might be unused now (January 91) */
|
|
#define saeNewDocumentMsgID 'new '
|
|
#define saeSetUpMenusMsgID 'mens'
|
|
#define saeGetPropertyMsgID 'getp'
|
|
#define aeTemporaryIDParamType 'tid '
|
|
#define aePropertyParamType 'prop'
|
|
|
|
/*
|
|
After receiving a high level event, you can get its message buffer by calling
|
|
AcceptHighLevelEvent. The format of the buffer as a regular expression is:
|
|
|
|
AETFHeader (AETFParameter)* aeEndOfMetaDataKeyword (AETFParameter)*
|
|
|
|
The header tells you the protocol and version. We recommend that everyone uses
|
|
the AppleEvent Transport Format (AETF) protocol. Following the header is zero
|
|
or more "meta-parameters" (For the short term, you may ignore them).
|
|
Following them is an end of metaparameters keyword (';;;;') and then zero or
|
|
more "regular parameters". The most important regular parameter is
|
|
the "direct object". It is distinguished by the keyword of '----'. It is the
|
|
object of the message (e.g. which document to open).
|
|
|
|
You will probably want to write a routine that can walk the parameters
|
|
and find a descriptor by keyword.
|
|
*/
|
|
|
|
|
|
struct AETFHeader
|
|
{
|
|
long signature; /* always 'aevt' */
|
|
short majorVersion; /* always 1 (for now) */
|
|
short minorVersion; /* always 1 (for now) */
|
|
};
|
|
#ifndef __cplusplus
|
|
typedef struct AETFHeader AETFHeader;
|
|
#endif
|
|
typedef AETFHeader *AETFHeaderPtr;
|
|
|
|
#define aeEndOfMetaDataKeyword ';;;;'
|
|
|
|
/* A Descriptor is chunk of data that has a type and length. */
|
|
struct AETFDescriptor
|
|
{
|
|
ParamType dataType;
|
|
long dataLength;
|
|
/* char[] data; start of actual data */
|
|
};
|
|
#ifndef __cplusplus
|
|
typedef struct AETFDescriptor AETFDescriptor;
|
|
#endif
|
|
typedef AETFDescriptor *AETFDescriptorPtr;
|
|
|
|
/* A Parameter is a Keyword and Descriptor. */
|
|
struct AETFParameter
|
|
{
|
|
KeyWord key;
|
|
AETFDescriptor descriptor;
|
|
};
|
|
#ifndef __cplusplus
|
|
typedef struct AETFParameter AETFParameter;
|
|
#endif
|
|
typedef AETFParameter *AETFParameterPtr;
|
|
|
|
/* Standard reply message */
|
|
typedef struct AppleEventReply {
|
|
AETFHeader messageHeader; /* == saeAnswer */
|
|
KeyWord metaDataMark;
|
|
AETFParameter errorCodeHdr; /* == aeErrorNumberKeyword, aeLongintParamType */
|
|
long errorValue; /* sign-extended OSErr */
|
|
} AppleEventReply;
|
|
|
|
|
|
#endif /* __APPLEEVENTSINTERNAL__ */
|