Outlook 2007 Ribbon access from ActiveX control

G

GR

Hi All,

I have an ActiveX Control (.ocx) written in VB6 that I put on the
second page tab in an Outlook Appointment custom form. This works fine
for Outlook 2000-2003. I am now trying to port this into a separate
project to work with Outlook 2007.

So far, everything seems to come up and display fine. Now what I am
trying to do is to capture the buttons (Send, Send Update, etc...)
from the Ribbon like I do for the CommandBars in the previous Outlook
versions.

I have added the "Implements Office.IRibbonExtensibility" line into
the project and it automatically created the
"IRibbonExtensibility_GetCustomUI( )" function in the project for me.
In this function is where I added the XML code to register an onAction
callback for some of the buttons (I have used this exact same xml code
in another .dll and it worked fine).

The problem is that the "IRibbonExtensibility_GetCustomUI" function
does not seem to be getting called at all when the control is
activated. I put a messagebox at the top of that function and it never
gets to it, thereby never getting the XML code for the button
callback. What I don't understand is who calls that function
specifically. In the "UserControl_Show( )" sub is where I used to set
the Commandbars codes for the buttons I wanted to intercept. However,
I don't think I can just call the "IRibbonExtensibility_GetCustomUI"
function myself, right? It needs the RibbonID passed into it and I'm
assuming tied back to the Ribbon somehow.

I'm missing how the Ribbon gets set to the procedures in the ActiveX
control. In my DLL project, the "IRibbonExtensibility_GetCustomUI"
function gets called automatically when the DLL is loaded.

Any help? Thanks!
 
P

Patrick Schmid [MVP]

You can't do this. RibbonX can only be supplied via Outlook COM Add-ins.
ActiveX controls cannot supply RibbonX.

Patrick Schmid [OneNote MVP]
--------------
http://pschmid.net
***
Outlook 2007 Performance Update: http://pschmid.net/blog/2007/04/13/105
Office 2007 RTM Issues: http://pschmid.net/blog/2006/11/13/80
***
Customize Office 2007: http://pschmid.net/office2007/customize
RibbonCustomizer Add-In: http://ribboncustomizer.com
OneNote 2007: http://pschmid.net/office2007/onenote
***
Subscribe to my Office 2007 blog: http://pschmid.net/blog/feed
 
K

Ken Slovak - [MVP - Outlook]

To add to what Patrick said, the code that Implements the ribbon must also
be the code that Implements IDTExtensibility2.
 
G

GR

To add to what Patrick said, the code that Implements the ribbon must also
be the code that Implements IDTExtensibility2.





You can't do this. RibbonX can only be supplied via Outlook COM Add-ins.
ActiveXcontrols cannot supply RibbonX.
Patrick Schmid [OneNote MVP]
--------------
http://pschmid.net
***
Outlook 2007 Performance Update:http://pschmid.net/blog/2007/04/13/105
Office 2007 RTM Issues:http://pschmid.net/blog/2006/11/13/80
***
Customize Office 2007:http://pschmid.net/office2007/customize
RibbonCustomizer Add-In:http://ribboncustomizer.com
OneNote 2007:http://pschmid.net/office2007/onenote
***
Subscribe to my Office 2007 blog:http://pschmid.net/blog/feed- Hide quoted text -

- Show quoted text -

Hi Patrick & Ken,

Thanks for the replies!

Just to be sure I'm clear on this and that I explained myself
properly:

I have a COM AddIn (.dll) for Outlook 20007 that puts a button on the
command bar. When the user presses this button it opens up a custom
form (based on the Outlook meeting form). There the user fills in some
info and tabs to the second page where my ActiveX (.ocx) control
resides on the form. The control gets activated and performs some
functions. It is at this point that I want the ActiveX control to be
able to intercept any buttons (eg: Send, etc...) that the user pressed
on the Ribbon, just like I used to do with CommandBars for Outlook
2003.

Are you saying that this is no longer possible like I used to be able
to do with the CommnadBars? Any alternatives pop to mind?

Thanks!
 
P

Patrick Schmid [MVP]

Why don't you have the COM add-in handle all of the UI interaction?

Patrick Schmid [OneNote MVP]
--------------
http://pschmid.net
***
Outlook 2007 Performance Update: http://pschmid.net/blog/2007/04/13/105
Office 2007 RTM Issues: http://pschmid.net/blog/2006/11/13/80
***
Customize Office 2007: http://pschmid.net/office2007/customize
RibbonCustomizer Add-In: http://ribboncustomizer.com
OneNote 2007: http://pschmid.net/office2007/onenote
***
Subscribe to my Office 2007 blog: http://pschmid.net/blog/feed




To add to what Patrick said, the code that Implements the ribbon must also
be the code that Implements IDTExtensibility2.





You can't do this. RibbonX can only be supplied via Outlook COM Add-ins.
ActiveXcontrols cannot supply RibbonX.
Patrick Schmid [OneNote MVP]
--------------
http://pschmid.net
***
Outlook 2007 Performance Update:http://pschmid.net/blog/2007/04/13/105
Office 2007 RTM Issues:http://pschmid.net/blog/2006/11/13/80
***
Customize Office 2007:http://pschmid.net/office2007/customize
RibbonCustomizer Add-In:http://ribboncustomizer.com
OneNote 2007:http://pschmid.net/office2007/onenote
***
Subscribe to my Office 2007 blog:http://pschmid.net/blog/feed- Hide quoted text -

- Show quoted text -

Hi Patrick & Ken,

Thanks for the replies!

Just to be sure I'm clear on this and that I explained myself
properly:

I have a COM AddIn (.dll) for Outlook 20007 that puts a button on the
command bar. When the user presses this button it opens up a custom
form (based on the Outlook meeting form). There the user fills in some
info and tabs to the second page where my ActiveX (.ocx) control
resides on the form. The control gets activated and performs some
functions. It is at this point that I want the ActiveX control to be
able to intercept any buttons (eg: Send, etc...) that the user pressed
on the Ribbon, just like I used to do with CommandBars for Outlook
2003.

Are you saying that this is no longer possible like I used to be able
to do with the CommnadBars? Any alternatives pop to mind?

Thanks!
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top