![]() |
If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
![]()
I know this is a VBA group and this is a powerbuilder question BUT I
noticed that the author of the Redemption code answers post here so I thought I would try and post my question here I have a PB application where I would like to show the address book and let the users select the email addresses for the message being sent. I have the following code and this works as long as the user selects the OK button from the address book dialog. Then everything works like a charm BUT if the user selects Cancel from the address book dialog you get a PB error message Error calling external object function showaddressbook I am using the newest version of Redemption and I am using the RDOSession because I need to use the SaveAs function to save the created email as a .msg file and found using the SaveMailitem that this did not work. It would only save an empty email .msg file unless I used oleSafeMailItem.Item.SaveAs(filename,3) AND then you get the dreaded Outlook Security message popup. Session = Create OLEObject li_Return = Session .ConnectToNewObject( "Redemption.RDOSession" ) Session .Logon Msg = Session .GetDefaultFolder(4).Items.Add(0) Msg.Recipients.Add " ) Msg.Recipients.ResolveAll Msg.Subject = "Hello" Msg.Body = "Testing Applications" ab = Session .AddressBook recips = AB.ShowAddressBook(Msg.Recipients) /* This is the line that the error message is for BUT this does actually show the addressbook but if the user clicks cancel this line then reports the error and dies. I have debugged it and it is dying on this line. Msg.Recipients = Recips Any help would be greatly appreciated. Thanks |
#2
|
|||
|
|||
![]()
Test to see if the returned collection from AddressBook is null or Nothing
or whatever PB uses to denote an empty collection. Only assign the returned collection if it's not empty. -- Ken Slovak [MVP - Outlook] http://www.slovaktech.com Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003 Reminder Manager, Extended Reminders, Attachment Options http://www.slovaktech.com/products.htm wrote in message oups.com... I know this is a VBA group and this is a powerbuilder question BUT I noticed that the author of the Redemption code answers post here so I thought I would try and post my question here I have a PB application where I would like to show the address book and let the users select the email addresses for the message being sent. I have the following code and this works as long as the user selects the OK button from the address book dialog. Then everything works like a charm BUT if the user selects Cancel from the address book dialog you get a PB error message Error calling external object function showaddressbook I am using the newest version of Redemption and I am using the RDOSession because I need to use the SaveAs function to save the created email as a .msg file and found using the SaveMailitem that this did not work. It would only save an empty email .msg file unless I used oleSafeMailItem.Item.SaveAs(filename,3) AND then you get the dreaded Outlook Security message popup. Session = Create OLEObject li_Return = Session .ConnectToNewObject( "Redemption.RDOSession" ) Session .Logon Msg = Session .GetDefaultFolder(4).Items.Add(0) Msg.Recipients.Add " ) Msg.Recipients.ResolveAll Msg.Subject = "Hello" Msg.Body = "Testing Applications" ab = Session .AddressBook recips = AB.ShowAddressBook(Msg.Recipients) /* This is the line that the error message is for BUT this does actually show the addressbook but if the user clicks cancel this line then reports the error and dies. I have debugged it and it is dying on this line. Msg.Recipients = Recips Any help would be greatly appreciated. Thanks |
#3
|
|||
|
|||
![]()
On Jul 6, 9:23 am, "Ken Slovak - [MVP - Outlook]"
wrote: Test to see if the returned collection from AddressBook is null or Nothing or whatever PB uses to denote an empty collection. Only assign the returned collection if it's not empty. -- Ken Slovak [MVP - Outlook]http://www.slovaktech.com Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003 Reminder Manager, Extended Reminders, Attachment Optionshttp://www.slovaktech.com/products.htm wrote in message oups.com... I know this is a VBA group and this is a powerbuilder question BUT I noticed that the author of the Redemption code answers post here so I thought I would try and post my question here I have a PB application where I would like to show the address book and let the users select the email addresses for the message being sent. I have the following code and this works as long as the user selects the OK button from the address book dialog. Then everything works like a charm BUT if the user selects Cancel from the address book dialog you get a PB error message Error calling external object function showaddressbook I am using the newest version of Redemption and I am using the RDOSession because I need to use the SaveAs function to save the created email as a .msg file and found using the SaveMailitem that this did not work. It would only save an empty email .msg file unless I used oleSafeMailItem.Item.SaveAs(filename,3) AND then you get the dreaded Outlook Security message popup. Session = Create OLEObject li_Return = Session .ConnectToNewObject( "Redemption.RDOSession" ) Session .Logon Msg = Session .GetDefaultFolder(4).Items.Add(0) Msg.Recipients.Add " ) Msg.Recipients.ResolveAll Msg.Subject = "Hello" Msg.Body = "Testing Applications" ab = Session .AddressBook recips = AB.ShowAddressBook(Msg.Recipients) /* This is the line that the error message is for BUT this does actually show the addressbook but if the user clicks cancel this line then reports the error and dies. I have debugged it and it is dying on this line. Msg.Recipients = Recips Any help would be greatly appreciated. Thanks- Hide quoted text - - Show quoted text - I alrad thought of that and tried a IsValid(recips) ... but it does not actually get past the line that calls recips = AB.ShowAddressBook ... so I don't even get a chance |
#4
|
|||
|
|||
![]()
RDOAddressBook.ShowAddressBook simply raises a COM error if MAPI returns
anything but S_OK. When the address book dialog, is cancelled, the error is MAPI_E_USER_CANCEL (0x80040113). This is normal, your code should expect and handle that error. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool wrote in message oups.com... I know this is a VBA group and this is a powerbuilder question BUT I noticed that the author of the Redemption code answers post here so I thought I would try and post my question here I have a PB application where I would like to show the address book and let the users select the email addresses for the message being sent. I have the following code and this works as long as the user selects the OK button from the address book dialog. Then everything works like a charm BUT if the user selects Cancel from the address book dialog you get a PB error message Error calling external object function showaddressbook I am using the newest version of Redemption and I am using the RDOSession because I need to use the SaveAs function to save the created email as a .msg file and found using the SaveMailitem that this did not work. It would only save an empty email .msg file unless I used oleSafeMailItem.Item.SaveAs(filename,3) AND then you get the dreaded Outlook Security message popup. Session = Create OLEObject li_Return = Session .ConnectToNewObject( "Redemption.RDOSession" ) Session .Logon Msg = Session .GetDefaultFolder(4).Items.Add(0) Msg.Recipients.Add " ) Msg.Recipients.ResolveAll Msg.Subject = "Hello" Msg.Body = "Testing Applications" ab = Session .AddressBook recips = AB.ShowAddressBook(Msg.Recipients) /* This is the line that the error message is for BUT this does actually show the addressbook but if the user clicks cancel this line then reports the error and dies. I have debugged it and it is dying on this line. Msg.Recipients = Recips Any help would be greatly appreciated. Thanks |
#5
|
|||
|
|||
![]()
On Jul 6, 5:13 pm, "Dmitry Streblechenko" wrote:
RDOAddressBook.ShowAddressBook simply raises a COM error if MAPI returns anything but S_OK. When the address book dialog, is cancelled, the error is MAPI_E_USER_CANCEL (0x80040113). This is normal, your code should expect and handle that error. Dmitry Streblechenko (MVP)http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool wrote in message oups.com... I know this is a VBA group and this is a powerbuilder question BUT I noticed that the author of the Redemption code answers post here so I thought I would try and post my question here I have a PB application where I would like to show the address book and let the users select the email addresses for the message being sent. I have the following code and this works as long as the user selects the OK button from the address book dialog. Then everything works like a charm BUT if the user selects Cancel from the address book dialog you get a PB error message Error calling external object function showaddressbook I am using the newest version of Redemption and I am using the RDOSession because I need to use the SaveAs function to save the created email as a .msg file and found using the SaveMailitem that this did not work. It would only save an empty email .msg file unless I used oleSafeMailItem.Item.SaveAs(filename,3) AND then you get the dreaded Outlook Security message popup. Session = Create OLEObject li_Return = Session .ConnectToNewObject( "Redemption.RDOSession" ) Session .Logon Msg = Session .GetDefaultFolder(4).Items.Add(0) Msg.Recipients.Add " ) Msg.Recipients.ResolveAll Msg.Subject = "Hello" Msg.Body = "Testing Applications" ab = Session .AddressBook recips = AB.ShowAddressBook(Msg.Recipients) /* This is the line that the error message is for BUT this does actually show the addressbook but if the user clicks cancel this line then reports the error and dies. I have debugged it and it is dying on this line. Msg.Recipients = Recips Any help would be greatly appreciated. Thanks- Hide quoted text - - Show quoted text - Unfortunately it is not my code causing the error but something internal to PB ... so maybe I am s**t out of luck! Do you have any ideas about the savemailitem.SaveAs issue ... why does this save a blank email msg but when I call savemailitem.item.saveas it saves the email msg but then I get the security warning? Thanks |
#6
|
|||
|
|||
![]()
Can PB handle COM exception (that is how COM returns errors)?
In VB/VBA you can use "on error resume next" and then check the value of err.Number. In other languages try/finally/except/catch blocks are used. As for SaveAs, this is an indication that the item hasn't been saved, so MAPI (and hence Redemption) cannot see the latest changes. Call MailItem.Save first. Dmitry Streblechenko (MVP) http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool wrote in message oups.com... On Jul 6, 5:13 pm, "Dmitry Streblechenko" wrote: RDOAddressBook.ShowAddressBook simply raises a COM error if MAPI returns anything but S_OK. When the address book dialog, is cancelled, the error is MAPI_E_USER_CANCEL (0x80040113). This is normal, your code should expect and handle that error. Dmitry Streblechenko (MVP)http://www.dimastr.com/ OutlookSpy - Outlook, CDO and MAPI Developer Tool wrote in message oups.com... I know this is a VBA group and this is a powerbuilder question BUT I noticed that the author of the Redemption code answers post here so I thought I would try and post my question here I have a PB application where I would like to show the address book and let the users select the email addresses for the message being sent. I have the following code and this works as long as the user selects the OK button from the address book dialog. Then everything works like a charm BUT if the user selects Cancel from the address book dialog you get a PB error message Error calling external object function showaddressbook I am using the newest version of Redemption and I am using the RDOSession because I need to use the SaveAs function to save the created email as a .msg file and found using the SaveMailitem that this did not work. It would only save an empty email .msg file unless I used oleSafeMailItem.Item.SaveAs(filename,3) AND then you get the dreaded Outlook Security message popup. Session = Create OLEObject li_Return = Session .ConnectToNewObject( "Redemption.RDOSession" ) Session .Logon Msg = Session .GetDefaultFolder(4).Items.Add(0) Msg.Recipients.Add " ) Msg.Recipients.ResolveAll Msg.Subject = "Hello" Msg.Body = "Testing Applications" ab = Session .AddressBook recips = AB.ShowAddressBook(Msg.Recipients) /* This is the line that the error message is for BUT this does actually show the addressbook but if the user clicks cancel this line then reports the error and dies. I have debugged it and it is dying on this line. Msg.Recipients = Recips Any help would be greatly appreciated. Thanks- Hide quoted text - - Show quoted text - Unfortunately it is not my code causing the error but something internal to PB ... so maybe I am s**t out of luck! Do you have any ideas about the savemailitem.SaveAs issue ... why does this save a blank email msg but when I call savemailitem.item.saveas it saves the email msg but then I get the security warning? Thanks |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Redemption SafeMailItem.SaveAs is slow | RonWalters@gmail.com | Add-ins for Outlook | 5 | June 22nd 07 05:59 PM |
_MailItem - SaveAs | MON205 | Outlook - General Queries | 1 | February 22nd 07 06:01 PM |
_MailItem - SaveAs | MON205 | Add-ins for Outlook | 1 | February 22nd 07 06:01 PM |
Outlook freezes on Redemption SaveAs | charles.lanteigne@gmail.com | Add-ins for Outlook | 5 | April 27th 06 11:46 PM |
Outlook freezes on Redemption SaveAs | charles.lanteigne@gmail.com | Add-ins for Outlook | 0 | April 27th 06 04:30 PM |