/* ----------------------------------------------------------------------------
 * This file was automatically generated by SWIG (http://www.swig.org).
 * Version 1.3.22
 * 
 * This file is not intended to be easily readable and contains a number of 
 * coding conventions designed to improve portability and efficiency. Do not make
 * changes to this file unless you know what you are doing--modify the SWIG 
 * interface file instead. 
 * ----------------------------------------------------------------------------- */

#define SWIGPYTHON
#define SWIG_NOINCLUDE

#ifdef __cplusplus
template<class T> class SwigValueWrapper {
    T *tt;
public:
    SwigValueWrapper() : tt(0) { }
    SwigValueWrapper(const SwigValueWrapper<T>& rhs) : tt(new T(*rhs.tt)) { }
    SwigValueWrapper(const T& t) : tt(new T(t)) { }
    ~SwigValueWrapper() { delete tt; } 
    SwigValueWrapper& operator=(const T& t) { delete tt; tt = new T(t); return *this; }
    operator T&() const { return *tt; }
    T *operator&() { return tt; }
private:
    SwigValueWrapper& operator=(const SwigValueWrapper<T>& rhs);
};                                                    
#endif


#include "Python.h"

/*************************************************************** -*- c -*-
 * python/precommon.swg
 *
 * Rename all exported symbols from common.swg, to avoid symbol
 * clashes if multiple interpreters are included
 *
 ************************************************************************/

#define SWIG_TypeRegister    SWIG_Python_TypeRegister
#define SWIG_TypeCheck       SWIG_Python_TypeCheck
#define SWIG_TypeCast        SWIG_Python_TypeCast
#define SWIG_TypeDynamicCast SWIG_Python_TypeDynamicCast
#define SWIG_TypeName        SWIG_Python_TypeName
#define SWIG_TypePrettyName  SWIG_Python_TypePrettyName
#define SWIG_TypeQuery       SWIG_Python_TypeQuery
#define SWIG_TypeClientData  SWIG_Python_TypeClientData
#define SWIG_PackData        SWIG_Python_PackData 
#define SWIG_UnpackData      SWIG_Python_UnpackData 


/***********************************************************************
 * common.swg for wxPython
 *
 * Include only the function prototypes and such from SWIG's common.swg,
 * but not the runtime functions themselves.  This helps keep the
 * wrapper files clean of unnecessary stuff that is in the libpy.c file
 * anyway.
 *
 ************************************************************************/

#include <string.h>

#if defined(_WIN32) || defined(__WIN32__) || defined(__CYGWIN__)
#  if defined(_MSC_VER) || defined(__GNUC__)
#    if defined(STATIC_LINKED)
#      define SWIGEXPORT(a) a
#      define SWIGIMPORT(a) extern a
#    else
#      define SWIGEXPORT(a) __declspec(dllexport) a
#      define SWIGIMPORT(a) extern a
#    endif
#  else
#    if defined(__BORLANDC__)
#      define SWIGEXPORT(a) a _export
#      define SWIGIMPORT(a) a _export
#    else
#      define SWIGEXPORT(a) a
#      define SWIGIMPORT(a) a
#    endif
#  endif
#else
#  define SWIGEXPORT(a) a
#  define SWIGIMPORT(a) a
#endif

#ifdef SWIG_GLOBAL
#  define SWIGRUNTIME(a) SWIGEXPORT(a)
#else
#  define SWIGRUNTIME(a) static a
#endif

#ifdef __cplusplus
extern "C" {
#endif

typedef void *(*swig_converter_func)(void *);
typedef struct swig_type_info *(*swig_dycast_func)(void **);

typedef struct swig_type_info {
  const char             *name;
  swig_converter_func     converter;
  const char             *str;
  void                   *clientdata;
  swig_dycast_func        dcast;
  struct swig_type_info  *next;
  struct swig_type_info  *prev;
} swig_type_info;


SWIGIMPORT(swig_type_info *) SWIG_TypeRegister(swig_type_info *);
SWIGIMPORT(swig_type_info *) SWIG_TypeCheck(char *c, swig_type_info *);
SWIGIMPORT(void *)           SWIG_TypeCast(swig_type_info *, void *);
SWIGIMPORT(swig_type_info *) SWIG_TypeDynamicCast(swig_type_info *, void **);
SWIGIMPORT(const char *)     SWIG_TypeName(const swig_type_info *);
SWIGIMPORT(const char *)     SWIG_TypePrettyName(const swig_type_info *);
SWIGIMPORT(swig_type_info *) SWIG_TypeQuery(const char *);
SWIGIMPORT(void)             SWIG_TypeClientData(swig_type_info *, void *);
SWIGIMPORT(char *)           SWIG_PackData(char *, void *, int);
SWIGIMPORT(char *)           SWIG_UnpackData(char *, void *, int);


#ifdef __cplusplus
}
#endif


/***********************************************************************
 * pyrun.swg for wxPython
 *
 * Include only the function prototypes and such from SWIG's pyrun.swg,
 * but not the runtime functions themselves.  This helps keep the
 * wrapper files clean of unnecessary stuff that is in the libpy.c file
 * anyway.
 *
 ************************************************************************/

#ifdef __cplusplus
extern "C" {
#endif

#define SWIG_PY_INT     1
#define SWIG_PY_FLOAT   2
#define SWIG_PY_STRING  3
#define SWIG_PY_POINTER 4
#define SWIG_PY_BINARY  5

/* Flags for pointer conversion */

#define SWIG_POINTER_EXCEPTION     0x1
#define SWIG_POINTER_DISOWN        0x2

/* Exception handling in wrappers */
#define SWIG_fail   goto fail

/* Constant information structure */
typedef struct swig_const_info {
    int type;
    char *name;
    long lvalue;
    double dvalue;
    void   *pvalue;
    swig_type_info **ptype;
} swig_const_info;

/* Common SWIG API */
#define SWIG_ConvertPtr(obj, pp, type, flags) \
  SWIG_Python_ConvertPtr(obj, pp, type, flags)
#define SWIG_NewPointerObj(p, type, flags) \
  SWIG_Python_NewPointerObj(p, type, flags)
#define SWIG_MustGetPtr(p, type, argnum, flags) \
  SWIG_Python_MustGetPtr(p, type, argnum, flags)
 
/* Python-specific SWIG API */
#define SWIG_newvarlink() \
  SWIG_Python_newvarlink()
#define SWIG_addvarlink(p, name, get_attr, set_attr) \
  SWIG_Python_addvarlink(p, name, get_attr, set_attr)
#define SWIG_ConvertPacked(obj, ptr, sz, ty, flags) \
  SWIG_Python_ConvertPacked(obj, ptr, sz, ty, flags)
#define SWIG_NewPackedObj(ptr, sz, type) \
  SWIG_Python_NewPackedObj(ptr, sz, type)
#define SWIG_InstallConstants(d, constants) \
  SWIG_Python_InstallConstants(d, constants)

typedef double (*py_objasdbl_conv)(PyObject *obj);

SWIGIMPORT(int)               SWIG_Python_ConvertPtr(PyObject *, void **, swig_type_info *, int);
SWIGIMPORT(PyObject *)        SWIG_Python_NewPointerObj(void *, swig_type_info *,int own);
SWIGIMPORT(void *)            SWIG_Python_MustGetPtr(PyObject *, swig_type_info *, int, int);
SWIGIMPORT(PyObject *)        SWIG_Python_newvarlink(void);
SWIGIMPORT(void)              SWIG_Python_addvarlink(PyObject *, char *, PyObject *(*)(void), int (*)(PyObject *));
SWIGIMPORT(int)               SWIG_Python_ConvertPacked(PyObject *, void *, int sz, swig_type_info *, int);
SWIGIMPORT(PyObject *)        SWIG_Python_NewPackedObj(void *, int sz, swig_type_info *);
SWIGIMPORT(void)              SWIG_Python_InstallConstants(PyObject *d, swig_const_info constants[]);


/* Contract support */

#define SWIG_contract_assert(expr, msg) if (!(expr)) { PyErr_SetString(PyExc_RuntimeError, (char *) msg ); goto fail; } else

#ifdef __cplusplus
}
#endif



/* -------- TYPES TABLE (BEGIN) -------- */

#define  SWIGTYPE_p_wxObject swig_types[0] 
#define  SWIGTYPE_p_wxFuncX swig_types[1] 
#define  SWIGTYPE_p_wxActiveXWindow swig_types[2] 
#define  SWIGTYPE_p_wxWindow swig_types[3] 
#define  SWIGTYPE_p_wxCommandEvent swig_types[4] 
#define  SWIGTYPE_p_char swig_types[5] 
#define  SWIGTYPE_p_wxInputStream swig_types[6] 
#define  SWIGTYPE_p_wxEvtHandler swig_types[7] 
#define  SWIGTYPE_p_wxPropX swig_types[8] 
#define  SWIGTYPE_p_wxFuncXArray swig_types[9] 
#define  SWIGTYPE_p_wxParamXArray swig_types[10] 
#define  SWIGTYPE_p_wxActiveXEvent swig_types[11] 
#define  SWIGTYPE_p_wxParamX swig_types[12] 
#define  SWIGTYPE_p_wxIEHtmlWindowBase swig_types[13] 
#define  SWIGTYPE_p_wxPropXArray swig_types[14] 
#define  SWIGTYPE_p_wxEvent swig_types[15] 
#define  SWIGTYPE_p_CLSID swig_types[16] 
static swig_type_info *swig_types[18];

/* -------- TYPES TABLE (END) -------- */


/*-----------------------------------------------
              @(target):= _activex.so
  ------------------------------------------------*/
#define SWIG_init    init_activex

#define SWIG_name    "_activex"

/* Auxiliar swig  macros that appear in the header */

#define SWIG_OLDOBJ  1
#define SWIG_NEWOBJ  SWIG_OLDOBJ + 1
#define SWIG_PYSTR   SWIG_NEWOBJ + 1

#ifdef __cplusplus
#define SWIGSTATICINLINE(a) static inline a
#define SWIGSTATIC(a) static a
#define swig_new_array(size,Type) (new Type[(size)])
#define swig_delete(cptr) delete cptr
#define swig_delete_array(cptr) delete[] cptr
#define swig_const_cast(a,Type) const_cast<Type >(a)
#define swig_static_cast(a,Type) static_cast<Type >(a)
#define swig_reinterpret_cast(a,Type) reinterpret_cast<Type >(a)
#define swig_new_copy(ptr,Type) (new Type(*ptr))
#define swig_numeric_cast(a,Type) static_cast<Type >(a)

#else /* C case */

#define SWIGSTATICINLINE(a) static a
#define SWIGSTATIC(a) static a
#define swig_new_array(size,Type) ((Type*) malloc((size)*sizeof(Type)))
#define swig_delete(cptr) free((char*)cptr)
#define swig_delete_array(cptr) free((char*)cptr)
#define swig_const_cast(a,Type) (Type)(a)
#define swig_static_cast(a,Type) (Type)(a)
#define swig_reinterpret_cast(a,Type) (Type)(a)
#define swig_numeric_cast(a,Type) (Type)(a)
#define swig_new_copy(ptr,Type)  ((Type*)memcpy(malloc(sizeof(Type)),ptr,sizeof(Type)))

#endif /* __cplusplus */


/*@c:\\PROJECTS\\SWIG-cvs\\Lib\\python\\pymacros.swg,63,SWIG_define@*/
#define SWIG_From_signed_SS_char PyInt_FromLong
/*@@*/
/*@c:\\PROJECTS\\SWIG-cvs\\Lib\\python\\pymacros.swg,63,SWIG_define@*/
#define SWIG_From_unsigned_SS_char PyInt_FromLong
/*@@*/
/*@c:\\PROJECTS\\SWIG-cvs\\Lib\\python\\pymacros.swg,63,SWIG_define@*/
#define SWIG_From_short PyInt_FromLong
/*@@*/
/*@c:\\PROJECTS\\SWIG-cvs\\Lib\\python\\pymacros.swg,63,SWIG_define@*/
#define SWIG_From_unsigned_SS_short PyInt_FromLong
/*@@*/
/*@c:\\PROJECTS\\SWIG-cvs\\Lib\\python\\pymacros.swg,63,SWIG_define@*/
#define SWIG_From_int PyInt_FromLong
/*@@*/
/*@c:\\PROJECTS\\SWIG-cvs\\Lib\\python\\pymacros.swg,63,SWIG_define@*/
#define SWIG_From_long PyInt_FromLong
/*@@*/
/*@c:\\PROJECTS\\SWIG-cvs\\Lib\\python\\pymacros.swg,63,SWIG_define@*/
#define SWIG_From_float PyFloat_FromDouble
/*@@*/
/*@c:\\PROJECTS\\SWIG-cvs\\Lib\\python\\pymacros.swg,63,SWIG_define@*/
#define SWIG_From_double PyFloat_FromDouble
/*@@*/


#include "wx/wxPython/wxPython.h"
#include "wx/wxPython/pyclasses.h"
#include "wx/wxPython/pyistream.h"

#include "wxactivex.h"

 static const wxString wxPyPanelNameStr(wxPanelNameStr); 

// Since SWIG doesn't support nested classes, we need to fool it a bit
// and make them look like global classes.  These defines make the C++ code
// know what we are doing.
#define wxParamX        wxActiveX::ParamX
#define wxFuncX         wxActiveX::FuncX
#define wxPropX         wxActiveX::PropX
#define wxParamXArray   wxActiveX::ParamXArray
#define wxFuncXArray    wxActiveX::FuncXArray
#define wxPropXArray    wxActiveX::PropXArray


// Some conversion helpers
static wxVariant _PyObj2Variant(PyObject* value);
static bool  _PyObj2Variant(PyObject* value, wxVariant& wv);
static PyObject* _Variant2PyObj(wxVariant& value, bool useNone=false);
static wxString  _VARTYPEname(VARTYPE vt);

