From 1ea39b0f18a93a1622b987e11b502b3b4ac2f821 Mon Sep 17 00:00:00 2001 From: Alexander Strange Date: Mon, 24 Feb 2003 07:21:24 +0000 Subject: [PATCH] Some mre debugging stuff, should be removed before rele --- ITAppleEventCenter.h | 2 + ITAppleEventCenter.m | 170 ++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 171 insertions(+), 1 deletion(-) diff --git a/ITAppleEventCenter.h b/ITAppleEventCenter.h index f2eae2a..48327a9 100755 --- a/ITAppleEventCenter.h +++ b/ITAppleEventCenter.h @@ -33,7 +33,9 @@ - (void)sendAEWithEventClass:(NSString*)eventClass eventID:(NSString*)eventID appPSN:(ProcessSerialNumber)psn; - (NSString*)sendAEWithSendString:(NSString*)nssendString eventClass:(NSString*)eventClass eventID:(NSString*)eventID appPSN:(ProcessSerialNumber)psn; +- (NSString*)sendAEWithSendString:(NSString*)nssendString eventClass:(NSString*)eventClass eventID:(NSString*)eventID appPSN:(ProcessSerialNumber)psn fixForAECrappiness:(long)fix; - (long)sendAEWithSendStringForNumber:(NSString*)string eventClass:(NSString*)eventClass eventID:(NSString*)eventID appPSN:(ProcessSerialNumber)psn; +- (long)sendAEWithSendStringForNumber:(NSString*)string eventClass:(NSString*)eventClass eventID:(NSString*)eventID appPSN:(ProcessSerialNumber)psn fixForAECrappiness:(long)fix; - (AEArrayDataPointer)sendAEWithSendStringForArray:(NSString*)string eventClass:(NSString*)eventClass eventID:(NSString*)eventID appPSN:(ProcessSerialNumber)psn; - (void)printCarbonDesc:(AEDesc*)desc; diff --git a/ITAppleEventCenter.m b/ITAppleEventCenter.m index 1fedec5..562dbc7 100755 --- a/ITAppleEventCenter.m +++ b/ITAppleEventCenter.m @@ -439,8 +439,9 @@ static ITAppleEventCenter *_sharedAECenter = nil; //AEBuildAppleEvent(eClass, eID, typeProcessSerialNumber,(ProcessSerialNumber*)&psn, sizeof(ProcessSerialNumber), kAutoGenerateReturnID, kAnyTransactionID, &event, nil, ""); AECreateDesc(typeProcessSerialNumber,(ProcessSerialNumber*)&psn,sizeof(ProcessSerialNumber),&dest); AECreateAppleEvent(eClass,eID,&dest,kAutoGenerateReturnID,kAnyTransactionID,&event); +[self printCarbonDesc:&event]; AESend(&event, &reply, kAENoReply, kAENormalPriority, kAEDefaultTimeout, idleUPP, nil); - +[self printCarbonDesc:&reply]; AEDisposeDesc(&dest); AEDisposeDesc(&event); AEDisposeDesc(&reply); @@ -612,4 +613,171 @@ return result; return result; } +- (long)sendAEWithSendStringForNumber:(NSString*)string eventClass:(NSString*)eventClass eventID:(NSString*)eventID appPSN:(ProcessSerialNumber)psn fixForAECrappiness:(long)fix +{ + //Add error checking... + AEEventClass eClass = *((unsigned long*)[eventClass UTF8String]); + AEEventID eID = *((unsigned long*)[eventID UTF8String]); + + const char *sendString = [string UTF8String]; + SInt32 result = 0; + + AppleEvent sendEvent, replyEvent; + + DescType resultType; + Size resultSize, charResultSize; + + AEBuildError buildError; + OSStatus err; + OSErr err2, err3; + /* + if ((GetProcessPID(&psn, &pid) == noErr) && (pid == 0)) { + NSLog(@"Error getting PID of application! Exiting."); + return nil; + } + */ + //NSLog(@"_sendString: %s", sendString); + + err = AEBuildAppleEvent(eClass, eID, typeProcessSerialNumber,(ProcessSerialNumber*)&psn, sizeof(ProcessSerialNumber), kAutoGenerateReturnID, 0, &sendEvent, &buildError, sendString); +[self printCarbonDesc:&sendEvent]; + //now AEBuildAppleEvent has inserted a bogus integer in there for no reason, so we fix it ourselves. + { //this sucks +//hey, i'm coding this in pico, sccrew indention +char *buf; +Size s,i; +s = AESizeOfFlattenedDesc(&sendEvent); +buf = malloc(s); +AEFlattenDesc(&sendEvent,buf,s,NULL); +AEDisposeDesc(&sendEvent); +for (i=0;i