RibbonX Updates for B2TR

Today's Guest Writer: Savraj Dhanjal

Savraj is a Program Manager on the Office User Experience team focused on user interface extensibility for Office developers.

As you may have discovered, we made a few tweaks to the UI developer story in Beta 2 Technical Refresh.

The biggest change is the updated Control ID list we published yesterday. We've updated the name of nearly every command in Office to be more logical, searchable, and easy to understand. If you are interested in finding out the ID numbers of commands for use with Group Policy, you can find them in these lists as well, in the Policy ID column.

We do not expect to change these IDs again for RTM, so (cross our fingers) this is the final list for Office 2007. We hope you find the new Excel-based lists easier to use and more flexible than the text files released with Beta 2.

Download Office 2007 B2TR Control ID List

If you have Beta 2 UI customizations which use a large number of built-in control IDs, manually updating each ID will take a while. So we wrote a command-line tool, UpdateIdMso, that takes a customUI xml file containing Beta 2 ID's and outputs a file with updated B2TR IDs. We hope this tool will make the upgrade process a bit easier for you.

Download UpdateIdMso Tool

We also have a new customUI schema for B2TR. The schema has only a couple of notable changes. We renamed the fileMenu tag to officeMenu and also changed advanced to dialogBoxLauncher. We made these changes to ensure that the developer model matches the final feature names in the product.

Download B2TR customUI Schema

Along with the control ID list, another reference we've created is the Office 2007 Icons Gallery. Open this file and you'll get a new group on the Developer tab in Excel, filled with galleries of the icons you can reuse in your Office 2007 solutions. Just click an icon, and you'll learn its control ID. Use this ID with the imageMso attribute to copy our icons to your controls.

Download Office 2007 Icons Gallery

Perhaps the most interesting functionality we added in B2TR is the ability to execute built-in controls by control ID, and the ability to query control properties by control ID.

For example, if you want to find out if the Save button is enabled, just call:

application.CommandBars.GetEnabledMso("FileSave")

and we'll return a boolean with the answer. And if you want to programmatically execute an obscure command that has no object model equivalent, just fire off:

application.CommandBars.ExecuteMso("MyObscureControlID")

The other functions are GetImageMso, GetLabelMso, GetPressedMso, GetScreentipMso, GetSupertipMso, and GetVisibleMso.

The VBA object browser lists the function parameters and return values, which will also be detailed on our MSDN site when it is updated in the coming weeks.

Thanks and let us know if you have questions. Happy solution-building!