// Check if an exception has been raised  (blocking threads)
inline bool wxPyErr_Occurred()
{
    bool rval;
    bool blocked = wxPyBeginBlockThreads();
    rval = PyErr_Occurred() != NULL;
    wxPyEndBlockThreads(blocked);
    return rval;
}


CLSID *new_CLSID(wxString const &id){
            int result;
            CLSID* self = new CLSID;
            memset(self, 0, sizeof(CLSID));

            if (id[0] == _T('{')) {
                // Looks like a classID string
                result =
                    CLSIDFromString(
                        (LPOLESTR)(const wchar_t *)id.wc_str(wxConvUTF8),
                        self);
            } else {
                // Try a progID
                result =
                    CLSIDFromProgID(
                        (LPOLESTR)(const wchar_t *)id.wc_str(wxConvUTF8),
                        self);
            }
            if (result != NOERROR) {
                wxPyErr_SetString(PyExc_ValueError, "Not a recognized classID or progID");
                delete self;
                return NULL;
            }
            return self;
        }
void delete_CLSID(CLSID *self){ delete self; }
wxString CLSID_GetCLSIDString(CLSID *self){
            LPOLESTR s;
            wxString str;
            if (StringFromCLSID(*self, &s) == S_OK) {
                str = s;
                CoTaskMemFree(s);
            }
            else {
                str = _T("Error!");  // TODO: raise exception?
            }
            return str;
        }
wxString CLSID_GetProgIDString(CLSID *self){
            LPOLESTR s;
            wxString str;
            if (ProgIDFromCLSID(*self, &s) == S_OK) {
                str = s;
                CoTaskMemFree(s);
            }
            else {
                str = _T("Error!"); // TODO: raise exception?
            }
            return str;
        }
wxString wxParamX_vt_type_get(wxParamX *self){ return _VARTYPEname(self->vt); }
bool wxParamXArray___nonzero__(wxParamXArray *self){ return self->size() > 0; }
int wxParamXArray___len__(wxParamXArray *self){ return self->size(); }

#include <limits.h>


SWIGSTATICINLINE(int)
  SWIG_CheckLongInRange(long value, long min_value, long max_value,
			const char *errmsg)
{
  if (value < min_value) {
    if (errmsg) {
      PyErr_Format(PyExc_OverflowError, 
		   "value %ld is less than '%s' minimum %ld", 
		   value, errmsg, min_value);
    }
    return 0;    
  } else if (value > max_value) {
    if (errmsg) {
      PyErr_Format(PyExc_OverflowError,
		   "value %ld is greater than '%s' maximum %ld", 
		   value, errmsg, max_value);
    }
    return 0;
  }
  return 1;
}


// See my_fragments.i
SWIGSTATICINLINE(int)
SWIG_AsVal_long(PyObject* obj, long* val)
{
    if (PyNumber_Check(obj)) {
        if (val) *val = PyInt_AsLong(obj);
        return 1;
    }
    else {
        PyObject* errmsg = PyString_FromFormat("Expected number, got %s",
                                               obj->ob_type->tp_name);
        PyErr_SetObject(PyExc_TypeError, errmsg);
        Py_DECREF(errmsg);
    }
    return 0;
}


#if INT_MAX != LONG_MAX
SWIGSTATICINLINE(int)
  SWIG_AsVal_int(PyObject *obj, int *val)
{ 
  const char* errmsg = val ? "int" : 0;
  long v;
  if (SWIG_AsVal_long(obj, &v)) {
    if (SWIG_CheckLongInRange(v, INT_MIN,INT_MAX, errmsg)) {
      if (val) *val = swig_numeric_cast(v, int);
      return 1;
    } else {
      return 0;
    }
  } else {
    PyErr_Clear();
  }
  if (val) {
    PyErr_SetString(PyExc_TypeError, "an int is expected");
  }
  return 0;    
}
#else
SWIGSTATICINLINE(int)
  SWIG_AsVal_int(PyObject *obj, int *val)
{
  return SWIG_AsVal_long(obj,(long*)val);
}
#endif


SWIGSTATICINLINE(int)
SWIG_As_int(PyObject* obj)
{
  int v;
  if (!SWIG_AsVal_int(obj, &v)) {
    /*
      this is needed to make valgrind/purify happier.  the other
      solution is throw an exception, but since this code should work
      with plain C ....
     */
    memset((void*)&v, 0, sizeof(int));
  }
  return v;
}

  
SWIGSTATICINLINE(int)
SWIG_Check_int(PyObject* obj)
{
  return SWIG_AsVal_int(obj, (int*)0);
}

wxParamX const &wxParamXArray___getitem__(wxParamXArray *self,int idx){
            if ( idx >= 0 && idx < self->size() )
                return (*self)[idx];
            else {
                static wxParamX BadVal;
                wxPyErr_SetString(PyExc_IndexError, "Index out of range");
                return BadVal;
            }
        }
bool wxFuncXArray___nonzero__(wxFuncXArray *self){ return self->size() > 0; }
int wxFuncXArray___len__(wxFuncXArray *self){ return self->size(); }
wxFuncX const &wxFuncXArray___getitem__(wxFuncXArray *self,int idx){
            if ( idx >= 0 && idx < self->size() )
                return (*self)[idx];
            else {
                static wxFuncX BadVal;
                wxPyErr_SetString(PyExc_IndexError, "Index out of range");
                return BadVal;
            }
        }
bool wxPropXArray___nonzero__(wxPropXArray *self){ return self->size() > 0; }
int wxPropXArray___len__(wxPropXArray *self){ return self->size(); }
wxPropX const &wxPropXArray___getitem__(wxPropXArray *self,int idx){
            if ( idx >= 0 && idx < self->size() )
                return (*self)[idx];
            else {
                static wxPropX BadVal;
                wxPyErr_SetString(PyExc_IndexError, "Index out of range");
                return BadVal;
            }
        }

// C++ version of a Python-aware wxActiveX    
class wxActiveXWindow : public wxActiveX
{
private:
    CLSID       m_CLSID;
public:
    wxActiveXWindow( wxWindow* parent, const CLSID& clsId, wxWindowID id = -1,
                     const wxPoint& pos = wxDefaultPosition,
                     const wxSize& size = wxDefaultSize,
                     long style = 0,
                     const wxString& name = wxPyPanelNameStr)
        : wxActiveX(parent, clsId, id, pos, size, style, name)
    {
        m_CLSID = clsId;
    }

    const CLSID& GetCLSID() const { return m_CLSID; }
    
    
    // Renamed versions of some base class methods that delegate
    // to the base where appropriate, and raise Python exceptions
    // when needed.
    int GetAXEventCount() const  { return wxActiveX::GetEventCount(); }
    int GetAXPropCount() const   { return wxActiveX::GetPropCount(); }
    int GetAXMethodCount() const { return wxActiveX::GetMethodCount(); }

    const wxFuncX& GetAXEventDesc(int idx) const
    {
        static wxFuncX BadVal;
        if (idx < 0 || idx >= GetAXEventCount()) {
            wxPyErr_SetString(PyExc_IndexError, "Index out of range");
            return BadVal;
        }
        return m_events[idx];
    }
    const wxFuncX& GetAXMethodDesc(int idx) const
    {
        static wxFuncX BadVal;
        if (idx < 0 || idx >= GetAXMethodCount()) {
            wxPyErr_SetString(PyExc_IndexError, "Index out of range");
            return BadVal;
        }
        return m_methods[idx];
    }
    const wxPropX& GetAXPropDesc(int idx) const
    {
        static wxPropX BadVal;
        if (idx < 0 || idx >= GetAXPropCount()) {
            wxPyErr_SetString(PyExc_IndexError, "Index out of range");
            return BadVal;
        }
        return m_props[idx];
    }

    const wxFuncX& GetAXMethodDesc(const wxString& name) const
    {
        NameMap::const_iterator it = m_methodNames.find(name);
        if (it == m_methodNames.end())     {
            wxString msg;
            msg << _T("method <") << name << _T("> not found");
            wxPyErr_SetString(PyExc_KeyError, msg.mb_str());
            static wxFuncX BadVal;
            return BadVal;
        };
        return GetAXMethodDesc(it->second);
    }
    const wxPropX& GetAXPropDesc(const wxString& name) const
    {
        NameMap::const_iterator it = m_propNames.find(name);
        if (it == m_propNames.end())     {
            wxString msg;
            msg << _T("property <") << name << _T("> not found");
            wxPyErr_SetString(PyExc_KeyError, msg.mb_str());
            static wxPropX BadVal;
            return BadVal;
        };
        return GetAXPropDesc(it->second);
    }

    // Accessors for the internal vectors of events, methods and
    // proprties.  Can be used as sequence like objects from
    // Python.
    const wxFuncXArray& GetAXEvents()      { return m_events; }
    const wxFuncXArray& GetAXMethods()     { return m_methods; }
    const wxPropXArray& GetAXProperties()  { return m_props; }


    // Set a property from a Python object
    void SetAXProp(const wxString& name, PyObject* value)
    {        
        const wxPropX& prop = GetAXPropDesc(name);
        bool blocked = wxPyBeginBlockThreads();
        if (! PyErr_Occurred() ) {
            if (! prop.CanSet()) {
                wxString msg;
                msg << _T("property <") << name << _T("> is readonly");
                PyErr_SetString(PyExc_TypeError, msg.mb_str());
                goto done;
            } else {
                wxVariant wxV = _PyObj2Variant(value);
                if (PyErr_Occurred())
                    goto done;
                VARIANT v = {prop.arg.vt};
                if (!VariantToMSWVariant(wxV, v) || PyErr_Occurred()) {
                    wxString msg;
                    msg << _T("Unable to convert value to expected type: (")
                        << _VARTYPEname(prop.arg.vt) << _T(") for property <")
                        << name << _T(">");
                    PyErr_SetString(PyExc_TypeError, msg.mb_str());
                    goto done;
                }
                PyThreadState* tstate = wxPyBeginAllowThreads();
                SetProp(prop.memid, v);
                VariantClear(&v);
                wxPyEndAllowThreads(tstate);
            }
        }
    done:
        wxPyEndBlockThreads(blocked);
    }

    
    // Get a property and convert it to a Python object
    PyObject* GetAXProp(const wxString& name)
    {        
        PyObject* rval = NULL;
        const wxPropX& prop = GetAXPropDesc(name);
        bool blocked = wxPyBeginBlockThreads();
        if (! PyErr_Occurred() ) {
            if (! prop.CanGet()) {
                wxString msg;
                msg << _T("property <") << name << _T("> is writeonly");
                PyErr_SetString(PyExc_TypeError, msg.mb_str());
                goto done;
            } else {
                PyThreadState* tstate = wxPyBeginAllowThreads();
                VARIANT v = GetPropAsVariant(prop.memid);
                wxPyEndAllowThreads(tstate);
                wxVariant wv;
                if (!MSWVariantToVariant(v, wv) || PyErr_Occurred()) {
                    wxString msg;
                    msg << _T("Unable to convert value to expected type: (")
                        << _VARTYPEname(prop.arg.vt) << _T(") for property <")
                        << name << _T(">");
                    PyErr_SetString(PyExc_TypeError, msg.mb_str());
                    goto done;
                }
                rval = _Variant2PyObj(wv);
                VariantClear(&v);
            }
        }
    done:
        wxPyEndBlockThreads(blocked);
        return rval;
    }


    // If both IsIn and isOut are false, assume it is actually an
    // input param
    bool paramIsIn(const wxParamX& p)
    {
        return p.IsIn() || (!p.IsIn() && !p.IsOut());
    }
    

    // Call a method of the ActiveX object
    PyObject* _CallAXMethod(const wxString& name, PyObject* args)
    {
        VARIANTARG *vargs = NULL;
        int nargs = 0;
        PyObject* rval = NULL;
        const wxFuncX& func = GetAXMethodDesc(name);
        
        bool blocked = wxPyBeginBlockThreads();
        if (! PyErr_Occurred() ) {
            nargs = func.params.size();
            if (nargs > 0)
                vargs = new VARIANTARG[nargs];

            if (vargs) {
                // init type of vargs, in reverse order
                int i;
                for (i = 0; i < nargs; i++)
                    vargs[nargs - i - 1].vt = func.params[i].vt;

                // Map the args coming from Python to the input parameters in vargs
                int pi = 0;
                i = 0;
                while ( i<nargs && pi<PyTuple_Size(args) ) {
                    // Move to the next input param. 
                    if (! paramIsIn(func.params[i])) {
                        i += 1;
                        continue;
                    }
                    // convert the python object
                    PyObject* obj = PyTuple_GetItem(args, pi);
                    if (obj == Py_None) // special-case None?
                        vargs[nargs - i - 1].vt = VT_EMPTY;
                    else {
                        wxVariant wxV = _PyObj2Variant(obj);
                        if (PyErr_Occurred())
                            goto done;
                        if (!VariantToMSWVariant(wxV, vargs[nargs - i - 1]) || PyErr_Occurred()) {
                            wxString msg;
                            msg << _T("Unable to convert value to expected type: (")
                                << _VARTYPEname(vargs[nargs - i - 1].vt)
                                << _T(") for parameter ") << i;
                            PyErr_SetString(PyExc_TypeError, msg.mb_str());
                            goto done;
                        }
                    }
                    i += 1;
                    pi += 1;                        
                }
            }

            // call the method
            PyThreadState* tstate = wxPyBeginAllowThreads();
            VARIANT rv = CallMethod(func.memid, vargs, nargs);
            wxPyEndAllowThreads(tstate);

            // Convert the return value and any out-params, ignoring
            // conversion errors for now
            wxVariant wv;
            MSWVariantToVariant(rv, wv);
            rval = _Variant2PyObj(wv, true);
            VariantClear(&rv);

            if (func.hasOut) {
                // make a list and put the rval in it if it is not None
                PyObject* lst = PyList_New(0);
                if (rval != Py_None)
                    PyList_Append(lst, rval);
                else
                    Py_DECREF(rval);

                // find the out params and convert them
                for (int i = 0; i < nargs; i++) {
                    VARIANTARG& va = vargs[nargs - i - 1];
                    const wxParamX &px = func.params[i];
                    if (px.IsOut()) {
                        MSWVariantToVariant(va, wv);
                        PyObject* obj = _Variant2PyObj(wv, true);
                        PyList_Append(lst, obj);
                    }
                }
                rval = PyList_AsTuple(lst);
                Py_DECREF(lst);
            }
            if (PyErr_Occurred())
                PyErr_Clear();
        }
    done:
        wxPyEndBlockThreads(blocked);
        if (vargs) {
            for (int i = 0; i < nargs; i++)
                VariantClear(&vargs[i]);
            delete [] vargs;
        }
        return rval;
    }
};


