=head1 NAMEProcesses.pm - Macintosh Toolbox Interface to Process Manager=head1 SYNOPSIS	use Processes;	while ( ($psn, %psi) = each(%Processes) ) {		print "$psn\t$psi{'processName'}".		"\t$psi{'processNumber'}".		"\t$psi{'processType'}".		"\t$psi{'processSignature'}".		"\t$psi{'processSize'}".		"\t$psi{'processMode'}".		"\t$psi{'processLocation'}".		"\t$psi{'processLauncher'}".		"\t$psi{'processLaunchDate'}".		"\t$psi{'processActiveTime'}".		"\t$psi{'processAppSpec'}\n";	}=head1 DESCRIPTIONAccess to Inside Macintosh is essential for proper use of these functions.Explanations of terms, processes and procedures are provided there.Any attempt to use these functions without guidance can cause severe errors in your machine, including corruption of data. B<You have been warned.>=cutpackage ProcessInfo;package LaunchParam;package Mac::Processes::_ProcessInfoMap;	package Mac::Processes;require Exporter;require DynaLoader;@ISA = (Exporter, DynaLoader);@EXPORT = qw(	LaunchApplication	LaunchDeskAccessory	GetCurrentProcess	GetFrontProcess	GetNextProcess	GetProcessInformation	SetFrontProcess	WakeUpProcess	SameProcess	ExitToShell	%Process	kNoProcess	kSystemProcess	kCurrentProcess	launchContinue	launchNoFileFlags	launchUseMinimum	launchDontSwitch	launchAllow24Bit	launchInhibitDaemon	modeDeskAccessory	modeMultiLaunch	modeNeedSuspendResume	modeCanBackground	modeDoesActivateOnFGSwitch	modeOnlyBackground	modeGetFrontClicks	modeGetAppDiedMsg	mode32BitCompatible	modeHighLevelEventAware	modeLocalAndRemoteHLEvents	modeStationeryAware	modeUseTextEditServices	modeDisplayManagerAware);bootstrap Mac::Processes;tie %Process, Mac::Processes::_ProcessInfoMap;sub GetProcessInformation {	my($psn) = @_;	my($pi,%pi) = _GetProcessInformation($psn);	tie %pi, ProcessInfo, $pi;		return \%pi;}sub kNoProcess ()                    {          0; }sub kSystemProcess ()                {          1; }sub kCurrentProcess ()               {          2; }sub launchContinue ()                {     0x4000; }sub launchNoFileFlags ()             {     0x0800; }sub launchUseMinimum ()              {     0x0400; }sub launchDontSwitch ()              {     0x0200; }sub launchAllow24Bit ()              {     0x0100; }sub launchInhibitDaemon ()           {     0x0080; }sub modeDeskAccessory ()             { 0x00020000; }sub modeMultiLaunch ()               { 0x00010000; }sub modeNeedSuspendResume ()         { 0x00004000; }sub modeCanBackground ()             { 0x00001000; }sub modeDoesActivateOnFGSwitch ()    { 0x00000800; }sub modeOnlyBackground ()            { 0x00000400; }sub modeGetFrontClicks ()            { 0x00000200; }sub modeGetAppDiedMsg ()             { 0x00000100; }sub mode32BitCompatible ()           { 0x00000080; }sub modeHighLevelEventAware ()       { 0x00000040; }sub modeLocalAndRemoteHLEvents ()    { 0x00000020; }sub modeStationeryAware ()           { 0x00000010; }sub modeUseTextEditServices ()       { 0x00000008; }sub modeDisplayManagerAware ()       { 0x00000004; }package Mac::Processes::_ProcessInfoMap;use Carp;sub TIEHASH {	my($pack) = @_;		bless \{}, $pack;}sub FETCH {	my($self,$psn) = @_;		Mac::Processes::GetProcessInformation($psn);}sub FIRSTKEY {	Mac::Processes::GetNextProcess(0);}sub NEXTKEY {	my($self,$psn) = @_;		Mac::Processes::GetNextProcess($psn);}sub DESTROY {}sub STORE { croak "Can't change process info"; }sub DELETE { croak "Can't DELETE processes yet"; }package LaunchParam;=include Processes.xs=head1 BUGS/LIMITATIONS=head1 FILES=head1 AUTHOR(S)Matthias Ulrich Neeracher <neeri@iis.ee.ethz.ch> AuthorBob Dalgleish <bob.dalgleish@sasknet.sk.ca> Documenter=cut__END__