Comments

  • Anonymous
    September 15, 2006
    I seriously hope that the "Customizing the Office (2007) Ribbon User Interface for Developers" articels are beeing reviewed and touched up before RTM, currently those articels have the lowest quality I have seen in the MSDN in the last 5 years.

    First, C is not C#, the author always talks about C and gives C# examples, that's just horrible.

    Then there are so many mistakes in the attribute names (getScreen, what does that attribute do?) and function signatures where the author just did copy&paste from a different function...

  • Anonymous
    September 15, 2006
    PingBack from http://www.istartedsomething.com/20060916/756-icons-office-2007/

  • Anonymous
    September 15, 2006
    THANK YOU!
    I like all those changes, especially the introduction of the beginnings of an OM.
    Is B2TR feature-complete for RibbonX and related issues?

  • Anonymous
    September 15, 2006
    The comment has been removed

  • Anonymous
    September 15, 2006
    Joe,

    you should make sure that the file is in the B2TR file format. Open it via Office button, Open in B2TR and use Save As to save it with a new file name. If that doesn't do it, send me your file via email. You can get my address from my website.

  • Anonymous
    September 15, 2006
    Patrick,
    Your suggestion didn't work, as it wouldn't let me open the template from within Word. However I did use what you said. I created a new template (therefore having the B2TR file format), and using the CustomUI editor copyied text from my template and then pasted it into the newly created template. Which worked perfectly.

    Thanks very much for your help.

  • Anonymous
    September 15, 2006
    To Andre (and others)
    Thanks for the feedback! Since those documents were published, the Ribbon schema has undergone several changes. The papers are undergoing substantial updates and will be republished in the next couple of weeks. You might check my series of 6 blogs that provide more up-to-date samples (although I will be checking them for changed information when the revised articles are released. Stay tuned.

  • Anonymous
    September 15, 2006
    Savraj released some new details on RibbonX. Find information about the ID's of built in controls,

  • Anonymous
    September 15, 2006
    Thanks for the update! VBA is, in my opinion, the best feature in Microsoft Office.

  • Anonymous
    September 15, 2006
    Thanks for the update.

  • Anonymous
    September 16, 2006
    I think the new updates an functionality of the B2TR, including the RibbonX updates are great! Once I figured out the differences between the last version and this new one, I'm able to make excellent use of all the new Offfice Updates/RibbonX!!
    Thank you!!

  • Anonymous
    September 16, 2006
    Savraj,

    Great with the new functions as they give us more control and more flexibility :)

    If You can put together all the documentation and also improve the quality of the available examples then we will have the major guideline 'at our fingertop'.

    Can You confirm that it will be possible to hook on a customized help when using the supertip "Press F1 for more help"? Is it possible to hide/remove it when no associated help is available?

    If yes, can You upload an example for us?

    TIA and all with kind regards,
    Dennis

  • Anonymous
    September 16, 2006
    Savraj, thanks for listening to our many requests and doing something about them. Does the Excel addin for icon gallery exist for the other apps, or just Excel - and does it show the full set of Office icons, or just those available in Excel.

    Stephen

  • Anonymous
    September 16, 2006
    Thanks Savraj,
    Have any decisions been made as far as what icons developers can utilise in their own applications, I assume the ribbon is OK as Microsoft have exposed this to us, but what about actually extracting icons and using them in winforms regardless if its an Excel add-in or not.
    Our primary product is an Excel add-in and we're in the middle of redesign work...

    Cheers
    Dave

  • Anonymous
    September 16, 2006
    I noticed in outlook the 'send' button isnt within the ribbon. It is a generic, grey button. I liked it better when it was in the ribbon.

  • Anonymous
    September 16, 2006
    David,
    I haven't checked this yet, but the function GetImageMso sounds like it would return the actual icon.

  • Anonymous
    September 17, 2006
    The link: http://www.sunflowerhead.com/msimages/Office2007IconsGallery.zip for downloading the Office 2007 icons is not working. Please post an updated link as I would like to download these files.

  • Anonymous
    September 17, 2006
    technochrista:

    The link works fine for me...

  • Anonymous
    September 18, 2006
    You moved the Send button!!! Arrrrr!!!!!!!!! Gru Mad!

  • Anonymous
    September 18, 2006
    The comment has been removed

  • Anonymous
    September 18, 2006
    Hey everyone,

    Glad you liked the updates. Some responses:

    1) Unfortunately you cannot hook the "press F1 for help" supertip this release.

    2) The icon gallery as an Excel workbook contains all of the icons. It is not just limited to Excel.

  • Anonymous
    September 18, 2006
    Any chance of you guys putting out the individual icons in PNG.GIF/ICO format so that we can use them in our own apps? Thanks!

  • Anonymous
    September 18, 2006
    Savraj,

    Thanks for clearing it out. Does it mean that it will be possible in the final release of 2007?

    Kind regards,
    Dennis

  • Anonymous
    September 19, 2006
    Hi Dennis! It will not be possible to override "Press F1 for Help" in Office 2007.

  • Anonymous
    September 19, 2006
    I second Dennis' request for being able to hook or hide the "Press F1 For Help" message in a custom ribbon.

  • Anonymous
    September 21, 2006
    Savraj,

    one thing puzzles me conceptually about RibbonX: I assume CommandBars::GetPressedMso (as Office UI state in general) is per-container and may give different answers for different CommandBars objects. For example, Excel has a Application::CommandBars for the main window, and Workbook::CommandBars for OLE-embedded workbooks.

    But which container am I supposed to give an answer for when my IRibbonExtensibility::get_Pressed callback is called?

    Thanks for help,

    Arno

  • Anonymous
    September 21, 2006
    Another vote for hiding the "Press F1 For Help" message in a custom ribbon.

  • Anonymous
    September 23, 2006
    PingBack from http://www.scottjamison.com/blog/PermaLink,guid,616b329a-a397-4aeb-bf96-583ecb4bd6a5.aspx

  • Anonymous
    September 24, 2006
    I have asked about this before, but where is the accessibility in the Office 2007 UI?  Personally, I like it, though I think the hubris regarding the lack of UI customization for power users is very short sighted; but what of users who have vision problems (whether not being able to see the nearly microscopic QAT or unable to view the toolbars because of color-blindness)?  Want to replace labels with icons (or visa versa)? Sorry, can't do that.  Want to make all your icons larger?  Sorry, we've fixed the ribbon so that's impossible.  

    I ask the question again - why is the 2007 UI ignoring users with vision problems?  Perhaps Microsoft will consider this before RTM and an ADA lawsuit.

  • Anonymous
    September 24, 2006
    The comment has been removed

  • Anonymous
    September 25, 2006
    I have written a com add in but cannot bind a function written there using KeyBindings. plz help.

  • Anonymous
    October 02, 2006
    The download link for the UI style guide for solutions and add-ins doesn't work anymore: http://www.microsoft.com/downloads/info.aspx?na=47&p=1&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=15805380-F2C0-4B80-9AD1-2CB0C300AEF9&u=details.aspx%3ffamilyid%3d19E3BF38-434B-4DDD-9592-3749F6647105%26displaylang%3den Is there somewhere else we can obtain this?

  • Anonymous
    October 05, 2006
    Savraj Dhanjal's VBA-Sample seems not to work anymore with B2TR. Anybody else experienced this? Also tried UpdateIDMso on the customui.xml, but it crashes like below :-( Unhandled Exception: System.Security.SecurityException: Request for the permissi on of type 'System.Security.Permissions.SecurityPermission, mscorlib, Version=2. 0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed.   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.CheckSecurity( ParseRecord pr)   at System.Runtime.Serialization.Formatters.Binary.ObjectReader.ParseObject(Pa rseRecord pr) etc.

  • Anonymous
    October 05, 2006
    Is it really impossible to remove/make invisible a single button from an existing tab? I get an error message. That's the way I tried it:         <tab idMso="TabMailings">            <group idMso="GroupMailMergeWriteInsertFields"> <button idMso="MailMergeAddressBlockInsert" visible="false" />    </group>         </tab> Removing a complete group works. But only making a button invisible gives an error message. By the way: Does anybody here know the location where it is saved, which mailmerge fields from the data source correspond to the address block fields?

  • Anonymous
    October 05, 2006
    This one doesn't give an error but doesn't work either: <officeMenu> <button idMso="FileInternetFax" visible="false"/> </officeMenu> ...while this one works as expected: <officeMenu> <menu idMso="FileSendMenu" visible="false"/> </officeMenu>

  • Anonymous
    October 09, 2006
    If you have been developing custom Ribbon UI solutions like Mindjet or ClearContext , you've noticed

  • Anonymous
    October 18, 2006
    I have loaded the CustomUI.xsd. I tried to find the keyword "advanced", and it is impossible to find it ! Impossible to create an advanced element in a group in Outlook 2007. Is it normal ? Thanks

  • Anonymous
    October 18, 2006
    OK, it seems that "advanced" is replaced by "dialogBoxLauncher". Could you modify your examples or add a note on your examples ? Thanks

  • Anonymous
    August 11, 2008
    PingBack from http://hoursfunnywallpaper.cn/?p=1005

  • Anonymous
    September 01, 2008
    PingBack from http://www.easycoded.com/ribbonx-updates-for-b2tr/

  • Anonymous
    October 27, 2008
    PingBack from http://mstechnews.info/2008/10/the-office-2007-ui-bible/

  • Anonymous
    October 27, 2008
    PingBack from http://mstechnews.info/2008/10/ribbonx-updates-for-b2tr/

  • Anonymous
    May 31, 2009
    PingBack from http://woodtvstand.info/story.php?id=4638

  • Anonymous
    June 18, 2009
    PingBack from http://adirondackchairshub.info/story.php?id=2655

  • Anonymous
    June 19, 2009
    PingBack from http://debtsolutionsnow.info/story.php?id=12440