Outlook Banter

Outlook Banter (http://www.outlookbanter.com/)
-   Add-ins for Outlook (http://www.outlookbanter.com/add-ins-outlook/)
-   -   BeforeFolderMove Event (http://www.outlookbanter.com/add-ins-outlook/78916-beforefoldermove-event.html)

Juuso September 19th 08 10:58 AM

BeforeFolderMove Event
 
Hi,

I'm using VS2008 & Outlook 2007. My application tries to watch Outlook
folders, their additions, renames, moves and deletions.

I have a wrapper class for a folder that has class level variables for
folder (Outlook.Folder) and it's subfolders (Outlook.Folders). When this
class is initialized, these variables are set and events attached (see below
my code). In ThisAddin_Startup "watched" folder and it's subfolders are
iterated, wrapper classes created and added to a class level hashtable.

The problem is, BeforeFolderMove for a folder in my wrapper class fires only
occasionally, but folder addition and change always do. This shouldn't be a
scope issue, as the two other events do fire. Or what's happening?

Thanks for any help.

....
private Outlook.Folders _folders;
private Outlook.Folder _folder;

public DFolder(Outlook.MAPIFolder folder)
{
// Set folder variables
_folder = folder as Outlook.Folder;
_folders = folder.Folders;

// Setup events
_folder.BeforeFolderMove += new
Outlook.MAPIFolderEvents_12_BeforeFolderMoveEventH andler(folder_BeforeFolderMove);
_folders.FolderChange += new
Outlook.FoldersEvents_FolderChangeEventHandler(fol der_FolderChange);
_folders.FolderAdd += new
Outlook.FoldersEvents_FolderAddEventHandler(folder _FolderAdd);
}


Dmitry Streblechenko September 19th 08 06:25 PM

BeforeFolderMove Event
 
_folder and _folders variables must be declared on the class level. In your
case they are local variables; as soon as the GC releases them, no events
will be fired.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
"Juuso" wrote in message
...
Hi,

I'm using VS2008 & Outlook 2007. My application tries to watch Outlook
folders, their additions, renames, moves and deletions.

I have a wrapper class for a folder that has class level variables for
folder (Outlook.Folder) and it's subfolders (Outlook.Folders). When this
class is initialized, these variables are set and events attached (see
below
my code). In ThisAddin_Startup "watched" folder and it's subfolders are
iterated, wrapper classes created and added to a class level hashtable.

The problem is, BeforeFolderMove for a folder in my wrapper class fires
only
occasionally, but folder addition and change always do. This shouldn't be
a
scope issue, as the two other events do fire. Or what's happening?

Thanks for any help.

...
private Outlook.Folders _folders;
private Outlook.Folder _folder;

public DFolder(Outlook.MAPIFolder folder)
{
// Set folder variables
_folder = folder as Outlook.Folder;
_folders = folder.Folders;

// Setup events
_folder.BeforeFolderMove += new
Outlook.MAPIFolderEvents_12_BeforeFolderMoveEventH andler(folder_BeforeFolderMove);
_folders.FolderChange += new
Outlook.FoldersEvents_FolderChangeEventHandler(fol der_FolderChange);
_folders.FolderAdd += new
Outlook.FoldersEvents_FolderAddEventHandler(folder _FolderAdd);
}




Juuso September 19th 08 07:03 PM

BeforeFolderMove Event
 
Hi Dmitry,

those variables are on the class level and FolderChange and FolderAdd events
do always fire. The problem is only with the BeforeFolderMove event, that
might or might not fire.


"Dmitry Streblechenko" wrote:

_folder and _folders variables must be declared on the class level. In your
case they are local variables; as soon as the GC releases them, no events
will be fired.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
"Juuso" wrote in message
...
Hi,

I'm using VS2008 & Outlook 2007. My application tries to watch Outlook
folders, their additions, renames, moves and deletions.

I have a wrapper class for a folder that has class level variables for
folder (Outlook.Folder) and it's subfolders (Outlook.Folders). When this
class is initialized, these variables are set and events attached (see
below
my code). In ThisAddin_Startup "watched" folder and it's subfolders are
iterated, wrapper classes created and added to a class level hashtable.

The problem is, BeforeFolderMove for a folder in my wrapper class fires
only
occasionally, but folder addition and change always do. This shouldn't be
a
scope issue, as the two other events do fire. Or what's happening?

Thanks for any help.

...
private Outlook.Folders _folders;
private Outlook.Folder _folder;

public DFolder(Outlook.MAPIFolder folder)
{
// Set folder variables
_folder = folder as Outlook.Folder;
_folders = folder.Folders;

// Setup events
_folder.BeforeFolderMove += new
Outlook.MAPIFolderEvents_12_BeforeFolderMoveEventH andler(folder_BeforeFolderMove);
_folders.FolderChange += new
Outlook.FoldersEvents_FolderChangeEventHandler(fol der_FolderChange);
_folders.FolderAdd += new
Outlook.FoldersEvents_FolderAddEventHandler(folder _FolderAdd);
}





Dmitry Streblechenko September 19th 08 10:30 PM

BeforeFolderMove Event
 
Oops, sorry, I don't know where I was looking :-)
I have heard of problems with BeforeFolderMove (which I personally do not
use) - BeforeFolderMove, unlike FolderChange and FolderAdd events, is a pure
UI event and has no MAPI counterpart. I bet not all codepaths in Outlook
call that event.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
"Juuso" wrote in message
...
Hi Dmitry,

those variables are on the class level and FolderChange and FolderAdd
events
do always fire. The problem is only with the BeforeFolderMove event, that
might or might not fire.


"Dmitry Streblechenko" wrote:

_folder and _folders variables must be declared on the class level. In
your
case they are local variables; as soon as the GC releases them, no events
will be fired.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
"Juuso" wrote in message
...
Hi,

I'm using VS2008 & Outlook 2007. My application tries to watch Outlook
folders, their additions, renames, moves and deletions.

I have a wrapper class for a folder that has class level variables for
folder (Outlook.Folder) and it's subfolders (Outlook.Folders). When
this
class is initialized, these variables are set and events attached (see
below
my code). In ThisAddin_Startup "watched" folder and it's subfolders are
iterated, wrapper classes created and added to a class level hashtable.

The problem is, BeforeFolderMove for a folder in my wrapper class fires
only
occasionally, but folder addition and change always do. This shouldn't
be
a
scope issue, as the two other events do fire. Or what's happening?

Thanks for any help.

...
private Outlook.Folders _folders;
private Outlook.Folder _folder;

public DFolder(Outlook.MAPIFolder folder)
{
// Set folder variables
_folder = folder as Outlook.Folder;
_folders = folder.Folders;

// Setup events
_folder.BeforeFolderMove += new
Outlook.MAPIFolderEvents_12_BeforeFolderMoveEventH andler(folder_BeforeFolderMove);
_folders.FolderChange += new
Outlook.FoldersEvents_FolderChangeEventHandler(fol der_FolderChange);
_folders.FolderAdd += new
Outlook.FoldersEvents_FolderAddEventHandler(folder _FolderAdd);
}







Juuso September 20th 08 10:27 AM

BeforeFolderMove Event
 
Maybe it has something to do with Outlook's internal GC? If I setup a
"watched" folder with BeforeFolderMove event and cancel parameter set to
true, and then trying hit the delete, a few times the event is fired and the
folder is not removed. However, after a while (after GC?) the folder will be
removed because BeforeFolderMove didn't fire.

Fortunately I can use Redemption events for what I need ;)

Thanks!


"Dmitry Streblechenko" wrote:

Oops, sorry, I don't know where I was looking :-)
I have heard of problems with BeforeFolderMove (which I personally do not
use) - BeforeFolderMove, unlike FolderChange and FolderAdd events, is a pure
UI event and has no MAPI counterpart. I bet not all codepaths in Outlook
call that event.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
"Juuso" wrote in message
...
Hi Dmitry,

those variables are on the class level and FolderChange and FolderAdd
events
do always fire. The problem is only with the BeforeFolderMove event, that
might or might not fire.


"Dmitry Streblechenko" wrote:

_folder and _folders variables must be declared on the class level. In
your
case they are local variables; as soon as the GC releases them, no events
will be fired.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
"Juuso" wrote in message
...
Hi,

I'm using VS2008 & Outlook 2007. My application tries to watch Outlook
folders, their additions, renames, moves and deletions.

I have a wrapper class for a folder that has class level variables for
folder (Outlook.Folder) and it's subfolders (Outlook.Folders). When
this
class is initialized, these variables are set and events attached (see
below
my code). In ThisAddin_Startup "watched" folder and it's subfolders are
iterated, wrapper classes created and added to a class level hashtable.

The problem is, BeforeFolderMove for a folder in my wrapper class fires
only
occasionally, but folder addition and change always do. This shouldn't
be
a
scope issue, as the two other events do fire. Or what's happening?

Thanks for any help.

...
private Outlook.Folders _folders;
private Outlook.Folder _folder;

public DFolder(Outlook.MAPIFolder folder)
{
// Set folder variables
_folder = folder as Outlook.Folder;
_folders = folder.Folders;

// Setup events
_folder.BeforeFolderMove += new
Outlook.MAPIFolderEvents_12_BeforeFolderMoveEventH andler(folder_BeforeFolderMove);
_folders.FolderChange += new
Outlook.FoldersEvents_FolderChangeEventHandler(fol der_FolderChange);
_folders.FolderAdd += new
Outlook.FoldersEvents_FolderAddEventHandler(folder _FolderAdd);
}








Dmitry Streblechenko September 24th 08 01:02 AM

BeforeFolderMove Event
 
Hard to say.. Are o usur your obejcts do not get released?
Keep in mind that Redemption won't help you with BeforeFolderMove -
Redemption wraps MAPI events, which firte asynchonously after the action
takes place. BeforeFolderMove is fired by Outlook *before* the folder is
deleted.
--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
"Juuso" wrote in message
...
Maybe it has something to do with Outlook's internal GC? If I setup a
"watched" folder with BeforeFolderMove event and cancel parameter set to
true, and then trying hit the delete, a few times the event is fired and
the
folder is not removed. However, after a while (after GC?) the folder will
be
removed because BeforeFolderMove didn't fire.

Fortunately I can use Redemption events for what I need ;)

Thanks!


"Dmitry Streblechenko" wrote:

Oops, sorry, I don't know where I was looking :-)
I have heard of problems with BeforeFolderMove (which I personally do
not
use) - BeforeFolderMove, unlike FolderChange and FolderAdd events, is a
pure
UI event and has no MAPI counterpart. I bet not all codepaths in Outlook
call that event.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
"Juuso" wrote in message
...
Hi Dmitry,

those variables are on the class level and FolderChange and FolderAdd
events
do always fire. The problem is only with the BeforeFolderMove event,
that
might or might not fire.


"Dmitry Streblechenko" wrote:

_folder and _folders variables must be declared on the class level. In
your
case they are local variables; as soon as the GC releases them, no
events
will be fired.

--
Dmitry Streblechenko (MVP)
http://www.dimastr.com/
OutlookSpy - Outlook, CDO
and MAPI Developer Tool
-
"Juuso" wrote in message
...
Hi,

I'm using VS2008 & Outlook 2007. My application tries to watch
Outlook
folders, their additions, renames, moves and deletions.

I have a wrapper class for a folder that has class level variables
for
folder (Outlook.Folder) and it's subfolders (Outlook.Folders). When
this
class is initialized, these variables are set and events attached
(see
below
my code). In ThisAddin_Startup "watched" folder and it's subfolders
are
iterated, wrapper classes created and added to a class level
hashtable.

The problem is, BeforeFolderMove for a folder in my wrapper class
fires
only
occasionally, but folder addition and change always do. This
shouldn't
be
a
scope issue, as the two other events do fire. Or what's happening?

Thanks for any help.

...
private Outlook.Folders _folders;
private Outlook.Folder _folder;

public DFolder(Outlook.MAPIFolder folder)
{
// Set folder variables
_folder = folder as Outlook.Folder;
_folders = folder.Folders;

// Setup events
_folder.BeforeFolderMove += new
Outlook.MAPIFolderEvents_12_BeforeFolderMoveEventH andler(folder_BeforeFolderMove);
_folders.FolderChange += new
Outlook.FoldersEvents_FolderChangeEventHandler(fol der_FolderChange);
_folders.FolderAdd += new
Outlook.FoldersEvents_FolderAddEventHandler(folder _FolderAdd);
}











All times are GMT +1. The time now is 12:29 PM.

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