Sparx Enterprise Architect supports AddIns so we can enhance its functionality and behaviour
in our daily work life as an architect. This is normally done by adding a subkey to the HKEY_LOCAL_MACHINE\Software\Sparx Systems\EAAddins key. This is described in Geert Bellekens’ Tutorial: Create your first C# Enterprise Architect addin in 10 minutes. As we can read in the tutorial, in addition to adding the aforementioned registry key, we have to register the addin as a COM component (which is normally done inside the HKEY_CLASSES_ROOT hive). However, being an architect I stopped enjoying administrative privileges on my office PC some years ago, which means I cannot create or modify entries neither in HKEY_CLASSES_ROOT or HKEY_LOCAL_MACHINE.

Luckily, there is a work around for this which makes Windows look in the HKEY_CURRENT_USER hive first when looking for EAAddIns key. The same holds true for the actual COM entries, where the HKEY_CLASSES_ROOT equivalent in the user part of the registry is HKEY_CURRENT_USER\Software\Classes.

So all we have to do is add the following entries to the registry and our addin will be loaded into the EA.exe address space (save it as a .reg file):

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Classes\WOW6432Node\CLSID\{39aff9b8-dfb2-4e24-9952-5061cb5fc326}]
@="biz.dfch.ea.addins.MyFirstAddin"

[HKEY_CURRENT_USER\Software\Classes\WOW6432Node\CLSID\{39aff9b8-dfb2-4e24-9952-5061cb5fc326}\Implemented Categories]

[HKEY_CURRENT_USER\Software\Classes\WOW6432Node\CLSID\{39aff9b8-dfb2-4e24-9952-5061cb5fc326}\Implemented Categories\{62C8FE65-4EBB-45e7-B440-6E39B2CDBF29}]

[HKEY_CURRENT_USER\Software\Classes\WOW6432Node\CLSID\{39aff9b8-dfb2-4e24-9952-5061cb5fc326}\InprocServer32]
@="mscoree.dll"
"ThreadingModel"="Both"
"Class"="biz.dfch.ea.addins.MyFirstAddin"
"Assembly"="biz.dfch.ea.addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/Public/biz.dfch.ea.addins.DLL"

[HKEY_CURRENT_USER\Software\Classes\WOW6432Node\CLSID\{39aff9b8-dfb2-4e24-9952-5061cb5fc326}\InprocServer32\1.0.0.0]
"Class"="biz.dfch.ea.addins.MyFirstAddin"
"Assembly"="biz.dfch.ea.addins, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"
"RuntimeVersion"="v4.0.30319"
"CodeBase"="file:///C:/Users/Public/biz.dfch.ea.addins.MyFirstAddin.DLL"

[HKEY_CURRENT_USER\Software\Classes\WOW6432Node\CLSID\{39aff9b8-dfb2-4e24-9952-5061cb5fc326}\ProgId]
@="biz.dfch.ea.addins.MyFirstAddin"

[HKEY_CURRENT_USER\Software\Classes\biz.dfch.ea.addins.MyFirstAddin]
@="biz.dfch.ea.addins.MyFirstAddin"

[HKEY_CURRENT_USER\Software\Classes\biz.dfch.ea.addins.MyFirstAddin\CLSID]
@="{39aff9b8-dfb2-4e24-9952-5061cb5fc326}"

[HKEY_CURRENT_USER\Software\Sparx Systems\EAAddins\biz.dfch.ea.addins.MyFirstAddin]
@="biz.dfch.ea.addins.MyFirstAddin"

Note1: Enterprise Architect being a 32bit/x86 executable requires us to have the COM entries defined under the Software\Classes\WOW6432Node\CLSID path (instead directly under Software\Classes\CLSID) if you are running a 64bit/x64 version of Windows 10 (which is very likely when you are using EA anyway).

Note2: the actual COM DLL is referenced under CodeBase with a file:// syntax and forward slashes.

To remove the addin you simply have to delete the following keys (save it as a .reg file):

Windows Registry Editor Version 5.00

[-HKEY_CURRENT_USER\Software\Classes\WOW6432Node\CLSID\{39aff9b8-dfb2-4e24-9952-5061cb5fc326}]

[-HKEY_CURRENT_USER\Software\Classes\biz.dfch.ea.addins.MyFirstAddin]

[-HKEY_CURRENT_USER\Software\Sparx Systems\EAAddins\biz.dfch.ea.addins.MyFirstAddin]

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.