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.
Source/SVAEObjectsExist.c
/* |
File: SVAEObjectsExist.c |
Contains: |
Written by: Original version by Jon Lansdell and Nigel Humphreys. |
3.1 updates by Greg Sutton. |
Copyright: Copyright © 1995-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): |
7/20/1999 Karl Groethe Updated for Metrowerks Codewarror Pro 2.1 |
*/ |
#include "SVAEObjectsExist.h" |
#include "SVEditAEUtils.h" |
#pragma segment AppleEvent |
// ----------------------------------------------------------------------- |
// Name: DoObjectsExist |
// Purpose: Handles the kAEDoObjectsExist AppleEvent. Basically just |
// tries to resolve the object to see if it exists. |
// ----------------------------------------------------------------------- |
pascal OSErr DoObjectsExist(const AppleEvent *theAppleEvent, |
AppleEvent *reply, |
long handlerRefCon) |
{ |
#pragma unused (handlerRefCon) |
AEDesc directObject = {typeNull, NULL}, |
directDesc = {typeNull, NULL}, |
replyDesc = {typeNull, NULL}; |
long itemCount; |
Boolean exists; |
OSErr existsErr, |
err; |
err = AEGetParamDesc(theAppleEvent, keyDirectObject, typeWildCard, &directObject); |
err = GotRequiredParams(theAppleEvent); |
if (noErr != err) goto done; |
if (typeNull == directObject.descriptorType) |
exists = true; // Yes, our application does exist????? |
else |
{ |
existsErr = AEResolve(&directObject, kAEIDoMinimum, &directDesc); |
if (noErr == existsErr) |
{ |
if (typeAEList == directDesc.descriptorType) // If it's a list then objects |
{ // exist only if the list |
err = AECountItems(&directDesc, &itemCount);// is not empty. |
if (noErr != err) goto done; |
if (itemCount) |
exists = true; |
else |
exists = false; |
} |
else |
exists = true; // Otherwise it resolved |
} // so it exists. |
else |
exists = false; |
} |
err = AECreateDesc(typeBoolean, (Ptr)&exists, sizeof(exists), &replyDesc); |
if (noErr != err) goto done; |
err = AddResultToReply(&replyDesc, reply, err); |
done: |
if (directObject.dataHandle) |
AEDisposeDesc(&directObject); |
if (directDesc.dataHandle) |
AEDisposeDesc(&directDesc); |
if (replyDesc.dataHandle) |
AEDisposeDesc(&replyDesc); |
return(err); |
} // DoObjectsExist |
Copyright © 2003 Apple Computer, Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2003-07-22