Hi everyone,
I confirm on my side that CLSID_StdFont & CLSID_StdPict raise exception and I've been able to fix them. You'll find it a little bit treaky but here's the way. It won't fix the problem completely. Some application don't crash anymore & some other continue. I still have 12 corrupted objects in my com. Only fixed the _Std one. Most of the corrupted other are UrlMoniker (IE 6.0?! Humhum...)
For StdFont & StdPict, I found that the setup of Groupwise 5.5 badly registered his component by introducing a typo in one CLSID. Under HKLM\Classes\Interfaces. The key was in the form of 00000000-0000-0000-C000-000000000046{} insted of {00000000-0000-0000-C000-000000000046} (not actualy the real key) . I tried to rename the key but another key was already having the right name. Information in the bad one was missing from the good one soo I Merged the two key and then the error was gone. What was missing? The TypeLib subkey!
An interface is some sort of a presentation sheet for the object to tell the os what function, Method and event he support. The object may have implemented an internal type of data that he need to register in the os in order to exchange information correctly. If an object don't implement a custom data structure and use the one of the os, he won't need to register his TypeLib. If he implemented a custom data structure and to the os is not aware of that structure (missing typelib) then the os will crash trying to read data that he don't understand... then BANG! Application error - The data could not be read/write. Following me? Good!
For a good troubleshooting, we need to know what interface our corrupted object use. Oleview crash before showing you the interface... If anyone know a way the obtain them (programatically if needed) please inform us. Being able to know which interface is bad would help us a lot!
In bref:
- A Interface missing his typelib will generate the error.
- A Interface does not necessary need a typelib. We can't say: Missing TypeLib=Corruption
- Oleview crash before listing the interface. We're clueless.
- Interface are listed under HKLM\Classes\Interfaces.
That's for now on my side!
Sorry for my english, French my first and I'am tired today! ;p
Kandid