/*! Returns true if the script engine supports introspection; otherwise returns false. */ bool QAxScriptEngine::hasIntrospection() const { if (!isValid()) return false; IDispatch *scriptDispatch = 0; QAxBase::queryInterface(IID_IDispatch, (void**)&scriptDispatch); if (!scriptDispatch) return false; UINT tic = 0; HRESULT hres = scriptDispatch->GetTypeInfoCount(&tic); scriptDispatch->Release(); return hres == S_OK && tic > 0; }
// @pymethod int|PyIDispatch|GetTypeInfoCount|Retrieves the number of <o PyITypeInfo>s the object provides. PyObject *PyIDispatch::GetTypeInfoCount(PyObject *self, PyObject *args) { if (!PyArg_ParseTuple(args,":GetTypeInfoCount")) return NULL; unsigned int ret; IDispatch *pMyDispatch = GetI(self); if (pMyDispatch==NULL) return NULL; PY_INTERFACE_PRECALL; HRESULT hr = pMyDispatch->GetTypeInfoCount(&ret); PY_INTERFACE_POSTCALL; if ( FAILED(hr) ) return PyCom_BuildPyException(hr, pMyDispatch, IID_IDispatch); return Py_BuildValue("i", ret); }