Registering COM DLLs

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
3 messages Options
Reply | Threaded
Open this post in threaded view
|

Registering COM DLLs

Bill Schwab-2
Hi Blair,

After a longer pause that I'd have liked (sorry), I'm gearing up for another
run at registering and calling my test COM DLL.  The famed/flaky NT4 machine
is now running win2k (which will hopefully either fix the problems or prove
that it's hardware????) and it's also free of the Novell client (queue loud
sigh of relief) which my experience suggests is a good thing.  Can you give
me a quick outline of how I should register the DLL on the target machine?
It might help me spot either something that I'm doing wrong or maybe an
assumption of yours that I've violated.

Have a good one,

Bill

--
Wilhelm K. Schwab, Ph.D.
[hidden email]


Reply | Threaded
Open this post in threaded view
|

Re: Registering COM DLLs

Blair McGlashan
"Bill Schwab" <[hidden email]> wrote in message
news:[hidden email]...
> Hi Blair,
>
> After a longer pause that I'd have liked (sorry), I'm gearing up for
another
> run at registering and calling my test COM DLL.  The famed/flaky NT4
machine
> is now running win2k (which will hopefully either fix the problems or
prove
> that it's hardware????) and it's also free of the Novell client (queue
loud
> sigh of relief) which my experience suggests is a good thing.  Can you
give
> me a quick outline of how I should register the DLL on the target machine?
> It might help me spot either something that I'm doing wrong or maybe an
> assumption of yours that I've violated.

It should be sufficient just to regsvr32.exe the dll on the machine. However
the self-registration of the embedded type library is not working for some
reason that I have not looked into yet, and therefore it is necessary to
ensure that the typelib is registered explicitly. I have not had a great
deal of success registering .tlb files (although it is supposed to work), so
I would suggest attempting to open it with some devenv such as Dolphin or VB
which will definitely register it.

However, the Dolphin ActiveX DLL will only work with just a typelib
registration for marshalling if all the interfaces are automation compatible
(i.e. they must have the "oleautomation" attribute, implied by "dual"). If
this is not the case, then a separate marshalling DLL must be built from the
MIDL outputs using VC++ and registered.

I would suggest attempting to build, register and use the COMRandomStream
sample as a start point - I posted a .tlb for this previously (search for
"COM Random Stream Sample"). When/if you get that working, you can move on
to your own component with some success behind you.

Regards

Blair


Reply | Threaded
Open this post in threaded view
|

Re: Registering COM DLLs

Bill Schwab-2
Blair,

> I would suggest attempting to build, register and use the COMRandomStream
> sample as a start point - I posted a .tlb for this previously (search for
> "COM Random Stream Sample"). When/if you get that working, you can move on
> to your own component with some success behind you.

Done, and it worked.  I've also managed to get my own component to work.  At
present, my best guess is that it quit because I was trying to open a shell
from it.  I still got a little grief about it's not being registered, but,
it was hard to tell what was complaining and when it complained.  The "this
will quit running on..." boxes are causing at least some of the trouble
because they keep managing to hide behind other windows.

Have a good one,

Bill

--
Wilhelm K. Schwab, Ph.D.
[hidden email]