I feel empathy for the person who is tackling Outlook development for the first time. Thanks to a number of things, including the advent of a solid Outlook managed developer tools story in VSTO 2005, that number is growing. Nevertheless, the overall corpus of material for Outlook development is pretty big. Kind of reminds me of when I was working on one of my M.A. degrees and I used to read the Patrologia Latina (this link is the index of authors). Yeah, I would read for many hours in Latin- anything I could get my hands on. The Patrologia is a great source. But, I digress.
Getting in on the Outlook dev game can be about as daunting as reading Tertullian in Latin (I recommend reading his treatise on Patience for starters) for the uninitiated. OK- so where do you start? One approach I recommend is to look at what was added in the latest release. From there, you can follow lines of inquiry deeper and deeper.
So, take a look at the Navigation pane:
A lot of people want to work with this programmatically. I'm one of them. Until Outlook 2007, there was no OM for this. Now, you use some new objects for this. Here's an example:
Private Sub AddShortcut()
Dim objPane As Outlook.NavigationPane
Dim i As Integer
objPane = Application.ActiveExplorer.NavigationPane
Dim navMod As Outlook.NavigationModule
navMod = objPane.Modules.GetNavigationModule( _
Dim objSCuts As Outlook.OutlookBarShortcuts
Dim objBar As Outlook.OutlookBarPane
objBar = Application.ActiveExplorer.Panes.Item("OutlookBar")
For i = 1 To objBar.Contents.Groups.Count
If objBar.Contents.Groups.Item(i).Name = "Links" Then
objSCuts = objBar.Contents.Groups.Item(i).Shortcuts
Read more about new Outlook programmability here by Randy Byrne no less:
A lot of people want to work with this programmatically. I'm one of them. Until Outlook 2007, there was no OM for this. Now, you use the NavigationPane to get the whole thing started. As you see here, I am grabbing the NavigationPane instance from the ActiveExplorer. Then, I get a NavigationModule, in this case, the Shortcuts module. From there, it's pretty simple: I just look through the groups in the OutlookBar pane until I find a custom one where I put custom links. Here, I put the link to a shortcut file I use when I log into a remote server in a TS session. Because we are doing agile/xp programming here in our product unit, I have a machine I use to update our product backlog. Why do I have a separate machine for this you ask? Good observation. Well, it all has to do with having multiple versions of betas, alphas, RCs, and a slew of non-staged builds on my machines. So, to make sure I can always add to the backlog, I have a machine untainted by the confusion I gleefully inflict on my other machines.
Rock Thought for the Day: I bought Bob Dylan's newest record, "Modern Times":
Now, people who are perpetually stuck in the 1966 Bob Dylan era are missing out on a lot of things and, I don't just mean the music! What is obvious to me is that Bob is making the best music of his career right now. Often, as artists age, they just re-tread the tires of their old music. I really do not like "reunion" or "revisited" tours for bands. Look, we've already been there. Take us somewhere new. That's not to say I do not look forward to artists playing some of the most beloved tunes live, but this is only enjoyable for me if the band has already led me to a new dimension of the music. This is why I refuse to pay money to see the Rolling Stones. From all accounts, they are entertaining shows, but the music hasn't progressed much. Bob Dylan refuses to be a caricature. This albums is strongly inventive while staying true to the blues and folk roots that have fed his creative enterprise for many decades. The guitar work is meaningful and very present. His melodic composition and timing left me feeling so at ease and yet ready to move. Kudos for Bob, from my home state of Minnesota, for this great offering. I could not recommend it more highly.