Retired Document
Important: This sample code may not represent best practices for current development. The project may use deprecated symbols and illustrate technologies and techniques that are no longer recommended.
Sources/AppleEvent.cp
/* |
File: AppleEvent.cp |
Contains: TAppleEvent is an Apple Event class that will send and receive Apple Events. |
AppleEvent.cp contains the member functions for the TAppleEvent class. |
Written by: Kent Sandvik |
Copyright: Copyright © 1992-1999 by Apple Computer, Inc., All Rights Reserved. |
You may incorporate this Apple sample source code into your program(s) without |
restriction. This Apple sample source code has been provided "AS IS" and the |
responsibility for its operation is yours. You are not permitted to redistribute |
this Apple sample source code as "Apple sample source code" after having made |
changes. If you're going to re-distribute the source, we require that you make |
it clear in the source that the code was descended from Apple sample source |
code, but that you've made changes. |
Change History (most recent first): |
8/18/1999 Karl Groethe Updated for Metrowerks Codewarror Pro 2.1 |
*/ |
// INCLUDE FILES |
#ifndef _APPLEEVENT_ |
#include "AppleEvent.h" |
#endif |
// GLOBALS |
const ProcessSerialNumber kSelf = { |
0, kCurrentProcess}; |
// _________________________________________________________________________________________________________ // |
// TAppleEvent class member function implementations |
// CONSTRUCTORS & DESTRUCTORS |
#pragma segment AppleEvent |
TAppleEvent::TAppleEvent() |
// Create a kCurrentProcess address Apple Event. |
{ |
this->Initialize(); |
fError = ::AECreateDesc(typeProcessSerialNumber, (Ptr) & kSelf, sizeof(ProcessSerialNumber), &fTarget); |
VASSERT(fError == noErr, ("Problems with AECreateDesc = %d", fError)); |
} |
#pragma segment AppleEvent |
TAppleEvent::TAppleEvent(OSType signature) |
// Create an AE based on the signature type. |
{ |
this->Initialize(); |
fSignature = signature; |
// Create an AEDescriptor from the signature. |
fError = ::AECreateDesc(typeApplSignature, (Ptr) & fSignature, sizeof(fSignature), &fTarget); |
VASSERT(fError == noErr, ("Problems with AECreateDesc = %d", fError)); |
} |
#pragma segment AppleEvent |
TAppleEvent::~TAppleEvent() |
{ |
::AEDisposeDesc(&fAE); // dispose our AE handle |
} |
#pragma segment AppleEvent |
void TAppleEvent::Initialize() |
// Initialize fields to known values. |
{ |
fPriority = kAENormalPriority; // normal level of priority |
fTimeout = kNoTimeOut; // no waiting, just continue |
fSendMode = kAENoReply; // default we are not expecting replies |
fAE.dataHandle = NULL; // clear the message part |
} |
// MAIN INTERFACES |
#pragma segment AppleEvent |
OSErr TAppleEvent::Define(AEEventClass theClass, |
AEEventID ID) |
// Define the AE based on the AE class and ID. |
{ |
fError = ::AECreateAppleEvent(theClass, ID, &fTarget, kAutoGenerateReturnID, kAnyTransactionID, &fAE); |
VASSERT(fError == noErr, ("Problems with AECreateAppleEvent = %d", fError)); |
return fError; |
} |
#pragma segment AppleEvent |
OSErr TAppleEvent::Send() |
// Blast off the Apple Event. |
{ |
fError = ::AESend(&fAE, &fReply, fSendMode, fPriority, fTimeout, nil, nil); |
VASSERT(fError == noErr, ("Problems with AESend = %d", fError)); |
return fError; |
} |
#pragma segment AppleEvent |
OSErr TAppleEvent::Send(AEEventClass theClass, |
AEEventID ID) |
// Blast off the AE with the specs |
{ |
this->Define(theClass, ID); // define the AE |
fError = ::AESend(&fAE, &fReply, fSendMode, fPriority, fTimeout, nil, nil); |
VASSERT(fError == noErr, ("Problems with AESend = %d", fError)); |
return fError; |
} |
#pragma segment AppleEvent |
void TAppleEvent::SetAddress(const AEAddressDesc address) |
// Set the address of the target AE. |
{ |
fError = ::AEPutAttributeDesc(&fAE, keyAddressAttr, &address); |
VASSERT(fError == noErr, ("Problems with AEPutAttributeDesc = %d", fError)); |
} |
// GET/SET MEMBER FUNCTIONS |
#pragma segment AppleEvent |
long TAppleEvent::GetTimeoutValue() const |
// Get current timeout value. |
{ |
return fTimeout; |
} |
#pragma segment AppleEvent |
void TAppleEvent::SetTimeoutValue(const long value) |
// Set new timeout value. |
{ |
fTimeout = value; |
} |
#pragma segment AppleEvent |
AESendMode TAppleEvent::GetSendingMode() const |
// Get AE sending mode. |
{ |
return fSendMode; |
} |
#pragma segment AppleEvent |
void TAppleEvent::SetSendingMode(const AESendMode mode) |
// Set new AE sending mode. |
{ |
fSendMode = mode; |
} |
#pragma segment AppleEvent |
AESendPriority TAppleEvent::GetPriority() const |
// Get current priority level. |
{ |
return fPriority; |
} |
#pragma segment AppleEvent |
void TAppleEvent::SetPriority(const AESendPriority value) |
// Set new priority level. |
{ |
fPriority = value; |
} |
// _________________________________________________________________________________________________________ // |
/* Change History (most recent last): |
No Init. Date Comment |
1 khs 11/22/92 New file |
2 khs 1/7/93 Cleanup |
*/ |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-01-14