diff options
-rw-r--r-- | config.tests/ntddmodm/main.cpp | 41 | ||||
-rw-r--r-- | config.tests/ntddmodm/ntddmodm.pro | 4 | ||||
-rw-r--r-- | qtserialport.pro | 3 | ||||
-rw-r--r-- | src/serialport/qserialportinfo_win.cpp | 20 | ||||
-rw-r--r-- | src/serialport/serialport.pro | 2 |
5 files changed, 62 insertions, 8 deletions
diff --git a/config.tests/ntddmodm/main.cpp b/config.tests/ntddmodm/main.cpp new file mode 100644 index 0000000..4bcb97f --- /dev/null +++ b/config.tests/ntddmodm/main.cpp @@ -0,0 +1,41 @@ +/**************************************************************************** +** +** Copyright (C) 2015 Denis Shienkov <denis.shienkov@gmail.com> +** Contact: http://www.qt.io/licensing/ +** +** This file is part of the QtSerialPort module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL21$ +** 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 http://www.qt.io/terms-conditions. For further +** information use the contact form at http://www.qt.io/contact-us. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 or version 3 as published by the Free +** Software Foundation and appearing in the file LICENSE.LGPLv21 and +** LICENSE.LGPLv3 included in the packaging of this file. Please review the +** following information to ensure the GNU Lesser General Public License +** requirements will be met: https://www.gnu.org/licenses/lgpl.html and +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** As a special exception, The Qt Company gives you certain additional +** rights. These rights are described in The Qt Company LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <windows.h> +#include <ntddmodm.h> + +int main(int, char**) +{ + GUID guid = GUID_DEVINTERFACE_MODEM; + return 0; +} diff --git a/config.tests/ntddmodm/ntddmodm.pro b/config.tests/ntddmodm/ntddmodm.pro new file mode 100644 index 0000000..abb9ba8 --- /dev/null +++ b/config.tests/ntddmodm/ntddmodm.pro @@ -0,0 +1,4 @@ +CONFIG -= qt +CONFIG += console + +SOURCES += main.cpp diff --git a/qtserialport.pro b/qtserialport.pro index b8e7231..95eb99b 100644 --- a/qtserialport.pro +++ b/qtserialport.pro @@ -6,4 +6,7 @@ lessThan(QT_MAJOR_VERSION, 5) { requires(!winrt) requires(!ios) +load(configure) +qtCompileTest(ntddmodm) + load(qt_parts) diff --git a/src/serialport/qserialportinfo_win.cpp b/src/serialport/qserialportinfo_win.cpp index 06987f2..123b066 100644 --- a/src/serialport/qserialportinfo_win.cpp +++ b/src/serialport/qserialportinfo_win.cpp @@ -44,9 +44,17 @@ #include <vector> #include <initguid.h> +#include <devguid.h> // for GUID_DEVCLASS_PORTS and GUID_DEVCLASS_MODEM +#include <winioctl.h> // for GUID_DEVINTERFACE_COMPORT #include <setupapi.h> #include <cfgmgr32.h> +#ifdef QT_NO_REDEFINE_GUID_DEVINTERFACE_MODEM +# include <ntddmodm.h> // for GUID_DEVINTERFACE_MODEM +#else + DEFINE_GUID(GUID_DEVINTERFACE_MODEM, 0x2c7089aa, 0x2e0e, 0x11d1, 0xb1, 0x14, 0x00, 0xc0, 0x4f, 0xc2, 0xaa, 0xe4); +#endif + QT_BEGIN_NAMESPACE typedef QPair<QUuid, DWORD> GuidFlagsPair; @@ -54,14 +62,10 @@ typedef QPair<QUuid, DWORD> GuidFlagsPair; static inline const QList<GuidFlagsPair>& guidFlagsPairs() { static const QList<GuidFlagsPair> guidFlagsPairList = QList<GuidFlagsPair>() - // Standard Setup Ports Class GUID - << qMakePair(QUuid(0x4D36E978, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18), DWORD(DIGCF_PRESENT)) - // Standard Setup Modems Class GUID - << qMakePair(QUuid(0x4D36E96D, 0xE325, 0x11CE, 0xBF, 0xC1, 0x08, 0x00, 0x2B, 0xE1, 0x03, 0x18), DWORD(DIGCF_PRESENT)) - // Standard Serial Port Device Interface Class GUID - << qMakePair(QUuid(0x86E0D1E0, 0x8089, 0x11D0, 0x9C, 0xE4, 0x08, 0x00, 0x3E, 0x30, 0x1F, 0x73), DWORD(DIGCF_PRESENT | DIGCF_DEVICEINTERFACE)) - // Standard Modem Device Interface Class GUID - << qMakePair(QUuid(0x2C7089AA, 0x2E0E, 0x11D1, 0xB1, 0x14, 0x00, 0xC0, 0x4F, 0xC2, 0xAA, 0xE4), DWORD(DIGCF_PRESENT | DIGCF_DEVICEINTERFACE)); + << qMakePair(QUuid(GUID_DEVCLASS_PORTS), DWORD(DIGCF_PRESENT)) + << qMakePair(QUuid(GUID_DEVCLASS_MODEM), DWORD(DIGCF_PRESENT)) + << qMakePair(QUuid(GUID_DEVINTERFACE_COMPORT), DWORD(DIGCF_PRESENT | DIGCF_DEVICEINTERFACE)) + << qMakePair(QUuid(GUID_DEVINTERFACE_MODEM), DWORD(DIGCF_PRESENT | DIGCF_DEVICEINTERFACE)); return guidFlagsPairList; } diff --git a/src/serialport/serialport.pro b/src/serialport/serialport.pro index 40c0339..92d0795 100644 --- a/src/serialport/serialport.pro +++ b/src/serialport/serialport.pro @@ -3,6 +3,8 @@ QT = core-private QMAKE_DOCS = $$PWD/doc/qtserialport.qdocconf +config_ntddmodm: DEFINES += QT_NO_REDEFINE_GUID_DEVINTERFACE_MODEM + load(qt_module) include($$PWD/serialport-lib.pri) |