A Microsoft Outlook email forum. Outlook Banter

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.

Go Back   Home » Outlook Banter forum » Microsoft Outlook Email Newsgroups » Add-ins for Outlook
Site Map Home Register Authors List Search Today's Posts Mark Forums Read Web Partners

BeforeItemMove fails with Exchange Shared Mailbox Calendar



 
 
Thread Tools Search this Thread Display Modes
  #1  
Old March 15th 09, 08:00 PM posted to microsoft.public.outlook.program_addins
Simon Francesco
external usenet poster
 
Posts: 2
Default BeforeItemMove fails with Exchange Shared Mailbox Calendar

I have successfully connected to and listened to the BeforeItemMove event on
a local (pst) calendar, but I cannot seem to get this event to fire for
shared calendars that I have open.
I am using Outlook 2007 connected to Exchange 2003.

All the code between the scenarios is the same except the code to resolve
and get the folder. Smippets below.
I have investiaged the more generic loss of scope of COM objects etc and
retain references to the folders to maintain their lifespan and as I said it
works in the local calendar but not shared calendars.
Could anyone shed some light on this for me?

TIA Simon

/// summary
/// Finds and resolves the requested folder, if found it attaches
/// to the BeforeItemMove event to listen for deletes etc
/// and adds the folder to the Application Level MonitoredFolders List
/// /summary
/// param name="folderToMonitor"Either the local name of the
Calendar or the
/// Recipients name in the case of an Exchange Mailbox/param
private void StartMonitoringCalendarFolder(String folderToMonitor)
{
var folder = GetFolder(folderToMonitor);
if (folder != null)
{
//StartListening for Deletes
folder.BeforeItemMove += folder_BeforeItemMove;
//Record that we are listening, and maintain ref to COM
objects
monitoredFolders.Add(folderToMonitor, new
FolderWrapper(folder));
}
}

