/* File: EPPC.h Contains: High Level Event Manager Interfaces. Version: Technology: System 7.5 Release: QuickTime 6.0.2 Copyright: (c) 1988-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 __EPPC__ #define __EPPC__ #ifndef __MACERRORS__ #include #endif #ifndef __APPLETALK__ #include #endif #ifndef __FILES__ #include #endif #ifndef __PPCTOOLBOX__ #include #endif #ifndef __PROCESSES__ #include #endif #ifndef __EVENTS__ #include #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 enum { /* postOptions currently supported */ receiverIDMask = 0x0000F000, receiverIDisPSN = 0x00008000, receiverIDisSignature = 0x00007000, receiverIDisSessionID = 0x00006000, receiverIDisTargetID = 0x00005000, systemOptionsMask = 0x00000F00, nReturnReceipt = 0x00000200, priorityMask = 0x000000FF, nAttnMsg = 0x00000001 }; enum { /* constant for return receipts */ HighLevelEventMsgClass = FOUR_CHAR_CODE('jaym'), rtrnReceiptMsgID = FOUR_CHAR_CODE('rtrn') }; enum { msgWasPartiallyAccepted = 2, msgWasFullyAccepted = 1, msgWasNotAccepted = 0 }; struct TargetID { long sessionID; PPCPortRec name; LocationNameRec location; PPCPortRec recvrName; }; typedef struct TargetID TargetID; typedef TargetID * TargetIDPtr; typedef TargetIDPtr * TargetIDHandle; typedef TargetIDHandle TargetIDHdl; typedef TargetID SenderID; typedef SenderID * SenderIDPtr; struct HighLevelEventMsg { unsigned short HighLevelEventMsgHeaderLength; unsigned short version; unsigned long reserved1; EventRecord theMsgEvent; unsigned long userRefcon; unsigned long postingOptions; unsigned long msgLength; }; typedef struct HighLevelEventMsg HighLevelEventMsg; typedef HighLevelEventMsg * HighLevelEventMsgPtr; typedef HighLevelEventMsgPtr * HighLevelEventMsgHandle; typedef HighLevelEventMsgHandle HighLevelEventMsgHdl; typedef CALLBACK_API( Boolean , GetSpecificFilterProcPtr )(void *contextPtr, HighLevelEventMsgPtr msgBuff, const TargetID *sender); typedef STACK_UPP_TYPE(GetSpecificFilterProcPtr) GetSpecificFilterUPP; #if OPAQUE_UPP_TYPES #if CALL_NOT_IN_CARBON EXTERN_API(GetSpecificFilterUPP) NewGetSpecificFilterUPP (GetSpecificFilterProcPtr userRoutine); EXTERN_API(void) DisposeGetSpecificFilterUPP (GetSpecificFilterUPP userUPP); EXTERN_API(Boolean) InvokeGetSpecificFilterUPP (void * contextPtr, HighLevelEventMsgPtr msgBuff, const TargetID * sender, GetSpecificFilterUPP userUPP); #endif /* CALL_NOT_IN_CARBON */ #else enum { uppGetSpecificFilterProcInfo = 0x00000FD0 }; /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes) */ #define NewGetSpecificFilterUPP(userRoutine) (GetSpecificFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppGetSpecificFilterProcInfo, GetCurrentArchitecture()) #define DisposeGetSpecificFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP) #define InvokeGetSpecificFilterUPP(contextPtr, msgBuff, sender, userUPP) (Boolean)CALL_THREE_PARAMETER_UPP((userUPP), uppGetSpecificFilterProcInfo, (contextPtr), (msgBuff), (sender)) #endif /* support for pre-Carbon UPP routines: NewXXXProc and CallXXXProc */ #define NewGetSpecificFilterProc(userRoutine) NewGetSpecificFilterUPP(userRoutine) #define CallGetSpecificFilterProc(userRoutine, contextPtr, msgBuff, sender) InvokeGetSpecificFilterUPP(contextPtr, msgBuff, sender, userRoutine) #if CALL_NOT_IN_CARBON #if CALL_NOT_IN_CARBON EXTERN_API( OSErr ) PostHighLevelEvent (const EventRecord * theEvent, void * receiverID, unsigned long msgRefcon, void * msgBuff, unsigned long msgLen, unsigned long postingOptions) THREEWORDINLINE(0x3F3C, 0x0034, 0xA88F); #endif /* CALL_NOT_IN_CARBON */ #endif /* CALL_NOT_IN_CARBON */ #if CALL_NOT_IN_CARBON #if CALL_NOT_IN_CARBON EXTERN_API( OSErr ) AcceptHighLevelEvent (TargetID * sender, unsigned long * msgRefcon, void * msgBuff, unsigned long * msgLen) THREEWORDINLINE(0x3F3C, 0x0033, 0xA88F); #endif /* CALL_NOT_IN_CARBON */ #endif /* CALL_NOT_IN_CARBON */ #if CALL_NOT_IN_CARBON #if CALL_NOT_IN_CARBON EXTERN_API( OSErr ) GetProcessSerialNumberFromPortName (const PPCPortRec * portName, ProcessSerialNumber * pPSN) THREEWORDINLINE(0x3F3C, 0x0035, 0xA88F); #endif /* CALL_NOT_IN_CARBON */ #endif /* CALL_NOT_IN_CARBON */ #if CALL_NOT_IN_CARBON #if CALL_NOT_IN_CARBON EXTERN_API( OSErr ) GetPortNameFromProcessSerialNumber (PPCPortRec * portName, const ProcessSerialNumber * pPSN) THREEWORDINLINE(0x3F3C, 0x0046, 0xA88F); #endif /* CALL_NOT_IN_CARBON */ #endif /* CALL_NOT_IN_CARBON */ #if CALL_NOT_IN_CARBON #if CALL_NOT_IN_CARBON EXTERN_API( Boolean ) GetSpecificHighLevelEvent (GetSpecificFilterUPP aFilter, void * contextPtr, OSErr * err) THREEWORDINLINE(0x3F3C, 0x0045, 0xA88F); #endif /* CALL_NOT_IN_CARBON */ #endif /* CALL_NOT_IN_CARBON */ #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 /* __EPPC__ */