As Tim announced the other day, the “Calendar Printing Assistant for Outlook 2007” (codename: xcal) is the latest Microsoft application to use WPF. And as Erwyn noticed, one of the things that makes xCal different is that it uses a significant amount of hwnd interop. XCal is hosted inside the hwnd-based Office shell, and has a couple different WPF pieces. There’s the task pane, there’s the main calendar view, and there’s a miniature “calendar bar” piece. xCal uses the standard Office menus and toolbars, so those pieces are Win32-based. XCal also uses standard Win32 office functionality for handling keyboard accelerators.
XCal has been in the works for several years (it’s a test bed not only for WPF but also for some other Office technologies). But the strange part is, until earlier this year, no one on WPF had any idea there was any interop involved — xCal sent us millions of questions in millions of e-mails, but not one of them said anything about using interop! It wasn’t until they filed one an obscure bug about keyboard event ordering when using custom nested message loops that we learned there was any interop involved.