%{
// 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);
inline bool wxPyErr_Occurred()
{
bool rval;
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
rval = PyErr_Occurred() != NULL;
- wxPyEndBlockThreads();
+ wxPyEndBlockThreads(blocked);
return rval;
}
NameMap::const_iterator it = m_methodNames.find(name);
if (it == m_methodNames.end()) {
wxString msg;
- msg << "method <" << name << "> not found";
+ msg << _T("method <") << name << _T("> not found");
wxPyErr_SetString(PyExc_KeyError, msg.mb_str());
static wxFuncX BadVal;
return BadVal;
NameMap::const_iterator it = m_propNames.find(name);
if (it == m_propNames.end()) {
wxString msg;
- msg << "property <" << name << "> not found";
+ msg << _T("property <") << name << _T("> not found");
wxPyErr_SetString(PyExc_KeyError, msg.mb_str());
static wxPropX BadVal;
return BadVal;
void SetAXProp(const wxString& name, PyObject* value)
{
const wxPropX& prop = GetAXPropDesc(name);
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
if (! PyErr_Occurred() ) {
if (! prop.CanSet()) {
wxString msg;
- msg << "property <" << name << "> is readonly";
+ msg << _T("property <") << name << _T("> is readonly");
PyErr_SetString(PyExc_TypeError, msg.mb_str());
goto done;
} else {
VARIANT v = {prop.arg.vt};
if (!VariantToMSWVariant(wxV, v) || PyErr_Occurred()) {
wxString msg;
- msg << "Unable to convert value to expected type: ("
- << _VARTYPEname(prop.arg.vt) << ") for property <"
- << name << ">";
+ 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;
}
}
}
done:
- wxPyEndBlockThreads();
+ wxPyEndBlockThreads(blocked);
}
{
PyObject* rval = NULL;
const wxPropX& prop = GetAXPropDesc(name);
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
if (! PyErr_Occurred() ) {
if (! prop.CanGet()) {
wxString msg;
- msg << "property <" << name << "> is writeonly";
+ msg << _T("property <") << name << _T("> is writeonly");
PyErr_SetString(PyExc_TypeError, msg.mb_str());
goto done;
} else {
wxVariant wv;
if (!MSWVariantToVariant(v, wv) || PyErr_Occurred()) {
wxString msg;
- msg << "Unable to convert value to expected type: ("
- << _VARTYPEname(prop.arg.vt) << ") for property <"
- << name << ">";
+ 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;
}
}
}
done:
- wxPyEndBlockThreads();
+ wxPyEndBlockThreads(blocked);
return rval;
}
PyObject* rval = NULL;
const wxFuncX& func = GetAXMethodDesc(name);
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
if (! PyErr_Occurred() ) {
nargs = func.params.size();
if (nargs > 0)
goto done;
if (!VariantToMSWVariant(wxV, vargs[nargs - i - 1]) || PyErr_Occurred()) {
wxString msg;
- msg << "Unable to convert value to expected type: ("
+ msg << _T("Unable to convert value to expected type: (")
<< _VARTYPEname(vargs[nargs - i - 1].vt)
- << ") for parameter " << i;
+ << _T(") for parameter ") << i;
PyErr_SetString(PyExc_TypeError, msg.mb_str());
goto done;
}
PyErr_Clear();
}
done:
- wxPyEndBlockThreads();
+ wxPyEndBlockThreads(blocked);
if (vargs) {
for (int i = 0; i < nargs; i++)
VariantClear(&vargs[i]);
wxString EventName();
%extend {
- DocStr(_preInit,
-"This is called by the EventThunker before calling the handler.
-We'll convert and load the ActiveX event parameters into
-attributes of the Python event object.");
- void _preInit(PyObject* pyself) {
- wxPyBeginBlockThreads();
+
+ // This is called by the EventThunker before calling the
+ // handler. We'll convert and load the ActiveX event parameters into
+ // attributes of the Python event object.
+ void _preCallInit(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*)self->ParamName(i).mb_str());
+ 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();
+ wxPyEndBlockThreads(blocked);
+ }
+
+ // This one is called by the EventThunker after calling the
+ // handler. It reloads any "out" parameters from the python attributes
+ // back into the wxVariant they came from.
+ void _postCallCleanup(PyObject* pyself) {
+ 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);
}
+
+
}
};
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);
// TODO: PyList of strings --> wxArrayString
// wxDateTime
// list of objects
+ // etc.
else {
PyErr_SetString(PyExc_TypeError, "Unsupported object type in _PyObj2Variant");
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)
else if (value.IsType(_T("double")))
rval = PyFloat_FromDouble(value);
- else if (value.IsType(_T("bool")))
- rval = PyBool_FromLong((bool)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);
// 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 ?
- pstrm->prepend = "<html>";
+#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);
// 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);
inline bool wxPyErr_Occurred()
{
bool rval;
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
rval = PyErr_Occurred() != NULL;
- wxPyEndBlockThreads();
+ wxPyEndBlockThreads(blocked);
return rval;
}
NameMap::const_iterator it = m_methodNames.find(name);
if (it == m_methodNames.end()) {
wxString msg;
- msg << "method <" << name << "> not found";
+ msg << _T("method <") << name << _T("> not found");
wxPyErr_SetString(PyExc_KeyError, msg.mb_str());
static wxFuncX BadVal;
return BadVal;
NameMap::const_iterator it = m_propNames.find(name);
if (it == m_propNames.end()) {
wxString msg;
- msg << "property <" << name << "> not found";
+ msg << _T("property <") << name << _T("> not found");
wxPyErr_SetString(PyExc_KeyError, msg.mb_str());
static wxPropX BadVal;
return BadVal;
void SetAXProp(const wxString& name, PyObject* value)
{
const wxPropX& prop = GetAXPropDesc(name);
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
if (! PyErr_Occurred() ) {
if (! prop.CanSet()) {
wxString msg;
- msg << "property <" << name << "> is readonly";
+ msg << _T("property <") << name << _T("> is readonly");
PyErr_SetString(PyExc_TypeError, msg.mb_str());
goto done;
} else {
VARIANT v = {prop.arg.vt};
if (!VariantToMSWVariant(wxV, v) || PyErr_Occurred()) {
wxString msg;
- msg << "Unable to convert value to expected type: ("
- << _VARTYPEname(prop.arg.vt) << ") for property <"
- << name << ">";
+ 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;
}
}
}
done:
- wxPyEndBlockThreads();
+ wxPyEndBlockThreads(blocked);
}
{
PyObject* rval = NULL;
const wxPropX& prop = GetAXPropDesc(name);
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
if (! PyErr_Occurred() ) {
if (! prop.CanGet()) {
wxString msg;
- msg << "property <" << name << "> is writeonly";
+ msg << _T("property <") << name << _T("> is writeonly");
PyErr_SetString(PyExc_TypeError, msg.mb_str());
goto done;
} else {
wxVariant wv;
if (!MSWVariantToVariant(v, wv) || PyErr_Occurred()) {
wxString msg;
- msg << "Unable to convert value to expected type: ("
- << _VARTYPEname(prop.arg.vt) << ") for property <"
- << name << ">";
+ 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;
}
}
}
done:
- wxPyEndBlockThreads();
+ wxPyEndBlockThreads(blocked);
return rval;
}
PyObject* rval = NULL;
const wxFuncX& func = GetAXMethodDesc(name);
- wxPyBeginBlockThreads();
+ bool blocked = wxPyBeginBlockThreads();
if (! PyErr_Occurred() ) {
nargs = func.params.size();
if (nargs > 0)
goto done;
if (!VariantToMSWVariant(wxV, vargs[nargs - i - 1]) || PyErr_Occurred()) {
wxString msg;
- msg << "Unable to convert value to expected type: ("
+ msg << _T("Unable to convert value to expected type: (")
<< _VARTYPEname(vargs[nargs - i - 1].vt)
- << ") for parameter " << i;
+ << _T(") for parameter ") << i;
PyErr_SetString(PyExc_TypeError, msg.mb_str());
goto done;
}
PyErr_Clear();
}
done:
- wxPyEndBlockThreads();
+ wxPyEndBlockThreads(blocked);
if (vargs) {
for (int i = 0; i < nargs; i++)
VariantClear(&vargs[i]);
}
}
-void wxActiveXEvent__preInit(wxActiveXEvent *self,PyObject *pyself){
- wxPyBeginBlockThreads();
+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*)self->ParamName(i).mb_str());
+ 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();
+ 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);
}
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);
// TODO: PyList of strings --> wxArrayString
// wxDateTime
// list of objects
+ // etc.
else {
PyErr_SetString(PyExc_TypeError, "Unsupported object type in _PyObj2Variant");
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)
else if (value.IsType(_T("double")))
rval = PyFloat_FromDouble(value);
- else if (value.IsType(_T("bool")))
- rval = PyBool_FromLong((bool)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);
// 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 ?
- pstrm->prepend = "<html>";
+#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);
SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
result = (bool) ((arg1)->isPtr);
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
return resultobj;
fail:
return NULL;
SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
result = (bool) ((arg1)->isSafeArray);
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
return resultobj;
fail:
return NULL;
SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
result = (bool) ((arg1)->isOptional);
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
return resultobj;
fail:
return NULL;
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
return resultobj;
fail:
return NULL;
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
return resultobj;
fail:
return NULL;
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
return resultobj;
fail:
return NULL;
SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
result = (bool) ((arg1)->hasOut);
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
return resultobj;
fail:
return NULL;
SWIG_POINTER_EXCEPTION | 0)) == -1) SWIG_fail;
result = (bool) ((arg1)->putByRef);
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
return resultobj;
fail:
return NULL;
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
return resultobj;
fail:
return NULL;
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
return resultobj;
fail:
return NULL;
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
return resultobj;
fail:
return NULL;
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
return resultobj;
fail:
return NULL;
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
return resultobj;
fail:
return NULL;
}
-static PyObject *_wrap_ActiveXEvent__preInit(PyObject *self, PyObject *args, PyObject *kwargs) {
+static PyObject *_wrap_ActiveXEvent__preCallInit(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject *resultobj;
wxActiveXEvent *arg1 = (wxActiveXEvent *) 0 ;
PyObject *arg2 = (PyObject *) 0 ;
(char *) "self",(char *) "pyself", NULL
};
- if(!PyArg_ParseTupleAndKeywords(args,kwargs,(char *)"OO:ActiveXEvent__preInit",kwnames,&obj0,&obj1)) goto fail;
+ 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__preInit(arg1,arg2);
+ 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 *self, 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;
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
{
if (temp2)
delete arg2;
wxPyEndAllowThreads(__tstate);
if (PyErr_Occurred()) SWIG_fail;
}
- resultobj = PyBool_FromLong((bool)result);
+ {
+ resultobj = result ? Py_True : Py_False; Py_INCREF(resultobj);
+ }
{
if (created2)
delete arg2;
{ (char *)"ActiveXWindow_swigregister", ActiveXWindow_swigregister, METH_VARARGS },
{ (char *)"RegisterActiveXEvent", (PyCFunction) _wrap_RegisterActiveXEvent, METH_VARARGS | METH_KEYWORDS },
{ (char *)"ActiveXEvent_EventName", (PyCFunction) _wrap_ActiveXEvent_EventName, METH_VARARGS | METH_KEYWORDS },
- { (char *)"ActiveXEvent__preInit", (PyCFunction) _wrap_ActiveXEvent__preInit, METH_VARARGS | METH_KEYWORDS },
+ { (char *)"ActiveXEvent__preCallInit", (PyCFunction) _wrap_ActiveXEvent__preCallInit, METH_VARARGS | METH_KEYWORDS },
+ { (char *)"ActiveXEvent__postCallCleanup", (PyCFunction) _wrap_ActiveXEvent__postCallCleanup, METH_VARARGS | METH_KEYWORDS },
{ (char *)"ActiveXEvent_swigregister", ActiveXEvent_swigregister, METH_VARARGS },
{ (char *)"new_IEHtmlWindowBase", (PyCFunction) _wrap_new_IEHtmlWindowBase, METH_VARARGS | METH_KEYWORDS },
{ (char *)"IEHtmlWindowBase_SetCharset", (PyCFunction) _wrap_IEHtmlWindowBase_SetCharset, METH_VARARGS | METH_KEYWORDS },
return m_params[i];
};
- wxString err = "wxActiveXEvent::operator[] invalid name <" + name + ">";
- err += "\r\nValid Names = :\r\n";
+ wxString err = _T("wxActiveXEvent::operator[] invalid name <") + name + _T(">");
+ err += _T("\r\nValid Names = :\r\n");
for (i = 0; i < m_params.GetCount(); i++)
{
err += m_params[i].GetName();
- err += "\r\n";
+ err += _T("\r\n");
};
wxASSERT_MSG(false, err);
if (it == m_propNames.end())
{
wxString s;
- s << "property <" << name << "> not found";
+ s << _T("property <") << name << _T("> not found");
throw exception(s.mb_str());
};
if (it == m_methodNames.end())
{
wxString s;
- s << "method <" << name << "> not found";
+ s << _T("method <") << name << _T("> not found");
throw exception(s.mb_str());
};
if (! prop.CanSet())
{
wxString s;
- s << "property <" << name << "> is readonly";
+ s << _T("property <") << name << _T("> is readonly");
throw exception(s.mb_str());
};
if (! prop.CanGet())
{
wxString s;
- s << "property <" << name << "> is writeonly";
+ s << _T("property <") << name << _T("> is writeonly");
throw exception(s.mb_str());
};
bool GetSysErrMessage(int err, wxString& s)
{
- char buf[256];
+ wxChar buf[256];
if (FormatMessage(
FORMAT_MESSAGE_FROM_SYSTEM, NULL,
err,0, buf, sizeof(buf), NULL) == 0)
switch (hr)
{
case S_OK:
- return "";
+ return wxEmptyString;
case CONNECT_E_CANNOTCONNECT:
- return "Cannot connect to event interface (maybe not there ?) - see MSDN";
+ return _T("Cannot connect to event interface (maybe not there ?) - see MSDN");
case DISP_E_MEMBERNOTFOUND:
- return "The requested member does not exist, or the call to Invoke tried to set the value of a read-only property.";
+ return _T("The requested member does not exist, or the call to Invoke tried to set the value of a read-only property.");
case DISP_E_BADVARTYPE:
- return "One of the parameters in rgvarg is not a valid variant type.";
+ return _T("One of the parameters in rgvarg is not a valid variant type.");
case DISP_E_BADPARAMCOUNT:
- return "The number of elements provided to DISPPARAMS is different from the number of parameters accepted by the method or property";
+ return _T("The number of elements provided to DISPPARAMS is different from the number of parameters accepted by the method or property");
case DISP_E_EXCEPTION:
- return "The application needs to raise an exception. In this case, the structure passed in pExcepInfo should be filled in.";
+ return _T("The application needs to raise an exception. In this case, the structure passed in pExcepInfo should be filled in.");
case DISP_E_TYPEMISMATCH:
- return "One or more of the parameters could not be coerced. The index within rgvarg of the first parameter with the incorrect type is returned in the puArgErr parameter.";
+ return _T("One or more of the parameters could not be coerced. The index within rgvarg of the first parameter with the incorrect type is returned in the puArgErr parameter.");
case DISP_E_PARAMNOTOPTIONAL:
- return "A required parameter was omitted.";
+ return _T("A required parameter was omitted.");
case DISP_E_PARAMNOTFOUND:
- return "One of the parameter DISPIDs does not correspond to a parameter on the method. In this case, puArgErr should be set to the first parameter that contains the error.";
+ return _T("One of the parameter DISPIDs does not correspond to a parameter on the method. In this case, puArgErr should be set to the first parameter that contains the error.");
case OLECMDERR_E_UNKNOWNGROUP:
- return "The pguidCmdGroup parameter is not NULL but does not specify a recognized command group.";
+ return _T("The pguidCmdGroup parameter is not NULL but does not specify a recognized command group.");
case OLECMDERR_E_NOTSUPPORTED:
- return "The nCmdID parameter is not a valid command in the group identified by pguidCmdGroup.";
+ return _T("The nCmdID parameter is not a valid command in the group identified by pguidCmdGroup.");
case OLECMDERR_E_DISABLED:
- return "The command identified by nCmdID is currently disabled and cannot be executed.";
+ return _T("The command identified by nCmdID is currently disabled and cannot be executed.");
case OLECMDERR_E_NOHELP:
- return "The caller has asked for help on the command identified by nCmdID, but no help is available.";
+ return _T("The caller has asked for help on the command identified by nCmdID, but no help is available.");
case OLECMDERR_E_CANCELED:
- return "The user canceled the execution of the command.";
+ return _T("The user canceled the execution of the command.");
case E_INVALIDARG:
- return "E_INVALIDARG";
+ return _T("E_INVALIDARG");
case E_OUTOFMEMORY:
- return "E_OUTOFMEMORY";
+ return _T("E_OUTOFMEMORY");
case E_NOINTERFACE:
- return "E_NOINTERFACE";
+ return _T("E_NOINTERFACE");
case E_UNEXPECTED:
- return "E_UNEXPECTED";
+ return _T("E_UNEXPECTED");
case STG_E_INVALIDFLAG:
- return "STG_E_INVALIDFLAG";
+ return _T("STG_E_INVALIDFLAG");
case E_FAIL:
- return "E_FAIL";
+ return _T("E_FAIL");
case E_NOTIMPL:
- return "E_NOTIMPL";
+ return _T("E_NOTIMPL");
default:
{
- char buf[64];
- sprintf(buf, "Unknown - 0x%X", hr);
- return wxString(buf);
+ wxString buf;
+ buf.Printf(_T("Unknown - 0x%X"), hr);
+ return buf;
}
};
};
return s;
}
else
- return "StringFromIID() error";
+ return _T("StringFromIID() error");
}