336 if (riid != IID_NULL)
337 return DISP_E_UNKNOWNINTERFACE;
338 if (!(wFlags & DISPATCH_METHOD))
339 return DISP_E_MEMBERNOTFOUND;
345 return DISP_E_MEMBERNOTFOUND;
361 void *argv[] = {0, &nameString, &pDispParams->cArgs, &pDispParams->rgvarg};
377 int argcount = pDispParams->cArgs;
378 if (pcount > argcount)
379 return DISP_E_PARAMNOTOPTIONAL;
380 else if (pcount < argcount)
381 return DISP_E_BADPARAMCOUNT;
390 void **argv_pointer = 0;
396 argv_pointer = static_argv_pointer;
399 argv =
new void*[pcount + 1];
400 argv_pointer =
new void*[pcount + 1];
409 for (p = 0; p < pcount && ok; ++p) {
413 argv_pointer[p + 1] = 0;
414 if (varp[p + 1].isValid()) {
416 argv[p + 1] = varp[p + 1].
data();
417 }
else if (ptype ==
"QVariant") {
418 argv[p + 1] = varp + p + 1;
420 argv[p + 1] =
const_cast<void*
>(varp[p + 1].
constData());
422 argv_pointer[p + 1] = argv[p + 1];
423 argv[p + 1] = argv_pointer + p + 1;
426 }
else if (ptype ==
"QVariant") {
427 argv[p + 1] = varp + p + 1;
437 for (p = 0; p < pcount; ++p) {
441 if (!
QVariantToVARIANT(varp[p + 1], pDispParams->rgvarg[pcount - p - 1], ptype, out))
447 if (argv != static_argv) {
449 delete [] argv_pointer;
452 hres = ok ? S_OK : (ok ? DISP_E_MEMBERNOTFOUND : DISP_E_TYPEMISMATCH);
The QVariant class acts like a union for the most common Qt data types.
virtual const QMetaObject * metaObject() const
The metaobject is generated on the fly from the information provided by the IDispatch and ITypeInfo i...
QMap< DISPID, QByteArray > sigs
virtual QObject * qObject() const =0
The QByteArray class provides an array of bytes.
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
The QString class provides a Unicode character string.
The QObject class is the base class of all Qt objects.
const T value(const Key &key) const
Returns the value associated with the key key.
virtual int qt_metacall(QMetaObject::Call, int, void **)
bool QVariantToVARIANT(const QVariant &var, VARIANT &arg, const QByteArray &typeName, bool out)
QAxMetaObject * internalMetaObject() const
const void * constData() const
QVariant VARIANTToQVariant(const VARIANT &arg, const QByteArray &typeName, uint type)
Returns arg as a QVariant of type type.
bool isEmpty() const
Returns true if the byte array has size 0; otherwise returns false.
bool signalsBlocked() const
Returns true if signals are blocked; otherwise returns false.
static bool signalHasReceivers(QObject *qobject, const char *signalName)
bool endsWith(const QByteArray &a) const
Returns true if this byte array ends with byte array ba; otherwise returns false. ...