VSTO outlook scan opened item
-
Monday, April 02, 2012 3:39 PM
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
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!
- Proposed As Answer by Tom_Xu_WXModerator Tuesday, April 03, 2012 2:17 AM
- Marked As Answer by jackandjill2012 Tuesday, April 03, 2012 3:16 PM

