From 1bad3a86dcdc6c168090f17e93c86490d601d4f1 Mon Sep 17 00:00:00 2001 From: Oliver Wolff Date: Mon, 3 Apr 2023 10:26:57 +0200 Subject: examples: Remove multiple examples The functionality of providing multiple ActiveX controls in a single process server should be covered in a documentation snippet. In order to keep the use case's code in source, the example was moved to tests/manual. Pick-to: 6.5 Change-Id: I2633637e8202aadc7798ba5816a61ec1743f0b03 Reviewed-by: Volker Hilsheimer --- examples/activeqt/CMakeLists.txt | 1 - examples/activeqt/activeqt.pro | 1 - examples/activeqt/multiple/CMakeLists.txt | 35 --------------- examples/activeqt/multiple/ax1.h | 50 --------------------- examples/activeqt/multiple/ax2.h | 54 ----------------------- examples/activeqt/multiple/doc/src/multiple.qdoc | 46 ------------------- examples/activeqt/multiple/main.cpp | 15 ------- examples/activeqt/multiple/multiple.inf | 9 ---- examples/activeqt/multiple/multiple.pro | 16 ------- examples/activeqt/multiple/multipleax.def | 6 --- examples/activeqt/multiple/multipleax.ico | Bin 766 -> 0 bytes examples/activeqt/multiple/multipleax.rc | 32 -------------- tests/manual/CMakeLists.txt | 1 + tests/manual/multiple/CMakeLists.txt | 25 +++++++++++ tests/manual/multiple/ax1.h | 50 +++++++++++++++++++++ tests/manual/multiple/ax2.h | 54 +++++++++++++++++++++++ tests/manual/multiple/doc/src/multiple.qdoc | 46 +++++++++++++++++++ tests/manual/multiple/main.cpp | 15 +++++++ tests/manual/multiple/multiple.inf | 9 ++++ tests/manual/multiple/multiple.pro | 16 +++++++ tests/manual/multiple/multipleax.def | 6 +++ tests/manual/multiple/multipleax.ico | Bin 0 -> 766 bytes tests/manual/multiple/multipleax.rc | 32 ++++++++++++++ 23 files changed, 254 insertions(+), 265 deletions(-) delete mode 100644 examples/activeqt/multiple/CMakeLists.txt delete mode 100644 examples/activeqt/multiple/ax1.h delete mode 100644 examples/activeqt/multiple/ax2.h delete mode 100644 examples/activeqt/multiple/doc/src/multiple.qdoc delete mode 100644 examples/activeqt/multiple/main.cpp delete mode 100644 examples/activeqt/multiple/multiple.inf delete mode 100644 examples/activeqt/multiple/multiple.pro delete mode 100644 examples/activeqt/multiple/multipleax.def delete mode 100644 examples/activeqt/multiple/multipleax.ico delete mode 100644 examples/activeqt/multiple/multipleax.rc create mode 100644 tests/manual/multiple/CMakeLists.txt create mode 100644 tests/manual/multiple/ax1.h create mode 100644 tests/manual/multiple/ax2.h create mode 100644 tests/manual/multiple/doc/src/multiple.qdoc create mode 100644 tests/manual/multiple/main.cpp create mode 100644 tests/manual/multiple/multiple.inf create mode 100644 tests/manual/multiple/multiple.pro create mode 100644 tests/manual/multiple/multipleax.def create mode 100644 tests/manual/multiple/multipleax.ico create mode 100644 tests/manual/multiple/multipleax.rc diff --git a/examples/activeqt/CMakeLists.txt b/examples/activeqt/CMakeLists.txt index de6c321..f63a35a 100644 --- a/examples/activeqt/CMakeLists.txt +++ b/examples/activeqt/CMakeLists.txt @@ -3,7 +3,6 @@ if(MSVC) qt_internal_add_example(comapp) - qt_internal_add_example(multiple) qt_internal_add_example(simple) qt_internal_add_example(wrapper) if(TARGET Qt6::OpenGLWidgets AND QT_FEATURE_opengl AND NOT QT_FEATURE_opengles2) diff --git a/examples/activeqt/activeqt.pro b/examples/activeqt/activeqt.pro index 90b126a..c42a2aa 100644 --- a/examples/activeqt/activeqt.pro +++ b/examples/activeqt/activeqt.pro @@ -1,6 +1,5 @@ TEMPLATE = subdirs SUBDIRS += comapp \ - multiple \ simple \ wrapper diff --git a/examples/activeqt/multiple/CMakeLists.txt b/examples/activeqt/multiple/CMakeLists.txt deleted file mode 100644 index ed8cf46..0000000 --- a/examples/activeqt/multiple/CMakeLists.txt +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2022 The Qt Company Ltd. -# SPDX-License-Identifier: BSD-3-Clause - -cmake_minimum_required(VERSION 3.16) -project(multipleax LANGUAGES CXX) - -set(CMAKE_AUTOMOC ON) - -if(NOT DEFINED INSTALL_EXAMPLESDIR) - set(INSTALL_EXAMPLESDIR "examples") -endif() - -set(INSTALL_EXAMPLEDIR "${INSTALL_EXAMPLESDIR}/activeqt/multiple") - -find_package(Qt6 REQUIRED COMPONENTS AxServer Core Gui Widgets) - -qt6_add_axserver_library(multipleax - ax1.h - ax2.h - main.cpp - multipleax.def - multipleax.rc -) - -target_link_libraries(multipleax PUBLIC - Qt::Core - Qt::Gui - Qt::Widgets -) - -install(TARGETS multipleax - RUNTIME DESTINATION "${INSTALL_EXAMPLEDIR}" - BUNDLE DESTINATION "${INSTALL_EXAMPLEDIR}" - LIBRARY DESTINATION "${INSTALL_EXAMPLEDIR}" -) diff --git a/examples/activeqt/multiple/ax1.h b/examples/activeqt/multiple/ax1.h deleted file mode 100644 index e3a7b10..0000000 --- a/examples/activeqt/multiple/ax1.h +++ /dev/null @@ -1,50 +0,0 @@ -// Copyright (C) 2015 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#ifndef AX1_H -#define AX1_H - -#include -#include - -//! [0] -class QAxWidget1 : public QWidget -{ - Q_OBJECT - Q_CLASSINFO("ClassID", "{1D9928BD-4453-4bdd-903D-E525ED17FDE5}") - Q_CLASSINFO("InterfaceID", "{99F6860E-2C5A-42ec-87F2-43396F4BE389}") - Q_CLASSINFO("EventsID", "{0A3E9F27-E4F1-45bb-9E47-63099BCCD0E3}") - - Q_PROPERTY(QColor fillColor READ fillColor WRITE setFillColor) -public: - explicit QAxWidget1(QWidget *parent = nullptr) - : QWidget(parent) - { - } - - QColor fillColor() const - { - return m_fillColor; - } - - void setFillColor(const QColor &fc) - { - m_fillColor = fc; - repaint(); - } - -protected: - void paintEvent(QPaintEvent *e) override - { - QPainter paint(this); - QRect r = rect(); - r.adjust(10, 10, -10, -10); - paint.fillRect(r, m_fillColor); - } - -private: - QColor m_fillColor = Qt::red; -}; -//! [0] - -#endif // AX1_H diff --git a/examples/activeqt/multiple/ax2.h b/examples/activeqt/multiple/ax2.h deleted file mode 100644 index 0509a12..0000000 --- a/examples/activeqt/multiple/ax2.h +++ /dev/null @@ -1,54 +0,0 @@ -// Copyright (C) 2015 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -#ifndef AX2_H -#define AX2_H - -#include -#include - -//! [0] -class QAxWidget2 : public QWidget -{ - Q_OBJECT - Q_CLASSINFO("ClassID", "{58139D56-6BE9-4b17-937D-1B1EDEDD5B71}") - Q_CLASSINFO("InterfaceID", "{B66280AB-08CC-4dcc-924F-58E6D7975B7D}") - Q_CLASSINFO("EventsID", "{D72BACBA-03C4-4480-B4BB-DE4FE3AA14A0}") - Q_CLASSINFO("ToSuperClass", "QAxWidget2") - Q_CLASSINFO("StockEvents", "yes") - Q_CLASSINFO("Insertable", "yes") - - Q_PROPERTY(int lineWidth READ lineWidth WRITE setLineWidth) -public: - using QWidget::QWidget; - - int lineWidth() const - { - return m_lineWidth; - } - - void setLineWidth(int lw) - { - m_lineWidth = lw; - repaint(); - } - -protected: - void paintEvent(QPaintEvent *e) override - { - QPainter paint(this); - QPen pen = paint.pen(); - pen.setWidth(m_lineWidth); - paint.setPen(pen); - - QRect r = rect(); - r.adjust(10, 10, -10, -10); - paint.drawEllipse(r); - } - -private: - int m_lineWidth = 1; -}; -//! [0] - -#endif // AX2_H diff --git a/examples/activeqt/multiple/doc/src/multiple.qdoc b/examples/activeqt/multiple/doc/src/multiple.qdoc deleted file mode 100644 index 8713d9f..0000000 --- a/examples/activeqt/multiple/doc/src/multiple.qdoc +++ /dev/null @@ -1,46 +0,0 @@ -// Copyright (C) 2016 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only - -/*! - \page qaxserver-demo-multiple.html - \title Two Simple Qt Widgets - - \input multiple-demo.qdocinc -*/ - -/*! - \example activeqt/multiple - \title Multiple Example (ActiveQt) - - \brief The Multiple example demonstrates the implementation of a - QAxFactory to provide multiple ActiveX controls in a single in - process ActiveX server using the \c QAXFACTORY_EXPORT() macro. - The ActiveX controls in this example are simple QWidget - subclasses that reimplement QWidget::paintEvent(). - - \snippet activeqt/multiple/ax1.h 0 - - The first control draws a filled rectangle. The fill color is exposed - as a property. \c Q_CLASSINFO() is used to specify the COM identifiers. - - \snippet activeqt/multiple/ax2.h 0 - - The second control draws a circle. The linewith is exposed as a property. - \c Q_CLASSINFO() is used to specify the COM identifiers, and to set the - attributes \e ToSuperClass and \e StockEvents to expose only the API of - the class itself, and to add COM stock events to the ActiveX control. - - \snippet activeqt/multiple/main.cpp 0 - - The classes are exported from the server using the QAxFactory macros. - - To build the example you must first build the QAxServer library. - Then run \c qmake and your make tool in \c - examples/activeqt/multiple. - - The \l{Two Simple Qt Widgets} demonstration requires your - WebBrowser to support ActiveX controls, and scripting to be - enabled. - - \input multiple-demo.qdocinc -*/ diff --git a/examples/activeqt/multiple/main.cpp b/examples/activeqt/multiple/main.cpp deleted file mode 100644 index 6ce4346..0000000 --- a/examples/activeqt/multiple/main.cpp +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (C) 2015 The Qt Company Ltd. -// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause - -//! [0] -#include "ax1.h" -#include "ax2.h" -#include - -QT_USE_NAMESPACE - -QAXFACTORY_BEGIN("{98DE28B6-6CD3-4e08-B9FA-3D1DB43F1D2F}", "{05828915-AD1C-47ab-AB96-D6AD1E25F0E2}") - QAXCLASS(QAxWidget1) - QAXCLASS(QAxWidget2) -QAXFACTORY_END() -//! [0] diff --git a/examples/activeqt/multiple/multiple.inf b/examples/activeqt/multiple/multiple.inf deleted file mode 100644 index 7f6be76..0000000 --- a/examples/activeqt/multiple/multiple.inf +++ /dev/null @@ -1,9 +0,0 @@ -[version] - signature="$CHICAGO$" - AdvancedINF=2.0 - [Add.Code] - multipleax.dll=multipleax.dll - [multipleax.dll] - file-win32-x86=thiscab - clsid={1D9928BD-4453-4bdd-903D-E525ED17FDE5} - RegisterServer=yes diff --git a/examples/activeqt/multiple/multiple.pro b/examples/activeqt/multiple/multiple.pro deleted file mode 100644 index f08d3a2..0000000 --- a/examples/activeqt/multiple/multiple.pro +++ /dev/null @@ -1,16 +0,0 @@ -include(../shared.pri) - -TEMPLATE = lib -TARGET = multipleax - -CONFIG += warn_off dll -QT += widgets axserver - -SOURCES = main.cpp -HEADERS = ax1.h ax2.h -RC_FILE = multipleax.rc -DEF_FILE = multipleax.def - -# install -target.path = $$[QT_INSTALL_EXAMPLES]/activeqt/multiple -INSTALLS += target diff --git a/examples/activeqt/multiple/multipleax.def b/examples/activeqt/multiple/multipleax.def deleted file mode 100644 index bc82a03..0000000 --- a/examples/activeqt/multiple/multipleax.def +++ /dev/null @@ -1,6 +0,0 @@ -EXPORTS - DllCanUnloadNow PRIVATE - DllGetClassObject PRIVATE - DllRegisterServer PRIVATE - DllUnregisterServer PRIVATE - DumpIDL PRIVATE diff --git a/examples/activeqt/multiple/multipleax.ico b/examples/activeqt/multiple/multipleax.ico deleted file mode 100644 index c80d36a..0000000 Binary files a/examples/activeqt/multiple/multipleax.ico and /dev/null differ diff --git a/examples/activeqt/multiple/multipleax.rc b/examples/activeqt/multiple/multipleax.rc deleted file mode 100644 index a9bcc1a..0000000 --- a/examples/activeqt/multiple/multipleax.rc +++ /dev/null @@ -1,32 +0,0 @@ -#include "winver.h" - -1 TYPELIB "multipleax.rc" -1 ICON "multipleax.ico" - -VS_VERSION_INFO VERSIONINFO - FILEVERSION 1,0,0,0 - PRODUCTVERSION 1,0,0,0 - FILEFLAGSMASK 0x3fL - FILEOS 0x00040000L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904e4" - BEGIN - VALUE "CompanyName", "The Qt Company Ltd." - VALUE "FileDescription", "Multiple Example (ActiveQt)" - VALUE "FileVersion", "1.0.0.0" - VALUE "LegalCopyright", "Copyright (C) 2015 The Qt Company Ltd." - VALUE "InternalName", "multipleax.dll" - VALUE "OriginalFilename", "multipleax.dll" - VALUE "ProductName", "Multiple Example (ActiveQt)" - VALUE "ProductVersion", "1.0.0.0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1252 - END -END diff --git a/tests/manual/CMakeLists.txt b/tests/manual/CMakeLists.txt index 30a59d3..f911543 100644 --- a/tests/manual/CMakeLists.txt +++ b/tests/manual/CMakeLists.txt @@ -6,5 +6,6 @@ add_subdirectory(dumpcpp) add_subdirectory(hierarchy) add_subdirectory(mediaplayer) add_subdirectory(menus) +add_subdirectory(multiple) add_subdirectory(opengl) add_subdirectory(testcontrol) diff --git a/tests/manual/multiple/CMakeLists.txt b/tests/manual/multiple/CMakeLists.txt new file mode 100644 index 0000000..8e5d7c7 --- /dev/null +++ b/tests/manual/multiple/CMakeLists.txt @@ -0,0 +1,25 @@ +# Copyright (C) 2023 The Qt Company Ltd. +# SPDX-License-Identifier: BSD-3-Clause + +##################################################################### +## multiple Binary: +##################################################################### + +set(CMAKE_AUTOMOC ON) + +qt_internal_add_manual_test(tst_multiple + GUI + SOURCES + ax1.h + ax2.h + main.cpp + multipleax.def + multipleax.rc + LIBRARIES + Qt::AxServer + Qt::Gui + Qt::Widgets + +) +# qt_disable_warnings(tst_multiple) +qt6_target_idl(tst_multiple) diff --git a/tests/manual/multiple/ax1.h b/tests/manual/multiple/ax1.h new file mode 100644 index 0000000..e3a7b10 --- /dev/null +++ b/tests/manual/multiple/ax1.h @@ -0,0 +1,50 @@ +// Copyright (C) 2015 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef AX1_H +#define AX1_H + +#include +#include + +//! [0] +class QAxWidget1 : public QWidget +{ + Q_OBJECT + Q_CLASSINFO("ClassID", "{1D9928BD-4453-4bdd-903D-E525ED17FDE5}") + Q_CLASSINFO("InterfaceID", "{99F6860E-2C5A-42ec-87F2-43396F4BE389}") + Q_CLASSINFO("EventsID", "{0A3E9F27-E4F1-45bb-9E47-63099BCCD0E3}") + + Q_PROPERTY(QColor fillColor READ fillColor WRITE setFillColor) +public: + explicit QAxWidget1(QWidget *parent = nullptr) + : QWidget(parent) + { + } + + QColor fillColor() const + { + return m_fillColor; + } + + void setFillColor(const QColor &fc) + { + m_fillColor = fc; + repaint(); + } + +protected: + void paintEvent(QPaintEvent *e) override + { + QPainter paint(this); + QRect r = rect(); + r.adjust(10, 10, -10, -10); + paint.fillRect(r, m_fillColor); + } + +private: + QColor m_fillColor = Qt::red; +}; +//! [0] + +#endif // AX1_H diff --git a/tests/manual/multiple/ax2.h b/tests/manual/multiple/ax2.h new file mode 100644 index 0000000..0509a12 --- /dev/null +++ b/tests/manual/multiple/ax2.h @@ -0,0 +1,54 @@ +// Copyright (C) 2015 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +#ifndef AX2_H +#define AX2_H + +#include +#include + +//! [0] +class QAxWidget2 : public QWidget +{ + Q_OBJECT + Q_CLASSINFO("ClassID", "{58139D56-6BE9-4b17-937D-1B1EDEDD5B71}") + Q_CLASSINFO("InterfaceID", "{B66280AB-08CC-4dcc-924F-58E6D7975B7D}") + Q_CLASSINFO("EventsID", "{D72BACBA-03C4-4480-B4BB-DE4FE3AA14A0}") + Q_CLASSINFO("ToSuperClass", "QAxWidget2") + Q_CLASSINFO("StockEvents", "yes") + Q_CLASSINFO("Insertable", "yes") + + Q_PROPERTY(int lineWidth READ lineWidth WRITE setLineWidth) +public: + using QWidget::QWidget; + + int lineWidth() const + { + return m_lineWidth; + } + + void setLineWidth(int lw) + { + m_lineWidth = lw; + repaint(); + } + +protected: + void paintEvent(QPaintEvent *e) override + { + QPainter paint(this); + QPen pen = paint.pen(); + pen.setWidth(m_lineWidth); + paint.setPen(pen); + + QRect r = rect(); + r.adjust(10, 10, -10, -10); + paint.drawEllipse(r); + } + +private: + int m_lineWidth = 1; +}; +//! [0] + +#endif // AX2_H diff --git a/tests/manual/multiple/doc/src/multiple.qdoc b/tests/manual/multiple/doc/src/multiple.qdoc new file mode 100644 index 0000000..8713d9f --- /dev/null +++ b/tests/manual/multiple/doc/src/multiple.qdoc @@ -0,0 +1,46 @@ +// Copyright (C) 2016 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GFDL-1.3-no-invariants-only + +/*! + \page qaxserver-demo-multiple.html + \title Two Simple Qt Widgets + + \input multiple-demo.qdocinc +*/ + +/*! + \example activeqt/multiple + \title Multiple Example (ActiveQt) + + \brief The Multiple example demonstrates the implementation of a + QAxFactory to provide multiple ActiveX controls in a single in + process ActiveX server using the \c QAXFACTORY_EXPORT() macro. + The ActiveX controls in this example are simple QWidget + subclasses that reimplement QWidget::paintEvent(). + + \snippet activeqt/multiple/ax1.h 0 + + The first control draws a filled rectangle. The fill color is exposed + as a property. \c Q_CLASSINFO() is used to specify the COM identifiers. + + \snippet activeqt/multiple/ax2.h 0 + + The second control draws a circle. The linewith is exposed as a property. + \c Q_CLASSINFO() is used to specify the COM identifiers, and to set the + attributes \e ToSuperClass and \e StockEvents to expose only the API of + the class itself, and to add COM stock events to the ActiveX control. + + \snippet activeqt/multiple/main.cpp 0 + + The classes are exported from the server using the QAxFactory macros. + + To build the example you must first build the QAxServer library. + Then run \c qmake and your make tool in \c + examples/activeqt/multiple. + + The \l{Two Simple Qt Widgets} demonstration requires your + WebBrowser to support ActiveX controls, and scripting to be + enabled. + + \input multiple-demo.qdocinc +*/ diff --git a/tests/manual/multiple/main.cpp b/tests/manual/multiple/main.cpp new file mode 100644 index 0000000..6ce4346 --- /dev/null +++ b/tests/manual/multiple/main.cpp @@ -0,0 +1,15 @@ +// Copyright (C) 2015 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause + +//! [0] +#include "ax1.h" +#include "ax2.h" +#include + +QT_USE_NAMESPACE + +QAXFACTORY_BEGIN("{98DE28B6-6CD3-4e08-B9FA-3D1DB43F1D2F}", "{05828915-AD1C-47ab-AB96-D6AD1E25F0E2}") + QAXCLASS(QAxWidget1) + QAXCLASS(QAxWidget2) +QAXFACTORY_END() +//! [0] diff --git a/tests/manual/multiple/multiple.inf b/tests/manual/multiple/multiple.inf new file mode 100644 index 0000000..7f6be76 --- /dev/null +++ b/tests/manual/multiple/multiple.inf @@ -0,0 +1,9 @@ +[version] + signature="$CHICAGO$" + AdvancedINF=2.0 + [Add.Code] + multipleax.dll=multipleax.dll + [multipleax.dll] + file-win32-x86=thiscab + clsid={1D9928BD-4453-4bdd-903D-E525ED17FDE5} + RegisterServer=yes diff --git a/tests/manual/multiple/multiple.pro b/tests/manual/multiple/multiple.pro new file mode 100644 index 0000000..f08d3a2 --- /dev/null +++ b/tests/manual/multiple/multiple.pro @@ -0,0 +1,16 @@ +include(../shared.pri) + +TEMPLATE = lib +TARGET = multipleax + +CONFIG += warn_off dll +QT += widgets axserver + +SOURCES = main.cpp +HEADERS = ax1.h ax2.h +RC_FILE = multipleax.rc +DEF_FILE = multipleax.def + +# install +target.path = $$[QT_INSTALL_EXAMPLES]/activeqt/multiple +INSTALLS += target diff --git a/tests/manual/multiple/multipleax.def b/tests/manual/multiple/multipleax.def new file mode 100644 index 0000000..bc82a03 --- /dev/null +++ b/tests/manual/multiple/multipleax.def @@ -0,0 +1,6 @@ +EXPORTS + DllCanUnloadNow PRIVATE + DllGetClassObject PRIVATE + DllRegisterServer PRIVATE + DllUnregisterServer PRIVATE + DumpIDL PRIVATE diff --git a/tests/manual/multiple/multipleax.ico b/tests/manual/multiple/multipleax.ico new file mode 100644 index 0000000..c80d36a Binary files /dev/null and b/tests/manual/multiple/multipleax.ico differ diff --git a/tests/manual/multiple/multipleax.rc b/tests/manual/multiple/multipleax.rc new file mode 100644 index 0000000..a9bcc1a --- /dev/null +++ b/tests/manual/multiple/multipleax.rc @@ -0,0 +1,32 @@ +#include "winver.h" + +1 TYPELIB "multipleax.rc" +1 ICON "multipleax.ico" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION 1,0,0,0 + PRODUCTVERSION 1,0,0,0 + FILEFLAGSMASK 0x3fL + FILEOS 0x00040000L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904e4" + BEGIN + VALUE "CompanyName", "The Qt Company Ltd." + VALUE "FileDescription", "Multiple Example (ActiveQt)" + VALUE "FileVersion", "1.0.0.0" + VALUE "LegalCopyright", "Copyright (C) 2015 The Qt Company Ltd." + VALUE "InternalName", "multipleax.dll" + VALUE "OriginalFilename", "multipleax.dll" + VALUE "ProductName", "Multiple Example (ActiveQt)" + VALUE "ProductVersion", "1.0.0.0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1252 + END +END -- cgit v1.2.1