/// summary
/// Finds and returns the requested folder, allows for
/// whether Outlook is using Exchange or not.
/// Returns null if not found.
/// /summary
/// param name="folderToMonitor"Either the local name of the
Calendar or the
/// Recipients name in the case of an Exchange Mailbox/param
/// returns/returns
private Outlook.Folder GetFolder(String folderName)
{
Outlook.Folder folder = null;
switch (this.Application.Session.ExchangeConnectionMode)
{
case
Microsoft.Office.Interop.Outlook.OlExchangeConnect ionMode.olNoExchange:
var currentFolder =
(Outlook.Folder)this.Application.Session.DefaultSt ore.GetRootFolder();
//Walk the folder tree and look for folder name
folder = FindFolder(folderName, currentFolder);
break;

default: //all other Exchange modes, TODO: we may run into
sync issues if Outlook is offline
Outlook.Recipient recourceMailBox =
this.Application.Session.CreateRecipient(folderNam e);
recourceMailBox.Resolve();
if (!recourceMailBox.Resolved)
{

System.Diagnostics.Trace.WriteLine(String.Format(" Folder Monitoring: Unable
to resolve folder: {0}", folderName));
return null;
}
folder =
(Outlook.Folder)this.Application.Session.GetShared DefaultFolder(recourceMailBox, Outlook.OlDefaultFolders.olFolderCalendar);
break;
}
if (folder == null)
{
System.Diagnostics.Trace.WriteLine(String.Format(" Folder
Monitoring: Unable to find folder: {0}", folderName));
}

return folder;

}

//Example call: StartMonitoringCalendarFolder("Bob Smith");

Ads
  #2  
Old March 16th 09, 02:10 PM posted to microsoft.public.outlook.program_addins
Ken Slovak - [MVP - Outlook]
external usenet poster
 
Posts: 5,848
Default BeforeItemMove fails with Exchange Shared Mailbox Calendar

The shared folders must be opened with the entire mailbox as part of the
Outlook profile. Then that would work.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"Simon Francesco" wrote in message
...
I have successfully connected to and listened to the BeforeItemMove event
on
a local (pst) calendar, but I cannot seem to get this event to fire for
shared calendars that I have open.
I am using Outlook 2007 connected to Exchange 2003.

All the code between the scenarios is the same except the code to resolve
and get the folder. Smippets below.
I have investiaged the more generic loss of scope of COM objects etc and
retain references to the folders to maintain their lifespan and as I said
it
works in the local calendar but not shared calendars.
Could anyone shed some light on this for me?

TIA Simon

/// summary
/// Finds and resolves the requested folder, if found it attaches
/// to the BeforeItemMove event to listen for deletes etc
/// and adds the folder to the Application Level MonitoredFolders
List
/// /summary
/// param name="folderToMonitor"Either the local name of the
Calendar or the
/// Recipients name in the case of an Exchange Mailbox/param
private void StartMonitoringCalendarFolder(String folderToMonitor)
{
var folder = GetFolder(folderToMonitor);
if (folder != null)
{
//StartListening for Deletes
folder.BeforeItemMove += folder_BeforeItemMove;
//Record that we are listening, and maintain ref to COM
objects
monitoredFolders.Add(folderToMonitor, new
FolderWrapper(folder));
}
}

/// summary
/// Finds and returns the requested folder, allows for
/// whether Outlook is using Exchange or not.
/// Returns null if not found.
/// /summary
/// param name="folderToMonitor"Either the local name of the
Calendar or the
/// Recipients name in the case of an Exchange Mailbox/param
/// returns/returns
private Outlook.Folder GetFolder(String folderName)
{
Outlook.Folder folder = null;
switch (this.Application.Session.ExchangeConnectionMode)
{
case
Microsoft.Office.Interop.Outlook.OlExchangeConnect ionMode.olNoExchange:
var currentFolder =
(Outlook.Folder)this.Application.Session.DefaultSt ore.GetRootFolder();
//Walk the folder tree and look for folder name
folder = FindFolder(folderName, currentFolder);
break;

default: //all other Exchange modes, TODO: we may run into
sync issues if Outlook is offline
Outlook.Recipient recourceMailBox =
this.Application.Session.CreateRecipient(folderNam e);
recourceMailBox.Resolve();
if (!recourceMailBox.Resolved)
{

System.Diagnostics.Trace.WriteLine(String.Format(" Folder Monitoring:
Unable
to resolve folder: {0}", folderName));
return null;
}
folder =
(Outlook.Folder)this.Application.Session.GetShared DefaultFolder(recourceMailBox,
Outlook.OlDefaultFolders.olFolderCalendar);
break;
}
if (folder == null)
{
System.Diagnostics.Trace.WriteLine(String.Format(" Folder
Monitoring: Unable to find folder: {0}", folderName));
}

return folder;

}

//Example call: StartMonitoringCalendarFolder("Bob Smith");


  #3  
Old March 17th 09, 01:11 AM posted to microsoft.public.outlook.program_addins
Simon Francesco
external usenet poster
 
Posts: 2
Default BeforeItemMove fails with Exchange Shared Mailbox Calendar

Hi Ken,
Thanks for your response.

I have taken your advice and had a look at this, and tried to add the other
mailboxes but it appears I can only have one open?

If I try to right click the root folder as one does, for opening multiple
data files, I only get an Open Other-Other User's Folder option and then I
have to specify if I want the calendar or inbox etc, and this has the same
net effect as opening a shared calendar. Am I missing something?


What I am trying to achieve is this.
Using Exchange 2003 and Outlook 2007, Many users in a company, a limited
number of shared calendars (implemented as Mailboxes) for scheduling events
that certain users have writeable permissions to.

User A opens their Outlook, and then opens the calendar view, chooses 'Open
A shard Calendar' and chooses the mailbox of the venues they want to review
and manage events for. These show using the nice side-by-side or overlaid
calendar views in Outlook.

REQUIREMENT:
That extra information beyond that of the appointment information is stored
in a database and kept in sync.
To this end we collect and stored extra info using a Form Region. This all
works nicely.
PROBLEM:
We can monitor for changes and creations using the Form Region, but we
cannot at this stage successfully monitor for deletes, either with the Form
Region closed or open.

The idea is that the additional calendars seamlessly form part of what the
user can see in their own profile.

Any thoughts.
Cheers Simon



  #4  
Old March 17th 09, 01:13 PM posted to microsoft.public.outlook.program_addins
Ken Slovak - [MVP - Outlook]
external usenet poster
 
Posts: 5,848
Default BeforeItemMove fails with Exchange Shared Mailbox Calendar

To add an additional mailbox you open the profile settings (I use the Mail
applet in the Control Panel when Outlook isn't running). You edit the
settings and select the More Settings button in the profile properties, then
on the Advanced tab you add the additional mailbox or mailboxes. I add
support, sales and webmaster mailboxes that way to my normal profile so I
get those as well as my own mailbox.

This can be done manually or by using a profile tool.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Professional Programming Outlook 2007.
Reminder Manager, Extended Reminders, Attachment Options.
http://www.slovaktech.com/products.htm


"Simon Francesco" wrote in message
...
Hi Ken,
Thanks for your response.

I have taken your advice and had a look at this, and tried to add the
other
mailboxes but it appears I can only have one open?

If I try to right click the root folder as one does, for opening multiple
data files, I only get an Open Other-Other User's Folder option and then
I
have to specify if I want the calendar or inbox etc, and this has the same
net effect as opening a shared calendar. Am I missing something?


What I am trying to achieve is this.
Using Exchange 2003 and Outlook 2007, Many users in a company, a limited
number of shared calendars (implemented as Mailboxes) for scheduling
events
that certain users have writeable permissions to.

User A opens their Outlook, and then opens the calendar view, chooses
'Open
A shard Calendar' and chooses the mailbox of the venues they want to
review
and manage events for. These show using the nice side-by-side or overlaid
calendar views in Outlook.

REQUIREMENT:
That extra information beyond that of the appointment information is
stored
in a database and kept in sync.
To this end we collect and stored extra info using a Form Region. This all
works nicely.
PROBLEM:
We can monitor for changes and creations using the Form Region, but we
cannot at this stage successfully monitor for deletes, either with the
Form
Region closed or open.

The idea is that the additional calendars seamlessly form part of what the
user can see in their own profile.

Any thoughts.
Cheers Simon




 




Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Shared Exch mailbox calendar responses also appearing in own mailb Drew Outlook - Calandaring 2 February 16th 09 07:08 PM
Copy calendar from PST to Exchange mailbox? Tom Outlook - Installation 2 December 17th 07 07:50 PM
Outlook 2007 via Exchange - Shared Mailbox demands Username/Passwo LMatth Outlook - Installation 1 October 17th 07 09:51 PM
MAPIFolder.FullFolderPath fails on shared mailbox folder until accessed by Outlook manually Jeff Outlook and VBA 1 October 2nd 06 03:45 PM
Exchange Mailbox server prohibit from sending when reach mailbox size limit Milly Staples [MVP - Outlook] Outlook - General Queries 1 February 24th 06 06:41 PM


All times are GMT +1. The time now is 09:29 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-2025 Outlook Banter.
The comments are property of their posters.