Skip to content

Commit 08f52ea

Browse files
committed
try to fix win32 compilation
1 parent b48407d commit 08f52ea

File tree

2 files changed

+111
-0
lines changed

2 files changed

+111
-0
lines changed

src/third_party/mimetypes-qt4/io/qstandardpaths_win.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
#include "qstandardpaths.h"
4343

4444
#include <QtCore/qdir.h>
45+
#include "qsystemlibrary_p.h"
4546
#include <QtCore/qstringlist.h>
4647

4748
#ifndef QT_BOOTSTRAPPED
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
/****************************************************************************
2+
**
3+
** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
4+
** Contact: http://www.qt-project.org/legal
5+
**
6+
** This file is part of the QtCore module of the Qt Toolkit.
7+
**
8+
** $QT_BEGIN_LICENSE:LGPL$
9+
** Commercial License Usage
10+
** Licensees holding valid commercial Qt licenses may use this file in
11+
** accordance with the commercial license agreement provided with the
12+
** Software or, alternatively, in accordance with the terms contained in
13+
** a written agreement between you and Digia. For licensing terms and
14+
** conditions see http://qt.digia.com/licensing. For further information
15+
** use the contact form at http://qt.digia.com/contact-us.
16+
**
17+
** GNU Lesser General Public License Usage
18+
** Alternatively, this file may be used under the terms of the GNU Lesser
19+
** General Public License version 2.1 as published by the Free Software
20+
** Foundation and appearing in the file LICENSE.LGPL included in the
21+
** packaging of this file. Please review the following information to
22+
** ensure the GNU Lesser General Public License version 2.1 requirements
23+
** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
24+
**
25+
** In addition, as a special exception, Digia gives you certain additional
26+
** rights. These rights are described in the Digia Qt LGPL Exception
27+
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
28+
**
29+
** GNU General Public License Usage
30+
** Alternatively, this file may be used under the terms of the GNU
31+
** General Public License version 3.0 as published by the Free Software
32+
** Foundation and appearing in the file LICENSE.GPL included in the
33+
** packaging of this file. Please review the following information to
34+
** ensure the GNU General Public License version 3.0 requirements will be
35+
** met: http://www.gnu.org/copyleft/gpl.html.
36+
**
37+
**
38+
** $QT_END_LICENSE$
39+
**
40+
****************************************************************************/
41+
42+
#ifndef QSYSTEMLIBRARY_P_H
43+
#define QSYSTEMLIBRARY_P_H
44+
45+
#include <QtCore/qglobal.h>
46+
#ifdef Q_OS_WIN
47+
# include <QtCore/qstring.h>
48+
# include <qt_windows.h>
49+
50+
QT_BEGIN_NAMESPACE
51+
52+
class QSystemLibrary
53+
{
54+
public:
55+
explicit QSystemLibrary(const QString &libraryName)
56+
{
57+
m_libraryName = libraryName;
58+
m_handle = 0;
59+
m_didLoad = false;
60+
}
61+
62+
explicit QSystemLibrary(const wchar_t *libraryName)
63+
{
64+
m_libraryName = QString::fromWCharArray(libraryName);
65+
m_handle = 0;
66+
m_didLoad = false;
67+
}
68+
69+
bool load(bool onlySystemDirectory = true)
70+
{
71+
m_handle = load((const wchar_t *)m_libraryName.utf16(), onlySystemDirectory);
72+
m_didLoad = true;
73+
return (m_handle != 0);
74+
}
75+
76+
bool isLoaded()
77+
{
78+
return (m_handle != 0);
79+
}
80+
81+
QFunctionPointer resolve(const char *symbol)
82+
{
83+
if (!m_didLoad)
84+
load();
85+
if (!m_handle)
86+
return 0;
87+
#ifdef Q_OS_WINCE
88+
return QFunctionPointer(GetProcAddress(m_handle, (const wchar_t*)QString::fromLatin1(symbol).utf16()));
89+
#else
90+
return QFunctionPointer(GetProcAddress(m_handle, symbol));
91+
#endif
92+
}
93+
94+
static QFunctionPointer resolve(const QString &libraryName, const char *symbol)
95+
{
96+
return QSystemLibrary(libraryName).resolve(symbol);
97+
}
98+
99+
static Q_CORE_EXPORT HINSTANCE load(const wchar_t *lpFileName, bool onlySystemDirectory = true);
100+
private:
101+
HINSTANCE m_handle;
102+
QString m_libraryName;
103+
bool m_didLoad;
104+
};
105+
106+
QT_END_NAMESPACE
107+
108+
#endif //Q_OS_WIN
109+
110+
#endif //QSYSTEMLIBRARY_P_H

0 commit comments

Comments
 (0)