In Outlook, how to close message in separate window? - outlook-addin

I need a function or API call where I can close the separate window of any selected email.
When you double click a message, it opens the message in a separate window, aye? Now how can I close it programmatically? Couldn't find anything in various documentations.
Thanks for any hints!

Outlook Web Add-ins run within the context of the message, either within the primary client or in a separate window.
There is no method of closing the host window from the web add-in.

Related

Late binding object to existing instance via handle in VBA

This question pertains to VBA Internet Explorer automation
What I have is an Internet Explorer window that loads a dialog box with buttons when the page loads.
Here are the givens:
The dialog box is of the "Internet Explorer_TridentDlgFrame" class
It isn't considered an app window like its originating IE window.
Its "form" and button "ID's are obtainable but not within DOM of the originating IE document
So, referencing said IDs to interact with them does not work.
Similarly, injecting JavaScript attached to its buttons does not work
The dialog box can't be bypassed by closing it. A "continue" button must be pressed.
So I figured I'd use another method:
If I cycle through all windows, I can obtain the dialog box's window handle via its window title.
With that said, is there a way to late-bind "Object A" to the dialog box's window via handle?
And if so, is it then possible to late-bind "Object B" to "Object A's" document/form in order to interact with it?
This would be like accessing an existing instance of an open Excel workbook and late binding an object to it in order to interact with the workbook itself.
Note: I have used Selenium in the past, and while it may be a better solution to get around this dialog box, translating the rest of my (already) written program into Java would be a nightmare.
Note2: Using winHttp or other "headless" methods isn't an option
Any help is appreciated! Thanks!

Execute Context Menu Command in External Application

I am trying to write an application that can select all text in the textbox within an external application, copy it to the clipboard, perform changes programmatically to the string and then send the modified string back to the external application. I did not write the external application and do not have access to its code nor can I afford to contact the developer and have them make changes. The external application is Client-Server based and I can only interact with the user interface on the client side.
The problem I am running into is that I can easily send keyboard commands to the application to send or delete text, but I cannot select all of the text. Using keyboard shortcuts Ctrl-A, Ctrl-Shift-Home, Ctrl-Shift-End, etc. do not work. Triple clicking on the text box does not work either.
However, I can right click on the text box and bring up a context menu and then select the command "Select All". I am wondering if there is a way to send the context menu command to the application without having to have the context menu appear.
I want the two applications to appear to be working as seamlessly as possible to the user. Does anyone have any suggestions that might work?
To answer your specific question:
I am wondering if there is a way to send the context menu command to the application without having to have the context menu appear.
When a menu item is clicked, it issues a WM_COMMAND message to the parent window of the menu. You can use a tool like Spy++ to monitor such messages and see which command ID is being sent to which window, and then you can code your app to send the same message directly to that same window. No need to display the actual menu itself.
However, in this particular situation, that is overkill. If you have the HWND of the desired edit control, you can send it WM_GETTEXT and WM_SETTEXT messages instead, or use .NET's UIAutomation interfaces, to get/set the control's text directly. Either way, there is no need to select the text (you can use EM_SETSEL for that) or to involve the clipboard.

vb.net - Multiple dialog forms push Main form behind other apps

We have a VB.Net Application with a Main form that should always be visible. However, we want to be able to display a succession of two dialog windows where we can close the first dialog as the second one appears. However, when doing that, the Main form gets sent behind whatever other applications are open and does not re-appear until the second dialog window closes.
We can correct this issue by keeping the first dialog window open behind the second one, but it’s not ideal. What are we doing incorrectly?
Try using dialog1.owner = mainform

Is it possible to have an extension library dialog box within a repeat control?

I'm running with an 8.5.3 UP1 server and I have a need to have many dialog boxes (for confirmation purposes) for a whole bunch of "action buttons" on an xpage. The code for these dialog boxes is almost exactly the same with the exception of the confirmation message being different and the client-side JS function they are calling if the Yes button is selected.
Since I really hate repeating code over and over, I was wondering if it is at all possible to put a xe:dialog control within a repeat control and specify the message and function call from an array of values? I know I can't compute the ID of the dialog control and without that I'm not sure how I would reference the dialog to open and close it.
Any ideas? Thanks
Yes, this is possible.
Make sure that you specify that the dialog box's property for keepComponents is set to False. You don;t have to do anything special for opening or closing the dialog box, just use whatever ID you give the dialog box in you client-side action to open the dialog box in the repeat such as XSP.openDialog('#{id:myDialog}')
The XPages renderer will automatically calculate the correct ID names for you.

How do I send an email and close the current inspector from within an Outlook form region?

I have an outlook 2010 AdjoiningFormRegion that contains a single button. The idea is that a user composes an email then clicks my send button instead of the usual outlook send button. My send button will communicate some info to a web service then send the email as usual and close the inspector window? Is this even possible? It would be great to hook into a send event but I've had no luck figuring this out.
The Send method of the MailItem class will send the email and close the window just as clicking the Send button does.
(Globals.ThisAddIn.Application.ActiveInspector().CurrentItem as MailItem).Send()