<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <!-- /tmp/qt-4.2.1-harald-1161357942206/qt-x11-opensource-src-4.2.1/doc/src/examples/activeqt/wrapper.qdoc --> <head> <title>Qt 4.2: Wrapper Example (ActiveQt)</title> <link href="classic.css" rel="stylesheet" type="text/css" /> </head> <body> <table border="0" cellpadding="0" cellspacing="0" width="100%"> <tr> <td align="left" valign="top" width="32"><a href="http://www.trolltech.com/products/qt"><img src="images/qt-logo.png" align="left" width="32" height="32" border="0" /></a></td> <td width="1"> </td><td class="postheader" valign="center"><a href="index.html"><font color="#004faf">Home</font></a> · <a href="classes.html"><font color="#004faf">All Classes</font></a> · <a href="mainclasses.html"><font color="#004faf">Main Classes</font></a> · <a href="groups.html"><font color="#004faf">Grouped Classes</font></a> · <a href="modules.html"><font color="#004faf">Modules</font></a> · <a href="functions.html"><font color="#004faf">Functions</font></a></td> <td align="right" valign="top" width="230"><a href="http://www.trolltech.com"><img src="images/trolltech-logo.png" align="right" width="203" height="32" border="0" /></a></td></tr></table><h1 align="center">Wrapper Example (ActiveQt)<br /><small></small></h1> <p>Files:</p> <ul> <li><a href="activeqt-wrapper-main-cpp.html">activeqt/wrapper/main.cpp</a></li> </ul> <p>The Wrapper example demonstrates how to export existing <a href="qwidget.html">QWidget</a> classes as ActiveX controls, and the use of <a href="qaxfactory.html">QAxFactory</a> together with the <tt>QAXFACTORY_EXPORT()</tt> macro. ActiveX controls in this example are the standard button classes <a href="qpushbutton.html">QPushButton</a>, <a href="qcheckbox.html">QCheckBox</a> and <a href="qradiobutton.html">QRadioButton</a> as provided by Qt.</p> <pre> ** This file is part of the example classes of the Qt Toolkit. ** ** This file may be used under the terms of the GNU General Public ** License version 2.0 as published by the Free Software Foundation ** and appearing in the file LICENSE.GPL included in the packaging of ** this file. Please review the following information to ensure GNU ** General Public Licensing requirements will be met: ** http:<span class="comment">//www.trolltech.com/products/qt/opensource.html</span> ** ** If you are unsure which license is appropriate for your use, please ** review the following information: ** http:<span class="comment">//www.trolltech.com/products/qt/licensing.html or contact the</span> ** sales department at sales@trolltech.com. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** ****************************************************************************/ #include <QAxFactory> #include <QCheckBox> #include <QRadioButton> #include <QPushButton> #include <QToolButton> #include <QPixmap> /* XPM */ static const char *fileopen[] = { " 16 13 5 1", ". c #040404", "# c #808304", "a c None", "b c #f3f704", "c c #f3f7f3", "aaaaaaaaa...aaaa", "aaaaaaaa.aaa.a.a", "aaaaaaaaaaaaa..a", "a...aaaaaaaa...a", ".bcb.......aaaaa", ".cbcbcbcbc.aaaaa", ".bcbcbcbcb.aaaaa", ".cbcb...........", ".bcb.#########.a", ".cb.#########.aa", ".b.#########.aaa", "..#########.aaaa", "...........aaaaa" };</pre> <p>The factory implementation returns the list of supported controls, creates controls on request and provides information about the unique IDs of the COM classes and interfaces for each control.</p> <pre> class ActiveQtFactory : public QAxFactory { public: ActiveQtFactory( const QUuid &lib, const QUuid &app ) : QAxFactory( lib, app ) {}</pre> <p>The factory is exported using the QAXFACTORY_EXPORT macro.</p> <p>To build the example you must first build the <a href="qaxserver.html">QAxServer</a> library. Then run <tt>qmake</tt> and your make tool in <tt>examples/activeqt/wrapper</tt>.</p> <p>The <a href="qaxserver-demo-wrapper.html">demonstration</a> requires a web browser that supports ActiveX controls, and scripting to be enabled.</p> <pre> <SCRIPT LANGUAGE="VBScript"> Sub ToolButton_Clicked() RadioButton.text = InputBox( "Enter something", "Wrapper Demo" ) End Sub Sub PushButton_clicked() MsgBox( "Thank you!" ) End Sub Sub CheckBox_toggled( state ) if state = 0 then CheckBox.text = "Check me!" else CheckBox.text = "Uncheck me!" end if End Sub </SCRIPT> <p /> A QPushButton:<br /> <object ID="PushButton" CLASSID="CLSID:2B262458-A4B6-468B-B7D4-CF5FEE0A7092" CODEBASE="http://www.trolltech.com/demos/wrapperax.cab"> <PARAM NAME="text" VALUE="Click me!" /> [Object not available! Did you forget to build and register the server?] </object><br /> <p /> A QCheckBox:<br /> <object ID="CheckBox" CLASSID="CLSID:6E795de9-872d-43cf-a831-496ef9d86c68" CODEBASE="http://www.trolltech.com/demos/wrapperax.cab"> <PARAM NAME="text" VALUE="Check me!" /> [Object not available! Did you forget to build and register the server?] </object><br /> <p /> A QToolButton:<br /> <object ID="ToolButton" CLASSID="CLSID:7c0ffe7a-60c3-4666-bde2-5cf2b54390a1" CODEBASE="http://www.trolltech.com/demos/wrapperax.cab"> [Object not available! Did you forget to build and register the server?] </object><br /> <p /> A QRadioButton:<br /> <object ID="RadioButton" CLASSID="CLSID:afcf78c8-446c-409a-93b3-ba2959039189" CODEBASE="http://www.trolltech.com/demos/wrapperax.cab"> <PARAM NAME="text" VALUE="Tune me!" /> [Object not available! Did you forget to build and register the server?] </object><br /></pre> <p /><address><hr /><div align="center"> <table width="100%" cellspacing="0" border="0"><tr class="address"> <td width="30%">Copyright © 2006 <a href="trolltech.html">Trolltech</a></td> <td width="40%" align="center"><a href="trademarks.html">Trademarks</a></td> <td width="30%" align="right"><div align="right">Qt 4.2.1</div></td> </tr></table></div></address></body> </html>