The QAxAggregated 类是实现额外 COM 接口的抽象基类。 更多...
| 头: | #include <QAxAggregated> | 
| qmake: | QT += axserver | 
| virtual long | queryInterface (const QUuid & iid , void ** iface ) = 0 | 
| virtual | ~QAxAggregated () | 
| IUnknown * | controllingUnknown () const | 
| QObject * | 对象 () const | 
| QWidget * | widget () const | 
The QAxAggregated 类是实现额外 COM 接口的抽象基类。
						创建子类化的
						
							QAxAggregated
						
						并重实现
						
							queryInterface
						
						() 以支持额外 COM 接口。使用来自这些 COM 接口的多重继承。实现这些 COM 接口的 IUnknown 接口,是通过将调用委托给
						
QueryInterface()
						
						,
						
AddRef()
						
						and
						
Release()
						
						到接口提供通过
						
							controllingUnknown
						
						().
					
使用 widget () 方法若需要调用 QWidget 实现 ActiveX 控件。不必将该指针存储在子类中 (除非使用 QPointer ),作为 QWidget 可以被销毁通过 ActiveQt 框架在任何时候。
另请参阅 QAxBindable , QAxFactory ,和 Active Qt .
[virtual protected]
						
						QAxAggregated::
						
							~QAxAggregated
						
						()
						
					由 Qt 在内部调用的析构函数。
[protected]
						
						
							IUnknown
						
						*QAxAggregated::
						
							controllingUnknown
						
						() const
						
					
						返回
						
IUnknown
						
						接口对于 ActiveX 控件。实现
						
IUnknown
						
						接口在
						
							QAxAggregated
						
						子类以委托调用
						
QueryInterface()
						
						,
						
AddRef()
						
						,和
						
Release()
						
						到由此函数提供的接口。
					
HRESULT AxImpl::QueryInterface(REFIID iid, void **iface) { return controllingUnknown()->QueryInterface(iid, iface); } ulong AxImpl::AddRef() { return controllingUnknown()->AddRef(); } ulong AxImpl::Release() { return controllingUnknown()->Release(); }
						代替手动声明和实现这 3 个函数,可以使用
						
QAXAGG_IUNKNOWN
						
						宏在子类的类声明中。
					
[protected]
						
						
							
								QObject
							
						
						*QAxAggregated::
						
							对象
						
						() const
						
					返回指针指向 QObject 子类实现 COM 对象。此函数可能返回 0。
警告: 不必存储返回指针,除非使用 QPointer ,由于 QObject 可以被销毁通过 ActiveQt 在任何时候。
[pure virtual]
						
						
							long
						
						QAxAggregated::
						
							queryInterface
						
						(const
						
							
								QUuid
							
						
						&
						
							iid
						
						,
						
							void
						
						**
						
							iface
						
						)
						
					
						重实现此纯虚函数以支持额外 COM 接口。设置值为
						
							iface
						
						以指向此对象为支持接口
						
							iid
						
						。注意,必须铸造
						
this
						
						指针到适当超类。
					
long AxImpl::queryInterface(const QUuid &iid, void **iface) { *iface = 0; if (iid == IID_ISomeCOMInterface) *iface = (ISomeCOMInterface*)this; else return E_NOINTERFACE; AddRef(); return S_OK; }
						返回标准 COM 结果
						
S_OK
						
						(支持接口) 或
						
E_NOINTERFACE
						
						(不支持请求接口)。
					
						
							警告:
						
						即使必须实现
						
IUnknown
						
						接口若实现任何 COM 接口不必支持
						
IUnknown
						
						接口在 queryInterface() 实现中。
					
[protected]
						
						
							
								QWidget
							
						
						*QAxAggregated::
						
							widget
						
						() const
						
					返回指针指向 QWidget 子类实现 ActiveX 控件。此函数可能返回 0。
警告: 不必存储返回指针,除非使用 QPointer ,由于 QWidget 可以被销毁通过 ActiveQt 在任何时候。