Py_nsISupports::getattr(const char *name) { printf ("Py_nsISupports::getattr (%s)\n", name); if (strcmp(name, "IID")==0) return Py_nsIID::PyObjectFromIID( m_iid ); PyXPCOM_TypeObject *this_type = (PyXPCOM_TypeObject *)ob_type; if (strcmp (name, "getServiceByContractID") == 0) { PyMethodChain *my_chain = &this_type->chain; while (my_chain != NULL) { PyMethodDef *ml = my_chain->methods; for (; ml->ml_name != NULL; ml++) { printf("Py_nsISupports::getattr method = (%s)\n", ml->ml_name); } my_chain = my_chain->link; } } PyObject *obj = Py_FindMethodInChain(&this_type->chain, this, (char *)name); printf ("END Py_nsISupports::getattr (%s) (%p)\n", name, obj); return obj; }