Qt 4.8
Public Functions | Static Public Functions | Public Variables | List of all members
QAxEventSink Class Reference
Inheritance diagram for QAxEventSink:

Public Functions

void addProperty (DISPID propid, const char *name, const char *signal)
 
unsigned long __stdcall AddRef ()
 
void addSignal (DISPID memid, const char *name)
 
void advise (IConnectionPoint *cp, IID iid)
 
QUuid connectionInterface () const
 
QByteArray findProperty (DISPID dispID)
 
HRESULT __stdcall GetIDsOfNames (const _GUID &, wchar_t **, unsigned int, unsigned long, long *)
 
HRESULT __stdcall GetTypeInfo (UINT, LCID, ITypeInfo **)
 
HRESULT __stdcall GetTypeInfoCount (unsigned int *)
 
HRESULT __stdcall Invoke (DISPID dispIdMember, REFIID riid, LCID, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *, EXCEPINFO *, UINT *)
 
HRESULT __stdcall OnChanged (DISPID dispID)
 
HRESULT __stdcall OnRequestEdit (DISPID dispID)
 
QMap< DISPID, QByteArraypropertyMap () const
 
QMap< DISPID, QByteArraypropSignalMap () const
 
 QAxEventSink (QAxBase *com)
 
HRESULT __stdcall QueryInterface (REFIID riid, void **ppvObject)
 
unsigned long __stdcall Release ()
 
QMap< DISPID, QByteArraysignalMap () const
 
void unadvise ()
 
virtual ~QAxEventSink ()
 

Static Public Functions

static bool signalHasReceivers (QObject *qobject, const char *signalName)
 

Public Variables

IID ciid
 
QAxBasecombase
 
ULONG cookie
 
IConnectionPoint * cpoint
 
QMap< DISPID, QByteArrayprops
 
QMap< DISPID, QByteArraypropsigs
 
LONG ref
 
QMap< DISPID, QByteArraysigs
 

Detailed Description

Definition at line 211 of file qaxbase.cpp.

Constructors and Destructors

◆ QAxEventSink()

QAxEventSink::QAxEventSink ( QAxBase com)
inline

Definition at line 214 of file qaxbase.cpp.

215  : cpoint(0), ciid(IID_NULL), combase(com), ref(1)
216  {}
IConnectionPoint * cpoint
Definition: qaxbase.cpp:532
QAxBase * combase
Definition: qaxbase.cpp:540

◆ ~QAxEventSink()

virtual QAxEventSink::~QAxEventSink ( )
inlinevirtual

Definition at line 217 of file qaxbase.cpp.

218  {
219  Q_ASSERT(!cpoint);
220  }
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
IConnectionPoint * cpoint
Definition: qaxbase.cpp:532

Functions

◆ addProperty()

void QAxEventSink::addProperty ( DISPID  propid,
const char *  name,
const char *  signal 
)
inline

Definition at line 284 of file qaxbase.cpp.

Referenced by MetaObjectGenerator::addChangedSignal().

285  {
286  props.insert(propid, name);
287  propsigs.insert(propid, signal);
288  }
const char * name
QMap< DISPID, QByteArray > propsigs
Definition: qaxbase.cpp:537
iterator insert(const Key &key, const T &value)
Inserts a new item with the key key and a value of value.
Definition: qmap.h:559
QMap< DISPID, QByteArray > props
Definition: qaxbase.cpp:538

◆ AddRef()

unsigned long __stdcall QAxEventSink::AddRef ( )
inline

Definition at line 291 of file qaxbase.cpp.

292  {
293  return InterlockedIncrement(&ref);
294  }

◆ addSignal()

void QAxEventSink::addSignal ( DISPID  memid,
const char *  name 
)
inline

Definition at line 259 of file qaxbase.cpp.

Referenced by MetaObjectGenerator::readEventInterface().

