supermario/base/SuperMarioProj.1994-02-09/Internal/C/ProcessesPriv.h
2019-06-29 23:17:50 +08:00

370 lines
13 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
File: ProcessesPriv.h
Contains: Subset of Private Process Mgr routines needed in C.
Written by: David Harrison
Copyright: © 1990-1993 by Apple Computer, Inc., all rights reserved.
Change History (most recent first):
<1> 3/25/93 IH first checked in
<32> 3/12/93 mgl Add an othersToBack parameter to BringWindowToFrontLayer. This
allows you to bring a window to the front layer while forcing
all other windows in the front layer into the back layer.
<31> 3/10/93 mgl Add new calls for MultiLayer Support.
<30> 3/9/93 DRF Add some recent additions to _OSDispatch so people dont have to
“roll their own” prototypes.
<29> 2/23/93 mgl Added toFront parameter to StopCurrentProcess and ResumeProcess
to allow the debugger to control whether the incoming process
will be switched to the front.
<28> 2/23/93 DTY Renamed this file from MFPrivate.h to ProcessesPriv.h.
<27> 12/21/92 JSM Make function prototypes C++ studly, include GestaltPrivateEqu.h
so we don't need to define gestaltGraphicsVersion here.
<26> 12/19/92 mgl Added StopCurrentProcess and ResumeProcess, as part of extended
debugger support in the Process Manager.
<25> 3/30/92 DTY #1025416,<DDG>: Define Gestalt selector for Skia. Were putting
it here because theres no GestaltPrivate.h, and Process Manager
is the only thing in the System thats using this selector right
now.
<24> 3/25/92 DTY #1024114,<pvh>: Add inline for PEntryFromProcessSerialNumber
<23> 1/14/92 YK Removed obsolete constant for the TSM.
<22> 1/11/92 YK Two more calls for TSM. NewTSMLayerOwner to get the event for
the floating window. RouteEventToSWM to do the bottom line
input.
<21> 1/10/92 YK Added definitions for supporting the Text Services Manager.
<20> 2/21/91 DFH dba,#82504, #82681, #83168, #83182, #83207: Added
SysZoneFloatSizes.
<19> 1/28/91 DFH JSM,#81425:Add EnableSwitching and DisableSwitching calls.
<18> 1/21/91 DFH (KSM) Removed Process Menu IDs, since they are now in
MenuMgrPriv.h, as the Application Menu IDs.
<17> 12/20/90 DFH (dba) Added GetNextHighLevelEvent.
<16> 12/14/90 DFH Added SynchIdleTime.
<15> 11/4/90 dba use (void) instead of (), also add some const to parameters
<14> 9/10/90 DFH Changed iconHelpString to itemHelpString (wow!).
<13> 7/25/90 DFH Added InitApplication, CleanupApplication, and SndAppDead.
<12> 7/19/90 DFH Removed iconColor from AddAppleMenuItem.
<11> 6/8/90 DFH Added ProcessMenuResourceID and ProcessMenuID.
<10> 5/20/90 ngk Used VNProcPtr in volume Notification procs.
<9> 5/7/90 DFH Get/SetProcessTrapAddress use TrapType.
<8> 4/16/90 DFH Reorganized the file to group the call glue with the
structures. Now uses unsigned fields whenever possible.
Fixed AddAppleMenuItem to use unsigned short for itemStyle
(since Pascal and C don't agree on how to pass a byte).
<7> 4/11/90 KSM Added auxMenuHelpString to AuxMenuItemRec.
<6> 3/20/90 DFH Added iconColor and itemHelpString, and changed itemStyle to short
<5> 2/8/90 DFH Fixed this list (had comment ender on BEGIN EASE line).
<4> 2/8/90 DFH Copied projector revision comments to this file.
<3> 2/5/90 DFH Added enteredDebugger.
<2> 1/3/90 DFH Added itemStyle to AddAppleMenuItem. Reversed order of GetProcessFromLayer parms.
*/
/***********************************************************
** BEGIN EASE MODIFICATION HISTORY
** 1.3 DFH 12/07/1989 Fixed up C++ friendship
** 1.2 CCH 12/07/1989 Made it C++ friendly
** 1.1 ngk 12/01/1989 Added System Debugger interfaces
** 1.0 CCH 10/16/1989 Adding to EASE.
** END EASE MODIFICATION HISTORY
************************************************************/
#ifndef __PROCESSESPRIV__
#define __PROCESSESPRIV__
#ifndef __TYPES__
#include <Types.h>
#endif
#ifndef __PACKAGES__
#include <Packages.h>
#endif
#ifndef __MENUS__
#include <Menus.h>
#endif
#ifndef __WINDOWS__
#include <Windows.h>
#endif
#ifndef __LAYERS__
#include <Layers.h>
#endif
#ifndef __GESTALTPRIVEQU__
#include <GestaltPrivateEqu.h>
#endif
#ifndef __PROCESSES__
#include <Processes.h>
#endif
/*************************************************************************
* Application Menu.
*************************************************************************/
/* Item numbers */
#define HIDE_APP_ITEM (1)
#define HIDE_OTHERS_ITEM (2)
#define SHOW_ALL_ITEM (3)
#define APPLICATION_MENU_COUNT (4)
/*************************************************************************
* Auxiliary menu item data.
*************************************************************************/
/* Information record returned by GetAuxMenuItem */
struct AuxMenuItemRec {
Handle auxMenuIconHandle;
unsigned short auxMenuIconSize;
unsigned short auxMenuIconGray;
unsigned short auxMenuScript;
StringHandle auxMenuHelpString;
};
#ifndef __cplusplus
typedef struct AuxMenuItemRec AuxMenuItemRec;
#endif __cplusplus
typedef AuxMenuItemRec *AuxMenuItemRecPtr;
#ifdef __cplusplus
extern "C" {
#endif
pascal OSErr GetAuxMenuItem(MenuHandle theMenu, unsigned char *pItemEntry, AuxMenuItemRecPtr theStorage, unsigned long recLength)
= {0x3F3C,0x003E,0xA88F};
#ifdef __cplusplus
}
#endif
/*************************************************************************
* Volume notification interface.
*************************************************************************/
/* Typedef and values for the VNBNotice field. */
typedef unsigned short VolumeNotice;
#define VNMounted (0)
#define VNAboutToGoOffline (1)
#define VNOffline (2)
#define VNAboutToUnmount (3)
#define VNUnmount (4)
/* Definition of the volume notification parameter block */
struct VolumeNoticeBlk {
unsigned long VNBLength;
VolumeNotice VNBNotice;
unsigned short VNBVolume;
unsigned long VNBRefCon;
OSErr VNBResult;
};
#ifndef __cplusplus
typedef struct VolumeNoticeBlk VolumeNoticeBlk;
#endif __cplusplus
typedef VolumeNoticeBlk *VolumeNoticeBlkPtr;
/* Prototype of the notification routine. */
typedef pascal OSErr (*VNProcPtr)(VolumeNoticeBlkPtr pParams);
#ifdef __cplusplus
extern "C" {
#endif
pascal OSErr RequestVolumeNotification(VNProcPtr pRoutine, unsigned long refCon)
= {0x3F3C,0x0042,0xA88F};
pascal OSErr DeclineVolumeNotification(VNProcPtr pRoutine, unsigned long refCon)
= {0x3F3C,0x0043,0xA88F};
/*************************************************************************
* Shell support
*************************************************************************/
/* AppleEvent sent to app launched from FINDERNAME at boot time */
#define aeStartup 'boot'
/* AppleEvent and routines to customize the Apple menu */
#define aeAppleMenuItemSelect 'amis'
#define aeAppleMenuItemKeyword 'amis'
pascal OSErr AddAppleMenuItem(StringPtr itemName, ScriptCode itemScript, unsigned short itemStyle, Handle itemIcon, unsigned short itemMark, StringPtr itemHelpString, unsigned long itemRefCon)
= {0x3F3C,0x0031,0xA88F};
#define DELETE_ALL_ITEMS (0)
pascal OSErr DeleteAppleMenuItem(unsigned long itemRefCon)
= {0x3F3C,0x0032,0xA88F};
/* Routine to allocate a layer to implement the desktop */
pascal OSErr NewDesktopLayerOwner(LayerPtr *ppNewLayer)
= {0x3F3C,0x0014,0xA88F};
// Routine to get a PEntry from a Process Serial Number
pascal Ptr PEntryFromProcessSerialNumber(ProcessSerialNumberPtr pPSN)
= {0x3F3C,0x004F,0xA88F};
/*************************************************************************
* System Debugger Support
*************************************************************************/
/* System error generated when user types the debugger key combination. */
#define enterDebugger (110)
/* Identifier of AppleEvent notifying debugger that debuggee now not frontmost */
#define aeDebuggerNotify 'dbrk'
pascal OSErr RegisterDebugger(const ProcessSerialNumber *, Ptr entryRoutine, Ptr exitRoutine, Ptr toAppRoutine, unsigned short debugKey)
= {0x3F3C,0x0030,0xA88F};
pascal OSErr GetProcessTrapAddress(const ProcessSerialNumber *, Ptr *trapAddr, TrapType trapType, unsigned short trapNum)
= {0x3F3C,0x002C,0xA88F};
pascal OSErr SetProcessTrapAddress(const ProcessSerialNumber *, Ptr trapAddr, TrapType trapType, unsigned short trapNum)
= {0x3F3C,0x002D,0xA88F};
pascal OSErr ReadWriteProcessMemory(const ProcessSerialNumber *, Ptr procMemPtr, unsigned long byteCount, Ptr callerMemPtr, Boolean doRead)
= {0x3F3C,0x002E,0xA88F};
pascal OSErr ReadWriteProcessFPURegs(const ProcessSerialNumber *, Ptr callerMemPtr, Boolean doRead)
= {0x3F3C,0x002F,0xA88F};
pascal OSErr KillProcess(const ProcessSerialNumber *)
= {0x3F3C,0x0044,0xA88F};
/*************************************************************************
* Extended Debugger Support
*************************************************************************/
pascal OSErr StopCurrentProcess(ProcessSerialNumberPtr switchToProc, Boolean toFront)
= {0x3F3C,0x0051,0xA88F};
pascal OSErr ResumeProcess(ProcessSerialNumberPtr pPSN, Boolean toFront)
= {0x3F3C,0x0052,0xA88F};
/*************************************************************************
* Support for (as yet) unpublished Layer Manager.
*************************************************************************/
pascal OSErr GetProcessFromLayer(ProcessSerialNumberPtr, LayerPtr)
= {0x3F3C,0x0039,0xA88F};
/*************************************************************************
* Multi Layer Support.
*************************************************************************/
pascal OSErr BringWindowToFrontLayer(WindowPtr window, Boolean othersToBack)
= {0x3F3C,0x0057,0xA88F};
pascal OSErr MergeProcessLayers(Boolean toFront)
= {0x3F3C,0x0058,0xA88F};
pascal WindowPtr GetNextWindow(WindowPtr window)
= {0x3F3C,0x0059,0xA88F};
/*************************************************************************
* Support for application resource tracking.
*************************************************************************/
pascal void InitApplication(void)
= {0xAAFA};
pascal void SynchIdleTime(void)
= {0xABF7};
pascal void CleanupApplication(void)
= {0xAAFB};
pascal void SndAppDead(void)
= {0xA0B8};
pascal OSErr GetSystemClientProcess(ProcessSerialNumberPtr)
= {0x3F3C,0x003F,0xA88F};
pascal OSErr BeginSystemMode(void)
= {0x3F3C,0x0040,0xA88F};
pascal OSErr EndSystemMode(void)
= {0x3F3C,0x0041,0xA88F};
/*************************************************************************
* Support for high level event checking from the system.
*************************************************************************/
pascal Boolean GetNextHighLevelEvent(short, EventRecord *, Boolean)
= {0x3F3C,0x0012,0xA88F};
/*************************************************************************
* Scheduler control.
*************************************************************************/
pascal void
DisableSwitching(void)
= {0x3F3C,0x0019,0xA88F};
pascal void
EnableSwitching(void)
= {0x3F3C,0x001A,0xA88F};
/*************************************************************************
* Bonus Temporary Memory vs System Heap information.
*************************************************************************/
pascal OSErr
SysZoneFloatSizes(unsigned long *hiSysRoom, unsigned long *lowTempRoom)
= {0x3F3C,0x0047,0xA88F};
/*************************************************************************
* Support for the Text Services Manager.
*************************************************************************/
pascal OSErr
NewFloatLayer(LayerPtr *layer)
= {0x3F3C,0x0048,0xA88F};
pascal OSErr
DisposeFloatLayer(LayerPtr *layer)
= {0x3F3C,0x0049,0xA88F};
pascal OSErr
PostFakeKeyDown(EventRecord *theEvent)
= {0x3F3C,0x004A,0xA88F};
pascal OSErr
PostText(Ptr textPtr,short len)
= {0x3F3C,0x004B,0xA88F};
pascal Boolean
InlineAware( const ProcessSerialNumber *pPSN, Boolean aware)
= {0x3F3C,0x004C,0xA88F};
pascal OSErr
NewTSMLayerOwner( const ProcessSerialNumber *pPSN)
= {0x3F3C,0x004D,0xA88F};
pascal Boolean
RouteEventToSWM( Boolean doRoute)
= {0x3F3C,0x004E,0xA88F};
/*************************************************************************
* Support for the Drag Manager, etc.
*************************************************************************/
pascal OSErr CallProcInProcess( const ProcessSerialNumber *PSNToCall,
ProcPtr theProc,
Ptr params, // ptr to struct w/reverse order params
unsigned short paramSize)
= {0x3F3C,0x0053, 0xA88F};
pascal OSErr GetDesktopLayerOwner(ProcessSerialNumber *pPSN)
= {0x3F3C,0x0056,0xA88F};
#ifdef __cplusplus
}
#endif
#endif