SWIGSTATICINLINE(long)
SWIG_As_long(PyObject* obj)
{
  long v;
  if (!SWIG_AsVal_long(obj, &v)) {
    /*
      this is needed to make valgrind/purify happier.  the other
      solution is throw an exception, but since this code should work
      with plain C ....
     */
    memset((void*)&v, 0, sizeof(long));
  }
  return v;
}

  
SWIGSTATICINLINE(int)
SWIG_Check_long(PyObject* obj)
{
  return SWIG_AsVal_long(obj, (long*)0);
}

void wxActiveXEvent__preCallInit(wxActiveXEvent *self,PyObject *pyself){
            bool blocked = wxPyBeginBlockThreads();
            PyObject* pList = PyList_New(0);
            PyObject_SetAttrString(pyself, "paramList", pList);
            Py_DECREF(pList);
            for (int i=0; i<self->ParamCount(); i+=1) {
                PyObject* name = PyString_FromString((char*)(const char*)self->ParamName(i).mb_str());
                PyObject* val = _Variant2PyObj((*self)[i], true);
                PyObject_SetAttr(pyself, name, val);
                PyList_Append(pList, name);
                Py_DECREF(val);
                Py_DECREF(name);
            }
            wxPyEndBlockThreads(blocked);
        }
void wxActiveXEvent__postCallCleanup(wxActiveXEvent *self,PyObject *pyself){
            bool 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);
        }


// Caller should already have the GIL!
wxVariant _PyObj2Variant(PyObject* value)
{
    wxVariant rval;

    if (value == Py_None)
        return rval;
    
#if PYTHON_API_VERSION >= 1012  // Python 2.3+
    else if (PyBool_Check(value))
        rval = (value == Py_True) ? true : false;
#endif
    
    else if (PyInt_Check(value))
        rval = PyInt_AS_LONG(value);

    else if (PyFloat_Check(value))
        rval = PyFloat_AS_DOUBLE(value);

    else if (PyString_Check(value) || PyUnicode_Check(value))
        rval = Py2wxString(value);

    // TODO:    PyList of strings --> wxArrayString
    //          wxDateTime
    //          list of objects
    //          etc.

    else {
        PyErr_SetString(PyExc_TypeError, "Unsupported object type in _PyObj2Variant");
        rval = (long)0;
    }

    return rval;
}

// This one uses the type of the variant to try and force the conversion
bool  _PyObj2Variant(PyObject* value, wxVariant& wv)
{
    wxString type = wv.GetType();

    if ( type == _T("long") || type == _T("bool") || type == _T("char") )
        wv = PyInt_AsLong(value);

    else if ( type == _T("string") )
        wv = Py2wxString(value);

    else if ( type == _T("double") )
        wv  = PyFloat_AsDouble(value);

    else {
        // it's some other type that we dont' handle yet.  Log it?
        return false;
    }
    return true;
}
 
// Caller should already have the GIL!
PyObject* _Variant2PyObj(wxVariant& value, bool useNone)
{
    PyObject* rval = NULL;

    if (value.IsNull()) {
        rval = Py_None;
        Py_INCREF(rval);
    }
    
    // should "char" be treated as an int or as a string?
    else if (value.IsType(_T("char")) || value.IsType(_T("long")))
        rval = PyInt_FromLong(value);
    
    else if (value.IsType(_T("double")))
        rval = PyFloat_FromDouble(value);

    else if (value.IsType(_T("bool"))) {
        rval = (bool)value ? Py_True : Py_False;
        Py_INCREF(rval);
    }
    
    else if (value.IsType(_T("string")))
        rval = wx2PyString(value);

    else {
        if (useNone) {
            rval = Py_None;
            Py_INCREF(rval);
        }
        else {
            PyErr_SetString(PyExc_TypeError, "Unsupported object type in _Variant2PyObj");
        }
    }
    return rval;
}


wxString _VARTYPEname(VARTYPE vt)
{
    if (vt & VT_BYREF)
        vt &= ~(VT_BYREF);

    switch(vt) {
    case VT_VARIANT:
        return _T("VT_VARIANT");
        
    // 1 byte chars
    case VT_I1:
    case VT_UI1:
    // 2 byte shorts
    case VT_I2:
    case VT_UI2:
    // 4 bytes longs
    case VT_I4:
    case VT_UI4:
    case VT_INT:
    case VT_UINT:
    case VT_ERROR:
        return _T("int");

    // 4 byte floats
    case VT_R4:
    // 8 byte doubles
    case VT_R8:
    // decimals are converted from doubles too
    case VT_DECIMAL:
        return _T("double");
        
    case VT_BOOL:
        return _T("bool");
        
    case VT_DATE:
        return _T("wx.DateTime");
        
    case VT_BSTR:
        return _T("string");

    case VT_UNKNOWN:
        return _T("VT_UNKNOWN");
        
    case VT_DISPATCH: 
        return _T("VT_DISPATCH");

    case VT_EMPTY:
        return _T("VT_EMPTY");
        
    case VT_NULL:
        return _T("VT_NULL");
        
    case VT_VOID:
        return _T("VT_VOID");
        
    default:
        wxString msg;
        msg << _T("unsupported type ") << vt;
        return msg;
    }
}



// A class derived from out wxActiveXWindow for the IE WebBrowser
// control that will serve as a base class for a Python
// implementation.  This is done so we can "eat our own dog food"
// and use a class at least mostly generated by genaxmodule, but
// also get some of the extra stuff like loading a document from
// a string or a stream, getting text contents, etc. that
// Lindsay's version gives us.
//

#include <wx/mstream.h>
#include <oleidl.h>
#include <winerror.h>
#include <exdispid.h>
#include <exdisp.h>
#include <olectl.h>
#include <Mshtml.h>
#include <sstream>

#include "IEHtmlStream.h"

class wxIEHtmlWindowBase : public wxActiveXWindow {
private:
    wxAutoOleInterface<IWebBrowser2>  m_webBrowser;

public:

    wxIEHtmlWindowBase ( wxWindow* parent, const CLSID& clsId, wxWindowID id = -1,
                         const wxPoint& pos = wxDefaultPosition,
                         const wxSize& size = wxDefaultSize,
                         long style = 0,
                         const wxString& name = wxPyPanelNameStr)
        : wxActiveXWindow(parent, clsId, id, pos, size, style, name)
    {
        HRESULT hret;

        // Get IWebBrowser2 Interface
        hret = m_webBrowser.QueryInterface(IID_IWebBrowser2, m_ActiveX);
        wxASSERT(SUCCEEDED(hret));

        // web browser setup
        m_webBrowser->put_MenuBar(VARIANT_FALSE);
        m_webBrowser->put_AddressBar(VARIANT_FALSE);
        m_webBrowser->put_StatusBar(VARIANT_FALSE);
        m_webBrowser->put_ToolBar(VARIANT_FALSE);

        m_webBrowser->put_RegisterAsBrowser(VARIANT_TRUE);
        m_webBrowser->put_RegisterAsDropTarget(VARIANT_TRUE);

        m_webBrowser->Navigate( L"about:blank", NULL, NULL, NULL, NULL );
    }


    void SetCharset(const wxString& charset)
    {
        HRESULT hret;
        
        // HTML Document ?
        IDispatch *pDisp = NULL;
        hret = m_webBrowser->get_Document(&pDisp);
        wxAutoOleInterface<IDispatch> disp(pDisp);

        if (disp.Ok())
        {
            wxAutoOleInterface<IHTMLDocument2> doc(IID_IHTMLDocument2, disp);
            if (doc.Ok())
                doc->put_charset((BSTR) (const wchar_t *) charset.wc_str(wxConvUTF8));
            //doc->put_charset((BSTR) wxConvUTF8.cMB2WC(charset).data());
        }
    }


    bool LoadString(const wxString& html)
    {
        char *data = NULL;
        size_t len = html.length();
        len *= sizeof(wxChar);
        data = (char *) malloc(len);
        memcpy(data, html.c_str(), len);
        return LoadStream(new wxOwnedMemInputStream(data, len));
    }

    
    bool LoadStream(IStreamAdaptorBase *pstrm)
    {
        // need to prepend this as poxy MSHTML will not recognise a HTML comment
        // as starting a html document and treats it as plain text
        // Does nayone know how to force it to html mode ?
#if wxUSE_UNICODE
        // TODO: What to do in this case???
#else
        pstrm->prepend = _T("<html>");
#endif

        // strip leading whitespace as it can confuse MSHTML
        wxAutoOleInterface<IStream> strm(pstrm);

        // Document Interface
        IDispatch *pDisp = NULL;
        HRESULT hret = m_webBrowser->get_Document(&pDisp);
        if (! pDisp)
            return false;
        wxAutoOleInterface<IDispatch> disp(pDisp);


        // get IPersistStreamInit
        wxAutoOleInterface<IPersistStreamInit>
            pPersistStreamInit(IID_IPersistStreamInit, disp);

        if (pPersistStreamInit.Ok())
        {
            HRESULT hr = pPersistStreamInit->InitNew();
            if (SUCCEEDED(hr))
                hr = pPersistStreamInit->Load(strm);

            return SUCCEEDED(hr);
        }
        else
            return false;
    }

    bool LoadStream(wxInputStream *is)
    {
        // wrap reference around stream
        IwxStreamAdaptor *pstrm = new IwxStreamAdaptor(is);
        pstrm->AddRef();

        return LoadStream(pstrm);
    }

    
    wxString GetStringSelection(bool asHTML)
    {
        wxAutoOleInterface<IHTMLTxtRange> tr(wxieGetSelRange(m_oleObject));
        if (! tr)
            return wxEmptyString;

        BSTR text = NULL;
        HRESULT hr = E_FAIL;
    
        if (asHTML)
            hr = tr->get_htmlText(&text);
        else
            hr = tr->get_text(&text);
        if (hr != S_OK)
            return wxEmptyString;

        wxString s = text;
        SysFreeString(text);

        return s;
    };

    wxString GetText(bool asHTML)
    {
        if (! m_webBrowser.Ok())
            return wxEmptyString;

        // get document dispatch interface
        IDispatch *iDisp = NULL;
        HRESULT hr = m_webBrowser->get_Document(&iDisp);
        if (hr != S_OK)
            return wxEmptyString;

        // Query for Document Interface
        wxAutoOleInterface<IHTMLDocument2> hd(IID_IHTMLDocument2, iDisp);
        iDisp->Release();

        if (! hd.Ok())
            return wxEmptyString;

        // get body element
        IHTMLElement *_body = NULL;
        hd->get_body(&_body);
        if (! _body)
            return wxEmptyString;
        wxAutoOleInterface<IHTMLElement> body(_body);

        // get inner text
        BSTR text = NULL;
        hr = E_FAIL;
    
        if (asHTML)
            hr = body->get_innerHTML(&text);
        else
            hr = body->get_innerText(&text);
        if (hr != S_OK)
            return wxEmptyString;

        wxString s = text;
        SysFreeString(text);

        return s;   
    }


//     void wxIEHtmlWin::SetEditMode(bool seton)
//     {
//         m_bAmbientUserMode = ! seton;
//         AmbientPropertyChanged(DISPID_AMBIENT_USERMODE);
//     };

//     bool wxIEHtmlWin::GetEditMode()
//     {
//         return ! m_bAmbientUserMode;
//     };
};


SWIGSTATICINLINE(int)
  SWIG_AsVal_bool(PyObject *obj, bool *val)
{
  /*  if (val) *val = PyObject_IsTrue(obj); return 1; */
  if (obj == Py_True) {
    if (val) *val = true;
    return 1;
  }
  if (obj == Py_False) {
    if (val) *val = false;
    return 1;
  }
  int res = 0;
  if (SWIG_AsVal_int(obj, &res)) {    
    if (val) *val = (bool)res;
    return 1;
  }
  if (val) {
    PyErr_SetString(PyExc_TypeError, "a bool is expected");
  }
  return 0;
}


SWIGSTATICINLINE(bool)
SWIG_As_bool(PyObject* obj)
{
  bool v;
  if (!SWIG_AsVal_bool(obj, &v)) {
    /*
      this is needed to make valgrind/purify happier.  the other
      solution is throw an exception, but since this code should work
      with plain C ....
     */
    memset((void*)&v, 0, sizeof(bool));
  }
  return v;
}

  
SWIGSTATICINLINE(int)
SWIG_Check_bool(PyObject* obj)
{
  return SWIG_AsVal_bool(obj, (bool*)0);
}

