From bd0f3345a938b35ce6a12f6150373b0955b8dd12 Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Sun, 10 Jul 2011 15:24:15 -0500 Subject: Add Qt3 development HEAD version --- doc/html/qaxwidget.html | 250 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 250 insertions(+) create mode 100644 doc/html/qaxwidget.html (limited to 'doc/html/qaxwidget.html') diff --git a/doc/html/qaxwidget.html b/doc/html/qaxwidget.html new file mode 100644 index 0000000..897fd1b --- /dev/null +++ b/doc/html/qaxwidget.html @@ -0,0 +1,250 @@ + + + + + +QAxWidget Class + + + + + + + +
+ +Home + | +All Classes + | +Main Classes + | +Annotated + | +Grouped Classes + | +Functions +

QAxWidget Class Reference
[QAxContainer module]

+ +

The QAxWidget class is a QWidget that wraps an ActiveX control. +More... +

This class is part of the Qt ActiveQt Extension. +

#include <qaxwidget.h> +

Inherits QWidget and QAxBase. +

List of all member functions. +

Public Members

+ +

Important Inherited Members

+ +

Protected Members

+ +

Detailed Description

+

This class is defined in the Qt ActiveQt Extension, which can be found in the qt/extensions directory. It is not included in the main Qt API. +

+ +The QAxWidget class is a QWidget that wraps an ActiveX control. + +

+ +

A QAxWidget can be instantiated as an empty object, with the name +of the ActiveX control it should wrap, or with an existing +interface pointer to the ActiveX control. The ActiveX control's +properties, methods and events which only use supported data types, become available as Qt properties, +slots and signals. The base class QAxBase provides an API to +access the ActiveX directly through the IUnknown pointer. +

QAxWidget is a QWidget and can be used as such, e.g. it can be +organized in a widget hierarchy, receive events or act as an event +filter. Standard widget properties, e.g. enabled are supported, but it depends on the ActiveX +control to implement support for ambient properties like e.g. +palette or font. QAxWidget tries to provide the necessary hints. +

Warning: +You can subclass QAxWidget, but you cannot use the Q_OBJECT macro +in the subclass (the generated moc-file will not compile), so you +cannot add further signals, slots or properties. This limitation +is due to the metaobject information generated in runtime. To work +around this problem, aggregate the QAxWidget as a member of the +QObject subclass. +

+


Member Function Documentation

+

QAxWidget::QAxWidget ( QWidget * parent = 0, const char * name = 0, WFlags f = 0 ) +

+Creates an empty QAxWidget widget and propagates parent, name and f to the QWidget constructor. To initialize a control, +call setControl. + +

QAxWidget::QAxWidget ( const QString & c, QWidget * parent = 0, const char * name = 0, WFlags f = 0 ) +

+Creates an QAxWidget widget and initializes the ActiveX control c. +parent, name and f are propagated to the QWidget contructor. +

See also control. + +

QAxWidget::QAxWidget ( IUnknown * iface, QWidget * parent = 0, const char * name = 0, WFlags f = 0 ) +

+Creates a QAxWidget that wraps the COM object referenced by iface. +parent, name and f are propagated to the QWidget contructor. + +

QAxWidget::~QAxWidget () +

+Shuts down the ActiveX control and destroys the QAxWidget widget, +cleaning up all allocated resources. +

See also clear(). + +

bool QAxWidget::createHostWindow ( bool initialized ) [virtual protected] +

+Creates the client site for the ActiveX control, and returns TRUE if +the control could be embedded successfully, otherwise returns FALSE. +If initialized is TRUE the control has already been initialized. +

This function is called by initialize(). If you reimplement initialize +to customize the actual control instantiation, call this function in your +reimplementation to have the control embedded by the default client side. +Creates the client site for the ActiveX control, and returns TRUE if +the control could be embedded successfully, otherwise returns FALSE. + +

QVariant QAxBase::dynamicCall ( const QCString & function, const QVariant & var1 = QVariant ( ), const QVariant & var2 = QVariant ( ), const QVariant & var3 = QVariant ( ), const QVariant & var4 = QVariant ( ), const QVariant & var5 = QVariant ( ), const QVariant & var6 = QVariant ( ), const QVariant & var7 = QVariant ( ), const QVariant & var8 = QVariant ( ) ) +

+Calls the COM object's method function, passing the +parameters var1, var1, var2, var3, var4, var5, +var6, var7 and var8, and returns the value returned by +the method, or an invalid QVariant if the method does not return +a value or when the function call failed. +

If function is a method of the object the string must be provided +as the full prototype, for example as it would be written in a +QObject::connect() call. +

