+ wxPyEndBlockThreads(blocked);
+ }
+
+ // This one is called by the EventThunker after calling the
+ // handler. It reloads any "out" parameters from the python attributes
+ // back into the wxVariant they came from.
+ void _postCallCleanup(PyObject* pyself) {
+ wxPyBlock_t blocked = wxPyBeginBlockThreads();
+ for (int i=0; i<self->ParamCount(); i+=1) {
+ PyObject* val = PyObject_GetAttrString(
+ pyself, (char*)(const char*)self->ParamName(i).mb_str());
+ _PyObj2Variant(val, (*self)[i]);
+ Py_DECREF(val);
+ }
+ wxPyEndBlockThreads(blocked);