diff options
Diffstat (limited to 'common/quicktime_win32/AEMach.h')
| -rw-r--r-- | common/quicktime_win32/AEMach.h | 181 |
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__ */ + |