Group:  Microsoft Outlook ยป microsoft.public.outlook.program_addins
Thread: Outlook 2007 Ribbon access from ActiveX control

Geek News

Outlook 2007 Ribbon access from ActiveX control
GR <grourke[ at ]sonexis.com> 5/24/2007 8:41:37 PM
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!

Re: Outlook 2007 Ribbon access from ActiveX control
"Patrick Schmid [MVP]" <pdschmid[ at ]nospam.mvps.org> 5/24/2007 11:30:30 PM
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




"GR" <grourke[ at ]sonexis.com> wrote in message
news:1180039297.373629.245240[ at ]p77g2000hsh.googlegroups.com:

[Quoted Text]
> 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!

Re: Outlook 2007 Ribbon access from ActiveX control
"Ken Slovak - [MVP - Outlook]" <kenslovak[ at ]mvps.org> 5/27/2007 10:07:23 PM
To add to what Patrick said, the code that Implements the ribbon must also
be the code that Implements IDTExtensibility2.

--
Ken Slovak
[MVP - Outlook]
http://www.slovaktech.com
Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003
Reminder Manager, Extended Reminders, Attachment Options
http://www.slovaktech.com/products.htm


"Patrick Schmid [MVP]" <pdschmid[ at ]nospam.mvps.org> wrote in message
news:%23uJPHulnHHA.4624[ at ]TK2MSFTNGP04.phx.gbl...
[Quoted Text]
> 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

Re: Outlook 2007 Ribbon access from ActiveX control
GR <grourke[ at ]sonexis.com> 5/29/2007 3:44:58 PM
On May 27, 6:07 pm, "Ken Slovak - [MVP - Outlook]"
<kenslo...[ at ]mvps.org> wrote:
[Quoted Text]
> To add to what Patrick said, the code that Implements the ribbon must also
> be the code that Implements IDTExtensibility2.
>
> --
> Ken Slovak
> [MVP - Outlook]http://www.slovaktech.com
> Author: Absolute Beginner's Guide to Microsoft Office Outlook 2003
> Reminder Manager, Extended Reminders, Attachment Optionshttp://www.slovaktech.com/products.htm
>
> "Patrick Schmid [MVP]" <pdsch...[ at ]nospam.mvps.org> wrote in messagenews:%23uJPHulnHHA.4624[ at ]TK2MSFTNGP04.phx.gbl...
>
>
>
> > 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!

Home | Search | Terms | Imprint Contact
Newsgroups Reader - provided by WiredBox.Net