mirror of
https://github.com/celisej567/source-engine.git
synced 2026-01-04 18:09:53 +03:00
1
This commit is contained in:
790
common/quicktime_win32/Processes.h
Normal file
790
common/quicktime_win32/Processes.h
Normal file
@@ -0,0 +1,790 @@
|
||||
/*
|
||||
File: Processes.h
|
||||
|
||||
Contains: Process Manager Interfaces.
|
||||
|
||||
Version: QuickTime 7.3
|
||||
|
||||
Copyright: (c) 2007 (c) 1989-2001 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 __PROCESSES__
|
||||
#define __PROCESSES__
|
||||
|
||||
#ifndef __MACTYPES__
|
||||
#include <MacTypes.h>
|
||||
#endif
|
||||
|
||||
#ifndef __FILES__
|
||||
#include <Files.h>
|
||||
#endif
|
||||
|
||||
#ifndef __TEXTCOMMON__
|
||||
#include <TextCommon.h>
|
||||
#endif
|
||||
|
||||
#ifndef __CFSTRING__
|
||||
#include <CFString.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
|
||||
|
||||
/* 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 {
|
||||
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 {
|
||||
struct {
|
||||
UInt16 what;
|
||||
UInt32 message;
|
||||
UInt32 when;
|
||||
Point where;
|
||||
UInt16 modifiers;
|
||||
} 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;
|
||||
/* Set launchBlockID to extendedBlock to specify that extensions exist.
|
||||
Set launchEPBLength to extendedBlockLen for compatibility.*/
|
||||
enum {
|
||||
extendedBlock = 0x4C43, /* 'LC' */
|
||||
extendedBlockLen = sizeof(LaunchParamBlockRec) - 12
|
||||
};
|
||||
|
||||
enum {
|
||||
/* Definition of the information block returned by GetProcessInformation */
|
||||
modeReserved = 0x01000000,
|
||||
modeControlPanel = 0x00080000,
|
||||
modeLaunchDontSwitch = 0x00040000,
|
||||
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
|
||||
When calling GetProcessInformation(), the input ProcesInfoRec
|
||||
should have the processInfoLength set to sizeof(ProcessInfoRec),
|
||||
the processName field set to nil or a pointer to a Str255, and
|
||||
processAppSpec set to nil or a pointer to an FSSpec. If
|
||||
processName or processAppSpec are not specified, this routine
|
||||
will very likely write data to whatever random location in memory
|
||||
these happen to point to, which is not a good thing.
|
||||
Note: The processName field may not be what you expect, especially if
|
||||
an application has a localized name. The .processName field, if not NULL,
|
||||
on return will contain the filename part of the executable file of the
|
||||
application. If you want the localized, user-displayable name for an
|
||||
application, call CopyProcessName().
|
||||
|
||||
*/
|
||||
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;
|
||||
/*
|
||||
Some applications assumed the size of a ProcessInfoRec would never change,
|
||||
which has caused problems trying to return additional information. In
|
||||
the future, we will add fields to ProcessInfoExtendedRec when necessary,
|
||||
and callers which wish to access 'more' data than originally was present
|
||||
in ProcessInfoRec should allocate space for a ProcessInfoExtendedRec,
|
||||
fill in the processInfoLength ( and processName and processAppSpec ptrs ),
|
||||
then coerce this to a ProcessInfoRecPtr in the call to
|
||||
GetProcessInformation().
|
||||
Note: The processName field may not be what you expect, especially if
|
||||
an application has a localized name. The .processName field, if not NULL,
|
||||
on return will contain the filename part of the executable file of the
|
||||
application. If you want the localized, user-displayable name for an
|
||||
application, call CopyProcessName().
|
||||
|
||||
*/
|
||||
struct ProcessInfoExtendedRec {
|
||||
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;
|
||||
unsigned long processTempMemTotal;
|
||||
unsigned long processPurgeableTempMemTotal;
|
||||
};
|
||||
typedef struct ProcessInfoExtendedRec ProcessInfoExtendedRec;
|
||||
typedef ProcessInfoExtendedRec * ProcessInfoExtendedRecPtr;
|
||||
/* Record corresponding to the SIZE resource definition */
|
||||
struct SizeResourceRec {
|
||||
unsigned short flags;
|
||||
unsigned long preferredHeapSize;
|
||||
unsigned long minimumHeapSize;
|
||||
};
|
||||
typedef struct SizeResourceRec SizeResourceRec;
|
||||
typedef SizeResourceRec * SizeResourceRecPtr;
|
||||
typedef SizeResourceRecPtr * SizeResourceRecHandle;
|
||||
|
||||
/*
|
||||
* Summary:
|
||||
* Options for ProcessInformationCopyDictionary
|
||||
*/
|
||||
enum {
|
||||
|
||||
/*
|
||||
* Return all information known about the application in the
|
||||
* dictionary.
|
||||
*/
|
||||
kProcessDictionaryIncludeAllInformationMask = (long)0xFFFFFFFF
|
||||
};
|
||||
|
||||
/*
|
||||
Applications and background applications can control when they are asked to quit
|
||||
by the system at restart/shutdown by setting these bits in a 'quit' ( 0 ) resource
|
||||
in their application's resource fork. Applications without a 'quit' ( 0 ) will
|
||||
be quit at kQuitAtNormalTime mask.
|
||||
These options only function on Mac OS 9.x at this time.
|
||||
*/
|
||||
enum {
|
||||
kQuitBeforeNormalTimeMask = 1,
|
||||
kQuitAtNormalTimeMask = 2,
|
||||
kQuitBeforeFBAsQuitMask = 4,
|
||||
kQuitBeforeShellQuitsMask = 8,
|
||||
kQuitBeforeTerminatorAppQuitsMask = 16,
|
||||
kQuitNeverMask = 32,
|
||||
kQuitOptionsMask = 0x7F,
|
||||
kQuitNotQuitDuringInstallMask = 0x0100,
|
||||
kQuitNotQuitDuringLogoutMask = 0x0200
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* LaunchApplication()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
#if TARGET_OS_MAC && TARGET_CPU_68K && !TARGET_RT_MAC_CFM
|
||||
#pragma parameter __D0 LaunchApplication(__A0)
|
||||
#endif
|
||||
EXTERN_API( OSErr )
|
||||
LaunchApplication(LaunchPBPtr LaunchParams) ONEWORDINLINE(0xA9F2);
|
||||
|
||||
|
||||
#if CALL_NOT_IN_CARBON
|
||||
/*
|
||||
* LaunchDeskAccessory()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API( OSErr )
|
||||
LaunchDeskAccessory(
|
||||
const FSSpec * pFileSpec,
|
||||
ConstStr255Param pDAName) THREEWORDINLINE(0x3F3C, 0x0036, 0xA88F);
|
||||
|
||||
|
||||
#endif /* CALL_NOT_IN_CARBON */
|
||||
|
||||
/*
|
||||
* [Mac]GetCurrentProcess()
|
||||
*
|
||||
* Discussion:
|
||||
* Return the canonical process serial number to the caller.
|
||||
*
|
||||
* All applications ( things which can appear in the Dock or which
|
||||
* are not documents and are launched by the Finder or Dock ) on Mac
|
||||
* OS 10 have a unique process serial number. This number is
|
||||
* created when the application launches, and remains until the
|
||||
* application quits. Other system services, like AppleEvents, use
|
||||
* the ProcessSerialNumber to specify an application.
|
||||
*
|
||||
* During launch, every application 'checks in' with the Process
|
||||
* Manager. Before this checkin, the application can not receive
|
||||
* events or draw to the screen. Prior to Mac OS 10.2, this 'check
|
||||
* in' happened before the applications's main() function was
|
||||
* entered. In Mac OS 10.2 and later, this 'check in' does not
|
||||
* happen until the first time the application calls a Process
|
||||
* Manager function, or until it enters CFRunLoopRun() for the main
|
||||
* runloop. This allows tools and other executables which do not
|
||||
* need to receive events to link against more of the higher level
|
||||
* toolbox frameworks, but may cause a problem if the application
|
||||
* expects to be able to retrieve events or use CoreGraphics
|
||||
* services before this checkin has occurred.
|
||||
*
|
||||
* An application can force the connection to the Process Manager to
|
||||
* be set up by calling any Process Manager routine, but the
|
||||
* recommended way to do this is to call GetCurrentProcess() to ask
|
||||
* for the current application's PSN. This will initialize the
|
||||
* connection to the Process Manager if it has not already been set
|
||||
* up and 'check in' the application with the system.
|
||||
*
|
||||
* This function is named MacGetCurrentProcess() on non Macintosh
|
||||
* platforms and GetCurrentProcess on the Macintosh. However, even
|
||||
* Macintosh code can use the MacGetCurrentProcess() name since
|
||||
* there is a macro which maps back to GetCurrentProcess().
|
||||
*
|
||||
* Lastly, it is usually not necessary to call GetCurrentProcess()
|
||||
* to get the 'current' process psn merely to pass it to another
|
||||
* Process Manager routine. Instead, just construct a
|
||||
* ProcessSerialNumber with 0 in highLongOfPSN and kCurrentProcess
|
||||
* in lowLongOfPSN and pass that. For example, to make the current
|
||||
* process the frontmost process, use ( C code follows )
|
||||
*
|
||||
* ProcessSerialNumber psn = { 0, kCurrentProcess };
|
||||
*
|
||||
* OSErr err = SetFrontProcess( & psn );
|
||||
*
|
||||
* If you need to pass a ProcessSerialNumber to another application
|
||||
* or use it in an AppleEvent, you do need to get the canonical PSN
|
||||
* with this routine.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* PSN:
|
||||
* Pass in where the current application process serial number
|
||||
* should be returned.
|
||||
*
|
||||
* Result:
|
||||
* An operating system status code.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
#if TARGET_OS_MAC
|
||||
#define MacGetCurrentProcess GetCurrentProcess
|
||||
#endif
|
||||
EXTERN_API( OSErr )
|
||||
MacGetCurrentProcess(ProcessSerialNumber * PSN) THREEWORDINLINE(0x3F3C, 0x0037, 0xA88F);
|
||||
|
||||
|
||||
/*
|
||||
* GetFrontProcess()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API( OSErr )
|
||||
GetFrontProcess(ProcessSerialNumber * PSN) FIVEWORDINLINE(0x70FF, 0x2F00, 0x3F3C, 0x0039, 0xA88F);
|
||||
|
||||
|
||||
/*
|
||||
* GetNextProcess()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API( OSErr )
|
||||
GetNextProcess(ProcessSerialNumber * PSN) THREEWORDINLINE(0x3F3C, 0x0038, 0xA88F);
|
||||
|
||||
|
||||
/*
|
||||
* GetProcessInformation()
|
||||
*
|
||||
* Discussion:
|
||||
* Fill in the provided record with information about the process
|
||||
* with the provided process serial number.
|
||||
*
|
||||
* The caller must fill in the .processInfoLength field with the
|
||||
* value sizeof ( ProcessInformationRecord ) before making this
|
||||
* call. Also, the .processName field must point to either NULL or
|
||||
* to a Str31 structure in the caller's memory space, and the
|
||||
* .processAppSpec field must point to a FSSpec in the caller's
|
||||
* memory space.
|
||||
*
|
||||
* If the caller does not care about the process name or the process
|
||||
* application spec values, then setting those fields in the
|
||||
* structure to NULL before this call means less work must be done
|
||||
* to construct these values and so the call is more
|
||||
* efficient.
|
||||
*
|
||||
* The processName field may not be what you expect, especially if
|
||||
* an application has a localized name. The .processName field, if
|
||||
* not NULL, on return will contain the filename part of the
|
||||
* executable file of the application. If you want the localized,
|
||||
* user-displayable name for an application, call
|
||||
* CopyProcessName().
|
||||
*
|
||||
* On Mac OS X, the processSize and processFreeMem fields are
|
||||
* returned with the value 0.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* PSN:
|
||||
* Pass in the process serial number of the process to return
|
||||
* information for.
|
||||
*
|
||||
* info:
|
||||
* Pass in a structure where the information will be returned.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
/*
|
||||
This function has the same name as a Windows function. Since both functions are
|
||||
extern "C" this is illegal. I'm not gonna comment out GetProcessInformation
|
||||
in winbase.h, so change has to happen here.
|
||||
EXTERN_API( OSErr )
|
||||
GetProcessInformation(
|
||||
const ProcessSerialNumber * PSN,
|
||||
ProcessInfoRec * info) THREEWORDINLINE(0x3F3C, 0x003A, 0xA88F);
|
||||
*/
|
||||
|
||||
/*
|
||||
* ProcessInformationCopyDictionary()
|
||||
*
|
||||
* Discussion:
|
||||
* Return a CFDictionary containing information about the given
|
||||
* process. This is intended to return a superset of the information
|
||||
* returned by GetProcessInformation(), in more modern datatypes.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* PSN:
|
||||
* Pass in the process serial number of the process to return
|
||||
* information for.
|
||||
*
|
||||
* infoToReturn:
|
||||
* Pass in the value kProcessDictionaryIncludeAllInformationMask.
|
||||
*
|
||||
* Result:
|
||||
* An immutable CFDictionaryRef containing these keys and their
|
||||
* values. Keys marked with an '*' are optional. Over time more
|
||||
* keys may be added.
|
||||
*
|
||||
* Key Name Type
|
||||
* -------- ----
|
||||
* "PSN" CFNumber, kCFNumberLongLongType
|
||||
* "Flavor" CFNumber, kCFNumberSInt32
|
||||
* "Attributes" CFNumber, kCFNumberSInt32
|
||||
* "ParentPSN" * CFNumber, kCFNumberLongLong
|
||||
* "FileType" * CFString, file type
|
||||
* "FileCreator" * CFString, file creator
|
||||
* "pid" * CFNumber, kCFNumberLongType
|
||||
* "LSBackgroundOnly" CFBoolean
|
||||
* "LSUIElement" CFBoolean
|
||||
* "IsHiddenAttr" CFBoolean
|
||||
* "IsCheckedInAttr" CFBoolean
|
||||
* "RequiresClassic" CFBoolean
|
||||
* "RequiresCarbon" CFBoolean
|
||||
* "LSUserQuitOnly" CFBoolean
|
||||
* "LSUIPresentationMode" CFNumber, kCFNumberShortType
|
||||
* "BundlePath" * CFString
|
||||
* kIOBundleExecutableKey * CFString
|
||||
* kIOBundleNameKey * CFString
|
||||
* kIOBundleIdentifierKey * CFString
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: in version 10.2 and later
|
||||
*/
|
||||
EXTERN_API( CFDictionaryRef )
|
||||
ProcessInformationCopyDictionary(
|
||||
const ProcessSerialNumber * PSN,
|
||||
UInt32 infoToReturn);
|
||||
|
||||
|
||||
/*
|
||||
* SetFrontProcess()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API( OSErr )
|
||||
SetFrontProcess(const ProcessSerialNumber * PSN) THREEWORDINLINE(0x3F3C, 0x003B, 0xA88F);
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* Summary:
|
||||
* Options for SetFrontProcessWithOptions
|
||||
*/
|
||||
enum {
|
||||
|
||||
/*
|
||||
* Activate the process, but bring only the frontmost non-floating
|
||||
* window forward. If this option is not set, all process windows are
|
||||
* brought forward.
|
||||
*/
|
||||
kSetFrontProcessFrontWindowOnly = (1 << 0)
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* SetFrontProcessWithOptions()
|
||||
*
|
||||
* Discussion:
|
||||
* Brings a process to the front of the process list and activates
|
||||
* it. This is much like the SetFrontProcess API, though we allow
|
||||
* more control here. Passing 0 for the options is equivalent to
|
||||
* calling SetFrontProcess. Alternatively, you can pass
|
||||
* kSetFrontProcessFrontWindowOnly, which will activate a process
|
||||
* without bringing all of the process's windows forward (just the
|
||||
* front window of the process will come forward).
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* inProcess:
|
||||
* The process to make frontmost.
|
||||
*
|
||||
* inOptions:
|
||||
* Any options you wish to specify.
|
||||
*
|
||||
* Result:
|
||||
* An operating system status code.
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.2 and later
|
||||
* Mac OS X: in version 10.2 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
SetFrontProcessWithOptions(
|
||||
const ProcessSerialNumber * inProcess,
|
||||
OptionBits inOptions);
|
||||
|
||||
|
||||
/*
|
||||
* WakeUpProcess()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API( OSErr )
|
||||
WakeUpProcess(const ProcessSerialNumber * PSN) THREEWORDINLINE(0x3F3C, 0x003C, 0xA88F);
|
||||
|
||||
|
||||
/*
|
||||
* SameProcess()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API( OSErr )
|
||||
SameProcess(
|
||||
const ProcessSerialNumber * PSN1,
|
||||
const ProcessSerialNumber * PSN2,
|
||||
Boolean * result) THREEWORDINLINE(0x3F3C, 0x003D, 0xA88F);
|
||||
|
||||
|
||||
/* ExitToShell was previously in SegLoad.h*/
|
||||
/*
|
||||
* ExitToShell()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in InterfaceLib 7.1 and later
|
||||
* CarbonLib: in CarbonLib 1.0 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API( void )
|
||||
ExitToShell(void) ONEWORDINLINE(0xA9F4);
|
||||
|
||||
|
||||
/*
|
||||
LaunchControlPanel is similar to LaunchDeskAccessory, but for Control Panel files instead.
|
||||
It launches a control panel in an application shell maintained by the Process Manager.
|
||||
*/
|
||||
#if CALL_NOT_IN_CARBON
|
||||
/*
|
||||
* LaunchControlPanel()
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: in InterfaceLib 9.0 and later
|
||||
* CarbonLib: not available
|
||||
* Mac OS X: not available
|
||||
*/
|
||||
EXTERN_API( OSErr )
|
||||
LaunchControlPanel(const FSSpec * pFileSpec) THREEWORDINLINE(0x3F3C, 0x007B, 0xA88F);
|
||||
|
||||
|
||||
#endif /* CALL_NOT_IN_CARBON */
|
||||
|
||||
/*
|
||||
* GetProcessBundleLocation()
|
||||
*
|
||||
* Summary:
|
||||
* Retrieve the filesystem location of the process bundle, or
|
||||
* executable if unbundled.
|
||||
*
|
||||
* Discussion:
|
||||
* Retrieves a reference to the filesystem location of the specified
|
||||
* application. For an application that is packaged as an app
|
||||
* bundle, this will be the app bundle directory; otherwise it will
|
||||
* be the location of the executable itself.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* psn:
|
||||
* Serial number of the target process
|
||||
*
|
||||
* location:
|
||||
* Location of the bundle or executable, as an FSRef
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: in CarbonLib 1.5 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
GetProcessBundleLocation(
|
||||
const ProcessSerialNumber * psn,
|
||||
FSRef * location);
|
||||
|
||||
|
||||
/*
|
||||
* CopyProcessName()
|
||||
*
|
||||
* Summary:
|
||||
* Get a copy of the name of a process.
|
||||
*
|
||||
* Discussion:
|
||||
* Use this call to get the name of a process as a CFString. The
|
||||
* name returned is a copy, so the caller must CFRelease the name
|
||||
* when finished with it. The difference between this call and the
|
||||
* processName field filled in by GetProcessInformation is that the
|
||||
* name here is a CFString, and thus is capable of representing a
|
||||
* multi-lingual name, whereas previously only a mac-encoded string
|
||||
* was possible.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* psn:
|
||||
* Serial number of the target process
|
||||
*
|
||||
* name:
|
||||
* CFString representing the name of the process (must be released
|
||||
* by caller with CFRelease)
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: in CarbonLib 1.5 and later
|
||||
* Mac OS X: in version 10.0 and later
|
||||
*/
|
||||
EXTERN_API_C( OSStatus )
|
||||
CopyProcessName(
|
||||
const ProcessSerialNumber * psn,
|
||||
CFStringRef * name);
|
||||
|
||||
|
||||
/*************************************************************************
|
||||
* Process Visibility.
|
||||
*************************************************************************/
|
||||
/*
|
||||
* IsProcessVisible()
|
||||
*
|
||||
* Summary:
|
||||
* Determines whether a particular process is visible or not.
|
||||
*
|
||||
* Discussion:
|
||||
* Given a psn, this call will return true or false depending on
|
||||
* whether or not the process is currently visible.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* psn:
|
||||
* Serial number of the process
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: in CarbonLib 1.5 and later
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API( Boolean )
|
||||
IsProcessVisible(const ProcessSerialNumber * psn) THREEWORDINLINE(0x3F3C, 0x005F, 0xA88F);
|
||||
|
||||
|
||||
/*
|
||||
* ShowHideProcess()
|
||||
*
|
||||
* Summary:
|
||||
* Hides or shows a given process.
|
||||
*
|
||||
* Discussion:
|
||||
* Given a psn, this call will hide or show the process specified in
|
||||
* the psn parameter. You determine whether you would like to show
|
||||
* or hide the process with the visible parameter. True passed into
|
||||
* visible indicates you wish for the process to become visible.
|
||||
*
|
||||
* Parameters:
|
||||
*
|
||||
* psn:
|
||||
* Serial number of the process
|
||||
*
|
||||
* visible:
|
||||
* true = show process; false = hide process
|
||||
*
|
||||
* Availability:
|
||||
* Non-Carbon CFM: not available
|
||||
* CarbonLib: in CarbonLib 1.5 and later
|
||||
* Mac OS X: in version 10.1 and later
|
||||
*/
|
||||
EXTERN_API( OSErr )
|
||||
ShowHideProcess(
|
||||
const ProcessSerialNumber * psn,
|
||||
Boolean visible) THREEWORDINLINE(0x3F3C, 0x0060, 0xA88F);
|
||||
|
||||
|
||||
|
||||
/* Values of the 'message' parameter to a Control Panel 'cdev' */
|
||||
enum {
|
||||
initDev = 0, /*Time for cdev to initialize itself*/
|
||||
hitDev = 1, /*Hit on one of my items*/
|
||||
closeDev = 2, /*Close yourself*/
|
||||
nulDev = 3, /*Null event*/
|
||||
updateDev = 4, /*Update event*/
|
||||
activDev = 5, /*Activate event*/
|
||||
deactivDev = 6, /*Deactivate event*/
|
||||
keyEvtDev = 7, /*Key down/auto key*/
|
||||
macDev = 8, /*Decide whether or not to show up*/
|
||||
undoDev = 9,
|
||||
cutDev = 10,
|
||||
copyDev = 11,
|
||||
pasteDev = 12,
|
||||
clearDev = 13,
|
||||
cursorDev = 14
|
||||
};
|
||||
|
||||
/* Special values a Control Panel 'cdev' can return */
|
||||
enum {
|
||||
cdevGenErr = -1, /*General error; gray cdev w/o alert*/
|
||||
cdevMemErr = 0, /*Memory shortfall; alert user please*/
|
||||
cdevResErr = 1, /*Couldn't get a needed resource; alert*/
|
||||
cdevUnset = 3 /* cdevValue is initialized to this*/
|
||||
};
|
||||
|
||||
/* Control Panel Default Proc */
|
||||
|
||||
|
||||
|
||||
#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 /* __PROCESSES__ */
|
||||
|
||||
Reference in New Issue
Block a user