> From what I am seeing you are using a predefined COM interface
> IBisComServer that you are referencing from an interopt dll
> or a typelib
> that you created from tblimp.  In this case you are creating
> the object
> latebound in a sense BUT you are using the definition of the interface
> which will perform a single cast (QueryInterface) and then you will be
> early bound.  If the typelib or interface GUIDs in your original dll
> change, you will need to recompile your .NET assembly with
> the new dll/tlb
> reference just like good old straight COM.

That is what I feared would happen.  The vtable offsets aren't likely to
change, they have specific ranges for each interface (500+ interfaces), but
I would like to be able to do late binding anyhow.

> You are on the right track in creating the object with the
> Activator you
> just need to stick with the object data type (i.e. not a
> predetemined type
> so it's late-bound) and use something like the Type::InvokeMember()
> methods.  I do have to admit though, I have only done late
> bound with .NET
> components and not COM so there could be more to it then
> jumping from the
> createinstance right into the Type::InvokeMember() methods.

The problem with InvokeMember is that it's a lot of work to use for possibly
hundreds of different methods calls.  Late binding with .NET components
works pretty much like I would like COM late binding to work.   However, it
would be nice with a definitive answer from someone In The Know(tm) on this
subject.

>
> Chad
>

- Petter

You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced 
DOTNET, or
subscribe to other DevelopMentor lists at http://discuss.develop.com.

Reply via email to