diff options
Diffstat (limited to 'src/activeqt/axbase/qaxtypefunctions.cpp')
-rw-r--r-- | src/activeqt/axbase/qaxtypefunctions.cpp | 113 |
1 files changed, 33 insertions, 80 deletions
diff --git a/src/activeqt/axbase/qaxtypefunctions.cpp b/src/activeqt/axbase/qaxtypefunctions.cpp index c1b76f5..8cba274 100644 --- a/src/activeqt/axbase/qaxtypefunctions.cpp +++ b/src/activeqt/axbase/qaxtypefunctions.cpp @@ -1,52 +1,5 @@ -/**************************************************************************** -** -** Copyright (C) 2015 The Qt Company Ltd. -** Contact: http://www.qt.io/licensing/ -** -** This file is part of the ActiveQt framework of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** BSD License Usage -** Alternatively, you may use this file under the terms of the BSD license -** as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of The Qt Company Ltd nor the names of its -** contributors may be used to endorse or promote products derived -** from this software without specific prior written permission. -** -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** -** $QT_END_LICENSE$ -** -****************************************************************************/ +// Copyright (C) 2015 The Qt Company Ltd. +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause #include <qt_windows.h> #include "qaxtypefunctions_p.h" @@ -63,7 +16,7 @@ QColor OLEColorToQColor(uint col) return QColor(GetRValue(col),GetGValue(col),GetBValue(col)); } -/*! +/* Copies the data in \a var into \a data. Used by @@ -76,88 +29,88 @@ QColor OLEColorToQColor(uint col) - internalInvoke(update out parameters/return value) */ -bool QVariantToVoidStar(const QVariant &var, void *data, const QByteArray &typeName, uint type) +bool QVariantToVoidStar(const QVariant &var, void *data, const QByteArray &typeName, int type) { if (!data) return true; - if (type == QMetaType::QVariant || type == uint(QVariant::LastType) || (type == 0 && typeName == "QVariant")) { + if (type == QMetaType::QVariant || (type == QMetaType::UnknownType && typeName == "QVariant")) { *reinterpret_cast<QVariant *>(data) = var; return true; } - switch (var.type()) { - case QVariant::Invalid: + switch (var.metaType().id()) { + case QMetaType::UnknownType: break; - case QVariant::String: + case QMetaType::QString: *reinterpret_cast<QString *>(data) = var.toString(); break; - case QVariant::Int: + case QMetaType::Int: *reinterpret_cast<int *>(data) = var.toInt(); break; - case QVariant::UInt: + case QMetaType::UInt: *reinterpret_cast<uint *>(data) = var.toUInt(); break; - case QVariant::Bool: + case QMetaType::Bool: *reinterpret_cast<bool *>(data) = var.toBool(); break; - case QVariant::Double: + case QMetaType::Double: *reinterpret_cast<double *>(data) = var.toDouble(); break; - case QVariant::Color: + case QMetaType::QColor: *reinterpret_cast<QColor *>(data) = qvariant_cast<QColor>(var); break; - case QVariant::Date: + case QMetaType::QDate: *reinterpret_cast<QDate *>(data) = var.toDate(); break; - case QVariant::Time: + case QMetaType::QTime: *reinterpret_cast<QTime *>(data) = var.toTime(); break; - case QVariant::DateTime: + case QMetaType::QDateTime: *reinterpret_cast<QDateTime *>(data) = var.toDateTime(); break; - case QVariant::Font: + case QMetaType::QFont: *reinterpret_cast<QFont *>(data) = qvariant_cast<QFont>(var); break; - case QVariant::Pixmap: + case QMetaType::QPixmap: *reinterpret_cast<QPixmap *>(data) = qvariant_cast<QPixmap>(var); break; #ifndef QT_NO_CURSOR - case QVariant::Cursor: + case QMetaType::QCursor: *reinterpret_cast<QCursor *>(data) = qvariant_cast<QCursor>(var); break; #endif - case QVariant::List: + case QMetaType::QVariantList: *reinterpret_cast<QVariantList *>(data) = var.toList(); break; - case QVariant::StringList: + case QMetaType::QStringList: *reinterpret_cast<QStringList *>(data) = var.toStringList(); break; - case QVariant::ByteArray: + case QMetaType::QByteArray: *reinterpret_cast<QByteArray *>(data) = var.toByteArray(); break; - case QVariant::LongLong: + case QMetaType::LongLong: *reinterpret_cast<qint64 *>(data) = var.toLongLong(); break; - case QVariant::ULongLong: + case QMetaType::ULongLong: *reinterpret_cast<quint64 *>(data) = var.toULongLong(); break; - case QVariant::Rect: + case QMetaType::QRect: *reinterpret_cast<QRect *>(data) = var.toRect(); break; - case QVariant::Size: + case QMetaType::QSize: *reinterpret_cast<QSize *>(data) = var.toSize(); break; - case QVariant::Point: + case QMetaType::QPoint: *reinterpret_cast<QPoint *>(data) = var.toPoint(); break; - case QVariant::UserType: - *reinterpret_cast<void **>(data) = - *reinterpret_cast<void **>(const_cast<void *>(var.constData())); -// qVariantGet(var, *(void**)data, typeName); - break; default: - qWarning("QVariantToVoidStar: Unhandled QVariant type"); + if (var.metaType().id() >= QMetaType::User) { + *reinterpret_cast<void **>(data) = + *reinterpret_cast<void **>(const_cast<void *>(var.constData())); + } else { + qWarning("QVariantToVoidStar: Unhandled QVariant type"); + } return false; } |