Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
How to capture whether user has checked to send Outlook Mail with digital signature or encrypted from VSTO Add-in in C# ?
We can use the following code snippet with VSTO SE Outlook Skeleton project to build sample add-in:
IMPORTANT NOTE: This add-in will only work if we are NOT using Word as default email editor.
/*NOTE: Following programming examples is for illustration only, without warranty either expressed or implied,
including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose.
This sample code assumes that you are familiar with the programming language being demonstrated and the tools used
to create and debug procedures.*/
1: using System;
2: using System.Windows.Forms;
3: using Microsoft.VisualStudio.Tools.Applications.Runtime;
4: using Outlook = Microsoft.Office.Interop.Outlook;
5: using Office = Microsoft.Office.Core;
6:
7: namespace OutlookAddin1
8: {
9: public partial class ThisApplication
10: {
11: private void ThisApplication_Startup(object sender, System.EventArgs e)
12: {
13: this.ItemSend +=new Microsoft.Office.Interop.Outlook.ApplicationEvents_11_ItemSendEventHandler(ThisApplication_ItemSend);
14: }
15:
16: private void ThisApplication_Shutdown(object sender, System.EventArgs e)
17: {
18: }
19: private Office.CommandBarButton EncButton = null;
20: private Office.CommandBarButton DigButton = null;
21: private void ThisApplication_ItemSend(object Item, ref bool Cancel)
22: {
23: Outlook.MailItem mItem = null;
24:
25: try
26: {
27: mItem = Item as Outlook.MailItem;
28:
29: EncButton = (Office.CommandBarButton) mItem.GetInspector.CommandBars.FindControl(Office.MsoControlType.msoControlButton , 718, Type.Missing, true);
30: if (EncButton.State == Office.MsoButtonState.msoButtonDown )
31: {
32: MessageBox.Show ("Mail will be Encrypted");
33: }
34:
35: DigButton = (Office.CommandBarButton)mItem.GetInspector.CommandBars.FindControl(Office.MsoControlType.msoControlButton, 719, Type.Missing, true);
36: if (DigButton.State == Office.MsoButtonState.msoButtonDown)
37: {
38: MessageBox.Show ("Mail will be Digitally signed");
39: }
40:
41: }
42: catch (Exception ex)
43: {
44: System.Windows.Forms.MessageBox.Show(ex.Message);
45: Cancel = true;
46: }
47:
48: }
49: #region VSTO generated code
50:
51: /// <summary>
52: /// Required method for Designer support - do not modify
53: /// the contents of this method with the code editor.
54: /// </summary>
55: private void InternalStartup()
56: {
57: this.Startup += new System.EventHandler(ThisApplication_Startup);
58: this.Shutdown += new System.EventHandler(ThisApplication_Shutdown);
59: }
60:
61: #endregion
62: }
63: }
Please refer to following article related to working with CommandBars in Outlook Solution:
How to Use CommandBars in Outlook Solutions
https://support.microsoft.com/kb/201095
The above article also have a Microsoft Excel Macro to generate a list of Outlook 2000/2003 CommandBar control IDs.
Comments
- Anonymous
November 10, 2008
PingBack from http://www.tmao.info/how-to-check-that-outgoing-outlook-mail-item-is-with-digital-signature-or-encrypted-from-vsto-add-in-in-c/ - Anonymous
December 09, 2009
Do you know if it works on outlook 2007 too ?