summaryrefslogtreecommitdiff
path: root/common/quicktime_win32/AEMach.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/AEMach.h
downloadarchived-source-engine-2018-hl2-src-master.tar.xz
archived-source-engine-2018-hl2-src-master.zip
Diffstat (limited to 'common/quicktime_win32/AEMach.h')
-rw-r--r--common/quicktime_win32/AEMach.h181
1 files changed, 181 insertions, 0 deletions
diff --git a/common/quicktime_win32/AEMach.h b/common/quicktime_win32/AEMach.h
new file mode 100644
index 0000000..abb6bc9
--- /dev/null
+++ b/common/quicktime_win32/AEMach.h
@@ -0,0 +1,181 @@
+/*
+ File: AEMach.h
+
+ Contains: AppleEvent over mach_msg interfaces
+
+ 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 __AEMACH__
+#define __AEMACH__
+
+#ifndef __MACTYPES__
+#include <MacTypes.h>
+#endif
+
+#ifndef __MIXEDMODE__
+#include <MixedMode.h>
+#endif
+
+#ifndef __AEDATAMODEL__
+#include <AEDataModel.h>
+#endif
+
+
+
+
+#if PRAGMA_ONCE
+#pragma once
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#if PRAGMA_IMPORT
+#pragma import on
+#endif
+
+/*-
+ * AE Mach API --
+ *
+ * AppleEvents on OS X are implemented in terms of mach messages.
+ * To facilitate writing server processes that can send and receive
+ * AppleEvents, the following APIs are provided.
+ *
+ * AppleEvents are directed to a well known port uniquely tied to a
+ * process. The AE framework will discover this port based on the
+ * keyAddressAttr of the event (as specifed in AECreateAppleEvent by
+ * the target parameter.) If a port cannot be found,
+ * procNotFound (-600) will be returned on AESend.
+ *
+ * Of note is a new attribute for an AppleEvent, keyReplyPortAttr.
+ * This specifies the mach_port_t to which an AppleEvent reply
+ * should be directed. By default, replies are sent to the
+ * processes registered port where they are culled from the normal
+ * event stream if there is an outstanding AESend + kAEWaitReply.
+ * But it may be desirable for a client to specify their own port to
+ * receive quued replies.
+ * (In the case of AESendMessage with kAEWaitReply specified, an
+ * anonymous port will be used to block until the reply is received.)
+ *
+ * Not supplied is a convenience routine to block a server and
+ * process AppleEvents. This implementation will be detailed in a
+ * tech note.
+ **/
+enum {
+ keyReplyPortAttr = FOUR_CHAR_CODE('repp')
+};
+
+/* typeReplyPortAttr was misnamed and is deprecated; use keyReplyPortAttr instead. */
+enum {
+ typeReplyPortAttr = keyReplyPortAttr
+};
+
+/*-
+ * Return the mach_port_t that was registered with the bootstrap
+ * server for this process. This port is considered public, and
+ * will be used by other applications to target your process. You
+ * are free to use this mach_port_t to add to a port set, if and
+ * only if, you are not also using routines from HIToolbox. In that
+ * case, HIToolbox retains control of this port and AppleEvents are
+ * dispatched through the main event loop.
+ **/
+/*
+ * AEGetRegisteredMachPort()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( mach_port_t )
+AEGetRegisteredMachPort(void);
+
+
+/*-
+ * Decode a mach_msg into an AppleEvent and its related reply. (The
+ * reply is set up from fields of the event.) You can call this
+ * routine if you wish to dispatch or handle the event yourself. To
+ * return a reply to the sender, you should call:
+ *
+ * AESendMessage(reply, NULL, kAENoReply, kAENormalPriority, kAEDefaultTimeout);
+ *
+ * The contents of the header are invalid after this call.
+ **/
+/*
+ * AEDecodeMessage()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+AEDecodeMessage(
+ mach_msg_header_t * header,
+ AppleEvent * event,
+ AppleEvent * reply); /* can be NULL */
+
+
+/*-
+ * Decodes and dispatches an event to an event handler. Handles
+ * packaging and returning the reply to the sender.
+ *
+ * The contents of the header are invalid after this call.
+ **/
+/*
+ * AEProcessMessage()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+AEProcessMessage(mach_msg_header_t * header);
+
+
+/*-
+ * Send an AppleEvent to a target process. If the target is the
+ * current process (as specified by using typeProcessSerialNumber of
+ * { 0, kCurrentProcess } it is dispatched directly to the
+ * appropriate event handler in your process and not serialized.
+ **/
+/*
+ * AESendMessage()
+ *
+ * Availability:
+ * Non-Carbon CFM: not available
+ * CarbonLib: not available in CarbonLib 1.x, is available on Mac OS X version 10.0 and later
+ * Mac OS X: in version 10.0 and later
+ */
+EXTERN_API_C( OSStatus )
+AESendMessage(
+ const AppleEvent * event,
+ AppleEvent * reply, /* can be NULL */
+ AESendMode sendMode,
+ long timeOutInTicks);
+
+
+
+
+#ifdef PRAGMA_IMPORT_OFF
+#pragma import off
+#elif PRAGMA_IMPORT
+#pragma import reset
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __AEMACH__ */
+