TweetFollow Us on Twitter

Apr 98 - Tips

Volume Number: 14 (1998)
Issue Number: 4
Column Tag: Programmer's Challenge

Apr 98 - Tips & Tidbits

by Steve Sisak

It is easier to quit an app than to close a window because the close window event requires a direct object and a position descriptor to indicate which window. Quitting an app simply requires creating a quit event and sending it. The following code takes a valid target desc (which I'm assuming you already know how to create) and sends a close first window event to the app specified in that target desc.

The code is modified from similar code I used a while back. I may have made some errors in removing stuff or changing identifiers, but it should give you the right idea. Feel free to e-mail any questions about it.

void CloseFrontWindowOfApp( AEAddressDesc * theTargetDescPtr )
{
  AEDesc   frontWindowObjSpecifier;
  AppleEvent   event;
  AppleEvent   reply;
  OSErr  err = noErr;

//initialize descriptors 
  event.descriptorType = typeNull;
  reply.descriptorType = typeNull;
  frontWindowObjSpecifier.descriptorType = typeNull; 

  event.dataHandle = NULL;
  reply.dataHandle = NULL;
  frontWindowObjSpecifier.dataHandle = NULL;  

//create object spec for front window
  err = MyCreateFrontWindowObjSpec( &frontWindowObjSpecifier ) ;
  if ( err )
   goto CLEANUP_SetBounds;

//create apple event-- not sure if close event is in kAECoreSuite?

  err = AECreateAppleEvent( kAECoreSuite, kAEClose,
           theTargetDescPtr, kAutoGenerateReturnID,
           kAnyTransactionID, &event );
  if ( err )
   goto CLEANUP_SetBounds;

//insert direct object into ae  
  err = AEPutParamDesc( &event, keyDirectObject,             &frontWindowObjSpecifier );
  if ( err )
   goto CLEANUP_SetBounds;

//send ae
  err = AESend( &event, &reply, kAENoReply +
      kAENeverInteract +
      kAECanSwitchLayer,
      kAENormalPriority, kAEDefaultTimeout,
                kNoIdleProc, kNoFilterProc );

//dispose descriptors
CLEANUP_SetBounds:;      
  AEDisposeDesc (&event);
  AEDisposeDesc (&reply); 
  AEDisposeDesc (&frontWindowObjSpecifier); 

} //end function


OSErr MyCreateFrontWindowObjSpec( AEDesc *frontWindowObjSpec )
{
  AEDesc   emptySpecifier;
  AEDesc   positionDesc;
  long   thePosition;
  DescType propertyType;
  OSErr  err;


//initialize descriptors
  emptySpecifier.descriptorType = typeNull;
  positionDesc.descriptorType = typeNull;
  propertyDesc.descriptorType = typeNull;  
  
  emptySpecifier.dataHandle = NULL; 
  positionDesc.dataHandle = NULL;
  propertyDesc.dataHandle = NULL; 

//create objspecifier for window 1 of null container
  thePosition = 1;
  err = AECreateDesc( typeLongInteger, (Ptr)(&thePosition),
         sizeof( thePosition ), &positionDesc);
  if ( err )
   goto CLEANUP_MyCreateBoundsObjSpec;
  
  err = CreateObjSpecifier(   cWindow,
              &emptySpecifier, 
              formAbsolutePosition,
              &positionDesc, 
              false,
              frontWindowObjSpec ) ;
  if ( err )
   goto CLEANUP_MyCreateBoundsObjSpec;

  
//dispose descriptors
CLEANUP_MyCreateBoundsObjSpec:;      
  AEDisposeDesc (&windowObjSpecifier);  
  AEDisposeDesc (&positionDesc);

  return err;

}

David T. Pierson
dtp@pluto.njcc.com

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Latest Forum Discussions

See All

Combo Quest (Games)
Combo Quest 1.0 Device: iOS Universal Category: Games Price: $.99, Version: 1.0 (iTunes) Description: Combo Quest is an epic, time tap role-playing adventure. In this unique masterpiece, you are a knight on a heroic quest to retrieve... | Read more »
Hero Emblems (Games)
Hero Emblems 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: ** 25% OFF for a limited time to celebrate the release ** ** Note for iPhone 6 user: If it doesn't run fullscreen on your device... | Read more »
Puzzle Blitz (Games)
Puzzle Blitz 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Puzzle Blitz is a frantic puzzle solving race against the clock! Solve as many puzzles as you can, before time runs out! You have... | Read more »
Sky Patrol (Games)
Sky Patrol 1.0.1 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0.1 (iTunes) Description: 'Strategic Twist On The Classic Shooter Genre' - Indie Game Mag... | Read more »
The Princess Bride - The Official Game...
The Princess Bride - The Official Game 1.1 Device: iOS Universal Category: Games Price: $3.99, Version: 1.1 (iTunes) Description: An epic game based on the beloved classic movie? Inconceivable! Play the world of The Princess Bride... | Read more »
Frozen Synapse (Games)
Frozen Synapse 1.0 Device: iOS iPhone Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: Frozen Synapse is a multi-award-winning tactical game. (Full cross-play with desktop and tablet versions) 9/10 Edge 9/10 Eurogamer... | Read more »
Space Marshals (Games)
Space Marshals 1.0.1 Device: iOS Universal Category: Games Price: $4.99, Version: 1.0.1 (iTunes) Description: ### IMPORTANT ### Please note that iPhone 4 is not supported. Space Marshals is a Sci-fi Wild West adventure taking place... | Read more »
Battle Slimes (Games)
Battle Slimes 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: BATTLE SLIMES is a fun local multiplayer game. Control speedy & bouncy slime blobs as you compete with friends and family.... | Read more »
Spectrum - 3D Avenue (Games)
Spectrum - 3D Avenue 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: "Spectrum is a pretty cool take on twitchy/reaction-based gameplay with enough complexity and style to stand out from the... | Read more »
Drop Wizard (Games)
Drop Wizard 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Bring back the joy of arcade games! Drop Wizard is an action arcade game where you play as Teo, a wizard on a quest to save his... | Read more »

Price Scanner via MacPrices.net

Apple’s M4 Mac minis on sale for record-low p...
B&H Photo has M4 and M4 Pro Mac minis in stock and on sale right now for up to $150 off Apple’s MSRP, each including free 1-2 day shipping to most US addresses. Prices start at only $469: – M4... Read more
Deal Alert! Mac Studio with M4 Max CPU on sal...
B&H Photo has the standard-configuration Mac Studio model with Apple’s M4 Max CPU in stock today and on sale for $300 off MSRP, now $1699 (10-Core CPU and 32GB RAM/512GB SSD). B&H also... Read more

Jobs Board

All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.