Hello, I have for the most part successfully embedded firefox/xulrunner into our c# application, but it is not without troubles. Once in a great while a AccessViolationException will be thrown which I believe is caused by the GC moving a managed object in memory and the unmanaged xpcom attempts to use it after it has been moved. For example I created a protocol handler for a custom protocol that implements some interfaces that firefox/xulrunner calls upon. After doing that, the AccessViolationException's became much more predominate. I looked into GCHandle.Alloc(object, GCHandleType.Pinned) as a possible solution, but couldn't find enough information on how to write a custom marshaller to make my class that implemented the interfaces "blittable". So does anyone have any ideas on how to deal with this problem or how to translate my class into a "blittable" one? Also its near impossible to track down what parts of the interop are causing the AccessViolationException. Ugh :-(
Thanks for any insight!