text: #include "py_expr.hpp"
  
  #pragma warning(push)
  #pragma warning(disable: 4244)
  
  //---------------------------------------------------------------------------
  static PyObject *ex_pyw_register_idc_func(PyObject *self, PyObject *args)
  {
    char *name, *arg;
    PyObject *py_fp;
    if ( !PyArg_ParseTuple(args, "ssO", &name, &arg, &py_fp) )
      return NULL;
    else
      return PyLong_FromUnsignedLongLong(pyw_register_idc_func(name, arg, py_fp));
  }
  
  //---------------------------------------------------------------------------
  static PyObject *ex_pyw_unregister_idc_func(PyObject *self, PyObject *args)
  {
    unsigned PY_LONG_LONG ctxptr;
    if ( !PyArg_ParseTuple(args, "K", &ctxptr) )
      return NULL;
    return PyLong_FromLong(pyw_unregister_idc_func(ctxptr));
  }
  
  static PyObject *ex_py_set_idc_func_ex(PyObject *self, PyObject *pyargs)
  {
    const char *name;
    unsigned PY_LONG_LONG fp_ptr;
    const char *args;
    int flags;
    if ( !PyArg_ParseTuple(pyargs, "sKsi", &name, &fp_ptr, &args, &flags) )
      return NULL;
    else
      return PyLong_FromLong(py_set_idc_func_ex(name, fp_ptr, args, flags));
  }
  
  //---------------------------------------------------------------------------
  static PyObject *ex_py_get_call_idc_func(PyObject *self, PyObject *args)
  {
    return PyLong_FromUnsignedLongLong(py_get_call_idc_func());
  }
  
  //-------------------------------------------------------------------------
  #pragma warning(pop)
  
  //-------------------------------------------------------------------------
  static PyMethodDef py_methods_expr[] =
  {
    {"pyw_register_idc_func", ex_pyw_register_idc_func, METH_VARARGS, ""},
    {"pyw_unregister_idc_func", ex_pyw_unregister_idc_func, METH_VARARGS, ""},
    {"py_get_call_idc_func", ex_py_get_call_idc_func, METH_VARARGS, ""},
    {"py_set_idc_func_ex", ex_py_set_idc_func_ex, METH_VARARGS, ""},
    {NULL, NULL, 0, NULL} // End of methods
  };
  DRIVER_INIT_METHODS(expr);
  