I've been working as .NET developer for a few years now and have no other windows development experience worth noting. Now I'm in a position where I have to use and maintain .NET code that uses older VB6 code. Other people are maintaining and replacing this code but for the next couple years I'll have to live with it. As far as I can tell, based on my very limited knowledge, they currently register the dlls with regsvr32 and then add references to the .net projects that use them. The act of adding the reference is creating the interop dlls. I know they frequently have problems. One of the more common one is that they have to remove the references, re-register, and re-add the references. None of the more experienced developers seem to know what is going on. They all seem content with this but it can burn half a day of work. Since I know next to nothing about COM I thought it would be best if I did some reading to try and learn how things should work.
Does anyone know of any good books that can help me learn about COM from the point of view of someone who is consuming them but not creating them?
EDIT:
Thanks for all of the input!
As of this edit the recommendations are:
- .NET and COM: The complete Interoperability Guide. x2
- Essential COM x2
- Advanced Visual Basic 6 x1
- Professional Visual Basic Interoperability - COM and VB6 to .NET x1
- COM+: Base Services x1
The VB books seem interesting since it looks like some of the issues here may be specific to VB6. Also, it sounds like Essential COM may be good when I am really ready to dive into COM but it appears to be lacking the .NET side of the show.
That said it looks like .NET and COM: The complete Interoperability Guide will be best for helping me transition from the .NET world. It helps that I was looking at this one before I posted and it tied for first in terms of number of recommendations.
I'll make my final decision in the next couple of days but I'm leaning towards .NET and COM: The complete Interoperability Guide for now and maybe following it up with Essential COM. I may also throw in "Professional Visual Basic Interoperability - COM and VB6 to .NET" since it is so cheap.
Also, Thanks to Hans Passant and Paul Farry for their input on the specific issues. Once I've done some reading and understand more about how our current setup works I may open a new question for this and link to it from here.