Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Add-ins for Outlook (http://www.outlookbanter.com/add-ins-outlook/)
-   -   Where is the bug ? (http://www.outlookbanter.com/add-ins-outlook/73241-where-bug.html)

af2604 June 8th 08 06:37 PM

Where is the bug ?
 
I'm trying to develop an addin for OutLook 2007 using Visual Studio 2008
Visual Basic.

In my outlook 2007 I have 2 accounts:

this is using the OUTLOOK.PST file
using : OUTLOOK.xxx.yyy.0000001.PST file

I'm trying this simple code :

ColStores = Me.Application.Session.Stores
Debug.Print("+---- start ----------------------------------------")
Debug.Print("| stores count =" + ColStores.Count.ToString)
Debug.Print("+---------------------------------------------------")
For i = 1 To ColStores.Count
FilePathName = ColStores(i).GetRootFolder.Store.FilePath
Debug.Print("| i =" + i.ToString + " " + FilePathName)
Next
Debug.Print("+---- end -------------------------------------------")

this is the output

+---- start ----------------------------------------
| stores count =2
+---------------------------------------------------
| i =1 C:\Documents and Settings\...\Microsoft\Outlook\Outlook.pst
| i =2
+---- end -------------------------------------------

FilePathName for i = 2 is set to nothing

the stores count : 2 is correct but why there is not the path and file
name of the PST file used by the IMAP account ?

Thanks a lot

Alberto


Dmitry Streblechenko June 8th 08 07:23 PM

Where is the bug ?
 
The bug is in Outlook.
plugRedemption, on the other hand, will work correctly.And not not just in
Outlook 2007:

skPstAnsi = 1
skPstUnicode = 2
skPrimaryExchangeMailbox = 3
skDelegateExchangeMailbox = 4
skPublicFolders = 5
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Me.Application.Session.MAPIOBJECT
for each Store in Session.Stores
if (Store.StoreKind = skPstAnsi) or (Store.StoreKind = skPstUnicode) Then
Debug.Print Store.PstPath
ElseIf (Store.StoreKind = skPrimaryExchangeMailbox) or (Store.StoreKind =
skDelegateExchangeMailbox) or (Store.StoreKind = skPublicFolders) Then
Debug.Print Store.ServerDN
End If
next

/plug

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
"af2604" wrote in message
...
I'm trying to develop an addin for OutLook 2007 using Visual Studio 2008
Visual Basic.

In my outlook 2007 I have 2 accounts:

this is using the OUTLOOK.PST file
using : OUTLOOK.xxx.yyy.0000001.PST file

I'm trying this simple code :

ColStores = Me.Application.Session.Stores
Debug.Print("+---- start ----------------------------------------")
Debug.Print("| stores count =" + ColStores.Count.ToString)
Debug.Print("+---------------------------------------------------")
For i = 1 To ColStores.Count
FilePathName = ColStores(i).GetRootFolder.Store.FilePath
Debug.Print("| i =" + i.ToString + " " + FilePathName)
Next
Debug.Print("+---- end -------------------------------------------")

this is the output

+---- start ----------------------------------------
| stores count =2
+---------------------------------------------------
| i =1 C:\Documents and Settings\...\Microsoft\Outlook\Outlook.pst
| i =2
+---- end -------------------------------------------

FilePathName for i = 2 is set to nothing

the stores count : 2 is correct but why there is not the path and file
name of the PST file used by the IMAP account ?

Thanks a lot

Alberto




af2604 June 9th 08 12:53 PM

Where is the bug ?
 
Ok, thank you, is this the only solution ?

Dmitry Streblechenko ha scritto:
The bug is in Outlook.
plugRedemption, on the other hand, will work correctly.And not not just in
Outlook 2007:

skPstAnsi = 1
skPstUnicode = 2
skPrimaryExchangeMailbox = 3
skDelegateExchangeMailbox = 4
skPublicFolders = 5
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Me.Application.Session.MAPIOBJECT
for each Store in Session.Stores
if (Store.StoreKind = skPstAnsi) or (Store.StoreKind = skPstUnicode) Then
Debug.Print Store.PstPath
ElseIf (Store.StoreKind = skPrimaryExchangeMailbox) or (Store.StoreKind =
skDelegateExchangeMailbox) or (Store.StoreKind = skPublicFolders) Then
Debug.Print Store.ServerDN
End If
next

/plug


Dmitry Streblechenko June 9th 08 06:40 PM

Where is the bug ?
 
You could also use Extedned MAPI in C++ or Delphi to read the path from the
profile data section.
Note that the full path to the PST file is embedded in the store entry id
(in OutlookSpy, click go to an IMAP store, click IMsgStore, select
PR_STORE_ENTRYID property, click the button next to the Value edit box). You
could hack it, but the entry id format is not documented and is subject to
change in any version.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
"af2604" wrote in message
...
Ok, thank you, is this the only solution ?

Dmitry Streblechenko ha scritto:
The bug is in Outlook.
plugRedemption, on the other hand, will work correctly.And not not just
in Outlook 2007:

skPstAnsi = 1
skPstUnicode = 2
skPrimaryExchangeMailbox = 3
skDelegateExchangeMailbox = 4
skPublicFolders = 5
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Me.Application.Session.MAPIOBJECT
for each Store in Session.Stores
if (Store.StoreKind = skPstAnsi) or (Store.StoreKind = skPstUnicode)
Then
Debug.Print Store.PstPath
ElseIf (Store.StoreKind = skPrimaryExchangeMailbox) or (Store.StoreKind
= skDelegateExchangeMailbox) or (Store.StoreKind = skPublicFolders) Then
Debug.Print Store.ServerDN
End If
next

/plug




af2604 June 9th 08 09:18 PM

Where is the bug ?
 
Dmitry Streblechenko ha scritto:
..... You
could hack it, but the entry id format is not documented and is subject to
change in any version.


Thank you very very much... this is simply GREAT


All times are GMT +1. The time now is 07:02 AM.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 2.4.0
Copyright ©2004-2006 OutlookBanter.com