Fun with OLEView to Discover What's New in Office 2007
I'm working on a revision to my book for Office 2007 and one of the things I did for the original book that I'm now doing again is looking at the object model and seeing what things changed between versions of Office--in this case between Office 2003 and Office 2007.
I'm going to post several articles on the "fun" things you can do to explore the object models. One of the simplest things to do is to dump the type libraries as IDL files (a format used to specify the COM interfaces and coclasses that make up an object model) and then you can do things like use windiff to diff the Office 2003 IDL file against the Office 2007 IDL file and see what changed.
So, how to do this... You should have a copy of OLEView on your machine if you've installed Visual Studio.
My copy is found at:
"C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\OleView.Exe"
Launch OleView and you get a screen like this:
Next, expand out the Type Libraries folder at the root folder level. Under the Type Libraries folder double click the node Microsoft Excel 12.0 Object Library (12 is the internal version number for Office 2007). You then get a view of the type library with a nice tree view on the left showing all the types and the text on the right. What we're after is the text on the right
I have problems doing a "Save" from this dialog, instead what I do is select all the text on the right side, paste it into notepad, and save it as "Excel12.idl". Then on a machine with Office 2003 on it, I do the same thing except with the Microsoft Excel 11.0 Object Library (11 is the internal version number for Office 2003) and save it as "Excel 11.idl"
Then you can launch windiff (my copy is at "C:\Program Files\Microsoft SDKs\Windows\v6.0A\bin\WinDiff.Exe"), choose Compare Files from the File menu and pick "Excel11.idl" and "Excel12.idl" and you get a view where you can diff the two files and see what was added and changed in Excel 2007 versus Excel 2003:
By looking at the new interfaces that have been added, you can quickly deduce that Excel 2007 introduced 51 new objec
Excel 2007 introduces 51 new objects to the object model. These new objects are, listed alphabetically: AboveAverage, Action, Actions, ChartFormat, ChartView, ColorScale, ColorScaleCriteria, ColorScaleCriterion, ColorStop, ColorStops, ConditionValue, Connections, Databar, DialogSheetView, FormatColor, HeaderFooter, Icon, IconCriteria, IconCriterion, IconSet, IconSetCondition, IconSets, LinearGradient, ModuleView, MultiThreadedCalculation, ODBCConnection, OLEDBConnection, Page, Pages, PivotAxis, PivotFilter, PivotFilters, PivotLine, PivotLineCells, PivotLines, Ranges, RectangularGradient, Research, ServerViewableItems, SheetViews, Sort, SortField, SortFields, TableStyle, TableStyleElement, TableStyleElements, TableStyles, Top10, UniqueValues, WorkbookConnection, and WorksheetView.
You can do the same thing for Word (Microsoft Word 12.0 Object Library), Outlook (Microsoft Outlook 12.0 Object Library) and start to explore what is new in the Office 2007 object models.
Comments
Anonymous
March 29, 2008
That's pretty cool, especially for 'outsiders' like me (...) But don't you guys have al this documented and ready to grab if you need it internally? ;-) Cheerz, -= Maarten =- PS: I just did a presentation on the Dutch Community Launch Event (VS2008,SQL2008,WinServer2008) on "What's new for VSTO in VS2008" and what surprised me was that only a couple of guys in the audience started developing apps for Office 2007. The rest either didn't develop Office apps at all or were just creating apps for O2003! So all fairly new to them...Anonymous
March 19, 2009
There a lot of changes between Excel 2003 and Excel 2007 for developers.  Here are some highlights