Thanks for that. It works fine the first time but calling the code second
time gives the following error;
Unhandled Exception: System.Reflection.TargetInvocationException: Exception
has been thrown by the target of an invocation. --->
System.Runtime.InteropServices.InvalidComObjectExc eption: COM object that
has been separated from its underlying RCW can not be used.
at Outlook.ApplicationEvents_EventProvider..ctor(Obje ct )
I am using the below code and the error comes on the 'OutlookApp = New
Outlook.Application' line. Any ideas what I am missing?
Thanks
Regards
= Code below =======================
Imports System.Runtime.InteropServices
Public Class clsOfficeWrapper
Private WithEvents OutlookApp As Outlook.Application
Private WithEvents em As Outlook.MailItem
Public Sub NewEmail(ByVal EmailTemplate As String, ByVal SendTo As String)
Dim ns As Outlook.NameSpace
OutlookApp = New Outlook.Application ' <=== This lines give the
exception second time round
ns = OutlookApp.GetNamespace("MAPI")
ns.Logon()
em = DirectCast(OutlookApp.CreateItemFromTemplate(Email Template),
Outlook.MailItem)
.To = SendTo
.Display(False)
Marshal.ReleaseComObject(em)
ns.Logoff()
Marshal.ReleaseComObject(ns)
Marshal.ReleaseComObject(OutlookApp)
End Sub
....
End Class
"Jay B. Harlow [MVP - Outlook]" <Jay_Harlow_MVP@msn.com> wrote in message
news:%23HSCBpy6DHA.3860@tk2msftngp13.phx.gbl...[color=blue]
> John,
> How does that saying go: Give a man a fish he eats for a day, teach a man[/color]
to[color=blue]
> fix he eats for live? :-)
>
> The Access example should show you enough of the Concept of working with
> Office Automation & ReleaseComObject when combined with the Outlook VBA[/color]
Help[color=blue]
> you should be able to create a working example! As I find VB6 & VBA[/color]
examples[color=blue]
> come are translated almost 1 for 1, the few exceptions to the rule I find
> are easy to remember.
>[color=green]
> > but no luck and same error. Isn't there an outlook example around,[/color]
> creating[color=green]
> > a new email then display and then cleanup?[/color]
> Unfortunately I am not setup to test Outlook 2000 automation with .NET.
> However! others have used Outlook 2000 from VB.NET with success, have you
> reviewed the info at:
>
>
http://www.microeye.com/resources/res_outlookvsnet.htm
>
> There is at least one article that specifically deals specifically with
> Outlook 2000!
>
> Here is an example of "creating a new email, then display, and then
> cleanup":
>
> Imports System.Runtime.InteropServices
> Dim app As New Outlook.Application
> Dim ns As Outlook.NameSpace
> ns = app.GetNamespace("MAPI")
> ns.Logon()
> Dim mailItem As Outlook.MailItem
> mailItem =[/color]
DirectCast(app.CreateItem(Outlook.OlItemType.olMai lItem),[color=blue]
> Outlook.MailItem)
> mailItem.Display(False)
>
> Marshal.ReleaseComObject(mailItem)
> ns.Logoff()
> Marshal.ReleaseComObject(ns)
> Marshal.ReleaseComObject(app)
> Return
>
> I am checking with my fellow Outlook MVPs on why mailItem.Display(True)
> leaves the window on the screen.
>
> Hope this helps
> Jay
>
>
> "John" <john@nospam.infovis.co.uk> wrote in message
> news:%239lwmVs6DHA.3860@tk2msftngp13.phx.gbl...[color=green]
> > Hi
> >
> > Not sure how to relate the access example with outlook. Tried to mimic[/color][/color]
it[color=blue][color=green]
> > but no luck and same error. Isn't there an outlook example around,[/color]
> creating[color=green]
> > a new email then display and then cleanup?
> >
> > Regards
> >
> > "Jay B. Harlow [MVP - Outlook]" <Jay_Harlow_MVP@msn.com> wrote in[/color][/color]
message[color=blue][color=green]
> > news:uOP7SFo6DHA.2168@TK2MSFTNGP12.phx.gbl...[color=darkred]
> > > John,
> > > Did you try searching MSDN for ReleaseComObject?
> > >
> > > The first link returned looks like a promising example:
> > >
> > >[/color]
> >[/color]
>[/color]
http://msdn.microsoft.com/library/de...omateVBNet.asp[color=blue][color=green][color=darkred]
> > >
> > > The second link is the documentation for the function:
> > >
> > >[/color]
> >[/color]
>[/color]
http://msdn.microsoft.com/library/de...bjecttopic.asp[color=blue][color=green][color=darkred]
> > >
> > > Hope this helps
> > > Jay
> > >
> > >
> > > "John" <john@nospam.infovis.co.uk> wrote in message
> > > news:OtDxYyn6DHA.3704@tk2msftngp13.phx.gbl...
> > > > I am using display to allow user to enter the email and then press[/color][/color]
> send[color=green][color=darkred]
> > > > button to send it. I am not using
> > > > System.Runtime.InteropServices.Marshal.ReelaseComO bject. Is there an
> > > example
> > > > I can see on how to use it?
> > > >
> > > > Thanks
> > > >
> > > > Regards
> > > >
> > > > "Jay B. Harlow [MVP - Outlook]" <Jay_Harlow_MVP@msn.com> wrote in[/color]
> > message[color=darkred]
> > > > news:OP7ek922DHA.2700@tk2msftngp13.phx.gbl...
> > > > > John,
> > > > > Are you starting Outlook fresh or is it already running? When[/color][/color]
> Outlook[color=green]
> > is[color=darkred]
> > > > > already running does the same thing happen?
> > > > >
> > > > > Does this happen "right away" or after using Outlook from VB.NET[/color][/color][/color]
for[color=blue][color=green][color=darkred]
> > > > awhile?
> > > > >
> > > > > Are you using[/color][/color]
> System.Runtime.InteropServices.Marshal.ReelaseComO bject[color=green]
> > on[color=darkred]
> > > > > each Outlook object returned, when you are done with that object?
> > > > >
> > > > > Are you calling Item.Display to show an item or just connecting[/color][/color][/color]
and[color=blue][color=green][color=darkred]
> > > > > retrieving & updating information? Does this "slowness" happen[/color][/color][/color]
with[color=blue][color=green][color=darkred]
> > > > specific
> > > > > Outlook objects & methods?
> > > > >
> > > > > Do you have other things running on your computer?
> > > > >
> > > > > Which version of the OS?
> > > > >
> > > > > Are you using Exchange Server or internet mode?
> > > > >
> > > > > Are you getting the "security dialog" that states that someone is
> > > > accessing
> > > > > your email? And just not seeing it in time?
> > > > >
> > > > >
> > > > > In case you don't have it, the following site provides a plethora[/color][/color][/color]
of[color=blue][color=green][color=darkred]
> > > > > articles on using Outlook from .NET:
> > > > >
http://www.microeye.com/resources/res_outlookvsnet.htm
> > > > >
> > > > > Using Outlook 2003 with VB.NET & the Office 2003 PIA I have not[/color]
> > noticed[color=darkred]
> > > > > Outlook being slow to appear.
> > > > >
> > > > > Unfortunately I don't have a machine with either office 2000 or[/color][/color]
> Office[color=green][color=darkred]
> > > XP.
> > > > >
> > > > > Hope this helps
> > > > > Jay
> > > > >
> > > > > "John" <john@nospam.infovis.co.uk> wrote in message
> > > > > news:%23M2n2812DHA.2888@tk2msftngp13.phx.gbl...
> > > > > > Hi
> > > > > >
> > > > > > When I open a new outlook email from vb.net, sometimes outlook[/color][/color][/color]
is[color=blue][color=green][color=darkred]
> > > very
> > > > > slow
> > > > > > to appear or occasionally outlook freezes completely. I am[/color][/color]
> targeting[color=green][color=darkred]
> > > > mixed
> > > > > > office2000/xp environments so I am using the office2000 interop[/color][/color]
> dlls[color=green][color=darkred]
> > > > > > generated by vs.net by adding office 2000 com reference.
> > > > > >
> > > > > > Any one else noticed this problem when targeting office2000/xp[/color][/color]
> mixed[color=green][color=darkred]
> > > > > > environments? Is there a better, more robust way to do this? Am[/color][/color][/color]
I[color=blue][color=green][color=darkred]
> > > better
> > > > > off
> > > > > > using late binding?
> > > > > >
> > > > > > Thanks
> > > > > >
> > > > > > Regards
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >[/color]
> >
> >[/color]
>
>[/color]