Glad that I provided some inspiration.
Another method that I occasionally resort to is actually reading the source code and finding stuff out that way. Blender’s source is immense :eek:, but a bit of digging has occasionally given me some good results, such as finding that features were unsupported during the beta phase, etc. Blender’s code has a reputation for having poor comments, but sometimes there are gems that can really shed light on things and I can at least understand what parameters functions require sometimes.
One of the things that digging through the source brought to light is a unique type that is hard-coded into the textures or materials (it was a while ago…) that allows for the excellent display in the ui of all textures in a material in a nicely ordered list in which each element can be toggled (just look at the textures part of the ui and the Python ui files to see what I mean). I believe that CListTypes can be used to achieve something similar, but the custom data type appears to work so much better.
I know very little C/C++ though. You mentioned that you can read and write C so digging through the source will likely be more fruitful for you.
Best of luck.