260  {
261  QByteArray signalname = name;
262  int pi = signalname.indexOf('(');
263  int i = 0;
264  while (type_conversion[i][0]) {
265  int ti = pi;
266  int len = int(strlen(type_conversion[i][0]));
267  while ((ti = signalname.indexOf(type_conversion[i][0], ti)) != -1)
268  signalname.replace(ti, len, type_conversion[i][1]);
269  ++i;
270  }
271 
272  sigs.insert(memid, signalname);
274  DISPID id = -1;
275  for (it = propsigs.constBegin(); it!= propsigs.constEnd(); ++it) {
276  if (it.value() == signalname) {
277  id = it.key();
278  break;
279  }
280  }
281  if (id != -1)
282  propsigs.remove(id);
283  }
const Key key(const T &value) const
Returns the first key with value value.
Definition: qmap.h:844
QMap< DISPID, QByteArray > sigs
Definition: qaxbase.cpp:536
#define it(className, varName)
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
const char * name
const T value(const Key &key) const
Returns the value associated with the key key.
Definition: qmap.h:499
const_iterator constBegin() const
Returns a const STL-style iterator pointing to the first item in the map.
Definition: qmap.h:374
int indexOf(char c, int from=0) const
Returns the index position of the first occurrence of the character ch in the byte array...
int remove(const Key &key)
Removes all the items that have the key key from the map.
Definition: qmap.h:662
const_iterator constEnd() const
Returns a const STL-style iterator pointing to the imaginary item after the last item in the map...
Definition: qmap.h:380
QMap< DISPID, QByteArray > propsigs
Definition: qaxbase.cpp:537
iterator insert(const Key &key, const T &value)
Inserts a new item with the key key and a value of value.
Definition: qmap.h:559
static const char *const type_conversion[][2]
Definition: qaxbase.cpp:189
QByteArray & replace(int index, int len, const char *s)
This is an overloaded member function, provided for convenience. It differs from the above function o...
The QMap class is a template class that provides a skip-list-based dictionary.
Definition: qdatastream.h:67

◆ advise()

void QAxEventSink::advise ( IConnectionPoint *  cp,
IID  iid 
)
inline

Definition at line 240 of file qaxbase.cpp.

Referenced by QAxBase::connectNotify(), MetaObjectGenerator::readEventInfo(), MetaObjectGenerator::readEventInterface(), and MetaObjectGenerator::tryCache().

241  {
242  cpoint = cp;
243  cpoint->AddRef();
244  ciid = iid;
245  cpoint->Advise((IUnknown*)(IDispatch*)this, &cookie);
246  }
ULONG cookie
Definition: qaxbase.cpp:534
IConnectionPoint * cpoint
Definition: qaxbase.cpp:532

◆ connectionInterface()

QUuid QAxEventSink::connectionInterface ( ) const
inline

Definition at line 222 of file qaxbase.cpp.

Referenced by MetaObjectGenerator::metaObject().

223  {
224  return ciid;
225  }

◆ findProperty()

QByteArray QAxEventSink::findProperty ( DISPID  dispID)

Definition at line 618 of file qaxbase.cpp.

