ITSendAEWithString returns the AEDesc at index 1 of the resulting AEDesc, which is...
[ITFoundation.git] / ITAppleEventTools.m
index 6eb927c..217a1d1 100755 (executable)
@@ -19,6 +19,7 @@ NSAppleEventDescriptor *ITSendAEWithString(NSString *sendString, FourCharCode ev
     
     AppleEvent sendEvent, replyEvent;
     NSAppleEventDescriptor *send, *recv;
+    AEDesc nthDesc;
     
     AEBuildError buildError;
     OSStatus berr,err;
@@ -28,7 +29,7 @@ NSAppleEventDescriptor *ITSendAEWithString(NSString *sendString, FourCharCode ev
        return nil;
     }
     
-    berr = AEBuildAppleEvent(evClass, evID, typeProcessSerialNumber,(ProcessSerialNumber*)&psn, sizeof(ProcessSerialNumber), kAutoGenerateReturnID, 0, &sendEvent, &buildError, usendString);
+    berr = AEBuildAppleEvent(evClass, evID, typeProcessSerialNumber,psn, sizeof(ProcessSerialNumber), kAutoGenerateReturnID, 0, &sendEvent, &buildError, usendString);
     send = [[[NSAppleEventDescriptor alloc] initWithAEDescNoCopy:&sendEvent] autorelease];
     if (!berr) [send logDesc];
     
@@ -37,7 +38,11 @@ NSAppleEventDescriptor *ITSendAEWithString(NSString *sendString, FourCharCode ev
     }
     
     err = AESend(&sendEvent, &replyEvent, kAEWaitReply, kAENormalPriority, kNoTimeOut, NULL, NULL);
-    recv = [[[NSAppleEventDescriptor alloc] initWithAEDescNoCopy:&replyEvent] autorelease];
+    
+    err = AEGetNthDesc(&replyEvent, 1, typeWildCard, nil, &nthDesc);
+    if (!err) ITDebugLog(@"Error getting Nth desc.");
+    
+    recv = [[[NSAppleEventDescriptor alloc] initWithAEDescNoCopy:&nthDesc] autorelease];
     if (!err) [recv logDesc];
     
     if (err) {
@@ -48,9 +53,10 @@ NSAppleEventDescriptor *ITSendAEWithString(NSString *sendString, FourCharCode ev
 
 NSAppleEventDescriptor *ITSendAEWithKey(FourCharCode reqKey, FourCharCode evClass, FourCharCode evID,const ProcessSerialNumber *psn)
 {
+    return nil;
 }
 
-NSAppleEventDescriptor *ITSendPlainAE(FourCharCode eClass, FourCharCode eID,const ProcessSerialNumber *psn)
+NSAppleEventDescriptor *ITSendAE(FourCharCode eClass, FourCharCode eID,const ProcessSerialNumber *psn)
 {
     AEDesc dest;
     int pid;
@@ -58,11 +64,11 @@ NSAppleEventDescriptor *ITSendPlainAE(FourCharCode eClass, FourCharCode eID,cons
     AppleEvent event, reply;
     OSStatus cerr,cerr2,err;
     NSAppleEventDescriptor *nsd, *nse, *nsr;
-    if ((GetProcessPID(&psn, &pid) == noErr) && (pid == 0)) {
+    if ((GetProcessPID(psn, &pid) == noErr) && (pid == 0)) {
         ITDebugLog(@"Error getting PID of application.");
-       return;
+       return nil;
     }
-    cerr = AECreateDesc(typeProcessSerialNumber,(ProcessSerialNumber*)&psn,sizeof(ProcessSerialNumber),&dest);
+    cerr = AECreateDesc(typeProcessSerialNumber,psn,sizeof(ProcessSerialNumber),&dest);
     nsd = [[[NSAppleEventDescriptor alloc] initWithAEDescNoCopy:&dest] autorelease];
     cerr2 = AECreateAppleEvent(eClass,eID,&dest,kAutoGenerateReturnID,kAnyTransactionID,&event);
     nse = [[[NSAppleEventDescriptor alloc] initWithAEDescNoCopy:&event] autorelease];