Outlook web add-in scan mail item content - outlook

I was wondering if there was a way to for url in an outlook item and retrieve them to use them later.
I have a MessageReadCommandSurface add-in, but I only found a way to highlight them using a contextual add-in. Here's the documentation for that: https://learn.microsoft.com/en-us/office/dev/add-ins/outlook/contextual-outlook-add-ins.
Is there any event for newly opened Read command surfaces?

First of all, let's realize that Outlook web add-ins work under the context of the currently selected item only in Outlook. So, each time you select an item your contextual add-in must re-evaluate conditions to activate.
You may also consider implementing a pinnable task pane where you could handle the ItemChanged event. See Implement a pinnable task pane in Outlook for more information. So, if the take pane was loaded and pinned you can just handle the ItemChanged event and process a newly selected item with relying on contextual activations.
The event-based activation can also be helpful depending on your demands. See Configure your Outlook add-in for event-based activation for more information.
If none of the provided options suits your needs I'd suggest filing a feature request at https://aka.ms/M365dev-suggestions .

Related

Edit appointment in Outlook reading pane

Is it possible to edit appointments in the Outlook Reading Pane?
It currently allows only to preview the appointment, but it would save a buttload of time if we wouldn't have to open and save every appointment all the time.
If not through standard settings, maybe through some reg key? Or an VBA script?
According to my search and test, you can’t edit appointment in Outlook reading pane except subject.
You could click select appointment, then you can change subject. Like this:
P.S. Reading pane only apply for preview appointment.

Vsto Addin to show on home tab

I have created a vsto Addin where I want to show a Ribbon control on Inbox window and when the user clicks reply in same window(not in pop out window).
I was able to set the addin to load on Outlook compose and reply pop out windows.
I tried to set the property controlId as TabMail and selected RibbonType property (selected everything, just tried hopping one of those will work )
Any one have a solution
Do you get any Ribbon UI errors?
By default, if an VSTO Add-in attempts to manipulate the Microsoft Office user interface (UI) and fails, no error message is displayed. However, you can configure Microsoft Office applications to display messages for errors that relate to the UI. You can use these messages to help determine why a custom Ribbon does not appear, or why a Ribbon appears but no controls appear.
To show VSTO Add-in user interface errors
1. Start the application.
2. Click the File tab.
3. Click Options.
4. In the categories pane, click Advanced.
5. In the details pane, select Show VSTO Add-in user interface errors, and then click OK.
For Outlook, the Show VSTO Add-in user interface errors checkbox is located in the Developer section of the details pane. For other applications, the checkbox is located in the General section of the details pane.
Most probably the TabMail id doesn't exist in all contexts and you get an UI error. So, a custom UI is not shown finally. Am I right?

How to remove Outlook add-in load times from the registry?

According to the following article
https://msdn.microsoft.com/en-us/library/office/jj228679.aspx#ol15WhatsNew_AddinDisabling
Outlook uses the median time of 5 last runs and compares it to 1 millisecond (for add-in startup). This means that if I optimize my add-in and re-install it, I should run Outlook at least 4 more times to calculate the correct value of add-in startup.
Does anybody know where this value is stored in Outlook (I guess registry)?
I tried to remove my add-in's value from the following key:
HKEY_CURRENT_USER\Software\Microsoft\Office\15.0\Outlook\AddInLoadTimes
but it doesn't help, it still remembers it.
Alex,
Is your add-in listed in the Disabled Items list in Outlook?
If so, you need to remove the add-in from the Disabled Items list first. To re-enable an add-in:
In the application, click the File tab.
Click the ApplicationName Options button.
In the categories pane, click Add-ins.
In the details pane, verify that the add-in appears in the Disabled Application Add-ins list.
The Name column specifies the name of the assembly, and the Location column specifies the full path of the application manifest.
In the Manage box, click Disabled Items, and then click Go.
Select the add-in and click Enable.
Click Close.

events for right click detection in Outlook and Power point

In office applications i want to get the word on which the user right clicks.
i was able to get for Excel and Word. in outlook and PowerPoint i am not able detect the right click event.
In outlook i want to detect right click on a word in mail body.
In power point i want to detect right click in a slide content.
In outlook i have tried the events:
ItemContextMenuDisplay,
AttachmentContextMenuDisplay,
FolderContextMenuDisplay,
ContextMenuClose,
StoreContextMenuDisplay,
ViewContextMenuDisplay,
In power point i have tried:
WindowBeforeRightClick,
can somebody help me with the events to be used?
I will try to answer the Outlook part.
The Outlook object model doesn't provide any events for that. The only possible solution is to add your control to the context menu and handle the getVisible or getEnabled callbacks. Thus, you will be aware when the context menu is going to be displayed. But it seems MS doesn't provide the required IDs for that menu, see Extending the User Interface in Outlook 2010 for more information.
See Office 2013 Help Files: Office Fluent User Interface Control Identifiers
In the case of PowerPoint, WindowBeforeRightClick is the correct event.
You would find that setting Cancel = True in the handler for that event only works if the right-click is on the slide itself. On a shape or within a text range this fails to work as expected.
Workaround is the lock the screen and switch to a different view and back and then update the screen to prevent the contextual menu from appearing for the shape/text range.

