Outlook 2003 VB6 Add-In: Loop folders in AddinInstance_OnConnectio

J

jochen

Hello out there,

my first VB6-add-in for Outlook 2003 does not work on all machines. If other
add-ins are loaded, it sometimes failes with an error "Client process could
not be completed".
The error occurs when in AddinInstance_OnConnection my add-in looks for a
certain folder.

Dim oStores As Outlook.Folders
Dim oFolder As Outlook.MAPIFolder
Dim oSubFolder As Outlook.MAPIFolder
Dim sMyEntryID As String

Set oStores = oMyOLNameSpace.Folders
For Each oFolder In oStores
For Each oSubFolder In oFolder.Folders
If oSubFolder.Name = "NeedThis" Then
sMyEntryID = oSubFolder.EntryID
End If
Next oSubFolder
Next oFolder

Is there anything wrong with looping through Outlook folders in
AddinInstance_OnConnection? Is this bad practice?
Thanks for your advice!
Jochen
 
J

jochen

This is a readable version of the procedure which sometimes showing error
"Client process could not be completed".

Meanwhile I have a better version of the add-in using Redemption's
GetSharedDefaultFolder-method. Nevertheless I'd like to know if my former
looping the folders in AddinInstance event is bad design? Maybe not all
Exchange folders are ready at this moment?
In this procedure I try to get the StoreIDs and EntryIDs of the user's
Sent-Item-folders (own plus delegate mailboxes).
The error occurs when trying to get the EntryID of an Exchange folder
(probably a Calendar). I do have sufficient rights and the error still
happens with some users only, not always and with all users.

Thanks for your advice!

Regards,
Jochen

-----------
Private Type UserSentFolder
UserName As String
FolderID As String
StoreID As String
End Type

Private Sub AddinInstance_OnConnection(ByVal Application As Object, _
ByVal ConnectMode As AddInDesignerObjects.ext_ConnectMode, _
ByVal AddInInst As Object, custom() As Variant)


Dim oOLNameSpace As Outlook.NameSpace
Dim oStores As Outlook.Folders
Dim oFolder As Outlook.MAPIFolder
Dim oSubFolder As Outlook.MAPIFolder
Dim j As Long
Dim sTempUserName As String
Dim sTempFolderName As String


Set oOLNameSpace = Application.GetNamespace("MAPI")
Set oStores = oOLNameSpace.Folders

For Each oFolder In oStores
sTempUserName = oFolder.Name
sTempUserName = Mid$(sTempUserName, 12) 'Text behind "Mailbox - "
'(in German "Postfach - ")
For Each oSubFolder In oFolder.Folders
sTempFolderName = oSubFolder.Name
If (sTempFolderName = "Gesendete Elemente") Or _
(sTempFolderName = "Gesendete Objekte") Then
With m_udtUserSentFolders(j)
.UserName = sTempUserName
.FolderID = oSubFolder.EntryID '!!!Error occurs here
.StoreID = oSubFolder.StoreID
End With
j = j + 1
End If
Next oSubFolder
Next oFolder

End Sub
 

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