infrequent grumblings of a software engineer and then some… (also some Delphi programming)

Posts Tagged ‘Outlook’

Changing an Office add-in’s load behaviour in multi-user environments

Posted by tier777 on 2009-12-11

Let’s say you have bought or downloaded some third-party Office COM-addin to use on your Citrix- or Terminal Server. Many of these will by default install for all users. What if for one reason or another you only want to let a subset of your users work with that addin? Well, here’s what:

Office determines what addins to load by looking at the entries below the following two registry keys:



(where OfficeApp should be replaced with Outlook, Word, Excel, etc.)

The sub-entries will be named after the addin’s ProgID, e.g. “Microsoft.VbaAddinForOutlook.1” is one included by default with most versions of Office. From the name it should typically be fairly obvious which entry belongs to the particular addin that you’re after. For the purpose discussed here it is irrelevant what values these sub-entries actually contain.

As you may have guessed the entries under HKLM define which addins get loaded for all users while the entries under HKCU define the ones that should be loaded for that user only. Thus, in order to change an addin’s load behaviour from “all users” to “some users” all you have to do is essentially move the relevant entry from HKLM to HKCU, e.g. by exporting the entry into a .reg-file and then deleting it, then using notepad to change the hive to HKEY_CURRENT_USER and finally re-import that .reg-file again for the users that should use the addin (or just use a group policy object). Remember that you will have to repeat this whenever you install an update of the addin in question as that will probably rewrite the entry under HKLM.

More details about addin registration from a developer’s point of view can be found on MSDN:

Registry Entries for Application-Level Add-ins
(You can disregard the note about registration for all users being ignored in that article as that only applies to VSTO-addins, not to COM-addins)


Posted in Outlook, Tips and Tricks | Tagged: , , , , , , , | Leave a Comment »

Resources for Developing Outlook-Addins with Delphi

Posted by tier777 on 2009-06-09

[deutsche Fassung dieses Artikels: siehe voriger Eintrag]

Here’s a commented list of links that accumulated during the preparation for my talk on developing Outlook-addins with Delphi at last weekend’s Delphi-Tage event in Hamburg (also containing some information that I did not end up covering for various reasons):

Official API-References and related Information:

Source code, Tutorials and Example-Addins:

  • Extended MAPI-Headers for Delphi:
    (indispensable for any kind of Extended MAPI development, also when combined with Redemption – see below)
  • BabelFish for Outlook:
    (the required target WebService is no longer online but the source code of this addin works very well as a starting point for new addins)
  • Trust Filter for MS Outlook:
    (a non-trivial Outlook-Addin with freely available source code, written in Delphi)
  • – Developer Learning Center for Microsoft Outlook
    (Heaps of examples, articles, tutorials, links, etc. – mostly VB(A/S) or C# rather than Delphi, though)
  • – Outlook & Exchange Solutions Center
    (the definitive information portal for all things Outlook and Exchange)

Products presented or used:


(Attention! Time for a quick commercial break. 😉 )

  • Lucatec GmbH:
    (my “hand that feeds”, without whom this talk wouldn’t have happened)
  • Lucatec® Mask:
    (our addin for automating several tasks related to the use of shared mailboxes or Public Folders in a team, Shareware)

(end of commercial break)

    (extensive articles and tutorials all about COM programming with Delphi and C++-Builder by Binh Ly – a real eye-opener for anyone that has been struggling with this topic so far)
  • You can use the following .reg-file to perform registration and unregistration of COM-DLLs directly from the Explorer context menu:
Windows Registry Editor Version 5.00



@="regsvr32.exe \"%1\""


@="regsvr32.exe /u \"%1\""

Posted in Delphi, Outlook | Tagged: , , , | Leave a Comment »

Creating Outlook-Addins with Delphi – Part 2 (Option Pages)

Posted by tier777 on 2009-06-04

Creating Outlook-addins with Delphi - Part 2

So, here’s the second example on creating Outlook-Addins with Delphi which will likely not be included in my talk at the German Delphi-Tage due to time constraints.

In this one I show how to add an option page to your addin, which is typically used for letting the user configure your addin or for displaying version and contact information.

Again, raw and unedited (I’m probably talking too fast in this one). Recorded at 1024×768 in English, 9 minutes and 28 seconds.


[Part 1]

Posted in Delphi, Outlook | Tagged: , , , , , , , | Leave a Comment »

Creating Outlook-Addins with Delphi – Part 1

Posted by tier777 on 2009-06-04

Creating COM-Addins with Delphi - Part 1
I have now uploaded a screen video of the first example from my upcoming talk about creating COM-addins with Delphi at the German Delphi Tage event.

This is raw and unedited and I assume prior knowledge of some COM-basics and terminology like CoClasses, ProgIDs and type libraries and how to create and register COM-DLLs.

This was recorded at 1024×768 in English language (while the live talk will be in German) and is 7 minutes 29 seconds long.


[Part 2] Option Pages

Posted in Delphi, Outlook | Tagged: , , , , , , , | 3 Comments »