Пример #1
0
        private void newInspector(Outlook.Inspector inspector)
        {
            if (inspector.CurrentItem is Outlook.MailItem)
            {
                // Cast and create wrapper
                Outlook.MailItem mailItem   = inspector.CurrentItem;
                editorWrapper    newWrapper = new editorWrapper(mailItem);

                // Wrapper created, register Application level callbacks
                inspector.Application.ItemSend += (object item, ref bool cancel) =>
                {
                    inspector.CurrentItem.DeferredDeliveryTime = // Implement 30 second delay if enabled
                                                                 (newWrapper.toggleDelay) ? (DateTime.Now).Add(new TimeSpan(0, 0, 30)) : new DateTime(4501, 1, 1);
                };

                // Register Window level callbacks
                ((Outlook.InspectorEvents_10_Event)inspector).Activate += newWrapper.runTimer;
                inspector.Deactivate += newWrapper.pauseTimer;
                ((Outlook.InspectorEvents_10_Event)inspector).Close += () => { editorWrapperCollection.Remove(inspector.GetHashCode()); };

                // Register mail item callbacks
                mailItem.Open          += (ref bool s) => { newWrapper.addInVisible = newWrapper.getTaskPane.Visible = false; }; // Prevent ribbon options from blinking when changing drafts
                mailItem.AttachmentAdd += newWrapper.examineAttachment;
                mailItem.Unload        += newWrapper.deconstructWrapper;

                // That's a wrap
                editorWrapperCollection.Add(inspector.GetHashCode(), newWrapper);
            }
        }
Пример #2
0
        private void newExplorer(Outlook.Explorer explorer)
        {
            // Register inline response events
            explorer.InlineResponse += (s) =>
            {
                // Check to see what kind of inline it is. Not sure how many there are.
                if (!(s is Outlook.MailItem))
                {
                    Debug.Print("Vat da faaack"); return;
                }

                Outlook.MailItem mailItem   = s as Outlook.MailItem;
                editorWrapper    newWrapper = new editorWrapper(mailItem);

                // Wrapper created, register Application level callbacks
                explorer.Application.ItemSend += (object item, ref bool cancel) =>
                {
                    explorer.ActiveInlineResponse.DeferredDeliveryTime = // Implement 30 second delay if enabled
                                                                         (newWrapper.toggleDelay) ? (DateTime.Now).Add(new TimeSpan(0, 0, 30)) : new DateTime(4501, 1, 1);
                };

                // Register Window level callbacks
                ((Outlook.ExplorerEvents_10_Event)explorer).Activate += newWrapper.runTimer;
                explorer.Deactivate += newWrapper.pauseTimer;
                // ((Outlook.ExplorerEvents_10_Event)explorer).Close += () => { editorWrapperCollection.Remove(explorer.GetHashCode()); };

                // Register mail item callbacks
                mailItem.Open          += (ref bool b) => { newWrapper.addInVisible = newWrapper.getTaskPane.Visible = false; }; // Prevent ribbon options from blinking when changing drafts
                mailItem.AttachmentAdd += newWrapper.examineAttachment;
                // mailItem.Unload += newWrapper.deconstructWrapper;

                // That's a wrap
                editorWrapperCollection.Add(explorer.GetHashCode(), newWrapper);
                // Don't wait the whole second for first poll
                newWrapper.reviewEditor(null);
            };

            explorer.InlineResponseClose += () =>
            {
                editorWrapper thisWrapper = editorWrapperCollection[Application.ActiveExplorer().GetHashCode()];

                ((Outlook.ExplorerEvents_10_Event)explorer).Activate -= thisWrapper.runTimer;
                explorer.Deactivate -= thisWrapper.pauseTimer;

                thisWrapper.deconstructWrapper();
                editorWrapperCollection.Remove(Application.ActiveExplorer().GetHashCode());
            };
        }
 public secureSendPane(editorWrapper from)
 {
     myWrapper = from;
     InitializeComponent();
 }