Hi, I’m using the Scripting Bridge to Target MS Outlook. I’m trying to figure out how to do the following AppleScript using the Scripting Bridge. Please see Full Script below, I’ve got most of the code, but I can’t seem to figure out the right Objective-C code for these two statements:
set myObjectID to the id of (object of myWindow) set myContent to the plain text content of message id myObjectID on run tell application id "com.microsoft.Outlook" activate set myWindow to the front window if class of myWindow is not draft window then return "Error - Not Draft Window" end if set myObjectID to the id of (object of myWindow) set myContent to the plain text content of message id myObjectID return myContent end tell end run I have the following Objective-C code: -(BOOL) outlookGetDraftWindowForWindowIndex:(NSInteger) theWindowIndex returnDraftWindow:(SXOutlook2011DraftWindow**) theDraftWindowPtr returnMessage:(SXOutlook2011OutgoingMessage**) theOutgoingMessagePtr { SXOutlook2011Application* myOutlookApp; SBElementArray* myOutgoingMessageArray; SBElementArray* myDraftWindowsArray; SXOutlook2011DraftWindow* myDraftWindow; SXOutlook2011OutgoingMessage* myOutgoingMessage; SXOutlook2011Object* myDraftObject; NSInteger myDraftObjectID; //** //** Get the Outlook Application //** myOutlookApp = [self.pSingletonManager.pScriptingBridgeManager getHandlerWithAppInternalID:kBundleIDOutlook]; if (myOutlookApp == nil) return NO; if (theDraftWindowPtr != NULL) *theDraftWindowPtr = nil; if (theOutgoingMessagePtr != NULL) *theOutgoingMessagePtr = nil; myOutgoingMessageArray = [myOutlookApp outgoingMessages]; myDraftWindowsArray = [myOutlookApp draftWindows]; if ([myDraftWindowsArray count] < theWindowIndex) return NO; myDraftWindow = [myDraftWindowsArray objectAtIndex:theWindowIndex]; if ([myDraftWindow exists] == NO) return NO; //** //** Save the Window before Getting the Message //** [myDraftWindow saveIn:nil as:myDraftWindow.name]; myDraftObject = myDraftWindow.object; if ([myDraftWindow exists] == NO) return NO; myDraftObjectID = myDraftObject.id; myOutgoingMessage = [self findMessageWithID:myDraftObjectID inArray:myOutgoingMessageArray]; if (theDraftWindowPtr != NULL) *theDraftWindowPtr = myDraftWindow; if (theOutgoingMessagePtr != NULL) *theOutgoingMessagePtr = myOutgoingMessage; return YES; } Which works but takes for ever because: myOutgoingMessage = [self findMessageWithID:myDraftObjectID inArray:myOutgoingMessageArray]; Does a sequential search of the Outgoing Message array, which is ok if there are only a few messages but as soon as you get more than about 100 it takes way too long. Any ideas on this would be greatly appreciated. All the Best Dave _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com