Package Name: eppc
with Interfaces.C; use Interfaces.C;
with Interfaces.C.Extensions; use Interfaces.C.Extensions;
with Types; use Types;
with Events; use Events;
with PPCToolbox; use PPCToolbox;
with Processes; use Processes;
package EPPC is
--
-- File: EPPC.h
--
-- Contains: High Level Event Manager Interfaces.
--
-- Version: Technology: System 7.5
-- Package: Universal Interfaces 2.0 in ÒMPW LatestÓ on ETO #17
--
-- Copyright: © 1984-1995 by Apple Computer, Inc.
-- All rights reserved.
--
-- value for eventRecord.what
kHighLevelEvent : Constant Events.EventKind := 23;
-- postOptions currently supported
receiverIDMask : Constant unsigned_long := 16#0000F000#;
receiverIDisPSN : Constant unsigned_long := 16#00008000#;
receiverIDisSignature : Constant unsigned_long := 16#00007000#;
receiverIDisSessionID : Constant unsigned_long := 16#00006000#;
receiverIDisTargetID : Constant unsigned_long := 16#00005000#;
systemOptionsMask : Constant unsigned_long := 16#00000F00#;
nReturnReceipt : Constant unsigned_long := 16#00000200#;
priorityMask : Constant unsigned_long := 16#000000FF#;
nAttnMsg : Constant unsigned_long := 16#00000001#;
-- constant for return receipts
HighLevelEventMsgClass : constant Types.OSType := Types.ToRes("jaym");
rtrnReceiptMsgID : constant Types.OSType := Types.ToRes("rtrn");
msgWasPartiallyAccepted : constant := 2;
msgWasFullyAccepted : constant := 1;
msgWasNotAccepted : constant := 0;
uppGetSpecificFilterProcInfo : constant := 16#00000FD0#; -- FUNCTION (4 byte param, 4 byte param, 4 byte param): 1 byte result;
type TargetID is
record
sessionID : Long_Integer;
name : PPCPortRec;
location : LocationNameRec;
recvrName : PPCPortRec;
end record;
type TargetIDPtr is Access TargetID;
type TargetIDHdl is Access TargetIDPtr;
subtype SenderID is TargetID;
type SenderIDPtr is Access SenderID;
type HighLevelEventMsg is
record
HighLevelEventMsgHeaderLength : unsigned_short;
version : unsigned_short;
reserved1 : unsigned_long;
theMsgEvent : EventRecord;
userRefcon : unsigned_long;
postingOptions : unsigned_long;
msgLength : unsigned_long;
end record;
type HighLevelEventMsgPtr is Access HighLevelEventMsg;
type HighLevelEventMsgHandle is Access HighLevelEventMsgPtr;
type HighLevelEventMsgHdl is Access HighLevelEventMsgPtr;
type GetSpecificFilterProcPtr is access function
(yourDataPtr : in Void_Ptr;
msgBuff : in HighLevelEventMsgPtr;
sender : access TargetID) return Boolean;
subtype GetSpecificFilterUPP is UniversalProcPtr;
--FUNCTION NewGetSpecificFilterProc(userRoutine: GetSpecificFilterProcPtr): GetSpecificFilterUPP;
--FUNCTION CallGetSpecificFilterProc(contextPtr: UNIV Ptr; msgBuff: HighLevelEventMsgPtr; {CONST}VAR sender: TargetID; userRoutine: GetSpecificFilterUPP): BOOLEAN;
function PostHighLevelEvent
(theEvent : access EventRecord;
receiverID : in unsigned_long;
msgRefcon : in unsigned_long;
msgBuff : in Ptr;
msgLen : in unsigned_long;
postingOptions : in unsigned_long)
return OSErr;
pragma Import (C, PostHighLevelEvent, "PostHighLevelEvent", "PostHighLevelEvent");
function AcceptHighLevelEvent
(sender : access TargetID;
msgRefcon : access unsigned_long;
msgBuff : in Ptr;
msgLen : access unsigned_long)
return OSErr;
pragma Import (C, AcceptHighLevelEvent, "AcceptHighLevelEvent",
"AcceptHighLevelEvent");
function GetProcessSerialNumberFromPortName
(portName : access PPCPortRec;
pPSN : access ProcessSerialNumber)
return OSErr;
pragma Import (C, GetProcessSerialNumberFromPortName,
"GetProcessSerialNumberFromPortName", "GetProcessSerialNumberFromPortName");
function GetPortNameFromProcessSerialNumber
(portName : access PPCPortRec;
pPSN : access ProcessSerialNumber)
return OSErr;
pragma Import (C, GetPortNameFromProcessSerialNumber,
"GetPortNameFromProcessSerialNumber", "GetPortNameFromProcessSerialNumber");
function GetSpecificHighLevelEvent
(aFilter : in GetSpecificFilterUPP;
yourDataPtr : in Void_Ptr;
err : access OSErr)
return Boolean;
pragma Import (C, GetSpecificHighLevelEvent, "GetSpecificHighLevelEvent",
"GetSpecificHighLevelEvent");
end EPPC;