mac-rom/Interfaces/CIncludes/Processes.h
Elliot Nunn 4325cdcc78 Bring in CubeE sources
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.
2017-12-26 09:52:23 +08:00

239 lines
7.9 KiB
C

/************************************************************
Created: Wednesday, July 31, 1991 at 7:41 AM
Processes.h
C Interface to the Macintosh Libraries
Copyright Apple Computer, Inc. 1989-1991
All rights reserved
This file is used in these builds: BigBang
Change History (most recent first):
<2> 8/26/93 IH #1108969 <KON>: Add modeDisplayManagerAware to size bits.
<30> 7/31/91 JL Updated Copyright.
<29> 6/14/91 JL Checked in official MPW 3.2Ä version. Put comments inside the
enum declarations to match DSG Database.
<28> 2/1/91 DFH stb,WS#DFH-910131c:Moved Process Mgr defined AppleEvent codes to
AppleEvents.h under new names. Put old names in
AppleEventsInternal.h since we don't want to break any compiles
at this point.
<27> 1/30/91 JL Checked in database generated file from DSG.
<26> 1/25/91 stb JDR: change processSignature to OSType from unsigned long
<25> 1/16/91 JDR (dba) Moved the Process Mgr error numbers into the Errors
interface file.
<24> 1/2/91 DFH Made sure routine parameter names match the Inside Mac Process
Mgr chapter documentation.
<22> 11/28/90 JL Put formal parameter names back.
<21> 11/19/90 DFH Comment changes.
<20> 11/7/90 JL Changed all #defines to anonymous enums
<19> 11/4/90 dba add some const stuff for input-only parameters
<18> 10/21/90 gbm (with dba) Made compatible with 3.2 C compiler (and incompatible
with previous compilers).
<17> 10/19/90 DFH Fixed LaunchApplication glue. Was an inline that popped
parameter, which is not C convention. Now uses #pragma
parameter and inline is plain trap number.
<16> 10/9/90 JAL CPlusPlus compatability.
<15> 9/4/90 JT Added modeUseTextEditServices to the list of process state
flags.
<14> 8/28/90 DFH Correct capitalization of highLongOfPSN and lowLongOfPSN
<13> 7/19/90 DFH Removed launchIsAutomatic and modeAutomatic.
<12> 7/16/90 DFH Launch, GetProcessInformation, and LaunchDeskAccessory now use
FSSpec instead of name/vfrefnum/dirid.
<11> 4/16/90 DFH Added AppleEvent definitions. Changed Launch params to use
unsigned fields, and made the constant for extended length
be the actual value rather than a bias.
<10> 3/21/90 DFH Renamed new mode flags to more closely match the SIZE flags.
<9> 3/20/90 DFH Added modeHLEventCompatible, modeNetHLEventCompatible, and
modeStationeryAware. Removed AppleEventMessage field from
AppParameters. No longer includes AppleEvents.h.
<8> 3/12/90 DFH Added AppParameters structure for launchAppParameters.
<6> 2/8/90 DFH Copied projector revision comments to this file.
<5> 2/5/90 DFH Added modeXxx defs for SIZE flags portion of the processMode.
<4> 2/5/90 DFH Renamed and recapitalized to match the MultiFinder 7.0 ERS.
<2> 2/3/90 DFH Added GetFrontProcess glue. Renamed launch flags and process mode flags to match ERS.
************************************************************/
#ifndef __PROCESSES__
#define __PROCESSES__
#ifndef __TYPES__
#include <Types.h>
#endif
#ifndef __EVENTS__
#include <Events.h>
#endif
#ifndef __FILES__
#include <Files.h>
#endif
/* type for unique process identifier */
struct ProcessSerialNumber {
unsigned long highLongOfPSN;
unsigned long lowLongOfPSN;
};
typedef struct ProcessSerialNumber ProcessSerialNumber;
typedef ProcessSerialNumber *ProcessSerialNumberPtr;
enum {
/*************************************************************************
* Process identifier.
************************************************************************
Various reserved process serial numbers. */
kNoProcess = 0,
kSystemProcess = 1,
kCurrentProcess = 2
};
/**********************************************************************************************************************************************
* Definition of the parameter block passed to _Launch.
*************************************************************************
* Typedef and flags for launchControlFlags field */
typedef unsigned short LaunchFlags;
enum {
/*************************************************************************
* Definition of the parameter block passed to _Launch.
*************************************************************************/
launchContinue = 0x4000,
launchNoFileFlags = 0x0800,
launchUseMinimum = 0x0400,
launchDontSwitch = 0x0200,
launchAllow24Bit = 0x0100,
launchInhibitDaemon = 0x0080
};
/* Format for first AppleEvent to pass to new process. The size of the overall
* buffer variable: the message body immediately follows the messageLength.
*/
struct AppParameters {
EventRecord theMsgEvent;
unsigned long eventRefCon;
unsigned long messageLength;
};
typedef struct AppParameters AppParameters;
typedef AppParameters *AppParametersPtr;
/* Parameter block to _Launch */
struct LaunchParamBlockRec {
unsigned long reserved1;
unsigned short reserved2;
unsigned short launchBlockID;
unsigned long launchEPBLength;
unsigned short launchFileFlags;
LaunchFlags launchControlFlags;
FSSpecPtr launchAppSpec;
ProcessSerialNumber launchProcessSN;
unsigned long launchPreferredSize;
unsigned long launchMinimumSize;
unsigned long launchAvailableSize;
AppParametersPtr launchAppParameters;
};
typedef struct LaunchParamBlockRec LaunchParamBlockRec;
typedef LaunchParamBlockRec *LaunchPBPtr;
enum {
/* Set launchBlockID to extendedBlock to specify that extensions exist.
* Set launchEPBLength to extendedBlockLen for compatibility.*/
#define extendedBlock ((unsigned short)'LC')
#define extendedBlockLen (sizeof(LaunchParamBlockRec) - 12)
/*************************************************************************
* Definition of the information block returned by GetProcessInformation
************************************************************************
Bits in the processMode field */
modeDeskAccessory = 0x00020000,
modeMultiLaunch = 0x00010000,
modeNeedSuspendResume = 0x00004000,
modeCanBackground = 0x00001000,
modeDoesActivateOnFGSwitch = 0x00000800,
modeOnlyBackground = 0x00000400,
modeGetFrontClicks = 0x00000200,
modeGetAppDiedMsg = 0x00000100,
mode32BitCompatible = 0x00000080,
modeHighLevelEventAware = 0x00000040,
modeLocalAndRemoteHLEvents = 0x00000020,
modeStationeryAware = 0x00000010,
modeUseTextEditServices = 0x00000008,
modeDisplayManagerAware = 0x00000004
};
/* Record returned by GetProcessInformation */
struct ProcessInfoRec {
unsigned long processInfoLength;
StringPtr processName;
ProcessSerialNumber processNumber;
unsigned long processType;
OSType processSignature;
unsigned long processMode;
Ptr processLocation;
unsigned long processSize;
unsigned long processFreeMem;
ProcessSerialNumber processLauncher;
unsigned long processLaunchDate;
unsigned long processActiveTime;
FSSpecPtr processAppSpec;
};
typedef struct ProcessInfoRec ProcessInfoRec;
typedef ProcessInfoRec *ProcessInfoRecPtr;
#ifdef __cplusplus
extern "C" {
#endif
#pragma parameter __D0 LaunchApplication(__A0)
pascal OSErr LaunchApplication(const LaunchParamBlockRec *LaunchParams)
= 0xA9F2;
pascal OSErr LaunchDeskAccessory(const FSSpec *pFileSpec,ConstStr255Param pDAName)
= {0x3F3C,0x0036,0xA88F};
pascal OSErr GetCurrentProcess(ProcessSerialNumber *PSN)
= {0x3F3C,0x0037,0xA88F};
pascal OSErr GetFrontProcess(ProcessSerialNumber *PSN)
= {0x70FF,0x2F00,0x3F3C,0x0039,0xA88F};
pascal OSErr GetNextProcess(ProcessSerialNumber *PSN)
= {0x3F3C,0x0038,0xA88F};
pascal OSErr GetProcessInformation(const ProcessSerialNumber *PSN,ProcessInfoRecPtr info)
= {0x3F3C,0x003A,0xA88F};
pascal OSErr SetFrontProcess(const ProcessSerialNumber *PSN)
= {0x3F3C,0x003B,0xA88F};
pascal OSErr WakeUpProcess(const ProcessSerialNumber *PSN)
= {0x3F3C,0x003C,0xA88F};
pascal OSErr SameProcess(const ProcessSerialNumber *PSN1,const ProcessSerialNumber *PSN2,
Boolean *result)
= {0x3F3C,0x003D,0xA88F};
#ifdef __cplusplus
}
#endif
#endif