I have created an Outlook 365 macro (in ThisOutlookSession) to reposition the Reminder(s) window when it pops up (using the Application_Reminder event) and to use the SetWindowPos API to set it to always on top.

I've used this API call similarly in Excel macros to successfully set userform windows to always on top.

However, in Outlook, while it does indeed bring the Reminder(s) window to the front (irrespective of the File/Options/Advanced/Show reminders on top of other windows setting) the Reminder(s) window does not stay on top and will disappear behind any other window that is selected (e.g. if you happen to click in a window just as the Reminder(s) window appears).

I've also tired using the SetForegroundWindow API juts before the SetWindowPos, but this changed nothing. I've definitely got the correct window handle as I'm also using the SetWindowPlacement API to successfully reposition the Reminder(s) popup over the currently active application window. I run the SetWindowPos after the SetWinowPlacement, a process I have used successfully in Excel macros to position userforms.

I did notice that in the Applications_Reminder event macro that the Reminder(s) window reports as not IsVisible, so I was wondering if my problem had to do with the window perhaps not showing at the time I issue the SetWindowPos command, or if Outlook is somehow overriding the SetWindowPos top-most setting.

As another observation, I notice that the Reminder(s) window will stay on top if don't select it and just drag the previously active application window around by its title bar. However the Reminder(s) window disappear behind as soon as I click in the previous application window or select any other application window. So the always on top setting is not sticking.

Even without the Applicatation_Reminder event macro, and having the native Outlook File/Options/Advanced/Show reminders on top of other windows option checked, I notice that the Reminder(s) window appears on top, but does not remain on top.

And before you ask, the SetWindowPos returns 0 - no error.

Here's the code that I have at the end of my Application_Remider macro
'Set the Reminder(s) window placement
WinReminder.rcNormalPosition = RectReminder
rtn = SetWindowPlacement(ReminderHwnd, WinReminder)
'Now set it to be always on top - in their face!
rtn = SetWindowPos(ReminderHwnd, -1, 0, 0, 0, 0, &H3)
rtn = SetForegroundWindow(ReminderHwnd)


I can live with this issue, but it would be great if anyone out there knew of an effective solution that makes the Outlook Reminder(s) window stay on top, irrespective of which other application window is selected after it appears. As I said, I've been using SetWindowPos to make Excel userforms stay on top and they stay on top (show modeless) regardless of whatever other application window I select. I am also using the same positioning code and SetWindowPlacement in my Excel macros.