619 {
620  // look up in cache, and fall back to
621  // type info for precompiled metaobjects
622  QByteArray propname(props.value(dispID));
623 
624  if (!propname.isEmpty())
625  return propname;
626 
627  IDispatch *dispatch = combase->d->dispatch();
628  ITypeInfo *typeinfo = 0;
629  if (dispatch)
630  dispatch->GetTypeInfo(0, LOCALE_USER_DEFAULT, &typeinfo);
631  if (!typeinfo)
632  return propname;
633 
634  BSTR names;
635  UINT cNames;
636  typeinfo->GetNames(dispID, &names, 1, &cNames);
637  if (cNames) {
638  propname = QString::fromWCharArray(names).toLatin1();
639  SysFreeString(names);
640  }
641  typeinfo->Release();
642 
643  QByteArray propsignal(propname + "Changed(");
644  const QMetaObject *mo = combase->metaObject();
645  int index = mo->indexOfProperty(propname);
646  const QMetaProperty prop = mo->property(index);
647  propsignal += prop.typeName();
648  propsignal += ')';
649  addProperty(dispID, propname, propsignal);
650 
651  return propname;
652 }
static QString fromWCharArray(const wchar_t *, int size=-1)
Returns a copy of the string, where the encoding of string depends on the size of wchar...
Definition: qstring.cpp:1019
The QMetaObject class contains meta-information about Qt objects.
Definition: qobjectdefs.h:304
virtual const QMetaObject * metaObject() const
The metaobject is generated on the fly from the information provided by the IDispatch and ITypeInfo i...
Definition: qaxbase.cpp:3245
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
int indexOfProperty(const char *name) const
Finds property name and returns its index; otherwise returns -1.
const T value(const Key &key) const
Returns the value associated with the key key.
Definition: qmap.h:499
QAxBasePrivate * d
Definition: qaxbase.h:150
void addProperty(DISPID propid, const char *name, const char *signal)
Definition: qaxbase.cpp:284
QByteArray toLatin1() const Q_REQUIRED_RESULT
Returns a Latin-1 representation of the string as a QByteArray.
Definition: qstring.cpp:3993
QAxBase * combase
Definition: qaxbase.cpp:540
quint16 index
The QMetaProperty class provides meta-data about a property.
Definition: qmetaobject.h:176
QMap< DISPID, QByteArray > props
Definition: qaxbase.cpp:538
IDispatch * dispatch() const
Definition: qaxbase.cpp:580
const char * typeName() const
Returns the name of this property&#39;s type.
QMetaProperty property(int index) const
Returns the meta-data for the property with the given index.

◆ GetIDsOfNames()

HRESULT __stdcall QAxEventSink::GetIDsOfNames ( const _GUID ,
wchar_t **  ,
unsigned  int,
unsigned  long,
long *   
)
inline

Definition at line 324 of file qaxbase.cpp.

324 { return E_NOTIMPL; }

◆ GetTypeInfo()

HRESULT __stdcall QAxEventSink::GetTypeInfo ( UINT  ,
LCID  ,
ITypeInfo **   
)
inline

Definition at line 323 of file qaxbase.cpp.

323 { return E_NOTIMPL; }

◆ GetTypeInfoCount()

HRESULT __stdcall QAxEventSink::GetTypeInfoCount ( unsigned int *  )
inline

Definition at line 322 of file qaxbase.cpp.

322 { return E_NOTIMPL; }

◆ Invoke()

HRESULT __stdcall QAxEventSink::Invoke ( DISPID  dispIdMember,
REFIID  riid,
LCID  ,
WORD  wFlags,
DISPPARAMS *  pDispParams,
VARIANT *  ,
EXCEPINFO *  ,
UINT *   
)
inline

Definition at line 326 of file qaxbase.cpp.