+    activeX->dynamicCall( "Navigate(const QString&)", "www.trolltech.com" );
+    
+ +

Alternatively a function can be called passing the parameters embedded +in the string, e.g. above function can also be invoked using +

+    activeX->dynamicCall("Navigate(\"www.trolltech.com\");
+    
+ +All parameters are passed as strings; it depends on the control whether +they are interpreted correctly, and is slower than using the prototype +with correctly typed parameters. +

If function is a property the string has to be the name of the +property. The property setter is called when var1 is a valid QVariant, +otherwise the getter is called. +

+    activeX->dynamicCall( "Value", 5 );
+    QString text = activeX->dynamicCall( "Text" ).toString();
+    
+ +Note that it is faster to get and set properties using +QObject::property() and QObject::setProperty(). +

It is only possible to call functions through dynamicCall() that +have parameters or return values of datatypes supported by +QVariant. See the QAxBase class documentation for a list of +supported and unsupported datatypes. If you want to call functions +that have unsupported datatypes in the parameter list, use +queryInterface() to retrieve the appropriate COM interface, and +use the function directly. +

+    IWebBrowser2 *webBrowser = 0;
+    activeX->queryInterface( IID_IWebBrowser2, (void**)&webBrowser );
+    if ( webBrowser ) {
+        webBrowser->Navigate2( pvarURL );
+        webBrowser->Release();
+    }
+    
+ +

This is also more efficient. + +

Example: qutlook/centralwidget.cpp. +

QVariant QAxBase::dynamicCall ( const QCString & function, QValueList<QVariant> & vars ) +

+This is an overloaded member function, provided for convenience. It behaves essentially like the above function. +

Calls the COM object's method function, passing the +parameters in vars, and returns the value returned by +the method. If the method does not return a value or when +the function call failed this function returns an invalid +QVariant object. +

The QVariant objects in vars are updated when the method has +out-parameters. + +

QAxObject * QAxBase::querySubObject ( const QCString & name, const QVariant & var1 = QVariant ( ), const QVariant & var2 = QVariant ( ), const QVariant & var3 = QVariant ( ), const QVariant & var4 = QVariant ( ), const QVariant & var5 = QVariant ( ), const QVariant & var6 = QVariant ( ), const QVariant & var7 = QVariant ( ), const QVariant & var8 = QVariant ( ) ) +

+Returns a pointer to a QAxObject wrapping the COM object provided +by the method or property name, passing passing the parameters +var1, var1, var2, var3, var4, var5, var6, +var7 and var8. +

If name is provided by a method the string must include the +full function prototype. +

If name is a property the string must be the name of the property, +and var1, ... var8 are ignored. +

The returned QAxObject is a child of this object (which is either of +type QAxObject or QAxWidget), and is deleted when this object is +deleted. It is however safe to delete the returned object yourself, +and you should do so when you iterate over lists of subobjects. +

COM enabled applications usually have an object model publishing +certain elements of the application as dispatch interfaces. Use +this method to navigate the hierarchy of the object model, e.g. +

+    QAxWidget outlook( "Outlook.Application" );
+    QAxObject *session = outlook.querySubObject( "Session" );
+    if ( session ) {
+        QAxObject *defFolder = session->querySubObject(
+                                "GetDefaultFolder(OlDefaultFolders)",
+                                "olFolderContacts" );
+        //...
+    }
+    
+ + +

Example: qutlook/centralwidget.cpp. +

bool QAxWidget::translateKeyEvent ( int message, int keycode ) const [virtual protected] +

+Reimplement this function to pass certain key events to the +ActiveX control. message is the Window message identifier +specifying the message type (ie. WM_KEYDOWN), and keycode is +the virtual keycode (ie. VK_TAB). +

If the function returns TRUE the key event is passed on to the +ActiveX control, which then either processes the event or passes +the event on to Qt. +

If the function returns FALSE the processing of the key event is +ignored by ActiveQt, ie. the ActiveX control might handle it or +not. +

The default implementation returns TRUE for the following cases: +

+ + +
WM_SYSKEYDOWN +WM_SYSKEYUP +WM_KEYDOWN +
All keycodes +VK_MENU +VK_TAB, VK_DELETE and all non-arrow-keys in combination with VK_SHIFT, +VK_CONTROL or VK_MENU +
+

This table is the result of experimenting with popular ActiveX controls, +ie. Internet Explorer and Microsoft Office applications, but for some +controls it might require modification. + + +


+This file is part of the Qt toolkit. +Copyright © 1995-2007 +Trolltech. All Rights Reserved.


+ +
Copyright © 2007 +TrolltechTrademarks +
Qt 3.3.8
+
+ -- cgit v1.2.3