home | get Sue’s code | forums | share code | registration

More Outlook Resource Sites

Microsoft Developer Network (MSDN)

FAQs and other general resources

Outlook Developer News

Updated solution for a custom form list box bound to a keywords field

On an Outlook custom form, if you bind a multi-select list box to a keywords field and populate the list box's rows in code, the list box will have no selected rows when the user reopens a previously saved item, making it look like the user's data has been lost. The Form Controls Demo form has been updated to demonstrate a workaround for this issue.

The problem apparently is that the field value is applied to the control before the list box rows are populated. The solution is to use code in the form's Item_Open event handler to select the appropriate rows after the list rows have been populated, but -- to add to the complications -- it is not possible to access the value of a custom keywords field directly. A workaround for that issue is to bind a text box to the keywords property and read the value from the text box control; see More Fun with Keywords. To simplify the process of finding the row whose text matches a particular value in the keywords field, the code uses a Scripting.Dictionary object to hold the same values as the data used to populate the rows and handle the lookup.

To see the solution, download Form Controls Demo.zip (9kb, 9 Jul 09), unzip it, open the .oft file, and publish that form. Then use the published form to create a new task.

This form also demonstrates two other ways of handling a multi-select list box and two ways to handle option buttons. For more information on those controls and others, see Controls on Outlook Forms.

New hotfix for Outlook 2007 - June 30, 2009

The June 30, 2009, hotfix package for Outlook 2007 fixes several developer issues:

A new ReliableFolderMoveEvent registry entry solves a problem with the BeforeFolderMove event ceasing to fire after a while.

When applications create new categories programmatically, those categories should now still be available after a restart of Outlook.

Custom form icons that weren't displaying on Windows Vista with a high DPI display (for example, 120 DPI) should now display correctly.

In Cached Exchange Mode with the reading pane active, messages based on custom forms that have VBScript code behind them should no longer increase CPU usage or crash Outlook.

The hotfix also resolves a problem with accessing fields in CDO 1.21 applications.

Outlook 2007 Programming chapters available on MSDN

Three chapters from Sue Mosher's Microsoft Outlook 2007 Programming book are now available on MSDN:

Sample code for these chapters is available from the get Sue's code link at the top of the page.

Outlook 2007 performance improvements in SP2

Office 2007 Service Pack 2 targets Outlook with a long list of performance improvements related to .ost and .pst files, startup, shutdown, and folder switching. For details, see:

Outlook 2010: No support for Exchange client extensions

Back before Microsoft extended Outlook with support for add-ins, beginning with Outlook 2000, developers added functionality to Outlook by building Exchange client extensions -- or ECEs -- using the Extended MAPI programming interface. Microsoft in fact built its own ECEs to manage such Outlook features as deleted item recovery.

Beginning with Outlook 2010, ECEs will not load in Outlook, according to Randy Byrne of the Outlook team. Randy provides more background on ECEs in his article for the Outlook team blog, where he explains the options that ECE developers face if they want to redesign their applications to work in Outlook 2010 and asks for your feedback, especially your concerns about parity between ECE and add-in capabilities.

From the Forums

Basic Outlook Techniques
2003 Contacts Notes Lost Format Toolbar
I've seen No format in New Emails corrected by Renaming outcmd.dat and re-starting Outlook. That doesn't fix the loss of Format Toolbar in the Notes area of Contacts. Any ideas?
inbox and subfolder hidden - visible with...
Hi all I'm trying to figure out how to return my inbox to it's original state. I can't currently see it within outlook 2007 but it is visible, with all messages intact, from Outlookspy and mfcmapi. All other folders are intact. Can anyone guide me through...
Outlook Form Design
Reply using toolbar, with template and from...
Hello I have been doing a bit of work, but can't get this to work as intended. Ideally in the inbox view, the user can press a toolbar button to open a template with a different from field (possibly auto send instead of creating the message). I...
How to save Outlook Form on *.ofs file???...
Lots tutorial show you have to save Form that created in Outlook 2007 to *.ofs. But there I cant find this *.ofs option. There you only save form as *.oft , Html, ... but no *.ofs.
Outlook Expert Techniques
Calendar in ASP: How do I change the "View"?...
Hi: I'm using the folllowing code to show a calendar in an asp page. How do I change to a Month View? <OBJECT classid=CLSID:0006F063-0000-0000-C000-000000000046 id=ViewCtlFolder width="100%" height="630" Codebase="http://activex.microsoft.com/activex/controls/office/outlctlx.CAB#ver=9,0,0,3203">> <param...
How to add new column in the view panel
I have a requirement to add a new column in the inbox view panel. It should be like the Follow up flag in the outlook. Our new column is also display the images. And image should change on the basis of mail content. I know how to add a new button in...
Outlook and .NET
CreateItemFromTemplate() Grows Default .PST...
Hi! I'm writing a plugin in C# and having a few strange problems. I first create my own PST with CreateStoreEx() Then I add folders to this store. Now when I try to load up an .MSG MailItem using CreateItemFromTemplate({path}, {new folder in my new...
Formregion not loading
Hi. I've created a vsto app for Outlook 2007 in Visual studio 2008 that adds a formregion to the appointment item window. When I deploy the app with ClickOnce, the form region runs and displays but when I deploy the app via a MSI, the form region does...
Code Essentials
Attaching documents automatically to a signature...
I want to have a signature with a document already attached that I can send quickly. Is it possible through outlook to create a macro to do this ie create new mail message with subject X, message Y and attach document Z? Does anyone have the code? Or...
Task form command button to open a folder...
I have tried and tried again to get this to work - please help. I've designed a custom task form called "Office Team2" and need a button to launch a folder with the path depending on which "building" is selected under form field "BUILDING". Details...

