Unable to cast COM object (Delphi XE7 - Delphi Berlin incompatibility)

1

I installed Delphi Berlin recently. Didn't worked so I uninstalled it same day. Now my Delphi XE7 stopped working. I get this error when I try to compile anything, and I don't know how to fix it.

Unable to cast COM object of type 'System.__ComObject' to interface type 'Borland.Studio.Interop.IInteropMessageService'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{FF877130-F96F-3885-9A3E-3093A3C1D831}' failed due to the following error: Error loading type library/DLL. (Exception from HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))

The error is just like shown above. No source file is mentioned.


I already tried to use the 'fix' provided by Embarcadero but their tool won't work:

C:\Delphi\Delphi XE7\bin>tregsvr -t Borland.Studio.Interop.tlb
Embarcadero Turbo Register Server(32) -- COM Server Registration utility.
Version 1.3  Copyright (c) 1997-2010 Embarcadero Technologies, Inc.

Type library name: C:\Delphi\Delphi XE7\bin\Borland.Studio.Interop.tlb
Type library GUID: {F939BACD-3FD5-437A-833F-BA3535A45966}

Error: Error accessing the OLE registry

FIX (suggested by @rruz): the utility above needs to be run under "Admin" (elevated) permissions. Thanks @RRuz.

delphi
delphi-xe7
delphi-10.1-berlin
asked on Stack Overflow Oct 8, 2016 by Z80 • edited Nov 23, 2016 by LU RD

1 Answer

0

I had same problem, but it was a bit worse.

I also had to register this type library using the following command. Run this with elevated rights:

tregsvr -t Borland.Studio.ToolsAPI.tlb

Probably caused by moving Delphi installation to a different folder, originally installed in wrong folder, migration wizard solves some of it but apparently not all, now renaming works again.

Machine a bit sluggish, probably caused by process monitor still running, fortunately the new version this tool worked, which allowed me to find this problem.

This tool shows all registry keys queried... and this particular tool popped-up as "name not found".

I did it as follows:

  1. Enable capture events
  2. Clear screen.
  3. Very quickly go to refactor-rename

Immediately stop capture events.

Then analyze log ;)

answered on Stack Overflow Aug 23, 2018 by Skybuck Flying • edited Mar 31, 2019 by GolezTrol

User contributions licensed under CC BY-SA 3.0