Andrew Coates ::: MSFT

It's all about community!

May, 2008

  • Andrew Coates ::: MSFT

    Unable to customise context menus in PowerPoint 2007?


    I got this question from one of our partners yesterday.

    The application developed by my client is an add-in for PowerPoint. One of the features it provides involves adding custom items to the context menu of shapes and pictures using the Office object model. This add-in works perfectly well in 2003, but not at all in 2007.

    So far, what I’ve discovered is that the only context menu I can add items to is the Frames CommandBar. Some other CommandBar interfaces in the Application.CommandBars collection allow me to add without throwing an exception (e.g. Pictures Context Menu), but they don’t actually show when the application is running.

    I’ve read on a couple of forum posts that you simply can’t do this anymore. Is this true? Or is this a problem with either Office or the way we are attempting to customise the context menu?

    If you can’t add items to the context menu anymore, then what is the recommended method of displaying context information for such objects? I have played with the idea of displaying a tab in the Ribbon bar when an item is selected, but it just doesn’t jump out at users like the context menu...

    I couldn't see a way of doing what was required either, so I kicked the question up to one of our internal tech aliases. Unfortunately, the answer is not what you’re probably hoping for (bug rejected – feature deprecated):

    Unfortunately, the PPT 2007 OM does not allow adding context menu items for all objects (like shapes), the suggested way is to use Ribbon UI customization. Have a look at the following bug that contains a detailed explanation on this (and an internal link)

    The explanation in the bug record was in the form of a letter to the original (external) raiser of the bug:

    The Microsoft PowerPoint and User Experience Team have investigated the "PPT2007: Needs ability to Customize Right Click menus in PowerPoint” feature request and determined that this is not a feature that is feasible to implement outside of a full product cycle due to the extensive redesign and integration of core menu and object model functionality that would be required. For this reason, and because an explicit goal of the Office 2007 product’s design was to expand Ribbon functionality and deprecate classic menu functionality, we recommend that xxx design this portion of its solution around the new Ribbon feature, given that PowerPoint 2007 no longer provides legacy right-click menu customization.

    We understand that the intention is for you to customize the right-click menus with custom actions to navigate through the application and perform various tasks, however, right-click menu creation and functionality is not a feature in Power Point 2007. There is currently no upgrade path for previous Power Point solutions that have customized right click menu functionality. All previous Power Point solutions using this functionality will need to implement the Ribbon into their solution to drive user choices.

    In reviewing the proposal of adding in legacy right-click menu customization functionality, the Microsoft User Experience Team found several areas that pushed a potential solution beyond the scope of a Hotfix or CDCR.

    1. The sheer scope of designing and adding the right-click menu customization feature and full legacy functionality exceeds the risk capacity for post-release changes. Design changes of this scope typically require a full product cycle in order to ensure end-to-end quality.

    2. Office 2007 has a new object rendering engine, which could cause inconsistencies if the submenu feature were implemented. A new solution would have to handle all changes between the two code bases.

    3. PowerPoint 2007 does not provide the same high-fidelity representation of legacy Main Menu functionality that was available in PowerPoint 2003. The layout of the controls in the Ribbon's Add-ins Tab is sub-optimal with a highly complex add-in such as yours. To fully maximize the end-user experience, the add-In would need to be upgraded to fully utilize the Ribbon UI, as part of moving to Office 2007.

    Our recommendation is for you to combine the redesign of both the legacy Main Menu and right click menu issues together. This will provide the opportunity for your users to move to the Ribbon in both areas and utilize the new Ribbon functionality.

    In summary, Microsoft recommends that you model your UI on Office’s own built-in Ribbon UI, specifically around the use of Contextual Tabs as the mechanism for displaying contextually relevant content. For each object type that the add-in supports, a tab could be added to the appropriate contextual tab set that would contain the Add-In-specific tools for working with that object. With this type of design, the UI would better match the UI of Office 2007, and the end-users could potentially not require much extra training on top of the training for Office 2007 itself. For more information, please check out the Office Fluent UI Style Guide at the Office Fluent Ribbon Developer Portal.

    I guess that it makes sense in the long term to continue to leverage the great work the Office UI team have done with the Ribbon and the Fluent UI generally, but I do feel for the team who are looking to implement equivalent functionality in the new version of their Add-In as already runs in the current version.

    Backwards compatibility is a perennial problem.

  • Andrew Coates ::: MSFT

    Deploying VSTO 3 solutions


    While the default mechanism for deploying VSTO v3 Add-Ins is ClickOnce, there there's now also a documented way to deliver VSTO solutions via an MSI installer. By extension, this should mean you can push it out via group policy (or SMS or whatever).

    Mary Lee's done a good post on this:

    The code and steps outlining creating a setup project are available here:

    Misha Schneerson has done a 3-part blog post on deploying your VSTO Add-in to all users (using HKLM instead of HKCU):

  • Andrew Coates ::: MSFT

    More Office Developer Documentation


    She's indefatigable! Erika Ehrli keeps posting these gems. Hot on the heels of my post about Office Object Model References, I discovered two great posts from her.

    The interactive developer map is a WPF application that

    "... helps developers visualize the different programs, servers, services, and tools that will help them build solutions. It allows them to drill down to each product and technology and learn about new features, objects, Web services, namespaces, and schemas required to extend Microsoft Office and build custom Office Business Applications (OBAs). This application also includes links and pointers to online resources available on Office Online, MSDN, TechNet, Channel 9, Channel 10, and OBA Central."

    Screen shots

    The OpenXML Format SDK Class Diagram Explorer is a very cool Silverlight 2 app that uses DeepZoom to drill down into the detail of the class diagram. Think of it as a zoomable poster.

    Check them out.

  • Andrew Coates ::: MSFT

    Microsoft launches RoboChamps, a worldwide simulated robotics competition platform built on .NET


    It's seems like competitions are the flavour of the month. A couple of weeks ago we launched a world-wide competition for people building simulated robots.


    This is "... a simulated robotics league that is open to academics, hobbyists and developers from around the world, that demonstrates the power of the Microsoft platform to enable a broad range of developers to explore new ways to use .NET for robotics programming. "

    More information:

    Website –

    Channel 9 video –

    .NET Rocks Podcast – video –

  • Andrew Coates ::: MSFT

    Open XML Links - catching up.


    I'm catching up with a bunch of Open XML blogging from ages ago, so apologies if some of these are old news to you.

    Binary Format Documentation Released Under the OSP and Binary to OOXML Translator Project

    Brian Jones has blogged about the great news that we've made the binary office document formats freely available under the OSP (of course, they were already available for people to use if they agreed to honour a license agreement). In the same post he talks about the open source project for translating binary documents to Open XML.

    As promised last month, the binary documentation (.doc, .xls, .ppt) is now live. In addition to this, the project to create an open source translator (binary -> Open XML) has now been formed on sourceforge, and the development roadmap has been published. Read my earlier post for more background on this:

    Another great surprise in all of this is that we've made the documentation for a few other supporting technologies available as it may be of use to folks implementing the binary formats:

    The technologies included are:

    • Windows Compound Binary File Format Specification PDF | XPS
    • Windows Metafile Format (.wmf) Specification PDF | XPS
    • Ink Serialized Format (ISF) Specification PDF | XPS

    OpenXML Developer Resources

    Erika Ehrli has a great set of links for OpenXML Developers in categories including "Getting Started with OpenXML Development" and "OpenXML Format SDK"

    OpenXML Format SDK

    Open XML SDK roadmap: timeline

    On the topic of the OpenXML Format SDK, both Erika and Doug have blogged about it in some detail.

    DAISY Translator Released!

    Gray Knowlton's blogged about the availability of the Open XML to DAISY Translator. DAISY is a specification that allows markup enabling text to be easily processed by a reader application making it accessible to people with problems reading printed or electronic text, and the translator facilitates the creation of DAISY-compliant documents from OpenXML.

  • Andrew Coates ::: MSFT

    Office Object Model References on MSDN


    Sample Object Model Map

    On an internal alias, I recently got asked a question that had come from a customer:

    "I wouldn't have harassed you like this, except that I've done heaps of searching and can't locate what I need.
    My company has a new CIO, a consequence of which is the need to now embrace all things Microsoft.  We are currently doing some investigation on .NET stuff and Office 2007, but I'm having difficulty finding some concise documentation on Object Models.  I've trawled through MSDN and managed to find a few things out, but what I was really wondering was if there are any one or two page Object Model posters, similar to the ones you use to get in Notes?  I can't see anything useful on MSDN and was wondering if you had access to anything."

    I wasn't able to find any posters, but there is a great set of hyperlinked object model diagrams available. Here are a few:

    In general, I started at the Office Developer Centre and clicked on the Library tab. I navigated using the treeview to get to the 2007 Microsoft Office System node and then chose the various products, the Developer Reference and then the Object Model reference.

  • Andrew Coates ::: MSFT

    VSTO/VSTA Power Tools and Submitting Feedback on MS Products


    Anyone who's been to any of my recent presentations knows that I'm a passionate advocate of developing on the Office platform. The release of VSTO v3 with VS2008 was a big step forward in making Office development a truly first-class .NET development experience with its support for customising the Ribbon, Outlook form regions and (probably most importantly) true click-once support for deployment and updating. Of course, for all the goodness that was included with the official VSTO v3 release, the team had other things they wanted to ship but couldn't given the time and dependency constraints. In the interim, they've shipped a suite of these extras as the Microsoft Visual Studio Tools for the Office System Power Tools v1.0.0.0 (catchy name, huh?).

    From the docs:

    The Power Tools v1.0 Toolset

    There are nine tools in the first release of the VSTO Power Tools, including two runtime tools and seven design-time tools:

    Tool Description Type of Tool
    Open XML Package Editor A graphical treeview-based editor for examining and editing Open XML Package files (including Word, Excel and PowerPoint documents). Add-in to Visual Studio.
    Ribbon IDs Tool Window A custom tool window that displays all re-usable built-in Office Ribbon IDs. Add-in to Visual Studio.
    Office Custom UI Manager A set of classes for coordinating multiple instances of Ribbon, custom task pane, and custom form region objects. Runtime class library and sample source code.
    Office Interop API Extensions A set of C# classes for handling parameterized properties and optional/named parameters, as well as for LINQ-enabling Office collection objects. Runtime class library.
    SharePoint Feature Sweeper A GUI tool that cleans up unwanted SharePoint features from the developer's environment. Standalone Windows Forms application.
    SharePoint Workflow Package Generator A tool to package a SharePoint workflow project so that it can be deployed. Scriptable command-line tool.
    VSTO/VSTA Pipeline Verifier A GUI tool that reflects over custom pipeline assemblies to validate the complete VSTA pipeline. Standalone Windows Forms application.
    VSTO Developer Cleaner A GUI tool that removes leftover build artifacts from the developer's computer. Standalone Windows Forms application.
    VSTO Troubleshooter A diagnostic tool that examines a computer for the necessary prerequisites for running VSTO solutions. Standalone Windows Forms application.

    Andrew Whitechappel has blogged about these tools here and here, and in particular talks about how to submit feedback on them via Microsoft Connect:

    1. Go to Microsoft Connect at
    2. Sign up or log in to the site.
    3. On the left menu, click Available Connections.
    4. On the next page, click Visual Studio and .NET Framework.
    5. On the next page, choose one of the following:
      To see if your issue already exists, click Start Here. In the Search Feedback box, search for the issue. If the issue does not exist, click Submit Feedback. On the next page, click Bug Submission Form or Suggestion Submission Form.
      To submit a bug or suggestion, click Submit a Bug or Submit a Suggestion.
    6. On the submission form, enter the required information. In the Description box, specify “VSTO/VSTA Power Tools”.
    7. When you are finished, click Submit.

    This is great advice for submitting feedback/bugs/suggestions on all Microsoft products and technologies in general. Submissions from this tool go directly into the appropriate product teams' databases for triage and action. It's the best way to get your voice heard.

  • Andrew Coates ::: MSFT

    Starting the conversation at Tech.Ed



    The three themes of Tech.Ed this year are Learn, Explore and Connect. For me, at least, much of the value of attending a technical conference is to get to meet and interact with like-minded geeks and subject matter experts. I was having a chat with Dr Neil this afternoon and we were chucking around ideas to make this connect thing a reality. Neil had a suggestion that I've really taken to and I'd like some feedback from you folks too. What if we were to make the first session after the keynote on Wednesday a panel discussion and "track kick-off" (one for each track). We'd have most of the speakers from that track on the podium and a moderator. The agenda would look something like this:

    10 min: Introduction from the track owner - what's this track about, what will we cover, where are there cross-over sessions with other tracks etc.
    20 min: 2 minutes (max) from each speaker on what they're presenting on, what else they're passionate about, why you should come to their session(s) and where they'll be hanging out during Tech.Ed
    30 min: Moderated discussion with the panel and audience on a topic/topics relevant to the track

    Of course, this wouldn't be the only opportunity to initiate and continue the conversation. There'll be a discussion board on CommNet, a connect tool to help you to find those like-minded geeks, lounges in the expo hall, round tables for meals, an Ask the Experts evening, speaker 1:1s and lots more.

    What do you think?

  • Andrew Coates ::: MSFT

    Registrations open for Tech.Ed Australia


    It's alive! The registration site for Tech.Ed Australia is live. Don't miss out on the great Early Bird special offer. There's a couple of great features of this Silverlight-enabled page. There are testimonials from Tech.Ed alumni and two consolidated blog feeds from the TechEd team and from the Track Owners.

    Meanwhile, our Kiwi cousins have stolen a march on us with 25% of their tickets gone already. Onya Darryl!

  • Andrew Coates ::: MSFT

    Visual Studio 2008 certifications demystified


    Still catching up on my blogging, so this one's a little old. The irrepressible Trika blogged about the VS2008 series of certifications and included a bunch of different paths through the tracks based on your current certification status. There's also a link to a Live Meeting webcast about all this stuff. Check it out. Of course, if you can wait, you'll be able to take these certifications at TechEd in September at a significant discount.

Page 2 of 3 (25 items) 123