I am gradually understanding the XPCOM world - but there is definitely room for improvement on the documentation side of the house. I have been running into several brick walls because of poor documentation and some of the books out on the market that do not explain the architecture properly. One book in particular boasts about being a "source guide" and this book has lead me down the wrong trail more than once. I will overcome all the misleading documentation - but somebody has to step up to the plate and do some serious documentation.
My major problems.... I decided to do a toolbar ( like the one I had previously done in IE) for Netscape because a customer wanted to support the MAC and Windows environment for his product. Perfect, I thought! XPCOM is the answer. It is a simple one button toolbar that performs a couple basic DOM algorithms. What a project this has turned out to be! I have definitely taken a bath on this one! My first problem is an XUL overlay. I have created the toolbar and it loads as a file and I can get every thing working properly. Once I try to install it utilizing an XPInstall it it causes Netscape to show as a big gray box window that I have no clue as to what failed - my log says that the XUL toolbar installed fine. I followed the example on Devedge (http://devedge.netscape.com/viewsource/2002/toolbar/), there toolbar installs fine - mine with the identical source (minus the menu - but in place a simple button) does not. I have to manually remove my XUL files. I can only hope I figure this one out soon. I believe is has something to do with the RDF file - but I do not know. How does one properly create and install a toolbar that utilizes XPCOM (C++)? I will figure it out, but there is not any examples, or documentation, that shows this - anywhere. My second problem (which THANKS to Doug Turner, I have solved) and it was all to do with registering the XPCOM DLL. What is the proper functionality to put in your DLL? All I can say to anybody is: do not read any of the documentation on http://www.mozilla.org/. Only read the documentation on http://books.mozdev.org/. Doug helped me out by showing me what the proper architecture should be - thank God! My third problem will be is getting this to work on the MAC! It is suppose to be easy - right? I have not started this yet, but, it is right around the corner. My MAC sits on another desk staring at me! Uhg! A good book would be "This is COM and this is XPCOM". It would probably sell millions!!! Or "how to make a BHO for Netscape" - without wasting time!
