Reg Free COM - Isolating COM Links - Missing '(default)'

So, I have a free VB6 registration library referenced by my .NET 3.5 assembly, which ultimately references a .NET 3.5 WinForms application (not sure if it matters, but is included to draw the picture).

I get the error message 'Problem allocating COM link' SomeVBDll ': Registry key 'HKEY_CURRENT_USER\SOFTWARE\CLASSES\CLSID\{dd1d7f58-1d6b-4370-a1b9-05c03816a128}\InProcServer32' is missing value '(Default)'

My initial attempt was to check if this value really exists, and then put it in place. This led to the same message above when compiling.

Has anyone encountered this problem and knew of any resolution?

Thanks in advance. Below is the manifest from the assembly, which directly refers to the VB6 dll.

  <assembly xsi:schemaLocation="urn:schemas-microsoft-com:asm.v1 assembly.adaptive.xsd" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#" xmlns:co.v1="urn:schemas-microsoft-com:clickonce.v1" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <assemblyIdentity name="Native.App.Core" version="1.0.0.0" type="win32" /> <file name="SomeVBDll.dll" asmv2:size="184320"> <hash xmlns="urn:schemas-microsoft-com:asm.v2"> <dsig:Transforms> <dsig:Transform Algorithm="urn:schemas-microsoft-com:HashTransforms.Identity" /> </dsig:Transforms> <dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <dsig:DigestValue>BWWHQTqNGUupT8xznLoN3jn7S9Y=</dsig:DigestValue> </hash> <typelib tlbid="{755c1df5-d0c5-4e10-a93d-54bf186e8daf}" version="1.0" helpdir="" resourceid="0" flags="HASDISKIMAGE" /> <comClass clsid="{dd1d7f58-1d6b-4370-a1b9-05c03816a128}" threadingModel="Apartment" tlbid="{755c1df5-d0c5-4e10-a93d-54bf186e8daf}" progid="SomeVBDll.MyClass" /> </file> </assembly> 

EDIT ///

Marking all classes in the VB6 DLL as MultiUse seems to have solved the problem. While this comes up with a problem that I am facing and still allows me to use the free COM protocol, does anyone know how to get around to installing all the Instancing to MultiUse COM classes?

+6
c # vb6 com
source share
2 answers

The only solution I saw (if you want to avoid possible security / maintenance problems marking all classes as MultiUse) is to delete the registry key "... / InProcServer32", but this is a workaround for the standard "be careful with the registry" . Warning.

0
source share

When marking as private classes, VB6 COM does not register a value for Inproc32, and the assembly manifest generated by Visual Studio is incomplete. There are some tools, such as Make my Manifest http://mmm4vb6.atom5.com/ , that can help you create a manifest for your components.

0
source share

All Articles