static PyObject* pyGUICtrlProcWriteableObject_Read(PyObject*, PyObject* args) {
    pyStream* stream;
    if (!PyArg_ParseTuple(args, "O", &stream)) {
        PyErr_SetString(PyExc_TypeError, "Read expects an hsStream");
        return NULL;
    }
    if (!pyStream_Check((PyObject*)stream)) {
        PyErr_SetString(PyExc_TypeError, "Read expects an hsStream");
        return NULL;
    }
    pfGUICtrlProcWriteableObject* proc = pfGUICtrlProcWriteableObject::Read(stream->fThis);
    PyObject* pyproc = NULL;
    if (proc == NULL) {
        Py_INCREF(Py_None);
        return Py_None;
    } else if (proc->getType() == pfGUICtrlProcWriteableObject::kConsoleCmd) {
        pyproc = pyGUIConsoleCmdProc_FromGUIConsoleCmdProc((pfGUIConsoleCmdProc*)proc);
        ((pyGUIConsoleCmdProc*)pyproc)->fPyOwned = true;
    } else if (proc->getType() == pfGUICtrlProcWriteableObject::kPythonScript) {
        pyproc = pyGUIPythonScriptProc_FromGUIPythonScriptProc((pfGUIPythonScriptProc*)proc);
        ((pyGUIPythonScriptProc*)pyproc)->fPyOwned = true;
    } else if (proc->getType() == pfGUICtrlProcWriteableObject::kCloseDlg) {
        pyproc = pyGUICloseDlgProc_FromGUICloseDlgProc((pfGUICloseDlgProc*)proc);
        ((pyGUICloseDlgProc*)pyproc)->fPyOwned = true;
    } else {
        pyproc = pyGUICtrlProcWriteableObject_FromGUICtrlProcWriteableObject((pfGUICtrlProcWriteableObject*)proc);
        ((pyGUICtrlProcWriteableObject*)pyproc)->fPyOwned = true;
    }
    return pyproc;
}
PyObject* ICreateGUIControlHandler(pfGUICtrlProcObject* proc) {
    if (proc == NULL)
        Py_RETURN_NONE;
    else if (typeid(*proc) == typeid(pfGUIConsoleCmdProc))
        return pyGUIConsoleCmdProc_FromGUIConsoleCmdProc((pfGUIConsoleCmdProc*)proc);
    else if (typeid(*proc) == typeid(pfGUIPythonScriptProc))
        return pyGUIPythonScriptProc_FromGUIPythonScriptProc((pfGUIPythonScriptProc*)proc);
    else if (typeid(*proc) == typeid(pfGUICloseDlgProc))
        return pyGUICloseDlgProc_FromGUICloseDlgProc((pfGUICloseDlgProc*)proc);
    return pyGUICtrlProcObject_FromGUICtrlProcObject(proc);
}