Where do I put my Office Add-In configuration page(s)?

I'm writing a COM add-in for Word, Excel and PowerPoint. This add-in has some user-configurable settings (about a page full of them actually... or perhaps even more than a single page). What is the standard way of presenting these to the user? Through a custom page under Tools->Options? (how?) Under a custom button on a custom toolbar? A specific menu for the add-in?
If it were Outlook, I would add a custom property page. I was pretty confident I could easily google something similar for the other office application, but I'm obviously not searching for the right terms. Hints to improve my searching are also very welcome!
Update:
I just realized one can figure from your question you are targeting Office versions up to and including 2003 right now, as for example the tools menu is gone in 2007.
You might still find an answer regarding your question by looking at the starting point for the mentioned migration from 2003 to 2007: access to the settings for the sample 2003 add-in is located in an add-in specific sub menu of the tools menu, as shown in Figure 7.
For current and future versions of Office (i.e. 2007 and up) your first stop regarding user interface questions should be the Office Fluent User Interface Developer Portal, specifically you'll find there the '2007 Office System Document: UI Style Guide for Solutions and Add Ins'.
Its probably worth pointing out that this guide is not on par with the Windows User Experience Interaction Guidelines (UX Guide) by a huge margin, which is unfortunate given the almost traditional friendly competition between the Office team and other Microsoft departments in setting the next de facto UI standard for 3rd party developers.
Still one can figure out initial directions from there, for example the recommendation regarding scenarios for custom task panes as suggested by Gary clearly is at odds with your need to offer user settings, citation:
Create a custom task pane if…
Your solution needs to present data
about a document that is required to
be visible, in a non-modal fashion,
use a custom task pane. [...]
You can find a good starting point regarding your question in section Simple Migration, where the migration of a simple 2003 add-in to the current 2007 release is explored step by step from a UI design perspective; not surprisingly this add-in features settings too, hence your requirements are addressed, albeit only on the side.
Reproducing this section here would be a bit lengthy plus I'm not sure whether it would be legal to reproduce the inline images used there, just look for Figure 9 in particular to get you started.
You can take it further from there depending on your particular scenario, good luck!
I'm pretty sure you cannot add a tab to Word, Excel and PowerPoint's Tools | Options dialog. I know you cannot do that in Word before 2007 at least.
I would recommend adding a menu item for your add-in somewhere, probably under the Tools menu. I assume your add-in does not already have any other menu items? I would put it in a menu item rather than a toolbar button, since most users don't need to change "settings" all the time, so they do need to look at the button on the toolbar all the time. My screen shots here show the menu in Word with Options at the bottom, though not the actual options dialog: http://www.amosfivesix.com/timken-business-stationery
If you're worried about people finding your menu item tucked away on the Tools menu, you can have a window pop-up the first time the app is started after your add-in is installed. Have it show a picture of where the menu item is, or just explain how to get there. Lots of apps have things like that the first time they run. One of my larger Outlook add-ins does have it's own menu on the menu bar (so it's fairly easy to find) but I also have a first run window that explains what/where it is. You can see an example of that here: http://www.amosfivesix.com/timken-electronic-business-card
Gary McGill's idea for a task pane might be good as well. I don't have any experience with task panes. I'm not sure it would be appropriate for "application settings" since taks panes are more like modeless dialogs that you work with while also working with the document content. Changing your add-in's settings probably doesn't work that way.
I don't know if there is a standard way. I have only created VBA add-ins, and I do not believe it is possible to add custom pages under Tools | Options.
In an Excel Add-In I created, I put a 'Settings...' button on the Add-Ins toolbar (the Add-In created a custom toolbar during the _AddInInstall event).
But this approach of course means your add-in must have a custom toolbar (or menu).
I did a quick check on an Office installation I have access to, that has a few Add-Ins:
The Adobe PDFmaker add-in has its own top-level menu, as well as a toolbar. The menu has a 'Change conversion settings' menu item
A custom add-in (eye-share, don't know what it is) also has its own top-level menu. The menu has a 'Settings...' menu item.
Hummingbird (some sort of document management system) has menu items all over the place, but no settings dialog. The installation program probably sets the necessary config values in the registry.
So my conclusion is:
You cannot add a custom page under Tools | Options (I guess Adobe would have done this if possible).
If your add-in has a custom menu or toolbar, add a 'Settings...' button or menu item (don't know if there is a standard icon for this)
If your add-in does not have a custom menu or toolbar, I would probably add a single menu item under Tools.
If you don't want to clutter the Excel interface, you could have an external program (created in .NET or whatever) installed on the Start Menu that updates the registry. This of course requires that all relevant settings can be represented as registry values, and are to be persisted. It also means that the Add-in should always look to the registry for settings values when performing operations - not read the setting at startup and cache it in a variable.

Resources