Re: Random occurance of 0x8002801D (Re-phrasing the problem)
Both your proxy/stub DLL and the type library offer marshaling
support for your dual interfaces. It depends what you register
last. Based on the error you get I'd assume the type library is
registered after the proxy/stub DLLs and takes over the marshaling
support for your dual interfaces. If it is subsequently unregistered,
your dual interfaces would have no marshaling support. However,
if after that the type library is registered again, the marshaling
support would magically reappear. Now I don't know if that's
exactly what's happening, but it seems a plausible explanation...
You can try removing all interfaces from being mentioned in the
library block. Not sure if this is feasible though...
Microsoft MVP [VC], MCSD
MVP VC FAQ: http://www.mvps.org/vcfaq
"Dilip" <firstname.lastname@example.org> wrote in message
Did you use oleview/registry to check if your dual interface is
registered properly and confirm that the Proxy/Stub key has
oleaut32.dll as its value, if the latter uses the type lib marshaller.
I haven't checked the registry (partly because its running on a machine
that developers usually don't have control over). Nevertheless the
other reason I haven't checked it yet is because this 'Library Not
Registered' is occuring very randomly. I might get it on one fine day
but if I re-try everything works fine. That is precisely what is
driving me nuts. I do not understand why I do not get that error *all*
the time. It only happens when the client apps try to instantiate the
dual interface and never for the other IUnknown derived interfaces.
Just for experiment-sake, do you want to try configuring your dual
interface to use MIDL generated marshalling (proxy/stubs) insterad and
see what happens?
This is the part I am not clear with. I thought this part is
automatically done because my dual interface definition is outside of
the library block in IDL. Doesn't the MIDL marshaler automatically
create the necessary proxy/stubs?