> 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.