View Single Post
  #1  
Old May 21st 09, 03:21 PM posted to microsoft.public.outlook.program_addins
[email protected]
external usenet poster
 
Posts: 23
Default Using Ribbon in Inspector window

Hi,
Firstly let me thank you for your feedback in this group thus far. I
really appreciate it.
I managed to write a COM Add-in in C++ that has a toolbar with buttons
in every Explorer/Inspector window.

My architecture is as follows:

CAddin - implements _IDTExtensibility2, has handlers for
OnNewExplorer, OnNewInspector
CExplorerWrapper - wrapper class for explorer events
(OnSelectionChange, OnClose, ...)
CInspectorWrapper - wrapper class for inspector events (OnActivate,
OnClose)
CToolbarWrapper - wrapper class for the toolbar buttons
(OnButton1Click, SetEnabled, SetVisible, ...)

Now I decided to use ribbons for 2007+ versions of outlook.
Unfortunately I had to break my OO design here...

My CAddin class newly implements IRibbonExtensibility.
GetCustomUI gets fired and returns XML for the
"Microsoft.Outlook.Mail.Read" Inspector window.

So far so good. I had to implement the OnRibbonButtonClick events
inside my CAddin (don't know how to do this inside CInspectorWrapper)
- this is a pain as it breaks my OO concept, but it works. I simply
cast the RibbonControl-GetContext() to Inspector type. If someone
knew how to do it inside the CInspectorWrapper then please advise - I
can post source code extracts if necessary.

But I don't know how to set the state of the ribbon buttons (enabled/
disabled) inside CInspector::OnActivate. The state of these buttons
can differ in every CInspectorWrapper instance - is there a special
event callback I need to implement or can I do it somehow using my
IRibbonUI pointer that I got from OnLoad handler?
Ads