![]() |
If this is your first visit, be sure to check out the FAQ by clicking the link above. You may have to register before you can post: click the register link above to proceed. To start viewing messages, select the forum that you want to visit from the selection below. |
|
|
Thread Tools | Search this Thread | Display Modes |
|
#1
|
|||
|
|||
![]()
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? |
#2
|
|||
|
|||
![]()
I think I might have figured it out already ... The only think I am
really not happy about is the fact that all of the ribbon stuff gets handled inside my CAddin class. It should really be the job of the individual CInspectorWrappers. Is it possible to do it that way? Right now I seem to have quite a lot of unnecessary nearly duplicate code around in separate classes (once for toolbars and the other time for ribbons) This could one day be a debugger's nightmare ... |
#3
|
|||
|
|||
![]()
The requirement from MS is that the interface handling and callbacks for the
ribbon must be in the same class as the class that implements the IDTExtensibility interface. So OO design or not that's what you have to do. What I do is implement a RibbonClicker() method in the Inspector wrapper class. I call that method in the wrapper class to handle anything that is specific to that Inspector, such as the states of toggle controls. In the ribbon callback I identify which Inspector matches the Inspector in the wrapper class and then I know which wrapper class to call to. Luckily Outlook 2007 Inspectors can be compared directly using an equality test (== or for VB using the Is operator), so finding the correct wrapper class is easy. I pass in any needed arguments from the ribbon callbacks to my RibbonClicker() methods, so anything they need in the way of information is available to them. -- Ken Slovak [MVP - Outlook] http://www.slovaktech.com Author: Professional Programming Outlook 2007. Reminder Manager, Extended Reminders, Attachment Options. http://www.slovaktech.com/products.htm wrote in message ... I think I might have figured it out already ... The only think I am really not happy about is the fact that all of the ribbon stuff gets handled inside my CAddin class. It should really be the job of the individual CInspectorWrappers. Is it possible to do it that way? Right now I seem to have quite a lot of unnecessary nearly duplicate code around in separate classes (once for toolbars and the other time for ribbons) This could one day be a debugger's nightmare ... |
Thread Tools | Search this Thread |
Display Modes | |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
how to find out, that inspector window contain command bar or not | Ram | Add-ins for Outlook | 1 | May 30th 06 02:17 PM |
Right Click on Inspector Window header | jim | Add-ins for Outlook | 1 | February 17th 06 11:09 PM |
how to add commandbarbutton to inspector window | Ram | Outlook and VBA | 0 | January 19th 06 06:07 AM |
how to add commandbarbutton to inspector window | Ram | Outlook - General Queries | 1 | January 18th 06 08:42 PM |
how to add commandbarbutton to inspector window | Ram | Add-ins for Outlook | 0 | January 18th 06 03:18 PM |