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/qaxcontainer.html | 188 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 188 insertions(+) create mode 100644 doc/html/qaxcontainer.html (limited to 'doc/html/qaxcontainer.html') diff --git a/doc/html/qaxcontainer.html b/doc/html/qaxcontainer.html new file mode 100644 index 0000000..b94986c --- /dev/null +++ b/doc/html/qaxcontainer.html @@ -0,0 +1,188 @@ + + + + + +The QAxContainer Module + + + + + + + +
+ +Home + | +All Classes + | +Main Classes + | +Annotated + | +Grouped Classes + | +Functions +

The QAxContainer Module

+ + +

+

+

+ + +

Introduction +

+

The QAxContainer module provides a library implementing a QWidget +subclass, QAxWidget, that acts as a container for ActiveX +controls, and a QObject subclass, QAxObject, that can be used to +easily access non-visual COM objects. Scripting COM objects embedded +using these classes is possible through the QAxScript, QAxScriptManager +and QAxScriptEngine classes. +

This module is part of the ActiveQt + framework. (To make an application into an ActiveX server +see the QAxServer module.) +

The module consists of six classes +

    +
  1. QAxBase is an abstract class that provides an API to initialize +and access a COM/ActiveX object. +
  2. QAxObject provides a QObject that wraps a COM object. +
  3. QAxWidget is a QWidget that wraps an ActiveX control. +
  4. QAxScriptManager, QAxScript and QAxScriptEngine provide an +interface to the Windows Script Host. +
+

Some example applications +that use standard ActiveX controls to provide high level user +interface functionality are provided. +

Building the library +

+

In the activeqt directory (usually QTDIR/extensions/activeqt) +enter the container subdirectory and run qmake to generate the +makefile, and use the make tool (nmake for VC++, make for Borland) +to build the library. The library qaxcontainer.lib will be linked +into QTDIR/lib. +

If you have a shared configuration of Qt enter the plugin subdirectory +and run qmake and your make tool to build a plugin that integrates the +QAxWidget class into Qt Designer. +

Using the library +

+

To build Qt applications that can host COM objects and ActiveX controls +link the application against the QAxContainer module by adding +

+    LIBS += qaxcontainer.lib
+    
+ +

to the application's .pro file. +

Distributing QAxContainer applications +

+

The QAxContainer library is static, so there is no need to redistribute +any additional files when using this module. Note however that the +ActiveX server binaries you are using might not be installed on the +target system, so you have to ship them with your package and register +them during the installation process of your application. +

Instantiating COM objects +

+

To instantiate a COM object use the QAxBase::setControl() API, or pass +the name of the object directly into the constructor of the QAxBase +subclass you are using. +

The control can be specified in a variety of formats, but the fastest +and most powerful format is to use the class ID (CLSID) of the object +directly. The class ID can be prepended with information about a remote +machine that the object should run on, and can include a license key +for licensed controls. +

Accessing the object API +

+

ActiveQt provides a Qt API to the COM object, and replaces COM +datatypes with Qt equivalents. Use the dumpdoc tool to get the +documentation of the Qt API for any COM object and it's subobjects. +

See the QAxWidget and QAxObject API documentation about how to +use this class to use ActiveX controls and COM objects in Qt +applications. To access the COM object with scripting languages use +the QAxScript class. +

To call functions of the COM object that can not be accessed via +ActiveQt it is possible to request the COM interface directly using +QAxBase::queryInterface(). To get a C++ definition of the respective +interface classes use the #import directive with the type library +provided with the control. +

Typical error messages +

+

ActiveQt prints error messages to the debug output when it +encounters error situations at runtime. Usually you must run +your program in the debugger to see these messages (e.g. in Visual +Studio's Debug output). +

Requested control could not be instantiated +

+

The control requested in QAxBase::setControl() is not installed +on this system, or is not accessible for the current user. +

The control might require administrator rights, or a license key. +If the control is licensed, reimplement initialize() and use the +COM APIs to call the IClassFactory2 interface functions. +

QAxBase::internalInvoke: No such method +

+

A dynamicCall() failed - the function prototype did not +match any function available in the object's API. +

Error calling IDispatch member: Non-optional parameter +missing +

+

A dynamicCall() failed - the function prototype was correct, +but too few parameters were provided. +

Error calling IDispatch member: Type mismatch in +parameter n +

+

A dynamicCall() failed - the function prototype was correct, +but the paramter at index n was of the wrong type and could +not be coerced to the correct type. +

QAxScriptManager::call(): No script provides this function +

+

You try to call a function that is provided through an engine +that doesn't provide introspection (ie. ActivePython or +ActivePerl). You need to call the function directly on the +respective QAxScript object. + + +


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