summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/AEInteraction.h
diff options
context:
space:
mode:
authorFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
committerFluorescentCIAAfricanAmerican <[email protected]>2020-04-22 12:56:21 -0400
commit3bf9df6b2785fa6d951086978a3e66f49427166a (patch)
tree2c0f1f0c63c4832882bc93814ebd2c2b1c6224e5 /common/quicktime_win32/AEInteraction.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/AEInteraction.h')
-rw-r--r--common/quicktime_win32/AEInteraction.h414
1 files changed, 414 insertions, 0 deletions
diff --git a/common/quicktime_win32/AEInteraction.h b/common/quicktime_win32/AEInteraction.h
new file mode 100644
index 0000000..4edf58a
--- /dev/null
+++ b/common/quicktime_win32/AEInteraction.h
@@ -0,0 +1,414 @@
+/*
+ File: AEInteraction.h
+
+ Contains: AppleEvent functions that deal with Events and interacting with user
+
+ Version: QuickTime 7.3
+
+ Copyright: (c) 2007 (c) 2000-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 __AEINTERACTION__
+#define __AEINTERACTION__
+
+#ifndef __AEDATAMODEL__
+#include <AEDataModel.h>
+#endif
+
+#ifndef __NOTIFICATION__
+#include <Notification.h>
+#endif
+
+#ifndef __EVENTS__
+#include <Events.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
+
+/**************************************************************************
+ AppleEvent callbacks.
+**************************************************************************/
+typedef CALLBACK_API( Boolean , AEIdleProcPtr )(EventRecord *theEvent, long *sleepTime, RgnHandle *mouseRgn);
+typedef CALLBACK_API( Boolean , AEFilterProcPtr )(EventRecord *theEvent, long returnID, long transactionID, const AEAddressDesc *sender);
+typedef STACK_UPP_TYPE(AEIdleProcPtr) AEIdleUPP;
+typedef STACK_UPP_TYPE(AEFilterProcPtr) AEFilterUPP;
+
+/**************************************************************************
+ The next couple of calls are basic routines used to create, send,
+ and process AppleEvents.
+**************************************************************************/
+/*
+ * AESend()
+ *
+ * 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 )
+AESend(
+ const AppleEvent * theAppleEvent,
+ AppleEvent * reply,
+ AESendMode sendMode,
+ AESendPriority sendPriority,
+ long timeOutInTicks,
+ AEIdleUPP idleProc, /* can be NULL */
+ AEFilterUPP filterProc) /* can be NULL */ THREEWORDINLINE(0x303C, 0x0D17, 0xA816);
+
+
+/*
+ * AEProcessAppleEvent()
+ *
+ * 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 )
+AEProcessAppleEvent(const EventRecord * theEventRecord) THREEWORDINLINE(0x303C, 0x021B, 0xA816);
+
+
+
+/*
+ Note: during event processing, an event handler may realize that it is likely
+ to exceed the client's timeout limit. Passing the reply to this
+ routine causes a wait event to be generated that asks the client
+ for more time.
+*/
+/*
+ * AEResetTimer()
+ *
+ * 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 )
+AEResetTimer(const AppleEvent * reply) THREEWORDINLINE(0x303C, 0x0219, 0xA816);
+
+
+
+/**************************************************************************
+ The following three calls are used to allow applications to behave
+ courteously when a user interaction such as a dialog box is needed.
+**************************************************************************/
+
+typedef SInt8 AEInteractAllowed;
+enum {
+ kAEInteractWithSelf = 0,
+ kAEInteractWithLocal = 1,
+ kAEInteractWithAll = 2
+};
+
+/*
+ * AEGetInteractionAllowed()
+ *
+ * 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 )
+AEGetInteractionAllowed(AEInteractAllowed * level) THREEWORDINLINE(0x303C, 0x021D, 0xA816);
+
+
+/*
+ * AESetInteractionAllowed()
+ *
+ * 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 )
+AESetInteractionAllowed(AEInteractAllowed level) THREEWORDINLINE(0x303C, 0x011E, 0xA816);
+
+
+/*
+ * AEInteractWithUser()
+ *
+ * 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 )
+AEInteractWithUser(
+ long timeOutInTicks,
+ NMRecPtr nmReqPtr,
+ AEIdleUPP idleProc) THREEWORDINLINE(0x303C, 0x061C, 0xA816);
+
+
+
+/**************************************************************************
+ The following four calls are available for applications which need more
+ sophisticated control over when and how events are processed. Applications
+ which implement multi-session servers or which implement their own
+ internal event queueing will probably be the major clients of these
+ routines. They can be called from within a handler to prevent the AEM from
+ disposing of the AppleEvent when the handler returns. They can be used to
+ asynchronously process the event (as MacApp does).
+**************************************************************************/
+/*
+ * AESuspendTheCurrentEvent()
+ *
+ * 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 )
+AESuspendTheCurrentEvent(const AppleEvent * theAppleEvent) THREEWORDINLINE(0x303C, 0x022B, 0xA816);
+
+
+/*
+ Note: The following routine tells the AppleEvent manager that processing
+ is either about to resume or has been completed on a previously suspended
+ event. The procPtr passed in as the dispatcher parameter will be called to
+ attempt to redispatch the event. Several constants for the dispatcher
+ parameter allow special behavior. They are:
+ - kAEUseStandardDispatch means redispatch as if the event was just
+ received, using the standard AppleEvent dispatch mechanism.
+ - kAENoDispatch means ignore the parameter.
+ Use this in the case where the event has been handled and no
+ redispatch is needed.
+ - non nil means call the routine which the dispatcher points to.
+*/
+/* Constants for Refcon in AEResumeTheCurrentEvent with kAEUseStandardDispatch */
+enum {
+ kAEDoNotIgnoreHandler = 0x00000000,
+ kAEIgnoreAppPhacHandler = 0x00000001, /* available only in vers 1.0.1 and greater */
+ kAEIgnoreAppEventHandler = 0x00000002, /* available only in vers 1.0.1 and greater */
+ kAEIgnoreSysPhacHandler = 0x00000004, /* available only in vers 1.0.1 and greater */
+ kAEIgnoreSysEventHandler = 0x00000008, /* available only in vers 1.0.1 and greater */
+ kAEIngoreBuiltInEventHandler = 0x00000010, /* available only in vers 1.0.1 and greater */
+ kAEDontDisposeOnResume = (long)0x80000000 /* available only in vers 1.0.1 and greater */
+};
+
+/* Constants for AEResumeTheCurrentEvent */
+enum {
+ kAENoDispatch = 0, /* dispatch parameter to AEResumeTheCurrentEvent takes a pointer to a dispatch */
+ kAEUseStandardDispatch = (long)0xFFFFFFFF /* table, or one of these two constants */
+};
+
+/*
+ * AEResumeTheCurrentEvent()
+ *
+ * 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 )
+AEResumeTheCurrentEvent(
+ const AppleEvent * theAppleEvent,
+ const AppleEvent * reply,
+ AEEventHandlerUPP dispatcher, /* can be NULL */
+ long handlerRefcon) THREEWORDINLINE(0x303C, 0x0818, 0xA816);
+
+
+/*
+ * AEGetTheCurrentEvent()
+ *
+ * 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 )
+AEGetTheCurrentEvent(AppleEvent * theAppleEvent) THREEWORDINLINE(0x303C, 0x021A, 0xA816);
+
+
+/*
+ * AESetTheCurrentEvent()
+ *
+ * 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 )
+AESetTheCurrentEvent(const AppleEvent * theAppleEvent) THREEWORDINLINE(0x303C, 0x022C, 0xA816);
+
+
+
+/**************************************************************************
+ AppleEvent callbacks.
+**************************************************************************/
+/*
+ * NewAEIdleUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( AEIdleUPP )
+NewAEIdleUPP(AEIdleProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppAEIdleProcInfo = 0x00000FD0 }; /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(AEIdleUPP) NewAEIdleUPP(AEIdleProcPtr userRoutine) { return (AEIdleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppAEIdleProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewAEIdleUPP(userRoutine) (AEIdleUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppAEIdleProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * NewAEFilterUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( AEFilterUPP )
+NewAEFilterUPP(AEFilterProcPtr userRoutine);
+#if !OPAQUE_UPP_TYPES
+ enum { uppAEFilterProcInfo = 0x00003FD0 }; /* pascal 1_byte Func(4_bytes, 4_bytes, 4_bytes, 4_bytes) */
+ #ifdef __cplusplus
+ inline DEFINE_API_C(AEFilterUPP) NewAEFilterUPP(AEFilterProcPtr userRoutine) { return (AEFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppAEFilterProcInfo, GetCurrentArchitecture()); }
+ #else
+ #define NewAEFilterUPP(userRoutine) (AEFilterUPP)NewRoutineDescriptor((ProcPtr)(userRoutine), uppAEFilterProcInfo, GetCurrentArchitecture())
+ #endif
+#endif
+
+/*
+ * DisposeAEIdleUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeAEIdleUPP(AEIdleUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeAEIdleUPP(AEIdleUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeAEIdleUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * DisposeAEFilterUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( void )
+DisposeAEFilterUPP(AEFilterUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(void) DisposeAEFilterUPP(AEFilterUPP userUPP) { DisposeRoutineDescriptor((UniversalProcPtr)userUPP); }
+ #else
+ #define DisposeAEFilterUPP(userUPP) DisposeRoutineDescriptor(userUPP)
+ #endif
+#endif
+
+/*
+ * InvokeAEIdleUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( Boolean )
+InvokeAEIdleUPP(
+ EventRecord * theEvent,
+ long * sleepTime,
+ RgnHandle * mouseRgn,
+ AEIdleUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(Boolean) InvokeAEIdleUPP(EventRecord * theEvent, long * sleepTime, RgnHandle * mouseRgn, AEIdleUPP userUPP) { return (Boolean)CALL_THREE_PARAMETER_UPP(userUPP, uppAEIdleProcInfo, theEvent, sleepTime, mouseRgn); }
+ #else
+ #define InvokeAEIdleUPP(theEvent, sleepTime, mouseRgn, userUPP) (Boolean)CALL_THREE_PARAMETER_UPP((userUPP), uppAEIdleProcInfo, (theEvent), (sleepTime), (mouseRgn))
+ #endif
+#endif
+
+/*
+ * InvokeAEFilterUPP()
+ *
+ * Availability:
+ * Non-Carbon CFM: available as macro/inline
+ * CarbonLib: in CarbonLib 1.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( Boolean )
+InvokeAEFilterUPP(
+ EventRecord * theEvent,
+ long returnID,
+ long transactionID,
+ const AEAddressDesc * sender,
+ AEFilterUPP userUPP);
+#if !OPAQUE_UPP_TYPES
+ #ifdef __cplusplus
+ inline DEFINE_API_C(Boolean) InvokeAEFilterUPP(EventRecord * theEvent, long returnID, long transactionID, const AEAddressDesc * sender, AEFilterUPP userUPP) { return (Boolean)CALL_FOUR_PARAMETER_UPP(userUPP, uppAEFilterProcInfo, theEvent, returnID, transactionID, sender); }
+ #else
+ #define InvokeAEFilterUPP(theEvent, returnID, transactionID, sender, userUPP) (Boolean)CALL_FOUR_PARAMETER_UPP((userUPP), uppAEFilterProcInfo, (theEvent), (returnID), (transactionID), (sender))
+ #endif
+#endif
+
+#if CALL_NOT_IN_CARBON || OLDROUTINENAMES
+ /* support for pre-Carbon UPP routines: New...Proc and Call...Proc */
+ #define NewAEIdleProc(userRoutine) NewAEIdleUPP(userRoutine)
+ #define NewAEFilterProc(userRoutine) NewAEFilterUPP(userRoutine)
+ #define CallAEIdleProc(userRoutine, theEvent, sleepTime, mouseRgn) InvokeAEIdleUPP(theEvent, sleepTime, mouseRgn, userRoutine)
+ #define CallAEFilterProc(userRoutine, theEvent, returnID, transactionID, sender) InvokeAEFilterUPP(theEvent, returnID, transactionID, sender, userRoutine)
+#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 /* __AEINTERACTION__ */
+