Subscribing New folder event

Discussion in 'Microsoft Outlook Form Programming' started by WLAN, Jan 10, 2009.

  1. WLAN

    WLAN Guest

    Hello,

    I have a requirement where i need to hook / subscribe new folder add event.
    When user creates a new folder by clicking and say 'New folder', i want to do
    some custom actions.

    How do I implement this problem? Basically i need to handle folderadd event.
    Which folder object i need to subscribe???
     
    WLAN, Jan 10, 2009
    #1
    1. Advertisements

  2. WLAN

    WLAN Guest

    I want to handle folder add event in the following cases:

    User can create folder under any root folder, sub folder or sub sub folders.
    So if subscribe namespace.folders.folderadd, Will it trigger for sub folder
    or sub sub folder of that collection.

    How do I handle this situation?

    I need to handle folderadd event when user says 'New Folder'. The new folder
    can be under root folder or can be under Inbox or can under Drafts or can be
    under Inbox\MyMails.




    "Ken Slovak - [MVP - Outlook]" wrote:

    > NameSpace.Folders.FolderAdd
    >
    > --
    > 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
    >
    >
    > "WLAN" <> wrote in message
    > news:...
    > >
    > > Hello,
    > >
    > > I have a requirement where i need to hook / subscribe new folder add
    > > event.
    > > When user creates a new folder by clicking and say 'New folder', i want to
    > > do
    > > some custom actions.
    > >
    > > How do I implement this problem? Basically i need to handle folderadd
    > > event.
    > > Which folder object i need to subscribe???
    > >
    > >

    >
    >
     
    WLAN, Jan 11, 2009
    #2
    1. Advertisements

  3. NameSpace.Folders will be a collection of all the stores you have open (PST
    files, Exchange maiboxes and Exchange public folders). Add a new store and
    NameSpace.Folders.FolderAdd will fire.

    Assuming you have only 1 store open, say a PST file, then to get a new
    folder added at the top level just under Personal Folders you'd use this:

    NameSpace.Folders.Item(1).Folders.FolderAdd

    That would only handle adding a top level folder.

    To get a new folder added under Inbox (as an example) you have to get Inbox
    and its Folders collection and subscribe to FolderAdd for that collection.
    Another handler would have to handle FolderAdd for subfolders of Calendar,
    etc.

    FolderAdd will only fire for that specific Folders collection, not any
    Folders collection anywhere. So to do exactly what you want you'd need to
    instantiate an object for every existing folder in the store and handle the
    FolderAdd event for every one of those folder's Folders collection. It can't
    be handled with just one universal event handler.

    --
    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


    "WLAN" <> wrote in message
    news:D...
    >I want to handle folder add event in the following cases:
    >
    > User can create folder under any root folder, sub folder or sub sub
    > folders.
    > So if subscribe namespace.folders.folderadd, Will it trigger for sub
    > folder
    > or sub sub folder of that collection.
    >
    > How do I handle this situation?
    >
    > I need to handle folderadd event when user says 'New Folder'. The new
    > folder
    > can be under root folder or can be under Inbox or can under Drafts or can
    > be
    > under Inbox\MyMails.
     
    Ken Slovak - [MVP - Outlook], Jan 12, 2009
    #3
  4. WLAN

    WLAN Guest

    Hi Ken,

    Thanks for the reply.

    But which event do i need to handle for subscribing folderadd event? now I'm
    subscribing folders.folderadd in the below events:


    this.m_activeExplorer =
    (Outlook11.Explorer)this.applicationObject.ActiveExplorer();
    if (this.m_activeExplorer != null)//subscribe folder switch
    event handler
    {
    this.m_currentFolderCollection =
    (Outlook11.Folders)this.m_activeExplorer.CurrentFolder.Folders;
    if (this.m_currentFolderCollection != null)
    {
    this.m_currentFolderCollection.FolderAdd +=new
    Microsoft.Office.Interop.Outlook.FoldersEvents_FolderAddEventHandler(m_currentFolderCollection_FolderAdd);
    }

    //folder switch
    this.m_activeExplorer.FolderSwitch += new
    Outlook11.ExplorerEvents_10_FolderSwitchEventHandler(exp_FolderSwitch);
    }

    private void exp_FolderSwitch()
    {
    //get current active explorer
    if (this.m_activeExplorer != null)
    {
    //if any previously selected folder exists
    if(this.m_currentFolderCollection != null)
    this.m_currentFolderCollection.FolderAdd -= new
    Microsoft.Office.Interop.Outlook.FoldersEvents_FolderAddEventHandler(m_currentFolderCollection_FolderAdd);

    this.m_currentFolderCollection =
    (Outlook11.Folders)this.m_activeExplorer.CurrentFolder.Folders;
    if (this.m_currentFolderCollection != null)
    {
    this.m_currentFolderCollection.FolderAdd += new
    Microsoft.Office.Interop.Outlook.FoldersEvents_FolderAddEventHandler(m_currentFolderCollection_FolderAdd);
    }

    But I'm facing issues in Outlook 2007. In outlook 2007, user can right click
    without selecting a node in tree view. So I will not get the correct folder.

    Also the new folder can be changed using PickFolder dialog displayed while
    specifying a new folder name.

    Which event handler do I need to use for subscribing Folders.FolderAdd event?

    Thanks
    "Ken Slovak - [MVP - Outlook]" wrote:

    > NameSpace.Folders will be a collection of all the stores you have open (PST
    > files, Exchange maiboxes and Exchange public folders). Add a new store and
    > NameSpace.Folders.FolderAdd will fire.
    >
    > Assuming you have only 1 store open, say a PST file, then to get a new
    > folder added at the top level just under Personal Folders you'd use this:
    >
    > NameSpace.Folders.Item(1).Folders.FolderAdd
    >
    > That would only handle adding a top level folder.
    >
    > To get a new folder added under Inbox (as an example) you have to get Inbox
    > and its Folders collection and subscribe to FolderAdd for that collection.
    > Another handler would have to handle FolderAdd for subfolders of Calendar,
    > etc.
    >
    > FolderAdd will only fire for that specific Folders collection, not any
    > Folders collection anywhere. So to do exactly what you want you'd need to
    > instantiate an object for every existing folder in the store and handle the
    > FolderAdd event for every one of those folder's Folders collection. It can't
    > be handled with just one universal event handler.
    >
    > --
    > 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
    >
    >
    > "WLAN" <> wrote in message
    > news:D...
    > >I want to handle folder add event in the following cases:
    > >
    > > User can create folder under any root folder, sub folder or sub sub
    > > folders.
    > > So if subscribe namespace.folders.folderadd, Will it trigger for sub
    > > folder
    > > or sub sub folder of that collection.
    > >
    > > How do I handle this situation?
    > >
    > > I need to handle folderadd event when user says 'New Folder'. The new
    > > folder
    > > can be under root folder or can be under Inbox or can under Drafts or can
    > > be
    > > under Inbox\MyMails.

    >
    >
     
    WLAN, Jan 21, 2009
    #4
  5. For Outlook 2007 you can subscribe to the context menu events that occur
    when you right-click somewhere in Outlook. So you can use the
    Application.FolderContextMenuDisplay() event or other context menu events.

    Even that doesn't really cover all the possibilities though, and FolderAdd()
    only applies to that specific Folders collection. So to really cover all the
    bases you'd need to subscribe to that event for every existing folder in the
    store to really know when and where a new folder was added anywhere in
    Outlook.

    --
    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


    "WLAN" <> wrote in message
    news:...
    > Hi Ken,
    >
    > Thanks for the reply.
    >
    > But which event do i need to handle for subscribing folderadd event? now
    > I'm
    > subscribing folders.folderadd in the below events:
    >
    >
    > this.m_activeExplorer =
    > (Outlook11.Explorer)this.applicationObject.ActiveExplorer();
    > if (this.m_activeExplorer != null)//subscribe folder switch
    > event handler
    > {
    > this.m_currentFolderCollection =
    > (Outlook11.Folders)this.m_activeExplorer.CurrentFolder.Folders;
    > if (this.m_currentFolderCollection != null)
    > {
    > this.m_currentFolderCollection.FolderAdd +=new
    > Microsoft.Office.Interop.Outlook.FoldersEvents_FolderAddEventHandler(m_currentFolderCollection_FolderAdd);
    > }
    >
    > //folder switch
    > this.m_activeExplorer.FolderSwitch += new
    > Outlook11.ExplorerEvents_10_FolderSwitchEventHandler(exp_FolderSwitch);
    > }
    >
    > private void exp_FolderSwitch()
    > {
    > //get current active explorer
    > if (this.m_activeExplorer != null)
    > {
    > //if any previously selected folder exists
    > if(this.m_currentFolderCollection != null)
    > this.m_currentFolderCollection.FolderAdd -= new
    > Microsoft.Office.Interop.Outlook.FoldersEvents_FolderAddEventHandler(m_currentFolderCollection_FolderAdd);
    >
    > this.m_currentFolderCollection =
    > (Outlook11.Folders)this.m_activeExplorer.CurrentFolder.Folders;
    > if (this.m_currentFolderCollection != null)
    > {
    > this.m_currentFolderCollection.FolderAdd += new
    > Microsoft.Office.Interop.Outlook.FoldersEvents_FolderAddEventHandler(m_currentFolderCollection_FolderAdd);
    > }
    >
    > But I'm facing issues in Outlook 2007. In outlook 2007, user can right
    > click
    > without selecting a node in tree view. So I will not get the correct
    > folder.
    >
    > Also the new folder can be changed using PickFolder dialog displayed while
    > specifying a new folder name.
    >
    > Which event handler do I need to use for subscribing Folders.FolderAdd
    > event?
     
    Ken Slovak - [MVP - Outlook], Jan 21, 2009
    #5
    1. Advertisements

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Bob Trucchi

    Item_Close Event and public folder lists

    Bob Trucchi, Jul 7, 2003, in forum: Microsoft Outlook Form Programming
    Replies:
    2
    Views:
    627
    Sue Mosher [MVP]
    Jul 14, 2003
  2. Pre-select folder in "Move to Folder"

    , Jun 9, 2005, in forum: Microsoft Outlook Form Programming
    Replies:
    0
    Views:
    201
  3. Guest

    Copy mail item to one folder and then move it to another folder

    Guest, Sep 15, 2006, in forum: Microsoft Outlook Form Programming
    Replies:
    1
    Views:
    4,125
    Sue Mosher [MVP-Outlook]
    Sep 15, 2006
  4. Ken Slovak - [MVP - Outlook]

    Re: Subscribing New folder event

    Ken Slovak - [MVP - Outlook], Jan 10, 2009, in forum: Microsoft Outlook Form Programming
    Replies:
    0
    Views:
    222
    Ken Slovak - [MVP - Outlook]
    Jan 10, 2009
  5. Beetle

    Folder.BeforeItemMove Event

    Beetle, Sep 27, 2009, in forum: Microsoft Outlook Form Programming
    Replies:
    1
    Views:
    531
    Beetle
    Sep 27, 2009
Loading...

Share This Page