Outlook2003 -> OLE (MAPFolder->Display())

  • Thread starter friedemannkunze via OfficeKB.com
  • Start date
F

friedemannkunze via OfficeKB.com

Dear Members,
i've the problem with outlook 2003, that it does not terminate correctly if
the user is closing outlook normally.
The reason for this behaviour is, I get the outlook application object with
GetObject("Outlook.Application") and I try to show a specific folder from
outlook like calendar or tasks. After I call the method Folder->Dispplay I
release all used objects. But if then the user is closing outlook normally,
it switches into the windows systray-menue. There it's impossible for the
user to work with outlook - it's not possible to open it. The only way to
close outlook then, is to kill the process over the taskmanager.
I was able to limit the problem: The cause is to show a folder to the user.
Instead of using the method "Display",I've tried to use "Activate". But here
is the same problem as above.

Following, you can take a look at my sample script with which the problem can
be reproduced:
Option Explicit
Dim oOutlook
On Error Resume Next
Set oOutlook = GetObject(,"Outlook.Application")
If (Err.Number <> 0) Then
Set oOutlook = Nothing
WScript.Quit
End If
On Error GoTo 0
Dim oNameSpace
Set oNameSpace = oOutlook.GetNameSpace("MAPI")
Dim oFolder
Set oFolder = oNameSpace.GetDefaultFolder(9)
oFolder.Display
Set oFolder = Nothing
Set oNameSpace = Nothing
Set oOutlook = Nothing

I thank you for your help.

Additional information:
The problem is not reprocueable with outlook 2002 and sample script above.
 
F

friedemannkunze via OfficeKB.com

Hallo,

i found a solution for that problem respective an MS MVP shows me the
possible workaround.
He said:
Well, if your code is only running when Outlook has already been started you could set the folder to the >folder for the ActiveExplorer. That won't open any additional Explorer objects.
Set oOutlook.ActiveExplorer.CurrentFolder = oFolder

And this works fine! Thanks a lot again!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top