Answered VSTO outlook scan opened item

  • Monday, April 02, 2012 3:39 PM
     
      Has Code

    Mine is a bit of odd solution. I want to scan for a particular string of words (these particular string of words are already in an XML data file) to achieve this i have thought of going this thru these following steps I will have a menubaritem to change settings of the add-in(not necessary now) I will have a button like the new button in the bar like this

    then say the user is reading an item that is selected and opened in the reading pane. when my button is pressed i want the code to scan the subject and the body to match with my xml data, if it exists then show a message box.

    I did as far as creating a menuitem and menubar button and the xml data, now my question is how to scan the currently being read item?

    This is my C# code in thisaddin.cs

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Xml.Linq;
    using Outlook = Microsoft.Office.Interop.Outlook;
    using Office = Microsoft.Office.Core;
    using System.Windows.Forms;
    
    namespace Sql_openertake1
    {
        public partial class ThisAddIn
        {
            private Office.CommandBar menuBar;
            private Office.CommandBarPopup newMenuBar;
            private Office.CommandBarButton buttonOne;
            Office.CommandBarButton PacktButtonA;
            Office.CommandBar PacktCustomToolBar;
    
            private void ThisAddIn_Startup(object sender, System.EventArgs e)
            {
    
             // Verify the PacktCustomToolBar exist and add to the application
    if (PacktCustomToolBar == null)
    {
    // Adding the commandbar to Active explorer
    Office.CommandBars PacktBars = this.Application.
    ActiveExplorer().CommandBars;
    // Adding PacktCustomToolBar to the commandbars
    PacktCustomToolBar = PacktBars.Add("SQL Opener",Office.MsoBarPosition.msoBarTop, false, true);
    }
    // Adding button to the custom tool bar
    Office.CommandBarButton MyButton1 = (Office.
    CommandBarButton)PacktCustomToolBar.Controls.Add(1,
    missing, missing, missing, missing);
    // Set the button style
    MyButton1.Style = Office.MsoButtonStyle.msoButtonCaption;
    // Set the caption and tag string
    MyButton1.Caption = "Open";
    MyButton1.Tag = "MY BUTTON";
    if (this.PacktButtonA == null)
    {
    // Adding the event handler for the button in the toolbar
    this.PacktButtonA = MyButton1;
    PacktButtonA.Click += new Office.
    _CommandBarButtonEvents_ClickEventHandler(ButtonClick);
    }
    }
    // Button event in the custom toolbar
    private void ButtonClick(Office.CommandBarButton ButtonContrl,
    ref bool CancelOption)
    {
    // Message box displayed on button click
    MessageBox.Show(ButtonContrl.Caption + " Says Hello World!");
    }
    
            private void AddMenuBar()
            {
                try
                {
                    menuBar = this.Application.ActiveExplorer().CommandBars.ActiveMenuBar;
                    newMenuBar = (Office.CommandBarPopup)menuBar.Controls.Add(
                        Office.MsoControlType.msoControlPopup, missing,
                        missing, missing, true);
                    if (newMenuBar != null)
                    {
                        newMenuBar.Caption = "SQL Opener";
                        buttonOne = (Office.CommandBarButton)newMenuBar.Controls.
                        Add(Office.MsoControlType.msoControlButton, missing,
                            missing, 1, true);
                        buttonOne.Style = Office.MsoButtonStyle.
                            msoButtonIconAndCaption;
                        buttonOne.Caption = "Settings";
                        buttonOne.FaceId = 0548;
                        buttonOne.Tag = "c123";
                        buttonOne.Click += new Office._CommandBarButtonEvents_ClickEventHandler(buttonOne_Click);
                        newMenuBar.Visible = true;
                    }
                }
                catch (Exception ex)
                {
                    System.Windows.Forms.MessageBox.Show(ex.Message);
                }
            }
    
            private void buttonOne_Click(Office.CommandBarButton ctrl,
                ref bool cancel)
            {
                System.Windows.Forms.MessageBox.Show("You clicked: " + ctrl.Caption,
                    "Custom Menu", System.Windows.Forms.MessageBoxButtons.OK);
    
            }
    
    
            private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
            {
            }
    
            private void createnewform()
            {
                SAmple_form sform = new SAmple_form();
                sform.Text = "Show the Count";
    
    
            }
    
            #region VSTO generated code
    
            /// <summary>
            /// Required method for Designer support - do not modify
            /// the contents of this method with the code editor.
            /// </summary>
            private void InternalStartup()
            {
                this.Startup += new System.EventHandler(ThisAddIn_Startup);
                this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
            }
    
            #endregion
        }
    }
    

    this is my xml data

    <?xml version="1.0" encoding="utf-8" ?>
    <words>
        <word id="5001">None</word>
        <word id="5002">Glazed</word>
        <word id="5005">Sugar</word>
        <word id="5006">Sprinkles</word>
        <word id="5003">Chocolate</word>
        <word id="5004">Maple</word>
    
    </words>
    

    thanks for the help.


    D.Boy

All Replies

  • Monday, April 02, 2012 4:36 PM
     
     Answered

    Look at the Application.ActiveExplorer.Selection collection.


    Dmitry Streblechenko (MVP)
    http://www.dimastr.com/redemption
    Redemption - what the Outlook
    Object Model should have been
    Version 5.2 is now available!