Newest Resources

Print all attachments at once using VBA -- Udi Shitrit shows how to use the Win32 to print all of a message's attachments -- no need to know the file types involved.

Outlook 2010 MAPI Reference -- Official Microsoft reference for MAPI development against Outlook 2010. Header files are also available.

Enter the 64 Bit MAPI Dragon -- Outlook 2010 will be available as both a 32-bit and a 64-bit application. Stephen Griffin previews Microsoft's plans and documentation for 64-bit MAPI support.

(Less than) Portable Search Folders -- Stephen Griffin explains why search folders created by Outlook object model code may not always work and offers a partial solution.

How to programmatically select a custom Form Region -- Helmut Obertanner demonstrates, with screen shots, how to create a form region for an Outlook 2007 contact form and add a button to the Ribbon to switch the Inspector display to the region.

Customize the built-in Outlook Select Names dialog (or any other) -- Helmut Obertanner demonstrates how to intercept an built-in Outlook dialog and display instead a custom .NET form.

Outlook Forms Step by Step -- Create a check request form and make it available on the company intranet with this 16-part illustrated guide.

Visual Studio Tools for Office 2007: VSTO for Excel, Word, and Outlook -- Eric Carter and Eric Lippert update their book on creating Visual Studio Tools for Office applications to cover Visual Studio 2008 and Office 2007.

Outlook Redemption version 4.7 -- Adds the ability to enumerate nicknames stored in the .nk2 file and an RDOStore2.Searches collection that represents search folders, plus other new properties, methods, and events and various bug fixes.

Outlook-Redemption discussion list -- Yahoo! group for dicussing issues related to the Outlook Redemption COM library

Making a Custom Ribbon Appear Only for a Custom Outlook Form -- Norm Estabrook from the VSTO team shows how to make custom tabs, groups and controls appear only in cases where the user opens a custom form in Outlook.

LINQ to DASL: Changing Appointments with C# and LINQ -- Short video that demonstrates how to use VSTO Power Tools to perform a DASL query on the Calendar folder using the LINQ syntax and then perform additional string value checking with a regular expression

Outlook Context Menus and Creating a Meeting from an Email -- Short video demonstrating how to create a context menu command for sending a meeting request to recipients of an email message. Note: The Inspector wrapper class is extraneous and overcomplicates the project.

How to get the IWin32Window for Outlook -- This C# class from Helmut Obertanner could be used to pass the Outlook as parent to .Net Forms and Messageboxes to prevent those UI elements from being hidden by Outlook windows.

Additional custom panel in Microsoft Outlook -- Lukas Neumann uses Windows API techniques to hack the Outlook user interface and add a custom panel in the Explorer window.

Login

login
password
Remember me

You will need to register and log in if you want to download the source code for the Microsoft Outlook Programming book. The forums and code sharing areas are open to both registered and non-registered visitors.

Hot Code Samples

Beginner
Save and remove attachments from email items...
Sending a mail message with today's appointments...
Add appointment to other user's Calendar
Intermediate
C# AddIn sample: InspectorWrapper & CommandBar...
Send Word document as message
Reply with Attachments
Advanced
Set color label on appointment
Insert user signature with VBA
Set email account signature in Outlook 2003...

OutlookCode RSS Feeds

All OutlookCode.com content

Outlook developer news

New Outlook developer resources

OutlookCode.com forums

OutlookCode.com code samples

OutlookCode.com articles