Re: 8002801d: Library not registered.

Robert Hastings <[email protected]> Thu, 10 Nov 2005 09:52:27 -0800
Newsgroups gmane.comp.windows.devel.jawin
Message-ID <JAWIN%[email protected]>
Sounds like your JTB code is calling Invoke and the type library for the
interface is not registered. Is the interface marked as [dual]? On the C++
side implementing a [dual] interface is pretty easy. You first implement the
methods in C++. Then to support IDispatch::Invoke you simply look-up the
type-library containing the interface and then lookup the ITypeInfo of the
interface and finally call ITypeInfo::Invoke. ITypeInfo::Invoke will convert
the arguments and call your C++ method. So my guess is that this is what is
going on and the type-library lookup is failing. Is the type-library
registered? Do you have OLE View? If so you can find the interface and then
find what type-library it is in. If not you can do the same thing with
regedit. I picked a random interface on my machine to give you an example.
The default key value is the GUID of the type library.

HKEY_CLASSES_ROOT\Interface\{E10F0558-B0BC-4AEC-BAE6-1456F9607639}\TypeLib


HKEY_CLASSES_ROOT\TypeLib\{73C4A85C-DF36-4B31-9A50-FE3A432DA2AB}\1.0\0\win32

The default value is the path to the .tlb,.dll, or .exe (any resource
continer) that contains the typelibrary. If you have OLE View try to open
the type-library. Sometimes it's not the type-library but one that it
depends on.

Hope this helps,
Robert

-----Original Message-----
From: Discussion of Java/Win32/COM integration with Jawin
[mailto:[email protected]] On Behalf Of Gordon DuQuesnay
Sent: Thursday, November 10, 2005 8:10 AM
To: [email protected]
Subject: [JAWIN] 8002801d: Library not registered.

I am getting the following error when trying to call functions using the
code generated by the TypeBrowser.

org.jawin.COMException: 8002801d: Library not registered.

I don't have much COM experience.  But as far as I can tell the dll is
registered.

Any insight would be much appreciated.
Regards
Gordon DuQuesnay