334  {
335  // verify input
336  if (riid != IID_NULL)
337  return DISP_E_UNKNOWNINTERFACE;
338  if (!(wFlags & DISPATCH_METHOD))
339  return DISP_E_MEMBERNOTFOUND;
340  if (!combase)
341  return E_UNEXPECTED;
342 
343  QByteArray signame = sigs.value(dispIdMember);
344  if (signame.isEmpty())
345  return DISP_E_MEMBERNOTFOUND;
346 
347  QObject *qobject = combase->qObject();
348  if (qobject->signalsBlocked())
349  return S_OK;
350 
352  const QMetaObject *meta = combase->metaObject();
353 
354  int index = -1;
355  // emit the generic signal "as is"
356  if (signalHasReceivers(qobject, "signal(QString,int,void*)")) {
357  index = meta->indexOfSignal("signal(QString,int,void*)");
358  Q_ASSERT(index != -1);
359 
360  QString nameString = QLatin1String(signame);
361  void *argv[] = {0, &nameString, &pDispParams->cArgs, &pDispParams->rgvarg};
363  }
364 
365  HRESULT hres = S_OK;
366 
367  // get the signal information from the metaobject
368  index = -1;
369  if (signalHasReceivers(qobject, signame)) {
370  index = meta->indexOfSignal(signame);
371  Q_ASSERT(index != -1);
372  const QMetaMethod signal = meta->method(index);
374  Q_ASSERT(signame == signal.signature());
375  // verify parameter count
376  int pcount = axmeta->numParameter(signame);
377  int argcount = pDispParams->cArgs;
378  if (pcount > argcount)
379  return DISP_E_PARAMNOTOPTIONAL;
380  else if (pcount < argcount)
381  return DISP_E_BADPARAMCOUNT;
382 
383  // setup parameters (no return values in signals)
384  bool ok = true;
385  void *static_argv[QAX_NUM_PARAMS + 1];
386  void *static_argv_pointer[QAX_NUM_PARAMS + 1];
387  QVariant static_varp[QAX_NUM_PARAMS + 1];
388 
389  void **argv = 0;
390  void **argv_pointer = 0; // in case we need an additional level of indirection
391  QVariant *varp = 0;
392 
393  if (pcount) {
394  if (pcount <= QAX_NUM_PARAMS) {
395  argv = static_argv;
396  argv_pointer = static_argv_pointer;
397  varp = static_varp;
398  } else {
399  argv = new void*[pcount + 1];
400  argv_pointer = new void*[pcount + 1];
401  varp = new QVariant[pcount + 1];
402  }
403 
404  argv[0] = 0;
405  argv_pointer[0] = 0;
406  }
407 
408  int p;
409  for (p = 0; p < pcount && ok; ++p) {
410  // map the VARIANT to the void*
411  QByteArray ptype = axmeta->paramType(signame, p);
412  varp[p + 1] = VARIANTToQVariant(pDispParams->rgvarg[pcount - p - 1], ptype);
413  argv_pointer[p + 1] = 0;
414  if (varp[p + 1].isValid()) {
415  if (varp[p + 1].type() == QVariant::UserType) {
416  argv[p + 1] = varp[p + 1].data();
417  } else if (ptype == "QVariant") {
418  argv[p + 1] = varp + p + 1;
419  } else {
420  argv[p + 1] = const_cast<void*>(varp[p + 1].constData());
421  if (ptype.endsWith('*')) {
422  argv_pointer[p + 1] = argv[p + 1];
423  argv[p + 1] = argv_pointer + p + 1;
424  }
425  }
426  } else if (ptype == "QVariant") {
427  argv[p + 1] = varp + p + 1;
428  } else {
429  ok = false;
430  }
431  }
432 
433  if (ok) {
434  // emit the generated signal if everything went well
436  // update the VARIANT for references and free memory
437  for (p = 0; p < pcount; ++p) {
438  bool out;
439  QByteArray ptype = axmeta->paramType(signame, p, &out);
440  if (out) {
441  if (!QVariantToVARIANT(varp[p + 1], pDispParams->rgvarg[pcount - p - 1], ptype, out))
442  ok = false;
443  }
444  }
445  }
446 
447  if (argv != static_argv) {
448  delete [] argv;
449  delete [] argv_pointer;
450  delete [] varp;
451  }
452  hres = ok ? S_OK : (ok ? DISP_E_MEMBERNOTFOUND : DISP_E_TYPEMISMATCH);
453  }
454 
455  return hres;
456  }
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:92
The QMetaObject class contains meta-information about Qt objects.
Definition: qobjectdefs.h:304
int type
Definition: qmetatype.cpp:239
virtual const QMetaObject * metaObject() const
The metaobject is generated on the fly from the information provided by the IDispatch and ITypeInfo i...
Definition: qaxbase.cpp:3245
QMap< DISPID, QByteArray > sigs
Definition: qaxbase.cpp:536
#define QAX_NUM_PARAMS
Definition: qaxtypes.h:74
virtual QObject * qObject() const =0
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
QLatin1String(DBUS_INTERFACE_DBUS))) Q_GLOBAL_STATIC_WITH_ARGS(QString
int numParameter(const QByteArray &prototype)
Definition: qaxbase.cpp:134
The QString class provides a Unicode character string.
Definition: qstring.h:83
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
The QObject class is the base class of all Qt objects.
Definition: qobject.h:111
void * data()
Definition: qvariant.cpp:3077
const T value(const Key &key) const
Returns the value associated with the key key.
Definition: qmap.h:499
virtual int qt_metacall(QMetaObject::Call, int, void **)
Definition: qaxbase.cpp:3705
bool QVariantToVARIANT(const QVariant &var, VARIANT &arg, const QByteArray &typeName, bool out)
Definition: qaxtypes.cpp:246
int indexOfSignal(const char *signal) const
Finds signal and returns its index; otherwise returns -1.
QByteArray paramType(const QByteArray &signature, int index, bool *out=0)
Definition: qaxbase.cpp:142
QAxBase * combase
Definition: qaxbase.cpp:540
MethodType methodType() const
Returns the type of this method (signal, slot, or method).
long HRESULT
QAxMetaObject * internalMetaObject() const
Definition: qaxbase.cpp:915
const void * constData() const
Definition: qvariant.cpp:3065
QVariant VARIANTToQVariant(const VARIANT &arg, const QByteArray &typeName, uint type)
Returns arg as a QVariant of type type.
Definition: qaxtypes.cpp:919
quint16 index
QMetaMethod method(int index) const
Returns the meta-data for the method with the given index.
bool isEmpty() const
Returns true if the byte array has size 0; otherwise returns false.
Definition: qbytearray.h:421
const char * signature() const
Returns the signature of this method (e.g., setValue(double)).
bool signalsBlocked() const
Returns true if signals are blocked; otherwise returns false.
Definition: qobject.h:148
static bool signalHasReceivers(QObject *qobject, const char *signalName)
Definition: qaxbase.cpp:526
The QMetaMethod class provides meta-data about a member function.
Definition: qmetaobject.h:56
bool endsWith(const QByteArray &a) const
Returns true if this byte array ends with byte array ba; otherwise returns false. ...

◆ OnChanged()

HRESULT __stdcall QAxEventSink::OnChanged ( DISPID  dispID)
inline

Definition at line 461 of file qaxbase.cpp.

462  {
463  // verify input
464  if (dispID == DISPID_UNKNOWN || !combase)
465  return S_OK;
466 
467  const QMetaObject *meta = combase->metaObject();
468  if (!meta)
469  return S_OK;
470 
471  QByteArray propname(findProperty(dispID));
472  if (propname.isEmpty())
473  return S_OK;
474 
475  QObject *qobject = combase->qObject();
476  if (qobject->signalsBlocked())
477  return S_OK;
478 
479  // emit the generic signal
480  int index = meta->indexOfSignal("propertyChanged(QString)");
481  if (index != -1) {
482  QString propnameString = QString::fromLatin1(propname);
483  void *argv[] = {0, &propnameString};
485  }
486 
487  QByteArray signame = propsigs.value(dispID);
488  if (signame.isEmpty())
489  return S_OK;
490 
491  index = meta->indexOfSignal(signame);
492  if (index == -1) // bindable but not marked as bindable in typelib
493  return S_OK;
494 
495  // get the signal information from the metaobject
496  if (signalHasReceivers(qobject, signame)) {
497  index = meta->indexOfSignal(signame);
498  Q_ASSERT(index != -1);
499  // setup parameters
500  QVariant var = qobject->property(propname);
501  if (!var.isValid())
502  return S_OK;
503 
504  const QMetaProperty metaProp = meta->property(meta->indexOfProperty(propname));
505  void *argv[] = {0, var.data()};
506  if (metaProp.type() == QVariant::LastType)
507  argv[1] = &var;
508 
509  // emit the "changed" signal
511  }
512  return S_OK;
513  }
The QVariant class acts like a union for the most common Qt data types.
Definition: qvariant.h:92
The QMetaObject class contains meta-information about Qt objects.
Definition: qobjectdefs.h:304
virtual const QMetaObject * metaObject() const
The metaobject is generated on the fly from the information provided by the IDispatch and ITypeInfo i...
Definition: qaxbase.cpp:3245
virtual QObject * qObject() const =0
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
The QString class provides a Unicode character string.
Definition: qstring.h:83
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
The QObject class is the base class of all Qt objects.
Definition: qobject.h:111
int indexOfProperty(const char *name) const
Finds property name and returns its index; otherwise returns -1.
void * data()
Definition: qvariant.cpp:3077
const T value(const Key &key) const
Returns the value associated with the key key.
Definition: qmap.h:499
virtual int qt_metacall(QMetaObject::Call, int, void **)
Definition: qaxbase.cpp:3705
int indexOfSignal(const char *signal) const
Finds signal and returns its index; otherwise returns -1.
QAxBase * combase
Definition: qaxbase.cpp:540
QByteArray findProperty(DISPID dispID)
Definition: qaxbase.cpp:618
QMap< DISPID, QByteArray > propsigs
Definition: qaxbase.cpp:537
static QString fromLatin1(const char *, int size=-1)
Returns a QString initialized with the first size characters of the Latin-1 string str...
Definition: qstring.cpp:4188
quint16 index
QVariant property(const char *name) const
Returns the value of the object&#39;s name property.
Definition: qobject.cpp:3807
The QMetaProperty class provides meta-data about a property.
Definition: qmetaobject.h:176
bool isEmpty() const
Returns true if the byte array has size 0; otherwise returns false.
Definition: qbytearray.h:421
bool signalsBlocked() const
Returns true if signals are blocked; otherwise returns false.
Definition: qobject.h:148
bool isValid() const
Returns true if the storage type of this variant is not QVariant::Invalid; otherwise returns false...
Definition: qvariant.h:485
static bool signalHasReceivers(QObject *qobject, const char *signalName)
Definition: qaxbase.cpp:526
QMetaProperty property(int index) const
Returns the meta-data for the property with the given index.
QVariant::Type type() const
Returns this property&#39;s type.

◆ OnRequestEdit()

HRESULT __stdcall QAxEventSink::OnRequestEdit ( DISPID  dispID)
inline

Definition at line 514 of file qaxbase.cpp.

515  {
516  if (dispID == DISPID_UNKNOWN || !combase)
517  return S_OK;
518 
519  QByteArray propname(findProperty(dispID));
520  if (propname.isEmpty())
521  return S_OK;
522 
523  return combase->propertyWritable(propname) ? S_OK : S_FALSE;
524  }
The QByteArray class provides an array of bytes.
Definition: qbytearray.h:135
virtual bool propertyWritable(const char *) const
Returns true if the property prop is writable; otherwise returns false.
Definition: qaxbase.cpp:4385
QAxBase * combase
Definition: qaxbase.cpp:540
QByteArray findProperty(DISPID dispID)
Definition: qaxbase.cpp:618

◆ propertyMap()

QMap<DISPID, QByteArray> QAxEventSink::propertyMap ( ) const
inline

Definition at line 230 of file qaxbase.cpp.

Referenced by MetaObjectGenerator::metaObject().

231  {
232  return props;
233  }
QMap< DISPID, QByteArray > props
Definition: qaxbase.cpp:538

◆ propSignalMap()

QMap<DISPID, QByteArray> QAxEventSink::propSignalMap ( ) const
inline

Definition at line 234 of file qaxbase.cpp.

Referenced by MetaObjectGenerator::metaObject().

235  {
236  return propsigs;
237  }
QMap< DISPID, QByteArray > propsigs
Definition: qaxbase.cpp:537

◆ QueryInterface()

HRESULT __stdcall QAxEventSink::QueryInterface ( REFIID  riid,
void **  ppvObject 
)
inline

Definition at line 303 of file qaxbase.cpp.

304  {
305  *ppvObject = 0;
306  if (riid == IID_IUnknown)
307  *ppvObject = (IUnknown*)(IDispatch*)this;
308  else if (riid == IID_IDispatch)
309  *ppvObject = (IDispatch*)this;
310  else if (riid == IID_IPropertyNotifySink)
311  *ppvObject = (IPropertyNotifySink*)this;
312  else if (ciid == riid)
313  *ppvObject = (IDispatch*)this;
314  else
315  return E_NOINTERFACE;
316 
317  AddRef();
318  return S_OK;
319  }
unsigned long __stdcall AddRef()
Definition: qaxbase.cpp:291

◆ Release()

unsigned long __stdcall QAxEventSink::Release ( )
inline

Definition at line 295 of file qaxbase.cpp.

Referenced by QAxBase::clear().

296  {
297  LONG refCount = InterlockedDecrement(&ref);
298  if (!refCount)
299  delete this;
300 
301  return refCount;
302  }

◆ signalHasReceivers()

static bool QAxEventSink::signalHasReceivers ( QObject qobject,
const char *  signalName 
)
inlinestatic

Definition at line 526 of file qaxbase.cpp.

Referenced by checkHRESULT().

527  {
528  Q_ASSERT(qobject);
529  return ((QAxObject*)qobject)->receivers(QByteArray::number(QSIGNAL_CODE) + signalName);
530  }
The QAxObject class provides a QObject that wraps a COM object.
Definition: qaxobject.h:54
#define Q_ASSERT(cond)
Definition: qglobal.h:1823
#define QSIGNAL_CODE
Definition: qobjectdefs.h:244
static QByteArray number(int, int base=10)
Returns a byte array containing the string equivalent of the number n to base base (10 by default)...

◆ signalMap()

QMap<DISPID, QByteArray> QAxEventSink::signalMap ( ) const
inline

Definition at line 226 of file qaxbase.cpp.

Referenced by MetaObjectGenerator::metaObject().

227  {
228  return sigs;
229  }
QMap< DISPID, QByteArray > sigs
Definition: qaxbase.cpp:536

◆ unadvise()

void QAxEventSink::unadvise ( )
inline

Definition at line 249 of file qaxbase.cpp.

Referenced by QAxBase::clear().

250  {
251  combase = 0;
252  if (cpoint) {
253  cpoint->Unadvise(cookie);
254  cpoint->Release();
255  cpoint = 0;
256  }
257  }
ULONG cookie
Definition: qaxbase.cpp:534
IConnectionPoint * cpoint
Definition: qaxbase.cpp:532
QAxBase * combase
Definition: qaxbase.cpp:540

Properties

◆ ciid

IID QAxEventSink::ciid

Definition at line 533 of file qaxbase.cpp.

◆ combase

QAxBase* QAxEventSink::combase

Definition at line 540 of file qaxbase.cpp.

◆ cookie

ULONG QAxEventSink::cookie

Definition at line 534 of file qaxbase.cpp.

◆ cpoint

IConnectionPoint* QAxEventSink::cpoint

Definition at line 532 of file qaxbase.cpp.

◆ props

QMap<DISPID, QByteArray> QAxEventSink::props

Definition at line 538 of file qaxbase.cpp.

Referenced by MetaObjectGenerator::tryCache().

◆ propsigs

QMap<DISPID, QByteArray> QAxEventSink::propsigs

Definition at line 537 of file qaxbase.cpp.

Referenced by MetaObjectGenerator::tryCache().

◆ ref

LONG QAxEventSink::ref

Definition at line 541 of file qaxbase.cpp.

◆ sigs

QMap<DISPID, QByteArray> QAxEventSink::sigs

Definition at line 536 of file qaxbase.cpp.

Referenced by MetaObjectGenerator::tryCache().


The documentation for this class was generated from the following file: