mirror of
https://github.com/nillerusr/source-engine.git
synced 2026-08-14 20:56:56 +00:00
1
This commit is contained in:
@@ -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__ */
|
||||
|
||||
Reference in New Issue
Block a user