#ifdef __cplusplus
extern "C" {
#endif
static PyObject *_wrap_new_CLSID(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxString *arg1 = 0 ;
    CLSID *result;
    bool temp1 = false ;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "id", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:new_CLSID",kwnames,&obj0)) goto fail;
    {
        arg1 = wxString_in_helper(obj0);
        if (arg1 == NULL) SWIG_fail;
        temp1 = true;
    }
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (CLSID *)new_CLSID((wxString const &)*arg1);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_CLSID, 1);
    {
        if (temp1)
        delete arg1;
    }
    return resultobj;
    fail:
    {
        if (temp1)
        delete arg1;
    }
    return NULL;
}


static PyObject *_wrap_delete_CLSID(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    CLSID *arg1 = (CLSID *) 0 ;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:delete_CLSID",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_CLSID,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        delete_CLSID(arg1);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_CLSID_GetCLSIDString(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    CLSID *arg1 = (CLSID *) 0 ;
    wxString result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:CLSID_GetCLSIDString",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_CLSID,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = CLSID_GetCLSIDString(arg1);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
#if wxUSE_UNICODE
        resultobj = PyUnicode_FromWideChar((&result)->c_str(), (&result)->Len());
#else
        resultobj = PyString_FromStringAndSize((&result)->c_str(), (&result)->Len());
#endif
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_CLSID_GetProgIDString(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    CLSID *arg1 = (CLSID *) 0 ;
    wxString result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:CLSID_GetProgIDString",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_CLSID,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = CLSID_GetProgIDString(arg1);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
#if wxUSE_UNICODE
        resultobj = PyUnicode_FromWideChar((&result)->c_str(), (&result)->Len());
#else
        resultobj = PyString_FromStringAndSize((&result)->c_str(), (&result)->Len());
#endif
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject * CLSID_swigregister(PyObject *, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_CLSID, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_ParamX_flags_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxParamX *arg1 = (wxParamX *) 0 ;
    USHORT result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ParamX_flags_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxParamX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (USHORT) ((arg1)->flags);
    
    resultobj = SWIG_From_unsigned_SS_short((unsigned short)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ParamX_isPtr_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxParamX *arg1 = (wxParamX *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ParamX_isPtr_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxParamX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (bool) ((arg1)->isPtr);
    
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ParamX_isSafeArray_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxParamX *arg1 = (wxParamX *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ParamX_isSafeArray_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxParamX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (bool) ((arg1)->isSafeArray);
    
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ParamX_isOptional_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxParamX *arg1 = (wxParamX *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ParamX_isOptional_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxParamX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (bool) ((arg1)->isOptional);
    
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ParamX_vt_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxParamX *arg1 = (wxParamX *) 0 ;
    VARTYPE result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ParamX_vt_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxParamX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (VARTYPE) ((arg1)->vt);
    
    resultobj = SWIG_From_unsigned_SS_short((unsigned short)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ParamX_name_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxParamX *arg1 = (wxParamX *) 0 ;
    wxString *result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ParamX_name_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxParamX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (wxString *)& ((arg1)->name);
    
    {
#if wxUSE_UNICODE
        resultobj = PyUnicode_FromWideChar(result->c_str(), result->Len());
#else
        resultobj = PyString_FromStringAndSize(result->c_str(), result->Len());
#endif
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ParamX_vt_type_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxParamX *arg1 = (wxParamX *) 0 ;
    wxString result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ParamX_vt_type_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxParamX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = wxParamX_vt_type_get(arg1);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
#if wxUSE_UNICODE
        resultobj = PyUnicode_FromWideChar((&result)->c_str(), (&result)->Len());
#else
        resultobj = PyString_FromStringAndSize((&result)->c_str(), (&result)->Len());
#endif
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ParamX_IsIn(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxParamX *arg1 = (wxParamX *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ParamX_IsIn",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxParamX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (bool)((wxParamX const *)arg1)->IsIn();
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ParamX_IsOut(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxParamX *arg1 = (wxParamX *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ParamX_IsOut",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxParamX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (bool)((wxParamX const *)arg1)->IsOut();
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ParamX_IsRetVal(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxParamX *arg1 = (wxParamX *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ParamX_IsRetVal",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxParamX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (bool)((wxParamX const *)arg1)->IsRetVal();
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject * ParamX_swigregister(PyObject *, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_wxParamX, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_FuncX_name_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxFuncX *arg1 = (wxFuncX *) 0 ;
    wxString *result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:FuncX_name_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxFuncX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (wxString *)& ((arg1)->name);
    
    {
#if wxUSE_UNICODE
        resultobj = PyUnicode_FromWideChar(result->c_str(), result->Len());
#else
        resultobj = PyString_FromStringAndSize(result->c_str(), result->Len());
#endif
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_FuncX_memid_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxFuncX *arg1 = (wxFuncX *) 0 ;
    MEMBERID result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:FuncX_memid_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxFuncX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (MEMBERID) ((arg1)->memid);
    
    resultobj = SWIG_From_long((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_FuncX_hasOut_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxFuncX *arg1 = (wxFuncX *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:FuncX_hasOut_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxFuncX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (bool) ((arg1)->hasOut);
    
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_FuncX_retType_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxFuncX *arg1 = (wxFuncX *) 0 ;
    wxParamX *result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:FuncX_retType_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxFuncX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (wxParamX *)& ((arg1)->retType);
    
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxParamX, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_FuncX_params_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxFuncX *arg1 = (wxFuncX *) 0 ;
    wxParamXArray *result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:FuncX_params_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxFuncX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (wxParamXArray *)& ((arg1)->params);
    
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxParamXArray, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * FuncX_swigregister(PyObject *, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_wxFuncX, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_PropX_name_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxPropX *arg1 = (wxPropX *) 0 ;
    wxString *result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:PropX_name_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPropX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (wxString *)& ((arg1)->name);
    
    {
#if wxUSE_UNICODE
        resultobj = PyUnicode_FromWideChar(result->c_str(), result->Len());
#else
        resultobj = PyString_FromStringAndSize(result->c_str(), result->Len());
#endif
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PropX_memid_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxPropX *arg1 = (wxPropX *) 0 ;
    MEMBERID result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:PropX_memid_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPropX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (MEMBERID) ((arg1)->memid);
    
    resultobj = SWIG_From_long((long)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PropX_type_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxPropX *arg1 = (wxPropX *) 0 ;
    wxParamX *result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:PropX_type_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPropX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (wxParamX *)& ((arg1)->type);
    
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxParamX, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PropX_arg_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxPropX *arg1 = (wxPropX *) 0 ;
    wxParamX *result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:PropX_arg_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPropX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (wxParamX *)& ((arg1)->arg);
    
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxParamX, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PropX_putByRef_get(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxPropX *arg1 = (wxPropX *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:PropX_putByRef_get",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPropX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    result = (bool) ((arg1)->putByRef);
    
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PropX_CanGet(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxPropX *arg1 = (wxPropX *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:PropX_CanGet",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPropX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (bool)((wxPropX const *)arg1)->CanGet();
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PropX_CanSet(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxPropX *arg1 = (wxPropX *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:PropX_CanSet",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPropX,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (bool)((wxPropX const *)arg1)->CanSet();
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject * PropX_swigregister(PyObject *, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_wxPropX, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_ParamXArray___nonzero__(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxParamXArray *arg1 = (wxParamXArray *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ParamXArray___nonzero__",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxParamXArray,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (bool)wxParamXArray___nonzero__(arg1);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ParamXArray___len__(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxParamXArray *arg1 = (wxParamXArray *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ParamXArray___len__",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxParamXArray,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (int)wxParamXArray___len__(arg1);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_From_int((int)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ParamXArray___getitem__(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxParamXArray *arg1 = (wxParamXArray *) 0 ;
    int arg2 ;
    wxParamX *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    char *kwnames[] = {
        (char *) "self",(char *) "idx", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:ParamXArray___getitem__",kwnames,&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxParamXArray,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    arg2 = (int)SWIG_As_int(obj1); 
    if (PyErr_Occurred()) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        {
            wxParamX const &_result_ref = wxParamXArray___getitem__(arg1,arg2);
            result = (wxParamX *) &_result_ref;
        }
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxParamX, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * ParamXArray_swigregister(PyObject *, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_wxParamXArray, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_FuncXArray___nonzero__(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxFuncXArray *arg1 = (wxFuncXArray *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:FuncXArray___nonzero__",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxFuncXArray,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (bool)wxFuncXArray___nonzero__(arg1);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_FuncXArray___len__(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxFuncXArray *arg1 = (wxFuncXArray *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:FuncXArray___len__",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxFuncXArray,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (int)wxFuncXArray___len__(arg1);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_From_int((int)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_FuncXArray___getitem__(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxFuncXArray *arg1 = (wxFuncXArray *) 0 ;
    int arg2 ;
    wxFuncX *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    char *kwnames[] = {
        (char *) "self",(char *) "idx", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:FuncXArray___getitem__",kwnames,&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxFuncXArray,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    arg2 = (int)SWIG_As_int(obj1); 
    if (PyErr_Occurred()) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        {
            wxFuncX const &_result_ref = wxFuncXArray___getitem__(arg1,arg2);
            result = (wxFuncX *) &_result_ref;
        }
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxFuncX, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * FuncXArray_swigregister(PyObject *, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_wxFuncXArray, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_PropXArray___nonzero__(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxPropXArray *arg1 = (wxPropXArray *) 0 ;
    bool result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:PropXArray___nonzero__",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPropXArray,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (bool)wxPropXArray___nonzero__(arg1);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PropXArray___len__(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxPropXArray *arg1 = (wxPropXArray *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:PropXArray___len__",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPropXArray,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (int)wxPropXArray___len__(arg1);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_From_int((int)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_PropXArray___getitem__(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxPropXArray *arg1 = (wxPropXArray *) 0 ;
    int arg2 ;
    wxPropX *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    char *kwnames[] = {
        (char *) "self",(char *) "idx", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:PropXArray___getitem__",kwnames,&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxPropXArray,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    arg2 = (int)SWIG_As_int(obj1); 
    if (PyErr_Occurred()) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        {
            wxPropX const &_result_ref = wxPropXArray___getitem__(arg1,arg2);
            result = (wxPropX *) &_result_ref;
        }
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxPropX, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject * PropXArray_swigregister(PyObject *, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_wxPropXArray, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_ActiveXWindow(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxWindow *arg1 = (wxWindow *) 0 ;
    CLSID *arg2 = 0 ;
    int arg3 = (int) -1 ;
    wxPoint const &arg4_defvalue = wxDefaultPosition ;
    wxPoint *arg4 = (wxPoint *) &arg4_defvalue ;
    wxSize const &arg5_defvalue = wxDefaultSize ;
    wxSize *arg5 = (wxSize *) &arg5_defvalue ;
    long arg6 = (long) 0 ;
    wxString const &arg7_defvalue = wxPyPanelNameStr ;
    wxString *arg7 = (wxString *) &arg7_defvalue ;
    wxActiveXWindow *result;
    wxPoint temp4 ;
    wxSize temp5 ;
    bool temp7 = false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    PyObject * obj3 = 0 ;
    PyObject * obj4 = 0 ;
    PyObject * obj5 = 0 ;
    PyObject * obj6 = 0 ;
    char *kwnames[] = {
        (char *) "parent",(char *) "clsId",(char *) "id",(char *) "pos",(char *) "size",(char *) "style",(char *) "name", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO|OOOOO:new_ActiveXWindow",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **)(&arg2),SWIGTYPE_p_CLSID,
    SWIG_POINTER_EXCEPTION | 0)) == -1)
    SWIG_fail;
    if (arg2 == NULL) {
        PyErr_SetString(PyExc_TypeError,"null reference");
        SWIG_fail;
    }
    if (obj2) {
        arg3 = (int)SWIG_As_int(obj2); 
        if (PyErr_Occurred()) SWIG_fail;
    }
    if (obj3) {
        {
            arg4 = &temp4;
            if ( ! wxPoint_helper(obj3, &arg4)) SWIG_fail;
        }
    }
    if (obj4) {
        {
            arg5 = &temp5;
            if ( ! wxSize_helper(obj4, &arg5)) SWIG_fail;
        }
    }
    if (obj5) {
        arg6 = (long)SWIG_As_long(obj5); 
        if (PyErr_Occurred()) SWIG_fail;
    }
    if (obj6) {
        {
            arg7 = wxString_in_helper(obj6);
            if (arg7 == NULL) SWIG_fail;
            temp7 = true;
        }
    }
    {
        if (!wxPyCheckForApp()) SWIG_fail;
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (wxActiveXWindow *)new wxActiveXWindow(arg1,(CLSID const &)*arg2,arg3,(wxPoint const &)*arg4,(wxSize const &)*arg5,arg6,(wxString const &)*arg7);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxActiveXWindow, 1);
    {
        if (temp7)
        delete arg7;
    }
    return resultobj;
    fail:
    {
        if (temp7)
        delete arg7;
    }
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetCLSID(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    CLSID *result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ActiveXWindow_GetCLSID",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        {
            CLSID const &_result_ref = ((wxActiveXWindow const *)arg1)->GetCLSID();
            result = (CLSID *) &_result_ref;
        }
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_CLSID, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetAXEventCount(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ActiveXWindow_GetAXEventCount",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (int)((wxActiveXWindow const *)arg1)->GetAXEventCount();
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_From_int((int)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetAXEventDesc(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    int arg2 ;
    wxFuncX *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    char *kwnames[] = {
        (char *) "self",(char *) "idx", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:ActiveXWindow_GetAXEventDesc",kwnames,&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    arg2 = (int)SWIG_As_int(obj1); 
    if (PyErr_Occurred()) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        {
            wxFuncX const &_result_ref = ((wxActiveXWindow const *)arg1)->GetAXEventDesc(arg2);
            result = (wxFuncX *) &_result_ref;
        }
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxFuncX, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetAXPropCount(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ActiveXWindow_GetAXPropCount",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (int)((wxActiveXWindow const *)arg1)->GetAXPropCount();
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_From_int((int)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetAXPropDesc__SWIG_0(PyObject *, PyObject *args) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    int arg2 ;
    wxPropX *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ActiveXWindow_GetAXPropDesc",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    arg2 = (int)SWIG_As_int(obj1); 
    if (PyErr_Occurred()) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        {
            wxPropX const &_result_ref = ((wxActiveXWindow const *)arg1)->GetAXPropDesc(arg2);
            result = (wxPropX *) &_result_ref;
        }
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxPropX, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetAXPropDesc__SWIG_1(PyObject *, PyObject *args) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    wxString *arg2 = 0 ;
    wxPropX *result;
    bool temp2 = false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ActiveXWindow_GetAXPropDesc",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        arg2 = wxString_in_helper(obj1);
        if (arg2 == NULL) SWIG_fail;
        temp2 = true;
    }
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        {
            wxPropX const &_result_ref = ((wxActiveXWindow const *)arg1)->GetAXPropDesc((wxString const &)*arg2);
            result = (wxPropX *) &_result_ref;
        }
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxPropX, 0);
    {
        if (temp2)
        delete arg2;
    }
    return resultobj;
    fail:
    {
        if (temp2)
        delete arg2;
    }
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetAXPropDesc(PyObject *self, PyObject *args) {
    int argc;
    PyObject *argv[3];
    int ii;
    
    argc = PyObject_Length(args);
    for (ii = 0; (ii < argc) && (ii < 2); ii++) {
        argv[ii] = PyTuple_GetItem(args,ii);
    }
    if (argc == 2) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_wxActiveXWindow, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            } else {
                _v = 1;
            }
        }
        if (_v) {
            {
                _v = PyString_Check(argv[1]) || PyUnicode_Check(argv[1]);
            }
            if (_v) {
                return _wrap_ActiveXWindow_GetAXPropDesc__SWIG_1(self,args);
            }
        }
    }
    if (argc == 2) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_wxActiveXWindow, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            } else {
                _v = 1;
            }
        }
        if (_v) {
            _v = SWIG_Check_int(argv[1]);
            if (_v) {
                return _wrap_ActiveXWindow_GetAXPropDesc__SWIG_0(self,args);
            }
        }
    }
    
    PyErr_SetString(PyExc_TypeError,"No matching function for overloaded 'ActiveXWindow_GetAXPropDesc'");
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetAXMethodCount(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    int result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ActiveXWindow_GetAXMethodCount",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (int)((wxActiveXWindow const *)arg1)->GetAXMethodCount();
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_From_int((int)result);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetAXMethodDesc__SWIG_0(PyObject *, PyObject *args) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    int arg2 ;
    wxFuncX *result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ActiveXWindow_GetAXMethodDesc",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    arg2 = (int)SWIG_As_int(obj1); 
    if (PyErr_Occurred()) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        {
            wxFuncX const &_result_ref = ((wxActiveXWindow const *)arg1)->GetAXMethodDesc(arg2);
            result = (wxFuncX *) &_result_ref;
        }
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxFuncX, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetAXMethodDesc__SWIG_1(PyObject *, PyObject *args) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    wxString *arg2 = 0 ;
    wxFuncX *result;
    bool temp2 = false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OO:ActiveXWindow_GetAXMethodDesc",&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        arg2 = wxString_in_helper(obj1);
        if (arg2 == NULL) SWIG_fail;
        temp2 = true;
    }
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        {
            wxFuncX const &_result_ref = ((wxActiveXWindow const *)arg1)->GetAXMethodDesc((wxString const &)*arg2);
            result = (wxFuncX *) &_result_ref;
        }
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxFuncX, 0);
    {
        if (temp2)
        delete arg2;
    }
    return resultobj;
    fail:
    {
        if (temp2)
        delete arg2;
    }
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetAXMethodDesc(PyObject *self, PyObject *args) {
    int argc;
    PyObject *argv[3];
    int ii;
    
    argc = PyObject_Length(args);
    for (ii = 0; (ii < argc) && (ii < 2); ii++) {
        argv[ii] = PyTuple_GetItem(args,ii);
    }
    if (argc == 2) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_wxActiveXWindow, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            } else {
                _v = 1;
            }
        }
        if (_v) {
            {
                _v = PyString_Check(argv[1]) || PyUnicode_Check(argv[1]);
            }
            if (_v) {
                return _wrap_ActiveXWindow_GetAXMethodDesc__SWIG_1(self,args);
            }
        }
    }
    if (argc == 2) {
        int _v;
        {
            void *ptr;
            if (SWIG_ConvertPtr(argv[0], &ptr, SWIGTYPE_p_wxActiveXWindow, 0) == -1) {
                _v = 0;
                PyErr_Clear();
            } else {
                _v = 1;
            }
        }
        if (_v) {
            _v = SWIG_Check_int(argv[1]);
            if (_v) {
                return _wrap_ActiveXWindow_GetAXMethodDesc__SWIG_0(self,args);
            }
        }
    }
    
    PyErr_SetString(PyExc_TypeError,"No matching function for overloaded 'ActiveXWindow_GetAXMethodDesc'");
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetAXEvents(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    wxFuncXArray *result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ActiveXWindow_GetAXEvents",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        {
            wxFuncXArray const &_result_ref = (arg1)->GetAXEvents();
            result = (wxFuncXArray *) &_result_ref;
        }
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxFuncXArray, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetAXMethods(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    wxFuncXArray *result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ActiveXWindow_GetAXMethods",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        {
            wxFuncXArray const &_result_ref = (arg1)->GetAXMethods();
            result = (wxFuncXArray *) &_result_ref;
        }
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxFuncXArray, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetAXProperties(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    wxPropXArray *result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ActiveXWindow_GetAXProperties",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        {
            wxPropXArray const &_result_ref = (arg1)->GetAXProperties();
            result = (wxPropXArray *) &_result_ref;
        }
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxPropXArray, 0);
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_SetAXProp(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    wxString *arg2 = 0 ;
    PyObject *arg3 = (PyObject *) 0 ;
    bool temp2 = false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    char *kwnames[] = {
        (char *) "self",(char *) "name",(char *) "value", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OOO:ActiveXWindow_SetAXProp",kwnames,&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        arg2 = wxString_in_helper(obj1);
        if (arg2 == NULL) SWIG_fail;
        temp2 = true;
    }
    arg3 = obj2;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        (arg1)->SetAXProp((wxString const &)*arg2,arg3);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    {
        if (temp2)
        delete arg2;
    }
    return resultobj;
    fail:
    {
        if (temp2)
        delete arg2;
    }
    return NULL;
}


static PyObject *_wrap_ActiveXWindow_GetAXProp(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    wxString *arg2 = 0 ;
    PyObject *result;
    bool temp2 = false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    char *kwnames[] = {
        (char *) "self",(char *) "name", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:ActiveXWindow_GetAXProp",kwnames,&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        arg2 = wxString_in_helper(obj1);
        if (arg2 == NULL) SWIG_fail;
        temp2 = true;
    }
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (PyObject *)(arg1)->GetAXProp((wxString const &)*arg2);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = result;
    {
        if (temp2)
        delete arg2;
    }
    return resultobj;
    fail:
    {
        if (temp2)
        delete arg2;
    }
    return NULL;
}


static PyObject *_wrap_ActiveXWindow__CallAXMethod(PyObject *, PyObject *args) {
    PyObject *resultobj;
    wxActiveXWindow *arg1 = (wxActiveXWindow *) 0 ;
    wxString *arg2 = 0 ;
    PyObject *arg3 = (PyObject *) 0 ;
    PyObject *result;
    bool temp2 = false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    
    if(!PyArg_ParseTuple(args,(char *)"OOO:ActiveXWindow__CallAXMethod",&obj0,&obj1,&obj2)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        arg2 = wxString_in_helper(obj1);
        if (arg2 == NULL) SWIG_fail;
        temp2 = true;
    }
    arg3 = obj2;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (PyObject *)(arg1)->_CallAXMethod((wxString const &)*arg2,arg3);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = result;
    {
        if (temp2)
        delete arg2;
    }
    return resultobj;
    fail:
    {
        if (temp2)
        delete arg2;
    }
    return NULL;
}


static PyObject * ActiveXWindow_swigregister(PyObject *, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_wxActiveXWindow, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_RegisterActiveXEvent(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxString *arg1 = 0 ;
    wxEventType result;
    bool temp1 = false ;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "eventName", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:RegisterActiveXEvent",kwnames,&obj0)) goto fail;
    {
        arg1 = wxString_in_helper(obj0);
        if (arg1 == NULL) SWIG_fail;
        temp1 = true;
    }
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (wxEventType)RegisterActiveXEvent((wxString const &)*arg1);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_From_int((int)result);
    {
        if (temp1)
        delete arg1;
    }
    return resultobj;
    fail:
    {
        if (temp1)
        delete arg1;
    }
    return NULL;
}


static PyObject *_wrap_ActiveXEvent_EventName(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxActiveXEvent *arg1 = (wxActiveXEvent *) 0 ;
    wxString result;
    PyObject * obj0 = 0 ;
    char *kwnames[] = {
        (char *) "self", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"O:ActiveXEvent_EventName",kwnames,&obj0)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXEvent,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (arg1)->EventName();
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
#if wxUSE_UNICODE
        resultobj = PyUnicode_FromWideChar((&result)->c_str(), (&result)->Len());
#else
        resultobj = PyString_FromStringAndSize((&result)->c_str(), (&result)->Len());
#endif
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ActiveXEvent__preCallInit(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxActiveXEvent *arg1 = (wxActiveXEvent *) 0 ;
    PyObject *arg2 = (PyObject *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    char *kwnames[] = {
        (char *) "self",(char *) "pyself", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:ActiveXEvent__preCallInit",kwnames,&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXEvent,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    arg2 = obj1;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        wxActiveXEvent__preCallInit(arg1,arg2);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_ActiveXEvent__postCallCleanup(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxActiveXEvent *arg1 = (wxActiveXEvent *) 0 ;
    PyObject *arg2 = (PyObject *) 0 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    char *kwnames[] = {
        (char *) "self",(char *) "pyself", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:ActiveXEvent__postCallCleanup",kwnames,&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxActiveXEvent,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    arg2 = obj1;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        wxActiveXEvent__postCallCleanup(arg1,arg2);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    return resultobj;
    fail:
    return NULL;
}


static PyObject * ActiveXEvent_swigregister(PyObject *, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_wxActiveXEvent, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyObject *_wrap_new_IEHtmlWindowBase(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxWindow *arg1 = (wxWindow *) 0 ;
    CLSID *arg2 = 0 ;
    int arg3 = (int) -1 ;
    wxPoint const &arg4_defvalue = wxDefaultPosition ;
    wxPoint *arg4 = (wxPoint *) &arg4_defvalue ;
    wxSize const &arg5_defvalue = wxDefaultSize ;
    wxSize *arg5 = (wxSize *) &arg5_defvalue ;
    long arg6 = (long) 0 ;
    wxString const &arg7_defvalue = wxPyPanelNameStr ;
    wxString *arg7 = (wxString *) &arg7_defvalue ;
    wxIEHtmlWindowBase *result;
    wxPoint temp4 ;
    wxSize temp5 ;
    bool temp7 = false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    PyObject * obj2 = 0 ;
    PyObject * obj3 = 0 ;
    PyObject * obj4 = 0 ;
    PyObject * obj5 = 0 ;
    PyObject * obj6 = 0 ;
    char *kwnames[] = {
        (char *) "parent",(char *) "clsId",(char *) "id",(char *) "pos",(char *) "size",(char *) "style",(char *) "name", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO|OOOOO:new_IEHtmlWindowBase",kwnames,&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxWindow,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    if ((SWIG_ConvertPtr(obj1,(void **)(&arg2),SWIGTYPE_p_CLSID,
    SWIG_POINTER_EXCEPTION | 0)) == -1)
    SWIG_fail;
    if (arg2 == NULL) {
        PyErr_SetString(PyExc_TypeError,"null reference");
        SWIG_fail;
    }
    if (obj2) {
        arg3 = (int)SWIG_As_int(obj2); 
        if (PyErr_Occurred()) SWIG_fail;
    }
    if (obj3) {
        {
            arg4 = &temp4;
            if ( ! wxPoint_helper(obj3, &arg4)) SWIG_fail;
        }
    }
    if (obj4) {
        {
            arg5 = &temp5;
            if ( ! wxSize_helper(obj4, &arg5)) SWIG_fail;
        }
    }
    if (obj5) {
        arg6 = (long)SWIG_As_long(obj5); 
        if (PyErr_Occurred()) SWIG_fail;
    }
    if (obj6) {
        {
            arg7 = wxString_in_helper(obj6);
            if (arg7 == NULL) SWIG_fail;
            temp7 = true;
        }
    }
    {
        if (!wxPyCheckForApp()) SWIG_fail;
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (wxIEHtmlWindowBase *)new wxIEHtmlWindowBase(arg1,(CLSID const &)*arg2,arg3,(wxPoint const &)*arg4,(wxSize const &)*arg5,arg6,(wxString const &)*arg7);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    resultobj = SWIG_NewPointerObj((void*)(result), SWIGTYPE_p_wxIEHtmlWindowBase, 1);
    {
        if (temp7)
        delete arg7;
    }
    return resultobj;
    fail:
    {
        if (temp7)
        delete arg7;
    }
    return NULL;
}


static PyObject *_wrap_IEHtmlWindowBase_SetCharset(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxIEHtmlWindowBase *arg1 = (wxIEHtmlWindowBase *) 0 ;
    wxString *arg2 = 0 ;
    bool temp2 = false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    char *kwnames[] = {
        (char *) "self",(char *) "charset", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:IEHtmlWindowBase_SetCharset",kwnames,&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxIEHtmlWindowBase,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        arg2 = wxString_in_helper(obj1);
        if (arg2 == NULL) SWIG_fail;
        temp2 = true;
    }
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        (arg1)->SetCharset((wxString const &)*arg2);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    Py_INCREF(Py_None); resultobj = Py_None;
    {
        if (temp2)
        delete arg2;
    }
    return resultobj;
    fail:
    {
        if (temp2)
        delete arg2;
    }
    return NULL;
}


static PyObject *_wrap_IEHtmlWindowBase_LoadString(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxIEHtmlWindowBase *arg1 = (wxIEHtmlWindowBase *) 0 ;
    wxString *arg2 = 0 ;
    bool result;
    bool temp2 = false ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    char *kwnames[] = {
        (char *) "self",(char *) "html", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:IEHtmlWindowBase_LoadString",kwnames,&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxIEHtmlWindowBase,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        arg2 = wxString_in_helper(obj1);
        if (arg2 == NULL) SWIG_fail;
        temp2 = true;
    }
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (bool)(arg1)->LoadString((wxString const &)*arg2);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    {
        if (temp2)
        delete arg2;
    }
    return resultobj;
    fail:
    {
        if (temp2)
        delete arg2;
    }
    return NULL;
}


static PyObject *_wrap_IEHtmlWindowBase_LoadStream(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxIEHtmlWindowBase *arg1 = (wxIEHtmlWindowBase *) 0 ;
    wxInputStream *arg2 = (wxInputStream *) 0 ;
    bool result;
    wxPyInputStream *temp2 ;
    bool created2 ;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    char *kwnames[] = {
        (char *) "self",(char *) "is", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:IEHtmlWindowBase_LoadStream",kwnames,&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxIEHtmlWindowBase,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    {
        if (wxPyConvertSwigPtr(obj1, (void **)&temp2, wxT("wxPyInputStream"))) {
            arg2 = temp2->m_wxis;
            created2 = false;
        } else {
            PyErr_Clear();  // clear the failure of the wxPyConvert above
            arg2 = wxPyCBInputStream_create(obj1, false);
            if (arg2 == NULL) {
                PyErr_SetString(PyExc_TypeError, "Expected wxInputStream or Python file-like object.");
                SWIG_fail;
            }
            created2 = true;
        }
    }
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (bool)(arg1)->LoadStream(arg2);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
        resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
    }
    {
        if (created2)
        delete arg2;
    }
    return resultobj;
    fail:
    {
        if (created2)
        delete arg2;
    }
    return NULL;
}


static PyObject *_wrap_IEHtmlWindowBase_GetStringSelection(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxIEHtmlWindowBase *arg1 = (wxIEHtmlWindowBase *) 0 ;
    bool arg2 ;
    wxString result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    char *kwnames[] = {
        (char *) "self",(char *) "asHTML", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:IEHtmlWindowBase_GetStringSelection",kwnames,&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxIEHtmlWindowBase,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    arg2 = (bool)SWIG_As_bool(obj1); 
    if (PyErr_Occurred()) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (arg1)->GetStringSelection(arg2);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
#if wxUSE_UNICODE
        resultobj = PyUnicode_FromWideChar((&result)->c_str(), (&result)->Len());
#else
        resultobj = PyString_FromStringAndSize((&result)->c_str(), (&result)->Len());
#endif
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject *_wrap_IEHtmlWindowBase_GetText(PyObject *, PyObject *args, PyObject *kwargs) {
    PyObject *resultobj;
    wxIEHtmlWindowBase *arg1 = (wxIEHtmlWindowBase *) 0 ;
    bool arg2 ;
    wxString result;
    PyObject * obj0 = 0 ;
    PyObject * obj1 = 0 ;
    char *kwnames[] = {
        (char *) "self",(char *) "asHTML", NULL 
    };
    
    if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:IEHtmlWindowBase_GetText",kwnames,&obj0,&obj1)) goto fail;
    if ((SWIG_ConvertPtr(obj0,(void **)(&arg1),SWIGTYPE_p_wxIEHtmlWindowBase,
    SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
    arg2 = (bool)SWIG_As_bool(obj1); 
    if (PyErr_Occurred()) SWIG_fail;
    {
        PyThreadState* __tstate = wxPyBeginAllowThreads();
        result = (arg1)->GetText(arg2);
        
        wxPyEndAllowThreads(__tstate);
        if (PyErr_Occurred()) SWIG_fail;
    }
    {
#if wxUSE_UNICODE
        resultobj = PyUnicode_FromWideChar((&result)->c_str(), (&result)->Len());
#else
        resultobj = PyString_FromStringAndSize((&result)->c_str(), (&result)->Len());
#endif
    }
    return resultobj;
    fail:
    return NULL;
}


static PyObject * IEHtmlWindowBase_swigregister(PyObject *, PyObject *args) {
    PyObject *obj;
    if (!PyArg_ParseTuple(args,(char*)"O", &obj)) return NULL;
    SWIG_TypeClientData(SWIGTYPE_p_wxIEHtmlWindowBase, obj);
    Py_INCREF(obj);
    return Py_BuildValue((char *)"");
}
static PyMethodDef SwigMethods[] = {
	 { (char *)"new_CLSID", (PyCFunction) _wrap_new_CLSID, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"delete_CLSID", (PyCFunction) _wrap_delete_CLSID, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"CLSID_GetCLSIDString", (PyCFunction) _wrap_CLSID_GetCLSIDString, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"CLSID_GetProgIDString", (PyCFunction) _wrap_CLSID_GetProgIDString, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"CLSID_swigregister", CLSID_swigregister, METH_VARARGS, NULL },
	 { (char *)"ParamX_flags_get", (PyCFunction) _wrap_ParamX_flags_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ParamX_isPtr_get", (PyCFunction) _wrap_ParamX_isPtr_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ParamX_isSafeArray_get", (PyCFunction) _wrap_ParamX_isSafeArray_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ParamX_isOptional_get", (PyCFunction) _wrap_ParamX_isOptional_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ParamX_vt_get", (PyCFunction) _wrap_ParamX_vt_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ParamX_name_get", (PyCFunction) _wrap_ParamX_name_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ParamX_vt_type_get", (PyCFunction) _wrap_ParamX_vt_type_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ParamX_IsIn", (PyCFunction) _wrap_ParamX_IsIn, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ParamX_IsOut", (PyCFunction) _wrap_ParamX_IsOut, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ParamX_IsRetVal", (PyCFunction) _wrap_ParamX_IsRetVal, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ParamX_swigregister", ParamX_swigregister, METH_VARARGS, NULL },
	 { (char *)"FuncX_name_get", (PyCFunction) _wrap_FuncX_name_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"FuncX_memid_get", (PyCFunction) _wrap_FuncX_memid_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"FuncX_hasOut_get", (PyCFunction) _wrap_FuncX_hasOut_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"FuncX_retType_get", (PyCFunction) _wrap_FuncX_retType_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"FuncX_params_get", (PyCFunction) _wrap_FuncX_params_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"FuncX_swigregister", FuncX_swigregister, METH_VARARGS, NULL },
	 { (char *)"PropX_name_get", (PyCFunction) _wrap_PropX_name_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"PropX_memid_get", (PyCFunction) _wrap_PropX_memid_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"PropX_type_get", (PyCFunction) _wrap_PropX_type_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"PropX_arg_get", (PyCFunction) _wrap_PropX_arg_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"PropX_putByRef_get", (PyCFunction) _wrap_PropX_putByRef_get, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"PropX_CanGet", (PyCFunction) _wrap_PropX_CanGet, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"PropX_CanSet", (PyCFunction) _wrap_PropX_CanSet, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"PropX_swigregister", PropX_swigregister, METH_VARARGS, NULL },
	 { (char *)"ParamXArray___nonzero__", (PyCFunction) _wrap_ParamXArray___nonzero__, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ParamXArray___len__", (PyCFunction) _wrap_ParamXArray___len__, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ParamXArray___getitem__", (PyCFunction) _wrap_ParamXArray___getitem__, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ParamXArray_swigregister", ParamXArray_swigregister, METH_VARARGS, NULL },
	 { (char *)"FuncXArray___nonzero__", (PyCFunction) _wrap_FuncXArray___nonzero__, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"FuncXArray___len__", (PyCFunction) _wrap_FuncXArray___len__, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"FuncXArray___getitem__", (PyCFunction) _wrap_FuncXArray___getitem__, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"FuncXArray_swigregister", FuncXArray_swigregister, METH_VARARGS, NULL },
	 { (char *)"PropXArray___nonzero__", (PyCFunction) _wrap_PropXArray___nonzero__, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"PropXArray___len__", (PyCFunction) _wrap_PropXArray___len__, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"PropXArray___getitem__", (PyCFunction) _wrap_PropXArray___getitem__, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"PropXArray_swigregister", PropXArray_swigregister, METH_VARARGS, NULL },
	 { (char *)"new_ActiveXWindow", (PyCFunction) _wrap_new_ActiveXWindow, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXWindow_GetCLSID", (PyCFunction) _wrap_ActiveXWindow_GetCLSID, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXWindow_GetAXEventCount", (PyCFunction) _wrap_ActiveXWindow_GetAXEventCount, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXWindow_GetAXEventDesc", (PyCFunction) _wrap_ActiveXWindow_GetAXEventDesc, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXWindow_GetAXPropCount", (PyCFunction) _wrap_ActiveXWindow_GetAXPropCount, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXWindow_GetAXPropDesc", _wrap_ActiveXWindow_GetAXPropDesc, METH_VARARGS, NULL },
	 { (char *)"ActiveXWindow_GetAXMethodCount", (PyCFunction) _wrap_ActiveXWindow_GetAXMethodCount, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXWindow_GetAXMethodDesc", _wrap_ActiveXWindow_GetAXMethodDesc, METH_VARARGS, NULL },
	 { (char *)"ActiveXWindow_GetAXEvents", (PyCFunction) _wrap_ActiveXWindow_GetAXEvents, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXWindow_GetAXMethods", (PyCFunction) _wrap_ActiveXWindow_GetAXMethods, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXWindow_GetAXProperties", (PyCFunction) _wrap_ActiveXWindow_GetAXProperties, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXWindow_SetAXProp", (PyCFunction) _wrap_ActiveXWindow_SetAXProp, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXWindow_GetAXProp", (PyCFunction) _wrap_ActiveXWindow_GetAXProp, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXWindow__CallAXMethod", _wrap_ActiveXWindow__CallAXMethod, METH_VARARGS, NULL },
	 { (char *)"ActiveXWindow_swigregister", ActiveXWindow_swigregister, METH_VARARGS, NULL },
	 { (char *)"RegisterActiveXEvent", (PyCFunction) _wrap_RegisterActiveXEvent, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXEvent_EventName", (PyCFunction) _wrap_ActiveXEvent_EventName, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXEvent__preCallInit", (PyCFunction) _wrap_ActiveXEvent__preCallInit, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXEvent__postCallCleanup", (PyCFunction) _wrap_ActiveXEvent__postCallCleanup, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"ActiveXEvent_swigregister", ActiveXEvent_swigregister, METH_VARARGS, NULL },
	 { (char *)"new_IEHtmlWindowBase", (PyCFunction) _wrap_new_IEHtmlWindowBase, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"IEHtmlWindowBase_SetCharset", (PyCFunction) _wrap_IEHtmlWindowBase_SetCharset, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"IEHtmlWindowBase_LoadString", (PyCFunction) _wrap_IEHtmlWindowBase_LoadString, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"IEHtmlWindowBase_LoadStream", (PyCFunction) _wrap_IEHtmlWindowBase_LoadStream, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"IEHtmlWindowBase_GetStringSelection", (PyCFunction) _wrap_IEHtmlWindowBase_GetStringSelection, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"IEHtmlWindowBase_GetText", (PyCFunction) _wrap_IEHtmlWindowBase_GetText, METH_VARARGS | METH_KEYWORDS, NULL },
	 { (char *)"IEHtmlWindowBase_swigregister", IEHtmlWindowBase_swigregister, METH_VARARGS, NULL },
	 { NULL, NULL, 0, NULL }
};


/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (BEGIN) -------- */

static void *_p_wxLayoutConstraintsTo_p_wxObject(void *x) {
    return (void *)((wxObject *)  ((wxLayoutConstraints *) x));
}
static void *_p_wxGBSizerItemTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxSizerItem *) ((wxGBSizerItem *) x));
}
static void *_p_wxSizerItemTo_p_wxObject(void *x) {
    return (void *)((wxObject *)  ((wxSizerItem *) x));
}
static void *_p_wxScrollEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *)(wxCommandEvent *) ((wxScrollEvent *) x));
}
static void *_p_wxIndividualLayoutConstraintTo_p_wxObject(void *x) {
    return (void *)((wxObject *)  ((wxIndividualLayoutConstraint *) x));
}
static void *_p_wxStaticBoxSizerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxSizer *)(wxBoxSizer *) ((wxStaticBoxSizer *) x));
}
static void *_p_wxBoxSizerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxSizer *) ((wxBoxSizer *) x));
}
static void *_p_wxSizerTo_p_wxObject(void *x) {
    return (void *)((wxObject *)  ((wxSizer *) x));
}
static void *_p_wxGridBagSizerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxSizer *)(wxGridSizer *)(wxFlexGridSizer *) ((wxGridBagSizer *) x));
}
static void *_p_wxUpdateUIEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *)(wxCommandEvent *) ((wxUpdateUIEvent *) x));
}
static void *_p_wxEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *)  ((wxEvent *) x));
}
static void *_p_wxFlexGridSizerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxSizer *)(wxGridSizer *) ((wxFlexGridSizer *) x));
}
static void *_p_wxGridSizerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxSizer *) ((wxGridSizer *) x));
}
static void *_p_wxInitDialogEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxInitDialogEvent *) x));
}
static void *_p_wxPaintEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxPaintEvent *) x));
}
static void *_p_wxNcPaintEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxNcPaintEvent *) x));
}
static void *_p_wxPaletteChangedEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxPaletteChangedEvent *) x));
}
static void *_p_wxDisplayChangedEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxDisplayChangedEvent *) x));
}
static void *_p_wxMouseCaptureChangedEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxMouseCaptureChangedEvent *) x));
}
static void *_p_wxSysColourChangedEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxSysColourChangedEvent *) x));
}
static void *_p_wxControlTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvtHandler *)(wxWindow *) ((wxControl *) x));
}
static void *_p_wxSetCursorEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxSetCursorEvent *) x));
}
static void *_p_wxFSFileTo_p_wxObject(void *x) {
    return (void *)((wxObject *)  ((wxFSFile *) x));
}
static void *_p_wxPySizerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxSizer *) ((wxPySizer *) x));
}
static void *_p_wxPyEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxPyEvent *) x));
}
static void *_p_wxNotifyEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *)(wxCommandEvent *) ((wxNotifyEvent *) x));
}
static void *_p_wxShowEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxShowEvent *) x));
}
static void *_p_wxMenuItemTo_p_wxObject(void *x) {
    return (void *)((wxObject *)  ((wxMenuItem *) x));
}
static void *_p_wxIdleEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxIdleEvent *) x));
}
static void *_p_wxWindowCreateEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *)(wxCommandEvent *) ((wxWindowCreateEvent *) x));
}
static void *_p_wxQueryNewPaletteEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxQueryNewPaletteEvent *) x));
}
static void *_p_wxMaximizeEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxMaximizeEvent *) x));
}
static void *_p_wxIconizeEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxIconizeEvent *) x));
}
static void *_p_wxSizeEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxSizeEvent *) x));
}
static void *_p_wxMoveEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxMoveEvent *) x));
}
static void *_p_wxActivateEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxActivateEvent *) x));
}
static void *_p_wxXPMHandlerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxImageHandler *) ((wxXPMHandler *) x));
}
static void *_p_wxPNMHandlerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxImageHandler *) ((wxPNMHandler *) x));
}
static void *_p_wxJPEGHandlerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxImageHandler *) ((wxJPEGHandler *) x));
}
static void *_p_wxPCXHandlerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxImageHandler *) ((wxPCXHandler *) x));
}
static void *_p_wxGIFHandlerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxImageHandler *) ((wxGIFHandler *) x));
}
static void *_p_wxPNGHandlerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxImageHandler *) ((wxPNGHandler *) x));
}
static void *_p_wxANIHandlerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxImageHandler *)(wxBMPHandler *)(wxICOHandler *)(wxCURHandler *) ((wxANIHandler *) x));
}
static void *_p_wxCURHandlerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxImageHandler *)(wxBMPHandler *)(wxICOHandler *) ((wxCURHandler *) x));
}
static void *_p_wxICOHandlerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxImageHandler *)(wxBMPHandler *) ((wxICOHandler *) x));
}
static void *_p_wxBMPHandlerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxImageHandler *) ((wxBMPHandler *) x));
}
static void *_p_wxImageHandlerTo_p_wxObject(void *x) {
    return (void *)((wxObject *)  ((wxImageHandler *) x));
}
static void *_p_wxTIFFHandlerTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxImageHandler *) ((wxTIFFHandler *) x));
}
static void *_p_wxEvtHandlerTo_p_wxObject(void *x) {
    return (void *)((wxObject *)  ((wxEvtHandler *) x));
}
static void *_p_wxAcceleratorTableTo_p_wxObject(void *x) {
    return (void *)((wxObject *)  ((wxAcceleratorTable *) x));
}
static void *_p_wxImageTo_p_wxObject(void *x) {
    return (void *)((wxObject *)  ((wxImage *) x));
}
static void *_p_wxScrollWinEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxScrollWinEvent *) x));
}
static void *_p_wxWindowDestroyEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *)(wxCommandEvent *) ((wxWindowDestroyEvent *) x));
}
static void *_p_wxNavigationKeyEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxNavigationKeyEvent *) x));
}
static void *_p_wxKeyEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxKeyEvent *) x));
}
static void *_p_wxActiveXWindowTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvtHandler *)(wxWindow *) ((wxActiveXWindow *) x));
}
static void *_p_wxWindowTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvtHandler *) ((wxWindow *) x));
}
static void *_p_wxMenuTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvtHandler *) ((wxMenu *) x));
}
static void *_p_wxMenuBarTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvtHandler *)(wxWindow *) ((wxMenuBar *) x));
}
static void *_p_wxActiveXEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *)(wxCommandEvent *) ((wxActiveXEvent *) x));
}
static void *_p_wxFileSystemTo_p_wxObject(void *x) {
    return (void *)((wxObject *)  ((wxFileSystem *) x));
}
static void *_p_wxContextMenuEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *)(wxCommandEvent *) ((wxContextMenuEvent *) x));
}
static void *_p_wxMenuEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxMenuEvent *) x));
}
static void *_p_wxIEHtmlWindowBaseTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvtHandler *)(wxWindow *)(wxActiveXWindow *) ((wxIEHtmlWindowBase *) x));
}
static void *_p_wxPyAppTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvtHandler *) ((wxPyApp *) x));
}
static void *_p_wxCloseEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxCloseEvent *) x));
}
static void *_p_wxMouseEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxMouseEvent *) x));
}
static void *_p_wxEraseEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxEraseEvent *) x));
}
static void *_p_wxPyCommandEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *)(wxCommandEvent *) ((wxPyCommandEvent *) x));
}
static void *_p_wxCommandEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxCommandEvent *) x));
}
static void *_p_wxDropFilesEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxDropFilesEvent *) x));
}
static void *_p_wxFocusEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *) ((wxFocusEvent *) x));
}
static void *_p_wxChildFocusEventTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvent *)(wxCommandEvent *) ((wxChildFocusEvent *) x));
}
static void *_p_wxControlWithItemsTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvtHandler *)(wxWindow *)(wxControl *) ((wxControlWithItems *) x));
}
static void *_p_wxPyValidatorTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvtHandler *)(wxValidator *) ((wxPyValidator *) x));
}
static void *_p_wxValidatorTo_p_wxObject(void *x) {
    return (void *)((wxObject *) (wxEvtHandler *) ((wxValidator *) x));
}
static void *_p_wxIEHtmlWindowBaseTo_p_wxActiveXWindow(void *x) {
    return (void *)((wxActiveXWindow *)  ((wxIEHtmlWindowBase *) x));
}
static void *_p_wxControlTo_p_wxWindow(void *x) {
    return (void *)((wxWindow *)  ((wxControl *) x));
}
static void *_p_wxControlWithItemsTo_p_wxWindow(void *x) {
    return (void *)((wxWindow *) (wxControl *) ((wxControlWithItems *) x));
}
static void *_p_wxActiveXWindowTo_p_wxWindow(void *x) {
    return (void *)((wxWindow *)  ((wxActiveXWindow *) x));
}
static void *_p_wxMenuBarTo_p_wxWindow(void *x) {
    return (void *)((wxWindow *)  ((wxMenuBar *) x));
}
static void *_p_wxIEHtmlWindowBaseTo_p_wxWindow(void *x) {
    return (void *)((wxWindow *) (wxActiveXWindow *) ((wxIEHtmlWindowBase *) x));
}
static void *_p_wxChildFocusEventTo_p_wxCommandEvent(void *x) {
    return (void *)((wxCommandEvent *)  ((wxChildFocusEvent *) x));
}
static void *_p_wxScrollEventTo_p_wxCommandEvent(void *x) {
    return (void *)((wxCommandEvent *)  ((wxScrollEvent *) x));
}
static void *_p_wxWindowCreateEventTo_p_wxCommandEvent(void *x) {
    return (void *)((wxCommandEvent *)  ((wxWindowCreateEvent *) x));
}
static void *_p_wxUpdateUIEventTo_p_wxCommandEvent(void *x) {
    return (void *)((wxCommandEvent *)  ((wxUpdateUIEvent *) x));
}
static void *_p_wxActiveXEventTo_p_wxCommandEvent(void *x) {
    return (void *)((wxCommandEvent *)  ((wxActiveXEvent *) x));
}
static void *_p_wxWindowDestroyEventTo_p_wxCommandEvent(void *x) {
    return (void *)((wxCommandEvent *)  ((wxWindowDestroyEvent *) x));
}
static void *_p_wxContextMenuEventTo_p_wxCommandEvent(void *x) {
    return (void *)((wxCommandEvent *)  ((wxContextMenuEvent *) x));
}
static void *_p_wxNotifyEventTo_p_wxCommandEvent(void *x) {
    return (void *)((wxCommandEvent *)  ((wxNotifyEvent *) x));
}
static void *_p_wxPyCommandEventTo_p_wxCommandEvent(void *x) {
    return (void *)((wxCommandEvent *)  ((wxPyCommandEvent *) x));
}
static void *_p_wxControlTo_p_wxEvtHandler(void *x) {
    return (void *)((wxEvtHandler *) (wxWindow *) ((wxControl *) x));
}
static void *_p_wxWindowTo_p_wxEvtHandler(void *x) {
    return (void *)((wxEvtHandler *)  ((wxWindow *) x));
}
static void *_p_wxControlWithItemsTo_p_wxEvtHandler(void *x) {
    return (void *)((wxEvtHandler *) (wxWindow *)(wxControl *) ((wxControlWithItems *) x));
}
static void *_p_wxActiveXWindowTo_p_wxEvtHandler(void *x) {
    return (void *)((wxEvtHandler *) (wxWindow *) ((wxActiveXWindow *) x));
}
static void *_p_wxPyAppTo_p_wxEvtHandler(void *x) {
    return (void *)((wxEvtHandler *)  ((wxPyApp *) x));
}
static void *_p_wxValidatorTo_p_wxEvtHandler(void *x) {
    return (void *)((wxEvtHandler *)  ((wxValidator *) x));
}
static void *_p_wxPyValidatorTo_p_wxEvtHandler(void *x) {
    return (void *)((wxEvtHandler *) (wxValidator *) ((wxPyValidator *) x));
}
static void *_p_wxMenuBarTo_p_wxEvtHandler(void *x) {
    return (void *)((wxEvtHandler *) (wxWindow *) ((wxMenuBar *) x));
}
static void *_p_wxMenuTo_p_wxEvtHandler(void *x) {
    return (void *)((wxEvtHandler *)  ((wxMenu *) x));
}
static void *_p_wxIEHtmlWindowBaseTo_p_wxEvtHandler(void *x) {
    return (void *)((wxEvtHandler *) (wxWindow *)(wxActiveXWindow *) ((wxIEHtmlWindowBase *) x));
}
static void *_p_wxContextMenuEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *) (wxCommandEvent *) ((wxContextMenuEvent *) x));
}
static void *_p_wxMenuEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxMenuEvent *) x));
}
static void *_p_wxCloseEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxCloseEvent *) x));
}
static void *_p_wxMouseEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxMouseEvent *) x));
}
static void *_p_wxEraseEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxEraseEvent *) x));
}
static void *_p_wxSetCursorEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxSetCursorEvent *) x));
}
static void *_p_wxInitDialogEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxInitDialogEvent *) x));
}
static void *_p_wxScrollEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *) (wxCommandEvent *) ((wxScrollEvent *) x));
}
static void *_p_wxPyEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxPyEvent *) x));
}
static void *_p_wxNotifyEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *) (wxCommandEvent *) ((wxNotifyEvent *) x));
}
static void *_p_wxIdleEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxIdleEvent *) x));
}
static void *_p_wxWindowCreateEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *) (wxCommandEvent *) ((wxWindowCreateEvent *) x));
}
static void *_p_wxQueryNewPaletteEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxQueryNewPaletteEvent *) x));
}
static void *_p_wxMaximizeEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxMaximizeEvent *) x));
}
static void *_p_wxIconizeEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxIconizeEvent *) x));
}
static void *_p_wxActivateEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxActivateEvent *) x));
}
static void *_p_wxSizeEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxSizeEvent *) x));
}
static void *_p_wxMoveEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxMoveEvent *) x));
}
static void *_p_wxPaintEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxPaintEvent *) x));
}
static void *_p_wxNcPaintEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxNcPaintEvent *) x));
}
static void *_p_wxUpdateUIEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *) (wxCommandEvent *) ((wxUpdateUIEvent *) x));
}
static void *_p_wxPaletteChangedEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxPaletteChangedEvent *) x));
}
static void *_p_wxDisplayChangedEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxDisplayChangedEvent *) x));
}
static void *_p_wxMouseCaptureChangedEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxMouseCaptureChangedEvent *) x));
}
static void *_p_wxSysColourChangedEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxSysColourChangedEvent *) x));
}
static void *_p_wxDropFilesEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxDropFilesEvent *) x));
}
static void *_p_wxFocusEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxFocusEvent *) x));
}
static void *_p_wxChildFocusEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *) (wxCommandEvent *) ((wxChildFocusEvent *) x));
}
static void *_p_wxActiveXEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *) (wxCommandEvent *) ((wxActiveXEvent *) x));
}
static void *_p_wxShowEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxShowEvent *) x));
}
static void *_p_wxCommandEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxCommandEvent *) x));
}
static void *_p_wxPyCommandEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *) (wxCommandEvent *) ((wxPyCommandEvent *) x));
}
static void *_p_wxWindowDestroyEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *) (wxCommandEvent *) ((wxWindowDestroyEvent *) x));
}
static void *_p_wxNavigationKeyEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxNavigationKeyEvent *) x));
}
static void *_p_wxKeyEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxKeyEvent *) x));
}
static void *_p_wxScrollWinEventTo_p_wxEvent(void *x) {
    return (void *)((wxEvent *)  ((wxScrollWinEvent *) x));
}
static swig_type_info _swigt__p_wxObject[] = {{"_p_wxObject", 0, "wxObject *", 0, 0, 0, 0},{"_p_wxLayoutConstraints", _p_wxLayoutConstraintsTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxGBSizerItem", _p_wxGBSizerItemTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxSizerItem", _p_wxSizerItemTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxScrollEvent", _p_wxScrollEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxIndividualLayoutConstraint", _p_wxIndividualLayoutConstraintTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxStaticBoxSizer", _p_wxStaticBoxSizerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxBoxSizer", _p_wxBoxSizerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxSizer", _p_wxSizerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxGridBagSizer", _p_wxGridBagSizerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxUpdateUIEvent", _p_wxUpdateUIEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxMenu", _p_wxMenuTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxEvent", _p_wxEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxFlexGridSizer", _p_wxFlexGridSizerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxGridSizer", _p_wxGridSizerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxInitDialogEvent", _p_wxInitDialogEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxNcPaintEvent", _p_wxNcPaintEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxPaintEvent", _p_wxPaintEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxPaletteChangedEvent", _p_wxPaletteChangedEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxDisplayChangedEvent", _p_wxDisplayChangedEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxSysColourChangedEvent", _p_wxSysColourChangedEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxMouseCaptureChangedEvent", _p_wxMouseCaptureChangedEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxControl", _p_wxControlTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxSetCursorEvent", _p_wxSetCursorEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxFSFile", _p_wxFSFileTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxPySizer", _p_wxPySizerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxPyEvent", _p_wxPyEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxNotifyEvent", _p_wxNotifyEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxShowEvent", _p_wxShowEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxMenuItem", _p_wxMenuItemTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxMoveEvent", _p_wxMoveEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxSizeEvent", _p_wxSizeEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxActivateEvent", _p_wxActivateEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxIconizeEvent", _p_wxIconizeEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxMaximizeEvent", _p_wxMaximizeEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxIdleEvent", _p_wxIdleEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxWindowCreateEvent", _p_wxWindowCreateEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxQueryNewPaletteEvent", _p_wxQueryNewPaletteEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxXPMHandler", _p_wxXPMHandlerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxPNMHandler", _p_wxPNMHandlerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxJPEGHandler", _p_wxJPEGHandlerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxPCXHandler", _p_wxPCXHandlerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxGIFHandler", _p_wxGIFHandlerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxPNGHandler", _p_wxPNGHandlerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxANIHandler", _p_wxANIHandlerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxCURHandler", _p_wxCURHandlerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxICOHandler", _p_wxICOHandlerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxBMPHandler", _p_wxBMPHandlerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxImageHandler", _p_wxImageHandlerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxTIFFHandler", _p_wxTIFFHandlerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxEvtHandler", _p_wxEvtHandlerTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxAcceleratorTable", _p_wxAcceleratorTableTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxImage", _p_wxImageTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxScrollWinEvent", _p_wxScrollWinEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxObject", 0, 0, 0, 0, 0, 0},{"_p_wxKeyEvent", _p_wxKeyEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxNavigationKeyEvent", _p_wxNavigationKeyEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxWindowDestroyEvent", _p_wxWindowDestroyEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxActiveXEvent", _p_wxActiveXEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxActiveXWindow", _p_wxActiveXWindowTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxWindow", _p_wxWindowTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxMenuBar", _p_wxMenuBarTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxFileSystem", _p_wxFileSystemTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxIEHtmlWindowBase", _p_wxIEHtmlWindowBaseTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxContextMenuEvent", _p_wxContextMenuEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxMenuEvent", _p_wxMenuEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxPyApp", _p_wxPyAppTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxCloseEvent", _p_wxCloseEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxMouseEvent", _p_wxMouseEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxEraseEvent", _p_wxEraseEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxCommandEvent", _p_wxCommandEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxPyCommandEvent", _p_wxPyCommandEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxDropFilesEvent", _p_wxDropFilesEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxFocusEvent", _p_wxFocusEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxChildFocusEvent", _p_wxChildFocusEventTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxControlWithItems", _p_wxControlWithItemsTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxPyValidator", _p_wxPyValidatorTo_p_wxObject, 0, 0, 0, 0, 0},{"_p_wxValidator", _p_wxValidatorTo_p_wxObject, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_wxFuncX[] = {{"_p_wxFuncX", 0, "wxFuncX *", 0, 0, 0, 0},{"_p_wxFuncX", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_wxActiveXWindow[] = {{"_p_wxActiveXWindow", 0, "wxActiveXWindow *", 0, 0, 0, 0},{"_p_wxActiveXWindow", 0, 0, 0, 0, 0, 0},{"_p_wxIEHtmlWindowBase", _p_wxIEHtmlWindowBaseTo_p_wxActiveXWindow, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_wxWindow[] = {{"_p_wxWindow", 0, "wxWindow *", 0, 0, 0, 0},{"_p_wxControl", _p_wxControlTo_p_wxWindow, 0, 0, 0, 0, 0},{"_p_wxWindow", 0, 0, 0, 0, 0, 0},{"_p_wxControlWithItems", _p_wxControlWithItemsTo_p_wxWindow, 0, 0, 0, 0, 0},{"_p_wxActiveXWindow", _p_wxActiveXWindowTo_p_wxWindow, 0, 0, 0, 0, 0},{"_p_wxMenuBar", _p_wxMenuBarTo_p_wxWindow, 0, 0, 0, 0, 0},{"_p_wxIEHtmlWindowBase", _p_wxIEHtmlWindowBaseTo_p_wxWindow, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_wxCommandEvent[] = {{"_p_wxCommandEvent", 0, "wxCommandEvent *", 0, 0, 0, 0},{"_p_wxChildFocusEvent", _p_wxChildFocusEventTo_p_wxCommandEvent, 0, 0, 0, 0, 0},{"_p_wxScrollEvent", _p_wxScrollEventTo_p_wxCommandEvent, 0, 0, 0, 0, 0},{"_p_wxWindowCreateEvent", _p_wxWindowCreateEventTo_p_wxCommandEvent, 0, 0, 0, 0, 0},{"_p_wxUpdateUIEvent", _p_wxUpdateUIEventTo_p_wxCommandEvent, 0, 0, 0, 0, 0},{"_p_wxActiveXEvent", _p_wxActiveXEventTo_p_wxCommandEvent, 0, 0, 0, 0, 0},{"_p_wxWindowDestroyEvent", _p_wxWindowDestroyEventTo_p_wxCommandEvent, 0, 0, 0, 0, 0},{"_p_wxContextMenuEvent", _p_wxContextMenuEventTo_p_wxCommandEvent, 0, 0, 0, 0, 0},{"_p_wxCommandEvent", 0, 0, 0, 0, 0, 0},{"_p_wxNotifyEvent", _p_wxNotifyEventTo_p_wxCommandEvent, 0, 0, 0, 0, 0},{"_p_wxPyCommandEvent", _p_wxPyCommandEventTo_p_wxCommandEvent, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_char[] = {{"_p_char", 0, "char *", 0, 0, 0, 0},{"_p_char", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_wxInputStream[] = {{"_p_wxInputStream", 0, "wxInputStream *", 0, 0, 0, 0},{"_p_wxInputStream", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_wxEvtHandler[] = {{"_p_wxEvtHandler", 0, "wxEvtHandler *", 0, 0, 0, 0},{"_p_wxControl", _p_wxControlTo_p_wxEvtHandler, 0, 0, 0, 0, 0},{"_p_wxWindow", _p_wxWindowTo_p_wxEvtHandler, 0, 0, 0, 0, 0},{"_p_wxControlWithItems", _p_wxControlWithItemsTo_p_wxEvtHandler, 0, 0, 0, 0, 0},{"_p_wxActiveXWindow", _p_wxActiveXWindowTo_p_wxEvtHandler, 0, 0, 0, 0, 0},{"_p_wxEvtHandler", 0, 0, 0, 0, 0, 0},{"_p_wxPyApp", _p_wxPyAppTo_p_wxEvtHandler, 0, 0, 0, 0, 0},{"_p_wxMenuBar", _p_wxMenuBarTo_p_wxEvtHandler, 0, 0, 0, 0, 0},{"_p_wxValidator", _p_wxValidatorTo_p_wxEvtHandler, 0, 0, 0, 0, 0},{"_p_wxPyValidator", _p_wxPyValidatorTo_p_wxEvtHandler, 0, 0, 0, 0, 0},{"_p_wxMenu", _p_wxMenuTo_p_wxEvtHandler, 0, 0, 0, 0, 0},{"_p_wxIEHtmlWindowBase", _p_wxIEHtmlWindowBaseTo_p_wxEvtHandler, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_wxPropX[] = {{"_p_wxPropX", 0, "wxPropX *", 0, 0, 0, 0},{"_p_wxPropX", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_wxFuncXArray[] = {{"_p_wxFuncXArray", 0, "wxFuncXArray *", 0, 0, 0, 0},{"_p_wxFuncXArray", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_wxParamXArray[] = {{"_p_wxParamXArray", 0, "wxParamXArray *", 0, 0, 0, 0},{"_p_wxParamXArray", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_wxActiveXEvent[] = {{"_p_wxActiveXEvent", 0, "wxActiveXEvent *", 0, 0, 0, 0},{"_p_wxActiveXEvent", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_wxParamX[] = {{"_p_wxParamX", 0, "wxParamX *", 0, 0, 0, 0},{"_p_wxParamX", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_wxIEHtmlWindowBase[] = {{"_p_wxIEHtmlWindowBase", 0, "wxIEHtmlWindowBase *", 0, 0, 0, 0},{"_p_wxIEHtmlWindowBase", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_wxPropXArray[] = {{"_p_wxPropXArray", 0, "wxPropXArray *", 0, 0, 0, 0},{"_p_wxPropXArray", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_wxEvent[] = {{"_p_wxEvent", 0, "wxEvent *", 0, 0, 0, 0},{"_p_wxContextMenuEvent", _p_wxContextMenuEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxMenuEvent", _p_wxMenuEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxCloseEvent", _p_wxCloseEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxMouseEvent", _p_wxMouseEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxEraseEvent", _p_wxEraseEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxSetCursorEvent", _p_wxSetCursorEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxInitDialogEvent", _p_wxInitDialogEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxScrollEvent", _p_wxScrollEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxPyEvent", _p_wxPyEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxNotifyEvent", _p_wxNotifyEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxEvent", 0, 0, 0, 0, 0, 0},{"_p_wxQueryNewPaletteEvent", _p_wxQueryNewPaletteEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxWindowCreateEvent", _p_wxWindowCreateEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxIdleEvent", _p_wxIdleEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxMaximizeEvent", _p_wxMaximizeEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxIconizeEvent", _p_wxIconizeEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxMoveEvent", _p_wxMoveEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxSizeEvent", _p_wxSizeEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxActivateEvent", _p_wxActivateEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxPaintEvent", _p_wxPaintEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxNcPaintEvent", _p_wxNcPaintEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxUpdateUIEvent", _p_wxUpdateUIEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxPaletteChangedEvent", _p_wxPaletteChangedEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxDisplayChangedEvent", _p_wxDisplayChangedEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxMouseCaptureChangedEvent", _p_wxMouseCaptureChangedEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxSysColourChangedEvent", _p_wxSysColourChangedEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxActiveXEvent", _p_wxActiveXEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxDropFilesEvent", _p_wxDropFilesEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxFocusEvent", _p_wxFocusEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxChildFocusEvent", _p_wxChildFocusEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxShowEvent", _p_wxShowEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxCommandEvent", _p_wxCommandEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxPyCommandEvent", _p_wxPyCommandEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxWindowDestroyEvent", _p_wxWindowDestroyEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxNavigationKeyEvent", _p_wxNavigationKeyEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxKeyEvent", _p_wxKeyEventTo_p_wxEvent, 0, 0, 0, 0, 0},{"_p_wxScrollWinEvent", _p_wxScrollWinEventTo_p_wxEvent, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};
static swig_type_info _swigt__p_CLSID[] = {{"_p_CLSID", 0, "CLSID *", 0, 0, 0, 0},{"_p_CLSID", 0, 0, 0, 0, 0, 0},{0, 0, 0, 0, 0, 0, 0}};

static swig_type_info *swig_types_initial[] = {
_swigt__p_wxObject, 
_swigt__p_wxFuncX, 
_swigt__p_wxActiveXWindow, 
_swigt__p_wxWindow, 
_swigt__p_wxCommandEvent, 
_swigt__p_char, 
_swigt__p_wxInputStream, 
_swigt__p_wxEvtHandler, 
_swigt__p_wxPropX, 
_swigt__p_wxFuncXArray, 
_swigt__p_wxParamXArray, 
_swigt__p_wxActiveXEvent, 
_swigt__p_wxParamX, 
_swigt__p_wxIEHtmlWindowBase, 
_swigt__p_wxPropXArray, 
_swigt__p_wxEvent, 
_swigt__p_CLSID, 
0
};


/* -------- TYPE CONVERSION AND EQUIVALENCE RULES (END) -------- */

static swig_const_info swig_const_table[] = {
{0, 0, 0, 0.0, 0, 0}};

#ifdef __cplusplus
}
#endif

#ifdef __cplusplus
extern "C"
#endif
SWIGEXPORT(void) SWIG_init(void) {
    static PyObject *SWIG_globals = 0; 
    static int       typeinit = 0;
    PyObject *m, *d;
    int       i;
    if (!SWIG_globals) SWIG_globals = SWIG_newvarlink();
    m = Py_InitModule((char *) SWIG_name, SwigMethods);
    d = PyModule_GetDict(m);
    
    if (!typeinit) {
        for (i = 0; swig_types_initial[i]; i++) {
            swig_types[i] = SWIG_TypeRegister(swig_types_initial[i]);
        }
        typeinit = 1;
    }
    SWIG_InstallConstants(d,swig_const_table);
    
}

